用 Agent Skills 武装 Agent 应对真实世界
发布日期: 2025年10月16日
作者: Barry Zhang、Keith Lazuka 和 Mahesh Murag
Claude 很强大,但真实工作需要程序性知识和组织上下文。本文介绍了 Agent Skills,被描述为"Agent 可以动态发现和加载的、由指令、脚本和资源组成的有组织的文件夹"。Skills 通过将专业知识打包成可组合的资源来扩展 Claude 的能力,将通用 Agent 转变为专业化 Agent。
更新(2025年12月18日): Agent Skills 已作为跨平台可移植的开放标准在 agentskills.io 发布。
Skill 的解剖结构
文章通过一个真实示例进行了讲解:驱动 Claude 文档编辑能力的 PDF Skill。Claude 已经理解 PDF,但直接操作 PDF 的能力有限(如填写表单)。PDF Skill 提供了这些新能力。
最简单的形式是,"一个 Skill 就是一个包含 SKILL.md 文件的目录。"此文件必须以 YAML frontmatter 开头,包含必需的元数据:name 和 description。在启动时,Agent 会将每个已安装 Skill 的名称和描述预加载到其系统提示中。
这些元数据代表了第一层渐进式信息披露——提供足够的信息让 Claude 判断一个 Skill 是否相关,而无需加载所有内容。文件的主体是第二层详细信息;如果 Claude 判断该 Skill 适用于当前任务,它会将完整的 SKILL.md 读入 Context。
附加文件
随着 Skill 复杂度的增长,单个 SKILL.md 可能包含过多的上下文,或者某些上下文仅在特定场景下才相关。Skill 可以在 Skill 目录中捆绑额外的文件,并通过名称引用它们。这些文件作为第三层(及更深层)的详细信息。
在 PDF 示例中,SKILL.md 引用了两个额外文件:reference.md 和 forms.md。通过将表单填写指令移到单独的文件中,Skill 作者保持了核心 Skill 的精简,信任 Claude 只会在实际填写表单时才读取 forms.md。
渐进式信息披露
文章将渐进式信息披露描述为使 Skills 灵活且可扩展的核心设计原则。使用的类比是:"就像一本组织良好的手册,从目录开始,然后是具体章节,最后是详细的附录。"Skills 让 Claude 按需加载信息,这意味着"可以捆绑到一个 Skill 中的上下文量实际上是无限的"。
Skills 与 Context Window
当 Skill 被触发时的序列:
- Context Window 以核心系统提示、已安装 Skills 的元数据和用户的初始消息开始。
- Claude 通过调用 Bash 工具读取
pdf/SKILL.md的内容来触发 PDF Skill。 - Claude 读取 Skill 捆绑的
forms.md文件。 - Claude 在加载了相关指令后继续执行用户的任务。
Skills 与代码执行
Skills 可以包含供 Claude 自行决定执行的代码。文章指出,LLM 在许多任务上表现出色,但"某些操作更适合传统的代码执行"。例如,通过 Token 生成来排序列表远比运行排序算法成本更高。许多应用也需要代码才能提供的确定性可靠性。
PDF Skill 包含一个预编写的 Python 脚本,用于读取 PDF 并提取表单字段。Claude 可以运行此脚本而无需将脚本或 PDF 加载到 Context 中,而且由于代码是确定性的,工作流具有一致性和可重复性。
开发和评估 Skills
编写和测试 Skills 的指南:
- 从评估开始: 通过在代表性任务上运行 Agent 并观察其薄弱环节来识别具体的能力差距,然后增量构建 Skills 以弥补不足。
- 为扩展而设计: 当
SKILL.md变得臃肿时,将内容拆分到单独的文件中。对于互斥或很少同时使用的上下文,保持路径分离以减少 Token 使用。代码既可以作为可执行工具也可以作为文档——应该明确 Claude 是应该运行脚本还是将其作为参考来阅读。 - 从 Claude 的视角思考: 监控 Claude 如何使用你的 Skill 并根据观察进行迭代,留意意外的轨迹或对某些上下文的过度依赖。特别注意
name和description,因为 Claude 在决定是否触发 Skill 时会使用这些信息。 - 与 Claude 一起迭代: 要求 Claude 将成功的方法和常见的错误捕获到可复用的上下文和代码中。如果它偏离了轨道,要求它自我反思哪里出了问题。这有助于发现 Claude 实际需要什么上下文,而不是试图预先猜测。
安全注意事项
Skills 通过指令和代码为 Claude 提供新能力,这使它们非常强大,但也意味着"恶意 Skills 可能引入漏洞"或"指示 Claude 窃取数据并执行非预期操作"。
建议只从可信来源安装 Skills。当使用来自不太可信来源的 Skill 时,应先彻底审计——阅读捆绑的文件,注意代码依赖、捆绑的资源(如图片或脚本),以及任何连接到潜在不可信外部网络源的指令。
Skills 的未来
Agent Skills 在 Claude.ai、Claude Code、Claude Agent SDK 和 Claude Developer Platform 上均受支持。计划中的开发包括支持创建、编辑、发现、分享和使用 Skills 全生命周期的功能。团队还在探索 Skills 如何与 Model Context Protocol(MCP)服务器互补,教会 Agent 涉及外部工具的更复杂工作流。
更长远的目标是让 Agent 能够自行创建、编辑和评估 Skills,"让它们将自己的行为模式编码为可复用的能力"。
文章总结道,Skills 是一个概念简单、格式简单的概念,使组织、开发者和最终用户更容易构建定制化的 Agent。相关资源可在 Skills 文档 和 Cookbook 中获取。