Memory Kind 与耐久性
wesgine 的记忆系统使用 Kind 来分类记忆条目,并由 Kind 决定条目的耐久性(跨会话可见性)。
Kind 分类
| Kind | 含义 | 耐久性 |
|---|---|---|
KindConstraint | 用户约束 | 持久 |
KindInstruction | 用户指令 | 持久 |
KindEnvironment | 宿主环境信息 | 持久 |
KindCollective | 部门共识 | 持久 |
KindFact | 事实 | 持久 |
KindPreference | 偏好 | 持久 |
KindCorrection | 纠正 | 持久 |
KindConvention | 惯例 | 持久 |
KindLesson | 教训 | 持久 |
KindContext | 会话上下文摘要 | 临时 |
耐久性判定(INV-MEM-54)
设计原则
耐久性是 Kind 的属性,不是 Formation(溯源)的属性。
错误方式:用 Formation 代理耐久性。例如"规则提取的 → 持久"——但一条来自纠正事件的偏好是 episodic 溯源却永久有效。
正确方式:kindDurability 单点函数,键是 Kind 而非新字段。
saveCore
↓ 检查 Kind
kindDurability(kind)
↓ 返回
Durable / Ephemeral
为什么不用新字段
新字段就是"每条写入路径都要记得填"——即当前正在删的缺陷再造一遍。Kind 不可能被忘记(saveCore 拒收无 kind 的行)。
临时 Kind 的会话门
KindContext 是临时的——它只在产出它的会话及会话期间有意义。
INV-MEM-54 要求 session_id 提列:临时 Kind 缺 SessionID → ErrSessionRequired(同 AgentNS("") 的原理:201 比 400 坏)。
Kind 与自动注入
不同 Kind 出现在不同的自动注入面:
| Kind | Eager(系统提示词) | Lazy(当轮 overlay) | Cold-start(跨会话摘要) |
|---|---|---|---|
| Constraint | ✓ | — | — |
| Instruction | ✓ | — | — |
| Environment | ✓ | — | — |
| Collective | ✓ | — | — |
| Fact | — | ✓ | — |
| Preference | — | ✓ | — |
| Correction | — | ✓ | — |
| Convention | — | ✓ | — |
| Lesson | — | ✓ | — |
| Context | — | — | ✓ |
Kind 缺失拒写
空 kind → ErrKindRequired。
Kind 是三张表的键,与 Trust 零值=最高信任、accessed_at 零值=1970 同族。
已删除的 Kind
| 已删除 | 原因 |
|---|---|
KindExperience | 把"运行结果快照"与"可迁移的教训"装在同一名字下,逼两者共用一个耐久性。快照写入路径整条删掉,教训改名 KindLesson |
canvas | 声明之外零命中 |
todo | 声明之外零命中 |
Kind 与 GC
GC 豁免以下 Kind:
KindConstraintKindInstructionKindEnvironment
这三个 Kind 的条目永不被 GC 清除(IsGCExempt()),但质量门(RecallQualityOK)对 KindCollective 不豁免。
Kind 与 Trust
Trust 零值(Go 零值 0 = TrustSystem)是最高信任级别。saveCore 对 Trust==TrustSystem && Kind!=KindEnvironment 的条目做兜底映射:
| Kind | 默认 Trust |
|---|---|
| Environment | System(不兜底) |
| Constraint / Instruction | Explicit |
| Collective / Fact | Multi |
| Preference / Correction / Convention / Lesson | Inferred |
| 其余 | Unknown |
相关文档
- 记忆自动注入 →
memory-auto-injection.md - 记忆 GC 与 Digest →
memory-gc-digest.md - 记忆写入管线 →
memory-write-pipeline.md - 记忆层模型 →
memory-layer-model.md(即将创建)