记忆与检查点
LangGraph 的 State 与 Checkpointer 让 Agent 具备跨轮次记忆与人机中断恢复能力。
State 与 messages
create_agent 的默认 State 包含 messages 序列(对话历史)。每次 invoke 传入新用户消息,Checkpointer 会把历史合并进 State。
无 checkpointer 时,每次 invoke 独立,无跨轮记忆。
thread_id
同一 thread_id 共享 checkpoint;不同用户/会话应使用不同 id。
Checkpointer 后端
生产环境需考虑 并发写入 与 checkpoint 清理策略。
自定义 State 字段
通过 state_schema 或 Middleware 扩展 State(如 user_id、retrieved_docs):
add_messages reducer 负责消息列表的追加合并。
短期 vs 长期记忆
LangChain 1.0 将「记忆」视为 Harness 责任,而非单一 Memory 类。
人机中断与恢复
LangGraph 支持 interrupt:工具执行前暂停,用户批准后 invoke 恢复。HITL Middleware 封装常见模式,checkpoint 保存中断点。
上下文窗口管理
messages 无限增长会撑爆 context。策略:
- Summarization Middleware — 旧对话压成摘要
- 滑动窗口 — 只保留最近 N 条
- RAG — 历史存外部,按需检索