主题
LangSmith 会持久化 检查点(线程状态)和 跨线程记忆(存储项)。在 langgraph.json 中配置生存时间(TTL)策略,可以自动管理这些数据的生命周期,防止其无限累积。
配置检查点 TTL
检查点捕获对话线程的状态。设置 TTL 可确保旧的检查点和线程被自动删除。
在您的 langgraph.json 文件中添加 checkpointer.ttl 配置:
json
{
"dependencies": ["."],
"graphs": {
"agent": "./agent.py:graph"
},
"checkpointer": {
"ttl": {
"strategy": "delete",
"sweep_interval_minutes": 60,
"default_ttl": 43200
}
}
}strategy:指定过期时采取的操作。目前仅支持"delete",它会在过期时删除线程中的所有检查点。sweep_interval_minutes:定义系统检查过期检查点的频率(以分钟为单位)。default_ttl:设置线程(及相应检查点)的默认生存时间(以分钟为单位,例如 43200 分钟 = 30 天)。仅适用于此配置部署后创建的检查点;现有的检查点/线程不会更改。要清除旧数据,请显式删除它。
配置存储项 TTL
存储项允许跨线程数据持久化。为存储项配置 TTL 有助于通过移除陈旧数据来管理内存。
在您的 langgraph.json 文件中添加 store.ttl 配置:
json
{
"dependencies": ["."],
"graphs": {
"agent": "./agent.py:graph"
},
"store": {
"ttl": {
"refresh_on_read": true,
"sweep_interval_minutes": 120,
"default_ttl": 10080
}
}
}refresh_on_read:(可选,默认为true)如果为true,通过get或search访问项会重置其过期计时器。如果为false,TTL 仅在put时刷新。sweep_interval_minutes:(可选)定义系统检查过期项的频率(以分钟为单位)。如果省略,则不进行清理。default_ttl:(可选)设置存储项的默认生存时间(以分钟为单位,例如 10080 分钟 = 7 天)。仅适用于此配置部署后创建的项;现有项不会更改。如果需要清除旧项,请手动删除。如果省略,默认情况下项不会过期。
组合 TTL 配置
您可以在同一个 langgraph.json 文件中为检查点和存储项配置 TTL,从而为每种数据类型设置不同的策略。以下是一个示例:
json
{
"dependencies": ["."],
"graphs": {
"agent": "./agent.py:graph"
},
"checkpointer": {
"ttl": {
"strategy": "delete",
"sweep_interval_minutes": 60,
"default_ttl": 43200
}
},
"store": {
"ttl": {
"refresh_on_read": true,
"sweep_interval_minutes": 120,
"default_ttl": 10080
}
}
}配置每线程 TTL
您可以按线程应用 TTL 配置。
python
thread = await client.threads.create(
ttl={
"strategy": "delete",
"ttl": 43200 # 30 天,以分钟为单位
}
)运行时覆盖
langgraph.json 中的默认 store.ttl 设置可以在运行时被覆盖,方法是在 SDK 方法调用(如 get、put 和 search)中提供特定的 TTL 值。
部署流程
在 langgraph.json 中配置 TTL 后,部署或重启您的 LangGraph 应用程序以使更改生效。使用 langgraph dev 进行本地开发,或使用 langgraph up 进行 Docker 部署。
有关其他可配置选项的更多详细信息,请参阅 langgraph.json CLI 参考。