Skip to content

记忆维护(原睡眠机制)

#16102: 旧浅睡 / 深睡 / 梦境生产路径已拆除。巩固改走 MemoryService.retain / reflect;夜间任务为 memory-maintenance(cleanup + Retain 缺口检查 + 周一 reflect/self + temporal)。
引用格式:[[anima:id]]。SSOT:memory.md

旧机制新机制说明
light-sleepMemoryService.retain + 维护步 retain-catch-up热路径 syncTurn 触发;补跑仅手动
deep-sleepMemoryService.reflect + 维护步 reflect按簇单轮有序巩固;定时仍 CST 周一
dream已废止存量 dream 块只读
memory-ref-sync删除热路径已 bump reference_count
builtin-sleep-cyclebuiltin-memory-maintenancecron 0 2 * * *
pipeline DAG顺序编排(无 PipelineRunner)见下

packages/habitat/platform/boot/pipeline-handlers.tsrunNightlyMemoryMaintenance

顺序:

  1. conversation-cleanup
  2. Retain 缺口检查(有缺口 → Inbox 通知;不自动补跑
  3. CST 周一:semantic-cluster-calibrate(HDBSCAN 全量校准 search_documents.cluster_id)→ reflect(按簇分批,每批并入跨族近邻后单轮有序巩固 + 同响应批量 toolcalls)→ self-layer-refreshsemantic-cluster-title(簇短标题 LLM 预热;与分族拆开,fail-open,不挡 reflect)
  4. temporal-summary-daytemporal-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 字短标签;Redis anima: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 工具。

独立 /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 为准。