一个智能体要回答涉及多份资料的问题。它可以先在脑中写完一大段,再一次性去搜索,也可以查一步、看结果、改一下计划,随后继续查。后面这种交替过程有一个常见名字,叫 ReAct。我把原始论文、Google Research 的介绍和作者项目页对在一起看,它讨论的是让语言推理与外部行动互相提供下一步依据。
ReAct 这个名字来自 Reasoning 和 Acting。论文中的轨迹交替出现 Thought、Action 与 Observation。模型先写出当前判断,随后调用搜索或环境动作,系统把结果作为观察送回来。下一轮推理可以据此更新计划,遇到例外时也有机会换路。
动作带回的信息要重新进入判断
原始研究在 HotpotQA 和 FEVER 上接入简单的 Wikipedia API。模型需要找资料时发出动作,读到返回内容以后再继续回答。论文还在 ALFWorld 和 WebShop 上测试交互式任务。前两类任务偏知识问答和事实核验,后两类需要在环境里连续行动,不能把其中一项成绩换算成所有智能体都能稳定做事。
这套写法会把每一步依据留在轨迹里。搜索没有返回目标页面,后面的计划就该承认资料没找到。环境提示某件物品不在原位置,模型也应调整下一步动作。若系统把观察结果丢掉,只让模型照着最初计划往下写,形式上有很多步骤,行动与推理仍然没有接起来。
作者项目页公开了若干提示轨迹和代码。论文实验只用了少量上下文示例,这说明当时的方法可以靠示范教模型输出规定格式。它不等于今天随便写三个字段就能得到可靠智能体。工具说明、结果结构、模型版本和环境规则都会影响实际表现。
有轨迹也不等于有权限边界
ReAct 解决的是信息怎样在推理和行动之间流动。它没有替业务系统决定哪些动作可以自动执行。查公开网页与删除客户记录的后果差得很远,二者都可能只是轨迹中的一行 Action。系统仍要在模型之外限制工具权限,对付款、发送、删除等动作加人工确认,并记录实际执行结果。
停止条件也要单独写。搜索连续三次没有新材料,智能体是换关键词、承认不知道,还是继续消耗调用次数,论文里的通用格式不会替具体业务选择。可以先拿一组短任务试跑,逐步记录模型想做什么、工具实际做了什么、观察怎样改变下一步。失败样本若总卡在同一处,再改工具说明或流程。
我会把 ReAct 当成一种组织多步任务的办法。它让外部结果有机会纠正计划,也让排查人员看见问题出在哪一轮。上线标准仍要落到权限、证据、停止条件和最终验收上,这几件事不能交给一段漂亮的推理轨迹代办。