会话与线程管理
Session & Thread Management
多线程会话的创建、切换、持久化和状态隔离
子问题
1.线程创建与元数据管理
2.对话历史持久化
3.线程切换与状态恢复
4.会话压缩与清理
5.线程模糊搜索与 did-you-mean 提示
6.checkpoint blob 反序列化获取消息计数
7.线程切换的事务性回滚保护
各项目的解法1 solutions
Signals
横向对比
| 维度 | DeepAgents |
|---|---|
| 持久化方式 | AsyncSqliteSaver + LangGraph Checkpointer 原生机制 |
| 线程标识 | uuid4 截取 8 字符 hex,CLI 友好 |
| 元数据存储 | checkpoint metadata JSON 字段,json_extract 查询 |
| 状态恢复 | aget_state + bulk_load 虚拟化渲染,事务性回滚 |
| 压缩策略 | SummarizationEvent cutoff_index 叠加,LLM 生成摘要 + 后端存储导出 |
| durability 模式 | exit 模式,仅 stream 结束时写 checkpoint |
最佳实践
1.基于 LangGraph Checkpointer 实现线程级状态隔离
2.使用 SQLite 持久化线程元数据
3.用 durability=exit 减少 SQLite I/O,仅 stream 结束时写 checkpoint
4.线程切换采用 save-switch-rollback 事务模式防止状态损坏
5.通过 monkey-patch 解决 aiosqlite 与 langgraph-checkpoint 版本兼容问题