Claude Code 演進史:MCP、Slash Commands、Agents 與 Skills 的故事
視覺化呈現 Claude Code 9 個月的工具演進之旅。從 MCP 到 Slash Commands、Agents、Skills — 了解每個工具背後的設計哲學。
你是否有想過,為什麼 Claude Code 有這麼多不同的工具?MCP、Slash Commands、Agents、Skills…它們看起來很相似,卻各有不同的用途。
這篇文章將追溯 2025年4月到2026年1月,9個月的演進旅程,展示每個工具如何誕生來解決特定問題 — 而它們都朝著同一個目標前進。
時間線一覽
MCP (基礎設施) → Slash Commands → Agents → Skills → Skills 2.0 → 合併
↓ ↓ ↓ ↓ ↓
Before 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 | Before v0.2.31 | - | 外部 API 整合(開放標準) |
| Slash Commands | v0.2.31 | 2025-04-02 | 可重用的工作流程提示詞 |
| Agents | 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 | Commands 與 Skills 統一 |
核心問題:Context vs 知識
在深入了解每個工具之前,先理解它們共同解決的根本挑戰:
有限的 Context Window vs 無限的知識需求
Context Window 中的每個 token 都很珍貴。但 Claude 需要知道:
- 如何使用 Google Drive API
- 你的 Git commit 約定
- 如何導航你的程式碼庫
- 在你的專案中什麼是「好程式碼」
如果一切都在 Main Context 裡,你的實際問題就沒有空間了。
Claude Code 的每個工具都從不同角度解決這個問題。
MCP:把通用知識移出去
它是什麼
Model Context Protocol — 連接 AI 助手與外部系統和資料來源的開放標準。
為什麼創建
常見解釋:「統一架構,讓 Claude 能存取外部資料。」
真正的理由:節省 Context。
沒有 MCP 的話,每次你想用 Google Drive,Claude 都需要知道:
- API endpoints
- 認證流程
- Request/response 格式
- 錯誤代碼
- Rate limiting 規則
這可能消耗 3000+ tokens 與你的具體問題無關的通用知識。
MCP 如何解決
❌ 沒有 MCP:
Main Context = 你的問題 + API 文檔
✅ 有 MCP:
Main Context = 你的問題
External Server = API 文檔(作為工具載入)
本質:把通用知識移出去,把 Context 留給你的問題。
關鍵洞察
MCP 是開放標準 — 不是 Claude Code 獨有。任何人都可以實作 MCP servers,創建可重用的整合生態系。
Slash Commands:按需載入細節
它是什麼
.claude/commands/ 目錄中的自訂 markdown 檔案,會將預定提示詞插入對話中。
為什麼創建
MCP 解決了外部工具,但開發流程細節呢?
考慮 Git commits:
- Conventional Commits 格式
- 什麼時用
--amend(以及絕對不要用的時候) - Pre-commit hook 處理
- Force push 規則
把這些寫在 Main Context 很浪費空間。Slash Commands 解決了這個問題:
「不用就不讀,用時再載入」
運作方式
<!-- Main Context 只知道: -->
「當用戶輸入 /commit 時,執行 commit.md」
<!-- commit.md(觸發時才載入):-->
## Git Commit Workflow
1. 檢查 git status
2. 解析變更
3. Git Safety Protocol(詳細規則...)
4. 處理 pre-commit hooks
關鍵洞察
Slash Commands 實現了漸進式揭露 — 細節只在需要時出現。它們還能在模型不穩定時提供穩定性,確保工作流程按固定步驟執行。
Agents:分出去做,帶結果回來
它們是什麼
自主的子進程,獨立處理複雜的多步驟任務。
為什麼創建
隨著任務變得複雜,單一 Context 處理變得困難。
想像讓 Claude 分析一個大型專案:
- 掃描數百個檔案
- 每個檔案都有發現
- 大量中間思考
問題:
- Context 爆炸 — 中間過程佔滿 tokens
- 主對話汙染 — 分析細節混雜在主要對話中
Agents 如何解決
「分出去做,做完帶結果回來」
關鍵洞察:Sub-agent Context 永遠不會流回主對話。
- 獨立的對話歷史
- 專門的系統提示詞
- 限制的工具集(例如 Explore agent:只能 Read/Grep/Glob)
- 只回傳「答案」,不回傳「過程」
這就是 Fork — 分支出去,獨立執行,合併結果。
Skills:可重用的工作流
它是什麼
擴展 Claude 能力的模組化套件。Claude 自動偵測何時使用它們。
為什麼創建(v2.0.20 - 2025-10-16)
最初,Skills 提供:
- 可重用的工作流程定義
- 自動偵測(相對於手動 slash commands)
- 綁定的資源(scripts、references、assets)
限制:Skills 在 Main Context 中執行,使用預設 agent。
重大升級:Skills + Fork(v2.1.0 - 2026-01-07)
Skills 推出僅3個月後,迎來了改變遊戲規則的更新:
新增的兩大超能力
context: fork— 在隔離的 sub-agent context 中執行agent欄位 — 指定由哪個 agent 執行 skill
有什麼改變
| v2.1.0 之前 | v2.1.0 之後 |
|---|---|
| 在 Main Context 中執行 | 在 forked context 中執行 |
| 使用預設 agent | 使用指定的 agent |
| 執行過程汙染 Main Context | Main Context 保持乾淨 |
演進時間線
Skills 2.0.20 (2025-10-16)
❌ 無 fork context
❌ 無 agent 指定
│
├── 3 個月 →
│
▼
Skills 2.1.0 (2026-01-07) ⚡ 重大升級
✅ context: fork
✅ agent: Explore | general-purpose | custom
│
├── 2 天 →
│
▼
Skills 2.1.3 (2026-01-09)
Slash Commands 與 Skills 合併
(現在 Slash Command = Skill + user-invocable: true)
完整的漸進式揭露
有了 v2.1.0,Skills 達成了完整的漸進式揭露:
- 定義層 → SKILL.md frontmatter
- 觸發層 → description 決定何時使用
- 執行層 → 指定專門的 agent
- 隔離層 → fork context 保持乾淨
合併(v2.1.3 - 2026-01-09)
v2.1.0 推出僅兩天後,slash commands 和 skills 合併了:
“Merged slash commands and skills, simplifying the mental model with no change in behavior”
現在:Slash Commands 就是 Skills — 只是多了 user-invocable: true。
這統一了心智模型,同時保留了所有功能。
統一架構
所有四個工具從不同角度解決同一個核心問題:
┌─────────────────────────────────────────────────┐
│ Main Context │
│ (當前任務 + 專案配置) │
└───────────────────┬─────────────────────────────┘
│
┌───────────────┼───────────────┬─────────────┐
│ │ │ │
▼ ▼ ▼ ▼
┌───────┐ ┌───────┐ ┌──────┐ ┌───────┐
│ MCP │ │Skills │ │Agents│ │Command│
└───────┘ └───────┘ └──────┘ └───────┘
│ │ │ │
外部工具 工作流程知識 專家執行 快速觸發
【把通用知識移出去】【按需載入細節】【隔離執行環境】
解決方案矩陣
| 工具 | 解決問題 | 做法 |
|---|---|---|
| MCP | 外部 API 的通用知識 | 把 API 文檔移到外部 server |
| Commands | 開發流程細節 | 不用就不載入 |
| Agents | 複雜任務的執行 | Fork 出去,獨立完成 |
| Skills | 可重用的工作流 | 結合以上三者 |
目標:Main Context 只保留「當前問題 + 專案配置」,其他一切按需載入、隔離執行、用完即走。
本質:都是提示詞
剝掉花俏的名稱,剩下什麼?
MCP Server = 外部系統的提示詞封裝
Agent = 特定角色的提示詞封裝
Skill = 可重用工作流的提示詞封裝
Slash Command = 使用者觸發的提示詞封裝
工具名稱只是為了在不同階段使用而命名。
- 說「連接 MCP」比「載入外部提示詞包」更容易理解
- 說「用 Explore agent」比「用探索型提示詞」更清楚
- 說「執行 /commit」比「觸發 commit 提示詞」更簡單
設計哲學
「把對的提示詞,放在對的地方,在對的時機載入」
這就是漸進式揭露。 這就是 Context 節省。 這就是 Claude Code 的架構之美。
總結:9 個月的演進
| 日期 | 版本 | 里程碑 |
|---|---|---|
| Before 0.2.31 | - | MCP 基礎設施 |
| 2025-04-02 | v0.2.31 | Slash Commands |
| 2025-07-24 | v1.0.60 | Custom Subagents |
| 2025-10-16 | v2.0.20 | Skills 引入 |
| 2026-01-07 | v2.1.0 | Skills + Fork + Agent(重大升級) |
| 2026-01-09 | v2.1.3 | Commands 與 Skills 合併 |
九個月的迭代改進,每個工具都建立在上一個工具的基礎上 — 全都朝著同一個願景。
想深入探索嗎?
查看 /evolution 的互動式時間線視覺化,或深入閱讀:
本文基於官方 Claude Code CHANGELOG 和 git commit 歷史。