Memory 压缩:投影→判定→compact→回写→事件

Memory 压缩:投影→判定→compact→回写→事件 由 Archify 生成的数据流图。 01 / 记忆本体 02 / 投影裁剪 03 / 压缩判定 04 / 压缩执行 05 / 回写与事件 AgentMemory · 输入/输出/工具结果 · 01 / 记忆本体 AgentMemory 输入/输出/工具结果 ContextProjector · project(items,budget) · 02 / 投影裁剪 ContextProjector project(items,budget) ContextBudget · token 预算约束 · 02 / 投影裁剪 ContextBudget token 预算约束 shouldCompact · snapshot 体量判定 · 03 / 压缩判定 shouldCompact snapshot 体量判定 policy.compact · Windowed/Llm/Structured · 04 / 压缩执行 policy.compact Windowed/Llm/Structured memory.restore · CompactResult 回写 · 05 / 回写与事件 memory.restore CompactResult 回写 MEMORY_COMPRESS · → Listener / Trace · 04 / 压缩执行 MEMORY_COMPRESS → Listener / Trace ① items 快照 MemorySnapshot ② 预算 token ③ ContextReport report ④ 超阈值触发 decision ⑤ result.memory memory ⑥ 回写·下步生效 memory ⑦ 压缩事件 event 图例 主要数据 异步批处理 数据存储 数据流

触发点与零开销路径

  • • autoCompactIfNecessary 在每步 buildPrompt 前执行;shouldCompact(snapshot)==false 直接 return,不投影不压缩
  • • ContextProjector 投影只产报告不进记忆:本体修改只发生在 compact→restore 一步

失败语义

  • • compact 抛异常被吞掉(log + 继续用未压缩记忆)——压缩失败绝不破坏 run
  • • restore 后发布 MEMORY_COMPRESS + ON_COMPACT 生命周期事件;BEFORE_COMPACT 在压缩前发出

策略谱系

  • • CompactPolicy 实现:WindowedMemoryCompressor 窗口截断 · LlmCompactPolicy 摘要 · StructuredSummaryCompactPolicy 结构化
  • • CompactPolicyMemoryCompressor 桥接旧 MemoryCompressor SPI;投影器分 Default/TypeAware 两实现