跳到主要内容

五层架构里,哪几层最值得拿来当通用分析框架

我不会把五层都等量地背

CCB 的五层架构很有用,但我不会把它当成“必须逐层平均记住”的目录。

如果目的是以后拿它去分析别的 coding agent,我最想先复用的是三层:

  1. 编排层
  2. 核心循环层
  3. 工具层

交互层和通信层当然也重要,但它们更像边界层;中间三层更像通用骨架。

第一层:编排层最适合当“系统感”的起点

CCB 对 QueryEngine 的强调非常对路。

很多人一想到 coding agent,会直接盯模型循环或工具调用,但真正把产品感拉出来的,往往是编排层:

  • 会话状态怎么管
  • transcript 怎么持久化
  • cost 怎么累计
  • 文件快照和 undo 怎么接进来

这层值钱的地方,是它逼你意识到:

coding agent 不是只有一个 loop,而是一个围绕 loop 组织会话、状态和恢复能力的系统。

第二层:核心循环层最适合当“最小原理框架”

这层几乎是所有 agent 系统都绕不开的共性:

  • 组装上下文
  • 调模型
  • 解析工具调用
  • 执行工具
  • 把结果塞回下一轮

所以它当然值得复用。

但我不会只把它看成“Claude Code 的循环怎么写”,而会把它当成判断别的系统是不是还停在表层包装器的标准。

如果一个产品讲不清这层,就很难说它有真正的 agentic loop。

第三层:工具层最适合分析系统边界

工具层为什么重要,不是因为“工具多”,而是因为它最直接暴露系统边界:

  • 工具能力是怎么声明的
  • 输入校验在哪里
  • 权限检查在哪里
  • 失败和结果怎么回流

这层特别适合拿来比较不同 coding agent。

因为很多产品体验上的差异,最终都能回到工具能力的组织方式和边界控制上。

交互层为什么我不先拿来当主框架

交互层很重要,但它的通用性相对没那么高。

Terminal UI、IDE UI、Web UI 都会长得不一样。你当然可以分析输入捕获、消息展示、命令模式这些点,但如果先从这里开始,很容易被界面形态带偏。

所以我更愿意先把它当“具体产品实现差异层”,不是最先拿来复用的分析框架。

通信层为什么我放后面

通信层也值得看,尤其 Provider 抽象和流式 API 很关键。

但如果你还没把编排层、核心循环层、工具层看清,过早盯通信层很容易进入“Provider 支持了几个、协议有什么细节”的局部视角。

这层更适合在中间三层站稳之后,再用来分析系统的可扩展性和模型接入策略。

如果要用这三层分析别的 coding agent

我会先问三组问题:

编排层

  • 会话状态放在哪
  • 长任务怎么恢复
  • 成本和历史怎么管理

核心循环层

  • 一轮 loop 的完整链路是什么
  • 上下文在哪收缩、压缩、替换
  • 模型输出怎么转成后续动作

工具层

  • 工具边界怎么定义
  • 权限在哪做
  • 工具结果怎么进入下一轮决策

只要这三组问题能问清,一个 coding agent 的骨架基本就能看出七八成。