skills 的本质

把这件事说清楚,需要往回退一步——不是从技术定义出发,而是从你实际运行的那71个文件夹出发。因为在广山哥的系统里,skills已经活成了某种比“技能”更朴素的东西。以下我对 skills 本质 的解剖。


一、skills 在文件系统上的样子

打开 ~/.pi/agent/skills/,你会看到一长串目录名:wechat-senddeepseek-searchtext2cardbook-writer……每个目录都是三样东西:

  
skill-name/
  
├── SKILL.md          # 说明书(人类与AI共同阅读)
  
├── scripts/          # 可执行脚本(确定性逻辑)
  
└── (可选) references/ # 参考文档、模板、配置文件
  

SKILL.md 以一段 YAML frontmatter 开头,里面写两样东西:name(工号)和 description(工牌)。description 要同时回答四个问题:能干什么、怎么干、什么时候该叫我、什么时候别叫我。

这个结构很轻,但它有三个关键的工程性质,而这三个性质合起来,就是 skills 的本质


二、skill 的本质:把“方法”写成“文件”

普通人理解“技能”,会想到“能力”“工具”“函数”。但 skill 的本质是“文件”——它是把一段可重复的劳动方法,固化成一组文件,放在一个固定的目录里,让系统可以按名字找到、按说明书理解、按脚本执行。

这个本质有三层含义:

1. 文件是系统的最小可信单元

在广山哥的系统里,几乎所有东西都是文件:skills 是文件,crontab 是文件,launchd 的 plist 是文件,日志是文件,备份是文件,决策日志还是文件。文件的好处是:它不依赖任何应用打开,不依赖任何服务在线,不依赖任何人的记忆。Markdown 文件几十年后还能读,YAML 文件换台机器还能解析。文件比数据库活得久,比 API 稳定,比记忆可靠。

2. 说明书是技能的核心,脚本只是附件

你打开 SKILL.md 会发现,它不只是“描述”,它定义了工人的行为边界。说明书里写清楚的:触发词、工作流程、注意事项、退出码含义、错误处理——这些决定了技能的质量。脚本反而不是最核心的部分,因为脚本只是“怎么做”的固化,而说明书决定了“什么时候做、做不做、做坏了怎么办”。一个只有脚本没有说明书的技能,等于一个没有操作规程的工人:他能干,但你不知道他什么情况下会干出什么来。

3. 触发词是技能的接口,不是装饰品

每个技能的 description 里都有触发词列表:“发微信”“推送到微信”“微信通知”“发张图到微信”——这些是工人的门牌号。agent 扫过 71 张名牌,谁的门牌号被命中,谁就进车间。触发词写得准,工人被正确调用;触发词写得太宽,工人抢别人的活;触发词写得太窄,工人永远不被叫到。


三、skill 与“函数”的区别

如果你把 skill 理解为“AI 时代的函数”,方向是对的,但会错过一个关键差异:

函数是代码层面的复用,skill 是行为层面的复用。

函数复用的是一段逻辑,调用方必须知道它的签名、参数类型、返回值。skill 复用的是一段“工作”:你不需要知道它怎么写,只需要知道它能干什么、什么时候喊它。调用方式不是代码里的 import,而是自然语言里的触发词。这不是退化,而是升级——它让“调用”这件事从“程序员懂”变成了“任何人都能喊”。


四、skill 与“工具”的区别

工具是“我有一把扳手,你可以拿来拧螺丝”。skill 是“你喊我一声,我把整个拧螺丝的活干了,还告诉你螺丝拧没拧紧”。

工具是被动的:你操作它,它不记得你上次怎么用的。skill 是主动的:它有自己的说明书、自己的触发词、自己的退出码、自己的错误处理。它不只封装了“动作”,还封装了“什么时候该动、动完怎么汇报、动坏了怎么办”。


五、skills 的演化路径

71 个 skills 不是一次写出来的,是按一条固定的路径长出来的:

  1. 手工阶段:某件重复劳动,你做了一遍又一遍。

  2. 脚本阶段:你把动作写成脚本,每次手动跑。

  3. 注册阶段:你给脚本包上 SKILL.md,写上触发词,放进 skills 目录。

  4. 被调度阶段:agent 读到了它,触发词命中时自动调用它。

  5. 迭代阶段:说明书被改写、脚本被优化、触发词被收窄、错误处理被补上。

这条路径说明一件事:skill 不是设计出来的,是进化出来的。 它从一个具体的、反复出现的痛点里长出来,而不是从“我要造一个技能”的抽象意图里造出来。反过来说,如果你没有先重复做过某件事三遍以上,你就不该为它写 skill——那是一个没有活过的技能,它的说明书是想象的,不是从真实经验里提炼的。


六、skill 对 AI 系统的意义

如果把 AI 系统看作一个工厂,skills 就是工人的岗位说明书加工具箱。它们让系统具备可扩展性:新增一个工人只需要新增一个目录;具备可维护性:工人出问题翻说明书和日志;具备可迁移性:整个 skills 目录拷到另一台机器,工人照常上岗。

更重要的是,skills 让 AI 的行为从“每次重新理解”变成“按规程执行”。没有技能的系统,每次都要让 AI 从零理解“微信怎么发、坑在哪里”;有技能的系统,这些知识已经被编成了说明书,AI 只需要读一次、照着做。这就是把“提示词工程”升级为“行为工程”的方式——把知识从 prompt 里搬出来,放进一个可复用、可维护、可迁移的文件里。


七、一句话收束

skill 的本质,是把一个反复出现的劳动,封装成一组文件,让系统可以自动找到它、理解它、执行它、并且每次执行后都知道它干没干成。

它不依赖记忆,不依赖自觉,不依赖任何人在场。它是一个可以被版本管理、被备份、被迁移、被审计的工作单元。它让“AI 能力”从“对话里的一次性输出”变成了“系统里的常驻工人”。

这就是 skills 的本质。