v0.5.4
- 实现了带有
OPT_REPLACE_SURROGATES的ormsgpack,并更新以兼容影响自定义身份验证依赖项的最新 FastAPI 版本。
v0.5.2
- 在启动期间为 PostgreSQL 连接添加了重试逻辑,以提高部署可靠性,并改进了错误日志记录以便于调试。
v0.5.1
- 解决了持久化功能与 LangChain.js 的 createAgent 功能无法正常工作的问题。
- 通过改进数据库连接池和 gRPC 客户端重用,优化了助手 CRUD 性能,减少了大型负载的延迟。
v0.5.0
- 更新了依赖项要求以支持最新的安全补丁,移除了序列化的 JSON 回退,并调整了反序列化行为以增强安全性。
v0.4.47
- 使用 TypeAdapter 验证并自动纠正环境配置类型。
- 添加了对 LangChain.js 和 LangGraph.js 1.x 版本的支持,确保兼容性。
- 将 hono 库从版本 4.9.7 更新到 4.10.3,解决了 CORS 中间件安全问题并增强了 JWT 受众验证。
- 引入了模块化基准测试框架,添加了对助手和流的支持,并改进了现有的斜坡基准测试方法。
- 为核心线程 CRUD 操作引入了 gRPC API,并更新了 Python 和 TypeScript 客户端。
- 将
hono包从版本 4.9.7 更新到 4.10.2,包括 JWT 受众验证的安全改进。 - 将
hono依赖项从版本 4.9.7 更新到 4.10.3,以修复安全问题并改进 CORS 中间件处理。 - 为线程引入了基本的 CRUD 操作,包括创建、获取、修补、删除、搜索、计数和复制,支持 Go、gRPC 服务器以及 Python 和 TypeScript 客户端。
v0.4.46
- 添加了从子图事件启用消息流式传输的选项,使用户能够更好地控制事件通知。
v0.4.45
- 实现了对自定义路由的授权支持,由
enable_custom_route_auth标志控制。 - 将默认跟踪设置为关闭,以提高性能并简化调试。
v0.4.44
- 为许可证相关密钥使用 Redis 密钥前缀,以防止与现有设置冲突。
v0.4.43
- 实现了 Redis 连接的健康检查,以防止它们空闲超时。
v0.4.40
- 通过解决竞争条件并添加测试以确保一致行为,防止可恢复运行和线程流中的重复消息。
- 确保在确认 pubsub 订阅之前不会启动运行,以防止启动时丢失消息。
- 将平台从 langgraph 重命名以提高清晰度和品牌识别。
- 使用后重置 PostgreSQL 连接以防止锁定保持,并改进了事务问题的错误报告。
v0.4.39
- 将
hono从版本 4.7.6 升级到 4.9.7,解决了与bodyLimit中间件相关的安全问题。 - 允许自定义基本身份验证 URL 以增强灵活性。
- 使用 ‘uv’ 将 ‘ty’ 依赖项固定到稳定版本,以防止意外的 lint 失败。
v0.4.38
- 将
LANGSMITH_API_KEY替换为LANGSMITH_CONTROL_PLANE_API_KEY以支持需要许可证验证的混合部署。 - 引入了自托管日志摄取支持,可通过
SELF_HOSTED_LOGS_ENABLED和SELF_HOSTED_LOGS_ENDPOINT环境变量进行配置。
v0.4.37
- 复制线程需要创建权限,以确保适当的授权。
v0.4.36
- 改进了错误处理,并在扫描循环中添加了延迟,以便在 Redis 停机或取消错误期间更平稳地运行。
- 更新了队列入口点,以便在启用
FF_USE_CORE_API时启动 core-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 持久化层,支持使用 PostgreSQL 的 GRPC 服务器操作并增强了可配置性。
- 在发生超时时将状态设置为错误,以改进错误处理。
v0.4.30
- 添加了对使用
stream_mode="events"时的上下文支持,并为此功能包含了新测试。 - 添加了使用
$LANGGRAPH_SERVER_PORT覆盖服务器端口的支持,并移除了不必要的 DockerfileARG以简化配置。 - 将授权过滤器应用于线程删除 CTE 中的所有表引用,以增强安全性。
- 引入了自托管指标摄取功能,当设置相应的环境变量时,允许每分钟将指标发送到 OTLP 收集器。
- 确保
set_latest函数正确更新版本的名称和描述。
v0.4.29
- 确保在所有情况下正确清理 redis pubsub 连接。
v0.4.28
- 为队列指标服务器添加了格式参数,以增强自定义功能。
- 更正了 CLI 中
MOUNT_PREFIX环境变量的使用,以与文档保持一致并防止混淆。 - 添加了在没有订阅者时记录警告的功能,可通过功能标志控制。
- 在 Node 镜像中添加了对 Bookworm 和 Bullseye 发行版的支持。
- 通过将执行器定义从
langgraph-go存储库移动来整合执行器定义,提高了可管理性,并更新了服务器迁移的检查点设置方法。 - 确保为 a2a 发送正确的响应头,提高兼容性和通信。
- 整合了 PostgreSQL 检查点实现,为
/core目录添加了 CI 测试,修复了 RemoteStore 测试错误,并通过事务增强了 Store 实现。 - 将 PostgreSQL 迁移添加到队列服务器,以防止在执行迁移之前添加图时出错。
v0.4.27
- 用
redis-py替换了coredis,以在高流量负载下改善连接处理和可靠性。
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
- 确保即使在遇到数据库连接问题时也返回指标。
- 优化了更新流以防止不必要的数据传输。
- 在
storage_postgres/langgraph-api-server中将hono从版本 4.9.2 升级到 4.9.6,以改进 URL 路径解析安全性。 - 为 LangSmith 访问调用添加了重试和内存缓存,以提高对单个故障的恢复能力。
v0.4.11
- 在线程更新中添加了对 TTL(生存时间)的支持。
v0.4.10
- 在分布式运行时中,更新最终检查点 -> 线程设置的序列化/反序列化逻辑。
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
- 确保正确等待异步协程,以防止潜在的运行时错误。
v0.2.134
- 通过允许用户为查询结果选择特定列,增强了搜索功能以提高性能。
v0.2.133
- 为 cron、线程和助手添加了计数端点,以增强数据跟踪 (#1132)。
- 改进了 SSH 功能,以提高可靠性和稳定性。
- 将 @langchain/langgraph-api 更新到版本 0.0.59 以修复无效状态模式问题。
v0.2.132
- 添加了 Go 语言镜像,以增强项目兼容性和功能。
- 打印 JS 工作线程的内部 PIDs,以便通过 SIGUSR1 信号进行进程检查。
- 解决了尝试插入重复运行时出现的
run_pkey错误。 - 添加了
ty run命令,并切换到使用 uuid7 生成运行 ID。 - 实现了初始 Golang 运行时以扩展语言支持。
v0.2.131
- 在 JS 中添加了对带描述的
object agent spec的支持。
v0.2.130
- 添加了功能标志 (FF_RICH_THREADS=false) 以在运行创建时禁用线程更新,减少锁争用并简化线程状态处理。
- 利用现有连接进行
aput和apwrite操作以提高性能。 - 改进了解码问题的错误处理,以增强数据处理可靠性。
- 从日志中排除标头以提高安全性,同时保持运行时功能。
- 修复了阻止将插槽映射到单个节点的错误。
- 添加了调试日志以跟踪 JS 部署中的节点执行,以改进问题诊断。
- 将默认多任务策略更改为入队,通过消除在新运行插入期间获取进行中运行的需要来提高吞吐量。
- 优化了
Runs.next和Runs.sweep的数据库操作,以减少冗余查询并提高效率。 - 通过跳过不必要的进行中运行查询,提高了运行创建速度。
v0.2.129
- 停止将内部 LGP 字段传递给上下文,以防止破坏类型检查。
- 公开了 content-location 标头,以确保 API 中的正确可恢复行为。
v0.2.128
- 确保助手中的
configurable和context之间的同步更新,防止设置错误并支持更平滑的版本转换。
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-Total和X-Pagination-Next以更好地导航。
v0.2.112
- 确保同步日志记录方法被等待,并添加了 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
- 添加了 heapdump 端点,以将内存堆信息保存到文件。
v0.2.103
- 使用正确的元数据端点来解决数据检索问题。
v0.2.102
- Captured interrupt events in the wait method to preserve previous behavior from langgraph 0.5.0.
- Added support for SDK structlog in the JavaScript environment for enhanced logging capabilities.
v0.2.101
- Corrected the metadata endpoint for self-hosted deployments.
v0.2.99
- Improved license check by adding an in-memory cache and handling Redis connection errors more effectively.
- Reloaded assistants to preserve manually created ones while discarding those removed from the configuration file.
- Reverted changes to ensure the UI namespace for gen UI is a valid JavaScript property name.
- Ensured that the UI namespace for generated UI is a valid JavaScript property name, improving API compliance.
- Enhanced error handling to return a 422 status code for unprocessable entity requests.
v0.2.98
- Added context to langgraph nodes to improve log filtering and trace visibility.
v0.2.97
- Improved interoperability with the ckpt ingestion worker on the main loop to prevent task scheduling issues.
- Delayed queue worker startup until after migrations are completed to prevent premature execution.
- Enhanced thread state error handling by adding specific metadata and improved response codes for better clarity when state updates fail during creation.
- Exposed the interrupt ID when retrieving the thread state to improve API transparency.
v0.2.96
- Added a fallback mechanism for configurable header patterns to handle exclude/include settings more effectively.
v0.2.95
- Avoided setting the future if it is already done to prevent redundant operations.
- Resolved compatibility errors in CI by switching from
typing.TypedDicttotyping_extensions.TypedDictfor Python versions below 3.12.
v0.2.94
- Improved performance by omitting pending sends for langgraph versions 0.5 and above.
- Improved server startup logs to provide clearer warnings when the DD_API_KEY environment variable is set.
v0.2.93
- Removed the GIN index for run metadata to improve performance.
v0.2.92
- Enabled copying functionality for blobs and checkpoints, improving data management flexibility.
v0.2.91
- Reduced writes to the
checkpoint_blobstable by inlining small values (null, numeric, str, etc.). This means we don’t need to store extra values for channels that haven’t been updated.
v0.2.90
- Improve checkpoint writes via node-local background queueing.
v0.2.89
- Decoupled checkpoint writing from thread/run state by removing foreign keys and updated logger to prevent timeout-related failures.
v0.2.88
- Removed the foreign key constraint for
threadin theruntable to simplify database schema.
v0.2.87
- Added more detailed logs for Redis worker signaling to improve debugging.
v0.2.86
- Honored tool descriptions in the
/mcpendpoint to align with expected functionality.
v0.2.85
- Added support for the
on_disconnectfield toruns/waitand included disconnect logs for better debugging.
v0.2.84
- Removed unnecessary status updates to streamline thread handling and updated version to 0.2.84.
v0.2.83
- Reduced the default time-to-live for resumable streams to 2 minutes.
- Enhanced data submission logic to send data to both Beacon and LangSmith instance based on license configuration.
- Enabled submission of self-hosted data to a LangSmith instance when the endpoint is configured.
v0.2.82
- Addressed a race condition in background runs by implementing a lock using join, ensuring reliable execution across CTEs.
v0.2.81
- Optimized run streams by reducing initial wait time to improve responsiveness for older or non-existent runs.
v0.2.80
- Corrected parameter passing in the
logger.ainfo()API call to resolve a TypeError.
v0.2.79
- Fixed a JsonDecodeError in checkpointing with remote graph by correcting JSON serialization to handle trailing slashes properly.
- Introduced a configuration flag to disable webhooks globally across all routes.
v0.2.78
- Added timeout retries to webhook calls to improve reliability.
- Added HTTP request metrics, including a request count and latency histogram, for enhanced monitoring capabilities.
v0.2.77
- Added HTTP metrics to improve performance monitoring.
- Changed the Redis cache delimiter to reduce conflicts with subgraph message names and updated caching behavior.
v0.2.76
- Updated Redis cache delimiter to prevent conflicts with subgraph messages.
v0.2.74
- Scheduled webhooks in an isolated loop to ensure thread-safe operations and prevent errors with PYTHONASYNCIODEBUG=1.
v0.2.73
- Fixed an infinite frame loop issue and removed the dict_parser due to structlog’s unexpected behavior.
- Throw a 409 error on deadlock occurrence during run cancellations to handle lock conflicts gracefully.
v0.2.72
- Ensured compatibility with future langgraph versions.
- Implemented a 409 response status to handle deadlock issues during cancellation.
v0.2.71
- Improved logging for better clarity and detail regarding log types.
v0.2.70
- Improved error handling to better distinguish and log TimeoutErrors caused by users from internal run timeouts.
v0.2.69
- Added sorting and pagination to the crons API and updated schema definitions for improved accuracy.
v0.2.66
- Fixed a 404 error when creating multiple runs with the same thread_id using
on_not_exist="create".
v0.2.65
- Ensured that only fields from
assistant_versionsare returned when necessary. - Ensured consistent data types for in-memory and PostgreSQL users, improving internal authentication handling.
v0.2.64
- Added descriptions to version entries for better clarity.
v0.2.62
- Improved user handling for custom authentication in the JS Studio.
- Added Prometheus-format run statistics to the metrics endpoint for better monitoring.
- Added run statistics in Prometheus format to the metrics endpoint.
v0.2.61
- Set a maximum idle time for Redis connections to prevent unnecessary open connections.
v0.2.60
- Enhanced error logging to include traceback details for dictionary operations.
- Added a
/metricsendpoint to expose queue worker metrics for monitoring.
v0.2.57
- Removed CancelledError from retriable exceptions to allow local interrupts while maintaining retriability for workers.
- Introduced middleware to gracefully shut down the server after completing in-flight requests upon receiving a SIGINT.
- Reduced metadata stored in checkpoint to only include necessary information.
- Improved error handling in join runs to return error details when present.
v0.2.56
- Improved application stability by adding a handler for SIGTERM signals.
v0.2.55
- Improved the handling of cancellations in the queue entrypoint.
- Improved cancellation handling in the queue entry point.
v0.2.54
- Enhanced error message for LuaLock timeout during license validation.
- Fixed the $contains filter in custom auth by requiring an explicit ::text cast and updated tests accordingly.
- Ensured project and tenant IDs are formatted as UUIDs for consistency.
v0.2.53
- Resolved a timing issue to ensure the queue starts only after the graph is registered.
- Improved performance by setting thread and run status in a single query and enhanced error handling during checkpoint writes.
- Reduced the default background grace period to 3 minutes.
v0.2.52
- Now logging expected graphs when one is omitted to improve traceability.
- Implemented a time-to-live (TTL) feature for resumable streams.
- Improved query efficiency and consistency by adding a unique index and optimizing row locking.
v0.2.51
- Handled
CancelledErrorby marking tasks as ready to retry, improving error management in worker processes. - Added LG API version and request ID to metadata and logs for better tracking.
- Added LG API version and request ID to metadata and logs to improve traceability.
- Improved database performance by creating indexes concurrently.
- Ensured postgres write is committed only after the Redis running marker is set to prevent race conditions.
- Enhanced query efficiency and reliability by adding a unique index on thread_id/running, optimizing row locks, and ensuring deterministic run selection.
- Resolved a race condition by ensuring Postgres updates only occur after the Redis running marker is set.
v0.2.46
- Introduced a new connection for each operation while preserving transaction characteristics in Threads state
update()andbulk()commands.
v0.2.45
- Enhanced streaming feature by incorporating tracing contexts.
- Removed an unnecessary query from the Crons.search function.
- Resolved connection reuse issue when scheduling next run for multiple cron jobs.
- Removed an unnecessary query in the Crons.search function to improve efficiency.
- Resolved an issue with scheduling the next cron run by improving connection reuse.
v0.2.44
- Enhanced the worker logic to exit the pipeline before continuing when the Redis message limit is reached.
- Introduced a ceiling for Redis message size with an option to skip messages larger than 128 MB for improved performance.
- Ensured the pipeline always closes properly to prevent resource leaks.
v0.2.43
- Improved performance by omitting logs in metadata calls and ensuring output schema compliance in value streaming.
- Ensured the connection is properly closed after use.
- Aligned output format to strictly adhere to the specified schema.
- Stopped sending internal logs in metadata requests to improve privacy.
v0.2.42
- Added timestamps to track the start and end of a request’s run.
- Added tracer information to the configuration settings.
- Added support for streaming with tracing contexts.
v0.2.41
- Added locking mechanism to prevent errors in pipelined executions.