生产环境的 ReAct:经得起跑题的推理循环

生产环境的 ReAct:经得起跑题的推理循环

ReAct 是一个干净的想法:思考、行动、观察、循环。在生产环境里,循环本身才是最容易崩的部分。模型在前几步推理得还算合理,然后要么过度解释,要么对工具调用反复纠结,要么自说自话地认定任务已经完成。教科书里的流程图从不展示这些。

循环跑题的地方

最常见的失败不是错误的工具调用——而是冗余的工具调用。模型重新执行了一个已经成功过的动作,因为它在对话历史里丢失了状态。步数往上爬,延迟跟着爬,用户看到的是一个慢响应,背后实际是一连串相同的查询。第二常见的失败是过早终止:模型在拿到部分结果后就宣布成功,因为它把”我有答案了”和”我有正确答案”模式匹配成了同一件事。

让它留在轨道上的补丁

一段总结历史动作的简短便签——不是完整历史,只是结果——比任何 Prompt 重写更能切掉冗余调用。一个独立的”我们做完了吗?”检查,由同一个模型在不同 Prompt 下运行,远比让循环自己评判更能抓住过早终止。给循环加上限。永远要给循环加上限。

ReAct 在生产环境里能用。但你最终上线的 Prompt,几乎从来不是论文里那一版。

相关文章

多自主才算太自主

多自主才算太自主

Agent 的自主性是一根滑杆,不是一个开关,正确档位由任务决定的多过由技术决定的。把滑杆推到"完全 ...

Agent 记忆:情景、语义,以及该留下什么

Agent 记忆:情景、语义,以及该留下什么

你建的第一个 Agent 没有当前对话之外的任何记忆,这能撑大约一周。然后用户回来,期望连续性,你开 ...

Multi-Agent 系统:协调才是真正的难点

Multi-Agent 系统:协调才是真正的难点

Multi-Agent 架构很有诱惑力,因为它映射到人类组织工作的方式:专家、协调者、交接协议。第一 ...

Planner-Executor 拆分:什么时候该拆,什么时候该合

Planner-Executor 拆分:什么时候该拆,什么时候该合

第一天,让单个模型同时做规划和执行,看起来很优雅。三个月后,trace 日志会讲一个不同的故事:Pr ...