4_Claude Agent Skills 深度解析
Claude Agent Skills 将 Claude 从纯对话模型升级为可调用外部工具的智能代理。通过预定义的工具描述,Claude 根据任务需求自主决定何时查询天气、操作电脑、检索数据库或执行其他具体操作。
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#4F46E5', 'primaryTextColor': '#000', 'primaryBorderColor': '#3730A3', 'lineColor': '#6366F1', 'secondaryColor': '#10B981', 'tertiaryColor': '#F59E0B'}}}%%
flowchart TD
A(["用户请求"]) --> B["Claude 核心决策层"]
subgraph "Claude 决策闭环"
B --> C{"需要工具?"}
C -->|"是"| D["选择技能/构造参数"]
C -->|"否"| E["直接回答"]
end
subgraph "执行与反馈层"
D --> F["工具箱"]
F --> G["API 调用"]
F --> H["Computer Use"]
F --> I["代码解释器"]
G --> J["执行结果"]
H --> J
I --> J
end
J --> B
E --> K(["最终输出"])
classDef primary fill:#4F46E5,stroke:#3730A3,color:#fff
classDef success fill:#10B981,stroke:#059669,color:#fff
classDef decision fill:#F59E0B,stroke:#D97706,color:#000
classDef info fill:#06B6D4,stroke:#0891B2,color:#fff
class A,K primary
class B,D info
class C decision
class E,G,H,I,J success1. 核心概念
1.1 定义与架构
Agent Skills 是让 Claude 模型理解并调用外部工具的结构化能力组合。一个 Skill 本质上是包含 SKILL.md 文件的文件夹,通过 YAML frontmatter 定义元数据,通过 Markdown 正文提供详细指令。
核心元数据:
name:技能的唯一标识,必须与文件夹名一致description:功能描述,Agent 决策是否激活此技能的关键依据
1.2 三层按需加载机制
Agent Skills 采用类似游戏引擎 LOD(Level of Detail)的分层架构,通过递进式加载优化性能:
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#4F46E5', 'primaryTextColor': '#000', 'primaryBorderColor': '#3730A3', 'lineColor': '#6366F1', 'secondaryColor': '#10B981', 'tertiaryColor': '#F59E0B'}}}%%
flowchart LR
subgraph "LOD-0 元数据层"
A["name + description"]
end
subgraph "LOD-1 核心指令层"
B["完整 SKILL.md"]
end
subgraph "LOD-2 支持资源层"
C["scripts/"]
D["references/"]
end
A -->|"描述匹配时"| B
B -->|"执行需要时"| C
B -->|"执行需要时"| D
classDef lod0 fill:#4F46E5,stroke:#3730A3,color:#fff
classDef lod1 fill:#10B981,stroke:#059669,color:#fff
classDef lod2 fill:#F59E0B,stroke:#D97706,color:#000
class A lod0
class B lod1
class C,D lod2| 层级 | 名称 | 加载时机 | 内容 |
|---|---|---|---|
| LOD-0 | 元数据层 | Agent 启动时 | name + description,建立全局能力图谱 |
| LOD-1 | 核心指令层 | 描述匹配用户请求时 | 完整 SKILL.md,获取详细操作指南 |
| LOD-2 | 支持资源层 | 执行需要时 | scripts/、references/ 等外部资源 |
这种设计使 Skills 在扩展性与成本控制之间取得平衡。参考官方示例:SKILL.md
分形特性:三层系统可递归嵌套。LOD-2 的原始信息内部可包含另一个完整的三层系统;完整三层系统对更高层观察者可抽象为单一 LOD-0 元素。
1.3 常见错误
工具描述模糊
| 错误示例 | 正确示例 |
|---|---|
工具名 get_data,描述「获取数据」 | 工具名 get_stock_price_by_ticker,描述「根据股票代码(如 AAPL)获取当前美股实时价格,单位为美元」 |
定义工具时,description 字段的重要性甚至超过 parameters。
反馈循环断裂
必须将工具执行结果封装为新的 Message,追加到对话历史中返回给 Claude。例如查询天气得到 25 度,需要让 Claude 基于该结果生成最终回复。
工具过载
一次性加载过多工具(如 50 个)会导致 Agent 注意力分散,增加选错工具或产生幻觉的风险。建议控制在合理数量范围内。
2. 技术对比
2.1 Skills Vs MCP
MCP(Model Context Protocol)是一个开放协议,允许 Claude Code 连接外部工具和服务。
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#4F46E5', 'primaryTextColor': '#000', 'primaryBorderColor': '#3730A3', 'lineColor': '#6366F1', 'secondaryColor': '#10B981', 'tertiaryColor': '#F59E0B'}}}%%
flowchart TD
subgraph "Claude 操作系统"
A["MCP<br/>标准接口规范"]
B["Agent Skills<br/>具体功能实现"]
end
A -->|"规范"| C["日历读取"]
A -->|"规范"| D["Slack 消息"]
A -->|"规范"| E["数据库查询"]
B -.->|"基于"| A
classDef protocol fill:#4F46E5,stroke:#3730A3,color:#fff
classDef impl fill:#10B981,stroke:#059669,color:#fff
classDef func fill:#06B6D4,stroke:#0891B2,color:#fff
class A protocol
class B impl
class C,D,E func| 概念 | 类比 | 说明 |
|---|---|---|
| MCP | USB-C 或 OpenAPI Spec | 标准接口规范,定义数据源如何暴露数据、工具如何被调用。不直接提供功能 |
| Agent Skills | 具体设备驱动 | 基于 MCP 的具体功能实现,如读取日历、发送 Slack 消息、查询数据库的实际代码逻辑 |
2.2 Skills Vs Agent
| 概念 | 本质 | 示例 |
|---|---|---|
| Agent Skills | 静态能力,等待被调用的能力节点 | tools.calculator()、database.query() |
| Agent | 拥有自主决策能力的实体,包含 LLM(大脑)、Memory(记忆)、Planning(规划)及 Skills 调用权限 | 运行 while(true) 循环,接收任务、思考、调用 Skills |
2.3 Skills Vs n8n
| 概念 | 特点 | 适用场景 |
|---|---|---|
| n8n | 确定性流程引擎,逻辑预定义:Trigger -> Step A -> If true -> Step B else Step C | 固定 ETL 任务或自动化操作 |
| Agent Skills | 非确定性场景,由 LLM 决定调用时机和参数,执行路径依赖对话上下文 | 动态决策场景 |
2.4 生态定位
Skills 与 MCP 的关系:Agent Skills 底层连接通过 MCP 实现。MCP 是基础设施层,Skills 是应用层。MCP 普及度越高,Skills 生态越繁荣。
Skills 与 n8n 的关系:企业级应用要求 100% 逻辑一致性,n8n 等确定性工具不会消失,而是演进为「Tools for Agents」。
3. 实践指南
3.1 Opencode 配置
配置路径优先级:
| 类型 | 路径 |
|---|---|
| 项目配置 | .opencode/skill/<name>/SKILL.md |
| 全局配置 | ~/.config/opencode/skill/<name>/SKILL.md |
| Claude 兼容(项目) | .claude/skills/<name>/SKILL.md |
| Claude 兼容(全局) | ~/.claude/skills/<name>/SKILL.md |
符号链接配置:
1 | rm -rf ~/.config/opencode/skill; ln -s ~/workspace/skills/ ~/.config/opencode/skill |
3.2 开发实践
参考我的 SKILLS:https://github.com/unix2dos/skills
可以让 AI 根据 skil-creator 规范生成自己的 skills,然后软连接到不同的位置供其他使用。
1 | rm -rf ~/.claude/skills ; ln -s ~/workspace/skills/ ~/.claude/skills |
4. 推荐 Skills
- 资源集合: