langchain 代理 1 | 豆包MarsCode AI刷题

91 阅读4分钟
  • LangChain中的代理:是一个多功能接口,能接触并使用一套工具,根据用户输入决定调用哪些工具,可将一个工具的输出作为另一个工具的输入,通过Agent类将ReAct框架进行封装实现,赋予大模型极大自主性,使其能从仅靠内部知识对话聊天的Bot变为能使用工具的智能代理。
  • 思维链(CoT)局限:虽能让LLMs执行推理轨迹完成一些推理问题,但模型因缺乏与外部世界接触、无法更新知识,会出现事实幻觉。
  • ReAct框架:灵感源于人类“行动”和“推理”的协同作用,引导模型生成任务解决轨迹,即观察-思考-行动(简化为推理-行动)。在推理阶段,对环境和状态观察并生成推理轨迹,可诱导、跟踪和更新操作计划及处理异常情况;在行动阶段,采取与外部源交互收集信息或给出最终答案等行动。每一步推理过程详细记录,改善大模型解决问题的可解释性和可信度。将ReAct框架与思维链(CoT)结合使用,能让大模型在推理时兼顾内部知识和外部信息,给出更可靠回应。
  • 通过代理实现ReAct框架示例:以ZERO_SHOT_REACT_DESCRIPTION类型代理为例,完成查询玫瑰花当前市场价格并计算加价15%后的新价格任务,展示了智能代理如何形成思考与行动链条完成任务。

思考题

  • 推理和行动各自代表什么及相互关系
    • 推理:在ReAct框架中,推理包括对当前环境和状态的观察,并生成推理轨迹。它能让模型诱导、跟踪和更新操作计划,甚至处理异常情况,涵盖了对任务相关信息的分析、思考以及规划下一步行动的过程,像观察市场上玫瑰花价格相关情况并思考后续计算步骤等。
    • 行动:在于指导大模型采取下一步的行动,比如与外部源(如知识库或环境)进行交互并且收集信息,或者给出最终答案,例如通过搜索引擎查询玫瑰花价格、用计算器计算加价后的价格等具体操作。
    • 相互关系:推理和行动是紧密相连的,推理为行动提供指导和规划,基于对环境和状态的观察及思考确定需要采取的行动;行动则是推理的具体实践,通过实际操作获取新信息或得出最终结果,进一步反馈到推理过程中,帮助更新操作计划等,二者协同完成任务。
  • ReAct框架能改善大模型解决问题时的可解释性和可信度的原因:因为ReAct框架的每一个推理过程都会被详细记录在案,用户可以清晰看到模型在解决问题过程中是如何观察环境、进行思考以及采取行动的,不再是一个黑箱式的输出结果,所以能够清楚了解模型得出答案的逻辑和步骤,从而改善了大模型解决问题时的可解释性和可信度。
  • LangChain中的代理和链的核心差异
    • 代理:是一个能自主决定调用哪些外部工具、管理整个交互过程流程的多功能接口,它以ReAct框架为驱动力,可根据任务需求灵活调用如数据清洗工具、搜索引擎、应用程序等外部工具,通过思考、观察、行动的链条来完成任务,赋予大模型自主性。
    • :这里可能指思维链(CoT),它主要是让LLMs执行推理轨迹来完成一些任务,侧重于利用模型内部知识进行推理,缺乏与外部世界主动交互获取信息及自主调用工具的能力,在面对超出模型知识范围的问题时易出现事实幻觉等问题,而不像代理那样能通过调用外部工具解决这些局限。