【LLM-Agent】ReWOO模式和ReAct的区别

note

  • REWOO的缺陷在于,非常依赖于Planner的规划能力,如果规划有误,则后续所有的执行都会出现错误。尤其是对于复杂任务,很难在初始阶段就制定合理且完备的计划清单。因此,如果要提升Agent的准确率,需要有规划调整机制,即在执行的过程中,根据环境反馈,不断调整计划。
  • ReWOO其实就是Plan-and-execute agents

文章目录

一、rewoo模式

论文:《ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models》

ReWOO 的工作流程包括三个主要部分:

计划者(Planner):将任务分解并制定包含多个相互关联计划的蓝图,每个计划都分配给工作者执行。

工作者(Worker):根据计划者提供的蓝图,使用外部工具获取真实证据。

求解器(Solver):将所有计划和证据结合起来,形成对原始任务的最终解决方案。

二、创新点

ReWOO 的创新点主要包括以下几个方面:

分离推理与观察:ReWOO 将推理过程与使用外部工具的过程分开,避免了在依赖观察的推理中反复提示的冗余问题,从而大幅减少了 Token 的消耗。

模块化设计:ReWOO 使用模块化框架,通过计划者、工作者和求解器的分工合作,提高了系统的扩展性和效率。

效率提升:实验结果表明,这种方法不仅提升了准确率,还显著降低了令牌消耗。

工具调用的鲁棒性:ReWOO 在工具失效的情况下表现出更高的鲁棒性,这意味着即使某些工具无法返回有效证据,ReWOO 仍能通过合理的计划生成和证据整合,提供有效的解决方案。

左侧是ReAct方法,当User输入Task后,把上下文Context和可能的样本Example输入到LLM中,LLM会调用一个目标工具Tool,从而产生想法Thought,行动Action,观察Observation。由于拆解后的下一次循环也需要调用LLM,又会调用新的工具Tool,产生新的Thought,Action,Observation。如果这个步骤变得很长,就会导致巨大的重复计算和开销。

右侧ReWOO的方法,计划器Planner把任务进行分解,分解的依据是它们内部哪些用同类Tool,就把它分成同一类。在最开始,依旧是User输入Task,模型把上下文Context和Examplar进行输入。这里与先前有所不同的是,输入到Planner中,进行分解,然后调用各自的工具Tool。在得到了所有的Tool的输出后,生成计划结果Plan和线索,放到Solver进行总结,然后生成回答。这个过程只调用了两次LLM。

举个栗子:假设你是一个侦探,需要解决一个谜题:找出谁在图书馆偷了一本珍贵的书。

ReAct模式的类比:

在ReAct模式下,你的思考和行动过程可能是这样的:

你首先想到去图书馆询问管理员(行动)。

管理员告诉你,昨天有一个穿着蓝色衣服的人来过(观察)。

然后你决定去查看图书馆的监控录像(行动)。

你发现录像中确实有一个穿蓝色衣服的人(观察)。

接下来,你决定去询问图书馆的常客,看看他们是否认识这个人(行动)。

常客告诉你,这个人可能是附近的学生(观察)。

最后,你决定去学校调查,最终找到了嫌疑人(行动)。

在ReAct模式中,你的每一步都是基于前一步的观察结果来决定的,这是一个逐步的、迭代的过程。

ReWOO模式的类比:

在ReWOO模式下,你的思考和行动过程可能是这样的:

你首先规划了整个调查过程:

询问图书馆管理员

查看监控录像

询问图书馆常客

去学校调查

然后,你同时(并发)执行所有这些行动:

派助手去询问管理员

自己去查看监控录像

同时,另一个助手去询问常客

最后,你亲自去学校调查

所有行动完成后,你收集所有信息,综合分析,最终找到嫌疑人。

1 AI大模型实战 | AI Agent设计模式 - REWOO,优化ReAct冗余问题

2 LLM Agent设计模式 - ReWOO

3 LLM Agent设计模式 - ReWOO:https://www.yidoo.xyz/llm-agent-design-pattern-rewoo

4 《ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models》

5 On short of "ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models"

相关推荐
前端开发江鸟7 小时前
Agent 能跑通以后,我才发现代码不是交付物
agent
花椒技术7 小时前
一个人已经有 Agent 了,我们为什么还要建设统 Agent 平台
人工智能·agent·ai编程
百工蜂Agent8 小时前
万物皆工具
agent·ai编程
@Mr_LiuYang8 小时前
状态栏动态上下文信息追加到Agent --《深入理解 AI Agent :设计原理与工程实践》实验2-8
人工智能·大模型·动态上下文·状态栏信息追加
阿里云云原生9 小时前
AI Agent 的“自述”不可信:如何构建可取证、可评估、可进化的 Agent 生产流水线?
agent
Jodie同志10 小时前
第16~23天:持久化、HITL、流式、MCP与安全
前端·后端·agent
小当家.10510 小时前
Prompt工程与上下文管理实战:从模板到Agent Loop的演进
prompt·agent·上下文·loop agent
Jodie同志10 小时前
第1~15天:原生Agent、RAG与LangGraph基础(完整代码实操)
前端·后端·agent
用户4693684832011 小时前
kimi-code 深度掌握系列文章-终端里的 Agent 界面:CLI/TUI 架构(十五)
agent
Oliver_NI11 小时前
RAG 检索为什么需要 Hybrid Search?从 Dense、BM25 到 Reranker
人工智能·agent