Agents

Agents #

https://python.langchain.com/docs/concepts/#agents

语言模型本身不能执行操作——它们只会输出文本。LangChain 的一个重要用例是创建Agent(代理)。Agent是一种使用大型语言模型 (LLM) 作为推理引擎的系统,用于决定要采取哪些行动以及这些行动的输入应该是什么。行动的结果可以反馈给Agent,Agent再决定是否需要执行更多操作,或者是否可以结束任务。

LangGraph 是 LangChain 的一个扩展,专门用于创建高度可控和自定义的Agent。请查阅相关文档以深入了解Agent的概念。

LangChain 中有一个即将被弃用的遗留Agent概念:AgentExecutor。AgentExecutor 本质上是Agent的运行时,它非常适合入门,但当你需要创建更多定制化的Agent时,它的灵活性不足。为了应对这个问题,我们构建了 LangGraph 作为一个灵活、可高度控制的运行时。

如果你仍在使用 AgentExecutor,不必担心:我们仍有关于如何使用AgentExecutor的指南。不过,建议你开始向LangGraph过渡。为此,我们提供了一个过渡指南来帮助你完成这个过程。

ReAct Agent #

一种流行的构建Agent的架构是 ReAct。ReAct 结合了推理和行动的迭代过程,实际上“ReAct”代表“Reason”(推理)和“Act”(行动)。

一般的流程如下:

  1. 模型会“思考”在接收到输入及先前的观察结果后应该采取的下一步操作。
  2. 然后模型会从可用工具中选择一个行动(或者选择回应用户)。
  3. 模型会为该工具生成参数。
  4. Agent运行时(执行器)会解析出所选工具并使用生成的参数调用该工具。
  5. 执行器会将工具调用的结果作为观察反馈给模型。

这一过程会重复,直到Agent选择作出回应为止。

有一些基于提示的通用实现,不需要特定模型的功能,但最可靠的实现会使用像tool calling(工具调用)这样的功能,以便可靠地格式化输出并减少不确定性。

有关更多信息,请查阅 LangGraph 文档,或参阅如何迁移到 LangGraph 的指南。

© 2024 青蛙小白