记忆维护(原睡眠机制)
记忆维护(原睡眠机制)
Section titled “记忆维护(原睡眠机制)”#16102: 旧浅睡 / 深睡 / 梦境生产路径已拆除。巩固改走 MemoryService.retain / reflect;夜间任务为 memory-maintenance(cleanup + Retain 缺口检查 + 周一 reflect/self + temporal)。
引用格式:[[anima:id]]。SSOT:memory.md。
| 旧机制 | 新机制 | 说明 |
|---|---|---|
light-sleep | MemoryService.retain + 维护步 retain-catch-up | 热路径 syncTurn 触发;补跑仅手动 |
deep-sleep | MemoryService.reflect + 维护步 reflect | 按簇单轮有序巩固;定时仍 CST 周一 |
dream | 已废止 | 存量 dream 块只读 |
memory-ref-sync | 删除 | 热路径已 bump reference_count |
builtin-sleep-cycle | builtin-memory-maintenance | cron 0 2 * * * |
| pipeline DAG | 顺序编排(无 PipelineRunner) | 见下 |
夜间编排(非 DAG)
Section titled “夜间编排(非 DAG)”见 packages/habitat/platform/boot/pipeline-handlers.ts 的 runNightlyMemoryMaintenance。
顺序:
conversation-cleanup- Retain 缺口检查(有缺口 → Inbox 通知;不自动补跑)
- CST 周一:
semantic-cluster-calibrate(HDBSCAN 全量校准search_documents.cluster_id)→reflect(按簇分批,每批并入跨族近邻后单轮有序巩固 + 同响应批量 toolcalls)→self-layer-refresh→semantic-cluster-title(簇短标题 LLM 预热;与分族拆开,fail-open,不挡 reflect) temporal-summary-day→temporal-summary-cascade
语义记忆聚类分批(#17 / #18020)
Section titled “语义记忆聚类分批(#17 / #18020)”- 聚合依据:
search_documents.embedding(向量 HDBSCAN:mutual-reachability MST + 真分裂切边),不是文本 FTS。 - 簇号存在旁表
search_documents.cluster_id(与 embedding 同表);噪声 / 未分组为NULL。 - 默认不做噪声事后挂靠;可选
peel_small剥落过小侧(更纯、未分组↑)。 - 增量:新 embedding 在距离 <
eps时并入最近已标簇;否则保持未分组直至全量校准。 - 可调参数在 设置 → Habitat 配置 → 语义记忆(顶层段
passive_recall/semantic_clustering,分 Tab 保存);改完后于语义记忆页「全量聚类」生效。 - 全量校准条数默认上限 5000(保护 2C2G);超限 skip + soft-failure,reflect 仍可按已有簇 / NULL 分批。
- 簇 title:维护步
semantic-cluster-title预热(与校准分步);列表页未命中缓存时懒生成。按 entity id 升序取最多 3 条样本,LLM 生成 ≤8 字短标签;Redisanima:cache:semantic-cluster-title:v2:…缓存一个月。 - Reflect 作业集(#18063):分批核仍是
cluster_id。有簇的每批再并入跨族近邻(与本族任一条余弦距离 <semantic_clustering.eps,默认 0.35;条数帽 16、且受max_batch_bytes约束),近邻与本族条目同样可 merge / split / deprecate。未分组(NULL)不扩张。批间丢掉本轮已 deprecate 的 id。 - 禁止按本族条目的
source_conversations把关联对话里的全部记忆喂进该批;不喂对话正文、不给 search 工具。
运维 UI 挂载
Section titled “运维 UI 挂载”独立 /sleep 页已删除。手动触发散落:
| 能力 | Habitat 运维页 |
|---|---|
| 会话清理、完整维护周期 | 数据维护 |
| Retain 补跑 / Reflect / 一键补跑 | 语义记忆 →「记忆巩固」Dialog |
| 日/月/年摘要查看与重跑 | 时间摘要(memory.temporal*) |
| 自我层刷新 | 自我层 |
Habitat RPC:memoryMaintenance.*(summary / status / runStep / startCycle / startCatchUp)。Reflect 模式字段为 reflect_mode。LLM 过程在「自动 LLM 运行」中按 run_kind=memory-retain|memory-reflect|… 查看。
旧浅睡 / 深睡设计文档已废止;细节以代码与 memory.md 为准。