
ReAct 将Reasoning与Acting放进同一个循环。 模型不再只靠已有知识直接作答而是先判断下一步再调用搜索、数据库、计算器或其他工具用真实结果继续推进任务。01. ReAct 是什么ReAct 的名字来自Reasoning Acting。它不是某个特定模型而是一种组织大模型完成任务的框架。普通问答往往只有“输入问题—生成答案”两步。ReAct 在中间加入工具交互模型可以搜索资料、查询数据库、执行代码或操作环境然后根据返回结果继续判断。整个任务由多轮“思考—行动—观察”组成。02. 为什么需要 ReActChain-of-ThoughtCoT擅长把复杂问题拆开但它仍主要依赖模型内部知识。遇到最新信息、陌生事实或精确计算时一旦前面某一步猜错错误可能沿着整条推理链继续传播。只执行工具调用的Act又存在另一个问题系统会行动却不一定知道为什么要这样行动也不容易把一个复杂目标拆成多个子目标。ReAct 把两者结合起来推理负责决定“下一步查什么、做什么”工具负责提供真实反馈观察结果再反过来修正推理。03. 核心工作循环循环会持续到模型获得足够信息或者达到预设的停止条件。最后一步通常是Final Answer即面向用户整理后的答案。04. 一个直观示例假设用户提出“查出某篇论文的发表年份再计算它距 2026 年有多少年。”模型不能只靠记忆需要先检索再计算。Thought 1我需要先确认论文的准确发表年份。 Action 1Search[论文标题] Observation 1检索结果显示论文发表于 2022 年。 Thought 2现在可以计算 2026 - 2022。 Action 2Calculator[2026 - 2022] Observation 24 Final Answer该论文发表于 2022 年距 2026 年为 4 年。这里的关键不是格式本身而是信息流每个 Action 都由当前 Reasoning 决定每个 Observation 又会改变下一步 Reasoning。05. ReAct Prompt 怎么写一个可用的 ReAct Prompt 至少需要说明四件事任务目标、可用工具、工具调用格式和结束条件。你需要解决用户的问题并在必要时使用工具。 可用工具 - Search[query]搜索外部资料 - Calculator[expression]执行数学计算 工作规则 1. 先判断当前缺少什么信息。 2. 需要外部信息时选择一个工具并给出准确参数。 3. 根据 Observation 决定下一步。 4. 信息充分后输出 Final Answer。 5. 不要编造工具结果。 输出格式 Action: 工具名[参数] Observation: 工具返回结果 Final Answer: 面向用户的最终答案论文中的经典 ReAct 通常会加入若干Few-shot examples让模型模仿完整轨迹。现代 Agent 系统则常通过Function Calling或结构化工具接口约束 Action不必完全依赖自由文本格式。06. ReAct、CoT 与 Act 的区别方法主要能力外部工具典型问题CoT分解问题并进行多步推理通常不使用可能依赖错误记忆产生事实幻觉Act根据指令连续执行操作使用缺少任务分解容易出现无目的调用ReAct推理、行动与反馈交替进行使用效果受工具质量和上下文长度影响