你是否好奇,為什麼 Claude Code 能夠如此靈活地適應各種開發任務?為什麼只需要編輯 Markdown 文件,就能讓 AI 助手學會新的技能?
這不是魔法,而是精心設計的架構。當大多數 AI 工具還在依賴硬編碼的提示詞時,Claude Code 已經建立了一套完整的配置驅動系統。這套系統不僅讓開發者能夠自由擴展功能,更重要的是,它用一種優雅的方式解決了 AI 工具最大的痛點:如何讓 AI 持續學習新知識,而不需要重新訓練模型。
這篇文章將帶你深入 Claude Code 的核心架構,探索 Skills 系統的設計哲學,理解配置驅動開發如何改變 AI 工具的遊戲規則。
Claude Code 的多層架構設計
Claude Code 的強大並非來自單一技術,而是建立在精心設計的多層架構之上。這個架構就像一座精密的建築,每一層都有明確的職責,層與層之間通過清晰的介面溝通。
整個系統分為四個主要層級:
應用層負責使用者互動,包括 CLI 命令列介面和 IDE 整合。這一層的設計原則是簡潔直觀,讓開發者能夠快速上手。
能力擴展層是 Claude Code 的核心創新所在。Skills、Commands、Agents 和 Hooks 共同組成了一個強大的能力體系。這一層定義了「Claude Code 能做什麼」,而且完全通過配置文件來管理。
整合層負責連接外部資源。MCP(Model Context Protocol)協議讓 Claude Code 可以整合任何工具和 API,Plugins 系統則提供了模組化的擴展機制。
執行層處理實際的工具調用、權限管理和上下文管理。這一層確保所有操作都在安全、可控的環境中執行。
這種分層設計最大的優勢是關注點分離(Separation of Concerns)。當你想要修改 AI 的行為時,只需要編輯能力擴展層的配置文件,完全不需要碰觸底層的執行邏輯。這就是配置驅動開發的威力。
Skills 系統:用 Markdown 賦予 AI 專業知識
Skills 是整個 Claude Code 架構中最具革命性的設計。它的核心理念非常簡單:用 Markdown 文件來教 AI 如何完成特定任務。
傳統的 AI 工具需要你每次都重複說明背景和規則。今天你讓它審查代碼,需要解釋代碼審查的標準;明天你讓它寫文檔,又需要重新說明文檔格式。這不僅浪費時間,也容易出現不一致。
Skills 系統徹底改變了這個流程。你可以把代碼審查的標準、文檔格式、安全檢查清單,全部寫在一個 Markdown 文件裡。當你下次請求相關任務時,Claude Code 會自動激活對應的 Skill,就像一個訓練有素的專業人員,立即知道該做什麼。
Skills 的組織結構
Skills 採用階層式的組織結構,支援四個不同的層級:
- 專案層級(
.claude/skills/):專案特定的 Skills,優先級最高 - 使用者層級(
~/.claude/skills/):個人偏好的 Skills,跨專案共享 - 企業層級:組織統一部署的 Skills
- Plugin 層級:第三方 Plugin 捆綁的 Skills
這個設計非常巧妙。專案層級的 Skills 可以覆蓋全域設定,讓你在不同專案中使用不同的標準。同時,使用者層級的 Skills 讓你可以建立個人的最佳實踐庫,在所有專案中復用。
Skills 的自動激活機制
Skills 最神奇的地方在於它的自動激活機制。當你輸入一個請求時,Claude Code 會進行語義分析,自動找到最相關的 Skill 並注入到系統提示中。
這個過程包含幾個關鍵階段:
- 發現階段:啟動時掃描所有
SKILL.md文件 - 索引階段:建立名稱和描述的索引
- 匹配階段:根據使用者輸入進行語義分析
- 注入階段:將匹配的 Skill 注入系統提示
- 執行階段:Claude 遵循 Skill 中定義的流程和規則
這意味著你不需要記住每個 Skill 的名稱,只需要自然地描述你的需求,系統就會自動找到對應的專業知識。
配置驅動 vs 代碼驅動:一場範式轉移
Claude Code 的設計哲學是配置驅動,這與傳統的代碼驅動方法形成了鮮明對比。
在傳統方法中,如果你想改變 AI 的行為,需要修改代碼、重新編譯、部署更新。這個流程不僅繁瑣,還需要編程知識。
配置驅動的方法則完全不同:
- 即時生效:編輯 Markdown 文件後立即可用,無需重啟
- 低門檻:只需要會寫 Markdown,不需要編程知識
- 易分享:複製一個文件就能分享你的 Skill
- Git 友好:純文字文件,完美支援版本控制
這不僅僅是技術細節的差異,而是一種思維方式的轉變。配置驅動讓「教 AI 新技能」變成了一件輕鬆的事情,任何人都可以做到。
權限管理:三層防護體系
強大的功能需要配套的安全機制。Claude Code 實現了一套三層權限管理系統。
全域層級的權限控制哪些工具在整個系統中可用。這是最基本的安全防線,確保危險操作不會被意外執行。
專案層級的權限讓你可以針對特定專案放寬或收緊限制。比如,在一個需要訪問外部 API 的專案中,你可以允許 WebFetch 工具,但在其他專案中保持禁用。
組件層級的權限則更加細粒度。每個 Skill 可以聲明它需要哪些工具,系統會根據這個聲明進行權限檢查。
這套權限系統遵循最少權限原則(Principle of Least Privilege)。從最小權限開始,按需添加,定期審計,記錄變更原因。這確保了系統既靈活又安全。
Sub-agents:隔離執行的專門化助手
Sub-agents 是 Claude Code 中另一個重要的設計。它們就像專門化的助手,負責處理複雜的子任務。
最重要的一點是:Sub-agents 不從父對話繼承 Skills。
這個設計看似增加了配置的複雜度,但實際上是深思熟慮的結果:
- 明確性:你清楚知道每個 Agent 確切擁有什麼能力
- 可預測性:Agent 的行為不會受到父對話的影響
- 安全性:防止意外的權限傳遞
這種顯式配置的方式,讓系統更加可靠和可維護。
Hooks:事件驅動的自動化
Hooks 系統提供了完整的生命週期控制。你可以在工具調用前後、提示詞提交時、對話開始和結束時執行自定義邏輯。
這開啟了無限的可能性:
- 自動檢查:在提交提示詞前檢查敏感資訊
- 日誌記錄:追蹤所有工具調用,用於審計
- 格式化:自動調整輸入輸出格式
- 通知:在關鍵操作完成後發送通知
Hooks 讓 Claude Code 從一個互動式工具,變成了一個可以完全自動化的系統。
如何開始實踐
理解了架構,下一步就是動手實踐。以下是一些具體的行動建議:
從建立第一個 Skill 開始。選擇一個你經常重複的任務,比如代碼審查或文檔生成,把你的標準和流程寫成 Markdown。不需要追求完美,先讓它工作起來。
使用階層式組織。把通用的 Skills 放在使用者層級,專案特定的 Skills 放在專案層級。這樣可以在保持一致性的同時,獲得靈活性。
善用 @file 引用。不要把所有內容都塞在一個文件裡。使用漸進式披露的方式,主 SKILL.md 保持精簡,詳細內容放在支援文件中。
設定明確的權限。為每個 Skill 聲明 allowed-tools,遵循最少權限原則。這不僅提高安全性,也讓 Skill 的行為更加可預測。
版本管理你的 Skills。使用 Git 追蹤 Skills 的變化,在 frontmatter 中記錄版本號和變更日誌。這讓你可以安心地迭代和實驗。
善用 Hooks 自動化檢查。設定 pre-prompt-submit Hook 來檢查敏感資訊,設定 post-tool-use Hook 來記錄日誌。讓系統自動保護你。
探索 MCP 整合。如果你需要整合外部工具或 API,研究 MCP 協議。它提供了標準化的介面,讓整合變得簡單。
組合多個 Skills。不要害怕讓多個 Skills 同時激活。它們可以協同工作,就像一個專業團隊一樣。
配置驅動的未來
Claude Code 的架構設計為我們展示了 AI 工具的一個可能方向:不是讓 AI 越來越複雜,而是讓它越來越可配置、可擴展、可控制。
配置驅動勝過代碼驅動,因為它降低了門檻,讓更多人可以參與到 AI 能力的定義中。
組合勝過單體,因為 Skills + Agents + Hooks + MCP 的組合可以創造出無限的可能性。
隔離勝過共享,因為明確的邊界和顯式的配置,讓系統更加可靠和安全。
這不僅僅是技術架構的選擇,更是一種設計哲學。它相信簡單的組件可以組合出複雜的系統,相信配置可以勝過代碼,相信開放的生態可以勝過封閉的平台。
當你開始使用 Claude Code,你不只是在使用一個工具,你是在參與一種新的開發範式。一種讓 AI 成為真正可編程、可擴展、可信賴的助手的範式。
如果這篇文章激發了你對 AI 工具架構的興趣,歡迎訂閱我的 Newsletter。我會定期分享關於開發工具、生產力系統、技術架構的深度思考,幫助你建立更高效的工作流程。