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 success

1. 核心概念

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
概念类比说明
MCPUSB-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
2
3
4
5
rm -rf ~/.claude/skills ; ln -s ~/workspace/skills/ ~/.claude/skills
rm -rf ~/.codex/skills ; ln -s ~/workspace/skills/ ~/.codex/skills
rm -rf ~/.config/opencode/skill ; ln -s ~/workspace/skills/ ~/.config/opencode/skill
rm -rf ~/.gemini/antigravity/skills ; ln -s ~/workspace/skills/ ~/.gemini/antigravity/skills
rm -rf ~/.config/alma/skills ; ln -s ~/workspace/skills/ ~/.config/alma/skills

4. 推荐 Skills

名称链接
Frontend Designhttps://github.com/anthropics/claude-code/tree/main/plugins/frontend-design
API Design Principleshttps://github.com/wshobson/agents/tree/main/plugins/backend-development/skills/api-design-principles
Postgres Table Designhttps://github.com/wshobson/agents/blob/main/plugins/database-design/skills/postgresql/SKILL.md

5. 参考资料