基于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天旅行计划")
  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一名技术极客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值