很多人第一次接触 agent skill 时,会把它理解成“给 AI 增加一个插件”。
这个理解不算错,但还不够准确。
我更愿意把 skill 看成一层能力封装:它不是单纯扩展了一个功能入口,而是把一件原本需要人手动完成的事情,整理成一套 AI agent 可以稳定复用的执行方法。
而且我越来越倾向于认为,skill 最好的来源并不是“人坐下来写一份说明书”,而是用户先把 agent 教会,再由 agent 自己把这项能力总结出来。
Skill 到底在封装什么
所谓 skill,封装的并不是“某个按钮”或者“某个命令”,而是一段相对完整的能力。
比如:
- 如何检查一个仓库的构建是否正常
- 如何把一批 Markdown 文档整理成博客文章
- 如何为一个项目生成符合约定的发布说明
- 如何在固定目录下扫描日志并提取异常信息
这些事情的共同点是:
- 有明确目标
- 有可重复步骤
- 有输入和输出
- 能通过计算机完成
一旦满足这四点,它就不再只是“某个人会做的一件事”,而是可以被工程化描述、被标准化复用、被 agent 调用的一项能力。
Skill 的本质是经验的结构化
一个人能做某件事,不代表 agent 立刻就能做。
中间差的那一步,就是把人的经验从“脑子里的模糊直觉”,变成“机器可执行的结构化说明”。
这一步通常包括:
- 说明这项能力的目标是什么
- 指定输入从哪里来
- 规定执行时要遵循哪些步骤
- 明确什么算成功,什么算失败
- 约束边界条件和风险点
换句话说,skill 不是凭空制造能力,而是把已有能力整理成一种更稳定、更可组合的形式。
人会做,才有可能封装。
如果连人自己都说不清“这件事到底怎么做、做到什么程度算完成、出错时怎么判断”,那它通常还不具备被封装成 skill 的条件。
只要人能通过计算机完成,就有机会被封装
这是我觉得最重要的一点。
如果一个人能够借助计算机完成一件事情,那么原则上,这件事情就有机会被封装成 skill,再交给 AI agent 使用。
这里的关键不在于“这件事是否复杂”,而在于“它是否可以被描述清楚”。
例如:
- 部署一个服务
- 检查一份配置是否符合规范
- 批量重命名文件
- 从代码库里抽取变更点并整理成周报
- 根据既有风格撰写一篇技术博客
这些事情里,有的偏工程,有的偏内容,有的偏运维,有的偏数据处理。
它们领域不同,但抽象结构非常相似:输入一组上下文,按照一套规则执行,输出一个结果。
而这正是 skill 最适合承载的东西。
这里的关键不是“先写一个 skill 文件”,而是先确认这项能力本身是否真的存在、是否能被重复执行、是否能被 agent 学会。
为什么不应该主要靠人直接写 Skill
很多人会自然地想到:既然 skill 是一套能力描述,那就让人来写不就行了。
但这件事的问题恰恰在这里。
人写出来的东西,往往会带着这些问题:
- 表达模糊
- 默认前提太多
- 步骤跳跃
- 边界条件写不清
- 成功标准不稳定
一个熟练的人类工程师,在脑子里会自动补全很多上下文,所以他写下来的说明看起来已经“够用了”。但对于 agent 来说,这种说明经常是不够精确的。
最典型的情况是:
- 人觉得“这里改一下配置就行”
- agent 不知道到底要改哪个文件、改哪一行、改完之后怎么验证
也就是说,人类写 skill 的方式,天然容易把大量隐性经验藏在字缝里。
这会导致 skill 看起来像是有了,实际上执行起来依旧不稳定。
更合理的方式:先教会 Agent,再让 Agent 总结
我更认同的方式是:
- 用户先带着 agent 完成一件具体的事情
- 在过程中不断纠正 agent 的理解和动作
- 当任务完成后,让 agent 反过来总结“这件事情应该如何做”
- 再把这份总结沉淀成 skill
这样做有一个明显优势:
这份 skill 不是凭空写出来的,而是从一次真实执行中长出来的。
它记录的不是“人以为应该怎么做”,而是“agent 在真实环境里怎样才能做成”。
两者差别很大。
前者更像纸面流程,后者更像经过验证的工作流。
Skill 应该是可演化的,不是一次性文档
如果 skill 真的是能力封装,那么它就不应该是一次写完、永远不变的东西。
它应该随着执行不断被修正。
比如:
- 某一步经常失败,那就应该补充前置检查
- 某个命令在不同环境下不稳定,那就应该加入分支条件
- 某类输入经常引起歧义,那就应该补充更明确的约束
- 某个输出不符合预期,那就应该重写成功标准
从这个角度看,skill 更像是一份持续迭代的执行资产。
第一次只是初稿。
后面每次真实调用、每次失败、每次人工纠正,都会让这份 skill 更接近“一个真正可用的能力模块”。
所以更合理的链路不是:
人写 skill -> agent 使用
而应该是:
人教 agent 做事 -> agent 总结 skill -> 后续执行持续微调
这条链路更符合 agent 的成长方式,也更符合工程现实。
为什么 Skill 对 Agent 特别重要
没有 skill 的 agent,更多依赖临场推理。
它可以回答问题,也可以尝试做事,但执行质量会明显依赖上下文是否完整、提示词是否精确,以及这次推理是否刚好走到了正确路径。
有了 skill 之后,agent 的能力会出现一个很大的变化:从“每次重新想一遍”,变成“调用一套已经整理好的做法”。
这会带来几个直接收益:
- 稳定性更高
- 输出更一致
- 更容易复用
- 更容易组合成更长的工作流
本来需要一个熟练工程师反复做的事情,一旦被整理成 skill,就可能变成 agent 的基础能力模块。
而当基础能力模块足够多,agent 才真正开始接近“可用的协作者”,而不是“偶尔聪明的聊天机器人”。
Skill 不是魔法,仍然是工程
讲到这里,很容易把 skill 想得过于理想化,好像只要写一段说明,agent 就自动掌握了一项技能。
实际并不是这样。
好的 skill,依旧是一种工程产物。
它需要反复迭代,需要处理失败场景,需要考虑权限、依赖、环境差异、输入脏数据、输出质量、人工确认节点。
也就是说,封装 skill 的过程,本身就是在做一件非常标准的工程化工作:
- 抽象问题
- 固化流程
- 降低不确定性
- 把经验沉淀成资产
从这个角度看,skill 其实很像函数、脚本、CLI 工具、操作手册和 SOP 的结合体。
区别只是:它最终服务的对象,不再只是人,而是 AI agent。
对个人和团队来说,这意味着什么
如果你接受“skill 是能力封装”这个视角,那么很多事情都会变得更清楚。
对于个人来说,skill 的沉淀过程,其实是在逼自己回答一个问题:
我到底会什么?我会的这件事,能不能被我讲清楚、拆清楚、交给别人或者交给 agent 去执行?
对于团队来说,skill 的价值更大。
很多原本附着在少数人身上的经验,例如打包发布、故障排查、文档整理、合规检查、数据导出,这些都可以逐步沉淀为可复用能力,而不是一直停留在“只有某个人会”的状态。
这会让团队知识更容易继承,也会让 agent 真正开始接入生产流程。
最后
我越来越倾向于把 AI agent 看成一种新的执行接口。
而 skill,就是这个接口背后的能力描述层。
它的价值不在于“让 AI 看起来更强”,而在于把人的能力以一种可执行、可复用、可组合的方式重新组织起来。
所以我对 skill 的理解很简单:
如果一个人能通过计算机干成一件事情,那么这件事情就值得尝试被封装成 skill。
但这个封装动作,未必应该由人直接拿键盘去写。
更好的方式,是先让用户把 agent 教会,让它在真实任务中学会边界、步骤、验证方法和失败处理,再由它自己把这些经验总结成 skill,并在后续反复执行中持续微调。
这样形成的 skill,才更像真正的能力,而不是一份看上去完整、实际上充满歧义的说明书。