下面我把 Claude Code commands 和 Claude Skills 放在同一个视角里讲清楚:它们解决的是不同层级的问题,一个偏「开发者操作接口」,一个偏「能力封装与路由」。
一、Claude Code Commands 是什么?怎么用?
一句话:
Commands = Claude Code 里给开发者/用户用的“指令级工具”
1️⃣ 它的定位
Claude Code 是 Anthropic 推出的 本地/IDE 驱动的 AI 编程助手,而 commands 是它暴露给用户的显式操作入口。
你可以把它理解成:
- IDE 里的 斜杠命令(/command)
- 或 CLI / Chat 中的 显式指令
类似于:
/git
/test
/refactor
/explain
2️⃣ Commands 怎么使用(典型方式)
▶ 在 Claude Code / IDE 里
/explain
👉 Claude 会解释当前选中的代码
/test
👉 自动为当前模块生成测试
/refactor
👉 对当前文件做结构性重构
/git commit
👉 根据 diff 生成 commit message
这些 commands 通常会绑定上下文:
- 当前文件
- 当前 selection
- Git diff
- 项目结构
3️⃣ Commands 的本质
从架构上看:
command
↓
固定 prompt + 工具权限 + 上下文注入
↓
Claude 执行
也就是说:
- command 是 prompt + tool preset
- 是 人为定义的“入口点”
- 强调 可控性、可重复性
4️⃣ Commands 的适用场景
✅ 高确定性操作
✅ IDE / 本地开发流程
✅ 想要稳定、可预测结果的任务
例如:
- 写测试
- 重构
- 解释代码
- Git 操作
- 项目扫描
二、Claude Skills 是什么?
一句话:
Skills = Claude 内部或外部定义的“能力模块”,由模型自动选择是否调用
1️⃣ Skill 的定位
Skills 更像是 Agent 能力层:
- 是一组 可调用能力
- 通常由系统或开发者注册
- 不是用户直接“点”的
你可以类比:
- OpenAI 的 Tools / Functions
- LangChain 的 Tool
- Agent 的 Capability
2️⃣ Skills 是怎么工作的(简化流程)
用户自然语言
↓
Claude 推理
↓
是否需要某个 skill?
↓
调用 skill
↓
返回结果
例如:
code_searchrepo_analysislint_fixtest_runnerdiagram_generator
关键点:
👉 是否调用 skill,是模型自己决定的
3️⃣ Skills 的特点
- 🧠 隐式调用
- 🧩 组合使用
- 🔄 可多步链式
- 🤖 更偏 Agent 行为
4️⃣ Skills 的适用场景
✅ 自然语言复杂任务
✅ 多步骤推理
✅ Agent / workflow / 自动化
例如:
“帮我看看这个 repo 的架构问题并给改进建议”
Claude 可能会:
- 调用 repo_analysis skill
- 调用 code_read skill
- 调用 summarize skill
- 生成建议
三、Commands vs Skills:核心区别对比
| 维度 | Claude Code Commands | Claude Skills |
|---|---|---|
| 面向对象 | 用户 / 开发者 | 模型 / Agent |
| 调用方式 | 显式(/command) | 隐式(模型决定) |
| 控制权 | 人控制 | 模型控制 |
| 确定性 | 高 | 较低(但更灵活) |
| 粒度 | 操作级 | 能力级 |
| 类比 | IDE 命令、快捷键 | Tool / Function / Agent capability |
四、放到一个统一架构里看(很关键)
┌───────────────┐
User ---------->│ Claude Code UI │
└───────┬───────┘
│
┌───────────┴───────────┐
│ Commands │ ← 人触发
└───────────┬───────────┘
│
┌───────▼───────┐
│ Claude LLM │
└───────┬───────┘
│
┌───────────▼───────────┐
│ Skills │ ← 模型触发
└───────────────────────┘
👉 Commands 是“入口”
👉 Skills 是“能力池”
五、什么时候该用哪一个?
✔ 用 Commands,如果你:
- 在 IDE 里工作
- 想要稳定结果
- 有明确操作意图
- 不希望模型“自由发挥”
✔ 用 Skills(或 Agent),如果你:
- 做复杂分析
- 需要多步骤自动决策
- 构建 autonomous agent
- 不关心具体执行路径
六、一句总结(帮你记住)
Claude Code Commands = 给人用的按钮
Claude Skills = 给模型用的手和脑