DOCAI · 概念 · L2
Agent Skills 是什么
把流程、脚本和参考资料打包成按需加载的能力单元,让模型按做法执行而不只是会调工具。
它是什么
Agent Skills 是打包好的能力单元:一个目录,里面有一份说明文件,加上可选的脚本、模板和参考资料。模型在需要时加载它,按里面写的步骤做事。
它回答的是「这件事该怎么做」,而不是「能做什么」。工具调用给模型动作——查数据库、发请求、读文件;Skills 给模型做法——先查哪个表、按什么格式写报告、出错时怎么回退。两者配合,模型既有一双手,也有一份作业指导书。
Skills 通常以 SKILL.md 为入口,frontmatter 里写名字和描述,正文写步骤与注意事项。描述写得好不好,直接决定模型能不能在正确的时机想起它。
怎么工作
加载是分层的,这是它省上下文的关键:
- 平时只有名字和描述待在上下文里,占用很小;
- 当任务匹配描述时,模型才读取完整的说明;
- 说明里引用的脚本和资料,只在真正需要时再打开。
脚本还有一个好处:如果执行环境支持代码执行,模型可以直接运行脚本拿到结果,而不必把脚本的每一行都读进上下文。步骤越多、材料越厚,这种按需加载的收益越明显。
和工具调用、MCP 的分工可以这样记:MCP 负责「接得上」,把外部系统的能力标准化地暴露出来;工具调用负责「做动作」,一次调用完成一件事;Skills 负责「按流程做」,把多次调用、判断和产出组织成可复用的做法。
Skills 本质上是文件,因此有版本和权限问题。放进代码仓库、走代码评审、记录变更,是最低要求。来自外部的 Skill 要按代码对待:它的说明可能包含恶意指令,它的脚本会以执行环境的权限运行。不要把密钥写进 Skill,也不要给它可以随意访问的目录。团队里还要控制谁能修改 Skill——改一份说明,可能改变所有使用者的行为。
什么时候该写一个 Skill
同一套流程反复做过多次、步骤固定但容易漏、需要团队统一口径时,就值得写。反过来,一次性的任务、几句话能说清的偏好,直接写在提示里更省事。
写之前先问:这件事需要脚本吗?需要参考资料吗?如果都不需要,一个提示模板就够了。如果确实需要,就把触发条件写进描述,把步骤写成可执行的顺序,把容易出错的地方写成检查项。
常见误解
- 「Skills 是微调」:不是。模型权重没变,变化的是上下文里加载的说明与脚本。
- 「Skills 只是提示词模板」:比模板多出脚本、资源和加载机制;它能在执行环境里真正跑代码。
- 「装了就会自动用」:是否被选中取决于描述与任务是否匹配;描述含糊,Skill 就容易被忽略。
- 「Skills 能绕过权限」:不能。脚本以所在环境的权限运行,权限边界仍由宿主决定。
和工具、MCP 的区别
工具调用是模型主动发起的一次动作,MCP 是把外部能力接进来的协议,Skills 是告诉模型「这类任务按什么步骤做」的经验包。三者不互相替代:MCP 解决连接,工具解决动作,Skills 解决流程。实际系统里常见的组合是:用 MCP 接上系统,用工具完成单步操作,用 Skill 把整个业务流程固定下来。在Claude Code 这类编码环境里,Skills 还可以随项目仓库分发,让团队成员共享同一套做法。
什么时候用得上
当同一套流程反复执行、步骤固定且容易漏,或需要团队统一口径与附带脚本时。一次性的任务和简单偏好,直接写进提示更省事。
常见误解
很多人把 Skills 当成微调或提示词模板。它不改模型权重,也不只是一段说明:它按需加载说明与资源,必要时还能运行脚本。装好也不会自动生效,描述与任务不匹配时模型不会选中它。