AI 编程与智能体

[MCP·Skill #3] MCP、Skill 与子代理:何时该用哪个?

扩展 AI 编程工具的方法越来越多:用 MCP 连接工具,用 Skill 注册流程,再把任务委派给子代理。

4 分钟阅读
[MCP·Skill #3] MCP、Skill 与子代理:何时该用哪个? 封面图

扩展 AI 编程工具的方法越来越多:用 MCP 连接工具,用 Skill 注册流程,再把任务委派给子代理。

问题在于,三者都被描述为“扩展模型的能力”,所以实际选择时很容易感到困惑。

用一句话总结:MCP 是手,Skill 是手册,子代理是同事。

本文将整理三者各自扩展的内容、选择标准,以及组合后的整体架构。

先从核心摘要开始。

  1. MCP 扩展模型能做的事(工具和数据访问)
  2. Skill 扩展模型知道如何做的事(工作流程和领域知识)
  3. 子代理扩展做事的人手(拥有独立上下文的执行主体)
  4. 三者不是竞争关系,而是组合关系。由子代理读取 Skill 并使用 MCP 工具,是很自然的架构

三者各自扩展的内容

先用表格比较,再逐一介绍。

分类 MCP Skill 子代理
扩展对象 能力(工具·数据) 知识(流程·经验) 执行主体
实体 协议·服务器进程 Markdown 文件夹 独立上下文会话
比喻 手 手册 同事

MCP 是伸向模型外部系统的通道。它能让模型单独无法在物理上完成的任务成为可能,例如查询数据库、调用内部 API 或操作浏览器。其特点是存在一个运行代码的独立服务器。

Skill 不是提供新能力,而是帮助模型把已经能做的事做好。它把版本说明格式、审查清单、内部文档规则等关于“如何做”的知识保存到文件中。其实体就只是 Markdown。

子代理是拥有独立上下文窗口的另一个模型实例。它可以在不污染主会话记录的情况下,接手探索和调查等任务。即使让它搜索大量文件,主上下文中也只会收到结论。


选择工具时要问的三个问题

选择困难时,按顺序问自己下面三个问题。

第一,这是模型现在在物理上无法完成的事吗?如果像查询内部数据库一样,连访问本身都不可能,答案就是 MCP。无论加入多少知识,也不会凭空长出一只不存在的手。

第二,虽然能做,但每次都要解释方法吗?那就用 Skill。所有重复出现的提示词都可以作为 Skill 的候选。

第三,工作量太大,导致上下文被污染吗?如果调查和探索结果让对话变得杂乱,就该交给子代理隔离处理了。

反过来说,没有访问能力就用 MCP,没有诀窍就用 Skill,没有上下文(或上下文不足)就用子代理。

按顺序问完这三个问题,选择就结束了
按顺序问完这三个问题,选择就结束了

在实践中组合使用三者

三者并不是非此即彼。实际设计良好的自动化,大多是这种结构。

以自动化代码审查为例:定义一个审查子代理(主体),让它遵循团队的审查清单 Skill(方法),再通过 GitHub MCP 服务器留下 PR 评论(能力)。

可以看出,三者不是角色重叠,而是处于不同层次,分别对应“谁/如何/用什么”这三个问题。

组合设计从在白板上划分三层开始
组合设计从在白板上划分三层开始

两个常见的错误选择

看清边界后,反模式也会随之显现。

一种错误是为 Skill 足以处理的工作创建 MCP 服务器。例如,“应用提交消息规范”是知识问题,几行 Markdown 就能解决;为此编写服务器反而得不偿失。服务器还会带来维护成本和安全审查成本。

另一种错误是把所有事情都放在一个主会话中处理。如果直接在主会话里探索大型代码库,文件转储会填满上下文,真正用于实现的空间就消失了。标准做法是把探索委派给子代理,主会话只接收结论。


总结

总结来说,没有能力就用 MCP,没有诀窍就用 Skill,没有人手就用子代理。

MCP 篇和 Skill 篇分别详细介绍了相关内容。请根据本文的标准,先判断你要构建的自动化属于哪一层的问题。

延伸阅读