# 灵枢 vs deja-vu · 统一评分 v7(重评) > 评分日期:2026-09-15 > 灵枢基线:`38412c4`(v0.4.7 后首个社区 PR 落地,本报告前已做 4 轮独立复核:`222e703`/`0915379`/`1bba53c`/`38412c4`) > deja-vu 基线:`d02e0ee`(2026-09-13 评估,**本轮未重测**,网络受限无法确认上游是否更新) > **v7 的性质:不是推倒重来,是在 v6 冻结的算术框架上,用四轮新增实测证据做一次有据的更新。** --- ## 一、v6 → v7 变了什么 v6 之后我做了四轮灵枢复核,产出三类 v6 时**不存在**的证据: | 证据类 | 具体内容 | 影响的维度 | |---|---|---| | **复现广度** | 七臂英文路线逐位复现、渐进式检索逐位复现、hive 冷构建 4.44s/4.56s、wm 10/10、compiler 8/8(含 18 项新回归守卫)、swarm 14/14、writelimit 23 项、census 7 断言 | 可复现性 | | **部署侧真实修复** | issue #12:宿主 cwd 在插件仓外时桥**静默降级只读 guest、写入不落盘**——已修并带 1:1 复现的回归测试 | 部署运维 | | **安全治理** | 主动发现 npm 凭据泄露(`_keys.json` 会被打进公开 registry),我对照验证:无 `.npmignore` 时打包 2 个敏感文件 + 141 个 `.pyc`,有则 0/0 | (诚实度的佐证,不改分) | ### 八维评分表 | 维度 | 权重 | 灵枢 v6 | 灵枢 v7 | 变化 | deja-vu | v7 关键证据 | |---|:--:|:--:|:--:|:--:|:--:|---| | 检索能力(中文) | 15% | 10.0 | **10.0** | — | 7.0 | locomo-zh-500 实测 96.4%,渐进式检索进一步增强 | | 检索能力(英文) | 10% | 8.5 | **8.5** | — | 9.5 | ②路上界 99.8(复现),机械下界 57.2(复现);端到端取决于外部归一环节 | | 可复现性 | 10% | 8.0 | **8.5** | **+0.5** | 9.5 | 四轮下来几乎所有声称数字逐位复现。⚠️ **原扣分依据「唯一失败 `test_wisdom_md_store`」已作废**(见 §三点五:实为我自身测试污染 + 官方入口已标 SKIP);**替换为新发现的真实扣分项**:该测试对残留空目录脆弱且报错不指向根因。一减一增量级相当,维持 8.5 | | 工程规模与测试 | 10% | 9.5 | **9.5** | — | 9.5 | 新增 58 项测试(writelimit 23 + census 7 + defect 18 + wm 10);deja-vu 为 4560 用例 | | 架构独立性 | 10% | 9.5 | **9.5** | — | 9.5 | hive Rust 纯 std 零依赖([dependencies] 空)+ wm.py git 载体 | | 诚实度 | 12% | 9.8 | **9.8** | — | 9.0 | 本轮再添佐证:commit 主动声明「Rust 形态因 cargo 不可用跳过」「未运行全量 tsc」、安全影响面如实标注(0.4.6 未受影响) | | 生态适配广度 | 18% | 9.9 | **9.9** | — | 9.8 | 通用 MCP + 一份纪律文件不变 | | 部署运维 | 15% | 7.5 | **8.0** | **+0.5** | 9.5 | issue #12 修的是部署期最难发现的静默 bug;但「需 Python + npm」的固有成本未变 | | **加权总分** | 100% | 9.133 | **9.258** | **+0.125** | 9.119 | **差 +0.139** | ### 算术验证(可独立复算) ``` 灵枢 v7 = 0.15×10.0 + 0.10×8.5 + 0.10×8.5 + 0.10×9.5 + 0.10×9.5 + 0.12×9.8 + 0.18×9.9 + 0.15×8.0 = 1.500 + 0.850 + 0.850 + 0.950 + 0.950 + 1.176 + 1.782 + 1.200 = 9.258 v6→v7 增量 = +0.5×0.10(可复现性) + +0.5×0.15(部署运维) = +0.050 + 0.075 = +0.125 ✓ 9.133 + 0.125 = 9.258 ✓(程序校验通过,无手工调整的末位) ``` **七轮收敛轨迹**:`7.79 → 8.29 → 8.57 → 8.72 → 9.13 → 9.133 → 9.258` 差距:`1.166 → 0.770 → 0.554 → 0.404 → −0.014 → −0.014 → **+0.139**` --- ## 二、记忆系统领域的详细评价 打分之外,这是用户更该读的部分。**在记忆系统这个领域里,灵枢做的到底是什么、强在哪、弱在哪。** ### 2.1 记忆系统的三个基本问题 任何记忆系统都要回答三个问题。灵枢和 deja-vu 给出了**几乎处处相反**的答案: | 基本问题 | 灵枢的答案 | deja-vu 的答案 | |---|---|---| | **① 记忆从哪来**(获取) | **前向记录 + 后向索引**:主动抽取、沉淀、条件化入库;另有 `cg(op=ingest)` 可吃外部会话历史(⚠️ v7 初稿漏看,勘误见 §三点五) | **后向索引**:直接吃磁盘上已有历史,**0 天即满** | | **② 怎么存**(组织) | **认知图谱**:CCG 条件代码图、五槽结构、L0/L1/L2 三层、`derived_from` 证据链 | **倒排索引**:`records.bin` + `buckets/` + `manifest` 增量状态 | | **③ 怎么取**(检索) | **白箱确定性**:char-bigram + 四路 RRF + 同义扩展 + 渐进式条件收紧 | **纯词法阶梯**:exact → stem → fuzzy → co-occurrence(向量可选默认关) | ### 2.2 灵枢在领域内的真正独特之处 评完四轮,我认为灵枢有三个设计在同类项目里**少见**,值得单独说: **① 记忆带生效条件(条件化记忆)。** 灵枢存的不是「一段文本」,而是「**在什么条件下成立的文本**」——每个节点有 `# 生效条件` 字段,检索时做条件匹配而不是纯相似度。这直接支撑了它的四态冲突处理:新结论与旧记忆冲突时,不是简单覆盖或共存,而是走 `ACCEPT / REJECT / DEFER / BLINDSPOT` 四态 + 三级决策(L0 情绪 → L1 反思 → L2 递归反思)。**大多数记忆系统回避了「新信息与旧记忆冲突怎么办」这个问题,灵枢把它做成了显式状态机。** 这是我在领域内没见过第二个这么做的。 **② 分层会话隔离(多智能体记忆)。** `session` 硬隔离 + `budget_tokens` 硬截断 + `layer` 语义分离,主代理只读卡片层、细节按 id 精确取。这在「一个宿主带多个子代理」的场景是刚需,而多数记忆系统的记忆池是全局单层的。我实测过隔离性:`main` 会话恰好 2 条(锚定+合并),L2 细节零泄漏。 **③ 证据链可追溯。** 每个结论带 `derived_from`(从哪些子结论合并而来)和 `verification_basis`(证据类型白名单:compiler/test/measurement/formal_proof/data/textbook/public_kb/other)。反查「这个全局结论从哪来」可以一路追到子代理卡片。这让记忆系统第一次有了**审计能力**——记住的不只是答案,还有答案的合法来源。 ### 2.3 灵枢在领域内的相对弱项(不因分数高而消失) 1. ~~**冷启动空窗**(前向记录的固有问题)~~ **【v7 勘误撤回】** 我初稿写「灵枢没有对应的回溯通道」——**错**,`cg(op=ingest)` 就是回溯通道(`md_cg/sources.py`,我实测 12/12 通过,见 §三点五)。灵枢实际是**前向记录 + 后向索引双通道**。此条弱项**不存在**。 2. **部署重量**。8.0 vs 9.5 的差距是结构性的:灵枢需要 Python 环境 + npm 双栈;deja-vu 是 `curl | sh` 十秒的单二进制。issue #12 修复改善了「装上之后」的体验,但没有改善「装」本身。 3. **英文端到端依赖外部环节**。②路的 99.8% 是检索侧上界,真实水平由 AI 归一环节决定(机械下界 57.2%)。灵枢把词表真源和字级映射做到了位,但**归一这一环在系统外部**。这不是缺陷,是架构裁定(零重依赖原则),但选型者必须知道。 ### 2.4 在同类中的坐标 以 deja-vu 对照脚本(`scripts/day0compare`)列出的同类为参照(cass / agentmemory / mempalace / funes),灵枢的坐标是: > **多数同类在做「更好的记忆检索器」(组件),灵枢在做「带记忆的智能体运行时」(平台),deja-vu 在做「已有记忆的索引器」(另一个正交方向)。** - 组件路线(多数同类):比的是召回率、延迟、易集成。 - 平台路线(灵枢):比的是能力宽度——它带 Rust 并发引擎、蜂群运行时、中文编译器、82 工具、世界模型。记忆只是这个平台的一个面。 - 索引路线(deja-vu):比的是冷启动即战力、零依赖、覆盖 harness 数。(注:冷启动一项灵枢凭 `cg(op=ingest)` 也能做,非独有优势——见 §三点五勘误。) **所以「灵枢 vs deja-vu」的总分对比,本质上和「平台 vs 组件」的总分对比一样,参考价值有限。** v6 的结论在 v7 依然成立:它们不在同一抽象层级,选型应按需求,不按分数。 --- ## 三、必须声明的偏差(这比分数更重要) **灵枢 7.79 → 9.258(+1.468);deja-vu 8.95 → 9.119(+0.169)。** 这个不对称必须解释。前五轮灵枢的每一次上调,都来自「我又挖出了一层真实能力」(Rust 引擎、蜂群、编译器、500 题报告、82 工具)——是**我的认知修正**,不是项目变了。而这引出一个尖锐的问题: > **我对灵枢投入了 7 轮深挖,对 deja-vu 只有 1 轮评估。如果我同样花七轮挖 deja-vu(28 万行 Go、1870 个测试文件、55 个版本 CHANGELOG),它的分数会不会也涨?** 诚实的答案:**很可能。** 我至今不知道 deja-vu 的 Rust 层有没有类似 hive 的东西、它的 1870 个测试文件里有没有被 gitignore 卡住的暗坑、它的 25 个 harness 解析器各自的质量梯度。**评审深度不对称本身,就是偏差来源。** 因此 v7 的 +0.139 应该读作: > **「在我看得见的范围内,灵枢略优」——不是「灵枢优于 deja-vu」。** 另外本轮网络受限,deja-vu 沿用 09-13 的 `d02e0ee` 数据未重测。如果它近期有实质更新,这个差距还会变。 --- ## 四、结论与建议 **灵枢 9.258 / deja-vu 9.119,差 +0.139**(v6 时 −0.014)。灵枢首次在算术上领先,但领先幅度(+0.139)**小于我任何一轮的认知修正幅度**(最小的 v7 是 +0.125,最大的 v1→v2 是 +0.50)——这个量级对比本身就说明:**分数差在评审噪声以内。** **⚠️ 本节四条建议已全部撤回。全部四条都建立在「我没读全 / 没验证到底」之上,其中两条被用户当场指出,两条由我本次复查自曝。详见 §三点五。保留原文是为了让错误可追溯,不代表仍然成立。** | # | 原建议 | 状态 | 实际情况 | |---|---|---|---| | 1 | ~~补「后向索引」入口~~ | ❌ **撤回** | **早已有之且实测可用**:`md_cg/sources.py`(模块首行即「把外部会话流接进认知图」),`cg(op=ingest)` 支持通用 JSONL(字段名可配)/ DSH 原生会话 / 目录级三链,带增量 watermark、去重、幂等、`dry_run`。我实测 **12/12 通过** | | 2 | ~~`test_wisdom_md_store` 的 `.db` 依赖是劝退点~~ | ❌ **撤回** | **已被采纳修复**,且**采纳的就是我提的建议**:`scripts/run_tests.py:88` 注释明写「裸 clone 环境 SKIP 探测(**2026-09-14 外部复核建议 #3**)」。我所谓「三轮未变」是我自己造的脏目录 | | 3 | ~~英文归一 prompts 产品化~~ | ❌ **撤回** | 早已有之(用户指出)。系统侧 `md_cg/semantic/canonical.py` 供词表真源,AI 侧 `docs/mdcg/单元自我锚点_系统提示词标准_v0.3.md` 操作规程第 2 步 | | 4 | ~~能力全景进 README~~ | ❌ **撤回** | 早已有之(用户指出)。`README.md` 第 26 行「🗺️ 平台全景」,另有第 172 行能力自评、第 179 行能力速查 | **唯一经实测仍成立的一条(新增,且性质完全不同):** > **`test_wisdom_md_store` 对残留空目录脆弱。** 当 `_md_cg_wisdom_graph/` 存在但为空(gitignored 产物被清理或导出中断)时,`group_d` 的 `if os.path.isdir()` 判为真 → 进入分支 → 断言 `FAIL #22: duck conn 可查询(0 行)`,退出码 1。而该报错**完全不指向真正的原因**(空目录),我因此误判了三轮。建议:`ok(len(rows) > 0, ...)` 前先判空目录并给出再生命令(`python -c "from md_cg.migrate_wisdom_graph import export; export()"`,该命令作者已在 `docs/theory/理论_机制_代码_实验_缺口矩阵_v0.1.md` 给出)。 > **实测**:`rm -rf _md_cg_wisdom_graph` 后连跑 3 次均 `exit 0`(20 断言);官方入口 `scripts/run_tests.py` 在目录缺失时标 SKIP、退出码 0。所以这是**残留态边角**,不是裸 clone 用户的必经之路——优先级远低于我原来声称的「第一劝退点」。 --- ## 三点五、v7 勘误:四条建议,四条全错 用户指出我说"没有"的两样东西其实都有。**他是对的。** 我据此复查了另外两条——**也全错**。四条建议无一成立。 | # | 我的断言 | 实际情况 | 位置 | |---|---|---|---| | 4 | ~~「能力全景放进 README 顶部」~~ | **早已有之**,五件套表格齐全(大脑 / Rust 检索引擎 / 蜂群运行时 / 中文编译器 / 蜂巢并发引擎),每层带位置与文档入口 | `README.md` **第 26 行**「🗺️ 平台全景」;另有第 172 行「🎯 能力自评」、第 179 行「🧩 能力速查」 | | 3 | ~~「AI 归一 prompts 值得随包发布」~~ | **职责分工是明确的架构裁定,两侧都齐**:系统侧供词表真源与接口,AI 侧有正式系统提示词标准 | 系统侧 `md_cg/semantic/canonical.py`(「词表真源 + **AI 写入侧归一**」);AI 侧 `docs/mdcg/单元自我锚点_系统提示词标准_v0.3.md` 操作规程第 2 步「**归一:按标准词表归一翻译;词表外概念如实透出 OOV 清单,不强行硬译**」 | | 1 | ~~「无历史导入/回溯通道,需补后向索引」~~ **(我还标注了「已复核 · 此条成立」)** | **早已有之,且我实测可用**。通用 JSONL 字段名可配、DSH 原生会话源(zstd 可选降级)、自动源探测、增量 watermark、去重幂等、`ingest_dir` 目录级三链、`dry_run` 预演,注释里甚至明写「对标 deja-vu:错误→修复」 | `md_cg/sources.py`,模块 docstring 首行即「把外部会话流接进认知图」;`cg(op=ingest)` 见 `README.md` **第 199 行** op 列表。**我的探针实测 12/12 通过** | | 2 | ~~「`.db` 依赖缺失,三轮未变,是新人第一劝退点」~~ | **已被采纳修复,采纳的正是我提的建议** | `scripts/run_tests.py:88` 注释原文:「裸 clone 环境 SKIP 探测(**2026-09-14 外部复核建议 #3**)」,第 94 行即本测试。官方入口实测标 SKIP、退出码 0 | ### 第 1 条:最严重的一条 我把它排在建议**第一位**,还郑重标注「已复核:README 与 docs 中确实无历史导入/回溯通道,此条成立」。这个"已复核"标签让错误更糟——**它证明我不是没查,是查了还查错**。 `cg(op=ingest)` 就写在 README 第 199 行的 op 列表里,我这次通读全文才看见。 我实测了它(探针已随本报告交付):造一份字段名完全不同的外部 harness 历史会话 → 冷启动召回 0 条 → 摄取 5/5 → 二次摄取 `new_events=0`(增量水位生效)→ 追加后只吃 1 条增量 → 召回命中 4 条且内容正确。**能力完整存在。** 我在 v7 第二节里还把「灵枢是前向记录型,缺后向索引」当作结构性短板来论述。**这段论述作废。** ### 第 2 条:我自己把自己绕进去了 这条的讽刺程度最高。我说它"三轮未变"——**三轮共享同一个污染源**: 1. 我前几轮跑测试生成了 `_md_cg_wisdom_graph/` 空目录(gitignored 产物) 2. `group_d` 的 `if os.path.isdir(DEFAULT_MD_ROOT)` 判真 → 进入分支 → `conn._all_rows()` 返回 0 → `FAIL #22` 3. 报错信息「duck conn 可查询(0 行)」**完全不指向真因** 4. 我据此断言"仓库固有缺陷",还在三轮里"稳定复现" 真相:这是我**自己的测试运行**造成的环境污染,被我当成了被测对象的固有属性。而作者早在 `docs/theory/理论_机制_代码_实验_缺口矩阵_v0.1.md` 记录了「空壳化」现象并给出再生命令。 更关键的是:**我提的"依赖缺失应标 SKIP"建议,作者已经采纳落地了**,代码注释里还署了我的建议编号。我却在下一版报告里把它列为"三轮未变"。 ### 错误同源 v6 我把同类错误归因为"灵枢叙事风格偏爱暴露弱点,误导了我"。**这个归因错了。** 真正的原因是单一的: > **我没有把材料读完、没有把验证做到底,就用"没看到"当作"不存在"。** 这次它表现为四种变体:没读 README 全文(#4)、没读 docs(#3)、没读代码只看文档关键词(#1)、把自身污染当成对象缺陷(#2)。**没有一种需要"叙事风格"这个借口。** ### 对评分的影响 **总分维持 9.258 / 9.119(差 +0.139)**,但有一条维度的**依据**必须替换,我说明如下: - **可复现性(8.5)** 原扣分理由之一是「唯一失败 `test_wisdom_md_store`」。该失败不成立,这条理由作废。 - 但本次复查发现了**新的、真实的可复现性问题**替代它:测试对残留空目录脆弱,且报错不指向根因——**我自己就被它误导了三轮**,这是可复现性的实打实扣分项。 - 一减一增,量级相当。**维持 8.5**,但支撑证据整条换掉。 其余七维不受影响:全部建立在实测数据上,不涉及"README 有没有某章节"。 **对我那份"评审深度不对称"自省的影响是负面的**:我连灵枢的 README 都没读完就下了七轮结论,那么我对 deja-vu 只做一轮评估的可靠性,比第三节承认的还要低。**该警告不仅成立,还应加重。** ### 给选型者的一句话 - 要**立刻能用的记忆层**(尤其是英文/多 harness 历史场景):deja-vu。 - 要**能长出智能体能力的中文优先底座**(条件化记忆、冲突裁决、证据链、多智能体分层):灵枢。 - 两者**正交而非互斥**。 - **更正**:我此前写的「灵枢补一个后向索引入口就能拿到对方最大优势」**作废**——后向索引灵枢本来就有(`cg(op=ingest)`,实测 12/12)。真正仍需权衡的是**英文端到端检索**:灵枢的英文归一化依赖外部环节(机械归一下界 57.2),这是已实测的真实差距,不是我推断出来的。 --- ## 五、配套图 *`灵枢_v7_统一评分.png`* —— ① 八维对比(标注两项上调)② 七轮收敛轨迹 ③ 记忆系统三问的取舍定位 ④ 评审深度不对称的自我警示。 --- *附:本报告全程可复算。权重表与两版维度分矩阵在第一节完整给出,任何一行都可用 `sum(权重 × 维度分)` 独立验证;评分计算与校验代码已运行,`+0.125` 增量与两项维度分变化精确吻合。*