Agent Skills(智能体技能)
简介
Agent Skills(智能体技能)是 Claude Code 的可复用能力模块,存放在 .claude/skills/ 目录。技能封装一套固定流程、规则、输出格式,在会话中随时调用,让 Claude 快速执行特定类型任务。
技能可以被主代理、子代理共同调用,实现能力复用,避免在 CLAUDE.md 重复编写大量任务流程。
Skills 基础内容参考:Skills 教程
对比区分
CLAUDE.md:项目全局基础规则,每次新建会话自动加载。- Skills:按需手动调用的独立能力模块,不会默认全部加载,减少token开销。
- Subagents(子代理):独立代理实例,拥有独立上下文;Skill 只是能力包,在当前代理会话内执行,不新建独立代理。
目录结构
技能文件放在 .claude/skills/,支持 Markdown 格式,一个文件对应一个技能。
your-project/
└── .claude/
└── skills/
├── code-review.md # 代码评审技能
├── test-generator.md # 单元测试生成技能
└── api-docs.md # API文档生成技能
技能文件标准写法
文件路径:.claude/skills/code-review.md
# Skill:code-review ## 技能描述 对指定代码文件做代码评审,找出性能问题、类型错误、安全隐患、代码风格问题。## 输入参数
- files:需要评审的文件路径列表 ## 执行步骤
1. 读取目标源码
2. 从4个维度检查:类型安全、业务逻辑、性能、代码规范
3. 区分严重等级:严重 / 一般 / 建议优化
4. 输出清单:文件路径 + 行号 + 问题描述 + 修复建议## 约束
- 只输出评审报告,不自动修改代码
- 遵守项目 CLAUDE.md 的编码规范
调用技能
会话中直接使用自然语言调用:
调用技能 code-review,评审 @src/utils/request.ts
调用技能 test-generator,为 @src/service/user.ts 生成单元测试
技能管理斜杠命令
/skill list # 列出项目下所有可用技能
/skill reload # 重新加载技能配置,修改技能md文件后使用
/skill describe # 查看某个技能的详细定义,例:/skill describe code-review
技能组成要素
- 技能名称:文件名即为技能调用名称
- 技能描述:一句话说明这个技能解决什么问题
- 输入参数:定义需要传入的文件、变量
- 执行步骤:固定执行流程
- 输出规范:规定返回内容格式
- 约束规则:权限限制、禁止行为
适用场景
✅ 推荐使用技能
- 高频重复任务:代码评审、生成单元测试、接口文档、SQL审计
- 标准化输出:需要固定报告格式,每次输出结构统一
- 能力复用:主代理、多个子代理都需要使用同一段工作流程
❌ 不推荐
- 一次性临时任务,只使用一次
- 简单小修改,几行代码就能完成
权限规则
- 技能运行在当前代理会话内,继承当前项目
.claude/rules权限 - 技能内部定义的权限不能突破项目全局权限限制
- 文件修改、终端命令操作,依然遵循当前会话交互模式(Manual需要审批)
技能、子代理、MCP对比表
| 模块 | 本质 | 是否新建独立上下文 | 用途 |
|---|---|---|---|
| Skill | 能力/流程模板 | ❌ 当前会话内执行 | 标准化复用任务流程 |
| Subagent | 独立代理实例 | ✅ 独立上下文 | 大型任务拆分,专项独立工作 |
| MCP Server | 外部工具服务 | ❌ 外部进程调用 | 调用外部API、数据库、本地工具 |
最佳实践
- 单一职责:一个技能只负责一类任务,不要把多个无关逻辑塞进同一个技能
- 精简描述:技能文档只写流程和输出格式,项目基础规范放在
CLAUDE.md - 版本管理:
.claude/skills目录提交Git,团队共享一套技能库 - 按需加载:技能不会默认加载,不会额外占用token,只有调用时才生效
- 技能组合:子代理内部也可以调用技能,实现多层能力组合
常见问题
- 修改技能md文件,调用没有生效?
执行/skill reload,或者/clear新建会话加载技能定义。 - Skill 和 CLAUDE.md 里面的规则冲突,以哪个为准?
CLAUDE.md 是项目基础规则,优先级更高;技能内是任务执行流程,不能覆盖项目约束。 - 技能可以自动执行终端命令吗?
可以,但受.claude/rules和当前交互模式管控,Manual模式依然需要审批。
安全提示
- 技能只是任务流程模板,不会绕过项目权限规则
- 编写技能时,限制文件读写范围,遵循最小权限原则
- 不要在技能定义中写入密钥、账号等敏感信息
0 条笔记