记忆写入策略
wesgine 提供三种记忆写入策略(MemoryWritePolicy),控制记忆写入的审批门控。
三种策略
通过 CellSpec.MemoryWritePolicy 配置:
| 策略 | 行为 | 适用场景 |
|---|---|---|
silent | 静默写入,无需确认 | 个人助手 |
logged | 写入并记录日志 | 一般业务 |
gated | 写入前需人工审批 | 合规场景 |
执行位置(INV-MEM-27)
Store.saveCore 在安全扫描通过后、embedding 前执行 WriteGate.Evaluate:
写入请求 → 威胁扫描(INV-MEM-24)
→ 内容质量检查(INV-MEM-31)
→ WriteGate.Evaluate(INV-MEM-27)
→ Embedding 生成
→ 落库
质量门控(INV-MEM-31)
ContentQualityError() 拦截引擎状态前缀:
PLAN_STATE:/TASK_STATE:/SUBAGENT_RESULT:等- 这些是引擎内部状态,不是用户记忆
ScopeWorking豁免(working 层是运行时缓存)- 返回
ErrContentQualityRejected(硬拒绝)
已废除的规则:R2(大段 JSON)、R3(plan 签名)、R4(原始代码块)——代码与 JSON 是合法记忆内容。
威胁扫描(INV-MEM-24)
Store.Save 必须对 entry.Content 运行 FirstThreatError() 扫描:
- 5 条正则:凭据泄漏检测
- Invisible unicode 检测
- Always-on,无 opt-out
- 匹配时返回
ErrThreatPatternDetected,拒绝写入
去重键
saveCore 持久化前强制 ContentDedupKey 兜底:
- 关闭所有无 Key 路径
- 显式 Key 不被覆盖
- 防止重复条目