【AI面试临阵磨枪】ReAct 框架完整流程是什么?Reasoning → Action → Observation 如何协作?

张开发
2026/4/17 21:26:55 15 分钟阅读

分享文章

【AI面试临阵磨枪】ReAct 框架完整流程是什么?Reasoning → Action → Observation 如何协作?
一、面试题目请详细描述ReAct框架的工作流程。在实际运行中Reasoning推理、Action行动和Observation观察这三个环节是如何闭环协作的它解决了大模型在处理复杂任务时的什么痛点二、知识储备1. 核心背景为什么要用 ReAct在 ReAct 出现之前大模型要么只是“空想”思维链 CoT容易产生幻觉要么只是“盲动”单纯调用工具缺乏逻辑。ReAct 的本质是让模型在行动之前先“思考”在行动之后根据“反馈”再思考从而实现逻辑与动作的解耦。2. 三步走协作流程ReAct 的运行是一个Loop循环直到目标达成或达到最大步数① 第 1 步Reasoning (Thought) —— “谋定而后动”模型基于当前问题或上一轮的结果生成一段自然语言描述分析当前的处境、缺失的信息以及下一步该做什么。作用减少幻觉把复杂的任务拆解成可执行的小步骤。② 第 2 步Action (Act) —— “与世界交互”模型决定调用哪个工具Tool/Function以及输入什么参数。这通常是输出一个特定的 JSON 或函数调用指令。作用让模型拥有“手”能够获取外部实时信息如搜索、查库。③ 第 3 步Observation (Obs) —— “看反馈结果”执行工具后将得到的结果如搜索出的网页内容、数据库返回的数字反馈给模型。作用为下一轮推理提供事实依据将“外部知识”转化为“上下文”。3. 代码视角逻辑伪代码① 在 Python 中实现一个简单的 ReAct 循环具体代码如下。import asyncio async def react_agent(goal: str): # 初始化上下文定义目标和可用工具 context f目标: {goal}\n可用工具: [搜索, 计算器] while True: # 1. Reasoning Action: 模型根据当前上下文生成“思考”和“动作” # 提示词末尾强行拼接 Thought: 引导模型进入 ReAct 模式 response await llm.generate(f{context}\nThought: ) # 检查是否达成最终目标 if 最终答案: in response: print(任务完成) return response # 2. 执行 Action (解析模型输出并调用工具) # 假设 parse_action 会从文本中提取出 {tool: ..., query: ...} action parse_action(response) # 动态调用工具字典中的函数 # 例如: tools {搜索: search_func, 计算器: calc_func} try: observation await tools[action[tool]](action[query]) except Exception as e: observation f错误: 执行工具失败 - {str(e)} # 3. Observation: 将执行结果观察拼接回上下文开启下一轮推理循环 context f\n{response}\nObservation: {observation} # 打印当前轮次的状态可选方便调试 print(f--- 轮次观察: {observation} ---) # 使用示例 # asyncio.run(react_agent(查询 2026 年世界杯举办地并计算场馆平均容纳人数))② 在 Node.js 中实现一个简单的 ReAct 循环具体代码如下。async function reactAgent(goal) { let context 目标: ${goal}\n可用工具: [搜索, 计算器]; while (true) { // 1. Reasoning Action: 模型输出 Thought 和 Action const response await llm.generate(context \nThought: ); if (response.includes(最终答案:)) return response; // 2. 执行 Action (模拟) const action parseAction(response); // 比如 { tool: 搜索, query: 2026天气 } const result await tools[action.tool](action.query); // 3. Observation: 将结果拼接回上下文开启下一轮循环 context ${response}\nObservation: ${result}; } }4. ReAct 的核心优势① 可解释性开发者可以清晰看到模型的“心路历程”知道它为什么调用这个工具。② 错误纠正如果 Observation 返回了错误信息模型可以在下一轮 Thought 中意识到错误并尝试换个方法。三、破局之道在回答完流程后通过这段话展现你对 Agent 底层设计的思考回答 ReAct 框架核心要理解它是在构建一套“动态决策系统”。你可以告诉面试官ReAct 的伟大之处不在于它调用了工具而在于它通过Thought强制模型在向量空间中进行自洽性检查再通过Observation引入了外部世界的真实熵。它解决了 LLM 的 “闭环幻觉” 问题。在工程落地时ReAct 就是 Agent 的逻辑神经系统它让 AI 从一个 “只会聊天的文本框” 变成了一个 “能解决问题的数字员工”。

更多文章