内容来源:ClaudeWorld。https://claude-world.com/articles/claude-code-evolution/
原题:Claude Code Evolution: MCP, Commands, Agents & Skills
原发布时间:2026-01-15
用可视化方式回顾 Claude Code 工具九个月的演进历程。从 MCP 到斜杠命令、智能体与 Skills,理解每一种工具背后的设计理念。

你是否想过,Claude Code 为什么会有这么多种不同的工具?MCP、斜杠命令、智能体、Skills……它们看起来很相似,却各有不同用途。
本文将追溯从 2025 年 4 月到 2026 年 1 月的九个月演进历程,说明每种工具如何为了某个具体问题而诞生,又怎样朝着同一个目标共同运作。
时间线速览
MCP(基础) → 斜杠命令 → 智能体 → Skills → Skills 2.0 → 合并
↓ ↓ ↓ ↓ ↓
0.2.31 以前 v0.2.31 v1.0.60 v2.0.20 v2.1.0/v2.1.3
(开放标准) (2025-04-02) (2025-07-24) (2025-10-16) (2026-01-07/09)
快速参考表
| 工具 | 版本 | 日期 | 用途 |
|---|---|---|---|
| MCP | v0.2.31 之前 | - | 外部 API 集成(开放标准) |
| 斜杠命令 | v0.2.31 | 2025-04-02 | 可复用的工作流提示词 |
| 智能体 | v1.0.60 | 2025-07-24 | 隔离执行任务 |
| Skills | v2.0.20 | 2025-10-16 | 自动识别的能力 |
| Skills + Fork | v2.1.0 | 2026-01-07 | 以隔离方式执行 Skills |
| 合并 | v2.1.3 | 2026-01-09 | 命令与 Skills 统一 |
核心问题:上下文与知识
深入了解每一种工具之前,先理解它们都在解决的根本挑战:
有限的上下文窗口与无限的知识需求
上下文窗口中的每一个 Token 都十分宝贵。然而,Claude 需要知道:
• 如何使用 Google Drive API
• 你的 Git 提交约定
• 如何浏览你的代码库
• 在你的项目中,怎样的代码才算“好代码”
如果所有内容都放在主上下文中,真正的问题反而会无处容身。
Claude Code 中的每种工具,都在从不同角度解决这个问题。
MCP:把通用知识移出去
它是什么
模型上下文协议(Model Context Protocol)——一种把 AI 助手连接到外部系统和数据源的开放标准。
为什么创建它
常见解释是:“为 Claude 访问外部数据提供统一架构。”
而其真正原因是:节省上下文。
没有 MCP 时,每次使用 Google Drive,Claude 都需要知道:
• API 端点
• 身份验证流程
• 请求与响应格式
• 错误代码
• 速率限制规则
这些与你具体问题毫无关系的通用知识,很容易占据 3,000 多个 Token。
MCP 如何解决问题
❌ 没有 MCP:
主上下文 = 你的问题 + API 文档
✅ 使用 MCP:
主上下文 = 你的问题
外部服务器 = API 文档(以工具形式加载)
本质:把通用知识移到外部,把上下文留给你的问题。
核心洞见
MCP 是一项开放标准,并非 Claude Code 独有。任何人都能实现 MCP 服务器,由此形成可复用集成的生态系统。
斜杠命令:按需加载细节
它是什么
.claude/commands/ 中的自定义 Markdown 文件,可以把预定义提示词插入对话。
为什么创建它
MCP 解决了外部工具问题,但开发工作流的细节怎么办?
以 Git 提交为例:
• Conventional Commits 格式
• 什么时候使用 --amend(以及什么时候绝不能用)
• 处理 Pre-commit Hook
• Force Push 规则
把这些内容写进主上下文会浪费空间。斜杠命令采用的解决办法是:
“需要之前不要加载”
工作方式
<!-- 主上下文只知道: -->
“用户输入 /commit 时,执行 commit.md”
<!-- commit.md(仅在触发时加载): -->
## Git 提交工作流
1. 检查 Git 状态
2. 解析变更
3. Git 安全协议(详细规则……)
4. 处理 Pre-commit Hook
核心洞见
斜杠命令实现了渐进式披露——只在需要时显示细节。它还可以在模型不确定时提供稳定性,确保工作流按固定步骤执行。
智能体:分叉出去,执行任务,返回结果
它们是什么
能够独立处理复杂、多步骤任务的自主子流程。
为什么创建它们
随着任务变得复杂,在单一上下文中处理会越来越笨重。
想象一下,让 Claude 分析一个大型项目:
• 扫描数百个文件
• 每个文件都会带来新的发现
• 产生大量中间思考
问题:
1、上下文爆炸——中间过程耗尽 Token
2、污染主对话——分析细节与主要对话混在一起
智能体如何解决问题
“到别处完成,再把结果带回来”
核心洞见是:子智能体的上下文不会回流到主对话。
• 独立的对话历史
• 专门的系统提示词
• 受限制的工具集(例如 Explore 智能体只能使用 Read/Grep/Glob)
• 返回“答案”,而不是“过程”
这就是 Fork——从主线分支出去,独立执行,再合并结果。
Skills:可复用工作流
它们是什么
扩展 Claude 能力的模块化软件包。Claude 会自动识别何时使用它们。
为什么创建它们(v2.0.20,2025-10-16)
最初,Skills 提供了:
• 可复用的工作流定义
• 自动识别(区别于手动斜杠命令)
• 捆绑资源(脚本、参考资料、素材)
局限:Skills 使用默认智能体,在主上下文中运行。
重大升级:Skills + Fork(v2.1.0,2026-01-07)
Skills 发布仅仅三个月后,就迎来了一次改变游戏规则的更新:
新增两项超级能力
1、context: fork——在隔离的子智能体上下文中执行
2、agent 字段——指定由哪个智能体执行 Skill
发生了什么变化
| v2.1.0 之前 | v2.1.0 之后 |
|---|---|
| 在主上下文中运行 | 在分叉上下文中运行 |
| 使用默认智能体 | 使用指定智能体 |
| 执行过程污染主上下文 | 主上下文保持干净 |
演进时间线
Skills 2.0.20(2025-10-16)
❌ 没有分叉上下文
❌ 不能指定智能体
│
├── 三个月 →
│
▼
Skills 2.1.0(2026-01-07)⚡ 重大升级
✅ context: fork
✅ agent: Explore | general-purpose | custom
│
├── 两天 →
│
▼
Skills 2.1.3(2026-01-09)
斜杠命令与 Skills 合并
(现在,斜杠命令 = Skill + user-invocable: true)
完整的渐进式披露
从 v2.1.0 开始,Skills 实现了完整的渐进式披露:
1、定义层 → SKILL.md Frontmatter
2、触发层 → 由描述决定何时使用
3、执行层 → 指定专业智能体
4、隔离层 → 通过分叉上下文保持整洁
合并(v2.1.3,2026-01-09)
在 v2.1.0 发布仅仅两天后,斜杠命令与 Skills 合并了:
“合并斜杠命令与 Skills,在行为不变的前提下简化心智模型”
现在:斜杠命令就是 Skills——只不过设置了 user-invocable: true。
这次调整统一了心智模型,同时保留了全部功能。
统一架构
四种工具都在从不同角度解决同一个核心问题:
┌─────────────────────────────────────────────────┐
│ 主上下文 │
│ (当前任务 + 项目配置) │
└───────────────────┬─────────────────────────────┘
│
┌───────────────┼───────────────┬─────────────┐
│ │ │ │
▼ ▼ ▼ ▼
┌───────┐ ┌───────┐ ┌──────┐ ┌───────┐
│ MCP │ │Skills │ │智能体 │ │ 命令 │
└───────┘ └───────┘ └──────┘ └───────┘
│ │ │ │
外部工具 工作流知识 专家执行 快速触发
【移出通用知识】【按需加载】【隔离执行】
解决方案矩阵
| 工具 | 解决的问题 | 方法 |
|---|---|---|
| MCP | 外部 API 知识 | 把文档移到外部服务器 |
| 命令 | 工作流细节 | 触发之前不加载 |
| 智能体 | 执行复杂任务 | 分叉出去,独立完成 |
| Skills | 可复用工作流 | 结合以上三种方式 |
目标:主上下文只保留“当前问题 + 项目配置”。其他所有内容按需加载、隔离执行,或者在完成后退出。
本质:一切都是提示词
拿掉这些华丽的名称,剩下的是什么?
MCP 服务器 = 外部系统提示词
智能体 = 基于角色的提示词
Skill = 工作流提示词
斜杠命令 = 用户触发的提示词
工具名称是为了适应不同使用阶段而存在的。
• “连接 MCP”比“加载外部提示词包”更容易理解
• “使用 Explore 智能体”比“使用探索型提示词”更清楚
• “运行 /commit”比“触发提交提示词”更简单
设计理念
“在正确的时间,把正确的提示词放到正确的位置。”
这就是渐进式披露。
这就是节省上下文。
这就是 Claude Code 的架构。
总结:九个月的演进
| 日期 | 版本 | 里程碑 |
|---|---|---|
| 0.2.31 之前 | - | MCP 基础 |
| 2025-04-02 | v0.2.31 | 斜杠命令 |
| 2025-07-24 | v1.0.60 | 自定义子智能体 |
| 2025-10-16 | v2.0.20 | 引入 Skills |
| 2026-01-07 | v2.1.0 | Skills + Fork + Agent(重大升级) |
| 2026-01-09 | v2.1.3 | 命令与 Skills 合并 |
在这九个月的迭代改进中,每种工具都建立在前一种工具之上——全部朝着同一种愿景前进。
想继续探索?
打开 /evolution 中的交互式演进时间线,以可视化方式了解这段历史;也可以深入阅读:
• CLAUDE.md 设计原则
• 多 AI 工作流指南
• 上下文管理最佳实践
本文以官方 Claude Code CHANGELOG 和 Git 提交历史为基础。
当前版本准确性说明(核对日期:2026-07-22)
• 版本时间线是作者根据 Changelog 与 Git 历史所作的重构,并非 Claude Code 官方架构路线图。MCP 在 2024 年 11 月就已经作为一项独立的开放协议发布,因此仅仅把它标为 Claude Code v0.2.31 之前的一个阶段,会混淆该协议本身的历史与某一个客户端的发布历史。
• MCP 的主要用途是以可互操作的方式连接外部能力和上下文,而不只是把 API 文档移出提示词。服务器可以公开工具、资源和提示词;它们的 Schema 或指令依然会产生上下文成本。
• 当前 Claude Code 默认通过 Tool Search 延迟加载 MCP 工具定义:最初只加载工具名称,相关 Schema 则在需要时载入。原文的静态上下文成本模型早于这一默认机制,不应视为当前行为。
• 旧版 .claude/commands/*.md 文件如今会作为 Skills 处理,并支持相同的 Frontmatter。它们不一定只能由用户触发;如果要禁止模型调用,应设置 disable-model-invocation: true。
• “斜杠命令就是设置了 user-invocable: true 的 Skill”这一说法并不完整。该字段默认为 true,而且只控制是否显示在斜杠菜单中,并不能阻止 Claude 调用这项 Skill。
• v2.1.0 Changelog 确实支持文章的关键历史论断:该版本为 Skills 和斜杠命令加入了 context: fork 与 agent 字段,随后 v2.1.3 将两者合并。
• 子智能体是上下文彼此隔离的子 Claude 实例,不只是操作系统子进程。它们会把最终结果返回父智能体,自定义子智能体可以恢复执行,而分叉的子智能体会继承父对话上下文。
• 限制子智能体的工具集是可选行为。如果省略 tools,自定义子智能体会继承主对话中的全部工具,包括 MCP 工具;如需限制,必须显式声明。
• MCP 服务器、Skills、子智能体与命令并不只是几种不同的提示词包。MCP 包含运行时协议和可执行能力,子智能体则加入了模型执行与编排。文章最后的等式只是一种概念比喻。