如何使用SKILLS
如何使用SKILLS
Frank Dum前言
本文以结构化视角解释 SKILLS 体系,并明确 agent.md 与 skill.md 的分工关系,帮助读者在构建 AI Agent 时更快完成技能模块化与执行链路落地。
第一部分:SKILLS 是什么
1.1 从"大而全"到"精而专"
单一、巨大的 Prompt 往往导致上下文过长、维护困难、复用性差和错误率升高。SKILLS 的设计意图是将能力拆成可复用的模块,让 Agent 在合适的时机调用对应技能,形成"工具箱式"工作流。
典型场景:一个 Agent 需要同时具备"搜索"“总结”"发送邮件"能力。若全部写入一个 Prompt,会造成职责混乱;将其拆成独立技能后,Agent 可以按需组合与调度。
1.2 SKILLS 的核心定义
SKILLS 不只是指令片段,而是可复用能力单元。它将任务方法固化为可执行模块,使 Agent 从"理解指令"升级为"执行技能"。常见收益包括:
- 结构更清晰,技能能独立维护
- 复用性更高,可被多个 Agent 引用
- 出错更可控,便于定位和更新
1.3 渐进式三层披露
SKILLS 的设计分为三层:元数据层、技能主体、附加文本与脚本。它们共同构成一个完整的技能定义。
1.3.1 元数据层(Metadata Layer)
元数据用于"技能发现"和"技能选择"。Agent 会根据名称、描述与标签迅速判断技能是否匹配当前任务。
1 | name: web_search |
1.3.2 技能内容主体(Skill Content Body)
这一层是技能的"执行逻辑"。它定义了具体步骤与操作顺序,是 Agent 的行动指南。
1 | name: web_search |
1.3.3 附加文本及脚本(Additional Text & Scripts)
附加内容用于增强鲁棒性与适配复杂情况,例如错误处理、安全策略和性能优化。
1 | error_handling: |
1.4 skill 文件的创建路径
在 Claude Code 中,技能文件存放在用户目录下,支持两种组织方式:
方式一:单文件技能
1 | ~/.claude/skills/<skill-name>.skill |
方式二:带附属资源的技能目录
1 | ~/.claude/skills/<skill-name>/ |
完成创建后,可在 Claude Code 中通过 /skill-name 命令调用该技能。
第二部分:agent.md 与 skill.md 的关系
2.1 核心分工
agent.md 定义 Agent 的身份、使命与可用资源;skill.md 定义具体任务的执行方式。
可以理解为:agent.md 是公司的战略规划,skill.md 是各部门的操作手册。
2.2 agent.md 的职责
agent.md 是 Agent 的根文件,用于定义行为边界与全局规范。
1 | name: ResearchAssistant |
关键字段说明:
| 字段 | 作用 |
|---|---|
name |
Agent 名称标识 |
role |
身份与核心职责 |
goal |
存在的根本目的 |
constraints |
行为约束与限制 |
environment |
运行环境与可用资源 |
available_skills |
可调用的技能列表 |
persona |
交互语气与风格 |
2.3 skill.md 的职责
skill.md 是可执行的技能定义文件,内部包含元数据、技能主体与附加处理逻辑。一个 skill.md 就是一项可独立调用的能力。
完整的 skill.md 示例:
1 |
|
2.4 协同工作流程
1 | ┌─────────────┐ |
流程说明:
- Agent 启动:读取
agent.md,确认身份、目标和可用资源 - 任务拆分:接收请求后根据 goal 和 role 分解为子任务
- 技能匹配:对每个子任务扫描
available_skills中各技能的元数据 - 技能执行:选定技能后按其主体与附加逻辑完成操作
- 结果输出:汇总结果并按照 persona 向用户反馈
实战:创建一个自定义技能
以创建一个"代码审查"技能为例:
步骤 1:创建技能目录
1 | mkdir -p ~/.claude/skills/code-review |
步骤 2:编写 SKILL.md
1 | --- |
步骤 3:使用技能
在 Claude Code 中输入 /code-review 即可调用该技能。
总结
SKILLS 的价值在于将 AI Agent 的能力从"会回答问题"推进为"会执行任务"。
| 文件 | 定位 | 核心内容 |
|---|---|---|
agent.md |
战略层 | 身份、目标、约束、可用资源 |
skill.md |
战术层 | 执行步骤、错误处理、输出格式 |
当 agent.md 负责战略方向、skill.md 负责战术执行时,Agent 的行为就具备了可控性、复用性与持续进化的基础。
