AGENT 开发 / NOTES

Skills 与 MCP,究竟是什么关系?

用一次代码评审拆开看:工作方法、工具接口,以及真正需要验证的结果。

“有了 Skills,是不是就不需要 MCP 了?”

这个问题容易把两件事混在一起:Agent 知不知道该怎么做,以及它能不能拿到需要的信息、调用需要的能力。

我的判断是:两者经常一起使用。要选什么,先看任务卡在哪一步。

先拆开一次代码评审

假设你让 Agent 评审一个改动。它至少要完成这些事:读需求,找到对应代码,判断有没有实际问题,给出能复核的依据。

如果它只能泛泛地说“注意异常处理”,缺的可能是评审方法。你可以把准则整理成 Skill:每条问题必须交代触发条件、代码位置、影响和最小改法;没有成立的问题,就明确说没有。

如果它连改动内容都拿不到,继续增加评审准则也没用。此时要解决的是访问问题:通过已有 CLI、API,或者 MCP 服务读到代码和讨论。

先分清缺的是方法、访问能力,还是验证,工具选择才有依据。

Skill:把工作方法交给 Agent

Agent Skills 的基本单位是一个目录。核心的 SKILL.md 放名称、描述和指引,也可以带脚本、参考资料与素材。官方设计采用渐进加载:先发现名称与描述,在相关任务中再读取完整指引,其他资源按需使用。Agent Skills 概览

这很适合保存反复使用的方法。比如我公开的 review-rules,关注需求是否完整、改造是否必要、复杂度是否值得,以及责任边界是否清楚。

$review-rules 复核这条评审意见:
“这里应该增加一个通用重试层。”
请结合当前需求、已有实现和失败场景给出判断。

上面是一个调用示例。它的价值在于把“认真 Review”变成具体的检查问题。至于模型会不会正确应用这些准则,仍然要看输出。

不同宿主怎样发现、触发和执行 Skill,要看各自实现。不能把某个 Agent 的加载方式,当成所有 Agent 都遵守的运行机制。规范中的 allowed-tools 也是实验性字段,支持情况因实现而异。Agent Skills 规范

MCP:约定能力怎样被发现和调用

MCP 定义客户端与服务端交换上下文的协议。服务端可以提供工具、资源和提示模板;它不只是“工具列表”。当前官方架构文档列出 stdio 与 Streamable HTTP 两种传输方式。MCP 架构,2026-07-28 版

回到代码评审:一个服务可以提供读取变更、查询讨论的能力,宿主通过约定的接口使用它。这解决了如何接入的问题。拿到信息以后,按什么标准形成评审结论,还需要任务要求、模型判断与验证。

协议也在变化。查资料时,我会先确认文章描述的版本,再对照实际客户端和服务端。不能拿旧版本的连接流程,直接推断今天所有实现的行为。

放在一起,会发生什么

下面是一个示意流程,不代表某次真实执行记录:

  1. 用户明确评审范围:这个分支,相对哪个基线,是否允许修改。
  2. Agent 读取评审 Skill,知道哪些问题值得报、结论要附什么依据。
  3. 通过已授权的 CLI 或 MCP 能力,读取改动和上下文。
  4. 结合代码形成判断,必要时运行针对性的验证。
  5. 给出结论,同时说明没有验证到的部分。

Skill 可以指引 Agent 使用 MCP,也可以使用它已经具备的本地工具。MCP 提供的提示模板也可能承载工作指引,所以“Skill 只负责怎么做、MCP 只负责能做什么”是方便入门的概括,不能当成没有交集的硬边界。

我更愿意用这三个问题来检查一个方案:

检查什么 一个具体问题
工作方法 它知道一条有效的评审结论需要哪些证据吗?
可用能力 它能读取这次任务实际需要的代码和讨论吗?
验证结果 它说“有问题”或“已修复”时,有什么能复核的依据?

我的选择顺序

已有工具能完成任务时,先把反复出现的方法写清楚。需要跨应用复用一组接口、接入外部系统时,再评估 MCP 的接入收益和维护成本。

还有一种情况:方法和工具都有,结果依旧不可靠。此时应该检查上下文有没有缺失、权限是否合适、验收标准是否具体。继续堆 Skill 或服务,不一定能解决问题。

文档里的“不要写入”和执行环境里的“无法写入”也要分开看。判断一次任务的权限边界,要检查宿主、工具和实际授权。仅凭它叫 Skill 还是 MCP,无法判断整套流程的风险。

我在做 Agent 工具时越来越关心的是:一次任务究竟在哪里失败,下一次能不能更早发现。 Skills 和 MCP 都可以帮忙,但最后仍要回到具体任务和结果。


本文基于 2026 年 3 月 10 日的《一文讲透 Skills 与 MCP:从源码看清两者的真正边界》修订。本站版调整了传输方式和加载机制的表述,删去了没有固定版本依据的源码路径及热度数字。技术资料复核于 2026 年 9 月 10 日。