v20.1
aiduMEI v20.1 — 确定性兜底与诚实召回
主题一句话:LLM 不在场时,记忆系统仍然是完整的记忆系统;召回给不出可信结果时,宁可诚实说「没有」。
四个工作包
- WP-A 确定性抽取层(
ducky/pattern_extract.py):纯规则的第二事实来源——零模型、零网络、零 token、同输入逐字节同输出。七类硬事实(日期时间/版本/数字单位/链接/键值/指令/偏好)挂在/add路由层,LLM 空抽取时硬事实不再丢失;产物按来源标记,回滚 = 按来源精确清除。 - WP-B 无 LLM 整合升级(
ducky/refine_memory.py):降级链两档改三档 llm → extractive → rule。提取式档做值包含去重 + 硬实体优先 + 显式截断标注——LLM 关闭时 20 条记忆不再只换来一句目录。 - WP-C 召回弃答信号(
ducky/hot/search.py):/search响应新增三态判语recall_verdict ∈ {found, not_found, degraded}。判定顺序即契约:故障先于缺失——嵌入服务挂了产生的空结果判 degraded,绝不冒充「查无此忆」。低分判 not_found 时结果照常返回(判语不越权丢数据)。置信下限AIDUMEI_RECALL_VERDICT_THRESHOLD默认 0.0,校准属部署决策(建议按真实查询分布取分位数)。 - WP-D 核心记忆还账(
ducky/core_memory.py):核心块写路径同步进向量召回池(payload 对齐装配契约、reliability=1.0、确定性点位 id);陈旧告警按块分级(画像/决策 180 天 · 当前项目 30 天,依据既有分层 TTL 语义)——分级是给依据,不是调大消音。
外部评审与整改闭环
发布前经五份外部评审(四位受邀评审 + 一位社区审计),收敛出 17 项整改(R-01~R-17)全部闭合,要点:
- 删除链收口:
cascade_delete_all补清 workspace 热缓存、核心记忆正本、精炼产物、墓碑全文快照、治理候选五本账;新增DELETE_CHAIN_MATRIX覆盖矩阵——每张账本必须持显式 clean/exempt 裁决,元守卫枚举 sqlite_master,新账本出现而矩阵沉默即测试红。 - 三副本对账:
audit_core_replicas以正本为基准核对 FTS 与向量副本在场性,结果进/health。 - 写入→召回契约测试:fake-embedder 真余弦 + 过滤语义走真端点真引擎,变异探针双向证明区分力。
- 跨平台:资源探针在非 POSIX 平台诚实置 None 不崩;缺 mem0 基座由 20 条 ERROR 改为诚实跳过(登记为第十条跳过轴)。
测试
用例总数 1232:独立开发机 1220 通过 · 12 跳过(实测);全轴齐备 1232 全绿 · 0 跳过(2026-08-26 十轴实测)。平台前提:全量套件按 Linux/macOS(POSIX)口径维护。
完整变更见 CHANGELOG.md。