[langchain快照 checkpointer]
简要回答
- 是用 InMemorySaver 时,快照存在内存里,不落盘。
- 你可以直接调用 get_state 或 get_state_history 查看快照内容;快照的核心是各“通道”的值,其中默认最重要的是 messages。
怎么查看
- 在完成一次 agent.invoke 后,立即用同一个线程配置查询快照:
config = {"configurable": {"thread_id": "demo"}}
agent.invoke({"messages": [{"role": "user", "content": "你好"}]}, config=config)
snap = agent.get_state(config)
print(snap.values.keys())
msgs = snap.values.get("messages", [])
for m in msgs:
print(type(m).__name__, getattr(m, "content", getattr(m, "text", "")))
print(snap.metadata)
print(snap.next)
print(snap.created_at)
- 查看历史快照:
for s in agent.get_state_history(config):
print(s.created_at, list(s.values.keys()))
你会看到
- values 里包含 messages(对话的消息对象序列),以及框架定义的其它通道(如果有)。
- metadata 里有本步写入信息、调度信息等。
- 如果你把 user_info 以 ToolMessage 的 content(例如 JSON)写入 messages,那么快照里就会包含它;如果只写到外部 SQLite 而未同步到 messages,快照不包含它。

浙公网安备 33010602011771号