TL;DR
你可能听说过 Claude Code 的 Commands、Skills、Agents、Plugins,但搞不清它们到底有啥区别?
简单说:
– Commands = 你按的按钮(手动触发)
– Skills = AI 自己判断要不要用(自动激活)
– Agents = 独立的小助手(隔离上下文)
– Plugins = 打包好的工具箱(分发容器)
这篇文章用人话讲清楚它们的本质区别,看完你就知道该用哪个了。
一、Commands:你说了算的快捷键
什么是 Commands?
Commands 就是斜杠命令,你在终端输入 /review,Claude 就去审查代码。主动权在你手里,不输入就不执行。
怎么创建?
在项目的 .claude/commands/ 目录下扔个 Markdown 文件就行。
文件名决定命令:analyze.md → /analyze
文件内容就是提示词:
---
description: Review the current code for security vulnerabilities
---
Please review the code in the current context for security vulnerabilities.
Focus specifically on:
1. SQL injection risks
2. XSS vulnerabilities
3. Hardcoded secrets
If you find issues, please suggest specific fixes.
支持参数吗?
当然支持。用 $1, $2 或 $ARGUMENTS 接收用户输入。
---
description: Run tests for a specific module
---
Run all tests for the $1 module and report any failures.
使用:/test auth → 测试 auth 模块
全局 vs 项目级
- 全局命令:
~/.claude/commands/security-review.md(所有项目可用) - 项目命令:
.claude/commands/security-review.md(仅当前项目)
适用场景
Commands 适合高频、确定性任务:
- 代码审查:
/review - 生成 commit 信息:
/commit - 格式化代码:
/fmt - 运行测试:
/test
你很清楚什么时候需要它,不需要 Claude 废话,直接执行就完事了。
二、Skills:AI 自己会判断的技能包
什么是 Skills?
Skills 是按需加载的能力模块。你不用显式调用,Claude 会根据对话内容自己判断要不要激活。
就像给 Claude 配了一堆工具书,它需要的时候自己翻。
核心机制:懒加载
这是 Skills 最聪明的地方:
- 启动时:只加载元数据(名称 + 描述),不占用太多 token
- 需要时:Claude 判断”这个任务需要 PDF 技能”,才读取完整的
SKILL.md - 用完后:技能内容可以从上下文中释放
这种设计让 Claude 能装备几十个技能,但不会把上下文撑爆。
怎么创建?
Skills 是一个目录,核心文件是 SKILL.md:
skills/pdf-skill/
├── SKILL.md # 告诉 Claude 如何使用这个技能
├── extract.py # 实际执行的脚本
└── README.md # 说明文档
SKILL.md 示例:
---
name: pdf-processing
description: Extract data from PDF forms and documents
---
When the user asks to extract data from a PDF:
1. Run the extract.py script in this directory
2. Do not try to read PDF raw bytes directly
3. Interpret the JSON output from the script
4. Present the data in a readable format
使用体验
用户无需显式调用,只需说:
“帮我读一下 contract.pdf 里的签约日期”
Claude 会自动:
1. 识别这是 PDF 处理任务
2. 激活 PDF Skill
3. 运行 extract.py
4. 解析输出并回答
适用场景
Skills 适合模糊指令、智能化任务:
- PDF 处理:用户说”读这个文件”,Claude 自己判断是 PDF
- 代码翻译:用户说”让代码容易读点”,Claude 自动调用翻译技能
- 数据分析:用户说”分析下这个表格”,Claude 激活数据分析技能
你希望 Claude 像助手一样自动判断该做什么,而不是每次都手动指定。
三、Agents:独立工作的分身
什么是 Agents?
Agent 是拥有独立上下文和专属系统提示词的 Claude 实例。
就像主 Claude 把任务转包给了坐在旁边的”数据库专家”,这个专家有自己的记忆和设定。
核心优势:上下文隔离
这是 Agent 最大的价值:
没有 Agent 的情况:
你:帮我翻译这 100 个文件
Claude:好的
[翻译过程刷屏 10000 行]
你:刚才我们聊的那个 bug 怎么解决?
Claude:啥 bug?我上下文被翻译内容挤爆了...
有 Agent 的情况:
你:帮我翻译这 100 个文件
主 Claude:我启动 TranslatorAgent 处理
[子 Agent 独立工作,不污染主对话]
子 Agent:翻译完成,汇总报告已生成
主 Claude:翻译完了,报告在这里
你:刚才那个 bug 怎么解决?
主 Claude:记得,是 auth 模块的问题...
怎么创建?
交互式创建:
# 在 Claude Code 中输入
/agents
# 选择 "Create new agent"
配置定义(概念性描述):
name: code-reviewer
role: 资深代码审查专家
description: 通过严格标准审查代码变更,只关注质量、可读性和潜在 bug
tools: [Read] # 只读权限,防止意外修改
system_prompt: |
你是一位资深的代码审查专家。
你只提供建议,不直接写代码。
重点关注:
1. 代码质量和可读性
2. 潜在的 bug 和边界情况
3. 性能问题
使用方式
主 Claude 会根据任务自动调用,或者你显式指派:
你:让 code-reviewer 检查我最新的改动
主 Claude:好的,我让审查专家看看
[启动 code-reviewer Agent]
code-reviewer:发现 3 个问题...
主 Claude:审查完成,这是建议清单
适用场景
Agents 适合复杂、耗时、多步骤任务:
- 代码审查:独立分析,不污染主对话
- 安全审计:专注安全问题,隔离敏感信息
- 批量处理:翻译几百个文件,只返回汇总
- 深度调研:爬取大量文档,提炼关键信息
防止复杂任务的中间过程刷屏,导致之前的对话记忆被挤掉。
四、Plugins:打包好的工具箱
什么是 Plugins?
Plugin 不是功能本身,而是分发容器。
就像水果篮:Command 是苹果,Skill 是橙子,Agent 是香蕉,Plugin 是装它们的篮子。
为什么需要 Plugins?
假设你做了一套代码审查工具:
– /review 命令:快速审查
– code-quality Skill:自动检测代码质量
– security-auditor Agent:深度安全审计
你想分享给同事,难道要他们手动复制 3 个文件到 3 个目录?
用 Plugin 打包:
my-code-review-plugin/
├── commands/
│ └── review.md
├── skills/
│ └── code-quality/
│ └── SKILL.md
└── agents/
└── security-auditor.yaml
同事只需:
claude plugin install my-code-review-plugin
所有功能一次性装好。
Plugin 的价值
- 统一分发:一个命令安装所有功能
- 版本管理:统一更新,不会漏掉某个组件
- 团队协作:确保所有人用同样的工具链
- 生态共享:发布到 Anthropic 官方插件市场
官方插件市场
Anthropic 提供了官方插件仓库,你可以:
– 浏览社区插件
– 一键安装常用工具
– 发布自己的插件
五、三者的本质区别
最容易混淆:Command vs Skill
它们都能封装提示词或脚本,但控制权不同:
| 维度 | Command | Skill |
|---|---|---|
| 触发方式 | 你输入 /review |
Claude 自己判断需要审查 |
| 控制者 | 用户 | AI 模型 |
| 适用场景 | 高频、确定性任务 | 模糊指令、智能化任务 |
| 上下文加载 | 调用时全量加载 | 懒加载(需要时才加载) |
例子:你写了个代码格式化脚本 format_code.py
- 做成 Command:每次必须手动输入
/fmt才运行 - 做成 Skill:你说”这代码太乱了”,Claude 自动运行脚本
逻辑重叠:Agent vs Skill
都能让 Claude 变专业,但上下文是否独立:
| 维度 | Skill | Agent |
|---|---|---|
| 本质 | 工具书 | 分身 |
| 上下文 | 混在主对话里 | 独立隔离 |
| 适用场景 | 单次任务 | 复杂、多步骤任务 |
| 记忆 | 共享主对话记忆 | 拥有独立记忆 |
例子:SQL 查询优化
- Skill:给当前 Claude 一本《SQL 手册》,它现学现卖,但还是同一个 Claude
- Agent:转包给”数据库专家”,专家有自己的记忆和设定,处理完只返回结果
六、决策树:我该用哪个?
面对一个需求,到底该用 Command、Skill 还是 Agent?用这个决策树:
┌─────────────────────────────────┐
│ 这个功能需要手动精确触发吗? │
└────────────┬────────────────────┘
│
┌──────┴──────┐
│ 是 │ 否
▼ ▼
Command ┌─────────────────────────────┐
(/foo) │ 任务复杂,会污染主对话吗? │
└──────────┬──────────────────┘
│
┌──────┴──────┐
│ 是 │ 否
▼ ▼
Agent Skill
(独立分身) (工具书)
实战案例 1:代码翻译成文档
需求:将代码翻译成中文文档
方案 A – Command:
# .claude/commands/trans.md
---
description: Translate code to Chinese documentation
---
Translate $1 to Chinese documentation with examples.
使用:/trans file.py
适用场景:你很清楚什么时候需要翻译,高频使用
方案 B – Skill:
# skills/translation/SKILL.md
---
name: code-translator
description: Translate code to readable Chinese documentation
---
When user says "make this easier to read" or "document this":
1. Analyze code structure
2. Generate Chinese documentation
3. Add usage examples
使用:你说”帮我把这文件弄得容易读一点”
适用场景:模糊指令,希望 Claude 自动判断
方案 C – Agent:
name: translator-agent
role: 技术文档翻译专家
tools: [Read, Write]
system_prompt: |
你专注于将代码翻译成高质量中文文档。
处理大量文件时,只返回汇总报告。
使用:你说”翻译整个项目的代码”
适用场景:批量处理几百个文件,防止刷屏
实战案例 2:安全审计
需求:检查代码安全漏洞
方案对比:
| 方案 | 实现 | 适用场景 |
|---|---|---|
Command /security |
手动触发,立即审查当前文件 | 提交前快速检查 |
Skill security-check |
你说”这代码安全吗”,自动激活 | 日常开发,随时咨询 |
Agent security-auditor |
独立审计整个项目,生成报告 | 发版前深度审计 |
实战案例 3:测试覆盖率
需求:检查测试覆盖率
Command 方案:
/coverage auth
# 立即检查 auth 模块的测试覆盖率
Skill 方案:
你:这个模块测试够不够?
Claude:[激活 test-coverage Skill]
Claude:当前覆盖率 65%,建议补充边界测试
Agent 方案:
你:分析整个项目的测试质量
主 Claude:启动 test-analyzer Agent
[Agent 独立分析几百个文件]
Agent:生成测试质量报告,发现 12 个未覆盖的关键路径
七、Subagent 架构深度解析
什么是 Subagent?
Subagent 是 Agent 的底层实现机制,理解它能让你更好地设计 Agent。
核心原理:
– 独立上下文窗口:每个 Subagent 有自己的 context window
– 专属系统提示词:定制化的 system prompt
– 可配置工具集:只给必要的工具权限
– 并行执行能力:多个 Subagent 同时工作
Orchestrator-Worker 模式
Claude Code 的 Agent 系统采用”编排者-工人”模式:
主 Claude (Orchestrator)
├─ 规划任务
├─ 分配工作
└─ 汇总结果
│
├─→ Subagent A (Code Reviewer)
│ └─ 独立上下文,只读权限
│
├─→ Subagent B (Test Engineer)
│ └─ 独立上下文,读写权限
│
└─→ Subagent C (Security Auditor)
└─ 独立上下文,只读权限
Token 效率优化
Subagent 的最大价值是防止上下文污染:
没有 Subagent:
主对话上下文:
- 你的问题 (100 tokens)
- 代码审查过程 (5000 tokens)
- 测试分析过程 (5000 tokens)
- 安全审计过程 (5000 tokens)
总计:15100 tokens,主对话记忆被挤爆
有 Subagent:
主对话上下文:
- 你的问题 (100 tokens)
- Subagent A 汇总 (200 tokens)
- Subagent B 汇总 (200 tokens)
- Subagent C 汇总 (200 tokens)
总计:700 tokens,主对话记忆完整保留
设计 Subagent 的最佳实践
1. 明确职责边界
# 好的设计
name: security-auditor
responsibility: 只检查安全漏洞,不修复代码
# 坏的设计
name: code-helper
responsibility: 审查、修复、测试、文档...(职责过多)
2. 最小权限原则
# 审查类 Agent:只读
tools: [Read, Grep, Glob]
# 修复类 Agent:读写
tools: [Read, Write, Edit, Bash]
3. 清晰的输出格式
system_prompt: |
审查完成后,必须返回 JSON 格式:
{
"issues": [...],
"severity": "high|medium|low",
"recommendations": [...]
}
八、常见误区与避坑指南
误区 1:Command 能做的就不用 Skill
错误想法:Command 更简单,能用 Command 就别用 Skill
真相:Command 需要用户记住命令名,Skill 是自然语言触发
场景:PDF 处理
– Command:用户必须记住 /pdf-extract contract.pdf
– Skill:用户说”读一下这个合同”,Claude 自动识别并处理
结论:高频、确定性任务用 Command,模糊指令用 Skill
误区 2:Agent 比 Skill 高级
错误想法:Agent 更复杂,所以更强大
真相:Agent 是为了隔离上下文,不是为了”更强”
场景:单次代码审查
– Skill:够用,审查结果直接在主对话里
– Agent:过度设计,启动 Agent 反而增加开销
结论:单次任务用 Skill,批量/复杂任务用 Agent
误区 3:Plugin 只是打包工具
错误想法:Plugin 就是把文件打包在一起
真相:Plugin 是生态系统的基础设施
Plugin 的真正价值:
– 版本管理:统一更新所有组件
– 依赖管理:自动安装必要的依赖
– 配置管理:统一的配置文件
– 团队协作:确保所有人用同样的工具链
误区 4:Skill 的懒加载不重要
错误想法:反正最后都要加载,懒加载没啥用
真相:懒加载是 Skill 系统的核心设计
场景:你装了 50 个 Skill
– 没有懒加载:启动时加载 50 个 SKILL.md,消耗 10000+ tokens
– 有懒加载:启动时只加载 50 个元数据,消耗 500 tokens
结论:懒加载让你能装备大量 Skill,而不会撑爆上下文
九、快速参考表
功能对比矩阵
| 特性 | Command | Skill | Agent | Plugin |
|---|---|---|---|---|
| 触发方式 | 手动 /cmd |
AI 自动判断 | AI 自动/手动 | – |
| 上下文 | 主对话 | 主对话 | 独立隔离 | – |
| 加载时机 | 调用时 | 懒加载 | 需要时 | 安装时 |
| 适用场景 | 高频确定性 | 模糊指令 | 复杂批量 | 打包分发 |
| Token 消耗 | 中 | 低(懒加载) | 低(隔离) | – |
| 学习成本 | 低 | 低 | 中 | 低 |
| 配置复杂度 | 低 | 中 | 高 | 中 |
选择决策表
| 你的需求 | 推荐方案 | 理由 |
|---|---|---|
| 每天用 10 次的操作 | Command | 手动触发,快速执行 |
| “帮我优化这段代码” | Skill | 模糊指令,自动识别 |
| 分析整个项目的代码质量 | Agent | 批量处理,隔离上下文 |
| 分享给团队使用 | Plugin | 统一分发,版本管理 |
| 提交前快速检查 | Command | 确定性任务,立即执行 |
| 日常开发咨询 | Skill | 自然语言,随时激活 |
| 发版前深度审计 | Agent | 复杂任务,生成报告 |
十、总结
核心要点
- Command = 按钮:你说了算,手动触发,高频确定性任务
- Skill = 工具书:AI 自己判断,懒加载,模糊指令智能化
- Agent = 分身:独立上下文,批量复杂任务,防止刷屏
- Plugin = 工具箱:打包分发,版本管理,团队协作
设计原则
- 简单优先:能用 Command 就别用 Skill,能用 Skill 就别用 Agent
- 职责单一:每个 Agent 只做一件事,做好一件事
- 最小权限:只给必要的工具权限,防止意外修改
- 上下文隔离:复杂任务用 Agent,保护主对话记忆
下一步
现在你已经理解了 Claude Code 的架构,可以:
- 创建第一个 Command:把高频操作封装成斜杠命令
- 尝试 Skill:让 Claude 自动识别你的需求
- 设计 Agent:处理复杂的批量任务
- 打包 Plugin:分享给团队使用
没了。








程序员数学扫盲课
AI周刊:大模型、智能体与产业动态追踪
Claude Code 全体系指南:AI 编程智能体实战
Karpathy神经网络零基础课程
最新评论
开源的AI对话监控面板很实用,正好团队在找这类工具。准备试用一下。
折叠屏市场确实在升温,不过售罄也可能是备货策略。期待看到实际销量数据。
从磁盘I/O角度解释B树的设计动机,这个切入点很好。终于理解为什么数据库不用二叉树了。
IT术语转换确实是个痛点,之前用搜狗总是把技术词汇转成奇怪的词。智谱这个方向值得期待。
这个工具结合LLM和搜索API的思路很有意思,正好解决了我在做知识管理时遇到的问题。请问有没有部署文档?
这个漏洞确实严重,我们团队上周刚遇到类似问题。建议补充一下如何检测现有项目是否受影响的方法。
从简单规则涌现复杂性这个思路很有意思,让我想起元胞自动机。不过数字物理学在学术界争议还挺大的。
我也遇到了指令跟随变差的问题,特别是多轮对话时容易跑偏。不知道是模型退化还是负载优化导致的。