LangGraph Redis 持久化与中间件

为 LangGraph 提供 Redis 检查点、键值存储和 Agent 缓存与记忆中间件。

Star 数
★ 240
最近更新
5 天前
License
MIT
主语言
Python

30 秒速览

运行形态
代码库 / SDK开发框架
可在哪里用
平台专用
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
PythonRedis 8.0+ 或包含 RedisJSON 和 RediSearch 的 Redis Stacklanggraph-checkpoint>=2.0.24redis>=5.2.1redisvl>=0.5.1网络访问
典型场景
构建 LangGraph 对话流程并需要按 thread 保存、恢复和枚举检查点的 Python 开发者。
不适合
  • 无法提供 RedisJSON 和 RediSearch 的团队
  • 不使用 LangGraph 或 LangChain Agent 的开发者

这个 Agent 能做什么,适合哪些场景?

这是一个供 Python 项目导入的 Redis 实现库,包含 LangGraph 检查点保存器、Redis Store 和 LangChain Agent 中间件。检查点保存器支持同步、异步和仅保留最新检查点的浅层实现;Store 支持键值存储及可选向量搜索。中间件可为 LangChain Agent 提供语义缓存、工具结果缓存、对话记忆和语义路由,并通过 langchain.agents.create_agent() 接入。数据保存在 Redis 中,首次使用检查点保存器或 Store 时需要调用 setup() 或对应的异步初始化方法来创建索引。该库要求 RedisJSON 与 RediSearch,并可在 Redis 8.0+ 中直接使用这两个模块;它自身不提供托管服务或独立 Agent 界面。

在应用代码中安装 langgraph-checkpoint-redis 并连接 Redis。用 RedisSaver 或 AsyncRedisSaver 写入、读取和列出 LangGraph 检查点,也可选用 ShallowRedisSaver 只保留最新检查点;用 RedisStore 或 AsyncRedisStore 保存键值数据,并按配置建立向量搜索索引。调用 setup()、asetup() 或 Store 的对应初始化方法创建索引。为 LangChain Agent 配置 SemanticCacheMiddleware、ToolResultCacheMiddleware、ConversationMemoryMiddleware 或 SemanticRouterMiddleware,再通过 create_agent() 组合运行。可配置 TTL、读取时刷新过期时间,以及工具缓存的可缓存性规则。

  1. 构建 LangGraph 对话流程并需要按 thread 保存、恢复和枚举检查点的 Python 开发者。
  2. 需要跨线程持久化键值记忆,并希望在 Redis 中按向量相似度检索内容的团队。
  3. 调用成本或延迟较高、希望按语义相似度缓存模型响应的 LangChain Agent 开发者。
  4. 有确定性工具调用或昂贵 API 计算、需要配置工具结果缓存规则的应用团队。
  5. 需要在对话上下文中检索并注入相关历史消息的 Agent 开发者。
  6. 需要通过 Redis TTL 自动清理检查点或 Store 条目,并可刷新过期时间的团队。

如何安装或部署这个 Agent?

需要 Python 项目、可连接的 Redis,以及 RedisJSON 和 RediSearch。README 指定 Python 依赖 redis>=5.2.1、redisvl>=0.5.1 和 langgraph-checkpoint>=2.0.24;Redis 8.0+ 默认包含所需模块,较低版本可使用 Redis Stack 或单独安装模块。安装包:

pip install langgraph-checkpoint-redis

README 未给出 Python 版本范围。若使用 Azure Managed Redis、Azure Cache for Redis 或 Redis Enterprise,文档建议使用标准 redis.Redis 客户端而不是 RedisCluster;具体连接参数取决于部署端点及 TLS 配置。

如何使用这个 Agent?

先初始化索引,再写入并读取检查点:

from langgraph.checkpoint.redis import RedisSaver

config = {"configurable": {"thread_id": "1", "checkpoint_ns": ""}}

with RedisSaver.from_conn_string("redis://localhost:6379") as saver:
    saver.setup()
    # 将 LangGraph 生成的 checkpoint、metadata 和新版本写入参数传入 put()
    saved_config = saver.put(config, checkpoint, metadata, new_versions)
    loaded_checkpoint = saver.get(config)

异步应用可导入 langgraph.checkpoint.redis.aio.AsyncRedisSaver,使用 asetup()、aput()、aget() 和 alist()。checkpoint、metadata 与 new_versions 应由 LangGraph 流程提供;README 展示了检查点结构,但没有提供一个完整可独立运行的最小 LangGraph 图示例。使用 Store 时,先创建 RedisStore,调用 setup(),再在应用中使用 Store;启用向量搜索或 TTL 时,在构造函数中传入对应配置。

这个 Agent 有哪些优点和局限?

优点
  • 同一库提供完整历史检查点、仅最新检查点的浅层实现,以及同步和异步接口。
  • Redis Store 支持可选向量搜索,并与检查点和中间件共享 Redis 部署边界。
  • TTL 可用于检查点和 Store,支持读取时刷新;不配置 TTL 时数据默认持久。
  • 工具缓存可通过工具元数据、易变参数名、忽略参数名和副作用名称前缀控制。
局限
  • 部署必须具备 RedisJSON 与 RediSearch;缺少模块会导致索引创建或检查点操作报错。
  • 应用需要自行运行 Python、提供 Redis 连接并在首次使用时初始化索引。
  • 文档中的 Azure 与 Redis Enterprise 配置要求使用标准 Redis 客户端,不能照搬 RedisCluster 示例。
  • README 没有说明托管服务、支持的 Python 版本范围或独立使用中间件时的完整部署套餐。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
LangGraph Redis 持久化与中间件 当前 62 · 存在缺口 代码库 / SDK免费 ★ 240 5 天前 Python —
Oracle AI Developer Hub 44 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 4.4k 1 天前 Jupyter Notebook —
Dynamiq 智能体编排框架 61 · 存在缺口 代码库 / SDK免费 + 模型费 ★ 1.1k 2 天前 Python OpenAI API
Lang-Agent 可视化 Agent 配置平台 50 · 缺口较多 网页应用免费 + 模型费 ★ 338 9 个月前 TypeScript —

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
62/ 100 五分制 3.1 / 5
信任安全 13/29
可靠稳定 6/14
适用触发 15/18
规范维护 14/18
有效结果 10/13
证据核验 4/8
查看各维度的扣分理由
信任安全13 / 29 · 2.2/5

代码库说明 Redis checkpointer、store 与 middleware 的数据写入、索引、TTL 和连接配置,标准客户端及 TLS 设置也有示例;但没有说明检查点或对话内容的加密、访问控制及敏感数据治理,TTL 移除示例还调用内部方法。初始化需显式 setup,但写入、缓存和过期操作没有逐次确认或通用回滚说明。依赖列出版本范围,未见安全审计或漏洞处置证据;发布者身份按要求视为未知,因此来源归属仅有有限支持。

可靠稳定6 / 14 · 2.1/5

README 提供同步、异步和浅存储示例,也注明 Redis 8 与较旧版本的模块要求及缺失模块会导致操作报错;不过 README 开头的依赖最低版本与 pyproject.toml 不一致(langgraph-checkpoint、redisvl),部分示例使用未在片段中定义的函数或变量。测试配置展示 Redis 容器及可选 API/Sentinel 测试,但没有执行证据;conftest 会忽略普通 Redis 启停、清理错误,失败反馈因此不完整。

适用触发15 / 18 · 4.2/5

材料覆盖持久化检查点、store、向量搜索、TTL、同步/异步调用、Azure/Enterprise 代理配置及多类 middleware,并给出何时缓存与何时跳过缓存的规则。边界说明仍不完整:缓存安全依赖工具元数据与名称/参数启发式,未细讲语义缓存误命中或不同部署能力限制。连接和 Redis 模块要求针对常见环境给出了明确配置。

规范维护14 / 18 · 3.9/5

README 按安装、checkpointer、store、middleware、示例和实现细节组织,安装命令、前置模块、setup 步骤及多种示例均有说明;LICENSE 和 pyproject 均标示 MIT。名称在不同模块中有较一致的同步/异步前缀,但文档所列依赖版本与项目配置不一致。提供了若干限制和配置注意事项,但没有变更日志或清晰的维护责任/更新承诺;作者字段提供组织联系邮箱,不能据此确认维护安排。

有效结果10 / 13 · 3.8/5

该库把 Redis 持久化、向量检索、缓存、语义记忆和路由接入 LangGraph/LangChain,展示了相较基础 checkpointer 的具体扩展价值。示例覆盖面广且配置可复用,但部分示例包含未定义的辅助函数或变量,降低了直接复制可用性;成本、运维负担和缓存质量的量化依据有限。

证据核验4 / 8 · 2.5/5

关键能力、Redis 模块要求、TTL 行为和缓存决策规则在 README 中有具体描述,部分依赖与许可可在 pyproject 和 LICENSE 交叉核对。可见材料没有实现源文件或实际测试结果来逐项佐证 README 行为,徽章也只是声明而非本次评审的验证;文档对环境要求和实现行为有所区分,但推断与已验证事实的标记不够系统。

风险与缓解建议
  • 使用前核对 README 与 pyproject.toml 的依赖最低版本差异,并按目标 Redis 部署确认 RedisJSON、RediSearch、TLS 和代理要求。
  • 把检查点、对话和缓存视为可能包含敏感数据;材料未说明加密或访问控制策略。TTL 默认关闭,示例中的 TTL 移除调用内部方法。
  • 对 middleware 缓存规则和语义相似度行为进行部署侧验证;工具名称及元数据规则不能保证适用于所有副作用或时效性数据。
证据充分度:低 评估于 2026年10月16日 审查版本 392a2df51d03
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. 0.5.2
    发布说明摘录
    Changes - chore(release): bumped release version to 0.5.2 (#205) - fix(checkpoint): retry best-effort TTL application to prevent orphaned search index entries (#203) - chore(deps-dev): bump cryptography from 49.0.0 to 50.0.0 (#204) 🐛 Bug Fixes - fix(checkpoint): preserve DeltaChannel snapshots in Redis JSON (#202) Contributors We'd like to thank all the contributors who worked on this release! @LiamCollick, @dependabot, @dependabot[bot] and @limjoobin
    在 GitHub 查看 ↗
  2. 0.5.1
    发布说明摘录
    Changes - chore(deps-dev): bump transformers from 5.0.0rc3 to 5.5.0 (#200) - chore(release): bumped release version to 0.5.1 (#199) 🐛 Bug Fixes - Fix nested set deserialization in JsonPlusRedisSerializer (#198) - fix: escape RediSearch-special characters in store delete queries (#197) Contributors We'd like to thank all the contributors who worked on this release! @dependabot, @dependabot[bot], @jerry153fish and @limjoobin
    在 GitHub 查看 ↗
  3. v0.5.0 0.5.0
    发布说明摘录
    Changes - chore(release): bumped release version to 0.5.0 (#195) - Use PyPI Trusted Publishing for publishing releases (#194) - Fix: Removed dependency on private constructor helper (#193) - Fix latest checkpoint pointers for custom prefixes (#188) 🐛 Bug Fixes - fix(checkpointer): apply ttl to minimal checkpoint for cancellation (#190) - fix(checkpoint): base64-decode pending send blobs before deserialization (#192) Contributors We'd like to thank all the contributors who worked on this release! @haseeb-m4235, @limjoobin and @zettlt2
    在 GitHub 查看 ↗

常见问题

使用 Redis 8.0 以上版本还需要单独安装 RedisJSON 和 RediSearch 吗?
README 说明 Redis 8.0+ 默认将 RedisJSON 与 RediSearch 包含在核心发行版中;低于 8.0 时需要 Redis Stack 或单独安装这两个模块。
检查点或 Store 数据会自动过期吗?
不会,默认不设置 TTL,数据保持持久。可配置 default_ttl,并通过 refresh_on_read 在读取时刷新过期时间。
可以只保存每个线程的最新检查点吗?
可以。使用 ShallowRedisSaver,异步版本为 AsyncShallowRedisSaver;它们只保存最新检查点。
能否在 Azure Managed Redis 或 Redis Enterprise 上使用?
README 提供了这些部署的配置说明,并建议使用标准 redis.Redis 客户端,不要使用 RedisCluster。相关服务通常要求 TLS,模块也需在创建时选用。
这个库包含模型、托管 Agent 服务或独立界面吗?
README 描述的是 Redis 持久化组件和 LangChain Agent 中间件。模型由应用通过 LangChain Agent 配置;文档没有说明本库提供托管服务或独立 Agent 界面。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents