Repository navigation
f0.7+
aiduMEI f0.7+ · 爱嘟优忆思
让记忆学会「什么值得记」,并让每个 agent 只碰自己的记忆。 包版本 0.7.4(f0.7 之上 f0.7.1–f0.7.4 四个补丁合并公开)。
主要变化
- 写入前「值得记」判定(九条原则,见 docs/WRITE_POLICY.md)
- 原则 7 直接生效:密钥、令牌、私钥、证件号、卡号、签名图在任何落库之前换成
[redacted:类型](原文柜、全文索引、事实、向量、幂等载荷、变更日志都只见屏蔽后的正文);整段邮件原文、超长原文拷贝整条 422 拒收。 - 其余八条先影子模式:只判定、只记账(keep / daily / reject、层级 profile / topic / daily、本应替换、冲突裁决),不拦不改;
GET /api/write-policy/verdicts可查,scripts/write_policy_replay.py可对存量只读重放。观察约一周后再逐条打开。 - 记忆元数据新增
condition、source_type=direct|inferred、basis;召回结果带inferred标记。 POST /api/forget:按查询只列候选,按 id 才删(与/delete同一条级联),可附「不再保存此类」规则。
- 原则 7 直接生效:密钥、令牌、私钥、证件号、卡号、签名图在任何落库之前换成
- 每个 agent 一把钥匙 + 记忆隔离:
scripts/agent_keys.py create生成钥匙(只写进 0600 文件、不打印,服务端只存 sha256);AIDUMEI_AGENT_KEY_ENFORCE=1开启强制后,每一条路由都核对钥匙身份(含/stats、/recent等全局路由),越界 403、匿名 401;CC 钩子按身份读~/.aidumei-keys/<user_id>.key。 - 过滤词按身份豁免:
AIDUMEI_CC_DROP_TERMS_EXEMPT名单里的身份不被读线过滤词误伤自己的记忆(默认空 = 照旧全部过滤)。 - salience 身份修复:提权补插的 salience 行带调用方作用域,不再落成
default;scripts/salience_relabel.py修存量(默认 dry-run,--apply先备份)。 - delete_all 保留「不再保存」规则。
- 审计修复:单删按归属收口(外审 N4);删除检查点不再把正文写进只追加 WAL;屏蔽发生在幂等载荷与变更日志之前;f0.7.1 外部两轮审计的 10 个社区 PR 与两条安全修复。
升级提示
- 先备份(
bash scripts/backup_gate.sh create pre-f07plus)。 git pull→pip install -r requirements.txt→ 重启。- 多个 agent 共用一个服务时:每个 agent 一把钥匙,全部换好后再设
AIDUMEI_AGENT_KEY_ENFORCE=1。 - 可选:
python scripts/salience_relabel.py先看报告,再--apply。
测试
收集 4007(行为 3379 + 脚本/钩子 482 + 守卫 146),3973 通过。回归门(公开虚构集)mem0 / native 均 0.9591,逐类不变;新增四类(噪声不入库 / 推断不当事实 / 忘记后不复活 / 旧说法被替换)44/44。
完整变更见 CHANGELOG。
English. f0.7+ (package 0.7.4) bundles the f0.7.1–f0.7.4 patches: a write-time "worth remembering" policy (principle 7 — secrets, IDs, signatures and whole raw copies — is redacted/rejected before anything is stored; the other eight principles run in shadow mode with a verdicts API), one key per agent with an enforce switch and identity checks on every route, a per-identity drop-term exemption, salience identity stamping plus a relabel script, delete_all keeping never-store rules, and audit fixes (N4 ownership-scoped delete, WAL checkpoint without body, redaction before idempotency payload and changelog, /api/forget deletes by id). 4007 tests collected, 3973 pass; public regression baselines unchanged at 0.9591.