← 返回目錄
第 6 章

生態:Skill、Plugin、MCP

17 個 bundled skill、Plugin 42 個檔案能改什麼、MCP 工具橋怎麼讓模型感知自身能力

三種擴展機制,三種侵入深度

Claude Code 有三種方式可以擴展它的能力,侵入核心的深度依次遞增。

Skill 是最輕量的:本質上是一段注入 system prompt 的 Markdown 文字,告訴模型「在這種場景下,按這個方式行動」。Skill 不改程式碼,不碰工具清單,完全在 prompt 層面運作。Plugin 往下一層,能同時修改 prompt、工具清單和權限設定,還能注入自訂命令。MCP 再往下,直接把外部系統的工具橋接進來,並且影響模型對自身能力邊界的感知。

Skill:17 個 Bundled,無限自訂

程式碼庫內建 17 個 bundled skill,涵蓋常見的開發場景:程式碼審查、測試驅動開發、文件生成、git 工作流程等。每個 skill 是一個 Markdown 檔案,frontmatter 定義觸發條件,正文是注入模型的指令。

Skill 的觸發方式有兩種。使用者明確呼叫(/review-pr/tdd)是一種,另一種是 skill 本身在 frontmatter 裡定義觸發條件,讓 Claude Code 在辨識到特定場景時自動載入。後者讓 skill 能做到「場景感知」——進入有 pytest.ini 的專案時自動載入 Python 測試 skill,不需要使用者手動觸發。

自訂 skill 放在 ~/.claude/skills/ 或專案的 .claude/skills/ 目錄下,格式和 bundled skill 完全一樣。

Plugin:42 個檔案,改得更深

Plugin 系統橫跨 42 個檔案,能做的事比 Skill 多得多。

Prompt 修改是和 skill 共通的能力。但 plugin 還能修改工具清單——添加新工具、覆蓋現有工具的 schema、甚至移除特定工具。對於需要嚴格限制工具集的企業部署場景,這個能力很關鍵:在 plugin 層面移除 Bash 工具,比在每次對話裡靠 prompt 提醒模型「不要用 Bash」可靠得多。

權限設定修改是 plugin 特有的能力:可以為特定工具設置預設的允許或拒絕規則,無需使用者每次手動確認。自訂命令注入也只有 plugin 支援——plugin 能把新的 /command 加進 Claude Code 的命令系統,和 bundled 命令共存。

MCP:工具橋和行為說明注入

MCP(Model Context Protocol)是最底層的擴展機制。透過 mcp.ts 入口,外部 MCP 伺服器的工具能被橋接進 Claude Code 的工具系統,從模型的角度看,MCP 工具和內建工具沒有區別。

但 MCP 不只是工具橋。每個 MCP 工具在橋接時可以附帶行為說明(behavior description),這段說明會被注入到 Prompt 的動態部分。模型不只是「能呼叫這個工具」,還「知道這個工具在什麼情況下適合用、有什麼限制、輸出要怎麼解讀」。

這個設計讓模型的能力感知是動態的。載入了 MCP 資料庫工具時,模型知道自己能查資料庫;卸載後,這個感知消失。能力清單不是寫死在 system prompt 裡的,而是隨著實際可用工具動態組裝的。

模型感知自身能力

這三種擴展機制共同實現了一個重要的設計目標:模型對自身能力的感知和實際可用能力保持一致。

很多 AI 工具的問題是模型「知道」自己能做某件事,但實際上那個工具沒有被啟用,或者參數格式已經變了。Claude Code 的做法是讓工具清單、工具說明、行為規範這三件事都在執行時動態組裝,而不是靜態寫死。Skill 載入時 prompt 更新,Plugin 啟用時工具清單更新,MCP 工具橋接時行為說明注入。模型在任何時刻看到的,就是它實際能做的。


參考來源: 本文內容參考 Xiao Tan(@tvytlx)的《Claude Code 源碼架構深度解析 V2.0》,基於原報告的分析框架和研究成果整理。