Agent Skill 设计与实践
创建 Skill

创建高质量 Skill 的常用模式

一些经过验证的“高效模式”,让 Agent 更稳定地理解和执行任务

所谓“模式”,是指在不同场景中反复出现、被证明有效的一类做事方式或结构。

Skill 也有一些被验证有效的模式,合理使用1这些模式,可以提升任务完成的效率和质量。

避坑提示 (Gotchas)

Gotchas 是对“默认行为”的纠偏:如果不显式说明,系统或 Agent 很可能按错误的方式运行,对很多 Skill 来说,最有价值的部分往往就是这些容易踩坑的点。

比如订机票这个场景,如果没特别说明,Agent 可能会默认价格最低的就是最划算的。但实际情况是,一些“附加条款“也很重要,比如低价票通常不包含行李、不能改签,甚至选座、机上服务要额外付费。所以需要明确指出“价格是一个重要的考虑因素,但其他因素如行李政策、改签政策、座位选择等也很重要,请综合考虑这些因素来推荐机票。”

所以最好在 SKILL.md 中的 Gotchas 章节把这些“避坑点”直接列出来,让 Agent 在真正遇到问题之前就知晓。

格式化呈现采用模板而不是描述

当你需要 Agent 按某种固定格式输出时,最好直接给一个模板,而不是用文字描述的方式来说明。

相比用文字去描述“应该长什么样”,模板更可靠,因为 Agent 更擅长照着具体结构去模仿。

  • 简短的模板可以直接写在 SKILL.md 里
  • 较长的模板,或者只在特定情况下才用的模板,可以放在 assets/ 目录中
  • 然后在 SKILL.md 里说明什么时候需要用这个模板,按需加载

比如下面的菜谱模板,Agent 只需按照结构填充内容就行了。

receipt-template.md
# [菜名]

## 简介
[一句话描述这道菜的特点或口味]

## 食材(X人份)
- 主料:
  - [食材名称]:用量
- 辅料:
  - [食材名称]:用量
- 调料:
  - [调料名称]:用量

## 做法
1. [步骤1]
2. [步骤2]
3. [步骤3]
4. [步骤4]
n. [步骤n]

## 小贴士(可选)
- [关键技巧或容易出错的点]
- [可替代食材或调整建议]

多步骤采用任务清单

当一个任务需要分多步完成时,给 Agent 一个明确的清单,可以帮助它:

  • 跟踪当前进度
  • 避免漏掉关键步骤
  • 按正确顺序执行(尤其是有前后依赖或需要检查的步骤)

下面是一个内容发布的任务清单示例。

CHECKLIST.md
## 内容发布流程

- [ ] 步骤1:理解发布目标(主题、受众、渠道)
- [ ] 步骤2:撰写内容初稿
- [ ] 步骤3:检查内容质量(逻辑是否清晰、是否有错别字)
- [ ] 步骤4:根据规范调整格式(标题、段落、配图说明等)
- [ ] 步骤5:自检是否符合发布要求(字数、风格、合规性)
- [ ] 步骤6:输出最终版本(用于发布)

验证循环

在任务执行过程中,不要让 Agent 一路做到底,而是要让它每完成一轮就自检一次。

基本模式是:做一轮 → 检查结果 → 发现问题就修正 → 再检查 → 直到通过为止

这里的“检查”可以是:

  • 一个校验规则
  • 一份参考清单
  • 或者一次明确的自我检查

仍然用内容发布的例子来说明,Agent 每完成一个步骤,就要检查一下是否符合要求,如果不符合就修正,直到满足要求为止。

1. 完成内容初稿修改
2. 进行检查:
   - 是否有错别字或语病
   - 逻辑是否清晰
   - 是否符合目标读者的理解水平
3. 如果检查未通过:
   - 找出具体问题
   - 修改对应内容
   - 再次进行检查
4. 只有全部检查通过,才进入下一步(发布或交付)

规划 → 验证 → 执行

对于一些批量操作或一旦执行就难以回退的任务,不要让 Agent 直接动手,而是分三步走:

Plan / 规划

先做一个清晰的“执行计划”

Validate / 验证

用一个明确的标准去检查这个计划是否正确

Execution / 执行

确认没问题后,再真正执行

比如说批量发布文章流程

1. 制定发布计划(生成 posts_plan.json)
   - 包含每篇文章的标题、发布时间、发布渠道

2. 校验计划:
   - 是否所有文章都有标题和内容
   - 发布时间是否冲突
   - 渠道是否在允许范围内
   - 选题是否符合标准

3. 如果校验不通过:
   - 找出问题(如“发布时间重复”或“缺少内容”)
   - 修改发布计划
   - 再次校验

4. 校验通过后,才执行发布操作

整个过程的关键在第 2 步: 先用一个“标准”去检查计划本身,而不是直接执行

这个标准可以是:

  • 一份规则清单
  • 一个校验脚本
  • 或一份“正确结构”的参考

当校验失败时,清晰的错误信息(比如“发布时间冲突:第2篇和第5篇”)可以帮助 Agent 快速修正,而不是盲目重试。

用脚本封装能力

在不断优化一个 Skill 的过程中,可以观察 Agent 在不同测试用例里的执行过程。 如果你发现 Agent 每次都在“重复造轮子”,比如反复做这些事情:

  • 生成图表
  • 解析某种固定格式
  • 有序地调用某些工具
  • 校验输出是否正确

那就说明,这些逻辑已经是稳定且通用的需求了。

这时候更好的做法是: 把这段逻辑写成一个可靠的工具(脚本),统一放到 scripts/ 里供 Agent 使用。

Footnotes

  1. 并非每个 Skill 都要使用这些模式,结合实际情况灵活使用。

On this page