Skip to content

Claude Code 扩展机制三方对比:Skill / Slash Command / Agent 官方规范

来源:Claude 官方文档(platform.claude.com、code.claude.com) 提炼日期:2026-05-18 分类:AI 方法论 文档链接:

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 三方对比表

维度SkillSlash CommandAgent 模式
官方定义可复用的知识包预定义提示模板Claude 自主执行模式
触发方式Claude 自动选择(语义匹配)手动输入 /command自动进行
配置文件SKILL.md.md 文件系统内置
位置.claude/skills/~/.claude/skills/.claude/commands/~/.claude/commands/-
加载时机按需加载(渐进式披露)触发时加载始终可用
主要使用场景持久化领域知识/规则快捷工作流入口理解意图、规划执行

Skill 工作流程(三阶段)

  1. Discovery(发现):启动时加载每个 Skill 的 name 和 description
  2. Activation(激活):用户请求语义匹配 Skill 描述时,Claude 请求使用该 Skill
  3. 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 命名空间格式为 /&lt;plugin-name&gt;:&lt;command&gt;

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.


原文链接:

MIT License