大家好,我是小民,见字欢喜。
前面两篇文章,我们聊了智能体是什么,以及它和聊天机器人的区别。
今天咱们聊个更深入的问题: 智能体接到任务后,脑子里到底发生了什么?
它是蒙头乱试,碰运气?还是有着一套清晰的运行机制?
结果可想而知,当然不是乱试啦~
目前主流的智能体,基本都遵循一个叫 ReAct 的模式。
今天我们就把它拆开来看看👇
01 ReAct是什么
ReAct 是两个词的组合:Reasoning(推理) + Acting(行动)
说白了就是:先想,再做;看完结果,接着想。
智能体不是一口气把事干完,而是需要走一个循环👇
用户输入➔思考➔行动➔观察
➔再思考➔再行动➔……➔最终输出
把这个循环画出来,大概是下面这个样子👇
图片里的流程可以拆成几个关键环节👇
-
**感知:**接收用户输入,听懂用户想干嘛
-
**规划:**决定下一步做什么,先干啥后干啥
-
**工具:**从可用的工具里选一个合适的(查天气、发邮件、写代码等)
-
**行动:**调用工具,执行并获取结果
-
**记忆:**贯穿全程,记录之前做过什么、观察到什么,不让智能体「失忆」
每一步都在「想一想」和「动动手」之间切换,直到把任务彻底搞定。
02 举个例子:用ReAct订机票
光说理论可能有点抽象,我们来看一个具体的例子:用户说“帮我订周五去上海的机票”
此时智能体的大脑里其实是这样的👇
-
**思考1:**用户要订周五去上海的机票;我需要先查航班,然后比价、选座、下单
-
**行动1:**调用航班查询接口
-
**观察1:**查到3个航班:800元(晚上)、950元(上午9点)、1200元(商务舱)
-
**思考2:**用户没给预算;查一下历史记录,发现他之前都选经济舱、偏好上午航班,9点那班符合
-
**行动2:**调用订票接口下单
-
**观察2:**下单成功,订单号已生成
-
**最终输出:**已为您预订周五上午9点飞往上海的航班,票价950元,行程已加入日历
我们可以看到,它不是一次性给答案,而是想一步、做一步、看一步、再想下一步。
那么如果中间出了意外呢?比如950元的航班突然没了?
-
**行动2:**调用订票接口下单
-
**观察2:**下单失败,该航班已售罄
-
**思考3:**9点航班没了;用户偏好上午,看看还有没有其他上午的航班
-
**行动3:**重新查询上午的航班
-
**观察3:**查到10:30还有一班,票价1020元
-
**思考4:**比原计划贵了70块,但还在合理范围内;先订上,然后在回复里说明一下
-
**行动4:**调用订票接口下单
-
**最终输出:**您偏好的9点航班已售罄,已为您预订10:30的航班,票价1020元,比原计划贵70元,您看可以吗?
通过上面的例子可以看出,这就是ReAct的厉害之处➔能应对意外,能自我调整。
03 为什么叫 ReAct
这个名字其实取得挺巧的,既取了「推理+行动」的首字母,又暗含了「反应」(React)的意思——智能体像人一样,根据观察到的情况做出下一步反应。
它跟传统的「输入➔输出」模式最大的不同是,智能体不是一次性回答,而是边做边看边调整。
就像你做一道菜,不是一口气把所有料倒进去,而是边尝边调味。
最后来个小结
ReAct模式,说白了就是让智能体从「会聊天」变成了「会干活」——先想想该干什么,动手干,看看结果,再想想下一步,继续干,直到任务完成。
好了,今天的学习就到这里了!
欢迎在留言区许个愿哦~👇
如果你有一个智能体助理,你最想让它帮你自动化做哪件事?定时抢票、整理周报,还是别的什么?