视频 07 来源笔记:Tool、Skill 与 MCP
来源元信息
- 讲者:小单说AI
- Bilibili:
BV1Y17h6REm5 - 本地字幕:
从零实现自己的agent第七期:MCP、Skill、Tool.ai-zh.srt - 字幕覆盖:
00:00:00–00:09:48 - 对照材料:
bilibili-transcripts/07-MCP-Skill-Tool.txt、ppt/第七期-tool-skill-mcp.html - 对应代码:
sp_mcp-skill-tool.py(专门演示)与step11_mcp.py(累计实现)
按时间顺序的主题窗口
[00:00:00–00:01:35] 厨房比喻与职责分离
Agent 是主厨,Skill 是菜谱,Tool 是厨具,MCP 是与外部服务沟通的统一渠道。比喻的核心是四者不互相替代:方法、执行能力和接入协议属于不同层。
[00:01:35–00:02:20] MCP 解决 N×M 对接
过去每个 Agent 对每个外部服务写一套适配;MCP 让服务按统一协议暴露能力,客户端按统一方式发现和调用。它降低的是集成与发现成本。
[00:02:20–00:02:53] MCP 的发现与调用
客户端建立会话并初始化,读取服务端工具列表及输入 Schema,再转换为模型可见的工具定义。模型选中后,客户端通过 MCP 发起调用,并把结果送回模型上下文。
[00:02:53–00:03:56] Skill 是方法而不是执行器
Skill 描述适用场景、步骤、依赖工具和输出格式。它本身不执行动作,真正的副作用仍由 Tool 或 MCP Server 完成。
[00:03:56–00:04:15] Skill 的渐进式披露
模型先看到名称和短描述,需要时再加载完整 SKILL.md。视频用红烧肉步骤说明,一份 Skill 可以编排多次工具调用。
[00:04:15–00:05:03] Tool 与 Function Calling
模型选择工具并给出参数,Harness 校验与执行,结果返回后模型继续判断。一次大任务常由多次工具调用完成。
[00:05:03–00:05:36] 红烧肉端到端串联
外部订单经 MCP 到达,Agent 加载红烧肉 Skill,根据步骤依次调用备料、炒糖色、焖煮和装盘工具,最终形成产物。
[00:05:36–00:06:37] 三者缺一时的失败
没有 Skill,模型需要现场探索方法;没有 Tool,只能描述不能执行;没有 MCP,仍可用本地工具,但缺少标准化的外部能力接入。这里应理解为职责缺失,而不是所有任务强制同时使用三者。
[00:06:37–00:07:27] 代码的三块结构
专门示例同时实现外部服务、MCP 客户端、Skill 扫描加载和内置烹饪工具,再由 Agent Loop 统一注册并调度。
[00:07:27–00:08:20] 会话启动与工具注册
客户端发现 MCP 工具,Skill Loader 提供菜单摘要,内置工具与远程工具合并为模型可见集合。累计实现使用名称前缀避免跨 Server 工具名冲突。
[00:08:20–00:09:04] 终端执行
演示先接单,再加载 Skill,随后依序执行四个 Tool。运行日志正好对应“发现 → 选择方法 → 动作 → 观察”的状态流。
[00:09:04–00:09:48] 总结与 Agent 的调度权
MCP、Skill、Tool 都服务于 Agent;模型提出调用顺序,Harness 决定是否允许和如何执行。调度权不能被误解为模型拥有无限权限。
主教学论点
Tool 是可执行能力,Skill 是可复用方法,MCP 是发现和调用外部能力的协议。三者在 Agent Loop 中汇合,但权限与真实执行始终由 Harness 控制。
两段 MCP 状态流
连接阶段:transport → initialize → list_tools/resources/prompts → register schemas
调用阶段:model tool_call → policy → MCP call_tool → server executes → result → model远程发布还需在状态流中补上:鉴权、作用域、超时、限流、重试策略、审计和错误映射。
演示序列
- 启动烹饪 MCP Server。
- 客户端初始化并发现服务能力。
- 向模型注册 MCP 工具与 Skill 摘要。
- 输入红烧肉订单。
- 观察 MCP 接单、
load_skill和四次本地工具调用。 - 检查最终结果与工具执行轨迹。
重要比喻
- 主厨 = Agent:做判断和编排。
- 菜谱 = Skill:记录经过整理的工作方法。
- 厨具 = Tool:真实执行一步动作。
- 外卖渠道 = MCP:统一连接外部能力。
外卖渠道并不精确覆盖 MCP 的 Resources 与 Prompts,也容易让人误以为 MCP 只负责“接收任务”。课程正文会用协议原语修正。
术语与纠正
- 自动字幕中的
tour应为 Tool,MCB应为 MCP,SKU.md应为 SKILL.md。 - MCP 全称 Model Context Protocol。
- 视频说“JSON 方式递过来”是在解释 Schema;MCP 实际还有初始化、能力协商、传输和多种协议原语。
- Skill 不等于固定的工作流引擎;模型仍可根据上下文选择和调整步骤。
需要工程限定的说法
- 没有 MCP 仍可调用本地或私有 API 工具;MCP 的价值是标准化,不是外部连接的唯一方式。
- MCP Server 属于外部信任边界,返回的描述与内容都可能不可信。
- 发现工具后不能直接全量授权,应通过
CapabilityPolicy控制工具、网络和密钥。 - 教学客户端每次调用临时启动 stdio 会话,生产环境通常需要连接复用、健康检查与生命周期管理。
- MCP 传输协议不等于公开发布;给别人使用还需要包分发或远程 URL、认证、版本和运维。
来源映射
- CAE:
build-agent-example/code/sp_mcp-skill-tool.py、doc/sp_mcp-skill-tool.md;累计实现step11_mcp.py。 - 《深入理解 AI Agent》:第 4 章工具分类、Skill + 通用执行器、MCP 和主动工具发现。
- 必做实验:
chapter4/active-tool-discovery、chapter4/async-agent。 - Mini Emperor:
mcp_server.py的 FastMCP Tools、Resource、Prompt 与 Bearer 权限;api.py挂载/mcp;skills.py保持 Skill 与运行扩展分离。 - 进入正文:
book/07-Tool-Skill-MCP.md。
内容差异与待核对
- PPT 的 MCP 页面明确写“Schema 发现 + Tool Call”,比口述“握手后递过来”更精确。
- 专门演示为了讲清职责使用烹饪场景,累计
step11_mcp.py才展示配置、动态工具表和服务名前缀。 - 视频没有展开 Resources、Prompts、远程 Streamable HTTP 和发布 Registry;这些是用户要求在正文补足的扩展。