
阿里雲深度拆解 Claude Code:一個頂級 AI 編程工具的核心架構

Claude Code 是由 Anthropic 開發的 AI 編程工具,旨在通過自然語言指令幫助開發者高效完成代碼編寫、調試和項目管理。它集成在開發者的工作環境中,無需額外服務器或複雜配置。文章詳細介紹了 Claude Code 的設計模式、系統架構和交互層,包括 REPL 界面、輸入處理器和輸出渲染器等組件。
一、Claude Code 介紹
ClaudeCode 是由 Anthropic 開發的全新終端 AI 編程工具,旨在通過自然語言指令幫助開發者高效率地完成代碼編寫、調試和項目管理任務。它直接集成在開發者的工作環境(如終端)中,無需依賴額外服務器或複雜配置即可運行。
在實際的使用過程中,Claude Code 是一個比較通用的智能體,他輸出的代碼也比 cursor 簡練很多,更像是一個熟悉整個項目的高級程序員,研究和學習這個框架對於開發自己的 Agent 至關重要,本篇文章會詳細介紹 Claude Code 的設計模式和核心代碼。
二、詳細介紹
2.1 系統架構

2.2 執行流程

2.3 交互層
交互層是用户與 Claude Code 的接觸點,通常包括:
- REPL 界面:提供命令行交互體驗;
- 輸入處理器:解析用户指令,支持多種輸入模式(自然語言、命令、代碼等);
- 輸出渲染器:格式化並展示 AI 響應和工具執行結果;
在 ClaudeX 中,這一層主要由 REPL.tsx 和 PromptInput.tsx 等組件實現,它們負責接收用户輸入並展示結果。
2.3.1 輸入邏輯處理
輸入邏輯處理

2.3.2 渲染
- 階段
- 工具調用階段(Assistant 側):顯示工具名稱、參數和執行狀態;
- 工具結果階段(User 側):顯示執行結果;
- 組件
- AssistantToolUseMessage:渲染助手調用工具時的消息;
- 顯示工具名稱(通過 tool.userFacingName());
- 顯示參數(通過 tool.renderToolUseMessage());
- 使用 ToolUseLoader 顯示執行狀態動畫;
- UserToolSuccessMessage:
- 渲染工具執行成功後的結果;
- 調用 tool.renderToolResultMessage() 渲染具體內容;
- 工具接口定義
- userFacingName() 顯示給用户的工具名稱;
- renderToolUseMessage(input, options) 渲染工具參數;
- renderToolResultMessage(output, options) 渲染工具結果;
- renderToolUseRejectedMessage() 渲染拒絕消息;
- UI 渲染特性
- 使用 Ink 框架的 Box 和 Text 組件構建終端 UI;
- 支持主題系統(通過 getTheme());
- 響應式佈局(flexDirection, justifyContent);
- 詳細/簡潔模式切換(verbose 參數);
- 執行成本和時間顯示(Cost 組件);
2.4 核心引擎
核心引擎是 Claude Code 的"大腦",負責協調各個組件的工作:
- 消息系統:管理用户輸入、AI 響應和工具結果的消息流;
- 查詢引擎:與 AI 模型交互,發送請求並處理響應;
- 工具調度器:協調工具的調用和結果處理;
在 ClaudeX 中,query.ts 是核心引擎的關鍵組件,它實現了與 AI 模型交互的邏輯:
query.ts


2.5 工具
工具系統是 Claude Code 的"手腳",使其能夠與外部環境交互:
- 文件工具:讀取、寫入、搜索文件;
- 執行工具:運行 shell 命令、執行代碼;
- 分析工具:代碼分析、依賴檢查等;
- 元工具:複合工具,可以執行更復雜的任務;
每個工具都遵循統一的接口,包括名稱、描述、參數模式和執行邏輯:

工具也是整個 Claude Code 的核心資產,他這個 cli 效果這麼好除了是因為強大的模型,也是因為有很強大的工具,例如有一個特別強大的 bash tool 的工具,可以調用 shell 裏面的所有命令,也包含 agent tool,可以發揮更強大的能力。我們會在後續的文章中對工具進行單獨的分析。
2.6 上下文管理
上下文管理是 Claude Code 的"記憶",負責收集和組織代碼相關信息:
- 項目結構:目錄和文件結構
- 代碼內容:關鍵文件的內容
- 版本控制:Git 歷史和狀態
- 配置信息:項目配置和依賴
上下文管理的挑戰在於如何在有限的上下文窗口內提供最相關的信息:
- LRU 緩存機制:對文件編碼、行尾類型等信息實現緩存,減少重複操作。
文件緩存

- 按需加載策略:不會一次性加載整個代碼庫,而是根據查詢需要智能加載相關文件 。
GlobTool.tsx

- 結果截斷處理:對大量搜索結果實現智能截斷,避免上下文溢出,同時提供清晰的截斷提示 。
lsTool.tsx

- 拼裝上下文
上下文拼裝

2.7 安全
安全與權限是 Claude Code 的"護欄",確保工具使用的安全性:
- 權限驗證:工具執行前的權限檢查;
- 用户確認:關鍵操作的用户確認機制。使用最小權限原則,只向用户索要完成任務的最小權限;
- 安全邊界:文件操作和命令執行的限制;
permission.ts

三、一些啓發
3.1 用於程序員測試 prompt 的 Binary Feedback 機制
query.ts

使用完全一模一樣的請求兩次,可能是為了觀察同樣的輸入模型會不會給出兩個輸出,如果 ai 返回了兩個答案,就説明模型對於這次請求是猶豫的,考慮不清楚的,需要讓用户去做選擇。
這裏對於輸出的檢測不是檢測文本,而是去檢測生成的 tool use 是不是相同的。結構化數據輸出的穩定性要遠遠大於文本輸出的穩定性。如果沒有 tool use 才會去比較文本。
同時看到這個代碼只在程序員自己測試的時候才會生效,説明這樣的測試邏輯對於開發自己的 agent 還是比較有用的。出現這種情況就説明你需要去提高自己的 prompt 質量了。
3.2MCP 工具
整個 Claude Code 自身只維護了一個 tengu_mcp_server,同時支持用户添加 MCP Server,Claude Code 通過三級分層的結構,來管理用户的 MCP 工具:
- global:全局配置的通用的 MCP
- MCPrc:配置文件,可以共享
- project:項目級別,就是當前的代碼庫可以單獨配置
下層結構的 MCP 配置的可以覆蓋上層的 MCP 配置。
添加 MCP Server



如何獲取到多個 MCP Server 的工具,請求所有的 MCP Server,獲取到所有的 tools,將 tools 聚合,發送給大模型。
getMCPTools

3.3 通過 AI 來檢測安全
利用 AI 做安全輔助。例如判斷命令是否有被注入的可能性。
判斷命令是否有被注入

3.4 上下文壓縮處理
核心功能:清空對話歷史但保留上下文摘要,解決了長對話導致的上下文窗口問題。
技術亮點:
1.智能摘要生成:使用 Sonnet 模型生成對話摘要,保留關鍵信息供後續使用;
2.Fork 機制應用:利用 setForkConvoWithMessagesOnTheNextRender 創建新的對話分支,摘要作為新對話的起點;
3.Token 使用優化:將摘要的 token 使用量設為 0,避免觸發上下文窗口警告;
4.緩存清理:清理 getContext 和 getCodeStyle 緩存,確保新對話環境乾淨;
核心代碼流程:
1.獲取當前對話歷史
2.構造摘要請求並調用 Sonnet 模型
3.提取並驗證摘要內容
4.清屏、清空消息歷史
5.創建包含摘要的新對話分支
3.5 簡單任務交給小模型
Claude 內部會有好幾個模型實例,如果是隻判斷對錯或者是一些簡單的任務,會交給 haiku 模型。
queryHaiku


3.6 高效的文件系統策略
- 分層的代碼項目拉取,先獲取高層次項目結構,再根據需要深入特定目錄,避免一次性加載過多內容;
- Ripgrep 集成:利用 Rust 編寫的高性能搜索工具 ripgrep,實現毫秒級的代碼庫搜索;
- 內置二進制支持:包含預編譯的 ripgrep 二進制文件,確保跨平台一致性和性能;
- 智能結果排序:搜索結果按修改時間排序,優先展示最近更改的文件,提高相關性;
- 併發搜索能力:支持同時發起多個搜索請求,大幅提高大型代碼庫的分析效率;
- LRU 緩存機制:對文件編碼、行尾類型等信息實現緩存,減少重複操作;
3.7 精妙的工具
Claude Code 中內置的 15 個工具的實現和提示詞都值得反覆學習,就是因為這些極致的工具才使得任務執行的高效。
四、彩蛋

五、iFlow CLI
隨着 Claude Code 的爆火出圈,我們發現這個產品是真實地提高程序員的開發效率。我們也持續追蹤了兩個月 Claude Code 的升級進展,幫助了很多同學在國內環境使用 Claude Code。隨着 Cursor、Claude Code 對國內 ip 加大力度管控,使用這類前沿工具變得十分困難,但最近一個月也迎來了很多驚喜:Kimi K2、Qwen3-Coder、GLM-4.5 等國產大模型相繼湧現,Gemini CLI 也宣佈開源。國產編程工具正不斷突破創新,致力於為國內開發者打造更智能、更高效的極致開發體驗。
心流團隊一直在探索 AGI 的路上,我們也一直在找尋最通用 AI 助手的技術架構和產品形態,CLI + MCP 的出現讓我們覺得這可能就是我們實現 AGI 的路徑。所以我們向大家隆重介紹我們最新研發的 CLI 工具,iFlow CLI 2.0。

它基於 Gemini CLI 改造,我們花了一些時間打磨它,融合了一些 Claude Code 的特性。

- 支持 4 種運行模式。yolo(模型最大權限,可以執行任何操作),accepting edits(模型只有修改文件權限), plan mode(先規劃後執行), default(模型無任何權限);
- 升級 subAgent 功能。讓 CLI 從通用助手向專家團隊進化,為你提供更加專業、更加準確的建議,使用/agent 可以看到更多預先配置好的 agent;
- 升級 task 工具。有效壓縮上下文長度,讓 CLI 能夠更加深入完成你的任務,上下文達到 70% 的時候會自動壓縮;
- 接入心流開放市場。快速安裝好用的 MCP 工具、Subagent 和自定義指令,可以通過/mcp 瞭解更多;
- 免費使用多模態模型,也可以在 CLI 中粘貼圖片了(Ctrl+V 粘貼圖片);
- 支持歷史對話保存和回滾 (iflow --resume 和/chat 命令);
- 支持更多更好用終端命令(iflow -h 查看更多命令);
- 支持 VSCode、Jetbrains 插件 (注意 IDE 對應版本號);
- 自動升級,再也不用擔心最新功能體驗不到了;
5.1 一鍵安裝
mac/linux/ubuntu 用户

已經安裝過的同學可以再次執行這個腳本,實現更新,後續 cli 會自動更新。
Windows 用户
1. 訪問 https://nodejs.org/zh-cn/download 下載最新的 Node.js 安裝程序;
2. 運行安裝程序來安裝 Node.js;
3. 重啓終端:CMD 或 PowerShell;
4. 運行 npm install -g @iflow-ai/iflow-cli 來安裝 iFlow CLI;
5. 運行 iflow 來啓動 iFlow CLI;
5.2 開放市場安裝 SubAgent 和 MCP 工具
缺少了 MCP 和 Sub agent 的 CLI 是不完整的,加入 MCP 和 Sub agent 的之後會讓 CLI 變成領域專家!對於很多小白用户來説,操作實在太難了!
心流開放市場幫你解決 ???? 立即體驗:https://platform.iflow.cn/cli
MCP 開放市場,一鍵安裝,解鎖高效工具。
agent 開放市場,一鍵安裝 Subagent,引入更強大的專家 agent。
複製安裝命令!在終端中執行!一鍵安裝體驗 MCP 和 Subagent!
六、CLI 到底能做什麼
6.1 熟悉項目、寫代碼、debug
這是 CLI 的強項,進入到你的項目中,打開 iFlow CLI,什麼功能不熟悉,問他;什麼業務需要實現,描述清楚讓 CLI 幫你實現;遇到報錯了,把報錯信息貼給 CLI 讓它幫你解決。
6.2 做網站
使用本地的私有數據,繪製你自己的報告網站。

6.3 DeepReseach




6.4 引入 Sub Agents 實現業務邏輯
產品需求文檔 -> 需求處理 Agent -> UI 設計 Agent -> UI 優化 Agent -> 代碼邏輯開發 Agent -> 接口集成 Agent -> 單元測試 Agent
本文作者:茂道,來源:阿里雲開發者,原文標題:《Claude Code 深度拆解:一個頂級 AI 編程工具的核心架構》
風險提示及免責條款
市場有風險,投資需謹慎。本文不構成個人投資建議,也未考慮到個別用户特殊的投資目標、財務狀況或需要。用户應考慮本文中的任何意見、觀點或結論是否符合其特定狀況。據此投資,責任自負。

