本文提出了 Agentic Computation Graphs (ACG) 作为 LLM Agent 工作流优化的统一抽象框架,全面系统地综述了从静态模板搜索到动态运行时图生成的最新研究。文章提出了一套基于结构确定时间 (GDT) 和图塑性模式 (GPM) 的分类学,旨在解决 Agent 系统在质量与成本平衡、结构自动化设计方面的关键问题。
TL;DR
随着 LLM 应用从简单的“Prompt-Response”进化为复杂的“Agentic Workflows”,如何设计和优化这些工作流成为了提升系统上限的关键。本文将 Agent 工作流抽象为 Agentic Computation Graphs (ACG),深度解析了从离线搜索固定模板到推理时动态生成、编辑执行图的技术演进。文章不仅提供了严谨的分类学,还为开发者提供了一份在性能与成本之间权衡的实操策略。
核心速览
在大模型 Agent 领域,我们正处于一个拐点:智能不再仅来源于模型参数,更来源于结构的组织形式。 本综述指出,一个弱的底座模型配合精妙设计的验证(Verification)与重试(Retry)结构,往往能战胜一个没有任何工作流保护的最强模型。
1. 痛点深挖:为什么硬编码的工作流不再够用?
早期的 Agent 系统(如早期的思维链或简单 ReAct)大多依赖静态 Scaffold。这种方式在处理简单、同质化任务时表现良好,但在以下场景中面临挑战:
- 分配效率低下:简单问题调用了过于复杂的专家集群,造成 Token 浪费。
- 脆性 (Fragility):一旦遇到工具调用失败或中间结果偏离预期,固定的拓扑结构无法动态插入“修复节点”。
- 搜索空间爆炸:手动设计最优的 Agent 协作模式(谁该和谁说话、何时验证)已超出人类直觉。
2. 核心架构:ACG 的三层抽象
作者提出了三个关键概念来解耦 Agent 系统:
- ACG Template ():离线设计的、可复用的执行规范(类比类定义)。
- Realized Graph ():针对特定输入 在推理时生成的具体图结构(类比实例)。
- Execution Trace ():运行过程中产生的状态、动作和观测序列(类比日志)。
Figure 1: LLM Agent 工作流优化的全局分类,涵盖从静态搜索到动态编辑的全频谱。
3. 静态优化:在部署前寻找“最强模版”
静态方法的核心在于离线搜索。
- 代表工作:
AFlow通过 MCTS 搜索算子图,ADAS则在代码空间中利用元 Agent 自动编写 Agent 系统。 - 本质直觉:通过大规模模拟运行,提取出在特定领域(如代码生成、数学证明)证明有效的高性能拓扑。
- 适用场景:任务高度重复、评估信号(如 Unit Test)强且廉价的情况。
4. 动态优化:推理时的“读题拆题”
动态优化将结构的决策权推迟到了运行时,这被分为三个细分模式:
- Select (选择):从超图中剪枝。如
Adaptive Graph Pruning,根据输入难度决定启用多少个 Agent。 - Generate (生成):执行前“构思”全图。如
Assemble Your Crew,针对每个查询实时生成专属的 DAG。 - Edit (编辑):边跑边改。如
AgentConductor和DyFlow,在执行失败时动态修改拓扑,插入调试节点。
Table 2: 核心静态优化工作对比。注意其反馈信号多倾向于下游 Metric。
5. 实验分析与深度洞察
论文通过深度分析得出以下几条极具行业价值的结论:
A. 结构优化 vs Prompt 优化
当 Agent 出现系统性错误时,修改 Topology 的 ROI 通常高于 Prompt Tuning。例如,引入一个“验证节点(Verifier)”往往比在原 Prompt 里写一百遍“请仔细检查”更有效。
B. 验证器 (Verifier) 是第一生产力
有效的结构优化高度依赖于反馈信号的质量。在代码、公式计算等具有强验证器的领域,结构优化能自动演化出极为精密的纠错路径。
C. 质量-成本的博弈公式
优化目标通常可以表示为: 其中 是质量, 是成本, 是成本敏感系数。优秀的动态方法能够根据 自动收缩图规模。
Table 3: 动态生成与运行时编辑方法的硬核对比,揭露了从 pre-execution 到 in-execution 的进化。
6. 总结与展望
Agent 工程正在从“调包”转向“编译器”时代。 本文认为,结构化信用分配(Structural Credit Assignment)和表达力与可验证性之间的平衡仍是未竟之业。
Future Work:
- 结构化信贷分配:如何精准判断是哪条边、哪个节点导致了最终失败?
- 连续适应性:当工具环境发生漂移(Drift)时,工作流如何实现增量修复而非重搜?
对于开发者而言,一个实用的建议是:先建立静态基准,再考虑动态剪枝,最后在不确定的复杂环境里引入运行时编辑。
