Skip to content

f0.7+

Choose a tag to compare

@monkey2jack monkey2jack released this 02 Nov 06:09
· 7 commits to main since this release

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 同一条级联),可附「不再保存此类」规则。
  • 每个 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 与两条安全修复。

升级提示

  1. 先备份(bash scripts/backup_gate.sh create pre-f07plus)。
  2. git pull → pip install -r requirements.txt → 重启。
  3. 多个 agent 共用一个服务时:每个 agent 一把钥匙,全部换好后再设 AIDUMEI_AGENT_KEY_ENFORCE=1。
  4. 可选: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.