内容来源:ClaudeWorld。https://claude-world.com/articles/claude-code-evolution/
原题:Claude Code Evolution: MCP, Commands, Agents & Skills
原发布时间:2026-01-15

用可视化方式回顾 Claude Code 工具九个月的演进历程。从 MCP 到斜杠命令、智能体与 Skills,理解每一种工具背后的设计理念。

ClaudeWorld 网站社交分享封面:像团队主管一样带领 Claude Code

你是否想过,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: forkagent 字段,随后 v2.1.3 将两者合并。
• 子智能体是上下文彼此隔离的子 Claude 实例,不只是操作系统子进程。它们会把最终结果返回父智能体,自定义子智能体可以恢复执行,而分叉的子智能体会继承父对话上下文。
• 限制子智能体的工具集是可选行为。如果省略 tools,自定义子智能体会继承主对话中的全部工具,包括 MCP 工具;如需限制,必须显式声明。
• MCP 服务器、Skills、子智能体与命令并不只是几种不同的提示词包。MCP 包含运行时协议和可执行能力,子智能体则加入了模型执行与编排。文章最后的等式只是一种概念比喻。