从洛克王国理解 Agent 上下文工程:SKILL.md 里的 name、description 和正文怎么写

`name` 是 Skill 的名字,`description` 是 Agent 判断“要不要用它”的索引,正文才是具体操作手册。写好 `SKILL.md`,本质上是在给 Agent 做一套轻量、可按需加载的上下文地图。

这篇是 Skill 工坊系列的进阶入门篇。前面我们讲了 Skill 是什么、怎么安装、一个 Skill 文件夹里有哪些东西。现在进入最关键的文件:`SKILL.md`。

很多人第一次写 Skill,会把全部规则都塞进正文里,甚至把它写成一篇超长提示词。这样做短期能跑,长期会遇到两个问题:

· Agent 不知道什么时候该调用它。

· 一旦调用,正文太长,占用大量上下文,还容易抓不住重点。

所以真正要学的,不是“写一段更长的提示词”,而是理解 `SKILL.md` 的三层信息结构。

用《洛克王国》这款20263D火爆游戏来理解

如果把 Agent 执行任务想象成玩家进入《洛克王国》的世界,它不是一出生就需要知道所有宠物的全部技能、全部地图事件、全部克制细节。

它会先看地图和图鉴:
这里有哪些地图?

这里有哪些宠物?

这个宠物大概是什么系别?

这个任务可能要去哪儿?

只有当它真的进入某个区域、遇到某只宠物、准备打一场战斗时,才需要查看更详细的信息:
宠物具体技能是什么?

属性克制关系是什么?

当前血量、等级、状态如何?

捕捉还是战斗更合适?

Agent 使用 Skill 也是类似的。它不应该一开始就加载所有操作手册,而应该先看轻量索引,再按需读取细节。

2026 年的 Skill,核心是渐进式披露

截至 2026 年,Agent Skills 已经不只是 Claude 生态里的一个功能。OpenAI/Codex、Claude、Gemini CLI、Cursor、VS Code、GitHub Copilot、opencode 等工具都在支持或采用类似的 `SKILL.md` 思路。

这些实现细节不完全一样,但核心设计很接近:让 Agent 先看到少量元信息,再在任务相关时加载完整说明。

可以把它理解成三层:
第一层:name + description

用于发现和判断:这个 Skill 是什么,什么时候用。

第二层:SKILL.md 正文

用于执行:具体步骤、规则、输出格式、停止条件。

第三层:references / scripts / assets

用于补充:长资料、确定性脚本、模板素材,按需读取或使用。

这就是上下文工程里很重要的“渐进式披露”:不是把所有知识一次性塞给 Agent,而是让它像玩家探索地图一样,先看索引,再看区域说明,最后需要时才查细节。

一个 SKILL.md 长什么样

先看一个最小结构:
name: forum-post-checker

description: 检查 AIHELPU 论坛帖子发布格式。用户要求检查标题、分类、标签、母帖回链、参考资料或 Markdown 排版时使用。

检查用户提供的论坛帖子,并输出:

1. 标题是否清楚;

2. 分类和标签是否合适;

3. 是否包含母帖回链;

4. 是否有参考资料;

5. 是否可以直接发布;

6. 需要修改的地方。

这份文件看起来简单,但它已经包含了 `SKILL.md` 的三个核心部分:
name:这个 Skill 叫什么

description:什么时候应该调用它

正文:调用后应该怎么做

`name`:给 Skill 一个清楚的名字

`name` 是 Skill 的标识。它应该短、清楚、稳定。

不建议这样写:
name: my-skill

也不建议这样写:
name: super-ai-helper

这两个名字都太泛。一个读不出用途,一个像营销口号。

更好的写法是:
name: forum-post-checker

或者:
name: weekly-report-writer

命名建议:
1. 使用小写字母、数字和连字符

2. 尽量动词或任务导向

3. 让人一眼看出用途

4. 不要用“万能”“超级”“大师”这类泛词

5. 不要频繁改名,避免旧调用方式失效

如果用《洛克王国》类比,`name` 就像宠物图鉴里的名字。你看到“火花”“水蓝蓝”“喵喵”,能先知道它是谁;但光知道名字,还不知道什么时候该派它上场。

`description`:决定 Skill 会不会被触发

`description` 是整个 `SKILL.md` 最容易被低估的地方。

Agent 通常先看到所有 Skill 的 `name` 和 `description`,再判断当前任务要不要加载某个 Skill。也就是说,`description` 不是给人看的宣传语,而是给 Agent 用的触发索引。

不好的写法:
description: 帮助写文章

这太宽泛,几乎所有写作任务都可能触发它。

也不好的写法:
description: 一个非常强大的论坛内容增长专家,可以帮助用户完成各种内容创作任务。

这像广告,不像触发条件。

更好的写法:
description: 整理 AIHELPU 论坛 Skill 工坊帖子。用户要求检查标题、分类、标签、母帖回链、参考资料、Markdown 排版或发布格式时使用。

好 `description` 要包含三类信息:
1. 这个 Skill 做什么

2. 用户什么时候会需要它

3. 用户可能会怎么说

用洛克王国类比,`description` 就像宠物的“系别 + 适用战斗”。你不能只写“很强的宠物”,而要写清楚:
火系,适合对付草系敌人;

水系,适合对付火系敌人;

辅助型,适合回复、控制和拖回合。

如果描述太模糊,Agent 就像新手玩家乱派宠物,很容易选错。

description 的三个写法模板

模板 1:场景触发型

适合论坛、文档、运营类 Skill。
description: 检查 AIHELPU 论坛帖子发布格式。用户要求检查标题、分类、标签、母帖回链、参考资料或 Markdown 排版时使用。

模板 2:文件类型触发型

适合 Word、Excel、PDF、PPT 等文件处理 Skill。
description: 处理 Word 文档排版和内容修改。用户上传 docx 文件并要求润色、重排、生成发布版或检查格式时使用。

模板 3:工作流触发型

适合周报、会议纪要、直播选题等固定流程。
description: 生成 AI 行业直播选题清单。用户要求整理 AI 新闻、筛选直播主题、生成直播台本或检查新闻来源时使用。

写完后,可以用一句话自测:
用户如果真的需要这个 Skill,会不会说出 description 里的关键词?

如果不会,就要改。

正文:别写百科,写执行手册

`SKILL.md` 正文是在 Skill 被选中之后才读取的内容。它不是用来解释“我为什么做这个 Skill”,而是告诉 Agent “现在怎么执行”。

正文建议包含五块:
1. 任务目标:这个 Skill 要完成什么

2. 输入要求:用户需要提供什么材料

3. 执行步骤:Agent 按什么顺序处理

4. 输出格式:最后交付什么样的内容

5. 停止条件:遇到哪些情况不要猜,先问用户

示例:
## Goal

把用户提供的文章整理成适合 AIHELPU Skill 工坊发布的版本。

## Inputs

- 原始文章正文

- 母帖链接

- 参考来源链接

- 用户指定的分类或标签

## Workflow

1. 先判断文章属于科普、安装、案例还是创作者规范。

2. 检查标题是否清楚,避免夸张标题党。

3. 检查正文是否有二级标题、短段落和代码块。

4. 检查是否包含母帖回链和下一篇建议。

5. 检查参考资料是否有来源链接。

6. 输出可直接发布的 Markdown。

## Output

按以下结构输出:

- 标题

- 分类建议

- 标签建议

- 正文

- 上一篇 / 下一篇 / 返回母帖

- 参考资料

## Stop conditions

- 如果用户没有提供正文,先询问,不要编造。

- 如果来源不清楚,标记“待补充来源”。

- 如果出现隐私、密钥、账号信息,提醒删除后再发布。

这就比一句“你是资深编辑,请帮我优化文章”稳定得多。

正文里不要放太多细节

很多新手写 `SKILL.md`,会把所有参考资料、案例、规则、链接都塞进正文。

这相当于在洛克王国新手进入第一个地图时,就把全部宠物图鉴、全部属性克制表、全部副本攻略、全部装备说明一次性塞给他。

信息是多了,但决策反而慢了。

更好的方式是把正文写成“主线任务”,把长资料放到 `references/`:
forum-post-checker/

├── SKILL.md

└── references/

├── aihelpu-style.md

├── title-examples.md

└── skill-section-rules.md

在 `SKILL.md` 里只写:
当用户要求判断论坛语气时,读取 references/aihelpu-style.md。

当用户要求改标题时,读取 references/title-examples.md。

当用户要求检查 Skill 工坊规则时,读取 references/skill-section-rules.md。

这样 Agent 只有在需要时才读细节。

洛克王国版三层模型

把 Skill 的信息分层换成洛克王国,就很好理解。

LOD-0:地图和图鉴索引

对应 `name + description`。
宠物名称:火花

简要说明:火系,适合对付草系敌人。

Agent 只需要知道:
这个 Skill 存在;

大概做什么;

什么时候可能用。

LOD-1:宠物技能说明和战斗策略

对应 `SKILL.md` 正文。
火花有哪些技能;

打草系时先用哪个技能;

血量低时要不要换宠;

遇到水系时是否停止强攻。

Agent 读取正文后,就能完成大部分常规任务。

LOD-2:完整攻略、属性表和副本细节

对应 `references/`、`scripts/`、`assets/`。
完整属性克制表;

所有宠物技能数据;

副本机制说明;

捕捉概率计算脚本;

输出报告模板。

这些内容不必一开始就读。只有任务进入具体战斗、具体副本、具体计算时,才按需加载。

2026 版写法:让 Skill 更像路由器

2026 年的 Agent 不再只是“看提示词回答问题”。它可能会读文件、跑脚本、调用工具、连接 MCP、生成文档。

所以 `SKILL.md` 的作用越来越像一个轻量路由器:
用户说了什么?

这属于哪个任务?

需要读哪个 reference?

需要跑哪个 script?

哪些动作必须人工确认?

最后按什么格式输出?

一个好的 `SKILL.md` 不应该替代所有工具,而应该告诉 Agent 怎么选择路径。

比如:
如果用户只要求检查标题,不读取 references/skill-section-rules.md。

如果用户要求完整发布检查,读取 references/skill-section-rules.md。

如果用户上传 Markdown 文件,先运行 scripts/check_markdown_stats.py。

如果用户要求自动发布到外部平台,停止并要求人工确认。

这才是 Skill 和普通提示词的区别。

一个完整示例:洛克王国战斗助手 Skill

为了方便理解,我们写一个虚构的洛克王国战斗助手 Skill。
name: rock-kingdom-battle-helper

description: 帮助分析洛克王国宠物战斗策略。用户询问宠物系别克制、出战顺序、技能选择、捕捉或新手战斗建议时使用。

## Goal

根据用户提供的宠物、敌方属性、等级和战斗目标,给出新手能理解的战斗建议。

## Inputs

- 我方宠物名称、等级和属性

- 敌方宠物名称、等级和属性

- 当前目标:通关、捕捉、练级或挑战

- 用户已知限制:不能换宠、药品不足、只想低成本通关等

## Workflow

1. 先判断我方和敌方属性关系。

2. 如果信息不足,先标记“待确认”,不要编造宠物数据。

3. 给出出战建议:继续打、换宠、捕捉或撤退。

4. 给出技能选择建议,优先解释为什么。

5. 如果涉及完整克制关系,读取 references/type-chart.md。

## Output

输出:

- 一句话建议;

- 属性克制判断;

- 推荐行动;

- 风险提醒;

- 需要补充的信息。

## Stop conditions

- 如果用户没有提供敌方属性,不要猜测;

- 如果宠物技能信息不确定,标记“待确认”;

- 不输出外挂、作弊、账号交易相关内容。

这个例子不是为了做游戏攻略,而是让你看懂 `name`、`description` 和正文的分工。

写 SKILL.md 的常见错误

错误 1:name 太泛
name: helper

改成:
name: forum-post-checker

错误 2:description 像广告
description: 一个强大的 AI 内容助手,帮你完成所有写作任务。

改成:
description: 检查 AIHELPU Skill 工坊帖子。用户要求检查标题、分类、标签、母帖回链、参考资料或 Markdown 排版时使用。

错误 3:正文只写身份,不写流程
你是一位资深内容运营专家,请帮用户写出高质量文章。

改成:
1. 先判断文章类型;

2. 检查标题;

3. 检查结构;

4. 检查来源;

5. 输出修改建议和发布版。

错误 4:没有停止条件

没有停止条件,Agent 就容易猜。

应该补上:
如果缺少原文,先询问用户。

如果来源不清楚,标记待补充。

如果涉及隐私或密钥,提醒删除。

小白记这三句话就够了

name:让人和 Agent 知道它叫什么。

description:让 Agent 知道什么时候该用它。

正文:让 Agent 知道用了以后怎么做。

如果再用洛克王国记忆:
name = 宠物名称

description = 系别和适用战斗

正文 = 技能说明、战斗流程和撤退条件

创作者发布前自查

如果你准备在 Skill 工坊发布一个 `SKILL.md` 教程或案例,发布前至少检查:
1. name 是否具体

2. description 是否包含真实触发场景

3. 正文是否写了步骤,而不是只写角色

4. 是否有输出格式

5. 是否有停止条件

6. 是否说明 references/scripts/assets 什么时候使用

7. 是否避免夸大“自动完成一切”

8. 是否标明参考来源

小结

`SKILL.md` 的难点,不是 Markdown 语法,而是信息分层。

`name` 要短而清楚,像图鉴里的宠物名称。

`description` 要写出触发条件,像宠物的属性和适用战斗。

正文要写流程、格式和停止条件,像真正能上场执行的战斗说明。

当你能把一个 Skill 写成“先看索引、再看主线、需要时才查细节”的结构时,它就不再是一段提示词,而是一套可以被 Agent 长期复用的上下文工程。