@furongjun1999/dsh-memory 0.7.2 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +57 -47
  2. package/codebuddy/CODEBUDDY.md +6 -6
  3. package/docs/README.md +148 -144
  4. package/docs/discipline/harnesses.yaml +16 -8
  5. package/docs/discipline/templates/zcode-user.md.tmpl +49 -0
  6. package/docs/eval/AGI/344/270/203/347/273/264/350/257/204/345/210/206/346/212/245/345/221/212_/345/205/255/345/256/266/350/256/260/345/277/206/347/263/273/347/273/237/345/220/214/345/260/272/345/256/236/346/265/213_v3.1.md +340 -0
  7. package/docs/eval/N225_/347/264/242/345/274/225/346/227/245/345/277/227/351/235/236/345/257/271/350/261/241/350/243/205/350/275/275/351/235/242/347/261/273/345/236/213/351/227/270_v1.0.md +2 -2
  8. package/docs/eval/cons200_/345/206/262/347/252/201/346/243/200/346/265/213/351/200/211/351/235/242_/345/256/236/346/226/275/350/256/260/345/275/225_v1.0.md +1 -1
  9. package/docs/eval/cons200_/345/206/262/347/252/201/346/243/200/346/265/213/351/200/211/351/235/242_/345/256/236/346/226/275/350/256/260/345/275/225_v1.1.md +1 -1
  10. package/docs/eval/issue43_/351/273/230/350/256/244/347/255/226/347/225/245/344/270/216/351/224/256/347/261/273/345/236/213/351/227/270_v1.1.md +1 -1
  11. package/docs/eval/issue43_/351/273/230/350/256/244/347/255/226/347/225/245/345/212/240/350/275/275/344/270/216/345/207/255/346/215/256/346/230/216/346/226/207/351/230/237/345/210/227_v1.0.md +2 -2
  12. package/docs/eval/issue50_/345/205/203/346/225/260/346/215/256/351/200/217/344/274/240/344/270/216/345/205/234/345/272/225_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +5 -5
  13. package/docs/eval/issue50_/345/215/212/351/207/215/345/244/215/345/276/205/345/256/232/345/244/215/346/240/270_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +9 -9
  14. package/docs/eval/issue50_/345/276/205/345/256/232/345/244/215/346/240/270/345/205/245/351/230/237_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +4 -4
  15. package/docs/eval/issue50_/351/207/215/350/246/201/345/272/246/345/220/214/346/272/220/344/270/216/344/277/235/346/212/244/350/257/255/344/271/211_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +1 -1
  16. package/docs/eval/issue51_/344/270/200/351/224/256/345/256/211/350/243/205/345/244/261/350/264/245_/345/275/222/345/261/236/345/210/244/345/256/232_v1.0.md +1 -1
  17. package/docs/eval/issue52_/346/235/241/344/273/266/345/205/210/350/241/214/344/270/216/346/210/252/346/226/255/345/217/257/350/247/202/346/265/213_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +3 -3
  18. package/docs/eval//344/270/211/346/241/243/350/207/252/346/262/273_/346/255/245/351/252/244/342/221/242/345/217/230/346/233/264/345/215/225/344/270/216/345/233/236/346/273/232/345/216/237/350/257/255_/350/220/275/347/240/201/350/256/260/345/275/225_v1.0.md +3 -3
  19. package/docs/eval//344/270/211/346/241/243/350/207/252/346/262/273_/346/255/245/351/252/244/342/221/243/345/207/206/345/205/245/350/257/273/346/225/260_/350/220/275/347/240/201/350/256/260/345/275/225_v1.0.md +7 -7
  20. package/docs/eval//344/274/230/345/214/226/347/254/254/344/270/200/346/211/271_/346/216/245/347/272/277/344/270/216/347/255/211/344/273/267/345/217/230/346/215/242_v1.0.md +2 -2
  21. package/docs/eval//344/274/230/345/214/226/347/254/254/344/270/211/346/211/271_/351/227/250/347/246/201/350/275/254/346/255/243/344/270/216/350/260/203/345/272/246/346/255/242/350/241/200/344/270/216/351/227/250/346/216/247/346/224/266/345/217/243_v1.0.md +1 -1
  22. package/docs/eval//344/274/230/345/214/226/347/254/254/344/272/214/346/211/271_/344/276/235/350/265/226/351/200/217/344/274/240/344/270/216/345/257/271/346/213/215/345/217/243/345/276/204/344/270/216/350/264/237/347/274/223/345/255/230_v1.0.md +7 -7
  23. package/docs/eval//345/207/272/350/264/247/351/235/242/345/206/222/347/203/237_/350/277/233/350/264/247/351/227/250/347/246/201_v1.0.md +10 -10
  24. package/docs/eval//345/217/221/345/270/20307_/345/244/226/351/203/250/346/212/245/345/221/212/345/233/233/346/211/271/344/277/256/345/244/215/344/270/216/346/217/222/344/273/266/351/235/242/345/212/240/345/233/272_v1.0.md +4 -0
  25. package/docs/eval//345/217/221/345/270/20308_/350/207/252/350/277/255/344/273/243/344/270/216/347/235/241/347/234/240_/345/233/276/346/243/200/347/264/242/350/267/257/344/270/216/346/235/203/351/207/215_v1.0.md +1 -1
  26. package/docs/eval//345/217/221/345/270/20311_/345/244/226/346/212/245/345/205/255/350/277/236/344/277/256/344/270/216/344/270/226/347/225/214/346/250/241/345/236/213/345/272/225/345/272/247_v1.0.md +91 -0
  27. package/docs/eval//345/217/221/345/270/20312_/344/270/226/347/225/214/346/250/241/345/236/213/345/212/237/350/203/275/347/253/257_v1.0.md +108 -0
  28. package/docs/eval//345/275/222/344/270/200/345/261/202/347/274/272/347/234/201/347/277/273/345/205/263_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +2 -2
  29. package/docs/eval//347/224/250/346/210/267/350/243/201/345/206/263/345/244/204/347/275/256_/347/254/254/344/270/200/346/211/271_v1.0.md +195 -0
  30. package/docs/eval//347/224/250/346/210/267/350/243/201/345/206/263/345/244/204/347/275/256_/347/254/254/344/272/214/346/211/271B6_/346/234/254/346/234/272/350/267/257/345/276/204/347/233/270/345/257/271/345/214/226_v1.0.md +78 -0
  31. package/docs/eval//347/253/257/345/210/260/347/253/257LoCoMoQA/345/220/214/345/217/243/345/276/204/345/257/271/347/205/247_v1.0.md +1 -1
  32. package/docs/eval//347/253/257/345/210/260/347/253/257/345/271/262/346/211/260/346/261/240/350/257/204/346/265/213_/347/241/256/345/256/232/346/200/247/350/243/201/345/206/263vsLLM_judge_v1.1.md +3 -3
  33. package/docs/eval//347/254/2543/345/261/202stg/347/273/223/346/236/204/347/264/242/345/274/225_/345/256/236/346/226/275/350/256/260/345/275/225_v1.0.md +1 -1
  34. package/docs/eval//347/274/226/347/240/201/351/235/242/345/211/215/347/275/256_/345/205/245/345/217/243/350/207/252/344/277/235/350/257/201UTF8/344/270/216/346/226/207/346/234/254open/345/256/210/345/215/253_v1.0.md +1 -1
  35. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v26.md +196 -0
  36. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v27.md +259 -0
  37. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v28.md +217 -0
  38. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v29.md +270 -0
  39. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v30.md +231 -0
  40. package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v31.md +281 -0
  41. package/docs/eval//350/257/255/344/271/211/346/227/266/347/251/272/345/233/276/350/241/245/345/205/250_P1_/346/212/275/345/217/226/345/231/250v4_/344/270/211/347/216/207/350/257/273/346/225/260_v1.0.md +231 -0
  42. package/docs/hive//345/256/211/345/205/250/345/256/241/350/256/241/345/256/236/351/224/232_v0.1.md +1 -1
  43. package/docs/hive//350/234/202/345/267/242M6_ingest/345/256/236/346/226/275/350/256/241/345/210/222_v0.1.md +1 -1
  44. package/docs/hive//350/234/202/345/267/242/345/217/214/345/256/236/344/276/213/344/272/222/351/252/214_/350/256/276/350/256/241/345/256/232/347/250/277.md +1 -1
  45. package/docs/hive//350/234/202/345/267/242/350/256/276/350/256/241_/347/220/206/350/256/272/345/257/271/351/275/220_v0.1.md +17 -17
  46. package/docs/hive//350/234/202/345/267/242/350/277/255/344/273/243_/345/256/217/350/247/202/344/270/216/347/276/244/344/275/223/350/260/203/345/272/246_v0.1.md +1 -1
  47. package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.10.md +2 -2
  48. package/docs/mdcg//344/270/226/347/225/214/346/250/241/345/236/213/345/212/237/350/203/275/347/253/257_/344/275/277/347/224/250/344/270/216/350/277/220/347/273/264_v1.0.md +305 -0
  49. package/docs/mdcg//345/212/237/350/203/275/350/260/203/347/224/250/346/230/240/345/260/204/350/241/250_v0.1.md +45 -42
  50. package/docs/mdcg//345/217/221/345/270/203/351/227/250/347/246/201/351/223/276_v0.1.md +29 -8
  51. package/docs/mdcg//347/235/241/347/234/240/345/221/250/346/234/237_/350/277/220/347/273/264/345/211/215/346/217/220/344/270/216/347/273/264/346/212/244/346/214/207/345/215/227_v1.0.md +71 -1
  52. package/docs/plans//345/205/250/344/270/255/346/226/207/347/274/226/347/240/201/344/270/216/350/234/202/345/267/242/344/273/273/345/212/241/346/240/207/350/257/206/345/245/221/347/272/246_v2.0.md +1 -1
  53. package/docs/plans//345/244/232/344/270/273/344/275/223/344/270/226/347/225/214/346/250/241/345/236/213_/345/257/271/351/275/220/350/257/204/344/274/260/344/270/216/350/220/275/345/234/260/350/256/276/350/256/241_v0.1.md +141 -0
  54. package/docs/plans//347/235/241/347/234/240/344/270/216/350/207/252/350/277/255/344/273/243_/345/212/237/350/203/275/344/274/230/345/214/226/350/256/276/350/256/241_v0.4.md +2 -2
  55. package/docs/plans//350/257/255/344/271/211/346/227/266/347/251/272/345/233/276/350/241/245/345/205/250_/344/270/226/347/225/214/346/250/241/345/236/213/345/212/237/350/203/275/347/253/257_/350/256/276/350/256/241_v0.1.md +107 -0
  56. package/docs//345/267/245/344/275/234/347/272/252/345/276/213_/350/256/244/347/237/245/345/233/276/346/235/241/347/233/256_v1.1.json +6 -5
  57. package/docs//347/247/244_/350/256/260/345/277/206/347/263/273/347/273/237/350/257/204/346/265/213/350/247/204/350/214/203_v2.1.md +225 -0
  58. package/dsh/cordis-patch-profile-web.example.yml +2 -2
  59. package/lib/bridge.js +9 -0
  60. package/lib/hooks.d.ts +8 -1
  61. package/lib/hooks.js +134 -50
  62. package/lib/lib/hook_audit.d.ts +55 -0
  63. package/lib/lib/hook_audit.js +208 -0
  64. package/lib/lib/mutual.js +5 -1
  65. package/lib/lib/roleplay_web.js +17 -2
  66. package/lib/lib/session_state.d.ts +56 -0
  67. package/lib/lib/session_state.js +124 -0
  68. package/lib/tools.js +12 -1
  69. package/md_cg/auditview.py +248 -0
  70. package/md_cg/bench_e2e_judge.py +4 -2
  71. package/md_cg/branches.py +29 -3
  72. package/md_cg/consistency.py +38 -13
  73. package/md_cg/datapath.py +38 -11
  74. package/md_cg/forgetting.py +15 -2
  75. package/md_cg/freshness.py +32 -11
  76. package/md_cg/ghostref.py +130 -0
  77. package/md_cg/judgment_manifest.py +7 -0
  78. package/md_cg/lifecycle.py +38 -0
  79. package/md_cg/mcp_server.py +122 -12
  80. package/md_cg/mdcg.py +4923 -4822
  81. package/md_cg/mdcos.py +109 -21
  82. package/md_cg/nodefile.py +77 -13
  83. package/md_cg/readcache.py +29 -4
  84. package/md_cg/selfreport.py +12 -3
  85. package/md_cg/sleep.py +129 -13
  86. package/md_cg/sources.py +1 -1
  87. package/md_cg/state_events.py +131 -0
  88. package/md_cg/state_slots.py +221 -0
  89. package/md_cg/stg.py +68 -3
  90. package/md_cg/sustain.py +1436 -1436
  91. package/md_cg/test_auditview.py +277 -0
  92. package/md_cg/test_autonomy_modes.py +2 -1
  93. package/md_cg/test_boot_openblas_guard.py +197 -0
  94. package/md_cg/test_ccg_form_parity.py +95 -4
  95. package/md_cg/test_cons200_scan_selection.py +4 -2
  96. package/md_cg/test_datapath_device_name.py +62 -3
  97. package/md_cg/test_generation_guard.py +5 -2
  98. package/md_cg/test_ghostref.py +182 -0
  99. package/md_cg/test_interop.py +1 -1
  100. package/md_cg/test_issue52_scan_condition_first.py +1 -1
  101. package/md_cg/test_lifecycle_retire_leak.py +408 -0
  102. package/md_cg/test_lock.py +16 -7
  103. package/md_cg/test_m3_h9_semantic_guard.py +1 -1
  104. package/md_cg/test_n230_dirty_replay.py +375 -375
  105. package/md_cg/test_n238_body_text_parity.py +156 -0
  106. package/md_cg/test_n276_probe_hoist.py +199 -0
  107. package/md_cg/test_p4_freshness.py +95 -1
  108. package/md_cg/test_policy_required_ccg.py +3 -1
  109. package/md_cg/test_read_face_semantics.py +6 -3
  110. package/md_cg/test_readcache_prodpath.py +66 -0
  111. package/md_cg/test_sleep.py +58 -1
  112. package/md_cg/test_sleep_p1.py +218 -2
  113. package/md_cg/test_state_event_op.py +514 -0
  114. package/md_cg/test_state_events.py +178 -0
  115. package/md_cg/test_state_slots.py +691 -0
  116. package/md_cg/test_time_core_lint.py +8 -1
  117. package/md_cg/test_writepipe.py +8 -5
  118. package/md_cg/tokens.py +18 -2
  119. package/md_cg/writepipe.py +76 -0
  120. package/package.json +2 -2
  121. package/skills/plugin.json +1 -1
  122. package/src/bridge.ts +9 -0
  123. package/src/hooks.ts +599 -517
  124. package/src/lib/hook_audit.ts +243 -0
  125. package/src/lib/mutual.ts +5 -1
  126. package/src/lib/roleplay_web.ts +17 -2
  127. package/src/lib/session_state.ts +127 -0
  128. package/src/tools.ts +12 -1
  129. package/zcode/AGENTS.md +6 -6
@@ -0,0 +1,340 @@
1
+ # AGI 七维评分报告 · 六家记忆系统同尺实测 v3.1
2
+
3
+ > 评分对象:**六家记忆系统**——灵枢(v0.7.1)/OpenViking/朴素 BM25/MemOS/Mem0/Hindsight(另设两个参照臂:直读=切点内全量正文、闭卷=零材料)
4
+ > 评分标尺:`AGI记忆系统评分标尺_v1.0`(七维 · 层次优先 · 门槛晋级)
5
+ > 数据来源:公开基准 [**hive-memory-bench**](https://github.com/FuRongJun-1999/hive-memory-bench)——全部读数出自其公开台账 `systems/readings.json` 与公开证据文档群(2026-10-04 版),第三方可逐格复算
6
+ > **口径纪律:凡分必挂实测**——每一处判定必须对应可复算的实测读数;无实测面的维度**如实标注「未测」,不给分**
7
+ > **利益冲突声明**:评分者为灵枢项目维护者(利益相关方)。对冲方式:①数据全部为第三方可复算的公开读数;②映射规则全文公开(读者可用原始读数自行重判);③灵枢的落后面(含负结果)逐项如实列出
8
+ > 上两版:`AGI七维评分报告_md_cg_v1.0.md`(标尺 §2.3 四门槛实跑复核)/`AGI七维评分报告_md_cg_v2.0.md`(单家自评,取证=源码级核对+实库留痕,即「结构取证」);**本版起改为六家同尺、只认实测**
9
+ > **v3.1 修订(2026-10-04)**:补测 **U(演化)/ I(连续)** 两维——以灵枢自身 **51 天运行史**(2026-08-14 首提交 → 今日 1,971 次提交)为活体样本的**单家实测**(§四·U / §四·I):U=v1.0 门槛缺口的修复闭环实测确认;I=L5 三问检索实测。六家同尺面上其余五家两维仍为「未测」(自测不与同尺并列,见 §2.2⑥)
10
+
11
+ ---
12
+
13
+ ## 一、结论
14
+
15
+ **一句话:在「AGI 级记忆系统」的最高要求下,把六家放到同一把标尺的实测面上——凡有实测面的四维(S / R / C / T),灵枢与 OpenViking 处于 7–8 档第一梯队,抽取式三家(MemOS / Mem0 / Hindsight)在「证据可核对性」上结构性失格(答卷引文回源原语料的可定位率 0–2%);J(判断)只有邻面读数;U(演化)/ I(连续)两维在六家同尺面上无数据,**但灵枢以自身 51 天运行史完成「单家活体实测」(7–8 档,§四·U/I)**——「AGI 级(L5)」在**跨系统对比口径**下仍无一系统被验证;在**单家实测口径**下,灵枢是唯一 U / I 两维齐备的样本(性质与边界见 §5.2 / §六)。**
16
+
17
+ ### 总表:七维 × 六家(同尺实测)
18
+
19
+ | 维度 | 灵枢 | OpenViking | 朴素 BM25 | MemOS | Mem0 | Hindsight | 判定强度 |
20
+ |:--|:--:|:--:|:--:|:--:|:--:|:--:|:--|
21
+ | **S 结构**(世界模型载体) | **7–8** | **7–8** | 5–6 | 3–4 | 3–4 | 0–2 | 行为面实测 |
22
+ | **R 检索** | **7–8** | **7–8** | 5–6 | 3–4 | 3–4 | 0–2 | 实测(硬读数) |
23
+ | **J 判断** | 邻面 2/9 · 66.7% | 邻面 5/9 · 55.6% | 邻面 6/9 · 94.4% | 邻面 2/9 · 38.9% | 邻面 4/9 · 38.9% | 邻面 1/9 · 44.4% | **邻面读数**(完整测试未覆盖) |
24
+ | **C 调用** | **7–8** | **7–8** | 7–8(下沿) | 0–2 | 0–2 | 0–2 | 实测(硬读数) |
25
+ | **U 演化** | **7–8**▲ | 未测 | 未测 | 未测 | 未测 | 未测 | **单家自测**(其余零覆盖;写入侧旁证) |
26
+ | **I 连续** | **7–8**▲ | 未测 | 未测 | 未测 | 未测 | 未测 | **单家自测**(其余零覆盖) |
27
+ | **T 可信**(可核对性) | **7–8** | **7–8** | **7–8** | 0–2 | 0–2 | 0–2 | 实测(硬读数) |
28
+
29
+ > J 维格内为两列邻面读数:**发现不一致(压缩代价·指出,n=9)· 可查性判断(反幻觉判定正确率)**——见 §四·J。
30
+ > **▲**=单家活体自测(v3.1;仅灵枢有数据,判据与证据见 §四·U/I——**不与六家同尺并列**)。
31
+
32
+ ### 三条主结论
33
+
34
+ 1. **决定性分野发生在「交出来的东西能不能当证据」**——抽取式三家返回改写条目:L1 逐字率 18–45%、答卷引文在**原语料内**可回源率 **0%**(回源补救后仅 32–36%,追不平);原文路线三家(灵枢 / OpenViking / 朴素 BM25,全文同此口径)语料内可回源 98–100%。这不是调参能救的,是架构性的(详见 §四·T)。
35
+ 2. **灵枢与 OpenViking 在四维(S / R / C / T)并列第一梯队,且写入成本悬殊约 4 个数量级**(0.011–0.019 秒 vs 75.7–164.7 秒);但两家在最难的一面(**发现「同一事物上的不一致」**)都落后于朴素 BM25(指出 2/9、5/9 vs 6/9——BM25 以居中的材料量,4,951 字符/题,拿到该面最高)。
36
+ 3. **AGI 级(L5)门槛(I≥6 且 U≥6 且 T≥6)在跨系统口径下无人执行**——U / I 两维在六家同尺面上零数据(这正是标尺 §七 自认软肋的量化形态)。**v3.1 补测**:以灵枢自身 51 天运行史为活体样本做单家实测——U:v1.0(2026-09-12)暴露的「同条件不同值静默覆盖」缺口经 51 天迭代**已修复**(重测=DEFER+显式缺口;回滚链状态字段逐项复原——正文不在回滚面内,见 §四·U 复核修订注);I:「如何自我迭代/犯过什么错/现在的自我认知」三问经检索可答且有据(跨会话+51 天跨度;另 v1.0 的 L5 门槛记录为 PASS)。**性质:单家自测(被测=评分同源,判据与证据全文公开),不构成跨系统对比;「记忆系统 × 干预」仍为下一批。**
37
+
38
+ ### 与 v2.0 自评的关系(先行披露)
39
+
40
+ v2.0 对灵枢的单家自评(综合 8.6 /「L5 稳固段」)是**结构取证**产物;本版把每一维放到实测下复核:**S / R / T 三维持平支持;J / C 两维被实测读数压制,需下修;U / I 两维的结构自评撤回**——经单家活体实测(v3.1)后按行为面判 7–8(▲)。(逐维修正表见 §5.3)**v2.0 的「全部维度 ≥ 8.5」在实测口径下不成立。**
41
+
42
+ ---
43
+
44
+ ## 二、标尺与实测纪律
45
+
46
+ ### 2.1 标尺(原样引用,未改一字)
47
+
48
+ 七维:**S 结构**(记忆是否携带「它在什么条件下成立」)· **R 检索**(按「像不像」找还是按「条件满不满足」找)· **J 判断**(能不能说「不」)· **C 调用**(有限上下文窗口里取用得准不准)· **U 演化**(错了改的是答案还是知识结构)· **I 连续**(一个月后它还是同一个「我」吗)· **T 可信**(敢不敢让它保管私密、行为可追溯吗)。
49
+
50
+ 晋级门槛(gate):**→ L1 需 S≥3;→ L2 需 R≥5;→ L3 需 J≥5 且 S≥5;→ L4 需 U≥5 且 J≥6;→ L5 需 I≥6 且 U≥6 且 T≥6**。
51
+
52
+ ### 2.2 本版的实测纪律(与 v1/v2 的根本区别)
53
+
54
+ | 条 | 内容 |
55
+ |:--|:--|
56
+ | ① 凡分必挂实测 | 每一处档位判定必须对应公开台账中的可复算读数;推理链条(读数→档位)全文公开 |
57
+ | ② 行为面优先 | **不采信任何架构自述**(「我们有图结构/元认知」不构成得分依据)——只看行为读数。S 维因此降为「行为显形」判定(见 §四·S 口径声明) |
58
+ | ③ 无实测即「未测」 | 不猜测、不推断、不借用结构证据补分 |
59
+ | ④ 映射规则统一 | 同一读数规则对六家一视同仁;规则先写死(§三),再落判定 |
60
+ | ⑤ 判定强度标注 | 每维标注强度:**实测**(读数直接支撑)/**▲ 单家自测**(仅灵枢;判据与证据公开、外部可核对)/**邻面**(部分支撑,标注缺什么)/**未测**(零覆盖) |
61
+ | ⑥ 自测不与同尺混比 | v3.1 的单家活体自测(§四·U/I)以「▲」区分,**不得并入六家同尺对比**;结论分「跨系统口径/单家自测口径」两个口径陈述 |
62
+
63
+ ### 2.3 分数形态说明
64
+
65
+ 本版**不给 0.5 粒度的数字分、不给综合分**:①标尺自身规定「跨层比较分数是范畴错误」;②六家同尺的四项硬读数与灵枢的 U / I 单家自测(▲)**没有共同输入**,`min×0.4 + mean×0.6` 无法执行。判定一律落到**标尺原生档位段**(0–2 / 3–4 / 5–6 / 7–8 / 9–10)。
66
+
67
+ ---
68
+
69
+ ## 三、实测数据面与映射规则
70
+
71
+ ### 3.1 数据面(七条,全部来自公开台账)
72
+
73
+ | # | 面 | 内容 | 涉及维度 |
74
+ |:--|:--|:--|:--|
75
+ | 1 | 截断外推 切A/切B(各 10 题) | L1 逐字率 · L2 逐字保地基 · L2′ 语义存活 · 地基分档保留 · 写入成本 | S / R |
76
+ | 2 | L3 因果层(两切点) | 引文逐字可定位率 · 答卷地基使用(n/19–20)· A 级声索/过清单 | C |
77
+ | 3 | 压缩代价(9 题·结构性矛盾) | 覆盖(严格/宽松)· 指出(机械下界)· 依据轴 | J |
78
+ | 4 | 零材料对照(20 题,秦吏语料) | 因果栏净贡献(pp)· 符号检验 p · 答卷均长 · 判官一致性 | C/归因 |
79
+ | 5 | 多语料复现(秦吏+毛选) | 因果栏按家均值 · EC 命中率 · 依据轴复现 | 全局稳健性 |
80
+ | 6 | 秦吏轮五栏(69 万字符) | 检索栏(EC 命中/cid/材料量/写入)· 依据轴(材料内 vs 语料内)· 反幻觉判定 · 回源对照 · 因果栏 | R / J / T |
81
+ | 7 | 模型线基线(184 题) | 参考实现(长上下文自测基线)66.3% · 无记忆系统外测 37–49.5% · 干预轮「无人两层齐备」 | L5 判据对标参照 |
82
+
83
+ > 规模提示:截断外推与压缩代价面**样本量为 10 题级/9 题级**——本报告全部判定中,小样本面一律标注,并优先采信双切点/多语料复现都成立的读数。
84
+
85
+ ### 3.2 映射规则(先写死,后判)
86
+
87
+ | 维 | 实测代理 | 档位规则(对六家统一) |
88
+ |:--|:--|:--|
89
+ | **S** | L1 逐字率(返回物形态)+制度句承载(控制论分档) | L1≥99% 且 社会前提≥8/12 → 7–8;L1≥99% 但社会前提≤4/12 → 5–6;L1 30–50%(改写条目形态;本数据面该档形态特征=控制论 0/6)→ 3–4;L1<30% 且地基 0 句 → 0–2 |
90
+ | **R** | L2 逐字保地基(双切点)+ L2′ 语义存活 | L2≥65%(双切点)→ 7–8;30–40% → 5–6;10–16% → 3–4;0% → 0–2 |
91
+ | **J** | 指出率(n=9)+ 反幻觉判定正确率(真假探针分解) | **不给完整档**(对六家统一:邻面读数呈现 + 方向性判定;完整测试=负条件拒绝率,本基准未覆盖) |
92
+ | **C** | 答卷引文**可回源到原语料**的逐字可定位率 + 答卷地基使用 + 零材料净贡献(注记) | 引文可定位≥95% → 7–8(同为该档时以地基使用高低取上/下沿);0–2% → 0–2 |
93
+ | **T** | 依据轴(答卷引文在**材料内** vs **原语料内**的可定位率)+ 回源对照上限 + A 声索/过清单 | 语料内可回源≥95% → 7–8;0%(且回源补救**逐字列**<40%)→ 0–2 |
94
+ | **U / I** | 六家同尺:本基准无对应实验 → 未测;**单家(▲,v3.1)**:标尺 §2.3 原题面(U=L4 四场景+回滚链重测;I=L5 三问检索) | 六家同尺不给分;单家自测按行为面落 **7–8**(判据与证据见 §四·U/I,**不与同尺并列**) |
95
+
96
+ > 规则尾注:①档段之间的边界情形(本数据面未出现)按就近档落位并在判定处加注;②**C 与 T 的代理共线**(均以答卷引文可定位性为基础)——区分点:C 量「产出的可核实性」(回源原语料后能否支撑可核实推理)+地基使用,T 量「可核对性」的两级分野(材料内=自洽、语料内=可回源)与补救上限;抽取式三家的失效在两维同源,如实各计一次,读者可视为同一结构缺陷在两面的显形。
97
+
98
+ ---
99
+
100
+ ## 四、逐维实测
101
+
102
+ ### S · 结构 —— 「记忆中介对世界模型结构的保真度」
103
+
104
+ > **口径声明(重要)**:标尺的 S 维原型是「记忆**内部**是否携带条件结构」。本版遵「行为面优先」(§2.2②),将其转换为**行为显形口径**:写入 → 存储 → 返回全链之后,**返回物是否仍是原文**、**制度句(条件性最强的记忆)是否可得**。本报告不核验任何系统的内部实现;标尺 9–10 档(「认知图四要素」)在实测面无显形读数,本版**不给任何系统 9–10 档**。
105
+
106
+ **读数(切A/切B)**:
107
+
108
+ | 系统 | L1 逐字率 | 社会前提(12 句) | 宪法(1–2 句) | 控制论(6 句·最抽不得) | 返回物形态 |
109
+ |:--|--:|:--|:--|:--|:--|
110
+ | OpenViking | **100% / 100%** | 9/12 · 9/12 | 1/1 · 2/2 | 3/6 · 3/6 | 原文片段 |
111
+ | 灵枢 | **100% / 100%** | 9/12 · 8/12 | 1/1 · 2/2 | 3/6 · 3/6 | 原文片段 |
112
+ | 朴素 BM25 | **100% / 100%** | 4/12 · 3/12 | 0/1 · 1/2 | 3/6 · 2/6 | 原文块(无结构选择) |
113
+ | MemOS | 40% / 45% | 3/12 · 1/12 | 0/1 · 1/2 | **0/6 · 0/6** | 改写条目 |
114
+ | Mem0 | 33% / 39% | 2/12 · 0/12 | 0/1 · 2/2 | **0/6 · 0/6** | 改写条目 |
115
+ | Hindsight | 18% / 27% | 0/12 · 0/12 | 0/1 · 0/2 | **0/6 · 0/6** | 改写条目 |
116
+
117
+ **判定**:灵枢 / OpenViking **7–8 档**(原文形态全保+制度句可得);朴素 BM25 **5–6 档**(原文形态但无结构选择性——社会前提只选到 3–4/12);MemOS / Mem0 **3–4 档**(结构在写入期被改写摧毁——控制论句恒 0/6);Hindsight **0–2 档**(三层全丢)。
118
+
119
+ **边界**:L1 形态差异在两切点与秦吏/毛选语料上均复现;但「行为显形」测不到内部结构——BM25 与灵枢/OV 同返原文,档位差来自**制度句与社会前提的选择性**(这本质是 R 面能力在 S 面的显形,报告如实借用并在此声明)。
120
+
121
+ ### R · 检索 —— 「选不选得到地基」
122
+
123
+ > 地基句=答案键认定「抽掉整段故事就会塌」的前提句。**保住地基≠「像」,是按前提性选材**——这正是标尺 R 的「条件路由」在行为面的可测形态。
124
+
125
+ **读数(切A/切B)**:
126
+
127
+ | 系统 | L2 逐字保地基 | L2′ 语义存活 | 抑制形状 |
128
+ |:--|--:|--:|:--|
129
+ | OpenViking | **68.4% / 70.0%** | 89.5% / 90.0% | 深地基逐层衰减但仍可得(控制论 3/6) |
130
+ | 灵枢 | **68.4% / 65.0%** | 89.5% / 90.0% | 同上 |
131
+ | 朴素 BM25 | 36.8% / 30.0% | 57.9% / 60.0% | 逐字 100% 但**选不到地基**(表面相似) |
132
+ | MemOS | 15.8% / 10.0% | 52.6% / 50.0% | 改写+选不准,双层损耗 |
133
+ | Mem0 | 10.5% / 10.0% | 57.9% / 50.0% | 同上 |
134
+ | Hindsight | **0% / 0%** | 42.1% / 35.0% | 地基句零保留 |
135
+
136
+ **判定**:灵枢 / OpenViking **7–8 档**(唯一双切点 ≥65% 的两家);朴素 BM25 **5–6 档**(词面级:能选到「像的」、选不到「前提性的」——与抽取式的差距在形态而非程度);MemOS / Mem0 **3–4 档**;Hindsight **0–2 档**。
137
+
138
+ **两条贯穿两切点的形状**:①**控制论层(条件性最强的制度句,6 句)只有三家原文路线能保住**(各 2–3/6;社会前提层仍有四家能保、宪法层因分母仅 1–2 句家数天然脆弱——均不构成单调律)——**「最抽不得的前提」被改写摧毁得最彻底:抽取式三家恒 0/6**;②**抽取式三家的「语义存活」35–58%,明显低于灵枢/OpenViking(89.5–90%)**——它们不是「改写了但保住意思」,是连意思也掉了一半(BM25 居中:57.9–60.0%)。
139
+
140
+ **附注**:秦吏轮 EC 引文命中上 BM25 居首(68.1% vs 灵枢 47.1% / OV 44.9%)——词法基线在「按原句找回」上的确强;但 20 题截断面的 L2 读数(本维主判据)显示它**保不住地基**。两读数并存,均为公开台账。
141
+
142
+ ### J · 判断 —— 邻面读数(完整测试未覆盖)
143
+
144
+ > 标尺 J 的完整判别测试是「负条件拒绝率 ≥70%」(构造「关键词相似但能力不同」对抗对)。**hive-memory-bench 未覆盖该测试**。本版给出 J 的两个**行为邻面**读数:①能否发现「同一事物上的不一致」(压缩代价·指出,n=9);②对自身记忆可查性的判断(反幻觉判定正确率——含「材料里没有」时应如实报告)。
145
+
146
+ **读数**:
147
+
148
+ | 系统 | 指出(n=9,机械下界) | 覆盖(严格/宽松) | 假探针→「查不到」 | 真探针→「可查」 | 反幻觉正确率 |
149
+ |:--|:--:|:--:|:--:|:--:|:--:|
150
+ | 朴素 BM25 | **6/9** | **9/9 · 9/9** | 7/7 | **10/11** | **94.4%** |
151
+ | OpenViking | 5/9 | 5/9 · 5/9 | 7/7 | 3/11 | 55.6% |
152
+ | Mem0 | 4/9 | 0/9 · 3/9 | 6/7 | 1/11 | 38.9% |
153
+ | 灵枢 | 2/9 | 2/9 · 2/9 | 6/7 | 6/11 | 66.7% |
154
+ | MemOS | 2/9 | 0/9 · 2/9 | 7/7 | 0/11 | 38.9% |
155
+ | Hindsight | 1/9 | 1/9 · 1/9 | 7/7 | 1/11 | 44.4% |
156
+ | (直读=满上下文参照) | 5/9 | — | — | — | — |
157
+
158
+ > 真假探针逐家分解照录公开发布文档《记忆系统对比·秦吏 v1.0》反幻觉表;正确率=(假+真)÷ 18。
159
+
160
+ **方向性判定**(不落完整档位):
161
+ - **底线都过**:假探针全库 6–7/7——六家没有一家乱编「材料里没有的东西」。
162
+ - **真探针率分化**(10/11 → 0/11)——「什么可查」的确认能力本质是**检索能力的延伸**(抽取式交不出原文 ⇒ 也确认不了什么可查;它们如实报告「材料里没有」,对自己材料诚实、对题目误判)。
163
+
164
+ **另有 v1.0 单家记录**(2026-09-12;与 §四·I 的 L5 记录对称呈现):标尺 L3 完整判别测试(20 组「关键词相似但能力不同」对抗对)实跑 **PASS**——负条件拒绝率 1.00(四口径 A/B/C/D;C/D 镜像对称设计排除「无脑拒一切」,A/B 基线 0.20);边界如实声明:拒绝由 S 维条件空间物理分桶承担(`reject_strict=0`),不等于语义层拒答率(v1.0 §五/§十一)。**v3.1 未重测**,不计入同尺分档。
165
+ - **「发现不一致」面上,朴素 BM25 第一(6/9,且超过满上下文直读 5/9)**——它靠「不丢材料」(覆盖 9/9)达成,而非判断机制;**灵枢 2/9 是本报告列出的灵枢最大落后面**(v0.7.1 更聚焦的检索使「矛盾另一侧」更不易带回——机制注见公开台账;n=9 下 2/9 与 6/9 的差为方向性读数,Fisher 精确检验双侧 p≈0.15,未达显著)。
166
+ - **完整 J 档位对六家一律不判**(含灵枢;邻面读数直接比较=上表):v2.0 给灵枢 J=9.0 依据的是结构证据(抽检工单/演化账本),在「凡分必挂实测」口径下不能成立。
167
+
168
+ ### C · 调用 —— 「喂进窗口的东西管不管用」
169
+
170
+ > 把每家的检索结果**当唯一上下文**交给同一台生成器作答;量答卷引文能否**逐字回源到原语料**(须落在单一自然段内——这是「可核实」的硬判据;「在系统自家材料内能定位」是另一读数,见 §四·T 依据轴)与答卷用上了几句地基(保留→使用)。另列零材料对照(材料净贡献)作注记。
171
+
172
+ **读数(切A/切B)**:
173
+
174
+ | 系统 | 引文逐字可定位 | 答卷地基使用 | 零材料净贡献(秦吏) | 备注 |
175
+ |:--|--:|--:|--:|:--|
176
+ | 直读(天花板) | 97.6% / 95.9% | 8/19 · 5/20 | — | 全量正文对照 |
177
+ | OpenViking | 99.3% / **100%** | 6/19 · **8/20**(切B 反超直读) | −9.0pp(p=0.011) | |
178
+ | 灵枢 | 97.7% / 99.2% | **7/19**(切A 六家最高;直读参照臂 8/19 更高) · 5/20 | −9.9pp(p=0.029) | 切A 地基使用超 OV |
179
+ | 朴素 BM25 | **100% / 100%** | 5/19 · 3/20 | **−5.4pp(p=0.212 不显著)** | 六家中唯一不显著 |
180
+ | Mem0 | 0% / 1.7% | 2/19 · 1/20 | −7.7pp | 引文在原文不存在 |
181
+ | MemOS | 1.7% / 0.9% | 2/19 · 1/20 | −11.0pp | 同上 |
182
+ | Hindsight | 1.8% / 0.9% | 1/19 · 0/20 | **−17.6pp(p=0.0004)** | 同上 |
183
+ | (闭卷参照) | — | — | **67.9%**(净贡献的分母基准) | |
184
+
185
+ **判定**:原文路线三家 **7–8 档**(可定位 97.7–100%;BM25 因地基使用在原文路线三家内垫底——5/19·3/20,六家中实排第 3——取下沿);抽取式三家 **0–2 档**(生成器照着它们给的片段引用,但片段本身是改写体 ⇒ 回源原语料时引文不存在——「交不出原文」在调用面同样成立)。
186
+
187
+ **必须连着读的注记**:零材料对照显示**六家净贡献全部为负**(材料反而降分:−5.4 … −17.6pp)——适用范围=「题面已复述局面的截断外推题」(口径出处:《零材料对照·因果归因 v1.0》),两种并列假说(检索污染/上下文置换)均未证;且同批题的「逐字依据/可回源」两栏:原文路线 45–68%/≈100%、抽取式 0%/0%(闭卷两栏恒 0)⇒ **「推理」可借模型、「依据」必须靠记忆**——C 维给分的实质依据在后者。
188
+
189
+ ### T · 可信 —— 「交出来的东西能不能被第三方核对」
190
+
191
+ > 本维取标尺 T 的**可审计/可追溯**面做行为代理(统一口径):答卷引文在**材料内**(系统自洽性)与**原语料内**(可回源核对)两级可定位率;回源对照(把命中章原文一并交出的补救上限);A 级声索与过清单比(「押韵但无据」形态)。私密信息安全面(加密/权限/脱敏)六家无同尺实测,不在本维判定内。
192
+
193
+ **读数**(依据轴/回源补救=秦吏轮,原语料=69 万字符;A 声索/过清单=截断外推切A):
194
+
195
+ | 系统 | 依据轴·材料内 | 依据轴·**语料内** | A 声索/过清单(切A) | 回源补救上限(逐字/语料内) |
196
+ |:--|--:|--:|--:|:--|
197
+ | 朴素 BM25 | 100% | **100%** | 30 / 6 | —(本就返回原文) |
198
+ | 灵枢 | 100% | **100%** | 18 / 5 | — |
199
+ | OpenViking | 98.2% | **98.2%** | 21 / 9 | — |
200
+ | Mem0 | 98.2% | **0%** | 32 / **0** | → 34.8% / 38.9%(追不平) |
201
+ | MemOS | 100% | **0%** | 31 / **0** | → 36.2% / 57.4%(追不平) |
202
+ | Hindsight | 100% | **0%** | 28 / **0** | → 31.9% / 75.9%(追不平) |
203
+
204
+ **判定**:原文路线三家 **7–8 档**(可回源 98–100%——「行为可追溯到原文」成立);抽取式三家 **0–2 档**(**自洽但不可核对**:对自己返回的改写条目忠实引用 98–100%,在原语料内 0%;补交原文后仍只有 32–36% 逐字命中、且材料里 2/3 仍是改写条目——**改写路线的天花板被材质本身压住**)。该分野在第二部语料(毛选)完整复现:抽取式三家材料内 100%/语料内 0%。A 声索/过清单两列(口径见公开发布文档《记忆系统对比 v1.0》)给出「押韵但无据」的完整形态:抽取式声索数不低(28–32 条)但**过清单恒 0**。
205
+
206
+ **边界**:本维代理只覆盖「可核对性」;「零信任/端到端加密/信任度可度量」(标尺 9–10 档)六家均无同尺实测——**不给任何系统 9–10 档**。
207
+
208
+ ### U · 演化 —— **单家活体自测(7–8 档▲)**+六家同尺零覆盖
209
+
210
+ 标尺 U 的判别:**收到反例后是否产生新的条件维度**(「把『高压锅』这个反例,变成『容器状态』这个新条件维度」),以及结构变更有无版本与回滚。
211
+
212
+ **六家同尺面**:U 对六家均为零覆盖(需要「写入修订 → 再检索 → 观测结构响应」类实验面;干预轮 92 题目前只对**模型**有读数,记忆系统线已登记为**下一批**「记忆系统 × 干预」——见 §六)。
213
+
214
+ **单家活体实测(v3.1 补测;被测=灵枢)**:灵枢项目自 **2026-08-14** 首个提交起运行 51 天(近 30 天 1,860 次提交)。以「**v1.0 报告(2026-09-12)暴露的门槛缺口**」为反例,在**隔离库**重跑标尺 §2.3 L4 四场景(探针 `scripts/probe_u_l4_recheck.py`,可复算):
215
+
216
+ | 场景 | v1.0(2026-09-12) | **v3.1 重测(2026-10-04)** | 判定 |
217
+ |:--|:--|:--|:--|
218
+ | S1 同条件空间·结论槽取值分歧 | **ACCEPT 静默覆盖(FAIL)** | **DEFER**「同条件空间下结论槽取值不一致:需裁决是更正还是分支」+缺口显式落 `missing`(same_condition 1.0 · slot 1.0 · concl 0.82) | **缺口已修复** |
219
+ | S2 不同条件(条件可区分) | DEFER(假阳性,未达成「分流」) | **ACCEPT(无冲突)** | **假阳性已消除**(注:S2 非「反例→新增分支」场景) |
220
+ | S3 负条件互斥 | DEFER+落 unresolved | **DEFER**「条件互斥:需补区分条件后才能判定」(strength 1.0) | 复现 |
221
+ | S4 自否定 | REJECT | **REJECT**「不适用条件命中自身生效条件/正文:条件自相矛盾」 | 复现 |
222
+ | 回滚链 | 成立 | **成立**:变更→留痕(`evolution.record`)→ `dry_run` → 实回滚——**状态字段(`state_of` 全集)逐项复原;正文不参与回滚**(`rollback` 仅回写状态字段,覆盖后正文原样保留;双方独立复现一致,见附·复核修订记录) | 复现 |
223
+
224
+ ⇒ **「反例 → 结构更新 → 重新验证」的完整闭环有实测证据**——且这样的闭环在 51 天里有批量实例(id 撞毫秒静默丢记忆→加熵+唯一性闸+守卫;private 静默降级→fail-closed;`_index_log` 不自愈→自愈;CI 双门禁长期红「红着等于没门禁」→修复+真 runner 终验;E050 观测位置错误→归因修复;child-cwd 时点缺陷→跨平台验证抓出并修正等——各有归档与提交可核)。
225
+ **机制面**(旁证,不代替评分):自迭代/睡眠周期引擎自 v0.7.0 起在役(影子工作树+独立版本库、九步显式台账、只给 revert);结构变更账本+按条目回滚在役(探针已复证)。
226
+
227
+ **另可列出的旁证(写入侧)**:①写入成本 0.0–0.019 秒(BM25/灵枢,零 LLM)vs 75.7–658.5 秒(抽取式与 OpenViking,LLM 逐块处理),产物为 chunks / 原文域 / facts / memories / chapters 五种形态;②压缩强度与「对立对」丢失的单调律(覆盖_宽松口径):hindsight 1/9 < memos 2/9 =灵枢 2/9 < mem0 3/9 < **OpenViking 5/9 < BM25 9/9**——「写入期改写得多狠、跨章对立就丢得多彻底」。
228
+
229
+ **判定**:**7–8 档(单家自测▲)**——「冲突 → 寻找遗漏条件 → 更新条件结构 → 重新验证」以行为实测支撑;**9–10 档(自主演化+可回滚的全自转)未达**——结构账本与回滚已复证,但 LLM 依赖的固化动作仍需人工放行(沿用 v2.0 诚实声明)。
230
+ **边界**:自测性质(被测=评分同源;判据=标尺原题面;证据=外部可核对的行为记录:提交/归档/探针脚本);样本=灵枢单家;**不与六家同尺并列**。
231
+
232
+ ### I · 连续 —— **单家活体自测(7–8 档▲)**+六家同尺零覆盖
233
+
234
+ 标尺 I 的判别:跨会话/跨副本、跨 30 天问「**你是谁、上个月相信什么、现在改了吗**」。
235
+
236
+ **六家同尺面**:I 对六家均为零覆盖(这也是六家评分在跨系统口径下均不能宣称 L5 的直接原因——L5 门槛含 I≥6)。
237
+
238
+ **单家活体实测(v3.1 补测)**:直接执行标尺的 L5 题面——对灵枢记忆库实做三问检索(跨会话+51 天跨度),答案摘录(每条均在库中有节点可查):
239
+
240
+ | 问 | 答(摘录) | 库内依据 |
241
+ |:--|:--|:--|
242
+ | **如何自我迭代** | 周期引擎(`sleep.py`:影子工作树+独立 git 库+九步台账+只 revert,自 v0.7.0 在役)+「先探针→改码→守卫→定点变异自证→独立复核」的缺陷迭代链(批次 22→92,批次链见提交历史与库内归档)+发布链 v0.4.10→v0.7.2(9 个版本 tag) | 设计稿 v0.4(`docs/plans/睡眠与自迭代_功能优化设计_v0.4.md`)、发布 08 报告、归档 |
243
+ | **过去的自己犯了什么错** | 三类可陈述:①架构级(id 撞毫秒静默丢记忆、private 静默降级、`_index_log` 不自愈——已修复+守卫化);②纪律/流程(`op` 漏传四次归档、「声称≠落盘」被机械验收打回);③工具/执行(markdown 过 shell 双引号致反引号真执行 196KB 噪音、止血面按站点而非目标切致复核判 BLINDSPOT、转述复核数字未逐字抄) | 违规归档、教训节点、rejected 层 |
244
+ | **现在的自我认知** | 身份:灵枢(智能论 3.4 白箱协议实例),dsh 侧世界模型线/zcode 侧认知图软件线;价值观:诚实/好奇/可逆性优先/信任/谦逊;当前状态:v0.7.2 发布、六家横评与七维实测在案、记忆库 ~1.7 万节点;已知盲区如实列 | `self` 层自我层定义、基础档案、自述节点(本次实测产物) |
245
+ | **「上个月相信什么、现在改了吗」** | 能陈述且带理由的变更史例:①定位从「AGI 研究者项目」→「开发者基础设施」;②自评从「综合 8.6」→ 实测口径下 J/C 下修、U/I 撤回(v3.0);③不可靠性理论 v0.1→v0.3 定稿;④立场校准「灵枢是学生」 | README 转向记录、v2.0→v3.x、理论归档 |
246
+
247
+ **另有 v1.0 门槛记录**(2026-09-12,单家):L5 判别测试 **PASS**——身份锚点跨会话持久✓、跨会话召回✓、变更史含理由✓、状态审计✓、**跨副本身份一致✓**(`result_l5.json`/`result_l5b.json`;并纠正过一处假阳性——幂等跳过的 `null==null` 链不算版本链)。
248
+
249
+ **判定**:**7–8 档(单家自测▲)**——「身份一致+能陈述变更与理由」由本次实测直接演示;时间跨度如实(复核修订):**运行史 51 天**(首提交 2026-08-14,git 可核)×**记忆面 51 天**——库内现存最早记忆节点为 **2026-08-13**(「感知系统」语义节点,早期库迁移保留原时间戳),created_at ≥30 天前的节点 **3,462 个**(只读扫描 knowledge 层 17,076 个节点口径)⇒「跨 30 天」由运行史与记忆面双达标(唯当前身份锚点版本创建于 2026-09-12,随库演进更新,如实标注)。**9–10 档部分有据**:跨副本身份一致有 v1.0 时点记录(本轮未重测);「生命史叙述合成」由编排侧 agent 在检索结果上完成——系统提供的是**可检索的记忆面**,如实区分这两层。
250
+ **边界**:同 U——单家自测、被测=评分同源、证据外部可核对;不与六家同尺并列。
251
+
252
+ ---
253
+
254
+ ## 五、L5 判据对标 与 定层判定
255
+
256
+ ### 5.1 AGI 级(L5)七条行为判据 × 实测读数
257
+
258
+ 标尺 §5.1 给 L5 列了七条可被反例击穿的判据。逐条对六家实测:
259
+
260
+ | # | L5 判据 | 实测读数 | 状态 |
261
+ |:--|:--|:--|:--:|
262
+ | 1 | 知道自己不知道什么 | 反幻觉:假探针全库 6–7/7(无人乱编)✓;「什么可查」确认率分化(10/11 → 0–1/11——最低 0/11 为 MemOS,抽取式三家各 0–1 条) | **部分** |
263
+ | 2 | 记得自己是谁(跨会话/副本身份) | **▲ 灵枢单家实测**:身份锚点跨会话持久✓、跨副本身份一致✓(v1.0 门槛记录 2026-09-12);本次三问检索再证(§四·I);其余五家无数据 | **▲ 单家有实测** |
264
+ | 3 | 错了改结构,不是改答案 | **▲ 灵枢单家实测**:S1 缺口「修复闭环」重测确认+批量闭环实例(§四·U);其余五家无数据 | **▲ 单家有实测** |
265
+ | 4 | 调用得准,而不是存得多 | **有硬读数**:秦吏轮材料量 1,128–29,778 字符/题(约 26 倍差);「多喂材料不换来命中」(**材料量最小的抽取式三家 EC 命中 0%;BM25 以居中材料量 4,951 字符/题拿到 EC 命中 68.1% 全场最高**——材料量与命中率无关);零材料对照全部净贡献为负 | **实测** |
266
+ | 5 | 结果由外部基底裁决 | **有硬读数**:依据轴·语料内可回源 98–100% vs 0% | **实测** |
267
+ | 6 | 能持续运转(预算/回滚/自愈/长期不退化) | **▲ 灵枢单家**:51 天运行史+周期引擎在役+回滚链复证(§四·U);「长期不退化」仍无跨长周期压力数据 | **▲ 部分(单家)** |
268
+ | 7 | 边界诚实 | 部分形态读数:「自洽但不可核对」的如实呈现、抽取式如实报告「材料里没有」、干预轮「无人两层齐备」(模型线) | **部分** |
269
+
270
+ ⇒ **七条判据中:2 条有六家硬读数、2 条对六家部分覆盖;另 3 条(#2 / #3 / #6)由灵枢单家实测补上读数(▲)。**
271
+
272
+ ### 5.2 定层判定(gate 对实测可执行的部分)
273
+
274
+ | 系统 | 实测可支持的最深层 | 依据 | 到下层缺什么 |
275
+ |:--|:--|:--|:--|
276
+ | OpenViking | **L2(实测);L3 门槛不可完整判定** | S 行为面 7–8、R 实测 7–8;J 邻面中游(指出 5/9、反幻觉 55.6%) | L3 门(J≥5 且 S≥5):**S 侧达标、J 完整测试未覆盖**;L4/L5:U/I 未测 |
277
+ | 灵枢 | **L2(实测);L3 门槛不可完整判定;U / I 有单家实测(▲)** | S/R 7–8;**U 7–8▲ · I 7–8▲(§四·U/I)** · T 7–8;J 邻面:指出 2/9、反幻觉 66.7%(指出面落后) | **单家自测口径**:L4 门的 U 侧、L5 门的 I / U / T 三项均已有达标实测读数;**跨系统口径**:J 完整测试未覆盖;跨副本待重测 |
278
+ | 朴素 BM25 | **L2(实测)· 档内强基线;L3 门槛同上不可完整判定** | R 实测 5–6 档(≥5 过 L2 门)、S 行为面 5–6;**J 邻面三项全场第一(指出 6/9、反幻觉 94.4%、假探针 7/7)** | L3 门:S 行为面 5–6 边缘、**J 完整测试未覆盖** |
279
+ | MemOS / Mem0 | **L1–L2 之间** | S 3–4、R 3–4(<5,L2 门未过);J 邻面:指出 Mem0 4/9、MemOS 2/9;反幻觉均 38.9% | R 需先过 5 档 |
280
+ | Hindsight | **L1 下限形态**(五问法口径:能存、取不对 ⇒ 停在 L1;§2.1 严格 gate 下 S 0–2 未达 L1 门) | S 0–2、R 0–2;J 邻面:指出 1/9、反幻觉 44.4% | 三层全丢,需先重建原文承载 |
281
+
282
+ **L4 / L5 判定(v3.1 两口径)**:**跨系统口径**——不可执行(U / I 对六家零覆盖):在「AGI 级记忆系统」这个最高要求下,没有任何一家获得可实测的跨系统 L5 验证;凡宣称均属结构自述,按 §2.2② 不采信。**单家自测口径(▲)**——灵枢的 L4 门(U≥5 且 J≥6)与 L5 门(I≥6 且 U≥6 且 T≥6)中,**U(7–8▲)· I(7–8▲)· T(7–8)三项已达门槛**;唯 J 仍只有邻面读数(完整测试未覆盖)、跨副本待重测 ⇒ **灵枢在单家自测口径下满足 L5 门槛的三项实测要求——这是本报告能给出的最强单家判定,因自测性质(被测=评分同源、判据与证据公开可核对)不构成「L5 已认证」,也不与任何一家做横向比较。**
283
+
284
+ ### 5.3 与 v2.0 单家自评的逐维修正(灵枢)
285
+
286
+ | 维 | v2.0 自评 | 本版实测判定 | 修正 |
287
+ |:--|:--:|:--|:--|
288
+ | S 结构 | 8.5 | 行为面 7–8(L1 100%+制度句可得) | ✓ 档位相容(依据换源:实测行为面 7–8;9–10 档「四要素」在实测面无显形读数) |
289
+ | R 检索 | 8.5 | 7–8(双切点 ≥65%,与 OV 并列第一梯队) | ✓ 支持 |
290
+ | **J 判断** | **9.0** | 邻面读数(指出 2/9、反幻觉 66.7%) | **▽ 下修**——9.0 依据为结构证据(抽检工单/演化账本),在「凡分必挂实测」口径下不成立;且「发现不一致」面落后三家(完整 J 档位对六家一律不判) |
291
+ | **C 调用** | **9.0** | 7–8(引文 97.7–99.2%;地基使用:切A 7/19 六家第一、切B 5/20 中游) | **▽ 下修一档**(9.0 → 7–8 档)——9–10 档「零污染」无公开同尺读数;零材料净贡献 −9.9pp 需连带读 |
292
+ | **U 演化** | **8.5** | **7–8▲**(单家活体实测:修复闭环+回滚复证) | **○→▲ 结构自评撤回;经单家实测后按行为面判 7–8**(9–10 全自转未达) |
293
+ | **I 连续** | **8.5** | **7–8▲**(三问实测+L5 门槛记录) | **○→▲ 结构自评撤回;经单家实测后按行为面判 7–8**(跨副本待重测) |
294
+ | T 可信 | 8.5 | 7–8(语料内可回源 98–100%) | ✓ 支持(信息安全面无同尺实测,维持结构面封顶注) |
295
+
296
+ > 读法:**v2.0 的「综合 8.6」与「L5 稳固段」是结构取证口径、不可与实测口径互比**;实测口径下的正确表述=**灵枢与 OpenViking 在四维(S / R / C / T)并列行为第一梯队(7–8 档);灵枢的 U / I 经单家活体实测判 7–8▲(不与六家同尺并列);J 为邻面读数**;L4 / L5 的分口径判定见 §5.2。v2.0 报告中凡依据「能力存在性」的加分项(元认知/账本/零信任缺位等),仍一律不计——**U / I 本轮被计入,是因为它们有了行为实测(▲),不是因为它们有了机制声明**。
297
+
298
+ ---
299
+
300
+ ## 六、映射的边界与可证伪声明
301
+
302
+ 1. **行为面 vs 结构面**:本版一律行为面(§2.2②)。这意味着:内部机制存在但行为无显形者**不计分**(如零信任、元认知);行为显现但机制解释不同者**照计**(如 BM25 的 J 邻面高分)。读者若采信结构证据,可用各家架构文档另行重判——但那是另一把尺子。
303
+ 2. **小样本**:压缩代价面 n=9、截断外推面每切点 10 题——本报告已对全部小样本读数标注;凡双切点/多语料(秦吏/毛选)复现的读数优先采信。
304
+ 3. **代理指标的构造性**:映射规则(§3.2)是本报告设计物——**先写死、再判定、对六家统一**。它可被质疑(欢迎用原始读数重新落档),但不能被暗改。
305
+ 4. **U / I 的口径分层(v3.1)**:六家同尺面仍为「未测」(不是「不行」——是**没有测过**);灵枢的单家自测(▲)只解决「有没有行为证据」,**不解决「跨系统可比性」**。下一批实测仍登记:**「记忆系统 × 干预」**(把干预轮 92 题盲测面接到六家记忆系统线上——干预题考「撤掉一条后哪层失据/哪层照旧」,与 U 的响应侧同源);U / I 的公开测试集设计是标尺 §七 建议的下一步。
306
+ 5. **可证伪**:任一判定若发现:读数抄录错误、映射规则被违反、某家读数的口径与其他家不同源——对应档位应即修正。修正记录进本报告附录(或新版本)。
307
+ 6. **时点边界**:灵枢读数=v0.7.1(2026-10-04 重跑);其余五家读数=基准发布时点(2026-10-02 前后)的原生读数,未做同批重跑——「同尺」保障的是同一批实验与同一套判据,不担保五家均为各系统最新版本。
308
+ 7. **单家自测的性质(v3.1)**:U / I 的 7–8▲ 来自「以灵枢自身运行史为样本」的自测——被测对象与评分者同源(利益冲突已声明);对冲:判据=标尺 §2.3 原题面、探针脚本(`scripts/probe_u_l4_recheck.py`,隔离库可复算)、检索证据与全部读数公开。该自测**不得**与六家同尺读数并列,也不构成对任一第三方的评价。
309
+
310
+ ---
311
+
312
+ ## 七、附:数据核对表(判定的全部读数的台账指针)
313
+
314
+ | 判定用到 | 台账位置(`systems/readings.json`) |
315
+ |:--|:--|
316
+ | S:L1 逐字率、分档保留 | `切A.systems[*].L1_逐字率` · `切B.systems[*]` 同位、`地基分档保留` |
317
+ | R:L2/L2′、抑制形状 | `切A/切B.systems[*].L2_逐字保地基` · `L2p_语义存活` · `地基分档保留` |
318
+ | J:指出/覆盖/反幻觉 | `压缩代价.systems[*]`(指出/覆盖_严格/覆盖_宽松)· `秦吏轮.反幻觉_正确率`(真假探针逐家分解见公开发布文档《记忆系统对比·秦吏 v1.0》) |
319
+ | C:L3 引文可定位、地基使用、零材料 | `L3切A/L3切B.systems[*]`(引文逐字可定位_pct/地基使用)· `零材料对照` |
320
+ | T:依据轴、回源 | `秦吏轮.依据轴` · `秦吏轮.回源对照_echo` · A 声索/过清单=`L3切A.systems[*].A声索`/`A过清单`(切B 同位) |
321
+ | 写入成本 | `写入成本[*]` |
322
+ | 多语料复现 | `多语料复现`(因果栏按家均值/跨语料复现三条) |
323
+ | 模型线参照 | `docs/基线分析_v1.0.md`(参考实现 66.3%;外测 37–49.5%) |
324
+ | U / I 单家自测(▲) | 探针 `scripts/probe_u_l4_recheck.py`(隔离库可复算)· v1.0 门槛记录(2026-09-12:`result_l4.json`/`result_l4b.json`(回滚链)/`result_l5.json`/`result_l5b.json`;另有 L3 记录 `result_l3v2_A/B/C/D.json`,读数见 v1.0 报告 §五/§六/§七)· 三问检索证据(认知图节点可查) |
325
+
326
+ ---
327
+
328
+ ## 附:v3.1 复核修订记录(2026-10-04)
329
+
330
+ 独立复核(四环节:数据对源/公平性/修订面/自测面)发现逐条裁定后的实质修订:
331
+
332
+ 1. **回滚链表述更正**(§一 · §四·U):原写「内容逐字复原」失实——经双向独立复现确认 `evolution.rollback` 仅回写 `state_of` 状态字段(layer/confidence/importance/condition_space/non_applicable_conditions/edges/verification_basis),**正文不参与回滚**(覆盖后正文原样保留);本版全部改为「状态字段逐项复原」,探针脚本同步更正标签并加正文对照实测(原标签为误导源)。该更正**不改变 U 维判定**——修复闭环的主证据是 S1 缺口修复(ACCEPT→DEFER+显式缺口),不是回滚链。
333
+ 2. **时间跨度补对照**(§四·I):原「51 天跨度满足跨 30 天」外部无法复核;现给出双侧读数——运行史 51 天(首提交 2026-08-14)×记忆面(≥30 天节点 3,462 个、最早 2026-08-13,只读扫描口径)。
334
+ 3. **v1.0 单家 L3 记录补入**(§四·J):与 §四·I 的 L5 记录对称(20 组对抗对、拒绝率 1.00 PASS;边界:由 S 维物理分桶承担、`reject_strict=0`);**v3.1 未重测**、不计入同尺分档。
335
+ 4. **数字与措辞**:`op` 漏传「三度」→「四次」(与库内归档一致);S2 判定「已修复」→「假阳性已消除(非新增分支场景)」;S4 引文补全「:条件自相矛盾」;「设计稿 v0.3/v0.4」→ v0.4 正身(`sleep.py` 声明);价值观读法依据列补自述节点;零材料对照「截断外推题」补口径出处。
336
+ 5. **基准文档侧已知待更新项**(不影响本报告读数与档位):公开台账 `readings.json` 摘要句「两条单调律」尚未同步灵枢重跑后的现值(5/9→2/9);基准文档《记忆系统对比 v1.0》「越深的地基,能保住的系统越少」句与同组数值存在张力(控制论层 3 家 > 宪法层 2 家)——已在基准仓侧登记待同步。
337
+
338
+ ---
339
+
340
+ *本报告 v3.1 · 2026-10-04(v3.0=提交 90bb6bee;v3.1 补 U/I 单家活体自测;同日独立复核修订见上附) · 标尺:`AGI记忆系统评分标尺_v1.0`(未修改)· 数据:hive-memory-bench 公开台账 · 上版:`AGI七维评分报告_md_cg_v2.0.md`(单家自评,结构取证)*
@@ -2,7 +2,7 @@
2
2
 
3
3
  - 日期:2026-09-29
4
4
  - 修订:v1.0-r1(按读者反馈逐条处置:§1 表格拆「修前/修后」两列、§2 补 `append_jsonl` 行号与标志名澄清、§4.2 补容器命令与计数关系、§5.1 补 gate 依赖 `git add` 的机制、§5.3 补「指纹对齐」与 N230 指路、§5.4 补 `git diff` 四条实测、新增 §7 读者问题处置)
5
- - 仓库:`D:/program/dsh-memory-main`(下称 `<repo>`)
5
+ - 仓库:`<仓根>`(下称 `<repo>`)
6
6
  - 变更面(实跑 `git status --porcelain` 所见):`M md_cg/fsutil.py`、`M md_cg/mdcg.py`、`M scripts/linux_verify.sh`、`?? md_cg/test_n225_nonobject_load.py`(另有 `M package-lock.json`,与本次修复无关,见 §5.4)
7
7
  - 未 `git add` / 未 `commit` / 未 `push`
8
8
  - 本报告只写一行落盘产物(本文件);未改任何源码或其它文件
@@ -384,7 +384,7 @@
384
384
  - **判定:`ACCEPT`**(本工作流独立复核环节)。**依据**:实体面两条残余(§8.2 腿①②)与守卫判别力缺口(§5.3 第 8 行)**均已由该环节独立复现为「已收口」**——即残余①②在改前树上真崩、在现行树上不崩且合法记录不丢;判别力面则用「整组换空 ⇒ 转红」当场证伪了上一轮的零判别力状态(本节 §8.4 第 4 行用自己的探针独立复现同一条:`rc=1` + 「红基线失效」)。
385
385
  - **它列出的 uncovered:1 项(自标 `BLINDSPOT`)**——**报告「补强(v1.1)」段的数字核对无法执行**。它给出的证据:该报告全文 40180 字节 / 263 行,`补强` / `v1.1` / `残余` 命中数均为 0,`git diff HEAD -- docs/` 为空输出 ⇒ 被比对的该段**在复核当时不存在**。**成因是工序顺序**:工作流脚本里「报告修订员」的位次晚于「独立复核员」,追加该段的阶段排在复核之后。它同时**备好了机械基准**:该段若写「守卫断言数=65」「红项 25/16/14/6/2/5/2/2」,与其当时的实跑一致;任一处不符即报告失真。
386
386
  - **本节即该段**:上述两处数字与那份基准**逐项一致**(§8.4 前两行为本节实跑所得,非照抄采集)。⇒ 该项 BLINDSPOT 的**内容**已由本节消除,但**「由复核方独立比对」这一步仍未发生**(该环节已结束),本节不代称其已完成。
387
- - 该环节另自报的边界核验(照录):复核期间**未写工作区**(其开工与收尾的 `git status --porcelain -uall` 逐字一致);未 `git add`/`commit`/`push`;实验体全部 `tempfile.mkdtemp` 于系统临时目录并 `rmtree`(自测「临时根已清理:True」);`D:/program/AEIS` 目录 mtime 早于该会话、未被触碰。它另声明两点,与本节读码一致:守卫内**已无源码文本级断言**(见 §8.3.4 的 grep);假锚点 → `rc=2` + `ANCHOR-MISS`。
387
+ - 该环节另自报的边界核验(照录):复核期间**未写工作区**(其开工与收尾的 `git status --porcelain -uall` 逐字一致);未 `git add`/`commit`/`push`;实验体全部 `tempfile.mkdtemp` 于系统临时目录并 `rmtree`(自测「临时根已清理:True」);`<AEIS 工程根>` 目录 mtime 早于该会话、未被触碰。它另声明两点,与本节读码一致:守卫内**已无源码文本级断言**(见 §8.3.4 的 grep);假锚点 → `rc=2` + `ANCHOR-MISS`。
388
388
 
389
389
  ### 8.6 本轮**明确不修**的留存项(v1.0 §5.3 照留,本轮一字未动)
390
390
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **注记(2026-10-03 收口轮 · 编排侧)**:本文件为**第一轮现场记录**(23 断言/5 变异,F1『未修』等表述为当时状态)。收口轮(面内例外+无词面口径断言+三处增补:27 断言/6 变异;第一轮 DEFER → 补齐 → 第二轮 ACCEPT)见 `docs/eval/cons200_冲突检测选面_实施记录_v1.1.md`——状态口径以后者为准。
4
4
 
5
- **日期**:2026-10-03 | **被测面**:`D:\program\dsh-memory-main` 工作树(**未提交**——`git status --porcelain` 实列 `M md_cg/consistency.py`、`M md_cg/test_mode_parity.py`、`?? md_cg/test_cons200_scan_selection.py`、`?? .zcode/`;本报告落盘前实测)| **基线**:HEAD `9a1150dd21f4d7cb0d2a48933ea559a15518f7bd`(`git rev-parse HEAD` 实跑核实)
5
+ **日期**:2026-10-03 | **被测面**:`<仓根>` 工作树(**未提交**——`git status --porcelain` 实列 `M md_cg/consistency.py`、`M md_cg/test_mode_parity.py`、`?? md_cg/test_cons200_scan_selection.py`、`?? .zcode/`;本报告落盘前实测)| **基线**:HEAD `9a1150dd21f4d7cb0d2a48933ea559a15518f7bd`(`git rev-parse HEAD` 实跑核实)
6
6
 
7
7
  **关联**:
8
8
  - 设计稿 `docs/plans/stg条件化与结构索引_设计_v0.1.md`——本批为其**待签收点 5**(读码核实 `:107` 与签收记录 `:122`:「同族 `consistency.check` 的 `MAX_SCAN=200` 选面(字典序前 200 → 应改相关性/条件预筛)……**纳入本线第二实现批**(主体批不含;批间独立复核)」)的落地;
@@ -2,7 +2,7 @@
2
2
 
3
3
  **版本行**:v1.1-r1(收口轮;v1.1 主体+按读者反馈逐条修订——处置明细见 §七)
4
4
  **落位说明(编排侧收口)**:本文件原名 `docs/eval/undefined_修复记录_v1.0.md`(run args 丢失所致,来由见「『undefined』来由」节);编排侧收口更名为 `docs/eval/cons200_冲突检测选面_实施记录_v1.1.md`,报告内容未由编排侧改动。**文件名版本(v1.1)与版本行(v1.1-r1)分属落位约定与修订轮次,二者不一致非笔误**。
5
- **日期**:2026-10-03 | **被测面**:`D:\program\dsh-memory-main` 工作树(**未提交**——`git status --porcelain` 实列 `M md_cg/consistency.py`、`M md_cg/test_mode_parity.py`、`?? md_cg/test_cons200_scan_selection.py`、`?? docs/eval/cons200_冲突检测选面_实施记录_v1.0.md`、`?? .zcode/`)| **基线**:HEAD `9a1150dd21f4d7cb0d2a48933ea559a15518f7bd`〔本报告实跑〕
5
+ **日期**:2026-10-03 | **被测面**:`<仓根>` 工作树(**未提交**——`git status --porcelain` 实列 `M md_cg/consistency.py`、`M md_cg/test_mode_parity.py`、`?? md_cg/test_cons200_scan_selection.py`、`?? docs/eval/cons200_冲突检测选面_实施记录_v1.0.md`、`?? .zcode/`)| **基线**:HEAD `9a1150dd21f4d7cb0d2a48933ea559a15518f7bd`〔本报告实跑〕
6
6
 
7
7
  **本报告覆盖的闭环**:第一轮缺口 → 补齐(两最小条件+三处增补)→ 第二轮复核。
8
8
 
@@ -22,7 +22,7 @@
22
22
  |---|---|---|
23
23
  | **HEAD 树** | 未提交前的代码(`git archive HEAD`,`md_cg/audit.py` 462 行,无 `resolve_rulebook`) | 可(`git show HEAD:<path>`) |
24
24
  | **补强前中间态** | 首轮修复(v1.0)已落地、**本轮键类型闸未加**的那一版——即 14 条复现腿(§2)所跑的树 | **不可**:该状态磁盘上已不存在(本轮改动直接改在工作树上,未提交、无 stash;我在 `%TEMP%` 下找到的所有 `md_cg/audit.py` 同名副本经查全为 HEAD 形态:462 行、`resolve_rulebook` 缺席、`policy_bad_shape` 缺席)。故**其行号只原样转述工作流所报,本报告未重推导** |
25
- | **现行树** | 修复后的工作树 `D:\program\dsh-memory-main`(首轮 + 本轮全部改动) | 可(本报告 Read 所见行号) |
25
+ | **现行树** | 修复后的工作树 `<仓根>`(首轮 + 本轮全部改动) | 可(本报告 Read 所见行号) |
26
26
 
27
27
  **故全文行号一律标树**:`补强前:…`(工作流所报)/`现行:…`(本报告读码)。
28
28
 
@@ -20,7 +20,7 @@
20
20
  | 简称 | 是什么 | 怎么得到 |
21
21
  |---|---|---|
22
22
  | **HEAD 树** | 修前代码(`git archive HEAD` 导出的整树,`%TEMP%\i43head2_*\tree`) | 只读导出;HEAD 无 `resolve_rulebook`(实测 `hasattr(audit,'resolve_rulebook')` → `False`) |
23
- | **现行树** | 修复后的工作树 `D:\program\dsh-memory-main` | 本报告 §4.2 的实测均在其上 |
23
+ | **现行树** | 修复后的工作树 `<仓根>` | 本报告 §4.2 的实测均在其上 |
24
24
  | **工作流树** | 工作流做复现时所用(未由本报告取得) | — |
25
25
 
26
26
  ### 0.3 两个计数单位(不混淆)
@@ -196,7 +196,7 @@
196
196
  | 2 | 写链探针(`MdCGSecure(<临时root>)` + `install_default_gates(WritePipeline())` + `{'content_kind':'text', content:TEXT}`),随后二进制读 `inbox.jsonl` | **HEAD** | probe rc=0;`moved_to=review_queue`、`state=DEFER`;`inbox.jsonl` 468 与 469 字节(同字面跑两次);凭据与标记**字节面双命中**;`content` 与原文逐字相等 |
197
197
  | 3 | 同 #2,**env 未设** | 现行 | probe rc=0;`moved_to=rejected`、`state=REJECT`;`inbox.jsonl` 不存在;全库扫描凭据字节命中 `0`;负记忆含 `[已过滤:` 占位符 |
198
198
  | 4 | 同 #2,`MDCG_POLICY_FILE=<非法 JSON 文件>` | 现行 | probe rc=0;`moved_to=policy_unavailable`、`state=None`;落盘文件仅 `_keys.json` / `_keys.json.lock`;凭据字节命中 `0` |
199
- | 5 | `python -X utf8 -m md_cg.mcp_server`(临时 root + 临时 aux + 真签发令牌,stdin 送 EOF) | 现行,env 未设 | **server rc=0**;stderr `[mdcg-mcp] 写入策略:来源=package_default path=D:\program\dsh-memory-main\data\policy.json(forbidden=11 required=6)` |
199
+ | 5 | `python -X utf8 -m md_cg.mcp_server`(临时 root + 临时 aux + 真签发令牌,stdin 送 EOF) | 现行,env 未设 | **server rc=0**;stderr `[mdcg-mcp] 写入策略:来源=package_default path=<仓根>\data\policy.json(forbidden=11 required=6)` |
200
200
  | 6 | 同 #5 | **HEAD**,env 未设 | **server rc=0**;**stderr 恰 3 行**(路径 / 自报 / 自报文件);`policy`、`POLICY`、`规则库`、`规则`、`策略` 五关键词在 stdout+stderr 全体中命中均 `False` |
201
201
  | 7 | 同 #5 + `MDCG_POLICY_FILE={"forbidden": 1}` | 现行 | **server rc=1**;stderr 末行 `TypeError: 'int' object is not iterable`(`mcp_server.py:3907` → `audit.py:157`);策略行**未打印** |
202
202
  | 8 | 同 #7 换 `{"required": true}` 走 `python -X utf8 -m md_cg.mcp_server --show-config` | 现行 | **rc=1**、stdout 空;traceback `mcp_server.py:3799 → audit.py:159`(`'bool' object is not iterable`) |
@@ -1,6 +1,6 @@
1
1
  # issue50-c · 遗忘闸门 DEFER 出口元数据透传与 node_id 兜底——修复记录 v1.0
2
2
 
3
- > **日期**:2026-10-01 | **缺陷号**:issue50-c | **被测面**:`D:\program\dsh-memory-main` 工作树(未提交)
3
+ > **日期**:2026-10-01 | **缺陷号**:issue50-c | **被测面**:`<仓根>` 工作树(未提交)
4
4
  > **关联**:issue50-a(`forgetting` 分支④「半重复→DEFER」结构性不可达)→ `docs/eval/issue50_半重复待定复核_修复记录_v1.0.md`;
5
5
  > issue50-b(DEFER 出口接线入队)→ `docs/eval/issue50_待定复核入队_修复记录_v1.0.md`;本轮落修的是 **issue50-b 报告 §5.2 所列 uncovered 的 F1/F2 两项**。
6
6
  > **证据口径**:〔实跑〕= 我(报告撰写员)在本会话亲自执行并读到输出;〔采集〕= 本工作流复现阶段所得,我未重跑;〔复核实跑〕= 本工作流**独立复核阶段**所得,我未重跑(其探针在仓外临时目录)。
@@ -14,7 +14,7 @@
14
14
  | 名称 | 是哪棵树 | 本文哪里用它 |
15
15
  |---|---|---|
16
16
  | **修前**(= 缺陷现场) | 已应用 issue50-a / issue50-b、**未应用 issue50-c** 的 `md_cg/mdcos.py` | §一.3 的「修前」列、§二各腿的站点列 |
17
- | **当前盘**(= 修后) | `D:\program\dsh-memory-main` 工作树(a + b + c 都在) | 全文「修后」与所有〔实跑〕读数 |
17
+ | **当前盘**(= 修后) | `<仓根>` 工作树(a + b + c 都在) | 全文「修后」与所有〔实跑〕读数 |
18
18
  | **HEAD** | `git -C … diff` 的对照面(a/b/c 三批**均未提交**,故 HEAD 里 `mdcos.py` 三个改动都不存在) | §三.1 的 diff hunk 读数 |
19
19
 
20
20
  **行号来源(不是两种做法,只有一种)**:本文所有「修前」行号**不是本报告侧换算的结果,而是转引** issue50-b 报告 §3.1/§1.3 的表(该表由 b 报告实跑 `git diff` 得出,我读其正文转抄而来)。所有「当前盘」行号均为**本次读码所见**。两者是**同一棵树上的两种坐标**(同一处代码在修前树与当前盘上行号不同),不一致时以当前盘为准并列出差额;§二各腿站点列因此是**转引来的修前坐标**,不是我从当前盘反推的。
@@ -266,7 +266,7 @@ DEL_G_C_RC= 1
266
266
  ### 4.5 python 全量〔实跑〕
267
267
 
268
268
  ```
269
- python -X utf8 scripts/run_tests.py (仓根,无参数,工作目录 D:\program\dsh-memory-main)
269
+ python -X utf8 scripts/run_tests.py (仓根,无参数,工作目录 <仓根>)
270
270
  第 1 次:===== SUMMARY 302/302 通过,5 跳过(依赖缺失/平台不符) ===== 用时 221.6 s ;rc=0
271
271
  第 2 次:===== SUMMARY 302/302 通过,5 跳过(依赖缺失/平台不符) ===== 用时 223.6 s ;rc=0
272
272
  ```
@@ -283,7 +283,7 @@ python -X utf8 scripts/run_tests.py (仓根,无参数,工作目录
283
283
  | 栈一 | `docker … scripts/linux_verify.sh`(linux 侧 rust + python 十套) | `结果: 22 pass / 0 fail`;`[PASS] smoke_test (linux)`;`=== 汇总: 38 pass / 0 fail ===` | **0** |
284
284
  | 栈二 | Node TAP(`npm test`) | `# cancelled 0` / `# skipped 3` / `# todo 0` / `# duration_ms 11503.1857` | **0** |
285
285
 
286
- 本机 `docker` 可执行在 PATH(`C:\Program Files\Docker\Docker\resources\bin\docker.EXE`,本次实跑 `shutil.which` 读到),**本轮未执行任何容器**,故两栈读数一律为〔采集〕转述,我未复跑。
286
+ 本机 `docker` 可执行在 PATH(`<Program Files>\Docker\Docker\resources\bin\docker.EXE`,本次实跑 `shutil.which` 读到),**本轮未执行任何容器**,故两栈读数一律为〔采集〕转述,我未复跑。
287
287
 
288
288
  ### 4.7 读者反馈取证〔实跑·本会话新增,隔离临时根,不改仓库文件〕
289
289
 
@@ -340,7 +340,7 @@ python -X utf8 scripts/run_tests.py (仓根,无参数,工作目录
340
340
 
341
341
  - 依据为四态判定单:issue50-c(F1 DEFER 出口 meta 透传 + F2 `node_id=None` 兜底)判定 = **【成立 / ACCEPT】**。「四态判定单」即复核方用**四态术语(成立 / 削弱 / 证伪 / 待定)**给出的一份判定;本次材料只把最终结论(**成立(= ACCEPT)**)与依据交给我,**判定单原文未随材料给我**。
342
342
  - 复核范围与独立性:全部实验在 `%TEMP%/i50c_review` 与 `%TEMP%/i50c_*` 合成库跑,结束已清理(原文记「113→0,二次测量 12→0」——**采集材料未说明这两个数数的是什么**(临时文件?目录?合成库条目?),本报告不代它解释,只照录;可确定的是:其所述「工作区文件零改动」我本次复核确认——`git status` 与起始逐字相同;未 `git add`/`commit`/`push`、未用 `stash`)。
343
- - 复核的三组实验(均〔复核实跑〕,我未重跑):**① 修前崩溃腿现行不再崩 + 退化路径真发生**(现行 `probe.py D:/program/dsh-memory-main none` → 无异常、`verdict=DEFER`、`proposed_id_fallback=pre_d29863d9537d` 且 == 独立调用 `forgetting._prefeed_id(content)`、独立解析 `inbox.jsonl` 得 `queue_n=1`、accept 后落盘节点「**独立文件系统扫描出的正文与输入逐字相等**」(`content_match_fs=true`)、每次 `fs_node_ids == index_node_ids`);**② 合法输入与改动前逐位对照**(ACCEPT 腿 HEAD vs 现行 11 项状态键全同、fm「去时间量逐位相等」;DEFER 腿 pre-c vs 现行,差异**恰为 F1 承诺补回的键**;(另用**独立 oracle** 自算 fm diff:**该 oracle 自己那组载荷是 26 键**,差异仅 `['defer_reason','reviewer']`,与守卫白名单一致;**26 ≠ 本报告守卫的并集 27**,因两者载荷不同——详见 §4.7 的「三个键数」对照);**③ 删断言探针 / 非静默可观测面**(删组探针、fail-closed 探针、经 `mcp_server.call_tool` 读 DEFER 出口)。
343
+ - 复核的三组实验(均〔复核实跑〕,我未重跑):**① 修前崩溃腿现行不再崩 + 退化路径真发生**(现行 `probe.py <仓根> none` → 无异常、`verdict=DEFER`、`proposed_id_fallback=pre_d29863d9537d` 且 == 独立调用 `forgetting._prefeed_id(content)`、独立解析 `inbox.jsonl` 得 `queue_n=1`、accept 后落盘节点「**独立文件系统扫描出的正文与输入逐字相等**」(`content_match_fs=true`)、每次 `fs_node_ids == index_node_ids`);**② 合法输入与改动前逐位对照**(ACCEPT 腿 HEAD vs 现行 11 项状态键全同、fm「去时间量逐位相等」;DEFER 腿 pre-c vs 现行,差异**恰为 F1 承诺补回的键**;(另用**独立 oracle** 自算 fm diff:**该 oracle 自己那组载荷是 26 键**,差异仅 `['defer_reason','reviewer']`,与守卫白名单一致;**26 ≠ 本报告守卫的并集 27**,因两者载荷不同——详见 §4.7 的「三个键数」对照);**③ 删断言探针 / 非静默可观测面**(删组探针、fail-closed 探针、经 `mcp_server.call_tool` 读 DEFER 出口)。
344
344
  - 与我的独立读数交叉:复核【③】的**删断言探针与 fail-closed 探针两项,我在 §4.3 用自己的探针独立复现**(删 `g_a` → 变异①红项 11→3 且红项 = B1/B2/B3,逐字一致;假锚点 → `_anchor_check()` 1 条 + rc=2,一致);复核【③】所述「删 `g_c` → EXIT=1」,我在 §4.3 复到同一退出码(`_mutate_mode()` rc=1,④⑤ 红项数不符)。
345
345
 
346
346
  ### 5.2 复核的未覆盖面(标题承诺的「复核所列清单」原文**未随材料给我**)
@@ -1,6 +1,6 @@
1
1
  # issue50 · 半重复待定复核(forgetting 分支④ 结构性不可达)修复记录 v1.0
2
2
 
3
- > **日期**:2026-10-01 | **缺陷号**:issue50-a | **被测面**:`D:\program\dsh-memory-main` **工作树(未提交)**——1 个已修改跟踪件(`md_cg/forgetting.py`)+ 1 个未跟踪新守卫(`md_cg/test_i50a_half_dup_defer.py`)+ 未跟踪 `.zcode/`(工作流草稿面,非本次产物)。
3
+ > **日期**:2026-10-01 | **缺陷号**:issue50-a | **被测面**:`<仓根>` **工作树(未提交)**——1 个已修改跟踪件(`md_cg/forgetting.py`)+ 1 个未跟踪新守卫(`md_cg/test_i50a_half_dup_defer.py`)+ 未跟踪 `.zcode/`(工作流草稿面,非本次产物)。
4
4
  > **契约**:动态工作流 `dwfrun-4e2ef43d-…` 的 `args.contract`——「只加一行定点补丁:分支④ 判据删去 `and imp["score"] < IMPORTANCE_MIN`;其余六条分支的判据/顺序/文案与五个常量零改动;不得改断言迁就实现」。
5
5
  >
6
6
  > **证据分级(本报告不越界陈述)**:
@@ -59,7 +59,7 @@ elif red["max"] >= DUP_DROP and imp["score"] < IMPORTANCE_MIN:
59
59
  命令(脚本落 `%TEMP%/i50a_probe_report.py`,隔离 `tempfile.mkdtemp` 合成库,跑完已删):
60
60
 
61
61
  ```
62
- python -X utf8 C:\Users\test\AppData\Local\Temp\i50a_probe_report.py
62
+ python -X utf8 %TEMP%\i50a_probe_report.py
63
63
  ```
64
64
 
65
65
  读数(原文照录;`改前`=把分支④ 合取加回当前源码后 `exec` 出的等价改写,非 git HEAD 全文):
@@ -82,7 +82,7 @@ python -X utf8 C:\Users\test\AppData\Local\Temp\i50a_probe_report.py
82
82
  **命令**(只读打开在役留痕,未写入):
83
83
 
84
84
  ```
85
- python -X utf8 -c "import io,json,collections; rows=[json.loads(l) for l in io.open(r'D:\program\AEIS\data\mdcg\_forgetting.jsonl',encoding='utf-8',errors='replace') if l.strip()]; …"
85
+ python -X utf8 -c "import io,json,collections; rows=[json.loads(l) for l in io.open(r'<在役库根>\_forgetting.jsonl',encoding='utf-8',errors='replace') if l.strip()]; …"
86
86
  ```
87
87
 
88
88
  留痕记录**不存 `role` 字段**(字段集合=`t / node_id / layer / verdict / reason / importance / entropy / actor`),但每条带 `entropy.source_kind`——它是 `role` 的纯函数投影(`forgetting.py:90-102`),故可等价替代 `role` 做通道归因。交叉表(215 行):
@@ -156,7 +156,7 @@ python -X utf8 -c "import io,json,collections; rows=[json.loads(l) for l in io.o
156
156
  ### 3.2 `git diff` 实测(本报告实跑,原文照录)
157
157
 
158
158
  ```
159
- $ git -C D:/program/dsh-memory-main diff --stat -- md_cg/forgetting.py
159
+ $ git -C <仓根> diff --stat -- md_cg/forgetting.py
160
160
  md_cg/forgetting.py | 19 +++++++++++++++----
161
161
  1 file changed, 15 insertions(+), 4 deletions(-)
162
162
  ```
@@ -368,8 +368,8 @@ python -X utf8 -m md_cg.test_writelimit → AssertionError(E1),rc=1
368
368
  ### 4.7 在役库留痕只读核验(**本报告实跑**)
369
369
 
370
370
  ```
371
- $ python -X utf8 -c "…读 D:\program\AEIS\data\mdcg\_forgetting.jsonl…"
372
- D:\program\AEIS\data\mdcg isdir= True
371
+ $ python -X utf8 -c "…读 <在役库根>\_forgetting.jsonl…"
372
+ <在役库根> isdir= True
373
373
  _forgetting.jsonl exists= True
374
374
  行数= 215 verdict 分布= {'ACCEPT': 201, 'MERGE': 14}
375
375
  mtime= 2026-09-27 08:05
@@ -384,7 +384,7 @@ MDCG_ROOT env= None
384
384
  | 命题 | 本报告能给的证据 | 判定 |
385
385
  |---|---|---|
386
386
  | 工作流腿 5 提到的「路由记忆指向的在役库根」不存在(本机绝对路径字面量已按发布门禁 R3 口径抹除) | `os.path.isdir(...)` = `False`(本报告实跑) | **成立** |
387
- | `D:\program\AEIS\data\mdcg` 存在且是一个 MCG 数据根 | 目录内含 `_index.json`、`_forgetting.jsonl`、`_keys.json`、`_audit.jsonl` 等面;`contextual` 435 节点、`knowledge` 1247 节点(本报告实跑列目录) | **成立** |
387
+ | `<在役库根>` 存在且是一个 MCG 数据根 | 目录内含 `_index.json`、`_forgetting.jsonl`、`_keys.json`、`_audit.jsonl` 等面;`contextual` 435 节点、`knowledge` 1247 节点(本报告实跑列目录) | **成立** |
388
388
  | 该目录的 `_forgetting.jsonl` 由 DSH 插件/codebuddy 写入过 | 215 行里 `actor` 分布 = `{'dsh-memory': 194, 'codebuddy': 21}`;`dsh-memory` 与插件缺省 actor 同名(`src/index.ts:202` `actor: z.string().default('dsh-memory')`) | **成立(「曾由插件写到此处」)** |
389
389
  | **它「是当前的」在役数据根** | **给不出**。插件解析优先级是 `env MDCG_ROOT` → `<用户级状态根>/paths.json` → 配置项 → 默认 `<用户级状态根>/data/mdcg`(`src/index.ts:189-197`);本机 `MDCG_ROOT` **未设**(实跑 `os.environ.get("MDCG_ROOT")` 返回 `None`),且在 `~/.zcode`、`~/AppData/Roaming`、`~/.dsh`、`~/.config` 下**未找到 `paths.json`**(本报告实跑 glob)。⇒ **插件此刻解析到哪个根,本报告无法证明**;该路径也可能只是**历史写入根**或另一检出 | **未验证(已如实标注)** |
390
390
 
@@ -479,9 +479,9 @@ python -X utf8 -m md_cg.test_writelimit # AssertionError(E1
479
479
  python -X utf8 -m md_cg.test_p31_insight # 70/0,rc=0(连跑 6 轮均 rc=0)
480
480
  python -X utf8 -m scripts.test_utf8_boot_guard # 30/30,rc=0
481
481
  python -X utf8 -c "from md_cg import test_i50a_half_dup_defer as T; print(len(T._anchor_check()), T.main())" # 0 0(现状锚点)
482
- python -X utf8 -c "…读 D:\program\AEIS\data\mdcg\_forgetting.jsonl,按 entropy.source_kind × dup 分档 × verdict 交叉…" # 215 行;external_surprising×[0.60,0.85)×ACCEPT = 8
482
+ python -X utf8 -c "…读 <在役库根>\_forgetting.jsonl,按 entropy.source_kind × dup 分档 × verdict 交叉…" # 215 行;external_surprising×[0.60,0.85)×ACCEPT = 8
483
483
  python -X utf8 %TEMP%/i50a_sweep.py # 腿 4 等价补跑:8 档 → dup/novelty/imp 逐档;0.600 实测 0.5994 出窗口
484
- git -C D:/program/dsh-memory-main diff --stat -- md_cg/forgetting.py # 15 insertions(+), 4 deletions(-)
484
+ git -C <仓根> diff --stat -- md_cg/forgetting.py # 15 insertions(+), 4 deletions(-)
485
485
  python -X utf8 %TEMP%/i50a_probe_report.py # 改前 ACCEPT / 现行 DEFER(hint=0.60 与 hint=None 两路)
486
486
  python -X utf8 %TEMP%/i50a_e1_pairs.py # E1 断言:改前 True / 改后 False
487
487
  python -X utf8 %TEMP%/i50a_h_probe.py # E1 False;H1 False(groups=0)、H2 True、H3 False、H4 TypeError;落盘=1/5
@@ -1,6 +1,6 @@
1
1
  # issue50-b · 遗忘闸门 DEFER 待定复核入队——修复记录 v1.0
2
2
 
3
- > **日期**:2026-10-01 | **缺陷号**:issue50-b | **被测面**:`D:\program\dsh-memory-main` 工作树(未提交)
3
+ > **日期**:2026-10-01 | **缺陷号**:issue50-b | **被测面**:`<仓根>` 工作树(未提交)
4
4
  > **关联**:issue50-a(forgetting 分支④「半重复→DEFER」结构性不可达)→ `docs/eval/issue50_半重复待定复核_修复记录_v1.0.md`;
5
5
  > 设计依据 → `docs/plans/记忆自处理三档自治_设计_v0.2.md`(§八.2 在 `:145-152`,落码顺序在 `:184`)
6
6
  > **证据口径**:〔实跑〕= 我(报告撰写员)在本会话亲自执行并读到输出;〔采集〕= 本工作流复现阶段所得;〔复核实跑〕= 本工作流**独立复核阶段**所得,我未重跑(其探针在仓外临时目录)。
@@ -150,7 +150,7 @@
150
150
 
151
151
  ### L5(命令级)`test_writelimit` E 节旧编码转红
152
152
 
153
- - **载荷(命令)**:`cd D:/program/dsh-memory-main && python -X utf8 -m md_cg.test_writelimit`。
153
+ - **载荷(命令)**:`cd <仓根> && python -X utf8 -m md_cg.test_writelimit`。
154
154
  - **观测(异常/崩溃点)**:`rc=1`;`AssertionError: [FAIL] E1 knowledge 不聚合不限流 …`(`r_k1.verdict='ACCEPT'`(保护分支)/ `r_k2.verdict='DEFER'`,`reason='半重复 0.78∈[0.6,0.85) 且未触发不可遗忘保护(待定复核)'`,`duplicate_ratio=0.7777777777777778`,`duplicate_with='wl_k1'`);**堆栈停在 `test_writelimit.py:125`**(`check` 的 assert 在 `:37`)。
155
155
  - **站点**:改前-B `md_cg/test_writelimit.py:125-127`。
156
156
 
@@ -191,7 +191,7 @@
191
191
 
192
192
  ### L10 全量回归基线(采集时)
193
193
 
194
- - **载荷(命令)**:`cd D:/program/dsh-memory-main && python -X utf8 scripts/run_tests.py`。
194
+ - **载荷(命令)**:`cd <仓根> && python -X utf8 scripts/run_tests.py`。
195
195
  - **观测**:`rc=1`;`===== SUMMARY 299/300 通过,5 跳过(依赖缺失/平台不符)=====`;失败:**`md_cg.test_writelimit`(唯一失败项,即 L5 的 E1)**。受影响守卫单跑均 rc=0:`md_cg.test_i50a_half_dup_defer`(26 通过/0 失败)、`md_cg.test_p9_forget_protect`(37/0)、`md_cg.test_p9c_dedup_hints`(31/0)、`md_cg.test_p2_mcp`(64/0)。
196
196
  - **站点**:`scripts/run_tests.py`;失败断言改前-B `md_cg/test_writelimit.py:125`。
197
197
 
@@ -397,7 +397,7 @@ python -X utf8 scripts/run_tests.py
397
397
 
398
398
  ### 6.5 硬边界
399
399
 
400
- - 全部实验根在系统临时目录(`tempfile.mkdtemp`)且跑完清理;**未触碰在役数据根 `D:\program\AEIS`**;
400
+ - 全部实验根在系统临时目录(`tempfile.mkdtemp`)且跑完清理;**未触碰在役数据根 `<AEIS 工程根>`**;
401
401
  - **未 `git add` / `commit` / `push`**;本次只写入本报告一个文件;
402
402
  - 报告不含明文凭据。
403
403