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 出现在不同的自动注入面:

KindEager(系统提示词)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:

这三个 Kind 的条目永不被 GC 清除(IsGCExempt()),但质量门(RecallQualityOK)对 KindCollective 不豁免。


Kind 与 Trust

Trust 零值(Go 零值 0 = TrustSystem)是最高信任级别。saveCore 对 Trust==TrustSystem && Kind!=KindEnvironment 的条目做兜底映射:

Kind默认 Trust
EnvironmentSystem(不兜底)
Constraint / InstructionExplicit
Collective / FactMulti
Preference / Correction / Convention / LessonInferred
其余Unknown

相关文档