跳到内容

LangGraph 服务器

概述

LangGraph 服务器提供了一个 API,用于创建和管理基于 Agent 的应用程序。它构建在 助手 的概念之上,助手是为特定任务配置的 Agent,并包括内置的 持久化 和一个 任务队列。这种通用的 API 支持广泛的 Agent 应用程序用例,从后台处理到实时交互。

主要特性

LangGraph 平台融入了 Agent 部署的最佳实践,因此您可以专注于构建您的 Agent 逻辑。

  • 流式端点:公开 多种不同流式模式 的端点。我们使这些端点即使对于长时间运行的 Agent 也有效,这些 Agent 可能在连续的流事件之间间隔数分钟。
  • 后台运行:LangGraph 服务器支持在后台启动助手,并提供用于轮询助手运行状态的端点和 Webhook,以有效地监控运行状态。
  • 支持长时间运行:我们的用于运行助手的阻塞端点发送定期的心跳信号,防止在处理需要很长时间才能完成的请求时发生意外的连接关闭。
  • 任务队列:我们添加了一个任务队列,以确保我们不会丢弃任何突发性质的请求。
  • 水平可扩展的基础设施:LangGraph 服务器设计为水平可扩展,允许您根据需要扩展和缩减您的使用量。
  • 双重文本支持:很多时候,用户可能会以意想不到的方式与您的图进行交互。例如,用户可能会发送一条消息,然后在图完成运行之前发送第二条消息。我们称之为 “双重文本”,并添加了四种不同的方法来处理这种情况。
  • 优化的检查点程序:LangGraph 平台配备了一个内置的 检查点程序,针对 LangGraph 应用程序进行了优化。
  • 人机环路端点:我们公开了支持 人机环路 功能所需的所有端点。
  • 内存:除了线程级别的持久化(上面由 [检查点程序]l(./persistence.md#checkpoints) 涵盖),LangGraph 平台还配备了一个内置的 内存存储
  • Cron 任务:内置支持计划任务,使您能够在应用程序中自动化定期操作,例如数据清理或批处理。
  • Webhook:允许您的应用程序向外部系统发送实时通知和数据更新,从而轻松与第三方服务集成并根据特定事件触发操作。
  • 监控:LangGraph 服务器与 LangSmith 监控平台无缝集成,提供对应用程序性能和健康状况的实时洞察。

您要部署什么?

当您部署 LangGraph 服务器时,您正在部署一个或多个 、一个用于 持久化 的数据库和一个任务队列。

当您使用 LangGraph 服务器部署图时,您正在部署一个 助手 的“蓝图”。

助手 是与特定配置设置配对的图。您可以为每个图创建多个助手,每个助手都具有独特的设置,以适应可以由同一图提供的不同用例。

部署后,LangGraph 服务器将使用图的默认配置设置自动为每个图创建一个默认助手。

您可以通过 LangGraph 服务器 API 与助手进行交互。

注意

我们通常认为图实现了 Agent,但图不一定需要实现 Agent。例如,一个图可以实现一个简单的聊天机器人,该机器人仅支持来回对话,而没有影响任何应用程序控制流的能力。实际上,随着应用程序变得越来越复杂,图通常会实现更复杂的流程,该流程可能会使用 多个 Agent 协同工作。

持久化和任务队列

LangGraph 服务器利用数据库进行 持久化 和任务队列。

目前,仅支持 Postgres 作为 LangGraph 服务器的数据库,以及 Redis 作为任务队列。

如果您使用 LangGraph Cloud 进行部署,则这些组件将为您管理。如果您在自己的基础设施上部署 LangGraph 服务器,则需要自行设置和管理这些组件。

请查看 部署选项 指南,以获取有关如何设置和管理这些组件的更多信息。

应用程序结构

要部署 LangGraph 服务器应用程序,您需要指定要部署的图,以及任何相关的配置设置,例如依赖项和环境变量。

阅读 应用程序结构 指南,了解如何构建您的 LangGraph 应用程序以进行部署。

LangGraph 服务器 API

LangGraph 服务器 API 允许您创建和管理 助手线程运行Cron 任务 等。

LangGraph Cloud API 参考 提供了有关 API 端点和数据模型的详细信息。

助手

助手 指的是 加上该图的特定 配置 设置。

您可以将助手视为 Agent 的已保存配置。

在构建 Agent 时,进行 改变图逻辑的快速更改是很常见的。例如,简单地更改提示或 LLM 选择可能会对 Agent 的行为产生重大影响。助手提供了一种简单的方法来对 Agent 配置进行和保存这些类型的更改。

线程

线程包含一系列 运行 的累积状态。如果在线程上执行运行,则助手的底层图的 状态 将被持久化到线程。

可以检索线程的当前状态和历史状态。要持久化状态,必须在执行运行之前创建线程。

线程在特定时间点的状态称为 检查点。检查点可用于在稍后时间恢复线程的状态。

有关线程和检查点的更多信息,请参阅 LangGraph 概念指南 的此部分。

LangGraph Cloud API 提供了多个用于创建和管理线程和线程状态的端点。有关更多详细信息,请参阅 API 参考

运行

运行是 助手 的一次调用。每次运行可能都有其自己的输入、配置和元数据,这些可能会影响底层图的执行和输出。运行可以选择在 线程 上执行。

LangGraph Cloud API 提供了多个用于创建和管理运行的端点。有关更多详细信息,请参阅 API 参考

存储

存储是一个 API,用于管理持久的 键值存储,该存储可从任何 线程 访问。

存储对于在您的 LangGraph 应用程序中实现 内存 非常有用。

Cron 任务

在许多情况下,按计划运行助手非常有用。

例如,假设您正在构建一个每天运行并发送当天新闻摘要电子邮件的助手。您可以使用 Cron 任务每天晚上 8:00 运行助手。

LangGraph Cloud 支持 Cron 任务,这些任务按用户定义的计划运行。用户指定计划、助手和一些输入。之后,在指定的计划上,服务器将

  • 使用指定的助手创建一个新线程
  • 将指定的输入发送到该线程

请注意,这每次都会将相同的输入发送到线程。有关创建 Cron 任务的信息,请参阅 操作指南

LangGraph Cloud API 提供了多个用于创建和管理 Cron 任务的端点。有关更多详细信息,请参阅 API 参考

Webhook

Webhook 实现了从您的 LangGraph Cloud 应用程序到外部服务的事件驱动通信。例如,您可能希望在对 LangGraph Cloud 的 API 调用完成后,向单独的服务发出更新。

许多 LangGraph Cloud 端点接受 webhook 参数。如果 POST 请求可以接受的端点指定了此参数,则 LangGraph Cloud 将在运行完成后发送请求。

有关更多详细信息,请参阅相应的 操作指南

评论