Agent Skill 制作手册是一个系列教程。这是第一篇。
什么是 skill
很多程序员问,Agent Skill 是什么?我敢说,Agent Skill 是你们学习编程以来能学到的最简单的技术之一。
skill 是怎么发展出来的
就像新入职的同事要先看 how-to 文档才能开始做事一样,LLM 也需要提前给它喂步骤,才能做得准确。但 LLM 的上下文有限,每次塞一大堆文档代价太高。
于是人们想到:LLM 只需记住每个 how-to 的描述,需要时再去读正文,就像我们记得"有那么个 wiki",用到时再查一样。这样就推导出了一个最小结构——只有 name 和 description 两个核心属性,加上正文。每次只加载描述,LLM 自行判断是否需要读全文。
这就是 skill。叫 howto、guide 都无所谓,大家觉得 skill 够短好记就用了。
skill 是哪家的?
SKILL.md 形态最早由 Anthropic 推广,但"让 AI 学技能"这个思想不属于任何一家。OpenAI、OpenClaw、Hermes Agent 都有自己的实现,细节不同,本质一样。
怎么写 skill
skill 通用规范
各家的共同点是:skill 是一个文件夹:
my-skill/
SKILL.md # 必须:元数据 + 指令
scripts/ # 可选:可执行脚本
references/ # 可选:文档、说明、规范
最重要的是 SKILL.md,最小只需要 name 和 description:
---
name: skill的名字
description: 解释这个skill是干嘛的,什么时候应该被触发,什么时候不应该被触发等
---
逻辑复杂时加 scripts,文档太多时用 references 避免撑爆上下文。
写一个 skill
来动手写一个 skill 吧。我保证这是你看到的最短的教程。这个 skill 会在你说三次 Hello 的时候回复三个 World。新建 SKILL.md,并在里面写:
---
name: hello-world
description: 当用户说三次"Hello"(例如"Hello Hello Hello")时,回复三次"World":"World World World"。
---
# Hello World
当用户的消息中包含恰好三个"Hello"时,只回复:
World World World
不说其他任何内容,只有这三个字。
然后安装到你的 AI agent 里面。你问我怎么安装?这都什么年代了,你问你自己的 AI agent 怎么安装,它自会告诉你的。
skill 规范
Skill 防触发机制
是否触发 Skill 由 LLM 自己判断,这会导致误触发或不触发的问题。各家的应对方式:
-
禁止自动触发,允许手动触发
- Claude / OpenClaw:
disable-model-invocation: true - Codex:
agents/openai.yaml里的allow_implicit_invocation: false
- Claude / OpenClaw:
-
彻底禁用 skill
- Codex:
[[skills.config]] enabled = false - OpenClaw:
skills.entries.<skillKey>.enabled = false
- Codex:
skill 的优点是自由,缺点也是自由。后续教程会介绍一些解决误触发的范式。
Skill 的分类
skill 和 command
在 Claude 桌面版中,按 / + <skill名> 即可触发;OpenClaw 则通过 user-invocable: true 将 skill 暴露为斜杠命令。需要精确触发的 skill 适合做成 command,依赖 LLM 猜测的则不必。
工作流式和应用式
- 工作流式:只定义步骤,只需
SKILL.md,复杂流程可移到references - 应用式:需要确定性逻辑或外部工具时才引入
scripts,不要过度使用