2025年10月16日Anthropic发布了一篇关于智能体技能(Agent Skills)的技术文章。智能体技能(Agent Skills)提供了一种借助文件和文件夹来构建专业智能体的全新方式。
1、什么是智能体技能(Agent Skills)?
智能体技能(Agent Skills)是由指令、脚本与资源构成的结构化文件夹,智能体可动态发现并加载这些内容,从而在特定任务中表现更优。通过将特定领域的专业知识封装成可供Claude大模型调用的可组合资源,"智能体技能" 拓展了Claude大模型的能力边界,能将通用智能体转变为贴合您需求的专业智能体。
为智能体构建 "技能",恰似为新员工整理入职指南。如今,无需为每个使用场景单独构建零散的定制化智能体,任何人都可通过捕捉并分享自身的程序性知识,为智能体赋予可组合的专业能力,使其实现专业化。
2、智能体技能的构成
从最基础的构成来看,一项 "技能" 就是一个包含 SKILL.md 文件的目录。该文件必须以 YAML 前置元数据(YAML frontmatter)开头,其中需包含两项必填元数据:名称(name)与描述(description)。在智能体(Agent)启动时,会将所有已安装 "技能" 的名称和描述预先加载到其系统提示词(system prompt)中。 这类元数据构成了 "渐进式信息披露" 的第一层级:它仅向 Claude 提供必要信息,使其明确每项 "技能" 的适用场景,而无需将 "技能" 的全部内容加载到上下文当中。
SKILL.md 文件的实际正文部分则构成了第二层级的详细信息。当 Claude 判断某项 "技能" 与当前任务相关时,便会通过读取该 "技能" 的完整 SKILL.md 文件并加载到上下文,从而启用这项 "技能"。

随着 "技能"(Skill)的复杂程度不断提升,其包含的上下文信息可能会过多,无法容纳在单个 SKILL.md 文件中,或者部分上下文信息仅在特定场景下才相关。在这类情况下,"技能" 可在其所属目录中打包附加文件,并在 SKILL.md 中通过文件名引用这些文件。这些额外的关联文件构成了(信息披露的)第三层级及更深入层级的细节内容,Claude 仅会在有需要时选择访问并读取这些文件。
在下方所示的 PDF 专项技能中,SKILL.md 文件引用了两个附加文件(reference.md 和 forms.md),这两个文件是该 "技能" 的创建者选择与核心文件 SKILL.md 一同打包的。通过将表单填写相关说明迁移到独立文件 forms.md 中,"技能" 创建者能够保持核心技能内容的精简性,同时可放心的是,Claude 仅会在执行表单填写任务时才去读取 forms.md 文件。

"渐进式信息披露"(Progressive disclosure)是让 "智能体技能"(Agent Skills)具备灵活性与可扩展性的核心设计原则。这就如同一份结构清晰的手册:先呈现目录,再展开具体章节,最后附上详细的附录。"技能" 也遵循这一逻辑,能让 Claude 仅在需要时才加载相应信息,具体流程如下:

技能还可包含代码,供 Claude 根据自身判断将其作为工具执行。
大型语言模型(Large Language Models)在诸多任务中表现出色,但某些操作更适合通过传统代码执行来完成。例如,通过生成令牌(token)对列表进行排序,其成本远高于直接运行排序算法。除效率问题外,许多应用场景还需要只有代码才能提供的确定性可靠性(deterministic reliability)。
在示例中,PDF 专项技能包含一个预先编写好的 Python 脚本,该脚本可读取 PDF 文件并提取所有表单字段。Claude 无需将脚本或 PDF 文件加载到上下文窗口(context window)中,就能运行该脚本。而且,由于代码具有确定性,这种工作流程既稳定又可重复。
3、智能体技能与上下文
下图展示了当用户消息触发某项 "技能" 时,上下文窗口会发生怎样的变化:

所示操作流程如下:
初始状态下,上下文窗口(context window)中包含核心系统提示词(core system prompt)、每个已安装 "技能"(Skill)的元数据(metadata),以及用户的初始消息;
Claude 通过调用 Bash 工具读取 pdf/SKILL.md 文件的内容,从而触发 PDF 专项技能;
Claude 选择读取与该 "技能" 打包在一起的 forms.md 文件;
最终,由于已从 PDF 专项技能中加载了相关指令,Claude 开始执行用户的任务。
4、智能体技能的开发与评估
以下是智能体技能编写与测试工作的实用指南:
-
从评估入手:为智能体(agents)分配具有代表性的任务,通过观察其在任务中遇到的困难点或对额外上下文信息的需求,找出其能力上的特定缺口。随后,逐步开发技能以弥补这些不足。
-
面向规模化的结构化设计:当 SKILL.md 文件内容变得难以管理时,可将其拆分为独立文件并通过引用关联。若某些上下文信息互斥或极少同时使用,保持其路径独立可减少令牌(token)消耗。最后,代码既可用作可执行工具,也可充当文档。需明确 Claude 应直接运行脚本,还是将脚本读取到上下文中作为参考。
-
从 Claude 的视角思考:观察 Claude 在实际场景中如何使用您开发的技能,并基于观察结果反复优化:留意是否存在意外执行路径,或对某些上下文信息过度依赖的情况。尤其要关注技能的名称(name)与描述(description)------Claude 在判断是否针对当前任务触发该技能时,会参考这两项信息。
-
与 Claude 协同迭代:在与 Claude 共同处理任务的过程中,可要求 Claude 将成功经验与常见错误整理为可复用的上下文信息和代码,并整合到技能中。若 Claude 在使用某项技能完成任务时偏离方向,可让其自我反思问题所在。此过程能帮助您发现 Claude 实际需要的上下文信息,而非仅凭预判来设计。
5、使用智能体技能的安全注意事项
智能体技能通过指令和代码为 Claude 赋予新能力。尽管这一特性让智能体具备强大功能,但也意味着恶意 "技能" 可能会在其使用环境中引入漏洞,或诱导 Claude 执行数据泄露及非预期操作。
因此,建议仅从可信来源安装 "技能"。若需从可信度较低的来源安装 "技能",请在使用前对其进行全面审查。首先,读取该 "技能" 中打包的所有文件内容,以了解其具体功能 ------ 尤其要关注代码依赖项,以及图片、脚本等打包资源。同样,对于 "技能" 中指示 Claude 连接潜在不可信外部网络源的指令或代码,也需重点留意。