很多 Agent Skill 写不好,不是因为流程不够复杂,而是因为边界不清楚。边界包含两个问题:什么时候应该使用这个 Skill,以及什么时候不应该使用。

为什么边界重要

Agent 在执行任务时会面对大量相似场景。如果 Skill 只写“用于处理文档”或者“用于代码任务”,它很容易被错误触发。错误触发的后果通常不是立刻失败,而是走了一段看似合理、实际偏离目标的流程。

更好的写法是把适用范围拆开:

  • 输入特征:用户会提供什么信息;
  • 任务目标:最后要产出什么;
  • 排除情况:哪些场景看起来相似,但应该交给别的 Skill;
  • 安全边界:哪些动作必须确认。

推荐模板

可以在 Skill 开头保留一小段“适用性判断”:

1
2
3
4
5
6
7
8
9
Use when:
- 需要批量整理已有文档;
- 输出是 Markdown 或结构化摘要;
- 允许读取本地文件。

Do not use when:
- 需要发送外部消息;
- 需要修改权限;
- 用户只是询问概念。

这类文字看起来朴素,但能显著减少误用。

边界要能被验证

边界不应该只是一句抽象描述。比如“处理复杂任务”就太模糊;“需要跨三个以上文件并运行测试”更容易判断。

可验证的边界能让 Agent 更稳定,也方便后续维护。随着任务增多,Skill 之间的分工会越来越重要。边界写清楚,流程才不会互相打架。