从第一性原理深度拆解 Claude Agent Skill
当一个技能被调用时,它会同时修改对话上下文(通过注入指令提示词)和执行上下文(通过改变工具权限,甚至可能切换模型)。工具的提示词中,让 Claude 的语言模型来做决定。),将其扩展为详细指令,将这些指令作为新的用户消息注入到对话上下文中,修改执行上下文(允许的工具、模型选择),然后在这个增强的环境中继续对话。通过将你的专业知识打包成 Claude 可组合的资源,扩展了 Claude 的能力,将通
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"。
术语说明:
Skilltool(大写 S):管理所有技能的“元工具”。它与 Read, Write, Bash 等并列出现在 Claude 的tools数组中。skills(小写 s):具体的单个技能,如
skill-creator,internal-comms。这些是Skill工具加载的专门指令模板。
下图更直观地展示了 Claude 如何使用 skills。

技能选择机制在代码层面没有算法路由或意图分类。Claude Code 不使用嵌入(Embeddings)、分类器或模式匹配来决定调用哪个技能。相反,系统将所有可用技能格式化为文本描述,嵌入到 Skill 工具的提示词中,让 Claude 的语言模型来做决定。这是纯粹的 LLM 推理。没有正则表达式,没有关键词匹配,没有基于机器学习的意图检测。决策发生在 Claude 在 Transformer 模型的 前向传播(Forward Pass) 中,而不是在应用程序代码里。
当 Claude 调用一个技能时,系统遵循一个简单的工作流:加载 markdown 文件(SKILL.md),将其扩展为详细指令,将这些指令作为新的用户消息注入到对话上下文中,修改执行上下文(允许的工具、模型选择),然后在这个增强的环境中继续对话。这与传统的工具(执行并返回结果)有本质区别。技能是 让 Claude 准备好 去解决问题,而不是直接解决问题。
下表有助于更好地区分“传统工具”和“技能”及其能力的差异:
|
维度 |
传统工具 (Traditional Tools) |
技能 (Skills) |
|
执行模式 |
同步,直接执行 |
提示词扩展 |
|
目的 |
执行具体操作 |
引导复杂的工作流 |
|
返回值 |
即时结果 |
对话上下文 + 执行上下文的改变 |
|
例子 |
|
|
|
并发性 |
通常安全 |
非并发安全 |
|
类型 |
多种多样 |
始终为 |
构建 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。

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

注意: 构建技能最重要的概念是 渐进式披露(Progressive Disclosure) ——只展示足够的信息来帮助 Agent 决定下一步做什么,然后根据需要披露更多细节。在
agent skills的案例中,它:
披露 Frontmatter(前置元数据):最少量的信息(名称、描述、许可证)
如果选中某个
skill,加载 SKILL.md:全面但聚焦的内容然后在执行
skill时,加载辅助资源、参考资料和脚本
更多推荐

所有评论(0)