当前位置: 首页 > news >正文

langchain框架中各种Agent(LLMSingleAgent ReactAgent Plan-and-Execute Agent)原理方式对比

在LangChain框架中,LLMSingleActionAgent与ReAct Agent及其他Agent类型在内部原理上存在显著差异,主要体现在推理机制、行动策略、动态性等方面。以下结合实例进行详细说明:


1. LLMSingleActionAgent的内部原理

LLMSingleActionAgent是LangChain中基于单步操作的Agent实现,其核心逻辑是通过LLMChain输出解析器(OutputParser)决定下一步动作。

  • 结构
    • LLMChain:负责生成AgentAction或AgentFinish,通过提示模板(PromptTemplate)指导语言模型输出结果。
    • 输出解析器:将LLM的输出解析为具体动作(如调用工具或终止任务)。
    • 停止序列:当LLM生成特定字符串(如stop=["\n观察:")时,停止生成。
  • 特点
    • 静态决策:仅根据当前状态决定下一步动作,不记录历史上下文。
    • 单步操作:每次仅执行一个动作,例如调用工具或返回最终答案。
    • 示例:若任务是“查找玫瑰的市场价格并加价15%”,LLMSingleActionAgent可能直接调用搜索引擎工具获取价格,但无法动态调整策略(如发现数据不足时重新搜索)。

2. ReAct Agent的内部原理

ReAct(Reasoning + Acting)框架通过交替推理与行动实现复杂任务处理,其核心是动态调整策略

  • 结构
    • 推理阶段:生成推理轨迹(如“玫瑰当前价格=?→ 加价15%后价格=?”),通过工具描述(tool_description)选择合适工具。
    • 行动阶段:调用外部工具(如Google搜索)获取数据,补充到推理中。
    • 协同机制:推理结果指导行动,行动结果反馈到推理中,形成闭环。
  • 特点
    • 动态决策:根据推理结果动态选择工具,例如发现搜索结果不一致时,可重新调用工具验证。
    • 可解释性:通过推理轨迹展示思考过程,提升任务透明度。
    • 示例:在“玫瑰价格计算”任务中,ReAct Agent会先推理需要价格数据,调用搜索引擎获取当前价格,再计算加价后价格。若搜索结果不一致,可重新调用工具修正数据。

3. 其他Agent类型的对比

(1)Zero-shot ReAct Agent
  • 特点:无需历史记录,直接基于当前输入和工具描述生成动作。
  • 适用场景:零样本任务(如生成新文本、翻译),无需依赖对话历史。
  • 示例:用户提问“写一首关于春天的诗”,Zero-shot ReAct Agent直接生成诗歌,无需调用工具。
(2)Conversational ReAct Agent
  • 特点:结合记忆模块(Memory),记录对话历史以优化后续推理。
  • 适用场景:多轮对话任务(如客服问答),需参考上下文。
  • 示例:用户询问“玫瑰价格”后,Agent记录历史对话,后续问题“加价15%后价格”可直接调用已获取的数据。
(3)Plan-and-Execute Agent
  • 特点:预先规划所有步骤,按顺序执行。
  • 适用场景:结构化任务(如数学计算),无需动态调整。
  • 示例:计算“玫瑰价格+15%”时,Agent先规划“搜索价格→计算加价”两步,按顺序执行。

4. 核心差异总结

维度LLMSingleActionAgentReAct AgentZero-shot ReActConversational ReActPlan-and-Execute
推理机制静态推理(仅当前状态)动态推理(结合历史与工具)静态推理(零样本)动态推理(结合记忆)预先规划推理步骤
行动策略单步调用工具或返回结果交替推理与行动,动态调整工具直接调用工具结合记忆优化工具选择预先规划工具顺序
动态性无动态调整能力支持动态调整(如重新搜索)无动态调整支持动态调整(如修正历史数据)无动态调整
适用场景简单任务(如翻译、生成)复杂任务(如多步骤推理、数据验证)零样本任务多轮对话任务结构化任务

5. 实例对比

任务:计算“玫瑰当前市场价格并加价15%”。

  • LLMSingleActionAgent

    1. 调用搜索引擎工具获取玫瑰价格(假设返回$100)。
    2. 直接计算$100 × 1.15 = $115,返回结果。
      问题:若搜索结果不一致,无法动态修正。
  • ReAct Agent

    1. 推理:“需要玫瑰当前价格”→调用搜索引擎。
    2. 收到$100后,计算加价→返回$115。
    3. 若搜索结果不一致,可重新调用工具修正数据。
  • Plan-and-Execute Agent

    1. 预先规划步骤:“搜索价格→计算加价”。
    2. 顺序执行,无法动态调整。

6. 总结

  • LLMSingleActionAgent 是ReAct框架的简化版,仅支持单步操作,适合简单任务。
  • ReAct Agent 通过动态推理与行动协同,适用于复杂任务,但需更多工具支持。
  • 其他Agent类型(如Conversational、Plan-and-Execute)在特定场景下更高效,但灵活性较低。
  • 选择依据:任务复杂度、是否需要动态调整、是否依赖历史上下文等。

相关文章:

  • Spring Boot 虚拟线程 vs WebFlux:谁更胜一筹?
  • Ascend上如何进行带宽测试
  • Spring Boot + MyBatis + Vue:构建高效全栈应用的实战指南
  • px4仿真使用fastlio的定位数据飞行
  • 用流行民族戏腔三种方式打开国风爆款《闲人填梦》,邓超予的跨界演绎引领文化传播新高度!
  • QSqlDatabase: QSQLITE driver not loaded
  • 小孙学变频学习笔记(三)变频器的逆变器件—IGBT管(上)
  • 16.大数据监控
  • Kafka Broker处理消费者请求源码深度解析:从请求接收到数据返回
  • WHAT - React Native 开发 App 从 0 到上线全流程周期
  • React 新框架的一些实践心得(关注业务的话,框架的设计封装思路)
  • 【研发工具】.Net创建多项目模板(Visual Studio)
  • 设计模式 | 单例模式——饿汉模式 懒汉模式
  • 从零开始的云计算生活——第二十天,脚踏实地,SSH与Rsync服务
  • uni-app总结5-UTS插件开发
  • Axios 拦截器实现原理深度剖析:构建优雅的请求处理管道
  • Vue-11-前端框架Vue之应用基础父组件传值到子组件props的使用
  • TDengine 集群超能力:超越 InfluxDB 的水平扩展与开源优势
  • 具身机器人
  • Oracle/MySQL/SqlServer/PostgreSQL等数据库的数据类型映射以及各版本数据类型情况说明
  • 零基础学习网站建设/搜索引擎优化的含义
  • 推荐一个两学一做的网站/网络推广发展
  • wap网站的开发/滨州网站建设
  • 做网站用哪个软件/网站运营培训
  • 网站开发ppt模板/平台代运营是什么意思
  • 商业网站建设案例教程/seo网站优化培训班