主题
使用 MongoDB Atlas 的短期记忆
使用 MongoDBSaver 和 MongoDB Atlas 持久化智能体的短期记忆。
短期记忆让你的智能体能够在单个线程或对话中记住之前的交互。本指南展示如何使用 MongoDB Atlas 作为持久化检查点器后端。
MongoDB 将对话状态作为文档存储在集合中,因此线程可以在进程重启和部署后恢复。
TIP
需要在跨对话之间记住信息?使用使用 MongoDB Atlas 的长期记忆来跨不同线程和会话存储并回忆数据。
设置
安装
bash
pip install -U langgraph-checkpoint-mongodb pymongobash
uv add langgraph-checkpoint-mongodb pymongo凭据
设置你的 Atlas 连接字符串:
python
import getpass
import os
if not os.environ.get("MONGODB_ATLAS_URI"):
os.environ["MONGODB_ATLAS_URI"] = getpass.getpass("Enter your MongoDB Atlas URI: ")如果你希望对模型调用进行自动追踪,请设置你的 LangSmith API 密钥:
python
if not os.environ.get("LANGSMITH_API_KEY"):
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
os.environ["LANGSMITH_TRACING"] = "true"用量
使用 from_conn_string 创建一个 MongoDBSaver 并将其传给 create_agent。上下文管理器在打开时会创建所需的集合和索引。你无需调用单独的 setup() 方法(不同于 Postgres 检查点器)。
python
import os
from langchain.agents import create_agent
from langgraph.checkpoint.mongodb import MongoDBSaver
def get_user_info() -> str:
"""Look up information about the current user."""
return "No user profile on file."
MONGODB_ATLAS_URI = os.environ["MONGODB_ATLAS_URI"]
with MongoDBSaver.from_conn_string(MONGODB_ATLAS_URI) as checkpointer:
agent = create_agent(
"anthropic:claude-sonnet-4-6",
tools=[get_user_info],
checkpointer=checkpointer,
)
thread_config = {"configurable": {"thread_id": "1"}}
response = agent.invoke(
{"messages": [{"role": "user", "content": "Hi! My name is Bob."}]},
thread_config,
)["messages"][-1].content
print(response)
response = agent.invoke(
{"messages": [{"role": "user", "content": "What's my name?"}]},
thread_config,
)["messages"][-1].content
print(response)MongoDBSaver 还公开了 aget 和 aput 等异步方法,供在异步图中使用。没有单独的 AsyncMongoDBSaver 类。
后续步骤
- 在短期记忆指南中,自定义智能体状态、裁剪或总结历史记录,以及从工具访问记忆。将同一个
MongoDBSaver作为checkpointer传入。 - 查看检查点器集成列表以了解其他后端。
- 如需跨线程持久化,请参阅使用 MongoDB Atlas 的长期记忆。