Agent Server 使用检查点后端持久化图状态。默认情况下,LangSmith 将检查点存储在 PostgreSQL 中,与其他服务器数据一起存储。您可以切换到 MongoDB 或提供自定义实现。
可用的后端
| 后端 | 存储 | 配置 | 使用场景 |
|---|---|---|---|
default | PostgreSQL | 无(内置) | 标准部署 |
mongo | MongoDB | langgraph.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 了解更多详情。
相关
- - 配置 TTL 用于检查点和存储项过期
- - LangGraph 中的持久化概念 数据平面
- - 架构 环境变量
- - 参考 文档