跨 Session 上下文共享与连续性
概述
用户通过不同渠道(Telegram、Web、微信等)或多个 session 与同一个 Agent 交互时,需要跨 session 延续对话上下文、跨 channel 保持一致记忆和状态。这是 Agent 走向生产环境的刚需。
架构设计:三层模型
原始上下文(对话流) → 预处理层 → 增量倒排索引(热) + 历史压缩上下文(冷)
| 层 | 职责 | 实现 |
|---|---|---|
| 预处理层 | 结构分块、实体提取、关键词抽取、语义压缩 | 实时处理 |
| 热路径 | 增量倒排索引,毫秒级响应 | 关键字→[channel#块ID] 映射 |
| 冷路径 | 历史压缩上下文,原始消息冷备 | 定时压缩+索引优化 |
场景
- 跨 channel 实体引用 — channelA 聊张三,channelB 李四提”张三”时按需拉取上下文
- 群聊多话题交织 — 同 channel 多输入流交织,按话题和人物权重路由
- 懒加载策略 — 只在引用时触发检索,不提前合并所有上下文
核心挑战
- 上下文窗口有限(信道容量限制,参见 Shannon 信息论)
- 信息过时/遗忘策略(率失真理论:压缩率 vs 信息保留率权衡)
- 多 channel 并发写入一致性
- 记忆优先级和分层
现有方案调研
| 方案 | 覆盖 | 缺口 |
|---|---|---|
| Graphiti/Zep | 时序知识图谱、混合检索 | 无倒排索引、无 channel 路由、无懒加载 |
| Mem0 | 向量优先、三层结构 | 不支持倒排索引 |
| Letta (MemGPT) | 冷热路径思想一致 | 无 channel 概念 |
| 本设计 | 全部 | — |
结论:现有方案各自覆盖了部分维度,但没有项目同时做到倒排索引+冷热路径+实体路由+懒加载+压缩冷备审计。
Codex CLI Prompt Caching 策略(参考)
OpenAI Codex CLI 的 stateless 缓存策略可作为对比参考:
- 精确前缀保证 — 不修改前面的消息,只追加,确保 cache 命中
- 成本模型 — cache 命中时推理成本 ≈ 新增部分的计算,线性缩放
- Cache miss 原因 — 换工具、换模型、换配置、MCP 工具顺序不一致
- 合规 — stateless 设计自然满足 ZDR(零数据留存)要求
扩展方向
- 记忆可移植性 — 切换平台=丧失记忆,需记忆格式标准化
- 隐私-个性化张力 — 跨设备记住用户信息触及隐私边界
- 与 codegraph 集成 — codegraph 的增量索引机制可作为实现参考
相关页面:agent-memory-system agent-harness-engineering agent-protocols