记忆写入门控(WriteGate)
wesgine 通过 CellSpec.MemoryWritePolicy 配置记忆写入的审批门控策略。
三种写入策略
| 策略 | 行为 | 适用场景 |
|---|---|---|
silent | 直接写入,无通知 | 开发/个人使用 |
logged | 写入并记录审计日志 | 标准部署 |
gated | 写入前需审批 | 合规/金融场景 |
执行位置
WriteGate 在 saveCore 管线中执行,位于安全扫描通过之后、embedding 生成之前:
MemoryEntry 输入
↓
RequireActor (Actor 必填校验)
↓
FirstThreatError (威胁模式扫描 INV-MEM-24)
↓
ContentQualityError (内容质量门控 INV-MEM-31)
↓
★ WriteGate.Evaluate (写入策略门控 INV-MEM-27)
↓
ContentDedupKey (去重键生成)
↓
Embedding 生成
↓
Backend 持久化
silent 策略
默认策略。写入不经任何审批,直接持久化。
适用于个人开发场景,Agent 自由记忆不受限制。
logged 策略
写入照常执行,但每次写入会产生一条审计记录:
- 写入时间
- 写入者(Actor)
- 写入内容摘要
- 写入来源(tool / settlement / API)
审计记录可通过 GET /audit/export 导出。
gated 策略
写入前发出审批请求,等待人工确认:
- Agent 尝试写入记忆
- WriteGate 拦截,发出审批事件
- 管理员通过 HITL 或 API 审批/拒绝
- 审批通过后完成写入,拒绝则丢弃
适用于金融合规场景,防止 Agent 写入不当内容到长期记忆。
INV-MEM-27
CellSpec.MemoryWritePolicy(silent/logged/gated)控制写入审批门控。Store.saveCore 在安全扫描通过后、embedding 前执行 WriteGate.Evaluate。
与其他门控的关系
| 门控 | 拦截对象 | 位置 |
|---|---|---|
| FirstThreatError | 凭据泄漏 + 不可见字符 | saveCore 早期 |
| ContentQualityError | 引擎内部状态前缀 | saveCore 中期 |
| WriteGate | 策略级审批 | saveCore 后期 |
| ContentDedupKey | 重复条目 | saveCore 尾部 |
相关文档
- 记忆写入管线 →
memory-save-pipeline.md - 记忆威胁扫描 →
memory-threat-scan.md - 审计与证据链 →
audit-trail.md