Claude Agent Skill 概览

Claude 使用 Skills 来提升其执行特定任务的表现。Skills 本质上是包含指令、脚本和资源的文件夹,Claude 可以在需要时加载它们。Claude 使用一套 声明式的、基于提示词的系统 来发现和调用技能。

AI 模型(即 Claude)是根据系统提示词中的文本描述,自主决定是否调用 Skills 的。代码层面不存在算法式的“技能选择器”或 AI 意图检测模块。所有的决策都发生在 Claude 的推理过程中,完全基于提供的技能描述。

Skills 不是可执行代码。它们 不运行 Python 或 JavaScript,后台也没有 HTTP 服务器或函数调用。它们也不是硬编码在 Claude 系统提示词里的。Skills 存在于 API 请求结构的一个独立部分中。

那么,它们到底是什么?Skills 是专门的提示词模板,用于将领域特定的指令注入到对话上下文中。当一个技能被调用时,它会同时修改对话上下文(通过注入指令提示词)和执行上下文(通过改变工具权限,甚至可能切换模型)。技能不是直接执行动作,而是展开成详细的提示词,让 Claude 准备好 去解决特定类型的问题。每一个技能都像是动态添加到 Claude 工具库中的新能力。

当用户发送请求时,Claude 会收到三样东西:用户消息、可用的工具(Read, Write, Bash 等),以及 Skill 工具。Skill 工具的描述包含了一个格式化的列表,列出了所有可用技能的 name(名称)、description(描述)等字段。Claude 阅读这个列表,利用其自然语言理解能力将你的意图与技能描述进行匹配。如果你说“帮我创建一个日志技能”,Claude 看到 internal-comms 技能的描述(“当用户想要用公司喜欢的格式编写内部通讯时...”),识别出匹配项,并调用 Skill 工具,参数为 command: "internal-comms"

术语说明

  • Skill tool(大写 S):管理所有技能的“元工具”。它与 Read, Write, Bash 等并列出现在 Claude 的 tools 数组中。

  • skills(小写 s):具体的单个技能,如 pdfskill-creatorinternal-comms。这些是 Skill 工具加载的专门指令模板。

下图更直观地展示了 Claude 如何使用 skills

Claude Skill Flowchart

技能选择机制在代码层面没有算法路由或意图分类。Claude Code 不使用嵌入(Embeddings)、分类器或模式匹配来决定调用哪个技能。相反,系统将所有可用技能格式化为文本描述,嵌入到 Skill 工具的提示词中,让 Claude 的语言模型来做决定。这是纯粹的 LLM 推理。没有正则表达式,没有关键词匹配,没有基于机器学习的意图检测。决策发生在 Claude 在 Transformer 模型的 前向传播(Forward Pass) 中,而不是在应用程序代码里。

当 Claude 调用一个技能时,系统遵循一个简单的工作流:加载 markdown 文件(SKILL.md),将其扩展为详细指令,将这些指令作为新的用户消息注入到对话上下文中,修改执行上下文(允许的工具、模型选择),然后在这个增强的环境中继续对话。这与传统的工具(执行并返回结果)有本质区别。技能是 让 Claude 准备好 去解决问题,而不是直接解决问题。

下表有助于更好地区分“传统工具”和“技能”及其能力的差异:

维度

传统工具 (Traditional Tools)

技能 (Skills)

执行模式

同步,直接执行

提示词扩展

目的

执行具体操作

引导复杂的工作流

返回值

即时结果

对话上下文 + 执行上下文的改变

例子

ReadWriteBash

internal-commsskill-creator

并发性

通常安全

非并发安全

类型

多种多样

始终为 "prompt"

构建 Agent Skill

现在,让我们通过研究 Anthropic 技能库中的 skill-creator 技能 作为案例,深入了解如何构建技能。提醒一下,Agent skills 是包含指令、脚本和资源的文件夹,Agent 可以动态发现和加载它们,以便更好地执行特定任务。Skills 通过将你的专业知识打包成 Claude 可组合的资源,扩展了 Claude 的能力,将通用 Agent 转变为适合你需求的专用 Agent。

核心洞察:技能 (Skill) = 提示词模板 + 对话上下文注入 + 执行上下文修改 + 可选的数据文件和 Python 脚本

每个 Skill 都在一个名为 SKILL.md(大小写不敏感)的 markdown 文件中定义,并在 /scripts(脚本)、/references(参考资料)和 /assets(资源)下包含可选的绑定文件。这些绑定文件可以是 Python 脚本、Shell 脚本、字体定义、模板等。以 skill-creator 为例,它包含 SKILL.md、用于许可的 LICENSE.txt,以及 /scripts 文件夹下的一些 Python 脚本。skill-creator没有任何 /references 或 /assets

skill-creator package

技能可以从多个来源发现和加载。Claude Code 会扫描用户设置(~/.config/claude/skills/)、项目设置(.claude/skills/)、插件提供的技能以及内置技能,以构建可用技能列表。对于 Claude Desktop,我们可以像下面这样上传自定义技能。

Claude Desktop Skill

注意: 构建技能最重要的概念是 渐进式披露(Progressive Disclosure) ——只展示足够的信息来帮助 Agent 决定下一步做什么,然后根据需要披露更多细节。在 agent skills 的案例中,它:

  1. 披露 Frontmatter(前置元数据):最少量的信息(名称、描述、许可证)

  2. 如果选中某个 skill,加载 SKILL.md:全面但聚焦的内容

  3. 然后在执行 skill 时,加载辅助资源、参考资料和脚本

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐