AI Agent 三种设计范式:ReAct、Plan & Execute、Multi-Agent一文图解

0 阅读5分钟

原作:@小生凡一

ReAct (Reasoning + Acting)

ReAct 原理:把推理(Reasoning)和行动(Acting)结合在一起,交替进行。

Agent 在每一步操作之前,都会先思考(Thought),确定下一步要做什么(Action),然后观察执行结果(Observation),再进入下一轮思考。当大模型判断任务已经完成时,就直接输出最终结果。

图片How ReAct Works

我们用发送邮件来举个例子:

Input:用户让我帮忙发邮件给FanOne,催他尽快更新视频

Thought 1:我需要先查到我和FanOne的邮箱地址

Action 1:Search Email

Observation 1:查到我的邮箱是 A,FanOne的邮箱是 B

Thought 2:已经拿到双方邮箱,接下来要编辑邮件内容

Action 2:Edit Email

Observation 2:填好发件人、收件人、标题、正文等信息

Thought 3:邮件已经编辑完成,需要先获得用户授权

Action 3:Ask For Agree

Observation 3:用户授权同意,邮件发送成功,没有报错

Thought 4:发送任务已经完成

Output:完成,已为你发送邮件

图片Example For ReAct

ReAct 这种模式可以处理需要多步推理的任务,还能对结果进行修正,整体容错率比较高。但缺点是 token 消耗更大,因为中间步骤多,而且容易出现循环执行的情况。

Plan & Execute

P&E原理其实很简单:先把一个大任务,拆成一条条清晰的步骤清单,这就是Plan,再按照顺序一步步把这些步骤做完,这就是Execute。一般会涉及两个角色:Planner规划者,和Executor执行者。

图片How Plan & Execute Works

举个例子你就明白了:

Input:用户发来一句,“帮我看看哪个平台买iPhone 17更便宜”

Planner:负责列出方法和步骤

2.1 步骤1:找出目前有哪些主流的电商平台

2.2 步骤2:去这些平台查一下iPhone 17的优惠价格

2.3 步骤3:对比计算,看哪个平台最便宜

Executor:负责照着步骤去执行

3.1 执行1:找出某宝、某多多、某东、某猫、某音商城、某鱼这些主流电商平台

3.2 执行2:分别查询各平台iPhone 17的价格和优惠,比如某宝X元,某东X元……

3.3 执行3:对比后得出结果:某鱼的iPhone 17最便宜

OutPut:直接告诉你结果,某鱼价格最低,然后是某多多,再是某宝……

图片

这种模式有一个明确的Plan,能让目标更清楚,特别适合复杂、步骤固定的任务,能防止Agent跑偏。

不过也有缺点:如果一开始的计划就错了,后面执行全都会跟着错,而且很难灵活调整。

想要解决这个问题,就得加上Replanner重规划或者Evaluator评估这类角色,用来判断、修正、回滚,避免一错到底。

Multi-Agent

原理其实很简单:就是多个有着不同角色、各有专长的Agent,互相沟通配合,一起把任务完成。一般来说,会涉及到“管理者(Manager)”和“执行者(Worker)”,也可能是“对练(Debate)”这种模式。

这里咱们先说说Debate(辩论/对练),它是Multi-Agent系统里一种比较特别的协作方式,核心就是咱们常说的“真理越辩越明”,里面加入了互相对抗、互相质疑的机制。

简单说就是两个或多个Agent,针对同一个问题拿出不一样的观点,互相挑错、互相反驳,最后通过这种高强度的思维碰撞,得出一个更准、更全面的结论。

图片How Multi-Agent Works

给大家举个实际例子,比如用户提了个需求:“帮我写一个贪吃蛇游戏,并确保没有Bug。”

Manager:收到需求后,先把任务拆解开,然后呼叫Coder写代码,再呼叫Reviewer帮忙检查。

Coder Agent:负责编写贪吃蛇的代码,写完之后提交给Manager。

Manager:把代码转交给Reviewer。

Reviewer Agent:运行代码测试,发现蛇撞到墙之后没有死亡,就把这个问题反馈给Coder。

Coder Agent:针对这个Bug进行修复,修复完再重新提交。

Reviewer Agent:再一次测试,确认没问题了。

Manager:把最终的代码交给用户。

图片Example For Multi-Agent

这种设计的核心,就是专业的人做专业的事,让各个Agent发挥自己的专长,这样就能解决那些单个Agent搞不定的超复杂任务,其实就和咱们人类团队工作的流程差不多。

不过也能看出来,这种方式开发起来比较复杂,Agent之间沟通的成本也高,还有可能出现一直循环对话、没发推进的情况。

最后咱们总结一下:

ReAct:适合需要实时外部信息、或者要动态做决策,而且下一步怎么做要依赖上一步结果的任务。

用大白话讲就是走一步看一步,这一步做完了,再琢磨下一步该做啥,再去执行,全程动态调整决策。

Plan-and-Execute:任务目标很明确,步骤也清晰,适合那些流程固定、不能出错的长任务,就跟咱们平时按标准SOP执行一样。

大白话来说,就是先把要做的事列成清单,然后一步一步照着做就行。

Multi-Agent:针对的是那种特别复杂的任务,需要不同领域的专业知识,单个LLM根本搞不定的情况。