Second Thought: LLM 智能体在行动与观察时并行推理
ReAct 范式下的 LLM 智能体交替进行推理、行动与观察,但有意识的推理仅局限于思考阶段:当智能体串行执行动作并等待环境反馈时,其推理处于冻结状态。我们将动作与观察之间这段周期性间隔识别为推理空闲窗口,并探索能否在其中并行执行面向未来轮次的额外推理。 为此,我们提出 Second Thought,一种免训练推理框架。每个思考阶段结束的瞬间,它立即分支出四个辅助分支,与主循环并发解码,并在环境观察到达时合并生成的思路。这样一来,Second Thought 将额外推理从主线程的串行解码路径上移出。 在三个智能体基准与三个推理型 LLM 上,Second Thought 在所有九组(模型,基准)组合中降低了平均轮次,并在其中六组将主线程解码量减少最多 43%(这些设置平均约 20%),第七组基本不变;Pass@1 在七组中无显著变化,而两组显著差异分别为 +12.4 和 +10.2 分。与一个计算量匹配的对照组(将相同预算强制用于主线程自身推理)相比,在所有四个适用场景中,Second Thought 以少 1.3 至 3.2 倍的串行解码获得了严格更高的 Pass@1。
论文精读
TL;DR Second Thought 利用 ReAct 代理动作-观察空闲窗口并行生成辅助思考,减少主线程顺序解码与回合数,降低约 11% 延迟,且无需训练、精度基本不变。
问题
问题背景
LLM agents 在 ReAct 范式中依赖显式思维轨迹进行规划与适应,当前领域关注如何通过扩展推理时计算来提升复杂、多步任务的解决能力。
现有方法局限
在标准 ReAct 循环中,deliberate reasoning 仅在 Thought 阶段发生;一旦 agent 发出 action 并等待环境返回 observation,主线程的推理就被冻结。这个 Action–Observation 间隔构成一个反复出现的推理空闲窗口,主线程无法利用这段时间为后续 turns 提前生成推理。现有推理时扩展方法通常将额外计算直接堆放在主线程的 Thought 上,虽然可能提高准确率,但会线性增加串行解码延迟,且没有利用等待环境时闲置的算力。
为什么这个问题难且重要
要利用空闲窗口,需要在不阻塞主循环的前提下 fork 辅助分支、并发解码,并在 observation 到达时可靠地合并回主线程;这涉及 fork 条件、分支数量、推理维度、合并策略等设计选择。若合并不当,可能引入噪声或干扰主轨迹。同时,agent 任务通常需要多轮交互,串行推理的累积 wall-clock 延迟显著,并行利用空闲窗口能直接降低响应延迟和 turn 数,对实时交互和成本敏感场景有实际价值。
类比
类似现代 CPU 的乱序执行:在等待内存访问期间利用空闲执行单元提前计算,避免流水线停顿。
核心洞察
- Second Thought 的核心洞察是将 ReAct 智能体的 Action–Observation 间隔视为可并行利用的推理闲置窗口,通过分叉辅助分支在该窗口内提前为后续轮次生成候选推理,而非等待观察返回后再顺序思考。独特之处:现有推理扩展方法通常在关键路径上增加 thinking tokens,造成顺序延迟增加;该方法把预算卸载到并行分支,不占用主线程顺序解码,从而在保持低延迟的同时提高决策质量。
- Second Thought 证明了并行推理卸载比同等预算的顺序推理更具效率,其 compute-matched 对照实验显示,将相同计算预算强制加在主线程推理上,Pass@1 反而更低且顺序解码量更大。独特之处:这挑战了 scaling inference-time compute 时通常默认的更多顺序思考假设,说明推理预算的放置位置(并行 vs 顺序)与分配方式对 agent 性能有独立影响,为推理时计算调度提供了新的设计维度。
方法
输入与核心思想
Second Thought 面向 ReAct 范式 的 LLM 代理,输入为当前轨迹 (Thought, Action, Observation) 序列。它识别出 Reasoning Idle Window:在每一轮 Thought 结束、Action 执行并等待 Observation 返回的区间内,主线程的推理处于冻结状态。该方法提出:利用这段空闲时间额外生成推理,供后续轮次使用。
关键模块与流程
分支派生(Forking)
每当 Thought 阶段结束,Second Thought 立刻复制当前上下文,派生 4 个辅助分支,每个分支独立继续生成不同的思考轨迹(trajectory continuation)。并行解码(Concurrent Decoding)
这 4 个分支与主循环的 Action 执行、环境等待过程并发运行。辅助推理完全位于主线程的顺序解码路径之外,不阻塞主线程。思考收割(Thought Harvesting)
当环境 Observation 返回时,框架将辅助分支生成的 thought 合并回主上下文,作为下一轮决策的附加依据。合并策略属于训练无关的启发式规则,不修改模型权重。
输出与实际效果
输出结果是更精简的代理轨迹:平均轮次(turn count)在所有 9 个 (模型, 基准) 组合中下降,主线程解码量在 6 个组合中减少最高 43%,且 Pass@1 基本不变。与 compute-matched 控制组相比,Second Thought 以 1.3× 到 3.2× 更少的顺序解码取得更高的 Pass@1。
与同类方法的差异
与现有的 异步执行 / 推测式代理执行不同,Second Thought 不把额外预算强加在主线程自身的推理上,而是将并行推理完整迁移到 Action–Observation 的空闲窗口,实现训练无关的延迟隐藏与步数压缩。
实验
实验设计
论文在 三个 agentic benchmarks 与 三个 reasoning LLMs 上评估 Second Thought,基线为 ReAct 范式。方法在每个 Thought 阶段结束后 fork 四个辅助分支,与主循环并发解码,在环境观察返回时合并生成 thoughts。对比包括:1)原生 ReAct;2)compute-matched control(将同等算力强制用于主线程自身推理)。指标包含 Pass@1、平均 turn count、主线程解码 tokens、wall-clock 延迟。
关键发现
- 平均 turn count 在全部 9 个 model-benchmark 对上降低。
- 主线程解码量在 6 对中减少最高 43%(平均约 20%),第 7 对基本不变。
- Pass@1 在 7/9 对无显著变化,两对显著提升 +12.4 / +10.2 分。
- paired wall-clock replay 证实中位 per-task latency 降低 10.9%。
- 对比 compute-matched control,Second Thought 在 4 个设置中获得更高 Pass@1,且顺序解码少 1.3x–3.2x。
与基线对比解读
ReAct 在 Action–Observation 期间存在推理空闲窗口,Second Thought 将额外推理移到主线程之外,不阻塞顺序路径。与 compute-matched control 的差异表明:并行辅助推理比增加主线程推理更高效,因为不增加用户感知延迟,且 thoughts 可被后续 turn 利用。Pass@1 总体无显著变化说明该方法是效率优化而非精度大幅提升,适合延迟敏感场景。工程上可利用环境等待时间做投机性推理,但需控制分支开销与合并策略。
行业影响
落地场景
Second Thought 适用于所有基于 ReAct 范式的多步 agent 工作流,尤其是外部工具调用或环境等待时间较长的场景。典型场景:
- 软件工程 agent:代码修复、测试生成等任务中,agent 执行
run_test或search_code后等待结果,此窗口可并行推理后续修复方案,减少交互轮次。 - 电商客服 agent:查询订单、库存或物流 API 时,并行预判用户潜在追问,提前生成应对策略,缩短响应延迟。
- 企业 RPA / 自动化 agent:调用内部系统 API(如 ERP、CRM)等待期间,预规划下一步操作,提升流程执行效率。
商业价值
降本:无需训练,直接降低主线程序列解码 token 数(论文显示最高减少 43%,平均约 20%),直接节约推理算力成本。 增效:平均 turn 数下降,任务完成时间缩短,单位时间处理更多请求,提升 agent 吞吐。 体验提升:延迟敏感场景(如实时客服、交互式开发助手)中,中位延迟降低 10.9%,用户感知更流畅。 增收:更高吞吐和更低延迟可支撑更高并发客户,或让 agent 处理更复杂任务而不增加成本。
与现有产品 / 工作流接口
集成方式轻量:无需改变模型权重或训练流程,只需在现有 agent 推理引擎中加入异步分支 fork / merge 模块。
- 在 LangChain、LlamaIndex 等框架的
AgentExecutor循环中,于Thought阶段后启动 4 个辅助解码分支,与主循环并行运行,环境 observation 返回后合并。 - 作为推理服务中间件,适配 vLLM、TensorRT-LLM 等引擎的 continuous batching,管理并行分支的资源分配。
- 实际部署时可配置分支数量、解码长度上限等参数,适应不同延迟 / 成本约束。
局限
- **Second Thought** 固定使用四个辅助分支与手工设计的提示协议,未探索分支数量、推理维度选择或动态分配策略。对于动作执行时间短或环境反馈频繁的任务,并发解码可能无法在观察返回前完成,导致合并效果不稳定;同时多分支推理带来的额外 GPU 显存与吞吐压力未纳入端到端成本分析。
- 实验覆盖三个 agentic benchmark 与三个 reasoning LLM,但未与异步多智能体、现有 speculative agent execution 或离线并行推理方法直接比较;wall-clock replay 只报告每任务中位延迟,未给出完整吞吐与硬件利用率数据。分支推理的合并采用启发式 harvesting,缺乏对错误累积或轨迹污染的定量研究,难以判断其在复杂长程任务中的稳定性。
- 尽管方法宣称 training-free 且降低主线程解码,但整体计算量增加,compute-matched control 仅在四个设置中应用,且未考虑多分支并行所需额外算力在真实部署中的可用性。辅助推理质量高度依赖基座模型,若模型在无环境反馈时臆测倾向较强,可能放大幻觉并影响动作选择;Pass@1 在七对设置中无显著变化,也削弱了对性能提升的确定性。