以编程方式使用文档

Agent Server 使用检查点后端持久化图状态。默认情况下,LangSmith 将检查点存储在 PostgreSQL 中,与其他服务器数据一起存储。您可以切换到 MongoDB 或提供自定义实现。

可用的后端

后端存储配置使用场景
defaultPostgreSQL无(内置)标准部署
mongoMongoDBlanggraph.json or LS_DEFAULT_CHECKPOINTER_BACKEND 环境变量拥有现有 MongoDB 基础设施的团队
custom用户提供langgraph.json自定义存储后端(参见 自定义检查点)

默认(PostgreSQL)

PostgreSQL 是默认的检查点后端。无需配置。若要使用自定义 PostgreSQL 实例,请设置 POSTGRES_URI_CUSTOM 环境变量。

设置 MongoDB 检查点

前提条件

  • - MongoDB **副本集** (独立部署 mongod 不受支持)。这可以是自管理的副本集, mongos 路由器,或 MongoDB Atlas 等托管服务。
  • - 连接 URI 必须在路径中包含数据库名称(例如, /langgraph).

选择后端

将后端设置为 "mongo" 使用以下方法之一:

**In langgraph.json** (应用级——与您的应用程序代码捆绑):

{
  "dependencies": ["."],
  "graphs": {
    "agent": "./agent.py:graph"
  },
  "checkpointer": {
    "backend": "mongo",
    "ttl": {
      "strategy": "delete",
      "default_ttl": 43200,
      "sweep_interval_minutes": 10
    }
  }
}

通过环境变量 (平台级——供管理独立部署的运营商使用):

LS_DEFAULT_CHECKPOINTER_BACKEND=mongo

环境变量为未指定 langgraph.json. If langgraph.json 包含 backend 值的 agent servers 设置默认后端。

提供 MongoDB URI

在部署时设置 LS_MONGODB_URI 环境变量:

LS_MONGODB_URI="mongodb://user:password@host:27017/langgraph?replicaSet=rs0"

连接 URI 要求

URI 必须:

  • - 指向副本集成员或 mongos 路由器
  • - 在路径中包含目标数据库名称

有效示例:

mongodb://user:password@host:27017/langgraph?replicaSet=rs0
mongodb://host1:27017,host2:27017,host3:27017/mydb?replicaSet=prod-rs
mongodb+srv://user:password@cluster.example.net/langgraph

按环境部署

Standalone (Kubernetes)

langgraph-cloud Helm chart (v0.2.6+)内置 MongoDB 支持。在 values 文件中启用:

捆绑版 MongoDB (开发和测试):

  mongo:
    enabled: true
    resources:
      requests:
        cpu: 500m
        memory: 1Gi
    persistence:
      size: 8Gi
  

该 chart 部署单节点 MongoDB 副本集并自动配置服务器使用它。

外部 MongoDB (生产环境):

  mongo:
    enabled: true
    external:
      enabled: true
      connectionUrl: "mongodb://user:password@mongo.example.net:27017/langgraph?replicaSet=rs0"
  

或引用现有的 Kubernetes secret:

  mongo:
    enabled: true
    external:
      enabled: true
      existingSecretName: "my-mongo-secret"
  

密钥必须包含 mongodb_connection_url key.

Standalone (Docker)

如果你的 langgraph.json 已设置 backend to "mongo",你只需提供 URI。否则,请设置两个环境变量:

  docker run \
      --env-file .env \
      -p 8123:8000 \
      -e REDIS_URI="redis://redis:6379" \
      -e DATABASE_URI="postgres://postgres:postgres@postgres:5432/postgres" \
      -e LS_DEFAULT_CHECKPOINTER_BACKEND=mongo \
      -e LS_MONGODB_URI="mongodb://mongo:27017/langgraph?replicaSet=rs0" \
      -e LANGSMITH_API_KEY="..." \
      my-image
  

请参阅 独立服务器指南 ,获取包含 MongoDB 的完整 Docker Compose 示例。

Cloud

设置 backend to "mongo" 在您的 langgraph.json中,然后添加 LS_MONGODB_URI 作为环境变量添加到 LangSmith UI 中的部署设置中。

你的 MongoDB 实例必须能够从云数据平面访问。像 MongoDB Atlas 这样的托管服务非常适合此用途。

非检查点数据仍会自动配置 PostgreSQL。

自定义检查pointer

要使用 PostgreSQL 或 MongoDB 以外的存储后端,请实现自定义 BaseCheckpointSaver。请参阅 添加自定义检查pointer 了解更多详情。

相关