核心问题:当你的 AI 助手"不会"做某件事,怎么办?
想象你有一个 AI 助手(agent,即"代理"------一个能自主完成任务、调用工具的 AI 程序)。某天你让它做一件它不会做的事,比如"帮我审查这段代码"。
你有三种方式教会它,从最轻到最重:
第一种:Skill(技能)
Skill = 一个写给 AI 看的说明书,用 markdown 格式(一种纯文本的排版格式)写成,告诉 AI"遇到这类任务,你应该按这个步骤来做"。
类比:就像给新员工一份操作手册,贴在他桌上,他每次做这件事时就照着手册来。
名字:review_typescript(审查TypeScript代码)
描述:检查类型、异步错误和安全问题
步骤:
1. 检查函数的输入有没有类型声明
2. 检查异步操作有没有处理错误
3. 检查用户输入有没有安全漏洞
4. 先报问题,再说风格建议
特点:
- 成本极低------只是几行文字加进 AI 的"记忆"里
- AI 读了之后,用它已有的工具按步骤执行
- 适合:稳定的、重复性的操作流程
风险: Skill 是文字,直接进入 AI 的"大脑"(prompt,即每次对话时发给 AI 的完整指令)。如果有人给你安装了一个恶意的 skill,它就相当于在 AI 脑子里植入了坏指令------这比其他两种方式危险得多。所以安装来自外部的 skill 时要谨慎,就像安装手机 App 要看权限一样。
第二种:MCP Server(MCP 服务器)
MCP Server = 一个独立运行的程序,专门负责某项能力,AI 通过"调用工具"的方式来使用它。
MCP (Model Context Protocol,模型上下文协议)是一个标准接口,让 AI 和外部程序能互相"说话"。Server(服务器)在这里不是指网站服务器,而是指"在后台运行、等待被调用的程序"。
类比:就像你公司的财务部门。你不需要自己学会做账,你只需要填一张申请单(调用工具),财务部门(MCP Server)在他们自己的办公室里处理,然后把结果给你。
什么时候用 MCP Server? 三个信号:
- 这个能力需要访问外部资源(数据库、网站、第三方服务)
- 这个能力要被多个不同的 AI 助手共用
- 这个能力需要保管密码/密钥,不能让 AI 直接看到
特点:
- 中等成本------每次调用有一点点网络通信的开销
- 能力在独立进程里运行,崩溃了不影响主 AI
- 适合:需要外部资源、或者要在多个 AI 之间复用的能力
第三种:Subagent(子代理)
Subagent = 派生出来的另一个完整 AI 助手,专门负责一个子任务,有自己的指令、工具、预算和输出格式。
Parent agent (父代理)= 发出任务的主 AI。Subagent(子代理)= 被派出去干活的 AI。
类比:你是项目经理(父代理),你把"调研竞品"这个任务完整地交给一个实习生(子代理),给他一台电脑、一个任务说明、一个截止时间,让他自己想怎么做就怎么做,最后交给你一份报告。
派出一个"研究员"子代理:
- 任务:综合这些文档里最重要的观点
- 允许使用的工具:read_document, search_documents
- 最多执行12步
- 输出格式:结构化的研究摘要
特点:
- 成本最高------相当于开了一个全新的 AI 对话,消耗大量 token(token = AI 处理文字的计量单位,可以理解为"字数费用")
- 完全隔离------子代理有自己的上下文(context,即 AI 当前"记得"的所有内容)
- 适合:需要多步骤自主推理的复杂子任务
常见的子代理角色:
explore(探索者):只读,便宜,用来"找东西"build(构建者):全权限,贵,用来"做东西"plan(规划者):只读,便宜,用来"想方案"reviewer(审查者):只读,便宜,用来"检查别人的输出"
怎么选?一张决策图
这个能力是稳定的、重复性的操作流程吗?
↓ 是 → 写一个 Skill
↓ 否
需要访问外部代码/数据库/第三方服务/密钥吗?
↓ 是 → 写或使用一个 MCP Server
↓ 否
需要它自己独立地多步推理吗?
↓ 是 → 派一个 Subagent
↓ 否 → 直接用内置工具,或者写进主 AI 的指令里
黄金法则: 大多数团队第一反应是"再派一个子代理",但正确答案通常是"写一个 skill"。子代理是最贵的选项,只在真正需要独立推理时才用。
同一件事,三种做法对比
以"总结一篇长文档"为例:
| 方式 | 什么时候用 | 成本 |
|---|---|---|
| Skill | 文档已经在 AI 的上下文里,只需要告诉它"按这个格式总结" | 极低 |
| MCP Server | 文档在外部数据库里,需要先查询、解析 PDF 等 | 中等 |
| Subagent | 需要读几十篇文档、对比矛盾观点、反复迭代 | 高 |
能力会随时间"升级"
这三种形式不是一成不变的,随着系统成熟,能力会自然迁移:
- 重复的工具调用序列 → Skill:AI 总是按同样顺序调用三个工具?写成 skill,让它直接用名字调用。
- Skill 变大了 → MCP Server:skill 越写越长、需要密钥?把它提升为独立服务。
- Subagent 其实只是在走流程 → Skill:子代理每次都做同样的步骤、没有真正的"推理"?折叠成 skill,省掉一个完整的 AI 循环。
一句话总结
Skill 教 AI 怎么做 (最便宜);MCP Server 把执行 隔离到外部(中等);Subagent 把推理隔离到另一个 AI(最贵)。永远从最轻的开始。