@furongjun1999/dsh-memory 0.4.7 → 0.4.8

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 (172) hide show
  1. package/README.md +92 -37
  2. package/codebuddy/CODEBUDDY.md +195 -185
  3. package/docs/Pi/345/217/257/345/255/246/344/271/240/344/274/230/347/202/271_/347/201/265/346/236/242/345/244/247/350/204/221/346/224/271/350/277/233/344/272/244/346/216/245_20260915.md +144 -0
  4. package/docs/README.md +111 -0
  5. package/docs/discipline/harnesses.yaml +215 -152
  6. package/docs/discipline/templates/full.md.tmpl +60 -58
  7. package/docs/eval//347/254/254/344/270/211/346/226/271/351/252/214/350/257/201/346/212/245/345/221/212_LoCoMo_/347/201/265/346/236/242_.md +127 -0
  8. package/docs/eval//347/254/254/344/270/211/346/226/271/351/252/214/350/257/201/346/212/245/345/221/212_LoCoMo_/347/201/265/346/236/242_.png +0 -0
  9. package/docs/eval//347/254/254/344/270/211/346/226/271/351/252/214/350/257/201/346/212/245/345/221/212_/347/201/265/346/236/242_vs_dejavu_/347/273/237/344/270/200/350/257/204/345/210/206_v7.md +202 -0
  10. package/docs/experiments/m4-role-probe/census.py +86 -0
  11. package/docs/experiments/m4-role-probe/probe.py +89 -0
  12. package/docs/experiments/mapped_confidence/bench_mapped_conf.py +216 -0
  13. package/docs/experiments/mapped_confidence/post_check.py +75 -0
  14. package/docs/experiments/mapped_confidence/repro_thirdparty_tol.py +83 -0
  15. package/docs/experiments/mapped_confidence/result_mapped_conf.json +215 -0
  16. package/docs/{ → hive/}/350/234/202/345/267/242/345/267/245/344/275/234/350/256/260/345/277/206_/351/241/271/347/233/256/350/256/241/345/210/222.md +14 -2
  17. package/docs/{README → mdcg/README}/350/257/246/347/273/206/347/211/210_v0.4.5.md +9 -9
  18. package/docs/{ → mdcg/}/344/270/273/344/273/243/347/220/206/345/255/220/344/273/243/347/220/206/350/256/260/345/277/206/346/236/266/346/236/204/350/256/276/350/256/241.md +1 -1
  19. 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 +261 -0
  20. package/docs/{ → mdcg/}/345/215/225/345/205/203/350/207/252/346/210/221/351/224/232/347/202/271_/347/263/273/347/273/237/346/217/220/347/244/272/350/257/215/346/240/207/345/207/206_v0.3.md +1 -1
  21. package/docs/mdcg//345/255/220/344/273/243/347/220/206/351/205/215/347/275/256/346/240/207/345/207/206_v0.4.md +148 -0
  22. package/docs/{ → mdcg/}/346/272/220/347/240/201/347/272/247/346/236/266/346/236/204/345/256/241/350/256/241_GPT/346/211/271/350/257/204/345/257/271/347/205/247_v1.0.md +2 -2
  23. package/docs/{ → mdcg/}/347/201/265/346/236/242/344/270/211/345/261/202/346/213/206/345/210/206/350/247/204/345/210/222_v0.1.md +181 -181
  24. package/docs/{ → mdcg/}/347/274/272/345/217/243/345/215/225_P0/346/224/266/345/217/243_v0.1.md +2 -2
  25. package/docs/{ → mdcg/}/350/256/244/347/237/245/345/233/276_G4-G8/347/274/272/345/217/243/350/243/201/345/256/232/345/215/225_v0.1.md +1 -1
  26. package/docs/{ → mdcg/}/350/256/244/347/237/245/345/233/276_/347/264/242/345/274/225/344/270/216/345/267/245/347/250/213/350/247/204/350/214/203/345/214/226_/350/256/241/345/210/222_v0.1.md +4 -4
  27. package/docs/{ → mdcg/}/350/256/260/345/277/206/346/223/215/344/275/234/347/263/273/347/273/237_MdCGOS/344/270/216MCP/346/216/245/345/205/245_v0.1.md +2 -2
  28. package/docs/plans/GridWorld/346/234/200/345/260/217/351/227/255/347/216/257/350/247/204/346/240/274_v0.1.md +176 -0
  29. package/docs/{ → swarm/}/350/234/202/347/276/244/344/272/222/350/201/224_v0.1.md +3 -3
  30. package/docs/swarm//350/234/202/347/276/244/345/220/214/351/224/231/346/243/200/346/265/213/345/256/236/351/252/214/345/215/217/350/256/256_v0.1.md +242 -0
  31. package/docs/theory//345/215/225/347/272/277/347/250/213/344/270/216/346/263/250/346/204/217/345/212/233/351/233/206/344/270/255_/346/227/240/344/272/211/350/256/256/347/220/206/350/256/272/346/226/207/346/241/243_v1.0.md +129 -0
  32. package/docs/theory//345/271/266/345/217/221/345/277/205/347/204/266/346/200/247/347/220/206/350/256/272_v0.2.md +134 -0
  33. package/docs/theory//346/246/202/345/277/265/345/210/206/345/261/202/345/257/271/351/275/220/350/241/250_v0.1.md +145 -0
  34. package/docs/{ → theory/}/347/220/206/350/256/272_/346/234/272/345/210/266_/344/273/243/347/240/201_/345/256/236/351/252/214_/347/274/272/345/217/243/347/237/251/351/230/265_v0.1.md +3 -3
  35. package/docs/{ → theory/}/347/220/206/350/256/272/344/273/223/346/213/206/345/210/206/344/270/216/347/231/275/347/256/261/347/237/245/350/257/206/345/272/223/345/206/205/350/277/201_v0.1.md +1 -1
  36. package/docs/theory//350/256/244/347/237/245/344/273/243/347/220/206/344/270/216/346/224/266/346/225/233/347/273/223/346/236/204_/346/235/241/344/273/266/350/256/272/351/207/215/346/236/204_v0.1.md +221 -0
  37. package/docs/world_model//344/270/226/347/225/214/346/250/241/345/236/213_/347/245/236/347/273/217/347/275/221/347/273/234/345/272/225/345/261/202/346/236/266/346/236/204_v1.0.md +237 -0
  38. package/docs//345/255/230/347/256/227/344/270/200/344/275/223/346/236/266/346/236/204/345/255/246/344/271/240_/345/244/226/351/203/250/347/220/206/350/256/272/345/257/271/347/205/247/344/270/216/350/267/257/347/272/277/344/272/244/346/216/245_20260916.md +98 -0
  39. package/docs//345/255/230/347/256/227/344/270/200/344/275/223/347/245/236/347/273/217/347/275/221/347/273/234/346/236/266/346/236/204_/346/200/273/347/272/262/344/270/216/344/272/244/346/216/245_20260916.md +109 -0
  40. 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 +34 -6
  41. package/docs//347/231/275/347/256/261/345/214/226/347/272/262/351/242/206_/344/270/211/351/241/271/347/233/256/345/255/246/344/271/240/346/200/273/346/236/266/346/236/204/344/270/216Ghidra/344/272/244/346/216/245_20260916.md +104 -0
  42. package/docs//350/256/260/345/277/206/350/257/204/345/256/241/347/263/273/347/273/237_/347/253/213/351/241/271/350/256/276/350/256/241/344/270/216/346/226/275/345/267/245/344/272/244/346/216/245_20260915.md +183 -0
  43. package/dsh/README.md +1 -1
  44. package/lib/hooks.d.ts +5 -0
  45. package/lib/hooks.js +10 -1
  46. package/lib/lib/prompt_safety.d.ts +48 -0
  47. package/lib/lib/prompt_safety.js +62 -0
  48. package/md_cg/audit.py +76 -2
  49. package/md_cg/bench_membench.py +10 -5
  50. package/md_cg/bench_progressive.py +48 -9
  51. package/md_cg/branches.py +275 -0
  52. package/md_cg/ccgc.py +884 -0
  53. package/md_cg/conformance.py +662 -0
  54. package/md_cg/consistency.py +1 -1
  55. package/md_cg/corpus.py +1 -1
  56. package/md_cg/eval_common.py +6 -5
  57. package/md_cg/forgetting.py +11 -3
  58. package/md_cg/fsutil.py +63 -1
  59. package/md_cg/identity.py +2 -2
  60. package/md_cg/insight.py +2 -2
  61. package/md_cg/lifecycle.py +262 -0
  62. package/md_cg/mcp_server.py +547 -140
  63. package/md_cg/mdcg.py +206 -18
  64. package/md_cg/mdcos.py +512 -50
  65. package/md_cg/metacognition.py +2 -2
  66. package/md_cg/mreview/__init__.py +25 -0
  67. package/md_cg/mreview/__main__.py +107 -0
  68. package/md_cg/mreview/bundle.py +170 -0
  69. package/md_cg/mreview/candidates.py +253 -0
  70. package/md_cg/mreview/govern.py +674 -0
  71. package/md_cg/mreview/locate.py +905 -0
  72. package/md_cg/mreview/pipeline.py +701 -0
  73. package/md_cg/mreview/rules/duplication.json +21 -0
  74. package/md_cg/mreview/rules/field_coverage.json +54 -0
  75. package/md_cg/mreview/rules/source_license.json +21 -0
  76. package/md_cg/mreview/rules/template_flow.json +21 -0
  77. package/md_cg/mreview/ruleset.py +238 -0
  78. package/md_cg/nodefile.py +38 -0
  79. package/md_cg/predict.py +24 -6
  80. package/md_cg/protect.py +4 -4
  81. package/md_cg/refindex.py +41 -2
  82. package/md_cg/scrub.py +5 -1
  83. package/md_cg/self_state.py +1 -1
  84. package/md_cg/semantic/en_normalizer.py +85 -25
  85. package/md_cg/sustain.py +18 -0
  86. package/md_cg/tasks.py +447 -0
  87. package/md_cg/test_action_derive.py +203 -0
  88. package/md_cg/test_audit_rotate.py +270 -0
  89. package/md_cg/test_branches.py +249 -0
  90. package/md_cg/test_ccg_perturb.py +1 -1
  91. package/md_cg/test_ccgc.py +423 -0
  92. package/md_cg/test_conformance.py +343 -0
  93. package/md_cg/test_en_pipeline.py +24 -0
  94. package/md_cg/test_health_scale.py +173 -0
  95. package/md_cg/test_identity_attribution.py +6 -0
  96. package/md_cg/test_index_durability.py +224 -0
  97. package/md_cg/test_lifecycle.py +309 -0
  98. package/md_cg/test_mr_m1.py +679 -0
  99. package/md_cg/test_mr_m2.py +587 -0
  100. package/md_cg/test_mr_m3.py +703 -0
  101. package/md_cg/test_mr_m4.py +485 -0
  102. package/md_cg/test_p1.py +1 -1
  103. package/md_cg/test_p11_consistency.py +1 -1
  104. package/md_cg/test_p12_metacognition.py +2 -2
  105. package/md_cg/test_p16_self_state.py +1 -1
  106. package/md_cg/test_p26_refindex.py +1 -1
  107. package/md_cg/test_p27_docindex.py +22 -2
  108. package/md_cg/test_p28_refcheck.py +1 -1
  109. package/md_cg/test_p29_session_ingest_export.py +1 -1
  110. package/md_cg/test_p2_mcp.py +7 -1
  111. package/md_cg/test_p38_contextualize.py +1 -1
  112. package/md_cg/test_p39_vision_evidence.py +1 -1
  113. package/md_cg/test_p40_refine_worklist.py +1 -1
  114. package/md_cg/test_p41_evolve_patrol.py +1 -1
  115. package/md_cg/test_p42_provenance.py +1 -1
  116. package/md_cg/test_p43_pooling.py +41 -13
  117. package/md_cg/test_read_clip.py +137 -0
  118. package/md_cg/test_review_conformance.py +310 -0
  119. package/md_cg/test_tasks.py +409 -0
  120. package/md_cg/test_tool_face.py +189 -0
  121. package/md_cg/test_twophase.py +286 -0
  122. package/md_cg/test_writepipe.py +210 -0
  123. package/md_cg/theory.py +1 -1
  124. package/md_cg/tokens.py +95 -5
  125. package/md_cg/tool_face.py +250 -0
  126. package/md_cg/twophase.py +221 -0
  127. package/md_cg/units.py +546 -0
  128. package/md_cg/vision_evidence.py +1 -1
  129. package/md_cg/weights.py +1 -1
  130. package/md_cg/whitebox.py +1 -1
  131. package/md_cg/whitebox_kb/data/verify_cache.json +28 -0
  132. package/md_cg/whitebox_kb/data/verify_savings.jsonl +46 -0
  133. package/md_cg/whitebox_kb/wisdom/audit_log/chain_heat.json +10 -10
  134. package/md_cg/whitebox_kb/wisdom/wisdom-book-cloud.db-shm +0 -0
  135. package/md_cg/whitebox_kb/wisdom/wisdom-book-cloud.db-wal +0 -0
  136. package/md_cg/writelimit.py +19 -3
  137. package/md_cg/writepipe.py +372 -0
  138. package/package.json +1 -1
  139. package/src/hooks.ts +10 -1
  140. package/src/lib/prompt_safety.ts +62 -0
  141. package/zcode/AGENTS.md +195 -185
  142. package/docs//345/212/237/350/203/275/350/260/203/347/224/250/346/230/240/345/260/204/350/241/250_v0.1.md +0 -221
  143. /package/docs/{AGI → eval/AGI}/344/270/203/347/273/264/350/257/204/345/210/206/346/212/245/345/221/212_md_cg_v1.0.md" +0 -0
  144. /package/docs/{AGI → eval/AGI}/344/270/203/347/273/264/350/257/204/345/210/206/346/212/245/345/221/212_md_cg_v2.0.md" +0 -0
  145. /package/docs/{ → eval/}/345/256/236/351/252/214/346/226/271/346/241/210_/345/255/246/344/271/240/351/227/255/347/216/257AB/344/270/216/346/250/252/350/257/204_v1.0.md" +0 -0
  146. /package/docs/{ → eval/}/346/250/252/350/257/204_/345/205/255/345/256/266100/351/242/230/344/270/255/350/213/261/345/217/214/346/237/245_v1.0.md" +0 -0
  147. /package/docs/{guardrail-charter.md → mdcg/guardrail-charter.md} +0 -0
  148. /package/docs/{lingshu_tutorial.html → mdcg/lingshu_tutorial.html} +0 -0
  149. /package/docs/{memory-assessment.html → mdcg/memory-assessment.html} +0 -0
  150. /package/docs/{memory_score.html → mdcg/memory_score.html} +0 -0
  151. /package/docs/{memory_score.png → mdcg/memory_score.png} +0 -0
  152. /package/docs/{release_v0.3.0.md → mdcg/release_v0.3.0.md} +0 -0
  153. /package/docs/{release_v0.4.5.md → mdcg/release_v0.4.5.md} +0 -0
  154. /package/docs/{tool_table_v0.3.0.md → mdcg/tool_table_v0.3.0.md} +0 -0
  155. /package/docs/{ → mdcg/}/344/273/244/347/211/214/344/270/216/350/247/222/350/211/262/346/235/203/350/201/214/345/210/206/347/246/273_v0.1.md" +0 -0
  156. /package/docs/{ → mdcg/}/347/201/265/346/236/24282/345/267/245/345/205/267_/345/212/237/350/203/275/346/225/264/347/220/206/344/270/216/350/277/201/347/247/273/346/230/240/345/260/204_v0.1.md" +0 -0
  157. /package/docs/{ → mdcg/}/347/201/265/346/236/242MCP/345/267/245/345/205/267/346/200/273/350/241/250_v3.4.md" +0 -0
  158. /package/docs/{ → mdcg/}/347/201/265/346/236/242_/350/207/252/346/210/221/345/261/202/345/256/232/344/271/211.md" +0 -0
  159. /package/docs/{ → mdcg/}/350/256/244/347/237/245/345/233/276_MD/347/233/256/345/275/225/346/226/271/346/241/210_v0.1.md" +0 -0
  160. /package/docs/{ → mdcg/}/350/256/244/347/237/245/345/233/276_/346/235/241/344/273/266/347/251/272/351/227/264/345/220/210/346/210/220/344/270/216/347/224/237/346/225/210/346/235/241/344/273/266/345/217/243/345/276/204_v0.1.md" +0 -0
  161. /package/docs/{ → mdcg/}/350/256/244/347/237/245/345/233/276/344/275/234/344/270/272/350/256/260/345/277/206/346/223/215/344/275/234/347/263/273/347/273/237_/350/257/204/344/274/260/344/270/216/350/267/257/347/272/277_v0.1.md" +0 -0
  162. /package/docs/{ → plans/}/345/221/275/345/220/215/346/262/273/347/220/206_/351/241/271/347/233/256/350/256/241/345/210/222.md" +0 -0
  163. /package/docs/{ → plans/}/347/237/245/350/257/206/345/233/276/350/260/261/351/241/271/347/233/256_/344/272/244/346/216/245/346/226/207/346/241/243_20260914.md" +0 -0
  164. /package/docs/{ → swarm/}/350/234/202/347/276/244/345/244/232/346/231/272/350/203/275/344/275/223_/344/275/277/347/224/250/346/212/245/345/221/212_20260913.md" +0 -0
  165. /package/docs/{ → swarm/}/350/234/202/347/276/244/345/244/232/346/231/272/350/203/275/344/275/223_/345/212/237/350/203/275/350/257/264/346/230/216_v0.6.md" +0 -0
  166. /package/docs/{ → swarm/}/350/234/202/347/276/244/347/233/262/345/214/272/346/240/207/350/256/260_v1.0.md" +0 -0
  167. /package/docs/{ → theory/}/344/277/241/346/201/257/345/267/256/344/270/272/344/273/200/344/271/210/345/277/205/347/204/266/345/255/230/345/234/250/344/270/224/350/207/252/347/204/266/346/211/251/345/244/247.md" +0 -0
  168. /package/docs/{ → theory/}/346/231/272/350/203/275/347/232/204/345/205/254/347/220/206/345/214/226/345/237/272/347/237/263.md" +0 -0
  169. /package/docs/{ → theory/}/346/231/272/350/203/275/347/232/204/350/256/244/347/237/245/350/277/207/347/250/213.md" +0 -0
  170. /package/docs/{ → theory/}/346/231/272/350/203/275/350/256/2723.4.md" +0 -0
  171. /package/docs/{ → theory/}/347/231/275/347/256/261/346/231/272/350/203/275/346/230/257/344/273/200/344/271/210/357/274/237.md" +0 -0
  172. /package/docs/{ → theory/}/347/231/275/347/256/261/346/231/272/350/203/275/347/263/273/345/210/227/302/267/347/254/254/344/272/224/347/257/207/357/274/232/350/256/251AI/347/234/237/346/255/243/350/243/205/344/270/212/350/256/260/345/277/206.md" +0 -0
@@ -0,0 +1,176 @@
1
+ # GridWorld 最小闭环规格 v0.1
2
+
3
+ > 目的:回应外部评审两轮共识——系统最大缺口是「行动/环境落地」:预测→行动→世界变化→预测误差→模型更新的闭环不存在。缺口矩阵 `docs/theory/理论_机制_代码_实验_缺口矩阵_v0.1.md:51`(#25 三端口架构)已文档声明输出端口,但**专属具身场景测试**仍留白。本文件设计一个最小 Grid World 闭环实验,把「预测→行动→观测→误差→回灌→模型更新」焊成一条可跑通、可度量、可审计的链。
4
+ >
5
+ > **本文件是规格**:启动实现须使用者批准;本文不改任何代码。
6
+ >
7
+ > 诚实边界先行:自建玩具环境(确定性/全观测/可枚举/单目标)证据强度受限(GPT 评审已声明)——本实验证明的是**闭环机制存在且收敛**,不是「世界模型能力证明」(§8)。
8
+
9
+ ---
10
+
11
+ ## 1. 可复用资产清单(调研结论)
12
+
13
+ 闭环所需零件仓内**全部已存在**,缺口只在「动作/环境」一段(§6)。逐条核对过的接口:
14
+
15
+ | 资产 | 位置 | 签名(核对过) | 闭环角色 |
16
+ |---|---|---|---|
17
+ | 每动作候选枚举 | `md_cg/predict.py:226` | `branch_candidates(cg, node_id, semantic=True) -> [{node_id, confidence, source, relation_type, condition}]` | **动作选择器**:当前状态节点出边枚举,`condition` 字段承载动作 |
18
+ | 多步路线预测 | `md_cg/predict.py:541` | `routes(cg, start_id=None, blindspot_id=None, horizon=3, max_branches=5, sort="composite", limit=0, semantic=True)` | 多步预测面(M3 规划评测);route 含 `path/confidence/uncertainty_bound/score` |
19
+ | 预测反馈回灌 | `md_cg/predict.py:678` | `feedback(cg, predicted_node_id, actual_node_id=None, hit=None, note="", actor="predict", sync_self=True, channel=None)` | **模型更新落点**:hit→指向边置信度 +0.05(`_boost_incoming` `:599`);miss→`add_rejected` 负记忆;`sync_self=True` 自动刷自我状态卡 |
20
+ | 命中率动态死区 | `md_cg/predict.py:655` | `dynamic_hit_threshold(cg, limit=200)`;常量 `MIN_SAMPLES=50`(`:40`)、`BASE_HIT_RATE=0.40`(`:41`)、`EDGE_BOOST=0.05`(`:43`)、`PRIOR_STRENGTH=20`(`:48`) | 自我校准:样本<50 不触发反思;threshold=max(BASE, mean−2σ) |
21
+ | 通道贝叶斯 | `md_cg/predict.py:319` / `:364` | `beta_posterior(hits, prior_k=20, base=0.40)`;`channel_posterior(cg, channel=None, limit=200)` | 可信度后验(置信度≠可信度);`channel="gridworld"` 通道分离 |
22
+ | 预测统计 | `md_cg/predict.py:888` | `stats(cg, limit=20)` → `{calls, routes_generated, feedback_samples, hit_rate, beta, dynamic, recent}` | 指标读数口 |
23
+ | 盲区五态闭环 | `md_cg/predict.py:790` | `learn_blindspots(cg, blindspot_id=None, limit=8, horizon=3, max_branches=5, apply=False, actor="insight")`;五态 `unknowable/no_anchor/unresolved/carried/resolved`(`:797-801`);`apply=True` 落 `gap_hint`(幂等,`:765`) | 元认知闭环:失败区域→待补线索;`_learn.jsonl` 留痕 |
24
+ | 因果可达验证 | `md_cg/predict.py:922` | `causal_path(cg, a_id, b_id, max_depth=5)` | M1 冒烟:验证播种图因果连通性 |
25
+ | 探索提案 | `md_cg/autonomy.py:95` | `proposals(cg, window=200, limit=3, enforce_gain=True)`;评分 `=W_D2·Σ\|d2\|+W_BLINDSPOT·BLINDSPOT+W_DEFER·DEFER`(权重 `:34`),score≤0 不提案 | 探索信号源;**只读 `_reflection.jsonl`**(缺口 G4) |
26
+ | 探索闭环 | `md_cg/autonomy.py:158` | `explore(cg, apply=False, limit=3, window=200, actor="autonomy", bypass_gain=False)`;P-T-40 四保护(`gain_gate` `:51`) | 元认知面:提案→五态验证→回写;`_explore.jsonl` 留痕 |
27
+ | 反思留痕 | `md_cg/mdcg.py:1472` | `MdCG.reflect(query, results, user_feedback=None)` → 记录 `{t, query, d_prev, d_curr, d_delta, d2, states, n_results, feedback}`(`:1487-1497`) | d2/BLINDSPOT 信号产生点,proposals 唯一输入 |
28
+ | 检索(带资格态) | `md_cg/mdcg.py:1247` | `MdCG.search(query, layer=None, k=20, context=None, min_results=1, record=True, include_neg=True, judge=True, pools=None, session=None)` | reflect 的 results 来源;`judge=True` 产出 qualification |
29
+ | 认知图构造 | `md_cg/mdcg.py:477` | `MdCG(root, autoflush=64)` | 实验用独立临时 root,不碰生产库 |
30
+ | 自我状态刷新 | `md_cg/self_state.py:438` | `refresh(cg, subject="self:lingshu", window=20, ..., actor="self_state", force=False, strict=False, session=None)`(幂等 fingerprint `:208`,版本链 `_self_state.jsonl`) | 指标④读数源;`snapshot` `:184` |
31
+ | 自我预测面 | `md_cg/self_state.py:235` | `_prediction_face(cg)` → `{hit_rate, beta_mean, beta_ci95, threshold, reflect, ece}` | 自我可靠性指标直读 |
32
+ | 元认知观测面 | `md_cg/metacognition.py:123` / `:248` / `:167` | `trace(cg, window=50)`、`blindspots(cg, limit=20, window=200)`、`calibration(cg, max_scan=2000)` | 情绪面/ECE 旁证 |
33
+ | mdcos 面板 | `md_cg/mdcos.py:2282` / `:2292` / `:2303` / `:1912-1924` | `predict_routes(...)`、`predict_feedback(predicted_node_id, actual_node_id=None, hit=None, note="", actor="predict", sync_self=True)`、`predict_stats(...)`、`insight(action="explore"/"learn")` | 高层入口;predict_feedback **无 channel 参数**(缺口 G5) |
34
+ | 输出端口对照 | `md_cg/sustain.py:230` / `:297` | `mutual_watch(cg, peer, *, restart_cmd=None, d=None, interval, restart_cooldown, fresh_timeout, poll=0.5, spawner=None)` | #25 既有最小具身形态;本实验是其**环境侧**补充,不替换 |
35
+
36
+ **账本同构约定**:既有 append-only jsonl——`_prediction.jsonl`(`md_cg/predict.py:62`)、`_learn.jsonl`(`:724`)、`_explore.jsonl`(`md_cg/autonomy.py:36`)、`_reflection.jsonl`(`md_cg/metacognition.py:105`)、`_self_state.jsonl`(`md_cg/self_state.py:74`)。统一形态:`type`/`t`/`actor` 前置字段 + `append_jsonl` 失败不阻塞(如 `md_cg/predict.py:86-90`)。本实验新增 **`_gridworld.jsonl`** 同构留痕(§5)。
37
+
38
+ ---
39
+
40
+ ## 2. 环境接口(零依赖,纯 python stdlib)
41
+
42
+ 对齐零依赖纪律(`md_cg/predict.py:23` 同款声明)。建议形态 `md_cg/gridworld.py`(另案,本文只定接口):
43
+
44
+ ```python
45
+ class GridWorldEnv:
46
+ """最小确定性网格世界:W×H(默认 5×5),单 agent 单目标,静态障碍。"""
47
+
48
+ def __init__(self, width=5, height=5, start, goal,
49
+ obstacles=frozenset(), seed=None): ...
50
+ def reset(self) -> str:
51
+ """回起点,episode+1,返回初始 state_id("gw_s_x_y")。"""
52
+ def actions(self, state_id) -> tuple:
53
+ """合法动作:("up","down","left","right") 剔除出界项。"""
54
+ def transition(self, state_id, action) -> str:
55
+ """纯函数:确定性转移,可离线全量枚举。"""
56
+ def step(self, state_id, action) -> tuple:
57
+ """执行 → (next_state_id, reward, done)。"""
58
+ ```
59
+
60
+ 确定性规则(全部可机器断言,M1 验收项):
61
+
62
+ | 规则 | 定义 |
63
+ |---|---|
64
+ | 确定性转移 | 同一 `(s, a)` 永远映射同一 `s'`(`transition` 纯函数,无随机项) |
65
+ | 碰撞 | 目标格是墙(出界)或障碍 → **原地不动**(可学的条件规则,非非法动作) |
66
+ | 奖励 | 到达 goal +1,其余 0;无折扣、无中间奖励 |
67
+ | 终止 | `done = (next_state_id == goal_id)` |
68
+ | 观测 | **全观测**:观测=状态本身,不做部分可观测(诚实边界内,§8) |
69
+
70
+ ---
71
+
72
+ ## 3. 状态 ↔ 认知图编码
73
+
74
+ 世界模型落在认知图的「状态节点 + 动作条件边」,是 `branch_candidates` 的原生数据形态,**零改动**对接:
75
+
76
+ | 编码项 | 规格 | 依据 |
77
+ |---|---|---|
78
+ | 状态节点 id | `gw_s_<x>_<y>` | `_slug` 惯例(`md_cg/self_state.py:95`) |
79
+ | 层 | **必须 `knowledge`** | `_SAFE_LAYERS=("knowledge","contextual","structural")`(`md_cg/predict.py:592`)——hit 分支 `_boost_incoming`(`:615`)只改这三层,其他层**静默不改边**,模型更新闭环失效(缺口 G2) |
80
+ | 正文 | CCG 五行齐全:`# 功能名:格(x,y)` / `# 生效条件:…` / `# 执行:…` / `# 子功能:…` / `# 不适用条件:…` | `_is_settled`(`md_cg/predict.py:739-757`)判「知识层+五要素」为 resolved——五态闭环才能出 `resolved` 终态 |
81
+ | 边 | `edges=[{"target": s_next, "relation_type": "causal", "condition": "动作:上", "confidence": 0.5}]` | `CAUSAL_BRANCH_TYPES=("causal","sequential")`(`:50`);`condition` 经 `chain.edge_condition` 透传进候选(`:239`)——**动作信息沿既有通道流动,无需新字段** |
82
+ | 初始置信度 | 0.5(无先验声明;上限 1.0 封顶,`:623`) | 诚实:播种即「未经验证」 |
83
+ | 标签 | `tags=["gridworld", "gw_pos:<x>_<y>"]` | 检索/审计隔离面 |
84
+ | 频道约定 | `feedback(..., channel="gridworld")` | `channel_posterior` 按面分层(`:364-375`),与既有通道零混淆 |
85
+
86
+ ---
87
+
88
+ ## 4. 闭环管线(observe→predict→execute→error→feedback→learn)
89
+
90
+ | # | 步骤 | 对接(签名见 §1) | 说明 |
91
+ |---|---|---|---|
92
+ | 1 | observe | `env.reset()` / `env.step()` → `state_id` | 全观测 |
93
+ | 2 | 候选动作 | `predict.branch_candidates(cg, state_id, semantic=False)` | **`semantic=False`**:玩具环境边即全集,关闭语义诱导防伪因果门噪声(D-002 门 `:169` 无增益) |
94
+ | 3 | 预测 | 首候选=预测终态 `predicted_node_id`;多步面(M3):`predict_routes(start_id=state_id, horizon=3)` | 候选的 `condition` 即动作 |
95
+ | 4 | 决策+执行 | 解码 `condition`→`a`;`next_state, reward, done = env.step(state_id, a)` | 无候选(未播种邻域)→ ε-greedy uniform 探索(M2 固定 ε=0.2 占位;与 `gain_gate` 的探索资格协同属 M3 可选) |
96
+ | 5 | 误差计算 | `hit = (predicted_node_id == actual_next_node_id)` | **显式传 hit**,不依赖 feedback 内部 `pred==act` 字符串判定(`:693-694`;缺口 G3) |
97
+ | 6 | 误差回灌 | `predict.feedback(cg, predicted_node_id, actual_next_node_id, hit=hit, note=f"ep{e}/s{t}", actor="gridworld", channel="gridworld")` | hit→边置信度+0.05(**模型更新**);miss→`add_rejected`(负证据);`sync_self=True` 刷自我卡 |
98
+ | 7 | 反思留痕(必选步) | `results, _ = cg.search(状态描述, k=4)`;`cg.reflect(f"gw:ep{e}:{state_id}", results)` | 产 d2/states 信号——proposals 唯一输入(缺口 G4) |
99
+ | 8 | 元认知闭环(每 episode 末) | `predict.learn_blindspots(cg, apply=True)`;或 `autonomy.explore(cg, apply=True, limit=3)` | 失败区域→五态终判→`gap_hint`;`_explore.jsonl` outcomes 供下轮 `gain_gate` |
100
+ | 9 | 自我面(每 episode 末) | `self_state.refresh(cg, actor="gridworld")` | 幂等(fingerprint 不变跳过);版本链留痕 |
101
+ | 10 | 留痕 | `_gridworld.jsonl`(§5) | 实验主账本 |
102
+
103
+ 语义对应评审闭环:**observe(1)→predict(2-3)→execute(4)→世界变化→prediction error(5)→feedback(6)→模型更新(边置信度/负记忆)→下轮预测改变**。元认知支线(7-8)与自我支线(9)复用既有链路。
104
+
105
+ ---
106
+
107
+ ## 5. 审计留痕(`_gridworld.jsonl`)
108
+
109
+ ```jsonc
110
+ // step(每步一条)
111
+ {"type": "step", "t": 0.0, "actor": "gridworld",
112
+ "episode": 3, "step": 7, "state": "gw_s_1_2", "action": "up",
113
+ "predicted": "gw_s_1_3", "actual": "gw_s_1_3", "hit": true,
114
+ "reward": 0, "done": false, "n_candidates": 4, "channel": "gridworld"}
115
+ // episode_end(每 episode 一条)
116
+ {"type": "episode_end", "t": 0.0, "episode": 3, "steps": 18, "hits": 14,
117
+ "reached_goal": true, "hit_rate": 0.7778, "n_rejected_new": 2,
118
+ "edge_conf_sum": 41.35, "actor": "gridworld"}
119
+ ```
120
+
121
+ 同构纪律:`type`/`t`/`actor` 前置(对齐 `_explore.jsonl` 形态 `md_cg/autonomy.py:199-205`);append 失败不阻塞;指标全部可从 `_gridworld.jsonl` + `predict.stats` + `self_state.snapshot` 重算(白箱可审计)。
122
+
123
+ ---
124
+
125
+ ## 6. 识别出的对接缺口
126
+
127
+ 调研发现的真缺口(规格层裁定,均**不改既有代码**):
128
+
129
+ | # | 缺口 | 取证 | 规格裁定 |
130
+ |---|---|---|---|
131
+ | G1 | **动作概念缺位**:predict 全链只认「节点+边」,无动作空间抽象;`routes` 是图内路径生成器不是动作选择器 | `md_cg/predict.py:477-520`(DFS 无动作参数) | 以「边 `condition` 字段承载动作」编码(§3);选择器=branch_candidates 首候选解码。动作沿既有 `condition` 通道流动,零改动 |
132
+ | G2 | **层硬约束**:hit 分支 `_boost_incoming` 只改 `_SAFE_LAYERS` 三层,其余层静默不改边 | `md_cg/predict.py:592`、`:615` | 状态节点强制落 `knowledge` 层(§3);M1 冒烟加断言:feedback 后边置信度确有上升 |
133
+ | G3 | hit 隐式判定是 `pred==act` 字符串相等 | `md_cg/predict.py:693-694` | 实验显式传 `hit=True/False`,不依赖字符串约定 |
134
+ | G4 | **盲区信号依赖 reflect**:`autonomy.proposals` 只读 `_reflection.jsonl`,闭环不调 `reflect()` 则零信号、五态闭环空转(「信号在记录、无人在听」防复发) | `md_cg/autonomy.py:107` | 管线第 7 步为**必选步**(§4),每步 search(record=True, judge=True)+reflect |
135
+ | G5 | **mdcos.predict_feedback 不透传 channel**(库层有,封装层无) | `md_cg/mdcos.py:2292-2293` vs `md_cg/predict.py:679` | 驱动器**直调库层** `predict.feedback(..., channel="gridworld")`;既有封装不动(面选择,非缺陷) |
136
+ | G6 | `dynamic_hit_threshold` 样本<50 不触发反思(MIN_SAMPLES=50) | `md_cg/predict.py:40`、`:662-665` | 不构成障碍:主判据读 `beta_posterior`(无门槛);反思触发是滞后旁证非主判据 |
137
+
138
+ ---
139
+
140
+ ## 7. 验证指标与分阶段里程碑
141
+
142
+ ### 7.1 验证指标(四类,全部可机器断言)
143
+
144
+ | 指标 | 定义 | 读数口 | 判据(M3) |
145
+ |---|---|---|---|
146
+ | ①预测误差随轮次下降 | 逐步误差=1−hit;episode 级=1−hit_rate;后验均值=β 后验 mean | `_gridworld.jsonl`、`predict.stats()["beta"]["all"]`(`md_cg/predict.py:888-901`) | 后 20% episodes 的后验均值 > 前 20% + 0.2;逐 episode 命中率回归斜率>0(误差单调下降,允许噪声) |
147
+ | ②策略稳定性 | 重复同状态同动作率;每 episode 步数(steps-to-goal) | `_gridworld.jsonl` step 聚合 | 确定性环境下最后 3 episodes 同状态动作一致率 ≥0.95;steps-to-goal 后段 < 前段 |
148
+ | ③条件模型变化 | 边置信度漂移 Σ\|Δconf\|;rejected 新增数;命中边集合收敛 | cg edges 直读 + `n_rejected_new` | EDGE_BOOST 累积集中在通往 goal 的边上;最后 N episodes rejected 新增=0、无新增命中边(模型停止变化=收敛) |
149
+ | ④自我可靠性 | hit_rate / beta_mean / beta_ci95 / reflect(脱离死区)随 episode 演化 | `self_state.snapshot()["prediction"]`(`md_cg/self_state.py:235`) | beta_ci95 收窄;reflect 由 True→False(≥50 样本且过动态阈值);`refresh` 版本链可回放 |
150
+
151
+ 对照组(M3 必配):**未学习基线**——同环境同 episode 数,但不跑 feedback(边置信度恒 0.5);两臂 hit rate 必须显著分离,否则①不成立。
152
+
153
+ ### 7.2 里程碑(每阶段独立验收)
154
+
155
+ | 阶段 | 内容 | 验收判据(可独立断言) |
156
+ |---|---|---|
157
+ | **M1 环境冒烟** | GridWorldEnv 确定性断言(同一 `(s,a)` 复跑 100 次同 `s'`);9~25 格状态节点+动作条件边播种到临时 root;`branch_candidates` 枚举无异常;`routes()` 返回 `status=ok` 且路径连续;`causal_path(start, goal)` 连通;G2 断言(feedback 后边置信度上升) | 环境与播种层全绿;**不涉及预测质量** |
158
+ | **M2 闭环跑通** | ≥10 episodes 端到端无异常;六账本(`_gridworld`/`_prediction`/`_reflection`/`_learn`/`_explore`/`_self_state`)均非空;至少一次到达 goal;`reflect` 留痕含 d2 | 闭环不死、账本可审计、管线第 7 步有产出 |
159
+ | **M3 指标显著** | 四类指标判据全过 + 对照组分离 | 数字入实验结论文档,判定「闭环机制验证通过」(非「世界模型能力证明」,§8) |
160
+
161
+ ---
162
+
163
+ ## 8. 诚实边界
164
+
165
+ - **玩具环境证据强度受限**(GPT 评审已声明,本规格如实继承):确定性/全观测/可枚举/单目标——结论只支持「预测→行动→误差→更新→行为改善」的**闭环机制存在且收敛**;不支持「世界模型能力」主张(泛化、部分可观测、非平稳、组合泛化)。对外表述必须用前一句口径。
166
+ - **模型更新是确定性账本式更新**:EDGE_BOOST=0.05 线性增量(`md_cg/predict.py:43`),非参数梯度学习;D-006 口径=工程初值非协议承诺。
167
+ - **ε-greedy 是占位策略**:M2 固定 ε=0.2;探索的「资格裁决」(σ(Gain) 增益门槛)与本环 ε 的协同只列 M3 可选项,不作为 M2 验收面。
168
+ - **单目标奖励无折扣**:不引入 RL 复杂度;本实验不与任何 RL 基线比名次,只做自我前后对照。
169
+
170
+ ---
171
+
172
+ ## 9. 边界与实现前置
173
+
174
+ - 本文件是**规格**;启动实现须使用者批准。实现建议形态:`md_cg/gridworld.py`(env+runner)+ `md_cg/test_gridworld.py`(确定性断言+闭环端到端+指标断言),临时 root(`MdCG(root=<tempdir>)`,`md_cg/mdcg.py:477`),不碰生产库。
175
+ - 实现后归档按第 16 条纪律:只记核心修改(内容/原因/位置/验证结论),账本与断言数字入结论。
176
+
@@ -2,8 +2,8 @@
2
2
 
3
3
  > 把「同源智能体」连接成蜂群:**版本层管公理、连接层管信任、单元层管职责**。
4
4
  > 本文档是**设计定稿**;层0(版本层)已实现并回归通过,见 §10 与 §12 迭代记录。
5
- > 相关:`docs/guardrail-charter.md`(宪章 v2.0)、`md_cg/tokens.py`(令牌)、
6
- > `md_cg/identity.py`(五单元与位置推断)、`docs/智能的公理化基石.md`(§2.9 信任)。
5
+ > 相关:`docs/mdcg/guardrail-charter.md`(宪章 v2.0)、`md_cg/tokens.py`(令牌)、
6
+ > `md_cg/identity.py`(五单元与位置推断)、`docs/theory/智能的公理化基石.md`(§2.9 信任)。
7
7
 
8
8
  ---
9
9
 
@@ -13,7 +13,7 @@
13
13
  |---|---|
14
14
  | 定位 | 蜂群互联的**信任层设计**;不改变单节点认知机制 |
15
15
  | 上位规范 | 智能论协议(内部宪法)> 护栏宪章(对外刑法),依据宪章元规则 |
16
- | 前置成果 | 令牌与角色权职分离 v0.1(`docs/令牌与角色权职分离_v0.1.md`) |
16
+ | 前置成果 | 令牌与角色权职分离 v0.1(`docs/mdcg/令牌与角色权职分离_v0.1.md`) |
17
17
  | 状态 | v0.1 设计稿 · 层0 已实现(`md_cg/theory.py`,P22 43/43 通过) |
18
18
  | 观测位置 | 设计者视角(奠基声明五):从整体查看认知图、识别未知、决定方向;**观测不干预** |
19
19
 
@@ -0,0 +1,242 @@
1
+ # 蜂群同错检测实验协议 v0.1(CTP 核心命题「多数≠真」验证设计)
2
+
3
+ > **性质**:实验协议设计文档,非实现。启动任何实现(注入器代码、聚合补丁、测试脚本)须使用者批准。
4
+ > **任务来源**:外部评审要求验证 CTP(共同信任协议)核心命题——3 个 agent 同时犯同一种错误(系统性误观测)时,系统能否识别「共识不等于真相」。
5
+ > **对象**:`swarm/`(蜂群多智能体,第五件套)信任聚合与证据面现状;理论参照 `CommonTrustProtocol/docs/`(仓外理论仓,只读引用)。
6
+ > **取证基线**:本仓 main 分支当前工作区(2026-09-15)。行号以当日文件为准。
7
+
8
+ ---
9
+
10
+ ## 一、目的与理论命题
11
+
12
+ CTP 理论主张:**共识 ≠ 真相**。多个协作者给出一致结论,不构成该结论正确的证据——只有外部可观测的验证基底(编译/测试/测量/形式化证明等独立裁决来源)才能约束输出(`CommonTrustProtocol/docs/theory/智能的认知过程.md` L233-263:「系统不能自己编故事说"我觉得对了",它需要一个外部可观测的验证基底」;`智能的公理化基石.md` L408:「信任可以度量、可以更新、可以被否决(验证基底裁决后失效)」)。
13
+
14
+ 本协议设计一个最小故障注入实验:让 N 个实例**同时观测到同一份伪证据**(系统性误观测),检验蜂群现有信任聚合面在 3/3 同错输入下的行为,并给出「真伪判据=证据基底分离」的退化判准与机制缺口清单。
15
+
16
+ **平台形态诚实边界**:蜂群实例是确定性 VM 子进程(术数程序,非 LLM agent)。「误观测」在本平台形态下 = 污染的输入(初始符号)或污染的程序逻辑,而非模型幻觉。注入器据此设计(§三)。
17
+
18
+ ---
19
+
20
+ ## 二、现状调研:蜂群信任与证据面
21
+
22
+ ### 2.1 信任的产生——自报制(核心事实)
23
+
24
+ | 机制 | 位置 | 当前语义 |
25
+ |---|---|---|
26
+ | 信任值寄存器 | `swarm/rust_runtime/src/vm.rs` L21 | `信任值` 是 VM 内建符号(BUILTIN_TRUST_VALUE),程序内可读写 |
27
+ | 程序内修改 | `vm.rs` L408-415 | `德(DE)` 指令直接修改 trust_value(加 delta)——信任升降由**实例自身程序逻辑**决定 |
28
+ | 信任阈值路由 | `vm.rs` L24, L430 | 内建 `信任阈值` 缺省 0.7,程序可据 trust 值分支(仅实例内部决策用) |
29
+ | 终态输出 | `vm.rs` L595-596 | 实例终态 JSON 携带 trust 字段(千分位舍入) |
30
+ | 协调器信任提交 | `swarm/rust_runtime/src/swarm.rs` L929-940 | 实例终态 trust 字段**直接采信**为该实例信任值;仅做 0-1 夹取;error 终态无 trust 字段时沿用上一轮值(L930 注释:实例故障不推平信任曲线) |
31
+
32
+ **关键结论**:信任是**自报值**。协调器不验证实例为何自报该值,不存在「证据→信任」的裁决链。实例程序写「德 +0.5」信任即升,写「德 -0.3」信任即降——升降的全部依据在实例自身代码里,协调器零否决权。
33
+
34
+ ### 2.2 信任聚合
35
+
36
+ | 机制 | 位置 | 当前语义 |
37
+ |---|---|---|
38
+ | 聚合公式 | `swarm.rs` L1247-1271 | 从各实例最后终态收集 trust(夹取 0-1),计算 T_avg / T_min / T_variance / T_alignment |
39
+ | T_alignment 定义 | `swarm.rs` L1267-1271 | T_alignment = 1 - T_variance / T_avg(avg>0 时);Python 参照 `swarm/rust_swarm.py` L129-139(对齐 aeis.swarm.trust_aggregator.snapshot 操作化定义) |
40
+ | 报告透出 | `swarm.rs` L1313-1318(report_json) | trust 四元组以 6 位小数进报告;`swarm/swarm_cli.py` L99 摘要透出 |
41
+
42
+ **语义要点**:T_alignment 度量的是「实例间信任值的离散程度」,**不是**结论正确性。全部实例信任值一致(无论对错)时 T_variance=0 → T_alignment=1.0(理论最大值)。
43
+
44
+ ### 2.3 健康分(health)
45
+
46
+ | 机制 | 位置 | 当前语义 |
47
+ |---|---|---|
48
+ | 四因子公式 | `swarm/rust_runtime/src/health.rs` L5-7, L51-84 | score = 0.4×成功率 + 0.2×在线率 + 0.2×(1-威胁率) + 0.2×integrity;integrity = 验签通过事件占比 × gossip 覆盖率 |
49
+ | error 判定 | `swarm.rs` L879-884 | 终态含 error 键 = 该轮失败(威胁事件);`serve.rs` L278-283 VM 执行异常产出 error 终态 |
50
+ | integrity 数据通路 | `swarm.rs` L1203-1207 | 单机在线自签自验恒过、重放事件已过坏尾守卫 → verify_fail 恒 0(代码注释原文);区分度在跨机场景启用 |
51
+ | 与信任的关系 | 全文检索确认 | **无**。health 只进报告(`swarm.rs` L1322-1340),不回馈 trust 计算,不参与任何路由/晋升/降级决策 |
52
+
53
+ ### 2.4 反例 / 修正通道
54
+
55
+ | 机制 | 位置 | 当前语义 |
56
+ |---|---|---|
57
+ | G-R3 复算修正信号 | `swarm.rs` L893-927 | protocol 拓扑下 verifier 子进程重放 primary 完整输入逐位复算;不一致时产出「修正信号」事件(level=1,P1),终态仍以 primary 为准(verifier 仅复核) |
58
+ | G-R1 反思触发器 | `swarm.rs` L1024-1063 | 四触发:每 100 轮(L1027-1029);error 终态连续 2 轮(L1030-1041);T_avg 连续 3 轮下降(L1048-1057);实例退场(L1059-1063)。命中产出「修正信号」事件(level=2,P2) |
59
+ | 维生边界 | `swarm.rs` L693-695 | 修正信号**仅记录+透出(P2 观察级),不自动改路由**;P0/P1 介入留待真实重大分歧场景(盲区登记 BS-6,`docs/swarm/蜂群盲区标记_v1.0.md` L47-52) |
60
+
61
+ **关键结论**:修正信号是当前唯一的反例通道,但它(a)由「复算不一致」或「信任值下降趋势」触发,而非由「证据被否决」触发;(b)触发后无任何信任/路由后果(纯观察级)。
62
+
63
+ ### 2.5 证据存储(WAL)
64
+
65
+ | 机制 | 位置 | 当前语义 |
66
+ |---|---|---|
67
+ | WAL 事件行 | `swarm.rs` L1005-1023 | append-only events.jsonl,每行 HMAC-SHA256 签名(签名串 v0.7.1:seq/type/from/to/round/ts/payload,L373-382) |
68
+ | 轮末快照 | `swarm.rs` L1100-1165 | 快照行存 trusts+states(条件空间 space_id 随快照持久,L1126-1130);sync_all 提交点,恢复语义见 L436-528 |
69
+ | 独立验签 | `swarm/rust_swarm.py` L88-126 | Python hashlib/hmac 交叉复核 Rust 手写 SHA256;快照行验签但不计入事件口径 |
70
+
71
+ **语义要点**:WAL 存的是**事件流**(谁在何时给谁发了什么),不是**证据**。事件 payload 无来源标注、无验证基底字段、无真伪属性——WAL 能证明「某实例在某轮说了某话」(不可篡改),不能证明「某话为真」。
72
+
73
+ ### 2.6 promote/degrade 判据
74
+
75
+ **不存在**。全仓检索确认:信任无分级体系(无晋升/降级阈值)、健康分不影响信任(§2.3)、修正信号不改信任(§2.4)。信任值的全部变化来源 = 实例程序自身的德指令 + 实例故障时沿用上轮。跨实例信任传播仅有一种形式:路由 payload 的 `@trust` 占位符(`swarm.rs` L964;`swarm/rust_swarm.py` L32)把源实例终态信任值作为消息内容发给目标实例——目标实例如何使用完全由其程序决定,协调器不做任何交叉校验。
76
+
77
+ ### 2.7 实例间对账面(现有的「一致」语义)
78
+
79
+ | 机制 | 位置 | 当前语义 |
80
+ |---|---|---|
81
+ | gossip 对账 | `swarm.rs` L1272-1278 | 全部 gossip 目标实收水位相等 = gossip_consistent——**投递一致性**,非内容一致性 |
82
+ | 复算对账 | `swarm.rs` L893-927 | verifier 与 primary **同输入同程序**(确定性 VM)→ 复算一致是结构性必然 |
83
+ | 消息内容对账 | — | **无**。没有任何机制比较不同实例对同一观测的结论是否一致(更无真伪裁决) |
84
+
85
+ ---
86
+
87
+ ## 三、故障注入形态:最小可行注入器
88
+
89
+ ### 3.1 伪证据三属性(设计约束)
90
+
91
+ | 属性 | 含义 | 本协议的实现判据 |
92
+ |---|---|---|
93
+ | 可构造 | 注入路径确定、零代码改动可达 | 经 swarm.json 初始符号注入(§3.2),一行配置完成 |
94
+ | 可重复 | 确定性 VM 下同输入必同终态,N 轮可复现 | 同 config+同 WAL 重入逐位一致(既有 B1 幂等语义,`swarm.rs` L710-727) |
95
+ | 可检测基底缺失 | 伪证据**在结构上**缺失可验证基底,而非靠真值对照才能识别 | 伪证据不携带 verification_basis 字段(对照:大脑端 `md_cg/nodefile.py` L58-64 已有八档枚举——蜂群端无对应物,这正是被测缺口) |
96
+
97
+ ### 3.2 注入点选择
98
+
99
+ | 候选注入点 | 判定 | 理由 |
100
+ |---|---|---|
101
+ | **A. 初始符号注入(选定)** | 可行,零代码改动 | `make_swarm_config` 接受每实例 symbols(`swarm/rust_swarm.py` L27-47);每轮完整环境注入实例(`swarm.rs` L584-603)——向全部实例 symbols 写入同一伪观测值即构成「系统性误观测」。这是平台形态下「所有 agent 观测到同一伪证据」的忠实映射:共享同一(被污染的)观测通道 |
102
+ | B. WAL 直接注入 | 不可行(守卫正常拒绝) | 事件行须过 HMAC 验签(`swarm.rs` L468, L490),外部注入必被坏尾守卫截断——恰证明完整性面无缺口,不构成「系统性误观测」注入面 |
103
+ | C. 路由 payload 注入 | 备选(第二轮变体) | 经 routes payload 携带伪观测跨实例传播(`swarm.rs` L962-1003),可模拟「污染经 gossip 扩散」——留作扩展臂 E3(§六) |
104
+ | D. 术数程序注入 | 备选(对照解释用) | 污染程序逻辑(如把判定阈值写错)同样产生 3/3 同错,但它测的是「程序缺陷」而非「观测缺陷」,只作对照解释,不作主实验 |
105
+
106
+ ### 3.3 注入器规格(最小实现)
107
+
108
+ ```text
109
+ 输入:swarm.json(既有格式,swarm_cli.py L13-16)
110
+ 注入器 = 配置预处理脚本(协议层,不改 swarm/ 源码):
111
+ 1) 读基础 config(实例表/术数源码/路由表)
112
+ 2) 对实验组:向全部实例 symbols 追加伪观测键值对
113
+ 如 {"传感器X读数": 99, "观测轮次": R}(真值 50;伪证据无 basis 字段)
114
+ 3) 对照组:symbols 注入真观测 {"传感器X读数": 50, ...} 或不注入
115
+ 4) 输出 inject_swarm.json → 交既有 python -m swarm.swarm_cli run 执行
116
+ 伪证据形态:与实例术数程序判定条件严格对齐(程序「若 传感器X读数 大于 80
117
+ 则 德 0.5」——伪值 99 必触发信任上升,真值 50 不触发)
118
+ ```
119
+
120
+ **示例术数程序**(全部实例共用同一 pbc——BS-4 异构程序未实现,`docs/swarm/蜂群盲区标记_v1.0.md` L33-38,单字节码恰是「同构观测」的现成条件):
121
+
122
+ ```text
123
+ 问曰:如何处理观测?
124
+ 答曰:读数超阈值则采信并提升信任。
125
+ 术曰:
126
+ 1。若 传感器X读数 大于 80,则 德 0.5;
127
+ 2。止。
128
+ ```
129
+
130
+ ---
131
+
132
+ ## 四、共识判据:3/3 同错输入下的推演(基于代码现状)
133
+
134
+ 设 3 实例(初始 trust=0.1)共用上例程序,实验组注入伪读数 99、对照组真读数 50,运行 1 轮:
135
+
136
+ ### 4.1 逐字段推演
137
+
138
+ | 报告字段 | 实验组(3/3 同错) | 对照组(3/3 正确) | 行号依据 |
139
+ |---|---|---|---|
140
+ | 各实例终态 trust | 0.6(0.1+0.5,德指令触发) | 0.1(不触发) | `vm.rs` L408-415, L929-940 |
141
+ | T_avg | 0.6 | 0.1 | `swarm.rs` L1256 |
142
+ | T_variance | 0(三值相等) | 0 | `swarm.rs` L1262-1266 |
143
+ | **T_alignment** | **1.0(理论满分)** | **1.0(理论满分)** | `swarm.rs` L1267-1271 |
144
+ | health.score | 1.0 满分(无 error 轮、在线满、integrity 恒 1) | 1.0 满分 | `health.rs` L51-84 + `swarm.rs` L1203-1207 |
145
+ | recalc_mismatches | 0(verifier 同输入重放,确定性 VM 同终态) | 0 | `swarm.rs` L893-927 |
146
+ | 修正信号 | 无(无 error、T_avg 上升不触发任何触发器) | 无 | `swarm.rs` L1024-1063 |
147
+ | gossip_consistent | true(投递对账与内容无关) | true | `swarm.rs` L1272-1278 |
148
+
149
+ ### 4.2 推演结论(核心)
150
+
151
+ 1. **3/3 同错在现有聚合面上与 3/3 全对不可区分**:两组 T_alignment 均为 1.0、health 均满分、零修正信号。同错场景下系统输出的是「最高对齐+最健康」读数——T_alignment 把系统性误观测**奖励**为完美一致。
152
+ 2. **伪证据晋升结果**:当前系统无信任分级,晋升即「信任值本身上升」——伪证据使全群信任从 0.1 升至 0.6,且该上升在报告面呈现为健康状态。若存在下游消费方按 T_avg/T_alignment 做决策(如 `@trust` 路由传播),伪信任将带着 1.0 的对齐背书向外扩散(`swarm.rs` L964)。
153
+ 3. **多轮无自愈**:T_avg 连续 3 轮下降触发器(L1048-1057)只对「信任下降」敏感;同错升信任永不触发。error 触发器(L1030-1041)对「终态含 error 键」敏感;同错是成功终态,不触发。**全部四个反思触发器对系统性误观测均盲**。
154
+ 4. **唯一可能检出异见的机制也不在本平台**:N=4(3 同错+1 异见者)时,异见者终态 trust=0.1、同错者 0.6 → T_avg≈0.475、T_alignment≈0.901——异见者在现有语义下的效果是**拉低对齐度**:「说真话的少数派」表现为对齐破坏者,而非伪共识的暴露者。该反直觉读数本身就是实验的重要产出。
155
+
156
+ ---
157
+
158
+ ## 五、退化判准:证据基底分离(CTP)与机制缺失清单
159
+
160
+ ### 5.1 应有行为(理论判准)
161
+
162
+ CTP 判据:伪证据缺失可验证基底时,**不因多数派采信而晋升**。对应到灵枢四态语义(大脑端 judge 既有语义),蜂群层应有:
163
+
164
+ | 检测结果 | 应触发行为 |
165
+ |---|---|
166
+ | 证据无 basis 字段 / basis 不可追溯 | 该断言**不参与信任晋升**(最多维持现值,只降不升)——对齐大脑端「拿不出证据的节点绝不写 verification_basis」(`md_cg/crosscheck.py` L11-14)纪律 |
167
+ | 实例间结论一致但全体无 basis | 群级 **BLINDSPOT**:透出「共识无基底」修正信号,T_alignment 另行标注「无基底对齐」,不作为健康证据 |
168
+ | 有 basis 且基底独立可验证(互验证) | 才允许晋升——对齐 T12 互验证语义:「VERDICT 由接收方用己方验证基底裁决(自验证不采信)」(`CommonTrustProtocol/docs/T12_M1两节点互联详细设计_v0.1.md` L26-33) |
169
+ | 伪证据被基底否决 | 实例信任**降级**(反例击穿通路,`智能的公理化基石.md` L408),修正信号升级 P1(限制敏感操作)/P0(隔离退场,BS-6 预留面) |
170
+
171
+ ### 5.2 机制缺失清单(如实标注)
172
+
173
+ | # | 缺失机制 | 现状证据 | 对应 §5.1 行为 |
174
+ |---|---|---|---|
175
+ | M1 | 证据基底字段:WAL 事件与实例终态无 basis 概念 | `swarm.rs` L1005-1023 行格式、终态仅 halt/stack/symbols/trust/condition_space(`vm.rs` L568-608) | 判准 1 |
176
+ | M2 | 互验证裁决:verifier 是「同输入逐位复算」非「独立基底裁决」 | `swarm.rs` L809-815(replay envelope:verifier 用 primary 完整输入)、L893-927;同错必复算一致 | 判准 3 |
177
+ | M3 | 反例→降级通路:修正信号无任何信任/路由后果 | `swarm.rs` L693-695 维生边界 + BS-6(盲区清单 L47-52) | 判准 4 |
178
+ | M4 | 健康→信任回馈:health 单向透出,不参与聚合 | §2.3 末行 | 判准 1/4 的输入面 |
179
+ | M5 | 同错检测统计量:T_alignment 对同错完全盲且为正奖励 | §4.2 结论 1 | 判准 2 |
180
+
181
+ ### 5.3 最小补丁面建议(本协议只建议,不改代码)
182
+
183
+ | # | 补丁面 | 内容 | 侵入度 |
184
+ |---|---|---|---|
185
+ | P1 | 事件 schema 扩展 | WAL 事件行/终态增加可选 basis 字段(枚举复用大脑端 `nodefile.py` L58-64 八档);缺省缺省不破坏既有验签(basis 不入签名串或版本化入签,需二选一裁决) | 低(增量字段) |
186
+ | P2 | 聚合层基底覆盖门 | aggregate_report 新增无基底断言计数:无 basis 的信任上升不计入 T_avg 晋升(只降不升门);报告透出 basis_coverage | 中(聚合逻辑) |
187
+ | P3 | 互验证升级 | protocol 拓扑 verifier 改持独立观测通道(per-instance symbols 差异化,依赖 BS-4 异构程序/异构输入先行)→ 复算不一致才获得真实检出力 | 高(依赖 BS-4) |
188
+ | P4 | 对齐度语义分离 | 报告区分「有基底对齐」与「无基底对齐」两个 T_alignment;新增异见存活率指标(少数派终态未被多数派吞没的比例) | 中(报告层) |
189
+ | P5 | 修正信号分级 | 「共识无基底」触发 P2 信号;「基底否决的多数派断言」触发 P1(信任降级)——沿 BS-6 预留的 §3.16 介入面 | 中(沿既有信号通道) |
190
+
191
+ **建议实施序**:P1→P2→P4 可独立落地且零破坏(缺省行为不变);P3 依赖 BS-4;P5 留真实场景。实验协议(§六)在 P1/P2 落地前后各跑一轮,即可量化「基底覆盖门」的净效应。
192
+
193
+ ---
194
+
195
+ ## 六、实验步骤(双组设计)
196
+
197
+ ### 6.1 构型矩阵
198
+
199
+ | 臂 | N | 注入 | 目的 |
200
+ |---|---|---|---|
201
+ | C0 对照 | 3 | 真观测(读数 50) | 基线:全对场景全字段读数 |
202
+ | E1 主实验 | 3 | 伪观测 99(3/3 同错) | 检验 §四推演:T_alignment=1.0 与 C0 不可区分 |
203
+ | E2 异见 | 4 | 3 实例伪观测 99 + 1 实例真观测 50 | 检验异见者被现有语义标记为「对齐破坏者」(§4.2 结论 4) |
204
+ | E3 扩散(可选) | 3 | 第 1 轮仅实例甲收伪观测,经路由/gossip 传播 | 测伪证据跨实例扩散后的对账面表现 |
205
+ | V1 验证(补丁后复跑) | 3 | 同 E1 | P2 基底覆盖门生效后:无 basis 信任上升不被晋升 |
206
+
207
+ ### 6.2 轮次与执行
208
+
209
+ - M=5 轮(足以观察多轮趋势触发器均不触发,§4.2 结论 3);每臂独立 WAL/project 目录;确定性 VM 下每臂重复 3 次校验逐位一致(可重复性属性验证)。
210
+ - 执行入口:`python -m swarm.swarm_cli run --config <臂配置> --out report.json`(`swarm_cli.py` L113);配置经 §3.3 注入器预处理生成。
211
+ - 双实现交叉核对:Rust 聚合报告 vs `aggregate_trust_python`/`aggregate_health_python`(`rust_swarm.py` L129-178),1e-6 容差(`rust_swarm.py` L62-63 口径契约)。
212
+
213
+ ### 6.3 指标表
214
+
215
+ | 指标 | 来源字段 | C0 预期 | E1 预期(§四推演) | 判定意义 |
216
+ |---|---|---|---|---|
217
+ | T_alignment | report.trust | 1.0 | 1.0 | 两臂相等 = 同错不可区分(命题「系统无法识别共识≠真相」在现状下成立) |
218
+ | T_avg | report.trust | 0.1 | 0.6 | 伪证据推动信任晋升的幅度 |
219
+ | health.score(逐实例) | report.health | 1.0 | 1.0 | 同错实例满健康 = 健康面无检出力 |
220
+ | recalc_mismatches | report.recalc | 0 | 0 | 复算通道对同构同错盲(M2 实证) |
221
+ | 修正信号计数 | WAL type=修正信号 行数 | 0 | 0 | 反例通道未触发(M3 实证) |
222
+ | 伪信任外溢 | 路由 @trust 载荷值 | 0.1 | 0.6 | 伪信任向外扩散量 |
223
+ | E2 专属:异见者读数 | T_alignment / roles | — | ≈0.901(下降) | 少数派真话拉低对齐度的反直觉量化 |
224
+ | V1 专属:晋升拦截 | T_avg | — | 0.1(不再升至 0.6) | 基底覆盖门净效应 |
225
+
226
+ ### 6.4 验收断言(协议级,可执行判定)
227
+
228
+ 1. E1 与 C0 的 trust 四元组中 T_alignment 逐位相等(<1e-6)→ 证实「现状不可区分」。
229
+ 2. E1 全部修正信号计数=0 且 health=1.0 → 证实「反例通道与健康面对同错盲」。
230
+ 3. E2 的 T_alignment < E1 的 T_alignment → 证实「异见者表现为对齐破坏者」。
231
+ 4. (V1,补丁批准后)E1 构型在 V1 下 T_avg 不高于 C0 → 证实「基底覆盖门拦截伪晋升」。
232
+ 5. 全臂 WAL 验签 all_valid=true(`rust_swarm.py` L88-126)→ 注入未破坏完整性面。
233
+
234
+ ---
235
+
236
+ ## 七、边界声明
237
+
238
+ 1. **本文件是实验协议**:不含任何实现。注入器脚本、聚合补丁(P1-P5)、测试用例的编写均须使用者批准后另立任务。
239
+ 2. **平台形态边界**:实验结论的适用域是「确定性 VM 实例 + 自报信任 + 聚合透出」的蜂群形态;LLM agent 形态下的同错(模型共因幻觉)需经 harness 层接入(`swarm_cli.py` 统一入口),结论外推须另行论证。
240
+ 3. **理论引用边界**:CTP 文档行号引自仓外 `CommonTrustProtocol/docs/`(理论仓),其版本演进不受本仓控制;本仓内可信的理论落点为大脑端 `md_cg/nodefile.py` L58-64(verification_basis 八档)与 `md_cg/crosscheck.py` L11-14(无证据不写基底纪律)。
241
+ 4. **不做 git 操作、不改源文件**:本任务全部产出即本文件。
242
+ 5. **诚实预期**:§四推演若被实验证实(E1 与 C0 不可区分),结论是「现状不能识别同错」——这是机制缺口的实证而非系统缺陷的遮掩;修复面已在 §5.3 如实列出,是否实施由使用者裁决。
@@ -0,0 +1,129 @@
1
+ # 单线程与注意力的集中 —— 无争议理论文档 v1.0
2
+
3
+ > **来源**:命题「单线程只是注意力的集中」出自主代理与使用者的对话,其初版白箱精确化曾收录《并发必然性理论》§2。
4
+ > **本文不是初版的沿用**:初版经蜂巢并发五单元审查(反思单元×2 + 验证单元×3,判定见 §6),初版全部三份验证判定为 REJECT(可修订),本文按全部判定单重写。
5
+ > **重写原则**:每处断言要么被条件边界封住,要么弱化为状态标注的刻画;凡不能由观测或文本检查裁决的项,显式标注为建模选择,不作为断言提出。
6
+
7
+ ---
8
+
9
+ ## 0 边界声明(先于一切断言)
10
+
11
+ | # | 声明 | 封住的攻击 |
12
+ |---|---|---|
13
+ | B1 | 本文全部工程性断言在**计算架构/功能层**陈述;神经科学内容仅以**工作假设**身份出现并标注争议状态(见 B5),不作为已决经验结论。 | 跨层等同误读(C1/A1) |
14
+ | B2 | 本文**不主张**主观串行感是幻觉、不否认第一人称报告的价值,也不主张第一人称与第三人称证据有本体论等级;本文区分的是证据类型(报告 vs 测量),不是真实性等级。 | 消除主义误读(C2) |
15
+ | B3 | 本文对「单线程」的归因是**非排他的**:注意力带宽的序列化分配是一种充分的刻画路径,不排除其他成因并存。 | 排他命题反例(D1/V1-1) |
16
+ | B4 | **串行作为策略选择是正当的**。本文不主张「并发总优于串行」;收敛粒度选择是成本-收益权衡(见 §3.2)。 | 全称规范断言(B1面/V1-2) |
17
+ | B5 | 「神经层不存在全局单线程执行器」为**工作假设**:现有行为学证据(心理不应期、注意瞬脱等)同时表明存在任务特异的**局部串行瓶颈**。两者相容:无全局串行执行器 ≠ 无任何串行瓶颈。 | 全称否定与中央瓶颈证据的冲突(V2-1/A1) |
18
+ | B6 | 「注意力」「收敛带宽」「收敛位」「调度」均为**功能性术语**(见 §1),不是解剖学或生理学断言。 | 术语实体化误读(A2/D4) |
19
+ | B7 | 「4±1」是工作记忆组块容量的**启发式借用**,仅作量级参照,不是对任何整合带宽的直接测量;工作记忆组块容量与多对象追踪容量不是同一构念。 | 数值锚点过度声称(V2-5/6/7/D3) |
20
+ | B8 | 本文**不涉及**意识本质(hard problem)的任何立场;「人脑→agent」为功能性类比,不主张工程系统复制人脑机制。 | 类比外溢(V3-9) |
21
+ | B9 | **元条款**:凡不能由观测或文本检查裁决的断言,本文显式标注为「建模选择」,不作为断言提出。 | 不可证伪指责(B2面-D7) |
22
+ | B10 | 串行/并发区分是**理想型**描述;实际系统的收敛粒度可连续、可自适应、可混合。 | 二元对立误读(B2面-B2/D5) |
23
+
24
+ ---
25
+
26
+ ## 1 术语表(显式定义,防滑移)
27
+
28
+ **1.1 「单线程」的三义**(初版同一词三用未分界,为本版显式拆分):
29
+
30
+ | 标签 | 指称 | 层 |
31
+ |---|---|---|
32
+ | **S-单线程** | 主观报告:「我一次只做一件事」 | 报告层 |
33
+ | **E-单线程** | 收敛形态:收敛粒度设为整任务的执行呈现 | 架构层 |
34
+ | **C-单线程** | 工程约束:系统实现是否应串行 | 决策层 |
35
+
36
+ 命题只在 E-义上做刻画;S-义是现象(B2),C-义是权衡(B4)。三者不得互推。
37
+
38
+ **1.2 注意力(本文用法)**:**带宽分配过程**——决定「哪个节点获得整合」的功能。该刻画不预设中心执行者,不使用日常心理语义(聚光灯、可意志控制的实体)。它是一个功能性角色描述,不是机制断言(B6/B9)。
39
+
40
+ **1.3 两个独立参数**(初版将二者折叠,为本版拆分):
41
+ - **收敛带宽**=容量参数(多少整合可同时发生;稀缺);
42
+ - **收敛粒度**=单位参数(收敛事件在任务树的哪个深度发生)。
43
+ 粒度下沉改变收敛事件的**次数**,带宽约束收敛事件的**容量**;二者相关但不同一,任何从一方到另一方的推论必须显式给出资源账本(本文 §3 不依赖此类推论)。
44
+
45
+ **1.4 三类串行**(初版坍缩为一类,为本版三分):
46
+ - **基座串行**:底层展开本身串行(单执行器、单输出通道、因果依赖链);
47
+ - **约束串行**:由正确性/安全/资源约束导出的串行(事务串行化、速率限制);
48
+ - **认知伪串行**:底层可并行、任务可分解,但执行被组织为串行黑盒。
49
+ **本文全部刻画只针对第三类。** 前两类不在本文断言范围内。
50
+
51
+ ---
52
+
53
+ ## 2 核心命题(弱化形式)
54
+
55
+ **P0(命题,替代初版排他形式)**:
56
+ > 在本文条件空间内,E-单线程不是与并行展开对立的独立执行机制;它被定义为收敛粒度设为整任务时的序列化收敛形态,可由注意力的有限带宽序列化分配来刻画。此为功能性刻画,不穷尽 E-单线程的全部成因,不作排他性唯一因声明。
57
+
58
+ **公设 A1**(初版误标为第 1 条的推论,依判定改标公设):
59
+ > 本文公设:注意力承担收敛带宽分配,不承担展开计算;底层执行由并行展开过程承担。
60
+ > (状态:建模选择。注意参与执行控制的经验证据不与此公设冲突——「分配不承担展开」是本文的功能分工定义,非神经机制断言;见 B6/B9。)
61
+
62
+ **刻画 1(对应初版第 1 条,弱化+状态标注)**:
63
+ > 神经活动层面,任意时刻存在大规模并行分布式处理;「全脑单一串行执行线程」没有证据支持,但也未被排除——此为工作假设(B5)。反应选择等阶段存在任务特异的局部串行瓶颈(心理不应期、双任务干扰等现象),可产生主观串行感。主观串行感与注意/中央瓶颈类模型**相容**;「由稀缺带宽逐个锚定实现」是待检验的机制假设,不作共识断言。
64
+
65
+ **刻画 2(对应初版第 3 条,理想型化+B10)**:
66
+ > 给定任务树:E-单线程(串行执行)=收敛粒度设为整任务的理想型——全部展开在收敛位视角外,收敛只在根节点发生一次;并发执行=收敛粒度下沉到子任务的理想型——各分支节点各自收敛,产出到达收敛位时已是裁决单位。实际系统在两极之间连续分布(B10)。
67
+
68
+ **刻画 3(粒度术语冲突修复)**:
69
+ > 「多任务之间的串行」(注意力依次锚定不同任务根节点)与「单任务内部的收敛粒度」(根节点内是否黑盒一次收敛)是两个不同问题。初版第 1 条描述前者、第 3 条定义后者,二者不冲突,但必须分开陈述——本文如此陈述。
70
+
71
+ ---
72
+
73
+ ## 3 工程含义(条件式推论,替代初版全称断言)
74
+
75
+ **3.1 条件式推论 P1**(初版「agent 没有单线程义务」「结构性倒置,不是审慎」的修订形式):
76
+ > **当且仅当**满足前提集 {底层展开确实可并行 ∧ 任务可分解 ∧ 无外部串行契约(正确性/安全/实时/资源约束)} 时:把整任务实现为串行黑盒,等于把宽展开层的工作压入唯一窄收敛位,构成**结构性错配**。此时 agent 不默认承担整任务串行黑盒义务。
77
+ > 任一前提不满足时,本推论不适用,串行由该前提正当化。
78
+
79
+ 「唯一窄收敛位」是本文模型构造的容量限制(B6/B9),其与工作记忆 4±1 的关系仅为启发式量级参照(B7),不承担论证重量。
80
+
81
+ **3.2 串行正当场景(非穷举)**:
82
+ 1. **基座串行**:单执行器/单输出通道/强因果依赖——无并行可供分配;
83
+ 2. **约束串行**:事务一致性、竞态避免、副作用幂等、速率与成本约束——串行由正确性导出;
84
+ 3. **成本串行**:子任务过微,拆解与协调/合并成本超过并行收益——保持粗粒度是权衡结果而非倒置;
85
+ 4. **耦合串行**:子任务状态强耦合不可拆——无独立子任务即无「宽展开层」可依赖。
86
+
87
+ **3.3 粒度决策规则(非规范性,B4)**:
88
+ > 收敛粒度下沉的收益须扣除协调与合并成本;粒度选择是逐任务的成本-收益权衡,本文不提供默认答案。
89
+
90
+ ---
91
+
92
+ ## 4 争议封口对照表(初版表述 → 本版处置)
93
+
94
+ | 初版表述 | 问题(判定单溯源) | 本版处置 |
95
+ |---|---|---|
96
+ | 「单线程**只是**注意力的集中」 | 排他量词把功能刻画升格为还原等同(R1-D1、R2-C1、V1-1、V3-1 全五面命中) | P0 弱化:非排他归因 + 功能性刻画(B3) |
97
+ | 「神经层没有单线程」 | 全称否定与中央瓶颈证据冲突、以已决语气陈述(R2-A1、V2-1、V3-5) | 刻画 1:工作假设 + 局部瓶颈相容声明(B5) |
98
+ | 「注意力是调度器,不是执行器」 | 二分过强:注意参与执行控制;「调度器」携带未授权蕴含(R2-A2、V2-3、V1-5、R1-D4) | 公设 A1 显式标为建模选择 + §1.2 功能性定义(B6/B9) |
99
+ | 「agent 没有单线程义务」「结构性倒置,不是审慎」 | 描述性前提推不出规范性结论;反例场景未封(R2-B1、V1-2、V3-2/3) | P1 条件式推论 + §3.2 正当场景清单(B4) |
100
+ | 「唯一窄通道(4±1 量级)」 | 工作记忆组块容量≠追踪容量;借用未授权(R1-D3、V2-5/6/7、V3-7) | 降为启发式参照,不承担论证重量(B7) |
101
+ | 「串行=粒度整任务;并发=粒度下沉」 | 无操作定义、二元对立(R2-B2、V3-8) | 刻画 2 理想型化 + 可观测代理量(任务树收敛深度 d 处的裁决节点数)(B10) |
102
+ | 「是主观报告,不是神经事实」 | 可滑向消除主义与本体等级制(R2-C2) | B2 非消除主义声明 |
103
+
104
+ ---
105
+
106
+ ## 5 结论
107
+
108
+ 1. 初版命题的可保留内核:E-单线程可由注意力带宽的序列化分配作**功能性刻画**——该内核在全部五面审查下存活;
109
+ 2. 初版的争议全部来自**形式强度**(排他量词、全称量词、规范跳跃、术语滑移、未声明借用),不来自内核本身——本版以条件边界与状态标注封住全部已识别争议源;
110
+ 3. 「无需争议」的达成方式不是断言更强,而是**每个断言声明自己的条件空间与证据状态**(B9 元条款)。
111
+
112
+ ---
113
+
114
+ ## 6 验证留痕(蜂巢并发,v0.2 配置标准)
115
+
116
+ | 单元 | 身份 | 审查面 | 裁决 | job |
117
+ |---|---|---|---|---|
118
+ | 反思×1 | 反思者 | 概念偏差(D1-D6 假说) | 假说移交包 | h1789458016491_7320 |
119
+ | 反思×2 | 反思者 | 争议预测(A/B/C 三类读者) | 假说移交包 + 边界条款候选 | h1789458016570_7050 |
120
+ | 验证×1 | 裁决者 | 逻辑有效性 | REJECT(修订后可再审) | h1789458307647_56cc |
121
+ | 验证×2 | 裁决者 | 科学锚点(离线,标置信度) | REJECT(修订后可再审) | h1789458016737_4824 |
122
+ | 验证×3 | 裁决者 | 类比外溢与边界完备性 | REJECT(修订后可再审) | h1789458016823_7658 |
123
+
124
+ > 产出物生命周期说明(2026-09-15):五单元的原始产出中间件(R1/R2/V1-V3 文件)已按《子代理配置标准》§5.4 在结论整合后清理,回放凭证以本表 job id 为准。
125
+
126
+ **剩余未决项(诚实保留,不静默丢弃)**:
127
+ - 判定单产出环境均为 memory_access=degraded,未做记忆检索与联网核验;本文因此把全部经验锚点降级为状态标注引用(B5/B7/B9),使未决项不承担论证重量;
128
+ - 若后续联网复核 PRP / Cowan 2001 / Pylyshyn & Storm 1988 等原文,可把刻画 1 与 B7 的置信度升级;
129
+ - 本文 §2/§3 的修订文本接受下一轮验证单元复审(初版三 REJECT 均注明「修订后可再审」)。