用Agent技能为现实世界装备智能体
Equipping agents for the real world with Agent Skills
Anthropic 于2025年12月18日发布Agent Skills,一种跨平台可移植的开放标准,用于为通用agent(如Claude Code)配备领域专业知识。Skills是包含指令、脚本和资源的组织化文件夹,agent可动态发现并加载。其核心设计采用渐进式披露:SKILL.md文件包含YAML元数据(name和description),agent据此决定是否加载完整上下文;复杂skill可捆绑额外文件(如reference.md、forms.md)供按需读取。Skills还支持预编写Python脚本作为工具执行,提升效率与确定性。目前已在Claude.ai、Claude Code、Agent SDK及Developer Platform上得到支持。作者为Barry Zhang、Keith Lazuka和Mahesh Murag。
更新: 我们已发布 Agent Skills 作为跨平台可移植性的开放标准。(2025年12月18日)
随着模型能力的提升,我们现在可以构建与完整计算环境交互的通用 agent。例如,Claude Code 能够通过本地代码执行和文件系统完成跨领域的复杂任务。但随着这些 agent 变得愈发强大,我们需要更可组合、可扩展且可移植的方式来为其配备领域专业知识。
这促使我们创建了 Agent Skills:一个包含指令、脚本和资源的组织化文件夹,agent 可以动态发现并加载这些内容,从而在特定任务上表现更佳。Skills 通过将你的专业知识打包成可组合的资源来扩展 Claude 的能力,将通用 agent 转化为满足你需求的专用 agent。
为 agent 构建 skill 就像为新员工准备入职指南。无需为每个用例构建碎片化、定制设计的 agent,任何人都可以通过捕获和共享其程序性知识,用可组合的能力来专业化自己的 agent。在本文中,我们将解释什么是 Skills,展示它们如何工作,并分享构建自己 skill 的最佳实践。
为了直观展示 Skills 的实际应用,让我们看一个真实例子:支撑 Claude 最近发布的文档编辑能力的 skill 之一。Claude 已经对理解 PDF 了解很多,但直接操作 PDF(例如填写表单)的能力有限。这个 PDF skill 让我们赋予 Claude 这些新能力。
在最简单的情况下,一个 skill 就是一个包含 SKILL.md 文件的目录。该文件必须以包含必要元数据(name 和 description)的 YAML frontmatter 开头。启动时,agent 会将每个已安装 skill 的名称和描述预加载到其系统提示中。
这些元数据是渐进式披露的第一层:它只提供足够的信息让 Claude 知道何时应使用每个 skill,而无需将所有内容加载到上下文中。该文件的实际正文是第二层细节。如果 Claude 认为该 skill 与当前任务相关,它会通过将完整的 SKILL.md 读入上下文来加载该 skill。
随着 skill 复杂度的增加,它们可能包含过多上下文而无法放入单个 SKILL.md,或者仅在特定场景下相关的上下文。在这些情况下,skill 可以在 skill 目录中捆绑额外文件,并从 SKILL.md 中按名称引用它们。这些额外的链接文件是第三层(及更深)的细节,Claude 可以选择仅在需要时导航和发现它们。
在下面展示的 PDF skill 中,SKILL.md 引用了两个额外文件(reference.md 和 forms.md),skill 作者选择将它们与核心 SKILL.md 捆绑在一起。通过将表单填写指令移到单独的文件(forms.md)中,skill 作者能够保持 skill 核心的精简,并相信 Claude 仅在填写表单时才会读取 forms.md。
渐进式披露是使 Agent Skills 灵活且可扩展的核心设计原则。就像一本组织良好的手册,从目录开始,然后是具体章节,最后是详细附录,Skills 让 Claude 仅在需要时加载信息:
拥有文件系统和代码执行工具的 agent 在处理特定任务时,无需将整个 skill 读入其上下文窗口。这意味着可以捆绑到 skill 中的上下文量实际上是无限的。
下图展示了当用户消息触发 skill 时,上下文窗口如何变化。
所示的操作序列:
Skills 还可以包含供 Claude 自行决定作为工具执行的代码。
大型语言模型在许多任务上表现出色,但某些操作更适合传统的代码执行。例如,通过 token 生成来排序列表远比直接运行排序算法昂贵得多。除了效率问题外,许多应用需要只有代码才能提供的确定性可靠性。
在我们的示例中,PDF skill 包含一个预编写的 Python 脚本,用于读取 PDF 并提取所有表单字段。Claude 可以运行此脚本,而无需将脚本或 PDF 加载到上下文中。而且由于代码是确定性的,这个工作流是一致且可重复的。
以下是一些有助于开始编写和测试 skill 的指导原则:
Skills 通过指令和代码为 Claude 提供新能力。虽然这使它们功能强大,但也意味着恶意 skill 可能会在使用的环境中引入漏洞,或指示 Claude 泄露数据并采取意外操作。
我们建议仅从可信来源安装 Skills。当从不太可信的来源安装 skill 时,请在使用前彻底审计它。首先阅读 skill 中捆绑的文件内容,了解其功能,特别注意代码依赖项和捆绑的资源(如图像或脚本)。同样,注意 skill 中指示 Claude 连接到潜在不可信外部网络源的指令或代码。
Agent Skills 目前已在 Claude.ai、Claude Code、Claude Agent SDK 和 Claude Developer Platform 上得到支持。
在未来几周内,我们将继续添加支持创建、编辑、发现、共享和使用 Skills 完整生命周期的功能。我们尤其对 Skills 帮助组织和个人与 Claude 共享其上下文和工作流的机会感到兴奋。我们还将探索 Skills 如何通过教授 agent 涉及外部工具和软件的更复杂工作流来补充 Model Context Protocol(MCP)服务器。
展望更远的未来,我们希望让 agent 能够自行创建、编辑和评估 Skills,让它们将自己的行为模式编码为可复用的能力。
Skills 是一个简单的概念,具有相应简单的格式。这种简单性使组织、开发者和最终用户更容易构建定制化的 agent 并赋予它们新能力。
我们很期待看到人们用 Skills 构建什么。立即开始,查看我们的 Skills 文档和 cookbook。
作者:Barry Zhang、Keith Lazuka 和 Mahesh Murag,他们都非常喜欢文件夹。特别感谢 Anthropic 内部众多倡导、支持并构建 Skills 的同事。