在相同质量标准与 8 分钟 SLA 约束下,我们将复杂原型设计 Agent 的单任务平均成本从 21.80 美元降至 0.88 美元,P95 端到端耗时从 55.4 分钟压缩至 7.6 分钟,每 100 美元算力完成的合格交付数提升了 96.3 倍。
这一演进始于一个在生产环境中极为常见的痛点:用户仅仅修改了一个页面的组件样式或交互按钮,未受控的 Agent 却在自由探索中引发了全局代码重构。原本几分钟就能完成的微调,演变成动辄耗时 60 分钟、消耗 30 多美元的模型计算黑洞。
这一看似偶发的局部重构案例,恰恰折射出复杂 Agent 系统在工程落地时的普遍困境:当任务图的关联度随系统复杂度成倍增加时,缺乏明确边界的非确定性推理会将整个系统拖入震荡与熵增的泥潭。
优化此类复杂 Agent 系统,本质上需要回答三个核心架构问题:
- 终态边界:什么条件定义任务真正的完成;
- 推理边界:哪些状态节点需要大模型的非确定性推理;
- 控制边界:已确定的计算与规则工作流应当如何高效执行。
本文梳理该系统在过去数月演进中的架构迭代逻辑:系统从最初依赖模型自由探索的 ReAct 模式,逐步收敛为基于契约解耦、确定性状态机工作流与上下文拓扑优化的高效率架构。
1. 事后审查模式的时延与成本陷阱
在早期架构中,系统采用 ReAct 机制驱动整个生成生命周期。Agent 根据当前状态推理下一步动作,调用工具执行代码编写或校验,并依据反馈决定继续生成、修复还是终止任务。
为了确保交付质量的下限,架构在 ReAct 循环中逐渐叠加了多层审查机制:每次页面生成后强制进入审查环节,若发现缺陷则触发修复,修复完成后再次校验。
flowchart LR
A["页面实现"] --> B["审查评估"]
B -->|"发现问题"| C["局部修复"]
C --> B
B -->|"通过"| D["交付完成"]这一阶段的架构在质量维度拦截了低质量产物到达交付门禁。但在系统工程维度,过度依赖事后审查产生了显著的瓶颈:
- 计算链路膨胀:每一轮审查都伴随着完整的上下文装载、模型推理与工具交互。修复过程可能改写原本正确的模块,引发连锁式的二次审查。
- 长尾时延显著:在复杂场景下,单次任务的模型成本经常超过 20 美元,端到端耗时突破 60 分钟。
- SLA 不可控:即便简单任务也可能因模型评估的波动陷入多轮审查,导致服务时延承诺难以保持稳定。
在填补质量漏洞的同时,审查过重的版本展现出非常典型的长尾开销:
| 衡量维度 | P50 | P95 | 最大值 |
|---|---|---|---|
| 单任务模型成本 | 21.3 美元 | 28.6 美元 | 34.7 美元 |
| 端到端耗时 | 27.6 分钟 | 55.4 分钟 | 68.7 分钟 |
这组数据揭示了一个反直觉的工程现象:事后审查固然抬高了质量下限,但无法提升系统的有效交付能力。 相反,它让系统用越来越多的算力成本,换取越来越不可控的完成时间。
系统的改进方向由此从单纯追求高成功率,转向在可控成本与时延约束下提供工程可用性。
2. 量化基线:Agent Goodput 的工程定义
为精确衡量架构演进的工程收益,系统借鉴了计算机网络与分布式系统中的吞吐量评估方法,引入有效吞吐量 Agent Goodput 这一核心工程指标。
在计算机网络中:
- Throughput 计算物理链路上传输的所有数据包,包含重传包和报头开销;
- Goodput 扣除所有开销与损耗,仅计算应用层最终成功接收的有效载荷。
映射到 Agent 系统中:
- Token 或 Request 吞吐量仅代表模型调用的原始算力消耗或交互频次;
- Agent Goodput 则是指剔除无效探索、冗余审查与超时重试后,系统在单位算力投入下最终交付的合格产品数。
系统将有效吞吐量显式定义为:
这一指标直观回答了一个问题:系统每消耗 100 美元算力,能在承诺的 SLA 时限内交付多少个合格的产品原型?
公式对分子与分母施加了明确约束:
- 分子筛选:仅包含同时满足产品完整度达标且端到端耗时在 SLA 范围内的任务;
- 分母核算:包含全量算力开销,涵盖模型 Token、工具运行、中间审查、失败重试及未完成任务消耗的所有资源。
Agent Goodput 明确了架构优化的先后顺序:在质量达到交付门禁的前提下,首先将时延收敛至 SLA 区间,在此基础上最小化完成任务的算力成本。
3. 架构解耦:契约驱动与决策前置
旧架构效率低下的根源在于决策密度的离散分布。在开放的 ReAct 循环中,每个页面生成节点都在独立尝试理解整个产品,导致设计决策分散在各个子任务中,极易引发风格偏离与多轮震荡修复。
解决方案是将非确定性的设计推理集中收敛到执行之前,引入显式的规划节点。规划节点在代码实现之前冻结三类系统级契约:
- 任务拆分契约:锁定产品的页面树结构、路由关系与各页面的职责边界;
- 共享约束契约:收敛全局视觉 Token、通用 UI 组件库与状态数据流规范;
- 验收契约:定义判定任务完成的客观规则与门禁条件。
flowchart TD
subgraph NEW["契约解耦与前置规划架构"]
N1["规划节点生成全局契约"] --> N2["页面 A 边界内实现"]
N1 --> N3["页面 B 边界内实现"]
N1 --> N4["页面 C 边界内实现"]
N2 --> N5["确定性门禁校验"]
N3 --> N5
N4 --> N5
end通过契约前置,系统实现了全局决策与局部实施的彻底解耦。规划节点集中承担了高不确定性的架构推理,下游子任务则被限定在确定性契约的边界内部。事后审查机制也随之简化为针对契约的确定性校验,大幅削减了不必要的长链 LLM 审查。
4. 拓扑重构:并发执行与 Prefix Cache 共享
全局规划契约的确立,为子任务开辟了独立推进的空间。然而,在工程落地时,如果直接将子任务并发推进,系统会面临新的瓶颈:上下文加载膨胀与分支耗时累加。
针对这两个问题,系统分别做出了针对性重构:
4.1 关键路径解耦与分支并发
在获得稳定的规划契约后,页面级实现任务共享相同的产品事实,端到端耗时的增长模式从串行相加转变为由最慢关键路径决定:
- 串行耗时:\( T_{\text{serial}} \approx T_{\text{plan}} + \sum T_{\text{page}} + T_{\text{gate}} \)
- 并行耗时:\( T_{\text{parallel}} \approx T_{\text{plan}} + \max(T_{\text{page}}) + T_{\text{gate}} \)
按页面数量分桶评测,并行化的工程收益非常直观:
| 页面数 | 旧架构 P50 / P95 | 新架构 P50 / P95 | 旧架构完整交付率 | 新架构完整交付率 |
|---|---|---|---|---|
| 2 页 | 16.9 / 34.5 分钟 | 2.2 / 3.6 分钟 | 82.5% | 90.0% |
| 3~4 页 | 27.6 / 55.4 分钟 | 4.4 / 6.8 分钟 | 85.0% | 90.0% |
| 5~6 页 | 41.8 / 63.2 分钟 | 6.6 / 7.9 分钟 | 80.0% | 87.5% |
旧架构的耗时随页面数量线性增长;新架构中,页面增加主要扩大并发宽度,而不会拉长关键路径。与此同时,完整交付率保持稳定,说明规划已将原本由末端审查承担的质量底线前置到了执行之前。
4.2 树状 Prompt 拓扑与 KV Cache 复用
简单并发虽然缩短了耗时,但如果不加控制,每个并发分支都会重复加载全局需求、产品结构与视觉约束,导致 Token 成本随并发宽度激增。
解决该瓶颈的核心在于重构输入的上下文拓扑。新架构将 Prompt 输入解耦为全局静态前缀(包含需求全景、契约规范与组件库)与局部动态任务(仅包含当前分支指令):
flowchart TB
P["全局静态前缀<br/>需求 · 结构 · 视觉约束 · 规范"]
P -->|"Prefix Cache 共享"| A["页面 A 局部任务"]
P -->|"Prefix Cache 共享"| B["页面 B 局部任务"]
P -->|"Prefix Cache 共享"| C["页面 C 局部任务"]全局静态前缀利用推理引擎的 Prefix Cache 特性建立 KV 缓存,后续并行分支均可无缝复用。首次写入开销被多个分支摊薄后,复杂的输入上下文读取成本得到了量级压缩:
| 页面数 | 可缓存输入成本下降 | 模型总成本下降 | 完整任务成本下降 |
|---|---|---|---|
| 2 页 | 51% | 31% | 24% |
| 3~4 页 | 68% | 49% | 41% |
| 5~6 页 | 82% | 65% | 56% |
这一设计将并发成本的增长曲线从线性相加转变为单次写入、多次复用,仅通过上下文拓扑优化,就使 5~6 页复杂原型的完整任务成本下降了 56%。
5. 控制收敛:有界状态机与确定性门禁
解决了决策边界与上下文开销后,系统需要解决最后一个瓶颈:ReAct 循环带来的执行熵增。
ReAct 机制适合在未知空间中进行开放探索。然而,在任务目标与验收契约已经明确的阶段,继续允许模型自主决定是否反复审查和优化,极易引发无限循环与长尾耗时。
新架构将控制权从 LLM 手中收回,构建了由确定性状态机主导的工作流:
flowchart LR
P["规划阶段<br/>Agent 探索"] --> E["分支并行<br/>工作流控制"]
E --> G["契约门禁<br/>规则校验"]
G -->|"通过"| D["交付完成"]
G -->|"失败"| R["异常修复<br/>局部 Agent"]
R --> G在有界控制流中:
- 状态机工作流 严格掌控分支并发、超时控制与重试预算;
- 规则门禁 提供客观、低时延的 Pass/Fail 信号;
- Agent 作用域 被收窄至规划阶段的开放决策,以及门禁未通过时的局部有界修复。
校验通过时,工作流立即终止;校验失败时,修复上下文限定在报错模块内部,避免全局重跑。
状态机控制流为系统建立了极其清晰的执行耗时与成本收敛边界:
| 衡量维度 | 最小值 | P50 | P95 | 最大值 |
|---|---|---|---|---|
| 端到端交付耗时 | 2.1 分钟 | 4.1 分钟 | 7.6 分钟 | 8.0 分钟 |
| 2 页任务成本 | 0.42 美元 | 0.60 美元 | 0.84 美元 | 1.10 美元 |
| 5~6 页任务成本 | 0.95 美元 | 1.22 美元 | 1.74 美元 | 2.15 美元 |
更重要的是,8 分钟不只是一次较好实验的观测值,而是控制流设计出来的工程边界:并发预算、局部修复与终止条件共同保证了系统不会再次滑入无限审查的极端长尾。
6. 吞吐量对比与拓扑重构范式
在统一评测集上(200 个样本,覆盖 2~6 页面原型,8 分钟交付 SLA),上述三项范式转换推动系统实现了 Agent Goodput 的阶跃增长:
| 阶段 | SLA 内合格交付 | 平均任务成本 | 每 100 美元有效吞吐量 | 相对 5 月稳定版 |
|---|---|---|---|---|
| 4 月:开放 ReAct | 14 / 40 | 5.20 美元 | 6.7 | 6.5× |
| 5 月:叠加 Review 稳定版 | 9 / 40 | 21.80 美元 | 1.0 | 1.0× |
| 6 月:Plan 前置与并行 | 30 / 40 | 3.40 美元 | 22.1 | 21.4× |
| 7 月:Prefix Cache | 33 / 40 | 1.90 美元 | 43.4 | 42.1× |
| 8 月:Workflow 与门禁 | 35 / 40 | 0.88 美元 | 99.4 | 96.3× |
合格原型交付数
每 100 美元 Agent Goodput
回顾业界在 AI Agent 性能与成本优化上的探索,我们常常能看到不同的视角:
- OpenAI 提倡建立确定性的评估基线(Evals),并利用模型级联(Model Cascading)将简单步骤路由给轻量模型;
- Anthropic 在 Agent 最佳实践中强调控制链路极简,仅在非确定性分支中引入推理;
- EvoRoute 与 AI21 Maestro 等系统分别在运行时模型路由与多 Agent 配置搜索上展开了深耕。
我们在演进过程中吸取了这些路线的精华,但也发现了最本质的差异:模型路由优化解决的是“给定节点由谁推理”,而我们的架构演进解决的是“该推理节点是否需要发生”。
通过规划前置确定全局契约,我们将不可控的自由探索收敛为有界工作流与确定性门禁。路由策略决定算力载体,而任务图本身的重构则从源头上剔除了庞大的冗余推理。
7. 结语:从在线阻断到离线质量飞轮
复杂 Agent 系统的工程演进经历了三个阶段:从依赖事后审查保障质量下限的粗放探索期,到通过契约前置压缩不确定性的结构解耦期,最终收敛至由状态机控制时延与成本边界的有界控制期。
这一过程遵循三条基本工程原则:
在这套有界工作流中,同步串行的事后审查已被确定性门禁取代,系统端到端耗时被成功锁死在 SLA 范围内。然而,审查过程中捕获的错误分类、交互断层与修复 Trace,本身却是极高含金量的诊断资产。
当审查机制从在线主路径的阻塞式链路中彻底解耦后,如何将这些沉淀的诊断信号下沉至后台异步闭环——用于专用小模型微调、强化学习偏好对齐(DPO/RLHF)或动态门禁演进——便成为了 Agent 系统工程迈向下一个阶段的演进方向。
参考与延伸阅读
- Anthropic, Building Effective Agents: https://www.anthropic.com/research/building-effective-agents
- OpenAI, OpenAI Evals Framework: https://github.com/openai/evals
- EvoRoute Research, Dynamic Model Routing for LLM Agent Workflows
- AI21 Labs, Maestro: Multi-Agent Orchestration Engine
讨论
留下水纹
正在载入访客留言…