智能体是如何“思考”的:ReAct模式

0 阅读1分钟

大家好,我是小民,见字欢喜。

前面两篇文章,我们聊了智能体是什么,以及它和聊天机器人的区别。

今天咱们聊个更深入的问题: 智能体接到任务后,脑子里到底发生了什么?

它是蒙头乱试,碰运气?还是有着一套清晰的运行机制?

结果可想而知,当然不是乱试啦~

目前主流的智能体,基本都遵循一个叫 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模式,说白了就是让智能体从「会聊天」变成了「会干活」——先想想该干什么,动手干,看看结果,再想想下一步,继续干,直到任务完成。

好了,今天的学习就到这里了!

欢迎在留言区许个愿哦~👇

如果你有一个智能体助理,你最想让它帮你自动化做哪件事?定时抢票、整理周报,还是别的什么?