Skip to content

93. 描述一下 ReAct 模型在解决一个实际问题时的完整动态过程? ​

难度 P1 高频 · 岗位 应用 · 频率 ★★★ · 预计阅读 7 min

本题阅读地图 ​

  1. 💡 简要回答
  2. 📝 详细解析
  3. 🎯 面试总结

👔面试官:你刚说 ReAct 是「思考-行动-观察」的循环,能给我举一个具体的例子,把整个过程还原出来吗?

🙋‍♂️我:就是先搜索,然后基于搜索结果得出答案,差不多就是这样。

👔面试官:「差不多就是这样」……多跳问题呢?搜一次不够怎么办?搜到了怎么判断要不要继续搜?搜到内容怎么提取关键信息?

🙋‍♂️我:那就再搜一次?

👔面试官:你有没有看过论文里的例子?核心是多跳推理,每一步 Thought 的作用,每一步 Action 怎么决定,你能不能系统地还原出来?

好,这道题的关键不是背流程,而是理解「每一步 Thought 在做什么」。

💡 简要回答 ​

ReAct 的完整过程是一个由「思考 → 行动 → 观察」组成的动态迭代闭环,每一步都紧密依赖上一步的结果。

以多跳问答为例:模型拿到问题后不会立刻行动,而是先分析任务结构,判断需要哪些「中间跳」;然后逐跳执行:搜索 → 从结果中提取关键信息 → 更新子目标 → 继续下一跳,直到收集到足够信息才触发终止动作给出最终答案。

整个过程中,Thought 是大脑,Action 是手,Observation 是眼睛,三者缺一不可。

📝 详细解析 ​

以多跳问答为例还原完整过程 ​

我们以 ReAct 论文中的经典例子来还原这个过程,问题是:

科罗拉多造山带东段延伸区域的海拔范围是多少?

这是一个需要两步才能解决的「多跳问题」:先找到造山带东段延伸到了哪里,再查那个地方的海拔。


阶段一:任务解析与初步规划

模型接收到问题之后,第一步不是行动,而是思考:

Thought 1:这是一个多跳问题。要回答它,我需要先搞清楚「科罗拉多造山带东段」延伸到了哪个具体的地理区域,再去查那个区域的海拔。

这一步的价值是把问题拆解成了可执行的子任务,确定了「先查造山带,再查海拔」的路线图,避免了盲目行动。


阶段二:迭代式信息检索与推理更新

有了初步规划,开始第一次行动:

Action 1:Search[Colorado orogeny]

Observation 1:(维基百科返回一段关于科罗拉多造山带的描述文字)

模型读取返回内容,进行关键信息提取:

Thought 2:描述里提到了「东段(eastern sector)」这个概念,但没有直接说明它延伸到了哪里。我需要在页面内专门查找 eastern sector 的相关描述。

基于这个判断,触发更精准的行动:

Action 2:Lookup[eastern sector]

Observation 2:「东段延伸至高平原(High Plains)」

模型立刻进行子目标更新:

Thought 3:关键信息拿到了,东段延伸至 High Plains。现在任务转换了——我需要去查 High Plains 的海拔范围。


阶段三:信息验证与答案合成

Action 3:Search[High Plains]

Observation 3:「海拔从 1800 英尺到 7000 英尺」

模型完成最终推理:

Thought 4:检索到的海拔数据直接回答了原始问题,信息完整,可以得出最终结论。

Action 4:Finish[1,800 to 7,000 ft]


每步 Thought 的具体作用 ​

还原完流程,你会发现不同阶段的 Thought 承担着完全不同的职责:

阶段Thought 的作用
初始任务拆解,制定多跳路线图
中间关键信息提取,决定下一步搜索什么
跳转子目标更新,把「找延伸区域」转换为「查海拔」
最终完备性判断,确认信息足够后触发 Finish

这不是简单的「想一下然后搜索」,每一步 Thought 都有明确的任务。把这个细节说清楚,面试官就知道你真的理解了 ReAct,而不只是背了个流程。

动态性的关键:每步依赖上步结果 ​

ReAct 的动态性在于,它不是在开始就制定一个完整的计划然后逐步执行。而是每一步的 Action 都取决于上一步的 Observation。

如果 Observation 2 返回的是「东段延伸至落基山脉」,Thought 3 就会更新子目标为「查落基山脉的海拔」。这种动态调整能力,让 ReAct 在面对不确定的信息环境时表现出色。

🎯 面试总结 ​

这道题很容易答得太浅,说完「搜索然后得出答案」就没了。面试官想听的是:

  • Thought 在每个阶段做什么——不只是「思考」,而是任务拆解、信息提取、子目标更新、完备性判断,各阶段不一样
  • 动态性从哪里体现——每步 Action 依赖上步 Observation,子目标会动态更新,这是 ReAct 区别于固定计划的关键
  • 终止条件是什么——模型自己判断信息已完备,触发 Finish 动作

能把这三点说清楚,这道题就答满了。


章节首页 · ← Q92 · Q94 →

最后更新2026-05-01
难度P1
频率medium
阅读7 min
主题llm
觉得有帮助?把这个链接转给正在求职的朋友 · 用 Ctrl + K 全站搜索其它题