1.4 KiB
1.4 KiB
记忆检索:async 单链路
Memory 运行链路只有一个入口:MemoryService。
| 能力 | 入口 | 行为 |
|---|---|---|
| ingest | MemoryService.ingest_transcript / ingest_transcripts_batch |
先持久化 memory_sources、memory_chunks;随后写 embedding 状态并投递 enrichment |
| embed | MemoryService.embed_source |
对已持久化 chunks 生成向量;失败记录状态并由 Celery 重试 |
| retrieve | MemoryService.retrieve |
非空 query 做向量 chunk 检索,并合并 query 命中的 facts / session summaries / stories |
| enrichment | MemoryService.enrich_source |
单次 LLM 生成 session summary 与 confirmed facts |
| compaction | MemoryService.compact_user |
近重复 chunk 软排除并 stale 相关 facts |
检索语义
- 空 query 固定返回空 evidence bundle。
- facts / summaries 只按 query 命中返回;不回退最近事实或 rolling summary。
MemorySummary.summary_type="session"可进入 evidence;rolling summary 不参与 prompt evidence。- Celery task 只是同步入口包装 async service,不再维护 sync memory 业务链路。
回忆录流水线
process_memoir_phase1 通过 MemoryService.ingest_transcripts_batch 批量写入记忆;process_memoir_phase2 先通过 MemoryService.retrieve 取 evidence,再把 evidence 传给叙事流水线。叙事代码只消费 evidence,不直接调用 memory repo。