跳到主要内容
LangGraph Server 是一个用于创建和管理基于代理的应用程序的 API 平台。它提供内置的持久性、任务队列,并支持大规模部署、配置和运行助手(代理工作流)。此更新日志记录了 LangGraph Server 发布的所有重要更新、功能和修复。

v0.4.39

  • hono 从版本 4.7.6 升级到 4.9.7,解决了与 bodyLimit 中间件相关的安全问题。
  • 允许自定义基本身份验证 URL 以增强灵活性。
  • 使用“uv”将“ty”依赖项固定到稳定版本,以防止意外的 linting 失败。

v0.4.38

  • LANGSMITH_API_KEY 替换为 LANGSMITH_CONTROL_PLANE_API_KEY 以支持需要许可证验证的混合部署。
  • 引入了自托管日志摄取支持,可通过 SELF_HOSTED_LOGS_ENABLEDSELF_HOSTED_LOGS_ENDPOINT 环境变量进行配置。

v0.4.37

  • 要求创建权限以复制线程,以确保正确的授权。

v0.4.36

  • 改进了错误处理,并为扫描循环添加了延迟,以便在 Redis 停机或取消错误期间更顺畅地运行。
  • 更新了队列入口点,以便在启用 FF_USE_CORE_API 时启动核心 API gRPC 服务器。
  • 引入了对助手端点中无效配置的检查,以确保与其他端点的一致性。

v0.4.35

  • 解决了核心 API 中的时区问题,确保了准确的时间数据检索。
  • 引入了新的 middleware_order 设置,以在自定义中间件之前应用身份验证中间件,从而可以更精细地控制受保护的路由配置。
  • 在 Redis 客户端创建期间发生错误时记录 Redis URL。
  • 改进了 Go 引擎/运行时上下文传播,以确保一致的执行流。
  • 从执行器入口点移除了不必要的 assistants.put 调用以简化流程。

v0.4.34

  • 阻止未经授权的用户更新线程 TTL 设置以增强安全性。

v0.4.33

  • 通过记录 LockNotOwnedError 并将初始池迁移锁超时延长至 60 秒,改进了 Redis 锁的错误处理。
  • 更新了 BaseMessage 模式以与最新的 langchain-core 版本保持一致,并同步了构建依赖项以实现一致的本地开发。

v0.4.32

  • 在 API 镜像中添加了 GO 持久层,支持 GRPC 服务器操作并支持 PostgreSQL,从而增强了可配置性。
  • 在发生超时时将状态设置为错误,以改进错误处理。

v0.4.30

  • 添加了在使用 stream_mode="events" 时对上下文的支持,并包含了此功能的新测试。
  • 添加了使用 $LANGGRAPH_SERVER_PORT 覆盖服务器端口的支持,并删除了不必要的 Dockerfile ARG 以实现更清晰的配置。
  • 将授权过滤器应用于线程删除 CTE 中的所有表引用,以增强安全性。
  • 引入了自托管指标摄取功能,允许在设置相应的环境变量后每分钟将指标发送到 OTLP 收集器。
  • 确保 set_latest 函数正确更新版本的名称和描述。

v0.4.29

  • 确保在所有情况下都正确清理 Redis 发布/订阅连接。

v0.4.28

  • 为队列指标服务器添加了格式参数,以增强自定义功能。
  • 纠正了 CLI 中 MOUNT_PREFIX 环境变量的使用,以与文档保持一致并防止混淆。
  • 添加了一个功能,用于在由于没有订阅者而丢弃消息时记录警告,可通过功能标志进行控制。
  • 在 Node 镜像中添加了对 Bookworm 和 Bullseye 发行版的支持。
  • 通过将执行器定义从 langgraph-go 存储库中移出,整合了执行器定义,改进了可管理性,并更新了服务器迁移的检查点设置方法。
  • 确保为 A2A 发送正确的响应头,以提高兼容性和通信。
  • 整合了 PostgreSQL 检查点实现,添加了 /core 目录的 CI 测试,修复了 RemoteStore 测试错误,并使用事务增强了 Store 实现。
  • 将 PostgreSQL 迁移添加到队列服务器,以防止在执行迁移之前添加图表导致错误。

v0.4.27

  • coredis 替换为 redis-py,以改进高流量负载下的连接处理和可靠性。

v0.4.24

  • 添加了根据 A2A 规范为 A2A 调用返回完整消息历史记录的功能。
  • 在 Dockerfile 中添加了 LANGGRAPH_SERVER_HOST 环境变量,以支持双栈模式的自定义主机设置。

v0.4.23

  • 使用更快的消息编解码器进行 Redis 流处理。

v0.4.22

  • 将长流处理移植到运行流、连接和取消端点,以改进流管理。

v0.4.21

  • 添加了 A2A 流功能,并使用 A2A SDK 增强了测试。
  • 添加了 Prometheus 指标以跟踪图表、中间件和身份验证中的语言使用情况,以改进洞察力。
  • 修复了与块消息转换相关的开源软件中的错误。
  • 移除了 pubsub 订阅中的 await,以减少集群测试中的不稳定性,并在关机套件中添加了重试以增强 API 稳定性。

v0.4.20

  • 优化了 Pubsub 初始化,以防止开销并解决订阅计时问题,确保运行执行更顺畅。

v0.4.19

  • 通过解决版本 3.2.10 中引入的函数检查,移除了 psycopg 中的警告。

v0.4.17

  • 过滤掉带有挂载前缀的日志,以减少日志输出中的噪音。

v0.4.16

  • 添加了对 A2A 中隐式线程创建的支持,以简化操作。
  • 改进了分布式运行时流中的错误序列化和发出,从而实现更全面的测试。

v0.4.13

  • 在健康端点中监控队列状态,以确保 PostgreSQL 初始化失败时行为正确。
  • 解决了扫描 ID 长度不相等的问题,以提高日志清晰度。
  • 通过避免对 DR 有效负载进行重新序列化,使用 msgpack 字节检查进行类似 json 的解析,增强了流输出。

v0.4.12

  • 确保即使在遇到数据库连接问题时也能返回指标。
  • 优化了更新流,以防止不必要的数据传输。
  • storage_postgres/langgraph-api-server 中的 hono 从版本 4.9.2 升级到 4.9.6,以改进 URL 路径解析安全性。
  • 为 LangSmith 访问调用添加了重试和内存缓存,以提高针对单点故障的弹性。

v0.4.11

  • 添加了对线程更新中 TTL(生存时间)的支持。

v0.4.10

  • 在分布式运行时中,更新最终检查点 -> 线程设置的 serde 逻辑。

v0.4.9

  • 添加了在搜索端点中按 ID 过滤搜索结果的支持,以实现更精确的查询。
  • 为助手端点包含了可配置的头,以增强请求自定义功能。
  • 实现了一个简单的 A2A 端点,支持代理卡检索、任务创建和任务管理。

v0.4.7

  • 停止包含 x-api-key 以增强安全性。

v0.4.6

  • 修复了连接流时的竞争条件,防止重复的启动事件。

v0.4.5

  • 确保检查点在队列之前和之后正确启动和停止,以提高关闭和启动效率。
  • 解决了一个问题,即当队列被取消时,工作程序会被过早取消。
  • 通过为 Redis 无法唤醒工作程序的情况添加回退,防止队列终止。

v0.4.4

  • 将无状态运行的自定义身份验证 thread_id 设置为 None,以防止冲突。
  • 通过添加唤醒工作程序和 Redis 锁实现,改进了 Go 运行时中的 Redis 信令,并更新了扫描逻辑。

v0.4.3

  • 为线程流添加了流模式,以改进数据处理。
  • 为运行添加了持久性参数,以提高数据持久性。

v0.4.2

  • 确保在创建运行之前初始化 pubsub,以防止因消息丢失而导致的错误。

v0.4.0

  • 在线程流中正确发出尝试消息。
  • 通过仅使用线程 ID 进行集群映射哈希,减少了集群冲突,并优先考虑 stream_thread_cache 的效率。
  • 引入了线程的流端点,以跟踪按顺序执行的所有运行的输出。
  • 使 PostgreSQL 中的过滤器查询构建器对格式错误的表达式更具鲁棒性,并改进了验证以防止潜在的安全风险。

v0.3.4

  • 为 Redis/PG 连接池添加了自定义 Prometheus 指标,并将队列服务器切换到 Uvicorn/Starlette 以改进监控。
  • 通过更正 shell 命令格式恢复了 Wolfi 镜像构建,并添加了一个用于使用 nginx 进行测试的 Makefile 目标。

v0.3.3

  • 为特定的 Redis 调用添加了超时,以防止工作程序保持活动状态。
  • 更新了 Golang 运行时,并为不支持的功能添加了 pytest 跳过,包括对将存储传递给节点和消息流的初始支持。
  • 引入了反向代理设置,用于提供组合的 Python 和 Node.js 图形,由 nginx 处理服务器路由,以促进 Node.js API 服务器的 Postgres/Redis 后端。

v0.3.1

  • 为池添加了语句超时,以防止长时间运行的查询。

v0.3.0

  • 设置了默认的 15 分钟语句超时,并实现了对长时间运行查询的监控,以确保系统效率。
  • 停止将可配置的运行值传播到线程配置,因为这可能会在后续运行中,如果您指定了 checkpoint_id,导致问题。这是一个**轻微的破坏性更改**,因为线程值将不再自动反映最新运行的联合配置。然而,我们认为这种行为更直观。
  • 通过处理 ops.py 中通道名称中的事件数据,增强了与旧工作程序版本的兼容性。

v0.2.137

  • 修复了未绑定局部变量错误,并改进了线程中断或错误的日志记录,以及类型更新。

v0.2.136

  • 添加了增强的日志记录以帮助调试元视图问题。
  • 将执行器和运行时升级到最新版本,以提高性能和稳定性。

v0.2.135

  • 确保异步协程得到正确 await,以防止潜在的运行时错误。

v0.2.134

  • 增强了搜索功能,通过允许用户选择特定的列进行查询结果,提高了性能。

v0.2.133

  • 为 cron、线程和助手添加了计数端点,以增强数据跟踪 (#1132)。
  • 改进了 SSH 功能,以提高可靠性和稳定性。
  • 将 @langchain/langgraph-api 更新到版本 0.0.59,以修复无效状态模式问题。

v0.2.132

  • 添加了 Go 语言镜像,以增强项目兼容性和功能。
  • 为 JS 工作程序打印内部 PID,以便通过 SIGUSR1 信号进行进程检查。
  • 解决了在尝试插入重复运行时发生的 run_pkey 错误。
  • 添加了 ty run 命令,并改用 uuid7 生成运行 ID。
  • 实现了初始 Golang 运行时,以扩展语言支持。

v0.2.131

  • 在 JS 中添加了对带有描述的 object agent spec 的支持。

v0.2.130

  • 添加了一个功能标志 (FF_RICH_THREADS=false) 以在运行创建时禁用线程更新,从而减少锁争用并简化线程状态处理。
  • 利用现有连接进行 aputapwrite 操作,以提高性能。
  • 改进了解码问题的错误处理,以增强数据处理的可靠性。
  • 将标头从日志中排除,以提高安全性,同时保持运行时功能。
  • 修复了阻止将插槽映射到单个节点的错误。
  • 添加了调试日志以跟踪 JS 部署中的节点执行,以改进问题诊断。
  • 将默认多任务策略更改为排队,通过消除在插入新运行时获取飞行中运行的需要来提高吞吐量。
  • 优化了 Runs.nextRuns.sweep 的数据库操作,以减少冗余查询并提高效率。
  • 通过跳过不必要的飞行中运行查询,提高了运行创建速度。

v0.2.129

  • 停止将内部 LGP 字段传递到上下文,以防止破坏类型检查。
  • 公开了内容位置标头,以确保 API 中正确的可恢复性行为。

v0.2.128

  • 确保助手中的 configurablecontext 之间同步更新,防止设置错误并支持更平滑的版本转换。

v0.2.127

  • 将未请求的流模式从可恢复流中排除,以优化功能。

v0.2.126

  • 使访问日志记录器标头可配置,以增强日志记录灵活性。
  • 对 Runs.stats 函数进行防抖处理,以减少昂贵调用的频率并提高性能。
  • 引入了对清扫器的防抖处理,以提高性能和效率 (#1147)。
  • 获取 TTL 清扫的锁,以防止在横向扩展操作期间数据库垃圾邮件。

v0.2.125

  • 更新了跟踪上下文副本以使用新格式,确保兼容性。

v0.2.123

  • 为队列副本添加了入口点,以改进部署管理。

v0.2.122

  • join 中利用持久中断状态,以确保在完成后续正确处理用户的中断状态。

v0.2.121

  • 将事件整合到一个通道,以防止竞争条件并优化启动性能。
  • 确保在队列工作程序上调用自定义生命周期以进行适当设置,并添加了测试。

v0.2.120

  • 恢复了运行的原始流行为,确保根据 stream_mode 设置一致地包含中断事件。
  • 优化了 Runs.next 查询,将平均执行时间从约 14.43 毫秒减少到约 2.42 毫秒,从而提高了性能。
  • 添加了对流模式“tasks”和“checkpoints”的支持,规范了 UI 命名空间,并升级了 @langchain/langgraph-api 以增强功能。

v0.2.117

  • 为线程添加了复合索引,以便使用基于所有者的身份验证进行更快搜索,并将默认排序顺序更新为 updated_at 以提高查询性能。

v0.2.116

  • 将历史检查点的默认数量从 10 个减少到 1 个,以优化性能。

v0.2.115

  • 优化了缓存重用,以提高应用程序性能和效率。

v0.2.113

  • 通过使用 X-Pagination-TotalX-Pagination-Next 更新响应头,改进了线程搜索分页,以实现更好的导航。

v0.2.112

  • 确保异步日志记录方法被 await,并添加了 linter 以防止将来发生。
  • 修复了 JavaScript 任务在 JS 图形中未正确填充的问题。

v0.2.111

  • 通过在连接打开时立即启动心跳,修复了 JS 图形流失败的问题。

v0.2.110

  • 将中断作为连接操作的默认值添加,同时保留流行为。

v0.2.109

  • 修复了当 config_type 未设置时缺少配置模式的问题,确保了更可靠的配置。

v0.2.108

  • 准备好与 LangGraph v0.6 兼容,支持新的上下文 API 和错误修复。

v0.2.107

  • 为身份验证过程实现了缓存,以提高性能和效率。
  • 通过合并计数和选择查询,优化了数据库性能。

v0.2.106

  • 使日志流可恢复,增强了可靠性并改善了重新连接时的用户体验。

v0.2.105

  • 添加了堆转储端点,用于将内存堆信息保存到文件。

v0.2.103

  • 使用正确的元数据端点来解决数据检索问题。

v0.2.102

  • 在 wait 方法中捕获中断事件,以保留 langgraph 0.5.0 的先前行为。
  • 在 JavaScript 环境中添加了对 SDK structlog 的支持,以增强日志记录功能。

v0.2.101

  • 更正了自托管部署的元数据端点。

v0.2.99

  • 通过添加内存缓存和更有效地处理 Redis 连接错误,改进了许可证检查。
  • 重新加载助手,以保留手动创建的助手,同时丢弃从配置文件中删除的助手。
  • 恢复了更改,以确保生成 UI 的 UI 命名空间是有效的 JavaScript 属性名称。
  • 确保生成的 UI 的 UI 命名空间是有效的 JavaScript 属性名称,从而改进了 API 合规性。
  • 增强了错误处理,为无法处理的实体请求返回 422 状态码。

v0.2.98

  • 为 langgraph 节点添加了上下文,以改进日志过滤和跟踪可见性。

v0.2.97

  • 改进了与主循环上 ckpt 摄取工作程序的互操作性,以防止任务调度问题。
  • 延迟队列工作程序启动,直到迁移完成后,以防止过早执行。
  • 通过添加特定的元数据并改进响应代码,增强了线程状态错误处理,以便在创建期间状态更新失败时更清晰。
  • 在检索线程状态时公开了中断 ID,以提高 API 透明度。

v0.2.96

  • 为可配置的头模式添加了回退机制,以更有效地处理排除/包含设置。

v0.2.95

  • 如果未来已经完成,则避免设置未来,以防止冗余操作。
  • 通过将 typing.TypedDict 切换到 typing_extensions.TypedDict 以适应 Python 3.12 以下的版本,解决了 CI 中的兼容性错误。

v0.2.94

  • 通过省略 langgraph 0.5 及以上版本的待定发送,提高了性能。
  • 改进了服务器启动日志,以便在设置 DD_API_KEY 环境变量时提供更清晰的警告。

v0.2.93

  • 删除了运行元数据的 GIN 索引,以提高性能。

v0.2.92

  • 启用了 Blob 和检查点的复制功能,提高了数据管理灵活性。

v0.2.91

  • 通过内联小值(null、数字、字符串等)减少了对 checkpoint_blobs 表的写入。这意味着我们不需要为未更新的通道存储额外的值。

v0.2.90

  • 通过节点本地后台排队改进检查点写入。

v0.2.89

  • 通过移除外键,将检查点写入与线程/运行状态解耦,并更新了日志记录器以防止与超时相关的故障。

v0.2.88

  • 删除了 run 表中 thread 的外键约束,以简化数据库模式。

v0.2.87

  • 添加了更详细的 Redis 工作程序信号日志,以改进调试。

v0.2.86

  • /mcp 端点中遵守工具描述,以符合预期功能。

v0.2.85

  • 添加了对 runs/waiton_disconnect 字段的支持,并包含了断开连接日志以进行更好的调试。

v0.2.84

  • 删除了不必要的状态更新以简化线程处理,并将版本更新到 0.2.84。

v0.2.83

  • 将可恢复流的默认生存时间减少到 2 分钟。
  • 增强了数据提交逻辑,根据许可证配置将数据发送到 Beacon 和 LangSmith 实例。
  • 当端点配置后,启用将自托管数据提交到 LangSmith 实例。

v0.2.82

  • 通过使用 join 实现锁,解决了后台运行中的竞争条件,确保了 CTE 之间的可靠执行。

v0.2.81

  • 通过减少初始等待时间,优化了运行流,以提高对旧运行或不存在运行的响应速度。

v0.2.80

  • 更正了 logger.ainfo() API 调用中的参数传递,以解决 TypeError。

v0.2.79

  • 通过更正 JSON 序列化以正确处理尾部斜杠,修复了远程图检查点中的 JsonDecodeError。
  • 引入了一个配置标志,用于全局禁用所有路由的 webhook。

v0.2.78

  • 为 webhook 调用添加了超时重试,以提高可靠性。
  • 添加了 HTTP 请求指标,包括请求计数和延迟直方图,以增强监控功能。

v0.2.77

  • 添加了 HTTP 指标,以改进性能监控。
  • 更改了 Redis 缓存分隔符,以减少与子图消息名称的冲突,并更新了缓存行为。

v0.2.76

  • 更新了 Redis 缓存分隔符,以防止与子图消息冲突。

v0.2.74

  • 在隔离循环中调度 webhook,以确保线程安全操作并防止 PYTHONASYNCIODEBUG=1 导致的错误。

v0.2.73

  • 修复了无限帧循环问题,并由于 structlog 的意外行为而删除了 dict_parser。
  • 在运行取消期间发生死锁时抛出 409 错误,以优雅地处理锁冲突。

v0.2.72

  • 确保与未来 langgraph 版本兼容。
  • 实现了 409 响应状态,以处理取消期间的死锁问题。

v0.2.71

  • 改进了日志记录,以提高日志类型的清晰度和详细程度。

v0.2.70

  • 改进了错误处理,以更好地区分和记录由用户引起的 TimeoutErrors 和内部运行超时。

v0.2.69

  • 为 cron API 添加了排序和分页,并更新了模式定义以提高准确性。

v0.2.66

  • 修复了使用 on_not_exist="create" 创建多个具有相同 thread_id 的运行时的 404 错误。

v0.2.65

  • 确保仅在必要时返回 assistant_versions 中的字段。
  • 确保内存中和 PostgreSQL 用户的统一数据类型,改进了内部身份验证处理。

v0.2.64

  • 为版本条目添加了描述,以提高清晰度。

v0.2.62

  • 改进了 JS Studio 中自定义身份验证的用户处理。
  • 为指标端点添加了 Prometheus 格式的运行统计信息,以进行更好的监控。
  • 为指标端点添加了 Prometheus 格式的运行统计信息。

v0.2.61

  • 设置了 Redis 连接的最大空闲时间,以防止不必要的开放连接。

v0.2.60

  • 增强了错误日志记录,以包含字典操作的跟踪详细信息。
  • 添加了 /metrics 端点,以公开队列工作程序指标进行监控。

v0.2.57

  • 从可重试异常中移除了 CancelledError,以允许本地中断,同时保持工作程序的可重试性。
  • 引入了中间件,以便在收到 SIGINT 后完成正在进行的请求后优雅地关闭服务器。
  • 减少了检查点中存储的元数据,仅包含必要信息。
  • 改进了连接运行中的错误处理,以便在存在错误时返回错误详细信息。

v0.2.56

  • 通过添加 SIGTERM 信号处理程序,提高了应用程序稳定性。

v0.2.55

  • 改进了队列入口点中的取消处理。
  • 改进了队列入口点中的取消处理。

v0.2.54

  • 增强了 LuaLock 超时错误消息,用于许可证验证。
  • 通过要求显式 ::text 转换并相应更新测试,修复了自定义身份验证中的 $contains 过滤器。
  • 确保项目和租户 ID 格式为 UUID 以保持一致性。

v0.2.53

  • 解决了计时问题,以确保队列仅在图形注册后才启动。
  • 通过在单个查询中设置线程和运行状态,提高了性能,并增强了检查点写入期间的错误处理。
  • 将默认后台宽限期减少到 3 分钟。

v0.2.52

  • 现在在省略图形时记录预期图形,以提高可追溯性。
  • 为可恢复流实现了一个生存时间 (TTL) 功能。
  • 通过添加唯一索引和优化行锁定,提高了查询效率和一致性。

v0.2.51

  • 通过将任务标记为准备好重试来处理 CancelledError,从而改进了工作程序进程中的错误管理。
  • 将 LG API 版本和请求 ID 添加到元数据和日志中,以进行更好的跟踪。
  • 将 LG API 版本和请求 ID 添加到元数据和日志中,以提高可追溯性。
  • 通过并发创建索引,提高了数据库性能。
  • 确保仅在设置 Redis 运行标记后才提交 postgres 写入,以防止竞争条件。
  • 通过在 thread_id/running 上添加唯一索引,优化行锁,并确保确定性运行选择,增强了查询效率和可靠性。
  • 通过确保仅在设置 Redis 运行标记后才进行 Postgres 更新,解决了竞争条件。

v0.2.46

  • 为每个操作引入了新的连接,同时在 Threads 状态 update()bulk() 命令中保留了事务特性。

v0.2.45

  • 通过整合跟踪上下文,增强了流功能。
  • 从 Crons.search 函数中删除了不必要的查询。
  • 解决了为多个 cron 作业调度下一次运行时连接重用问题。
  • 删除了 Crons.search 函数中不必要的查询,以提高效率。
  • 通过改进连接重用,解决了调度下一次 cron 运行的问题。

v0.2.44

  • 增强了工作程序逻辑,以便在达到 Redis 消息限制时在继续之前退出管道。
  • 引入了 Redis 消息大小上限,并提供了跳过大于 128 MB 消息的选项,以提高性能。
  • 确保管道始终正确关闭,以防止资源泄漏。

v0.2.43

  • 通过在元数据调用中省略日志并确保值流中的输出模式合规性,提高了性能。
  • 确保连接在使用后正确关闭。
  • 调整输出格式以严格遵守指定的模式。
  • 停止在元数据请求中发送内部日志,以提高隐私。

v0.2.42

  • 添加了时间戳以跟踪请求运行的开始和结束。
  • 将跟踪器信息添加到配置设置中。
  • 添加了对带有跟踪上下文的流的支持。

v0.2.41

  • 添加了锁定机制,以防止管道执行中的错误。

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.