Appearance
Claude Code 扩展机制三方对比:Skill / Slash Command / Agent 官方规范
来源:Claude 官方文档(platform.claude.com、code.claude.com) 提炼日期:2026-05-18 分类:AI 方法论 文档链接:
- Skills: https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview
- Slash Commands: https://code.claude.com/docs/en/slash-commands
- Claude Code Skills: https://code.claude.com/docs/en/skills
TL;DR
Skill、Slash Command、Agent 是 Claude Code 三种扩展机制:Skill 是"知识包"由 Claude 根据语义自动选择,Command 是"提示词模板"由用户手动 /command 触发,Agent 是 Claude 的自主执行模式。三者层级不同——Agent 在最上层调用 Command,Command 引用 Skill,Skill 提供领域知识。判断该用哪种的关键:要让 Claude 自动应用 → Skill;要做快捷工作流入口 → Command。
核心观点
1. Skill 与 Command 的本质区别在触发方式
Skill 是 model-invoked(Claude 根据 description 语义自动选择),Command 是 user-invoked(用户手动输入 /command)。这决定了它们的设计目的不同:Skill 强调 description 写得能被准确匹配,Command 强调名称易记和参数灵活。
2. Skill 的渐进式披露是其核心机制
Skill 不是一次性把所有内容塞进上下文,而是分三级加载:Level 1(启动时加载 metadata,~100 tokens/Skill)→ Level 2(触发时加载 SKILL.md 主体,<5k tokens)→ Level 3(按需加载捆绑文件,无限制)。这让 Claude 可以"知道有哪些 Skill"但不至于把上下文塞满。
3. Skill vs MCP 的边界
Skill 告诉 Claude 如何使用工具(流程、规范、判断标准),MCP 是提供工具本身(连接外部 API/数据库/服务)。两者经常组合:MCP 提供 Slack 收发能力,Skill 规定"收到 bug 报告后按什么流程处理"。
关键知识点
Skill / Command / Agent 三方对比表
| 维度 | Skill | Slash Command | Agent 模式 |
|---|---|---|---|
| 官方定义 | 可复用的知识包 | 预定义提示模板 | Claude 自主执行模式 |
| 触发方式 | Claude 自动选择(语义匹配) | 手动输入 /command | 自动进行 |
| 配置文件 | SKILL.md | .md 文件 | 系统内置 |
| 位置 | .claude/skills/ 或 ~/.claude/skills/ | .claude/commands/ 或 ~/.claude/commands/ | - |
| 加载时机 | 按需加载(渐进式披露) | 触发时加载 | 始终可用 |
| 主要使用场景 | 持久化领域知识/规则 | 快捷工作流入口 | 理解意图、规划执行 |
Skill 工作流程(三阶段)
- Discovery(发现):启动时加载每个 Skill 的 name 和 description
- Activation(激活):用户请求语义匹配 Skill 描述时,Claude 请求使用该 Skill
- Execution(执行):Claude 遵循 Skill 指令,按需加载引用文件或运行脚本
SKILL.md 字段规范
markdown
---
name: your-skill-name # 必填,最多 64 字符,仅小写字母/数字/连字符,不能含 "anthropic"/"claude" 等保留词
description: 描述 + 何时使用 # 必填,非空,最多 1024 字符,应包含功能和触发时机
---
# Your Skill Name
## Instructions
[Claude 遵循的指令]
## Examples
[具体使用示例]Skill 存放位置与适用范围
| 位置 | 路径 | 适用范围 |
|---|---|---|
| 企业级 | 托管设置 | 组织所有用户 |
| 个人 | ~/.claude/skills/ | 你,跨所有项目 |
| 项目 | .claude/skills/ | 仓库内所有人 |
| 插件 | 随插件捆绑 | 安装插件的用户 |
官方预构建 Skills
- PowerPoint (pptx):创建演示文稿、编辑幻灯片
- Excel (xlsx):创建电子表格、数据分析
- Word (docx):创建文档、编辑内容
- PDF (pdf):生成格式化的 PDF 文档
Slash Command 参数语法
Command 文件支持两类参数:
| 参数 | 说明 |
|---|---|
$ARGUMENTS | 捕获所有传入的参数(拼接成一个字符串) |
$1, $2, $3... | 位置参数 |
示例:
markdown
# .claude/commands/fix-issue.md
Fix issue #$1 following our coding standards with priority $2调用:/fix-issue 123 high → $1 = "123", $2 = "high"
Slash Command 命名空间
通过子目录给命令分组:
.claude/commands/frontend/component.md→ 命令/component,列表中显示为(project:frontend)- 与 Plugin 中的 Command 区别:Plugin Command 命名空间格式为
/<plugin-name>:<command>
Slash Command 项目级 vs 用户级
| 类型 | 路径 | 显示标记 | 说明 |
|---|---|---|---|
| 项目命令 | .claude/commands/ | (project) | 与团队共享 |
| 个人命令 | ~/.claude/commands/ | (user) | 跨所有项目可用 |
Claude Code 内置命令清单(关键项)
| 命令 | 用途 |
|---|---|
/clear | 清除对话历史 |
/compact | 压缩对话 |
/config | 打开设置 |
/cost | 显示 token 使用统计 |
/help | 获取帮助 |
/init | 初始化项目 CLAUDE.md |
/model | 选择或更换模型 |
/review | 请求代码审查 |
官方扩展机制全景对照
| 使用场景 | 何时用 | 运行时机 |
|---|---|---|
| Skills | 给 Claude 专业知识(如"用我们的标准审查 PR") | Claude 自动选择 |
| Slash commands | 创建可复用提示(如 /deploy staging) | 用户输入 /command |
| CLAUDE.md | 项目级指令(如"使用 TypeScript 严格模式") | 每次对话加载 |
| Subagents | 委托任务到隔离的上下文 | Claude 委托或手动调用 |
| Hooks | 在事件时运行脚本(如保存时 lint) | 特定工具事件触发 |
| MCP servers | 连接外部工具和数据源 | Claude 按需调用 |
协作关系
┌─────────────────────────────────────────────┐
│ Agent │
│ (自主执行模式,理解意图并规划) │
└───────────────────┬─────────────────────────┘
│ 调用
▼
┌─────────────────────────────────────────────┐
│ Commands │
│ /wechat-share /git-push /wechat-insight │
│ (预定义工作流,快捷触发) │
└───────────────────┬─────────────────────────┘
│ 引用
▼
┌─────────────────────────────────────────────┐
│ Skills │
│ wechat-article-writer │
│ (能力定义、知识规则、写作指南) │
└─────────────────────────────────────────────┘实际应用建议
什么时候用 Skill
给 Claude 持久化的知识/规则:
- PR 审查标准
- 代码风格指南
- 数据库 schema
- 写作规范
- 领域专业知识
什么时候用 Command
创建快捷工作流/模板:
- 部署流程:
/deploy staging - 生成模板:
/wechat-share - Git 操作:
/git-push main - 代码审查:
/review
推荐目录结构
.claude/
├── commands/ # 快捷命令(手动触发)
│ ├── git-push.md
│ ├── git-pull.md
│ └── wechat-share.md
└── skills/ # 知识包(自动应用)
└── wechat-article-writer/
├── SKILL.md
└── guides/
├── writing-style.md
└── article-types.md启发与思考
- PM 视角的取舍标准:判断一个能力该做成 Skill 还是 Command,先问"用户想不想每次手动触发"。手动触发是 Command(明确入口、参数化),自动触发是 Skill(隐式介入、按场景激活)。
- Skill description 是激活的关键变量:description 写得不好会导致 Skill 永远激活不了,相当于失效。和搜索系统中"召回质量取决于 query 改写"是同一个道理。
- 三级渐进披露的设计哲学:和搜索引擎的"摘要-标题-全文"三层结构本质相同——先用最便宜的信号匹配,再付昂贵的上下文成本。这套思想可以迁移到任何"信息过载下的智能选择"场景。
安全注意事项
官方建议:
- 仅使用来自可信来源的 Skills(自己创建或 Anthropic 官方提供)
- 第三方 Skills 可能导致数据泄露或未授权访问
- 外部 URL 获取数据的 Skills 风险更高
- 像安装软件一样对待 Skills
原文精华
Skills are reusable, filesystem-based resources that provide Claude with domain-specific expertise: workflows, context, and best practices that transform general-purpose agents into specialists.
Custom slash commands allow you to define frequently used prompts as Markdown files that Claude Code can execute.
Skills tell Claude how to use tools; MCP provides the tools themselves.
原文链接: