Skip to main content
LangGraph Server 是一个用于创建和管理基于智能体的应用程序的API平台。它提供内置持久化、任务队列,并支持大规模部署、配置和运行助手(智能体工作流程)。此变更日志记录了LangGraph Server版本的所有显著更新、功能和修复。

v0.4.39

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

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

  • 改进了Redis锁的错误处理,通过记录 LockNotOwnedError 并将初始池迁移锁的超时时间延长至60秒。
  • 更新了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 pubsub连接。

v0.4.28

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

v0.4.27

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

v0.4.24

  • 添加了根据A2A规范返回A2A调用完整消息历史记录的功能。
  • 在Dockerfiles中添加了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

  • 确保即使在数据库连接问题时也能返回指标。
  • 优化更新流以防止不必要的传输数据。
  • hono 从版本 4.9.2 升级到 4.9.6,在 storage_postgres/langgraph-api-server 中以提高 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

  • 为无状态运行将自定义认证线程_id 设置为 None,以防止冲突。
  • 通过添加唤醒工作器和 Redis 锁实现,改进了 Go 运行时的 Redis 信号处理,并更新了清扫逻辑。

v0.4.3

  • 为线程流添加了流模式,以提升数据处理能力。
  • 为运行添加了耐用性参数,以提升数据持久性。

v0.4.2

  • 确保在创建运行之前初始化pubsub,以防止因缺少消息而出现错误。

v0.4.0

  • 在线程流中正确发出尝试消息。
  • 通过仅使用线程ID进行集群映射的哈希,并优先考虑流_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

  • 确保异步协程被正确等待,以防止潜在的运行时错误。

v0.2.134

  • 优化了搜索功能,通过允许用户选择特定列来查询结果,从而提高性能。

v0.2.133

  • 为定时任务、线程和助手添加了计数端点,以增强数据跟踪(#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

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

v0.2.130

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

v0.2.129

  • 停止将内部LGP字段传递到上下文中,以防止破坏类型检查。
  • 暴露了content-location头部,以确保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.43ms 降低到 ~2.42ms,提高了性能。
  • 添加了对流模式 “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

  • 确保同步日志方法被等待执行,并添加了代码检查工具以防止未来再次发生类似问题。
  • 修复了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

  • 在等待方法中捕获中断事件,以保留从 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.96

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

v0.2.95

v0.2.95

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

v0.2.94

v0.2.94

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

v0.2.93

v0.2.93

  • 移除了运行元数据的 GIN 索引以提升性能。

v0.2.92

v0.2.92

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

v0.2.91

v0.2.91

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

v0.2.90

v0.2.90

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

v0.2.89

v0.2.89

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

v0.2.88

v0.2.88

  • 已从 run 表中移除 thread 的外键约束,以简化数据库架构。

v0.2.87

v0.2.87

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

v0.2.86

/mcp 端点中尊敬的工具描述以符合预期功能。

v0.2.85

v0.2.85

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

v0.2.84

v0.2.84

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

v0.2.83

v0.2.83

  • 将可恢复流的默认生存时间缩短至2分钟。
  • 优化了数据提交逻辑,根据许可证配置将数据发送到Beacon和LangSmith实例。
  • 当配置了端点时,启用向LangSmith实例提交自托管数据的功能。

v0.2.82

v0.2.82

解决了后台运行中的竞态条件,通过使用join实现锁机制,确保跨CTE的可靠执行。

v0.2.81

v0.2.81版本

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

v0.2.80版本

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

v0.2.79版本

  • 修复了使用远程图进行检查点保存时的 JsonDecodeError,通过正确处理尾部斜杠来纠正 JSON 序列化。
  • 引入了一个配置标志,以在全球范围内禁用所有路由的 webhooks。

v0.2.78版本

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

v0.2.77

v0.2.77版本

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

v0.2.76

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

v0.2.74

  • 在隔离循环中安排定时webhooks,以确保线程安全操作并防止PYTHONASYNCIODEBUG=1时的错误。

v0.2.73

v0.2.73

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

v0.2.72版本

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

v0.2.71

v0.2.71

  • 改进了日志记录,以提供更清晰和详细的日志类型信息。

v0.2.70版本

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

v0.2.69

v0.2.69

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

v0.2.66

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

v0.2.65版本

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

v0.2.64

v0.2.64

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

v0.2.62

v0.2.62版本

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

v0.2.61

v0.2.61版本

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

v0.2.60版本

  • 增强了错误日志记录功能,包括字典操作的跟踪信息。
  • 添加了 /metrics 端点以暴露队列工作者的指标,用于监控。

v0.2.57

v0.2.57

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

v0.2.56

v0.2.56

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

v0.2.55版本

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

v0.2.54

v0.2.54

  • 优化了在许可证验证期间LuaLock超时时的错误信息。
  • 修复了自定义认证中的$contains过滤器,要求显式进行::text转换,并相应地更新了测试。
  • 确保项目和租户ID格式化为UUID,以保持一致性。

v0.2.53

v0.2.53

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

v0.2.52

v0.2.52

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

v0.2.51

v0.2.51

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

v0.2.46

v0.2.46

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

v0.2.45

v0.2.45

  • 通过整合跟踪上下文增强了流式传输功能。
  • 从 Crons.search 函数中移除了一个不必要的查询。
  • 解决了在安排多个定时任务的下一次运行时连接重用的问题。
  • 移除了 Crons.search 函数中的一个不必要的查询,以提高效率。
  • 通过改进连接重用解决了安排下一次定时任务的问题。

v0.2.44版本

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

v0.2.43

v0.2.43

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

v0.2.42

v0.2.42

  • 添加了时间戳以跟踪请求运行的开始和结束。
  • 在配置设置中添加了跟踪信息。
  • 添加了对具有跟踪上下文的流式传输的支持。

v0.2.41

v0.2.41版本

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