会话记忆与工作缓存
wesgine 记忆系统中两个运行时层——session 和 working 的定位与约束。
运行时层特征
| 层 | 生命周期 | 用途 |
|---|---|---|
session | 会话期间 | 当前会话的上下文状态 |
working | 单次 Run | 临时计算数据 |
两者都不是持久记忆——会话结束或 Run 结束后清理。
不可手动写入
POST /memory { "layer": "session", ... } → ErrLayerNotWritable
POST /memory { "layer": "working", ... } → ErrLayerNotWritable
session 和 working 由引擎运行时管理,不接受外部写入。
session 层
存储当前会话的认知状态:
- SessionState(CognitiveSettlement 产出)
- 上下文压缩的中间结果
- 会话级别的累积知识
通过 SessionNS(sessionID) 命名空间寻址。
working 层
存储单次 Run 的临时数据:
- 工具执行的中间结果
- 计算缓存
- Run 期间的临时标记
Run 结束后清理。
与用户记忆层的区别
| 维度 | 用户记忆层 (L1-L4) | 运行时层 |
|---|---|---|
| 持久性 | 跨会话保留 | 会话/Run 期间 |
| 可写性 | API 可写 | 引擎内部管理 |
| 用户可见 | 记忆中心显示 | 运行时状态 |
| GC | 按 retentionScore | 生命周期结束即清理 |
UI 渲染
wesui 的 MemoryCenter 将 session 和 working 作为独立层渲染。
芯片恒定显示(含计数为 0),分组列表空组不渲染。
层名由 useLayerLabels() 本地化:
- session → 会话记忆
- working → 工作缓存
相关不变量
- INV-MEM-54:耐久性由 Kind 决定,session/working 层的条目天然非持久
- 运行时层不参与 Digest 压缩
- 运行时层不参与 GC 淘汰
相关文档
- 记忆层模型总览 →
memory-layer-overview.md - 记忆 Kind 与耐久性 →
memory-kind-durability.md