以编程方式使用文档

LangSmith 会持久化 检查点 (线程状态)和 跨线程记忆 (存储项)。您可以在 langgraph.json 中配置存活时间 (TTL) 策略,以自动管理此数据的生命周期,防止无限累积。

配置线程和检查点 TTL

检查点捕获对话线程的状态。设置 TTL 可确保自动删除旧的检查点和线程元数据。

添加 checkpointer.ttl 配置到您的 langgraph.json file:

{
  "dependencies": ["."],
  "graphs": {
    "agent": "./agent.py:graph"
  },
  "checkpointer": {
    "ttl": {
      "strategy": "delete",
      "sweep_interval_minutes": 60,
      "default_ttl": 43200
    }
  }
}
  • - 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 有助于通过删除过期数据来管理内存。

添加 store.ttl 配置到您的 langgraph.json file:

{
  "dependencies": ["."],
  "graphs": {
    "agent": "./agent.py:graph"
  },
  "store": {
    "ttl": {
      "refresh_on_read": true,
      "sweep_interval_minutes": 120,
      "default_ttl": 10080
    }
  }
}
  • - refresh_on_read:(可选,默认值 true) If true,通过 get or search 访问项目会重置其过期计时器。如果 false,TTL 仅在 put.
  • - sweep_interval_minutes时刷新:(可选)定义系统检查过期项目的频率(以分钟为单位)。如果省略,则不会进行清理。
  • - default_ttl:(可选)设置存储项的默认生命周期(以分钟为单位,例如 10080 分钟 = 7 天)。仅适用于此配置部署后创建的项目;现有项目不会更改。如果需要清除旧项目,请手动删除。如果省略,项目默认不会过期。

组合 TTL 配置

您可以在同一 langgraph.json 文件中为检查点和存储项配置 TTL,为每种数据类型设置不同的策略。示例如下:

{
  "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 配置.

thread = await client.threads.create(
    ttl={
        "strategy": "delete",
        "ttl": 43200  # 30 days in minutes
    }
)

运行时覆盖

默认值 store.ttl 中的设置来自 langgraph.json 可以通过在 SDK 方法调用中提供特定的 TTL 值在运行时覆盖 get, put,以及 search.

部署流程

在中配置 TTL 后 langgraph.json,部署或重启您的 LangGraph 应用程序以使更改生效。使用 langgraph dev 用于本地开发,或 langgraph up 用于 Docker 部署。

有关其他可配置选项的详细信息,请参阅 LangGraph CLI 参考页面.