原作:@小生凡一
ReAct (Reasoning + Acting)
ReAct 原理:把推理(Reasoning)和行动(Acting)结合在一起,交替进行。
Agent 在每一步操作之前,都会先思考(Thought),确定下一步要做什么(Action),然后观察执行结果(Observation),再进入下一轮思考。当大模型判断任务已经完成时,就直接输出最终结果。
我们用发送邮件来举个例子:
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:完成,已为你发送邮件
ReAct 这种模式可以处理需要多步推理的任务,还能对结果进行修正,整体容错率比较高。但缺点是 token 消耗更大,因为中间步骤多,而且容易出现循环执行的情况。
Plan & Execute
P&E原理其实很简单:先把一个大任务,拆成一条条清晰的步骤清单,这就是Plan,再按照顺序一步步把这些步骤做完,这就是Execute。一般会涉及两个角色:Planner规划者,和Executor执行者。
举个例子你就明白了:
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根本搞不定的情况。