Appearance
Memory Maintenance
主路径与维护路径
text
user-visible Turn settlement
↓
shouldRemember?
↓
runTurnMemory()
├─ runMemoryExtraction()
└─ episode accumulation / summarizeEpisode()| Symbol | 作用 | 失败是否应让 Turn 失败 |
|---|---|---|
runTurnMemory() | 组织本轮 memory maintenance | 否 |
runMemoryExtraction() | gather → extract → apply | 否 |
gatherExtractionMemories() | 给 extraction 提供已有事实 | 否 |
extractMemories() | 模型/规则提取候选记忆 | 否 |
applyExtractedMemories() | 应用 extraction 结果 | 否 |
summarizeEpisode() | 多 Turn 聚合 narrative | 否 |
两个错误隔离层
runMemoryExtraction() 自己 catch extraction failure;runTurnMemory() 对 episode maintenance 也有独立 catch。源码直接把 memory maintenance 定义成 opportunistic path,而不是 turn settlement 的正确性前提。
这与 Durable State 的区别很重要:checkpoint 丢失可能影响恢复正确性;memory extraction 失败通常只降低未来质量。
本地定位
bash
rg -n "runTurnMemory|runMemoryExtraction|gatherExtractionMemories|extractMemories|applyExtractedMemories|summarizeEpisode" source/host/runner/turn-memory.ts固定源码
关联知识文章
- 什么值得长期记住:Long-Term Memory 的写入与检索 — Memory 写入是 opportunistic maintenance,不是 Turn commit;
runTurnMemory()→runMemoryExtraction() - 哪些信息能用于恢复:Memory、RAG、Event Log 与 Crash Recovery — 恢复正确性依赖 Checkpoint;Memory 维护失败不能改变 Turn 结果;
runTurnMemory()→runMemoryExtraction()