Skip to content

Cline 架構總覽

源码版本v4.0.10

一句話

Cline 是一個 VSCode 擴充套件 + 遞迴式 agent 循環 + 工具協調器 的 AI 程式設計助手:activate 裝配 Controller → 使用者發訊息建立 Task → Task 透過 recursivelyMakeClineRequests 遞迴驅動「LLM 流 → 解析助手訊息 → 執行工具 → 回流結果」直到回合結束。工具由 ToolExecutorCoordinator 按名分發,Provider 在 buildApiHandler 中 switch 分流,MCP/子 Agent/上下文截斷/checkpoints/hooks 各自獨立。

分層

每層一句話

  • 啟動與宿主:activate 順序裝配 host→遷移→webview→註冊命令,Controller 持有 Task、McpHub、StateManager。
  • Agent 主循環:Task 類是單回合狀態機,recursivelyMakeClineRequests 遞迴驅動每一輪。
  • 助手訊息解析:parseAssistantMessageV2 把 LLM 文字流切成文字/工具/reasoning block,diff 演算法構造新檔案內容。
  • 工具系統:ToolExecutorCoordinatorClineDefaultTool 名分發到 25+ 個 handler。
  • Provider 渠道:buildApiHandler 一個 switch 分流到 40+ 個廠商 handler。
  • 系統提示與模式:PromptBuilder 按模型 variant 拼系統提示,plan/act 兩種模式控制只規劃還是執行。
  • MCP 與子 Agent:McpHub 連外部 MCP server,SubagentRunner 跑隔離子任務,ContextManager 截斷歷史。
  • 儲存與 Hooks:StateManager 持久化全域狀態,Hooks 在生命週期事件觸發外部命令,Checkpoints 做任務快照。

分層動機

Cline 把「怎麼和 VSCode 整合」 (宿主)、「怎麼驅動回合」 (Task 循環)、「怎麼解析 LLM 輸出」 (parsing)、「怎麼執行工具」 (tools)、「怎麼調模型」 (providers)、「怎麼拼提示」 (prompts)、「怎麼擴充」 (MCP/子 Agent)、「怎麼持久」 (storage) 完全解耦。這樣換模型不影響工具,換工具不影響循環,加 MCP server 不改核心。Task 類是唯一的中樞,所有回合狀態都在它身上。

常見誤讀

  • 「Cline 是個 ChatGPT 包裝」——不全是。Provider 分流只是表面,真正的核心是遞迴式 agent 循環 + 工具協調器,LLM 只是循環裡的一個步驟。
  • 「工具是硬編碼的」——ToolExecutorCoordinator 是註冊表式,handler 獨立檔案,可以按名註冊和擴充。
  • 「plan 和 act 是兩套程式碼」——不是。兩者共用 Task 循環,只是系統提示和允許的工具集不同。

推薦閱讀順序

先看 啟動與宿主,再看 Task 類遞迴驅動,然後按 工具系統Provider系統提示與模式MCP 與子 Agent儲存與 Hooks 的順序往下。

對照官方資料:Cline 官網 · Cline 文件 · GitHub