ReAct Agent的推理与行动循环机制
ReAct(Reasoning + Acting)是LLM Agent的基础范式。请解释其'推理-行动-观察'循环机制、与Chain-of-Thought的区别,以及在WebShop或ScienceQA中的实践效果。
回答
我还是少年
ReAct由Shunyu Yao等在ICLR 2023提出,核心是让LLM交替进行推理(Reasoning)和行动(Action),并接收环境反馈(Observation),形成闭环决策。
范式流程: Thought: 我需要查询天气... Action: search[北京天气] Observation: 北京,晴,气温25°C... Thought: 天气很好,可以建议用户... Action: finish[建议外出]
三个核心步骤:
- Thought(推理):LLM分析当前状态,决定下一步做什么
- Action(行动):生成结构化动作(如调用API、搜索、计算)
- Observation(观察):动作执行结果反馈给LLM
与CoT的区别: | 维度 | CoT | ReAct | |------|-----|-------| | 环境交互 | 无 | 有(行动+观察) | | 外部知识 | 仅依赖模型参数 | 可实时搜索/调用工具 | | 推理轨迹 | 静态思维链 | 动态环境闭环 | | 可纠正性 | 无纠正 | 观察后调整错误推理 |
实践效果:
- WebShop(在线购物Agent):ReAct>CoT>标准Prompt
- 成功率从CoT的38%提升到ReAct的55%
- HotpotQA(多跳问答):ReAct准确率提升至46%,CoT为32%
- ScienceQA:ReAct结合工具使用比CoT高15%
实现方式:LangChain的AgentExecutor、AutoGen的AssistantAgent都实现了ReAct循环。
局限:
- 昂贵的多轮LLM调用
- 观察结果可能过长超出上下文窗口
- 行动空间大时选择效率低