记忆 Cold-start 叠加(跨会话摘要)
Cold-start 是 wesgine 三层记忆自动注入中的第三层——在新会话首轮将上一次会话的摘要和关键上下文重新注入,帮助 Agent "接上"之前的话题。
触发条件
Cold-start 叠加仅在新会话首轮触发,且需要满足:
CellSpec或运行时配置中CrossSessionDays > 0(默认 0 = 整面关闭)- 存在之前的会话摘要
- 摘要尚未过期(距今不超过
CrossSessionDays天) - Key 不是当前正在开的会话(避免自引用)
ColdStartCarriesRow
Cold-start 层携带的条目由 ColdStartCarriesRow 判定:
| Kind | 是否携带 | 说明 |
|---|---|---|
context | ✅ | 跨会话摘要的主要载体 |
episodic | ❌ | 仅当前会话内有效 |
| 其他 | ❌ | 由 Eager 或 Lazy 层覆盖 |
注入位置
用户消息 "你好,继续上次的工作"
↓
BuildColdStartOverlay(actor, sessionID)
↓
查找之前会话的 KindContext 条目
↓
ActorVisible 过滤(读私有域)
↓
RecallQualityOK 过滤
↓
CrossSessionDays 过期检查
↓
排除当前 sessionID
↓
注入到用户消息副本中
Cold-start 内容作为上下文注入到用户消息的副本中,不是系统提示词也不是独立消息。
可见性
Cold-start 与 Eager 使用相同的可见性对——ActorVisible(读私有域)。这意味着一个 actor 只能看到自己之前会话的摘要。
质量门控
所有 Cold-start 注入的条目都经过 RecallQualityOK 检查。被 Digest 标记为 Conflicted 或 stale 的摘要不会被注入。
Store 看不见的门
Cold-start 有两个条件不是条目本身的属性,Store.Validate 对此报告为"条件性"而非直接答案:
CrossSessionDays > 0:这是 Cell 配置,不是行属性- Key 不是当前会话:这取决于调用上下文
裸答"可召回"会在整面关闭的 Cell 上被读成"这条会注入"。
与 CognitiveSettlement 的关系
Cold-start 读取的 KindContext 条目通常由 CognitiveSettlement 在上一个 Run 结束时产出。如果 Settlement 降级或失败,Cold-start 可能没有摘要可以注入。
不变量
INV-MEM-50:Cold-start 的 1 个 arm 必须经过 RecallQualityOK 质量门控。
相关文档
- 记忆自动注入 →
memory-auto-injection.md - 上下文叠加管线 →
context-overlay-pipeline.md - Eager 注入 →
memory-eager-injection.md - Lazy Recall →
memory-lazy-recall.md - 认知结算 →
cognitive-settlement.md