Anthropic Engineering Blog 中文翻译

create: 2025-10-16
update: 2026-08-10
author: thinkycx
title: 【译】用 Agent Skills 武装 Agent 应对真实世界
description: Anthropic 提出了 Agent Skills 的概念——一种通过文件夹组织指令、脚本和资源的方式来赋予 Agent 领域专业能力。文章详细介绍了 Skill 的目录结构、渐进式信息披露(progressive disclosure)设计原则,以及如何通过代码执行扩展 Agent 能力,让通用 Agent 成为专业化 Agent。
category: translation
tags: anthropic, engineering, translation, agent-skills

用 Agent Skills 武装 Agent 应对真实世界

原文发布于 2025 年 10 月 16 日,作者 Barry Zhang、Keith Lazuka 和 Mahesh Murag

更新:Agent Skills 于 2025 年 12 月 18 日作为开放标准发布,支持跨平台移植。

引言

Claude 能力强大,但真实工作还需要流程知识和组织上下文。Agent Skills 是一种用文件和文件夹构建专业化 Agent 的新方式。

随着模型能力的提升,通用 Agent 已经能与完整的计算环境交互。Claude Code 可以利用本地代码执行和文件系统完成跨领域的复杂任务。然而,我们仍然需要更可组合、更可扩展、更便携的方式来为 Agent 注入领域专业知识。

Agent Skills 就是这样一种解决方案:它是由指令、脚本和资源组成的文件夹,Agent 可以动态发现并加载这些内容,从而更好地完成特定任务。Skills 通过将专业知识打包为可组合的资源来扩展 Claude 的能力,将通用 Agent 转变为专业化 Agent。

构建一个 Skill 就像"为新员工准备一份入职指南"。任何人都可以通过捕获和分享流程知识来让 Agent 具备可组合的专业能力。

Agent Skills 激活


Skill 的结构剖析

一个 Skill 本质上就是一个包含 SKILL.md 文件的目录,其中组织了指令、脚本和资源,为 Agent 赋予额外能力。

文章以一个真实案例来说明:PDF skill 赋予了 Claude 文档编辑能力。Claude 本身能够理解 PDF,但直接操作 PDF(例如填写表单)的能力有限。PDF skill 弥补了这一缺陷。

最简形式下,Skill 就是一个包含 SKILL.md 文件的目录。该文件必须以包含 namedescription 元数据的 YAML frontmatter 开头。Agent 启动时,会将所有已安装 Skill 的名称和描述预加载到系统提示中。

这些元数据是渐进式信息披露(progressive disclosure)第一层——仅提供刚好足够的信息让 Claude 判断何时使用每个 Skill,而不将所有内容都加载到上下文中。SKILL.md 的正文内容是第二层细节。当 Claude 认为某个 Skill 相关时,才会将完整的 SKILL.md 读入上下文。

SKILL.md 结构剖析

当 Skill 变得复杂时,单个 SKILL.md 可能容纳不下所有上下文,或某些内容仅在特定场景下才相关。Skill 可以在目录中捆绑额外文件,并通过文件名引用它们。这些被引用的文件构成了第三层(及更深层)细节,Claude 仅在需要时才会导航到这些文件。

以 PDF skill 为例,SKILL.md 引用了两个额外文件(reference.mdforms.md)。将表单填写的指令移到 forms.md 后,核心 Skill 保持精简,Claude 仅在需要填写表单时才读取该文件。

捆绑额外文件

渐进式信息披露是让 Agent Skills 灵活且可扩展的核心设计原则。 就像一本组织良好的手册——有目录、章节和附录——Skill 让 Claude 仅在需要时加载信息。

渐进式信息披露

披露层级 内容 加载时机
第一层 Skill 名称和描述(YAML frontmatter) Agent 启动时预加载到系统提示
第二层 SKILL.md 正文 Claude 判断 Skill 相关时读取
第三层及以上 捆绑的额外文件(如 forms.md Claude 在执行特定任务时按需导航

拥有文件系统和代码执行工具的 Agent 不需要一次性将整个 Skill 读入上下文,因此 Skill 能够承载的上下文量实际上是无限的。


Skill 与上下文窗口

Skill 在上下文窗口中的触发是按需发生的,遵循渐进式加载模式。

上下文窗口中的 Skill 触发

操作顺序:

  1. 上下文窗口以核心系统提示、已安装 Skill 的元数据和用户初始消息开始
  2. Claude 通过调用 Bash 工具读取 pdf/SKILL.md 来触发 PDF skill
  3. Claude 选择读取该 Skill 捆绑的 forms.md 文件
  4. Claude 继续执行用户任务,此时已装备了 PDF skill 中的相关指令

Skill 与代码执行

Skill 可以包含代码供 Claude 自行决定执行,将确定性的工具执行能力融入 Agent 工作流。

LLM 擅长许多任务,但某些操作更适合传统代码执行。例如,通过逐 token 生成来排序列表远比直接运行排序算法昂贵。很多应用还需要只有代码才能提供的确定性可靠性。

PDF skill 包含一个预写的 Python 脚本,用于读取 PDF 并提取所有表单字段。Claude 可以运行该脚本,无需将脚本内容或 PDF 文件加载到上下文中。由于代码是确定性的,这一工作流的结果一致且可复现。

Skill 中的代码执行

方式 适用场景 特点
LLM 推理 理解语义、做出判断、生成文本 灵活但成本高
代码执行 数据处理、文件操作、确定性计算 高效且可复现
两者结合 Claude 判断何时运行脚本,脚本执行具体操作 兼具灵活性和可靠性

开发和评估 Skill

开发 Skill 的核心方法是:从评估出发、为扩展而设计、从 Claude 的视角思考、与 Claude 协同迭代。

  • 从评估开始: 在代表性任务上运行 Agent,观察它在哪里力不从心,找到能力差距。针对不足之处增量式地构建 Skill。

  • 为扩展而设计:SKILL.md 变得臃肿时,将内容拆分到单独文件中并引用它们。如果某些上下文互斥或很少同时使用,保持路径分离可以减少 token 用量。代码既可以作为可执行工具也可以作为文档——明确 Claude 应该运行脚本还是作为参考阅读。

  • 从 Claude 的视角思考: 监控 Claude 在真实场景中如何使用你的 Skill 并进行迭代。关注意外的执行路径或对某些上下文的过度依赖。特别注意 namedescription——Claude 根据这两个字段决定是否触发该 Skill。

  • 与 Claude 协同迭代: 在你工作的过程中,让 Claude 将成功的方法和常见错误捕获为可复用的上下文和代码。如果它偏离轨道,让它自我反思哪里出了问题。这有助于发现 Claude 实际需要什么上下文,而不是凭直觉预判。


使用 Skill 时的安全考量

Skill 通过指令和代码赋予 Claude 新能力,因此恶意 Skill 可能引入漏洞或指导 Claude 泄露数据。

安全建议:

建议 说明
仅从可信来源安装 Skill 优先使用官方或社区审核过的 Skill
彻底审计不太信任的 Skill 在使用前通读所有文件
阅读捆绑文件 理解 Skill 具体做了什么
注意代码依赖和捆绑资源 关注图片、脚本等附加文件
警惕连接外部网络的指令 防范可能连接不可信来源的操作

Skills 的未来

Agent Skills 已在 Claude.ai、Claude Code、Claude Agent SDK 和 Claude Developer Platform 全面支持。

未来规划将覆盖 Skill 的完整生命周期——创建、编辑、发现、分享和使用。Anthropic 对以下方向尤其兴奋:

  • Skills 帮助组织将上下文和工作流分享给 Claude
  • 探索 Skills 如何与 Model Context Protocol(MCP)服务器互补,教会 Agent 涉及外部工具的复杂工作流

展望更远的未来,Anthropic 希望让 Agent"自主创建、编辑和评估 Skill",使其能将自身的行为模式固化为可复用的能力。

Skills 是一个"简单的概念配以简单的格式",让组织、开发者和终端用户都能更轻松地构建定制化 Agent。


致谢

本文由 Barry Zhang、Keith Lazuka 和 Mahesh Murag 撰写——他们"都特别喜欢文件夹"。特别感谢 Anthropic 内部支持和构建 Skills 的所有同事。