Skip to content

LangGraph 服务器

概述

LangGraph 服务器提供了一个用于创建和管理基于代理的应用程序的 API。它基于助手的概念构建,这些助手是为特定任务配置的代理,并且包含内置的持久化和一个**任务队列**。这个多功能的 API 支持广泛的代理应用用例,从后台处理到实时交互。

主要特性

LangGraph 平台整合了代理部署的最佳实践,因此你可以专注于构建代理逻辑。

  • 流式端点:公开 多种不同流式模式 的端点。我们甚至让这些端点适用于可能在连续流式事件之间间隔数分钟的长时间运行的代理。
  • 后台运行:LangGraph 服务器支持在后台启动助手,并提供用于轮询助手运行状态的端点和用于有效监控运行状态的 Webhook。
  • 支持长时间运行:我们用于运行助手的阻塞端点会发送定期的心跳信号,防止在处理需要很长时间才能完成的请求时意外关闭连接。
  • 任务队列:我们添加了一个任务队列,以确保在请求突发到达时不会丢失任何请求。
  • 可水平扩展的基础设施:LangGraph 服务器设计为可水平扩展,允许你根据需要扩大或缩小使用规模。
  • 双消息支持:很多时候,用户可能会以意想不到的方式与你的图进行交互。例如,用户可能发送一条消息,然后在图运行完成之前又发送第二条消息。我们将此称为 "双消息",并添加了四种不同的处理方式。
  • 优化的检查点器:LangGraph 平台附带了一个针对 LangGraph 应用程序优化的内置 检查点器
  • 人工介入端点:我们公开了支持 人工介入 功能所需的所有端点。
  • 内存:除了线程级持久性(上文 检查点器 已涵盖)之外,LangGraph 平台还附带了一个内置的 内存存储
  • 定时任务:内置对任务调度的支持,使你能够在应用程序中自动执行定期操作,如数据清理或批量处理。
  • Webhook:允许你的应用程序向外部系统发送实时通知和数据更新,便于与第三方服务集成并根据特定事件触发操作。
  • 监控:LangGraph 服务器与 LangSmith 监控平台无缝集成,提供有关应用程序性能和健康状况的实时洞察。

你要部署什么?

当你部署一个 LangGraph 服务器时,你要部署一个或多个、一个用于持久化的数据库以及一个任务队列。

当你使用 LangGraph 服务器部署一个图时,你是在为一个助手部署一个“蓝图”。

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

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

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

注意

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

持久化和任务队列

LangGraph 服务器利用一个数据库进行持久化,并使用一个任务队列。

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

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

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

应用程序结构

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

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

LangGraph 服务器 API

LangGraph 服务器 API 允许你创建和管理助手线程运行实例定时任务等。

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

助手

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

你可以将助手视为一个智能体的保存配置。

在构建智能体时,进行一些*不*改变图逻辑的快速更改是相当常见的。例如,仅仅更改提示信息或大语言模型(LLM)的选择就可能对智能体的行为产生重大影响。助手提供了一种简单的方法来对智能体配置进行并保存此类更改。

线程

线程包含一系列运行实例的累积状态。如果在一个线程上执行运行实例,那么助手底层图的状态将持久化到该线程中。

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

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

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

LangGraph 云 API 提供了几个用于创建和管理线程以及线程状态的端点。更多详细信息请参阅API 参考文档

运行实例

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

LangGraph 云 API 提供了几个用于创建和管理运行实例的端点。更多详细信息请参阅API 参考文档

存储

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

存储对于在你的 LangGraph 应用程序中实现内存很有用。

定时任务

在许多情况下,按计划运行助手是很有用的。

例如,假设你正在构建一个每天运行并发送当天新闻邮件摘要的助手。你可以使用定时任务每天晚上 8 点运行该助手。

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

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

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

LangGraph 云 API 提供了几个用于创建和管理定时任务的端点。更多详细信息请参阅API 参考文档

网络钩子

网络钩子实现了从你的 LangGraph 云应用程序到外部服务的事件驱动通信。例如,你可能希望在对 LangGraph 云的 API 调用完成运行后向另一个服务发出更新。

许多 LangGraph 云端点接受 webhook 参数。如果可以接受 POST 请求的端点指定了此参数,LangGraph 云将在运行实例完成时发送一个请求。

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

相关内容

Comments