“ ReAct思考和行动,既是一种方法论,也是一种范式,更是一种提示词模板,还是一种Agent智能体的开发方式。”
目前基于大模型构建上层应用,其中很大的一个问题就是大模型的能力不足,特别是在复杂场景下的逻辑思维能力,明显存在严重的缺陷;而且由于安全性问题,大模型整体运行过程是一个黑盒模型,我们并不知道其内部到底是怎么运作的。
因此,这时就需要一种方式让大模型给出具体的思考和行动过程,一是为了弄明白大模型是怎么思考的,二是为了让大模型能够处理更复杂的逻辑问题。

Reasoning And Acting思考和行动
人工智能技术的发展是为了让机器取代人类,使人类从繁重的生产任务中脱离出来;因此人工智能技术不仅仅只是用来生成一些文字,图片;最重要的是让大模型真的能够像人类一样干活,使用各种工具去处理各种复杂的事情。
但大模型是一个没有物理实体的程序,怎么才能让大模型去接触现实世界呢?
因此这时Agent智能体就产生了,智能体的作用就是让大模型能够使用外部工具和现实世界进行接触,而这也是为什么说Agent智能体是通往通用人工智能(AGI)的桥梁。
虽然说目前大模型可以通过Function call和MCP等方式来使用外部工具;但有一个问题就是,大模型在处理复杂问题时能力有限,因为它无法做到像人类一样,把一个复杂的任务通过拆分形成多个简单的子任务。

所以,这时就需要一种方式来让大模型像人类一样进行思考和行动,而这时就有人提出了一个方法论——Reasoning And Acting思考和行动;简称——ReAct。
可能很多人都听说过这个词,但我相信很多人八成都没弄明白这个词到底是怎么回事;虽然有文档解释ReAct的理念,但我想很多人应该都看不明白,包括作者自己。
在前面的文章中提过,大模型应用的核心就是把大模型当做一个人,而不是一个无所不能的神;而不同的大模型就类似于不同的人,有些擅长创作类,比如AIGC,有些擅长逻辑推理比如说GPT4和DeepSeek-R1等。
因此,把大模型类比于人类,就可以更好地理解大模型应用的本质;那么人类在面对复杂问题时都是怎么处理的?
首先,就是要分析问题,然后拆解问题,最后一步一步的解决问题,而且在解决问题的过程中还要不断的思考,总结和调整方向和策略。
因此,仿造人类解决复杂问题的过程,就提出了大模型的ReAct范式;其原理就类似于人类解决复杂问题的过程。
ReAct范式主要包括以下几个方面,以提示词模板为例:
Question: 用户问题
thought: 大模型思考过程
action: 调用工具执行
observation: 观察总结
final answer: 最终答案
这玩意看起来好像很好理解,但实际用的时候发现好像又没那么简单;原因就在于我们没搞明白大模型为什么会按照这种要求去做。
其实,我们换个角度就很好理解这个问题了;这玩意就类似于一个模板,比如我写文章,写论文需要有一些模板格式;而这就相当于我们的论文模板,只不过这个模板是思考和行动的过程。
这就类似于,领导给下属分配一个任务,让下属去处理;但由于这个下属能力不足,害怕出错,所以领导就交给他一个方法论,把问题,思考过程,行动过程,以及总结的过程都按照以上方式记录下来,这样就能避免主观犯错。
OK,这里弄明白了ReAct模式的提示词方式,那ReAct应用于Agent智能体的开发应该怎么办呢?
毕竟智能体是LLM+Prompt+Tools的集合,怎么才能让智能体按照这种思考方式来处理问题呢?并且,当其中某个环节执行失败时,智能体能够及时总结和调整找到其它的解决方案。
并且智能体还需要在失败和用户反馈中,不断的优化其执行方案和结果;那ReAct智能体的执行过程是什么样的?

根据提示词的这个过程,大模型在接受到用户请求(question)之后(也就是提示词,提示词中包括用户的问题,以及一些条件和约束等);大模型拿到问题之后,就会进行思考分析(thought),然后根据思考结果判断是依靠自身能力解决,还是需要调用外部工具解决,这一步就是行动(action)。
而大模型在思考完成并调用工具行动之后,会拿到一个结果;但这个结果可能并不是对的,或者只是中间某一步的结果;因此,大模型还需要观察(observation)工具执行的结果,是否拿到正确结果,也就是是否符合用户的问题,以及执行过程中是否出现错误或异常等。
Question: 用户问题
thought: 大模型思考过程
action: 调用工具执行
observation: 观察总结
final answer: 最终答案
当,工具执行出现异常或没有拿到正确结果之前,智能体需要自己能够解决问题找到新的解决方案,或者是继续之后后面的步骤,拿到最终的结果(final answer)。
(文:AI探索时代)