关于ReAct Agent的实践

什么是ReAct Agent

ReAct是一种结合推理(Reasoning)和行动(Act)推理模式,旨在让大模型在解决问题时结合已有信息来进行逻辑推理并作出行动。说直白点,其实就是通过提示词来模拟人的思考方式:思考-行动-观测,即先思考需要什么动作,然后执行动作,观测动作产生的结果是否能够解决用户问题,若不能则继续进行思考-行动-观测。

ReAct的核心思想

以上是论文中关于ReAct推理模式的一个循环过程的截图,用户输入问题后,ReAct会通过"思考-行动-观测"这样的循环过程来解决用户问题

  1. 思考(thought):根据当前任务目标和上下文(包括之前思考观测到的结果),大模型会思考当前观测到的结果是否解决用户问题,若没解决会继续思考下一步需要如何做;若已解决,则结束整个循环过程;
  2. 行动(Act):指大模型基于本次思考,选择需要执行的操作或者工具;
  3. 观察(Observation):执行操作或者工具得到的结果,大模型会根据观察到的结果思考下一步。

ReAct Agent实践

prompt定义

  1. 角色定义:明确任务的目标和要求;
  2. 工具列表:列出可用的工具及对应的参数;
  3. 工具格式:工具中各个字段的含义;
  4. 示例:提供样例,帮助模型理解任务。
js 复制代码
Answer the following questions as best you can. You have access to the following tools:

{tools}

Use the following format:

Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [{tool_names}]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question

Begin!

Question: {input}
Thought:{agent_scratchpad}
  • 从示例中能看出来,当模型输出Final Answer,表明推理过程结束,模型已经拿到最终答案;

ReAct存在的问题

无限循环

从ReAct的推理模式来看,如果观测到的结果不符合用户提问,大模型会一直按照思考、行动、观察的流程无限循环下去。因此,我们需要从工程链路上规避这个问题,解决方法:

  1. 设置最大迭代次数,超过则中断循环过程;

推理过程复杂

相比较于function calling,仅需调用一次LLM,ReAct需要多次调用LLM,才能完成一个任务。而在很多场景中,我们无需使用ReAct这种复杂的推理过程,例如用户一次提问,仅需调用单工具(我想查询下会员信息),这种使用function calling更合适。

  1. 多步推理:复杂的任务可能需要多次推理和行动,增加了推理的复杂性。
  2. 错误累积:每次推理和行动都可能引入错误,这些错误可能会累积,导致最终结果不准确

无法提前生成计划

  1. 动态决策:ReAct代理通常需要在每一步进行动态决策,难以提前生成完整的行动计划,只能边执行边生成计划。
  2. 依赖上下文:每个步骤的决策高度依赖于当前的上下文和观测结果,使得提前规划变得困难。

ReAct适合的场景

  • 适合问题解决方案路径不明确,需要通过大模型已有知识和先验知识来实现解决方法的泛化性,迭代尝试和调整来找到答案。
相关推荐
掘了几秒前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
User_芊芊君子几秒前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
爬山算法37 分钟前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
智驱力人工智能39 分钟前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
qq_1601448743 分钟前
亲测!2026年零基础学AI的入门干货,新手照做就能上手
人工智能
Howie Zphile43 分钟前
全面预算管理难以落地的核心真相:“完美模型幻觉”的认知误区
人工智能·全面预算
人工不智能5771 小时前
拆解 BERT:Output 中的 Hidden States 到底藏了什么秘密?
人工智能·深度学习·bert
盟接之桥1 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
kfyty7251 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
Moment1 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端