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