Skip to content

使用 LangGraph 进行 Agent 开发

LangGraph 为构建基于代理的应用程序提供了低级原语和高级预构建组件。本节重点介绍这些 预构建可复用 的组件,旨在帮助您快速且可靠地构建代理系统,无需从头实现协调、记忆或人工反馈处理。

什么是代理?

一个*代理*由三个部分组成:一个**大语言模型(LLM),它可使用的一组**工具,以及提供指令的**提示(prompt)**。

LLM在一个循环中运行。在每次迭代中,它选择一个工具进行调用,提供输入,接收结果(一个观察值),并利用该观察值指导下一步操作。循环持续进行,直到满足停止条件——通常是在代理收集到足够信息以回应用户时。

image

代理循环:LLM选择工具,并利用其输出来满足用户的请求。

关键特性

LangGraph 包含了构建健壮、生产就绪的智能代理系统所需的多种功能:

  • 记忆集成: 原生支持 短期(基于会话)和 长期(跨会话持久化)记忆,使聊天机器人和助手能够具备状态行为。
  • 人机协作控制: 执行可以 无限期 暂停以等待人工反馈——与基于 WebSocket 的解决方案不同,后者仅限于实时交互。这使得可以在工作流的任何阶段进行异步审批、纠正或干预。
  • 流式传输支持: 实时流式传输代理状态、模型令牌、工具输出或组合流。
  • 部署工具: 包括无基础设施的部署工具。LangGraph 平台 支持测试、调试和部署。
    • Studio: 用于检查和调试工作流的可视化 IDE。
    • 支持多种 部署选项 用于生产环境。

高层次构建模块

LangGraph 提供了一组预构建的组件,用于实现常见的代理行为和工作流程。这些抽象是建立在 LangGraph 框架之上的,提供了更快的生产路径,同时保持对高级定制的灵活性。

使用 LangGraph 进行代理开发,可以让你专注于应用程序的逻辑和行为,而不是构建和维护状态、记忆和人工反馈的支持基础设施。

包生态系统

高级组件被组织成几个包,每个包都有特定的用途。

包名 描述 安装命令
langgraph-prebuilt (属于 langgraph) 预构建组件用于 创建代理 pip install -U langgraph langchain
langgraph-supervisor 用于构建 监督者 代理的工具 pip install -U langgraph-supervisor
langgraph-swarm 用于构建 群体 多代理系统的工具 pip install -U langgraph-swarm
langchain-mcp-adapters 用于 MCP 服务器 的接口,集成工具和资源 pip install -U langchain-mcp-adapters
langmem 代理内存管理:短期和长期 pip install -U langmem
agentevals 用于 评估代理性能 的实用工具 pip install -U agentevals

可视化代理图

使用以下工具来可视化由 create_react_agent 生成的图,并查看相应代码的概要。 它允许您探索代理的基础设施,如由以下内容定义:

  • tools: 代理可以使用的工具列表(函数、API 或其他可调用对象),用于执行任务。
  • pre_model_hook: 在调用模型之前调用的函数。可用于压缩消息或执行其他预处理任务。
  • post_model_hook: 在调用模型之后调用的函数。可用于实现防护措施、人工介入流程或其他后处理任务。
  • response_format: 用于限制最终输出类型的结构化数据,例如一个 pydanticBaseModel

功能

graph image

以下代码片段展示了如何使用 create_react_agent 创建上述代理(以及底层图):