langgraph.json 中配置生存时间(Time-to-Live,TTL)策略,自动管理这些数据的生命周期,避免数据无限累积。
配置线程和检查点 TTL
检查点会捕获对话线程的状态。设置 TTL 后,系统会自动删除过期的检查点和线程元数据。 在langgraph.json 文件中添加 checkpointer.ttl 配置:
strategy:指定数据过期时执行的操作。默认为"delete"。"delete":TTL 到期时删除整个线程,包括所有关联的运行和检查点数据。"keep_latest":保留线程和最新检查点,但删除后续运行不再需要的旧检查点数据。
sweep_interval_minutes:定义系统检查过期检查点的频率,单位为分钟。默认为 5 分钟。default_ttl:设置线程(及对应检查点)的默认生命周期,单位为分钟(例如,43200 分钟 = 30 天)。如果未设置默认 TTL,检查点默认不会过期。sweep_limit: (Agent server v0.8+)设置清理器单次迭代处理的线程数量。默认为10000(Agent server v0.12+)或1000(Agent server v0.8-0.11)。
TTL 会在线程和检查点创建时应用,不会应用于已有的线程和检查点。如需清除旧数据,请显式删除。
配置存储项 TTL
存储项支持跨线程数据持久化。为存储项配置 TTL 可以通过删除过期数据来管理记忆。 在langgraph.json 文件中添加 store.ttl 配置:
refresh_on_read:(可选,默认为true)如果为true,通过get或search访问存储项时会重置其过期计时器。如果为false,TTL 只会在put时刷新。sweep_interval_minutes:(可选)定义系统检查过期存储项的频率,单位为分钟。如果省略,则不会执行清理。default_ttl:(可选)设置存储项的默认生命周期,单位为分钟(例如,10080 分钟 = 7 天)。此配置仅适用于部署该配置后创建的存储项;已有存储项不会发生变化。如果需要清除旧存储项,请手动删除。如果省略,存储项默认不会过期。
组合 TTL 配置
你可以在同一个langgraph.json 文件中为检查点和存储项配置 TTL,从而为每种数据类型设置不同的策略。下面是一个示例:
配置每个线程的 TTL
你可以为每个线程配置 TTL。线程级 TTL 也会删除所有关联的检查点。因此,你可以设置线程级 TTL,而无需另外为检查点设置 TTL。
运行时覆盖
可以在get、put 和 search 等 SDK 方法调用中提供特定的 TTL 值,从而在运行时覆盖 langgraph.json 中默认的 store.ttl 设置。
部署流程
在langgraph.json 中配置 TTL 后,部署或重启 LangGraph 应用,使更改生效。本地开发时使用 langgraph dev,使用 Docker 部署时使用 langgraph up。
有关其他可配置选项的详细信息,请参阅 LangGraph CLI 参考页面。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

