一句话定义:ReWOO(Reasoning WithOut Observation)是一种让大模型“先一次性把所有步骤和工具调用规划好,再照着执行”的智能体(Agent)范式。它的特点是规划阶段完全不看工具的返回结果,因此省掉了 AI 词典:ReAct">ReAct 那样一步步“想—做—看—再想”的来回开销。
复用与解耦的原理:ReWOO 把一次任务拆成三个角色。
- Planner(规划器):只调用一次大模型,输出一份完整计划。计划里的工具调用会引用前面的结果,这些结果用变量占位符表示,比如
#E1、#E2,意思是“把第 1 步的结果填到这里”。 - Worker(执行器):按计划逐个运行步骤来获得结果。它只是普通的工具调用,步骤之间没有依赖,还可以并行执行,不需要大模型参与。
- Solver(求解器):把所有占位符替换成真实结果,再调用一次大模型,汇总出最终答案。
整个过程的规划与观察相互解耦,大模型通常只需要调用两次。打个比方:ReAct 像边炒菜边尝味道,尝一口觉得咸了再加水;ReWOO 则像先写好一张完整菜谱——“第一步从冰箱拿鸡蛋,第二步把 #E1 打散,第三步把 #E2 下锅”——然后严格照单执行,最后统一装盘调味。
与 ReAct 的区别:ReAct 是“思考—行动—观察”的循环;每走一步都要调用一次大模型,并且要把不断变长的历史对话重新传给模型,因此 token 成本和延迟会随步数线性增长。ReWOO 把这些成本压到固定的两次。两者的取舍如下:
| 维度 | ReAct | ReWOO |
|---|---|---|
| 大模型调用次数 | 与步数同阶 | 基本固定(规划与求解) |
| 上下文增长 | 每步追加观察,越滚越大 | 计划只写一次 |
| 并行能力 | 弱,必须等上一步的观察 | 强,无依赖的步骤可并发 |
| 容错性 | 高,看到异常可改道 | 低,计划定死,难临场调整 |
| 计划复用 | 几乎不能 | 可换一套工具,或用另一批数据重跑同一计划 |
实际意义:对从业者来说,ReWOO 的价值在于把成本和延迟变得可预期,并且让计划本身成为可审查、可版本化的中间产物。调试时你能直接看那张“菜谱”错在哪,而不必翻一长串对话。它也天然适合批量场景:同一份计划,换一批输入反复执行。
代价是容错性。工具报错、返回空结果、或现实比预想复杂时,ReWOO 没法像 ReAct 那样中途转向;错误会沿着占位符一路传到 Solver。常见的工程做法是给每一步加校验和重试,失败时降级回 ReAct 式的循环,或者让规划器在异常时重新规划。所以它更适合流程稳定、步骤可预判的任务(如批量信息抽取、固定格式的检索汇总),而不适合需要反复试探的开放探索。具体实现与接口细节,以相关项目官方页面为准。
