Files
hz3-agent/README.md
黄庄三号 451e9a12ed feat: 黄庄三号四能力Agent初始版本
能力1: Function Call - LangGraph ToolNode
能力2: MCP - langchain-mcp-adapters + 确定性路由
能力3: 思考模式 - think_node + CoT推理链
能力4: Skill - 自建SkillRegistry注册机制

模型: GLM-4.5-air (智谱)
2026-04-23 19:18:53 +08:00

2.9 KiB
Raw Blame History

黄庄三号四能力 Agent

基于 LangGraph 的多能力 AI Agent集成 FC/MCP/思考模式/Skill 四种核心能力。

四项能力

能力 方案 支持度
Function Call LangGraph 原生 ToolNode ★★★★★
MCP langchain-mcp-adapters + 确定性路由 ★★★★
思考模式 自建 think_node + CoT 推理链 ★★★★
Skill 自建 SkillRegistry 注册机制 ★★★★

模型

GLM-4.5-air智谱OpenAI 兼容接口)

快速开始

cd /path/to/hz3-agent

# 自动测试不带MCP
python3 agent_v3.py --test

# 自动测试带MCP
python3 agent_v3.py --mcp --test

# 交互模式
python3 agent_v3.py --mcp

文件说明

文件 说明
agent_v3.py Agent 主程序(四能力完整版)
mcp_server.py MCP 服务器(示例工具:时间/字符统计/UUID
step1_basic_fc.py Step1 基础 FC 验证

代码调用

from agent_v3 import run_agent, build_graph

graph = build_graph()
result = await run_agent("黄庄天气怎么样?", graph)

print(result["reply"])      # 回复
print(result["thinking"])   # 思考过程
print(result["skill"])      # 使用的技能

架构流程

用户输入 → think(思考) → skill_route(路由)
                              │
                   ┌──────────┴──────────┐
               匹配MCP工具            匹配Skill
               直接调用             进入skill_exec
                   │                    │
              返回结果          执行工具+提示词模板
                   │                    │
                   └──────────┬─────────┘
                              │
                         agent(主节点)
                         │           │
                   有tool_calls   无tool_calls
                      │              │
                   tools节点        END
                      │
                   回到agent

MCP 服务器

mcp_server.py 基于 FastMCP 提供 3 个示例工具:

  • get_current_time - 获取当前时间
  • count_chars - 统计文本字符数
  • generate_uuid - 生成随机 UUID

Skill 系统

已注册 3 个示例技能,扩展只需一行:

skills.register(SkillDef(
    name="新技能",
    description="技能描述",
    prompt="提示词模板,{input}为占位符",
    tools=["依赖的工具名"]
))

关键设计决策

  1. MCP 确定性路由:关键词匹配后直接 session.call_tool(),绕过模型不调工具的问题
  2. 思考结果合并:与 system prompt 合并为单条 SystemMessage避免干扰工具调用
  3. AsyncExitStack 长连接MCP session 在 Agent 生命周期内保持,退出时统一关闭
  4. 迭代保护agent 节点迭代超过 5 次强制结束,防止无限循环