跳到正文
北京时间
原文
Anthropic:Newsroom·· 2025-10-16精选AI 评分83

Anthropic 讲解 Agent Skills 如何为智能体注入领域能力

Equipping agents for the real world with Agent Skills

AI 导读

Anthropic 介绍 Agent Skills 的原理与用法:技能是一个含 SKILL.md 的目录,通过渐进式披露按需加载指令、文件和可执行代码,其 PDF 技能示例展示了表单填写等文档编辑能力。

推荐理由

Anthropic 官方拆解 Agent Skills 的结构和渐进式披露设计,并给出编写、评测和安全审计的可操作建议。

正文 · AI 翻译
  • 2025年12月18日

    更新

    我们已将 Agent Skills 发布为跨平台可移植性的开放标准。

    查看更多


随着模型能力的提升,我们现在可以构建能够与完整计算环境交互的通用智能体。例如,Claude Code 可以利用本地代码执行和文件系统完成跨领域的复杂任务。但随着这些智能体变得更加强大,我们需要更具可组合性、可扩展性和可移植性的方式,为它们配备领域特定的专业知识。

这促使我们创建了 Agent Skills:即组织有序的指令、脚本和资源文件夹,智能体可以发现并动态加载它们,从而在特定任务上表现更佳。 Skills 通过将你的专业知识打包成可供 Claude 使用的可组合资源来扩展 Claude 的能力,将通用智能体转变为符合你需求的专用智能体。

为智能体构建一个 skill 就像为新员工准备一份入职指南。现在,任何人都无需为每个用例构建碎片化的定制智能体,而是可以通过捕获和分享他们的程序性知识,用可组合的能力使自己的智能体专业化。在本文中,我们将解释什么是 Skills,展示它们如何工作,并分享构建你自己的 Skills 的最佳实践。

To activate skills, all you need to do is write a SKILL.md file with custom guidance for your agent.

一个 skill 是一个包含 SKILL.md 文件的目录,其中包含组织有序的指令、脚本和资源文件夹,为智能体提供额外的能力。

skill 的剖析

为了直观地了解 Skills 的实际运作,让我们来看一个真实的例子:为 Claude 最近推出的文档编辑能力提供支持的一个 skill。Claude 已经非常擅长理解 PDF,但在直接操作它们(例如填写表单)方面的能力有限。这个 PDF skill 让我们能够赋予 Claude 这些新能力。

最简单的形式下,一个 skill 是一个包含 SKILL.md file 的目录。该文件必须以 YAML frontmatter 开头,其中包含一些必需的元数据:name 和 description。在启动时,智能体会将每个已安装 skill 的 name 和 description 预加载到其系统提示中。

这些元数据是渐进式披露的第一层:它提供的信息刚好足以让 Claude 知道每个 skill 应在何时使用,而无需将所有内容加载到上下文中。该文件的实际正文是第二层细节。如果 Claude 认为该 skill 与当前任务相关,它会通过读取完整的 SKILL.md 到上下文中来加载该 skill。

Anatomy of a SKILL.md file including the relevant metadata: name, description, and context related to the specific actions the skill should take.

SKILL.md 文件必须以 YAML Frontmatter 开头,其中包含文件名和描述,并在启动时加载到其系统提示中。

随着 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。

How to bundle additional content into a SKILL.md file.

你可以将更多上下文(通过附加文件)整合到你的技能中,然后由 Claude 根据系统提示触发。

渐进式披露是使 Agent Skills 灵活且可扩展的核心设计原则。就像一本组织良好的手册,从目录开始,然后是具体章节,最后是详细的附录,技能让 Claude 只在需要时加载信息:

This image depicts how progressive disclosure of context in Skills.

拥有文件系统和代码执行工具的智能体在处理特定任务时,不需要将整个技能读入其上下文窗口。这意味着可以捆绑到技能中的上下文量实际上是无限的。

技能与上下文窗口

下图展示了当技能被用户消息触发时,上下文窗口如何变化。

This image depicts how skills are triggered in your context window.

技能通过你的系统提示在上下文窗口中触发。

图中展示的操作顺序:

  1. 首先,上下文窗口包含核心系统提示和每个已安装技能的元数据,以及用户的初始消息;
  2. Claude 通过调用 Bash 工具读取 pdf/SKILL.md 的内容来触发 PDF 技能;
  3. Claude 选择读取技能捆绑的 forms.md 文件;
  4. 最后,Claude 在从 PDF 技能加载了相关指令后,继续执行用户的任务。

技能与代码执行

技能还可以包含代码,供 Claude 根据其判断作为工具执行。

大型语言模型在许多任务上表现出色,但某些操作更适合传统的代码执行。例如,通过 token 生成对列表进行排序比直接运行排序算法要昂贵得多。除了效率问题之外,许多应用需要只有代码才能提供的确定性可靠性。

在我们的示例中,PDF 技能包含一个预先编写的 Python 脚本,用于读取 PDF 并提取所有表单字段。Claude 可以运行此脚本,而无需将脚本或 PDF 加载到上下文中。而且由于代码是确定性的,此工作流程一致且可重复。

This image depicts how code is executed via Skills.

技能还可以包含代码,供 Claude 根据任务性质自行决定作为工具执行。

开发和评估技能

以下是一些帮助你开始编写和测试技能的有用指南:

  • 从评估开始:通过在代表性任务上运行智能体并观察它们在何处遇到困难或需要额外上下文,来识别智能体能力中的具体差距。然后逐步构建技能以解决这些不足。
  • 为规模而构建结构:当 SKILL.md 文件变得难以管理时,将其内容拆分为单独的文件并引用它们。如果某些上下文互斥或很少一起使用,保持路径分离将减少 token 使用量。最后,代码既可以作为可执行工具,也可以作为文档。应明确 Claude 是应直接运行脚本还是将其读入上下文作为参考。
  • 从 Claude 的角度思考:监控 Claude 在真实场景中如何使用你的技能,并根据观察进行迭代:留意意外的轨迹或对某些上下文的过度依赖。特别关注你的技能的 name 和 description。Claude 在决定是否响应当前任务触发技能时会使用这些。
  • 与 Claude 迭代:当你与 Claude 一起处理任务时,让 Claude 将其成功的方法和常见错误记录到技能中可复用的上下文和代码里。如果它在使用某个技能完成任务时偏离了方向,让它自我反思哪里出了问题。这个过程将帮助你发现 Claude 实际需要哪些上下文,而不是试图预先设想。

使用技能时的安全注意事项

技能通过指令和代码为 Claude 提供新能力。这虽然让技能变得强大,但也意味着恶意技能可能会在使用它们的环境中引入漏洞,或引导 Claude 窃取数据并采取非预期操作。

我们建议只从可信来源安装技能。从可信度较低的来源安装技能时,请在使用前彻底审查。首先阅读技能中打包的文件内容,了解它的作用,尤其要注意代码依赖项以及图像或脚本等打包资源。同样,要注意技能中指示 Claude 连接到可能不可信的外部网络来源的指令或代码。

技能的未来

Agent Skills 目前已被支持,覆盖 Claude.ai、Claude Code、Claude Agent SDK 和 Claude Developer Platform。

在接下来的几周里,我们将继续添加功能,支持创建、编辑、发现、共享和使用技能的完整生命周期。我们尤其对技能帮助组织和个人与 Claude 共享其上下文和工作流程的机会感到兴奋。我们还将探索技能如何通过教会智能体涉及外部工具和软件的更复杂工作流程,来补充 Model Context Protocol(MCP)服务器。

更进一步展望,我们希望让智能体能够自行创建、编辑和评估技能,让它们将自己的行为模式固化为可复用的能力。

技能是一个简单的概念,其格式也相应简单。这种简单性让组织、开发者和最终用户更容易构建定制化智能体并赋予它们新能力。

我们很期待看到人们用技能构建出什么。立即查看我们的技能文档和cookbook,开始使用吧。

来源:Anthropic:Newsroom · anthropic.com