工具型 Agent 慢,常常不是因为模型“想得慢”,而是因为执行链天然串行:模型决定一次动作,工具运行,环境返回观察,模型再决定下一步。只优化推理吞吐,绕不开动作—观察之间的等待。
#两个模型,两条时间线
Speculative Macro Commit(SMC)把 Agent 拆成两个角色:大模型是权威 Actor,决定正式轨迹;小模型是 Drafter,在隔离的环境快照上持续预测并执行未来动作。系统还会从训练轨迹中挖出高频的多步动作骨架,形成可匹配的 macro 库。
当 Actor 的下一个工具调用与 Drafter 已执行动作链的第一步一致时,系统不只接受这一小步,而是把后面已经完成的动作和观察一起提交给正式轨迹。若首步不一致,投机分支直接丢弃,不污染真实环境。
#为什么不能“预测得越多越好”
论文最有价值的结论,是拆掉了一个直觉:macro 命中次数高,不等于端到端更快。旧版运行时提交次数接近最终方案的两倍,却比单步投机基线慢 1.64%。大量浅层命中没有跳过关键路径上的 Actor 调用,反而增加了匹配和提交开销。
最终版本设置最小深度,只提交已经在投机分支真正执行完、能替代关键路径等待的动作链。优化目标不是命中率,而是一次提交到底省掉了多少串行等待。
#两个基准给出的边界
在 τ²-Bench Telecom 子集上,SMC 把平均延迟从串行执行的 27.60 秒降到 22.47 秒:比串行方案快 18.59%,比单步 Speculative Actions 快 10.23%,而 2,285 个任务的逐项结果与串行基线完全一致。
AppWorld 上,SMC 相对串行执行节省 44.93% 墙钟时间,并在已经很快的单步投机方案上再省 7.64%;代价是完成任务数从 70/168 小幅降到 68/168。它说明投机执行不是免费午餐:环境越复杂,越要把速度收益与错误提交风险一起评估。
这项工作把“推测解码”的思想从 Token 层搬到了 Agent 运行时。下一阶段的 Agent 基础设施,竞争点会逐渐从单次模型调用,转向模型推理、工具执行、状态隔离与提交协议的联合调度 。