跳转到内容

正文模式

SKILL.md 的 frontmatter 决定 Skill 是否被加载,正文决定 Skill 触发后执行得好不好。正文不是越长越好,而是要把每次执行都需要的关键步骤、判断条件和输出约束讲清楚。

推荐骨架

适合大多数 Skill 的五段式结构:

段落作用
概述一句话说明 Skill 的核心职责
前置检查确认输入、环境、依赖和权限
执行步骤用编号 SOP 写清处理顺序
示例覆盖正常、边界与错误场景
约束明确什么不做,避免越界

示例骨架:

markdown
# PDF 表格提取

## 概述

从 PDF 文件中提取表格,并输出为 CSV 或 Markdown。

## 前置检查

1. 确认用户提供了 PDF 文件路径。
2. 如果 PDF 加密,先询问密码。
3. 如果用户没有指定输出格式,默认 Markdown。

## 工作流程

1. 检查文件是否存在。
2. 判断是否需要 OCR。
3. 提取表格。
4. 汇总异常页码。
5. 输出结果和待复核项。

## 示例

...

## 约束

- 不承诺法律或财务结论。
- 不删除原始文件。

六种常用 Pattern

1. Template Pattern

适合需要统一输出格式的 Skill。

markdown
## 输出格式

请始终按以下格式输出:

- 摘要:
- 关键发现:
- 风险:
- 下一步:

短模板可以放在 SKILL.md,长模板放进 assets/

2. Examples Pattern

适合限定输入输出格式,降低 agent 自由发挥。

好的示例应覆盖:

  • 正常输入
  • 边界输入
  • 错误输入
markdown
## 示例

用户:帮我检查这个 Skill 的 description。
输出:

1. 是否只写触发条件:...
2. 是否包含隐式场景:...
3. 建议改写:...

3. Conditional Workflow Pattern

适合多分支任务。用决策树替代“根据情况选择”。

markdown
## 输出格式选择

- 用户明确要求 PDF → 生成 PDF
- 用户明确要求网页 → 生成 HTML
- 用户没有说明 → 默认 Markdown

不要写:

markdown
可以输出 PDF、HTML 或 Markdown,根据情况自行选择。

4. Script Automation Pattern

适合确定性操作。正文说明何时调用脚本,脚本执行具体操作。

markdown
当需要统计 CSV 列缺失率时,运行:

```bash
python scripts/profile_csv.py --input data.csv --output profile.json
```

如果脚本返回 `MISSING_FILE`,向用户确认文件路径。

长命令或复杂逻辑优先放到 scripts/,不要让 agent 手写每一步。

5. Read-Process-Write Pattern

适合文件转换和数据清洗。

text
读取输入 → 处理内容 → 写入输出 → 汇报文件路径

正文要明确:

  • 输入从哪里来
  • 输出写到哪里
  • 是否覆盖已有文件
  • 失败时如何处理

6. Gotchas Pattern

适合记录领域里“agent 不知道就会犯错”的事实。

markdown
## Gotchas

- 合同里的“罚息比例”不是实际金额,不要计入金额汇总。
- PDF 页码可能与文件页序不同,输出时同时标注两者。
- 扫描版 PDF 需要 OCR,不要直接判定没有表格。

Gotchas 要短、具体、可执行。

内容拆分规则

SKILL.md 变长时,不要继续堆正文。

内容建议位置
每次都必须遵守的步骤SKILL.md
长篇 API 文档references/
罕见边界情况references/
输出模板assets/
确定性转换逻辑scripts/
示例数据assets/references/

推荐上限:

  • SKILL.md 少于 500 行
  • 正文少于 5,000 token
  • 引用路径保持一层深

正文自查清单

  • [ ] 第一屏能看出 Skill 做什么
  • [ ] 前置检查清楚
  • [ ] 步骤有顺序,不是散文
  • [ ] 分支条件明确
  • [ ] 示例覆盖正常、边界、错误
  • [ ] 约束写清楚什么不做
  • [ ] 长资料已拆到 references/
  • [ ] 模板已拆到 assets/
  • [ ] 确定性操作已考虑 scripts/
  • [ ] 没有把过期 API 信息塞进主流程

下一步

Released under the MIT License.