第 4 周:Tool、MCP、异步与 Agent Team
本周成果与 10-14 小时安排
把客服能力同时提供为 stdio 和 Streamable HTTP MCP,并能解释发现、鉴权、调用、超时和取消的每个状态。
| 时段 | 用时 | 可见产物 |
|---|---|---|
| Day 1 | 2 小时 | 读Agent Team,看视频 06 |
| Day 2 | 2 小时 | 读Tool、Skill 与 MCP,完成三者对照 |
| Day 3 | 2 小时 | 实现 stdio Server 与独立 Client 轨迹 |
| Day 4 | 2.5 小时 | 挂载 /mcp,完成读/写 scope 测试 |
| Day 5 | 2 小时 | 跑异步、工具发现、并行研究实验 |
| Day 6 | 1.5 小时 | 制造断线、超时、取消和一次结算竞态 |
Tool、Skill、MCP 的关系
三者的边界与「Skill 不替代 Tool、MCP 不自动让工具安全」,见 Tool、Skill 与 MCP:五层边界,一句话分清与Skill 是方法,Tool 是动作,MCP 是接口。
MCP 能力
本项目提供:
- Tool:
search_kb - Tool:
get_article - Tool:
create_support_ticket - Tool:
get_ticket_status - Resource:
support://articles/{article_id} - Prompt:
customer_support_assistant
传输方式:
- stdio:本机 Agent 启动子进程。
- Streamable HTTP:远程客户端连接
/mcp。
发布路径
完整的发布链(stdio → 构建 → TestPyPI → 正式 PyPI → server.json → Registry → /mcp)见 Tool、Skill 与 MCP:从「会做」到「可分发」。Registry 只存元数据,包仍由 PyPI、Git 或远程 URL 承载。
异步与 Team
Agent Team 需要显式消息总线和所有权:
- 谁创建任务
- 谁拥有任务
- 谁可以看到哪些上下文
- 取消如何级联
- 多个 Agent 同时完成时如何只结算一次
学习顺序
- 看视频 06
[00:00:00-00:09:39];视频 07[00:00:00-00:09:48]。 - 跑
active-tool-discovery、async-agent、parallel-web-research。 - 阅读
mcp_server.py与mcp_entry.py。 - 用 MCP Inspector 或自写 Client 调用四个工具。
- 分别用只读 Key 和写入 Key 验证权限。
- 断开客户端、制造超时、取消长任务并观察状态。
精确入口:
- 视频 06与视频 07
- CAE:
step09_subagent.py → step10_agent_team.py → step11_mcp.py - 书中实验:
chapter4/active-tool-discovery、chapter4/async-agent、chapter10/parallel-web-research - 工程:
mini-emperor/backend/src/mini_emperor/mcp_server.py、mcp_entry.py
Completion Gate
- 在干净环境通过 stdio 调用。
- 通过
/mcp完成远程调用。 kb:readKey 无法创建工单。- 能解释 Tool Discovery 为什么比注入 120 个 Schema 更节省上下文。
- 能画出 Team 任务取消的级联和确认过程。
复习节奏
- 24 小时后:不看资料写出 MCP initialize、discover、call 的顺序。
- 7 天后:用一个新工具解释 Tool、Skill、MCP 各自负责与不负责什么。
- 复习证据:脱敏 JSON-RPC 轨迹、scope 测试、一次取消级联事件表。