当前位置:   article > 正文

基于LangChain快速实现Agent应用_langchain 实现agent

langchain 实现agent

Agent 应用适用场景

Agent 是大语言模型(LLM)的主要应用形态,通过大语言模型的推理能力和使用工具的能力完成复杂的任务,如下图所示:

在这里插入图片描述
如果你有以下的业务场景,Agent 应用架构是非常适合的:

  • 第一、 需要多步执行、流程编排的复杂问题。
  • 第二、 该问题可以被拆分成多个子模块,每个子模块都能清晰地定义输入、输出和功能,并能判断是否达成目标。
  • 第三、 可能感觉有解决的方法,但不能确定具体的每一步方法。
  • 第四、 可能存在多种落地方式,而不仅限于单一的方法,并且我们不太确定最优的解决方案。
  • 第五、 对于单个模块而言,只需将接口描述清楚,无需过多考虑它与其他模块之间的调用关系。

Agent 架构原理

Agent 构建在大语言模型的推理能力基础上,对大语言模型的 Planning 规划的方案使用工具执行(Action) ,并对执行的过程进行观测(Observation),保证任务的落地执行。
在这里插入图片描述
Planning->Action->Observation (Repeated many times)。

Agent 根据用户输入及当前状态选择一个动作,执行该动作并观察结果,然后继续下一个动作。
有了 Agent,就不需要手动编写 if/else 逻辑了(即不要静态的业务流程编排了),只需将 Prompt 提示词提供给大语言模型,让其进行判断决策即可。

LangChain Agent 开发框架

LangChain 本身提供一些实用的工具,比如:Google 搜索、GitHub 和 Python 等。如果需要自己实现工具,则需要继承 BaseTool 类,并实现 run 方法。模型根据工具的描述调用相应的方法,并观察其返回结果。

第一、Agent 类别

计划 Agent:通过 LLM 制定计划
执行 Agent:通过 LLM 和 tools 实现计划

第二、Chain 与 Agent 区别

Chain 和 Agent 都用于解决多步问题。Chain 是静态的面向过程架构设计,过程是事先设计好的静态流程。而 Agent 则是动态的面向目标架构设计,由大语言模型来决策整个过程。
在这里插入图片描述

第三、使用 LangChain 实现 Agent 的案例如下

from langchain.llms import ChatGLM
from langchain.experimental.plan_and_execute import PlanAndExecute, load_agent_executor, load_chat_planner
from tools import LlmModelTool, VectorSearchTool
 
endpoint_url = "http://10.19.58.1:6666"
llm = ChatGLM(
    endpoint_url=endpoint_url,
    max_token=80000,
    history=[],
    model_kwargs={"sample_model_args": False},
    temperature=0.95
)
 
tools = [LlmModelTool(), VectorSearchTool()]
 
planner = load_chat_planner(llm)
executor = load_agent_executor(llm, tools, verbose=True)
 
agent = PlanAndExecute(planner=planner, executor=executor, verbose=True)
agent.run(input="马上端午节,请帮我制定一个国内的5天旅行计划")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/989930
推荐阅读
相关标签
  

闽ICP备14008679号