@furongjun1999/dsh-memory 0.4.11 → 0.5.1

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 (580) hide show
  1. package/README.md +552 -465
  2. package/codebuddy/CODEBUDDY.md +11 -3
  3. package/codebuddy/README.md +92 -90
  4. package/codebuddy/mcp.json +27 -27
  5. package/docs/GBrain/345/217/257/345/200/237/351/211/264/347/202/271_/347/201/265/346/236/242/350/220/275/347/202/271/344/272/244/346/216/245_20260919.md +169 -169
  6. 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 -144
  7. package/docs/README.md +143 -111
  8. package/docs/discipline/harnesses.yaml +244 -226
  9. package/docs/discipline/templates/full.md.tmpl +61 -61
  10. package/docs/discipline/templates/rules.mdc.tmpl +68 -0
  11. package/docs/discipline/templates/skill.md.tmpl +23 -23
  12. package/docs/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 +299 -299
  13. package/docs/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 +239 -239
  14. package/docs/eval/bench_lingshu_self/bench_self.py +140 -0
  15. package/docs/eval/bench_lingshu_self/self_bench_result.json +404 -0
  16. package/docs/eval/bench_lingshu_self//347/201/265/346/236/242/350/207/252/345/272/223/347/253/257/345/210/260/347/253/257/346/243/200/347/264/242/345/256/236/346/265/213_v1.0.md +38 -0
  17. package/docs/eval//344/270/215/345/217/257/351/235/240/346/200/247/350/220/275/345/234/260_P0_v1.0.md +185 -0
  18. 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 +174 -174
  19. package/docs/eval//346/225/205/351/232/234/346/263/250/345/205/245/345/256/236/346/265/213_v1.0.md +422 -0
  20. 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 +223 -223
  21. 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 +100 -0
  22. 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 +197 -0
  23. 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_v1.md +156 -0
  24. 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_v10.md +210 -0
  25. 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_v11.md +227 -0
  26. 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_v12.md +203 -0
  27. 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_v13.md +233 -0
  28. 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_v14.md +191 -0
  29. 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_v15.md +213 -0
  30. 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_v16.md +214 -0
  31. 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_v17.md +199 -0
  32. 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_v2.md +156 -0
  33. 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_v3.md +152 -0
  34. 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_v4.md +128 -0
  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_v5.md +114 -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_v6.md +192 -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_v7.md +187 -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_v8.md +207 -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_v9.md +203 -0
  40. package/docs/{mdcg → hive}//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 +165 -160
  41. package/docs/hive//344/273/244/347/211/214/350/257/255/344/271/211/344/277/256/346/255/243_/344/273/262/350/243/201/344/275/215_v0.1.md +76 -0
  42. package/docs/{mdcg → hive}//345/255/220/344/273/243/347/220/206/351/205/215/347/275/256/346/240/207/345/207/206_v0.5.md +236 -236
  43. package/docs/hive//345/256/211/345/205/250/345/256/241/350/256/241/345/256/236/351/224/232_v0.1.md +202 -0
  44. package/docs/hive//346/243/200/347/264/242/346/224/266/346/225/233/345/256/236/346/265/213/344/270/216S1b/350/256/276/350/256/241_v0.1.md +43 -43
  45. package/docs/hive//346/243/200/347/264/242/347/256/227/346/263/225/345/217/243/345/276/204/345/257/271/347/205/247_v0.1.md +85 -0
  46. package/docs/hive//346/243/200/347/264/242/350/267/257/345/276/204/344/270/216/350/256/244/347/237/245/347/273/223/346/236/204/345/245/221/347/272/246_v0.1.md +102 -102
  47. 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 +47 -0
  48. 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 +519 -503
  49. 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 +85 -85
  50. 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 +191 -0
  51. 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 +90 -0
  52. package/docs/images/lingshu-moonlight-covenant-poster-preview.jpg +0 -0
  53. package/docs/images/lingshu-moonlight-covenant-poster.png +0 -0
  54. package/docs/mdcg/D_meta_/345/267/245/347/250/213/345/214/226/346/226/271/346/241/210_v0.2.md +216 -216
  55. package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.10.md +646 -646
  56. package/docs/mdcg/lingshu_tutorial.html +14449 -14449
  57. package/docs/mdcg/release_v0.4.11.md +49 -0
  58. package/docs/mdcg/release_v0.4.5.md +55 -55
  59. package/docs/mdcg/tool_table_v0.3.0.md +117 -117
  60. package/docs/mdcg//345/205/250/345/272/223/344/273/243/347/240/201/350/257/204/345/256/241/344/270/216/346/235/241/344/273/266/345/214/226/346/263/250/351/207/212_/350/256/241/345/210/222_v0.1.md +600 -600
  61. 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 +40 -40
  62. 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 +275 -275
  63. package/docs/mdcg//345/217/221/345/270/203/351/227/250/347/246/201/351/223/276_v0.1.md +54 -0
  64. 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 +130 -130
  65. 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 +278 -278
  66. package/docs/mdcg//347/201/265/346/236/242/350/256/260/345/277/206/345/212/250/350/257/215/345/215/217/350/256/256_v1.0-draft.md +172 -172
  67. package/docs/mdcg//347/274/272/345/217/243/345/215/225_P0/346/224/266/345/217/243_v0.1.md +270 -270
  68. 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 +491 -491
  69. 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 +340 -340
  70. 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 +588 -588
  71. 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 -176
  72. 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 +81 -81
  73. package/docs/swarm//350/234/202/347/276/244/344/272/222/350/201/224_v0.1.md +704 -704
  74. 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 -242
  75. package/docs/theory//344/270/215/345/217/257/351/235/240/345/256/232/347/220/206/344/270/216/345/244/261/346/225/210/344/274/230/345/205/210/346/241/206/346/236/266_v0.3.md +365 -0
  76. 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 -129
  77. 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 -134
  78. package/docs/theory//346/231/272/350/203/275/350/256/2723.4.md +5260 -5260
  79. 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 -145
  80. 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 +144 -144
  81. 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 +198 -198
  82. 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 -221
  83. 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 -237
  84. package/docs//344/270/215/345/217/257/351/235/240/346/200/247/347/220/206/350/256/272_v0.1.md +343 -0
  85. package/docs//345/217/221/345/270/203/344/273/266/345/233/236/346/272/257/350/257/264/346/230/216_v0.1.md +82 -82
  86. 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 +28 -2
  87. package/dsh/README.md +82 -82
  88. package/dsh/cordis.yml.example +139 -139
  89. package/dsh/update-lingshu.bat +11 -11
  90. package/lib/bridge.d.ts +9 -0
  91. package/lib/bridge.js +35 -0
  92. package/lib/hooks.js +36 -2
  93. package/lib/index.js +7 -1
  94. package/lib/lib/roleplay_web.js +116 -29
  95. package/lib/lib/token_store.d.ts +7 -1
  96. package/lib/lib/token_store.js +12 -3
  97. package/md_cg/__init__.py +7 -7
  98. package/md_cg/audit.py +379 -368
  99. package/md_cg/autonomy.py +287 -287
  100. package/md_cg/backfill.py +1328 -1327
  101. package/md_cg/backfill_bigdomain.py +34 -34
  102. package/md_cg/backfill_bucket_zh.py +35 -0
  103. package/md_cg/bench6_arms.py +410 -410
  104. package/md_cg/bench6_common.py +230 -230
  105. package/md_cg/bench6_competitors.py +212 -212
  106. package/md_cg/bench_axis_domain.py +257 -257
  107. package/md_cg/bench_blind_comp.py +308 -308
  108. package/md_cg/bench_e2e_judge.py +532 -0
  109. package/md_cg/bench_e2e_locomo_qa.py +368 -0
  110. package/md_cg/bench_e2e_qa.py +256 -0
  111. package/md_cg/bench_en_atoms_public.py +230 -230
  112. package/md_cg/bench_governance.py +348 -348
  113. package/md_cg/bench_lme_zh.py +410 -410
  114. package/md_cg/bench_locomo.py +121 -121
  115. package/md_cg/bench_locomo_zh.py +450 -450
  116. package/md_cg/bench_locomo_zh_public.py +147 -147
  117. package/md_cg/bench_longmem.py +112 -112
  118. package/md_cg/bench_membench.py +632 -632
  119. package/md_cg/bench_p0.py +149 -149
  120. package/md_cg/bench_progressive.py +287 -287
  121. package/md_cg/bench_role_views.py +238 -238
  122. package/md_cg/bench_task_ab.py +243 -243
  123. package/md_cg/bench_task_ab_llm.py +408 -408
  124. package/md_cg/bench_unified_en.py +204 -204
  125. package/md_cg/bench_zh_mad.py +601 -601
  126. package/md_cg/blindspot_tickets.py +123 -123
  127. package/md_cg/branches.py +301 -285
  128. package/md_cg/build_postings.py +73 -73
  129. package/md_cg/ccgc.py +1006 -948
  130. package/md_cg/census.py +132 -132
  131. package/md_cg/chain.py +315 -300
  132. package/md_cg/codeindex.py +531 -531
  133. package/md_cg/coldverify.py +292 -292
  134. package/md_cg/comment_gate.py +337 -337
  135. package/md_cg/cond_compose.py +190 -190
  136. package/md_cg/cond_facts.py +154 -154
  137. package/md_cg/cond_template.json +106 -106
  138. package/md_cg/condition_anchor.py +142 -142
  139. package/md_cg/conformance.py +726 -726
  140. package/md_cg/consistency.py +717 -717
  141. package/md_cg/consolidate.py +1537 -1439
  142. package/md_cg/corpus.py +110 -110
  143. package/md_cg/crosscheck.py +1098 -1097
  144. package/md_cg/crypto.py +3 -1
  145. package/md_cg/d_meta.py +310 -310
  146. package/md_cg/datapath.py +78 -18
  147. package/md_cg/docindex.py +473 -473
  148. package/md_cg/eval_common.py +575 -575
  149. package/md_cg/evidence.py +4 -2
  150. package/md_cg/evolution.py +477 -477
  151. package/md_cg/export.py +222 -220
  152. package/md_cg/forgetting.py +581 -581
  153. package/md_cg/fsutil.py +377 -329
  154. package/md_cg/hotcache.py +48 -7
  155. package/md_cg/hyperedge.py +251 -251
  156. package/md_cg/identity.py +390 -390
  157. package/md_cg/insight.py +500 -500
  158. package/md_cg/interop.py +338 -0
  159. package/md_cg/judgment_manifest.py +177 -0
  160. package/md_cg/lexicon/build_cedict_en_zh.py +329 -329
  161. package/md_cg/lexicon/build_standard_en.py +171 -171
  162. package/md_cg/lexicon/expand_en_zh.py +211 -211
  163. package/md_cg/lifecycle.py +272 -272
  164. package/md_cg/linkref.py +280 -280
  165. package/md_cg/links.py +140 -107
  166. package/md_cg/mcp_server.py +403 -55
  167. package/md_cg/md_whitebox.py +345 -345
  168. package/md_cg/mdcg.py +783 -233
  169. package/md_cg/mdcos.py +500 -70
  170. package/md_cg/metacognition.py +591 -591
  171. package/md_cg/migrate.py +119 -119
  172. package/md_cg/migrate_aeis.py +221 -221
  173. package/md_cg/migrate_roleplay.py +293 -293
  174. package/md_cg/migrate_wisdom_graph.py +360 -360
  175. package/md_cg/mreview/__init__.py +25 -25
  176. package/md_cg/mreview/__main__.py +110 -110
  177. package/md_cg/mreview/bundle.py +178 -178
  178. package/md_cg/mreview/candidates.py +262 -262
  179. package/md_cg/mreview/govern.py +694 -693
  180. package/md_cg/mreview/locate.py +939 -939
  181. package/md_cg/mreview/pipeline.py +728 -728
  182. package/md_cg/mreview/rules/duplication.json +21 -21
  183. package/md_cg/mreview/rules/field_coverage.json +54 -54
  184. package/md_cg/mreview/rules/source_license.json +21 -21
  185. package/md_cg/mreview/rules/template_flow.json +21 -21
  186. package/md_cg/mreview/ruleset.py +252 -252
  187. package/md_cg/nodefile.py +575 -575
  188. package/md_cg/pooling.py +484 -472
  189. package/md_cg/postings.py +300 -298
  190. package/md_cg/predict.py +1100 -1100
  191. package/md_cg/progressive.py +123 -123
  192. package/md_cg/protect.py +272 -272
  193. package/md_cg/protocol/md_cg_gate.proto +33 -33
  194. package/md_cg/protocol.py +372 -372
  195. package/md_cg/provenance.py +582 -582
  196. package/md_cg/reach.py +453 -453
  197. package/md_cg/readcache.py +143 -0
  198. package/md_cg/reconcile.py +228 -0
  199. package/md_cg/refindex.py +833 -833
  200. package/md_cg/refine.py +604 -604
  201. package/md_cg/review_cli.py +170 -0
  202. package/md_cg/roleviews.py +89 -89
  203. package/md_cg/routing.py +393 -365
  204. package/md_cg/run_tests.py +211 -0
  205. package/md_cg/scrub.py +13 -3
  206. package/md_cg/security.py +128 -18
  207. package/md_cg/self_state.py +1029 -1029
  208. package/md_cg/selfreport.py +152 -151
  209. package/md_cg/semantic/__init__.py +10 -10
  210. package/md_cg/semantic/canonical.py +122 -122
  211. package/md_cg/semantic/en_normalizer.py +364 -364
  212. package/md_cg/semantic/en_zh_map.json +28694 -0
  213. package/md_cg/semantic/export_en_zh_map.py +64 -0
  214. package/md_cg/semantic/unify.py +45 -0
  215. package/md_cg/semantic/zh_en_atoms.py +139 -139
  216. package/md_cg/signer.py +7 -4
  217. package/md_cg/sources.py +816 -582
  218. package/md_cg/statushdr.py +179 -179
  219. package/md_cg/stg.py +54 -37
  220. package/md_cg/subgraph.py +729 -729
  221. package/md_cg/sustain.py +35 -5
  222. package/md_cg/tasks.py +470 -470
  223. package/md_cg/test_access_hints.py +147 -0
  224. package/md_cg/test_action_derive.py +203 -203
  225. package/md_cg/test_audit_rotate.py +270 -270
  226. package/md_cg/test_autonomy.py +143 -143
  227. package/md_cg/test_bench_governance.py +102 -102
  228. package/md_cg/test_blindspot_tickets.py +166 -166
  229. package/md_cg/test_branch_discard_tombstone.py +136 -0
  230. package/md_cg/test_branches.py +13 -3
  231. package/md_cg/test_ccg_perturb.py +184 -184
  232. package/md_cg/test_ccgc.py +433 -433
  233. package/md_cg/test_census_prune.py +81 -81
  234. package/md_cg/test_chain_read_isolate.py +168 -0
  235. package/md_cg/test_cond_compose_anchors.py +76 -76
  236. package/md_cg/test_cond_match.py +165 -165
  237. package/md_cg/test_condition_anchor.py +81 -81
  238. package/md_cg/test_d_meta.py +412 -412
  239. package/md_cg/test_datapath_device_name.py +203 -0
  240. package/md_cg/test_datapath_root.py +199 -199
  241. package/md_cg/test_emit_negtail_cache.py +156 -0
  242. package/md_cg/test_en_pipeline.py +22 -2
  243. package/md_cg/test_gain_gate.py +212 -212
  244. package/md_cg/test_govern_directread.py +421 -0
  245. package/md_cg/test_health_scale.py +173 -173
  246. package/md_cg/test_hive_ingest.py +285 -0
  247. package/md_cg/test_hot_cold.py +215 -215
  248. package/md_cg/test_hyperedge.py +245 -245
  249. package/md_cg/test_i26_empty_first_write.py +116 -0
  250. package/md_cg/test_i27_e041_identity.py +128 -0
  251. package/md_cg/test_i28_hotcache_prodpath.py +122 -0
  252. package/md_cg/test_i32_hotcache_env_key.py +218 -0
  253. package/md_cg/test_identity_attribution.py +96 -15
  254. package/md_cg/test_index_durability.py +17 -3
  255. package/md_cg/test_interop.py +95 -0
  256. package/md_cg/test_interop_judgment.py +228 -0
  257. package/md_cg/test_issue39_utf8_stdio.py +273 -0
  258. package/md_cg/test_lifecycle.py +309 -309
  259. package/md_cg/test_linkref.py +306 -306
  260. package/md_cg/test_links_concurrent_write.py +188 -0
  261. package/md_cg/test_lock.py +43 -43
  262. package/md_cg/test_md_access_parity.py +255 -255
  263. package/md_cg/test_md_writepath.py +345 -345
  264. package/md_cg/test_mdstore_search_parity.py +160 -0
  265. package/md_cg/test_merge_upsert.py +168 -0
  266. package/md_cg/test_mr_m2.py +587 -587
  267. package/md_cg/test_mr_m3.py +710 -710
  268. package/md_cg/test_mr_m4.py +485 -485
  269. package/md_cg/test_n123_derive_expiry_chain.py +205 -0
  270. package/md_cg/test_n130_verify_falsified_protect.py +185 -0
  271. package/md_cg/test_n131_merge_gate.py +205 -0
  272. package/md_cg/test_p0.py +250 -250
  273. package/md_cg/test_p1.py +316 -316
  274. package/md_cg/test_p10_identity.py +173 -173
  275. package/md_cg/test_p11_consistency.py +233 -233
  276. package/md_cg/test_p12_metacognition.py +212 -212
  277. package/md_cg/test_p13_encryption.py +241 -241
  278. package/md_cg/test_p14_sustain.py +249 -249
  279. package/md_cg/test_p15_scrub.py +280 -280
  280. package/md_cg/test_p16_self_state.py +301 -301
  281. package/md_cg/test_p17_predict.py +354 -354
  282. package/md_cg/test_p18_whitebox.py +171 -171
  283. package/md_cg/test_p19_migrate_roleplay.py +149 -149
  284. package/md_cg/test_p1x_ref_root.py +160 -0
  285. package/md_cg/test_p20_evolution.py +315 -315
  286. package/md_cg/test_p21_tokens.py +293 -270
  287. package/md_cg/test_p22_theory.py +175 -175
  288. package/md_cg/test_p23_links.py +311 -311
  289. package/md_cg/test_p24_evidence.py +227 -227
  290. package/md_cg/test_p25_weights.py +156 -156
  291. package/md_cg/test_p26_refindex.py +416 -416
  292. package/md_cg/test_p27_docindex.py +16 -7
  293. package/md_cg/test_p28_refcheck.py +305 -305
  294. package/md_cg/test_p29_session_ingest_export.py +354 -333
  295. package/md_cg/test_p2_mcp.py +3 -0
  296. package/md_cg/test_p3.py +11 -2
  297. package/md_cg/test_p30_maintain.py +330 -330
  298. package/md_cg/test_p31_insight.py +534 -534
  299. package/md_cg/test_p32_backfill.py +7 -1
  300. package/md_cg/test_p33_ccg_wiring.py +293 -293
  301. package/md_cg/test_p34_crosscheck.py +331 -331
  302. package/md_cg/test_p35_conditioned_claim.py +252 -252
  303. package/md_cg/test_p36_kp_align.py +230 -230
  304. package/md_cg/test_p37_condition_space.py +248 -248
  305. package/md_cg/test_p38_concurrent_flush.py +102 -0
  306. package/md_cg/test_p38_contextualize.py +273 -273
  307. package/md_cg/test_p39_verify_flow.py +153 -0
  308. package/md_cg/test_p39_vision_evidence.py +369 -369
  309. package/md_cg/test_p40_refine_worklist.py +241 -241
  310. package/md_cg/test_p41_evolve_patrol.py +224 -224
  311. package/md_cg/test_p42_provenance.py +269 -269
  312. package/md_cg/test_p43_pooling.py +412 -398
  313. package/md_cg/test_p44_md_whitebox.py +231 -231
  314. package/md_cg/test_p45_session_identity.py +219 -219
  315. package/md_cg/test_p46_unit_scope.py +272 -272
  316. package/md_cg/test_p47_session_view.py +316 -0
  317. package/md_cg/test_p4_fuzzy.py +223 -223
  318. package/md_cg/test_p5_semantic.py +226 -226
  319. package/md_cg/test_p6_consolidate.py +440 -387
  320. package/md_cg/test_p7_goals_recent.py +202 -202
  321. package/md_cg/test_p8_subgraph_chain.py +200 -200
  322. package/md_cg/test_p9_forget_protect.py +231 -231
  323. package/md_cg/test_predict_beta.py +135 -135
  324. package/md_cg/test_preflight_failclosed.py +100 -100
  325. package/md_cg/test_progressive.py +146 -146
  326. package/md_cg/test_propose_tail_index.py +157 -0
  327. package/md_cg/test_protocol.py +243 -243
  328. package/md_cg/test_reach.py +378 -378
  329. package/md_cg/test_reach_keys.py +201 -201
  330. package/md_cg/test_read_clip.py +141 -141
  331. package/md_cg/test_read_scope_b27.py +277 -0
  332. package/md_cg/test_readcache_default_on.py +168 -0
  333. package/md_cg/test_readcache_precise_inval.py +270 -0
  334. package/md_cg/test_readcache_prodpath.py +203 -0
  335. package/md_cg/test_reconcile_v0.py +294 -0
  336. package/md_cg/test_retr_gates_prodpath.py +140 -0
  337. package/md_cg/test_retr_s1.py +344 -340
  338. package/md_cg/test_retr_s1b.py +276 -209
  339. package/md_cg/test_retr_s3.py +194 -194
  340. package/md_cg/test_retr_s4.py +163 -163
  341. package/md_cg/test_retr_s5.py +200 -200
  342. package/md_cg/test_retr_s6.py +157 -157
  343. package/md_cg/test_retr_s7.py +392 -384
  344. package/md_cg/test_retr_s8_time.py +369 -316
  345. package/md_cg/test_retr_s9_edges.py +286 -286
  346. package/md_cg/test_retr_s9_entity_ctx.py +9 -3
  347. package/md_cg/test_retr_score_once.py +208 -0
  348. package/md_cg/test_review_conformance.py +367 -367
  349. package/md_cg/test_review_onepass.py +170 -0
  350. package/md_cg/test_role_views.py +354 -354
  351. package/md_cg/test_rrf_graph_seed_cache.py +154 -0
  352. package/md_cg/test_security_audit.py +155 -0
  353. package/md_cg/test_security_audit_b26.py +161 -0
  354. package/md_cg/test_security_audit_v21.py +250 -0
  355. package/md_cg/test_sem_noise.py +242 -242
  356. package/md_cg/test_semantic_canonical.py +16 -2
  357. package/md_cg/test_session_isolation.py +168 -0
  358. package/md_cg/test_snapshot_autoclose.py +187 -0
  359. package/md_cg/test_subproc_encoding.py +192 -192
  360. package/md_cg/test_sustain_mutual.py +153 -153
  361. package/md_cg/test_tail_watermark_race.py +208 -0
  362. package/md_cg/test_tasks.py +409 -409
  363. package/md_cg/test_tenant_env_override_warn.py +139 -0
  364. package/md_cg/test_tenant_registry_corrupt_warn.py +151 -0
  365. package/md_cg/test_tool_face.py +189 -189
  366. package/md_cg/test_transfer.py +180 -180
  367. package/md_cg/test_trust.py +361 -361
  368. package/md_cg/test_twophase.py +286 -286
  369. package/md_cg/test_v14_fixes.py +38 -20
  370. package/md_cg/test_validity_filter.py +280 -280
  371. package/md_cg/test_verify_answer.py +138 -138
  372. package/md_cg/test_verify_dirty_reconcile.py +157 -0
  373. package/md_cg/test_wisdom_md_store.py +292 -292
  374. package/md_cg/test_writelimit.py +197 -197
  375. package/md_cg/test_writepipe.py +214 -214
  376. package/md_cg/theory.py +6 -3
  377. package/md_cg/tokens.py +85 -14
  378. package/md_cg/tool_face.py +260 -260
  379. package/md_cg/trust.py +986 -950
  380. package/md_cg/twophase.py +231 -231
  381. package/md_cg/units.py +668 -667
  382. package/md_cg/vision_evidence.py +667 -666
  383. package/md_cg/weights.py +624 -624
  384. package/md_cg/whitebox.py +527 -527
  385. package/md_cg/whitebox_kb/__init__.py +37 -37
  386. package/md_cg/whitebox_kb/aeis_core/__init__.py +42 -42
  387. package/md_cg/whitebox_kb/aeis_core/semantic.py +280 -280
  388. package/md_cg/whitebox_kb/aeis_core/textutil.py +13 -13
  389. package/md_cg/whitebox_kb/engine.py +310 -310
  390. package/md_cg/whitebox_kb/seed_knowledge//346/231/272/350/203/275/350/256/2723.4.md +5260 -5260
  391. package/md_cg/whitebox_kb/wisdom/browser_units.py +2631 -2631
  392. package/md_cg/whitebox_kb/wisdom/causal_discover.py +432 -432
  393. package/md_cg/whitebox_kb/wisdom/chat_engine.py +1506 -1506
  394. package/md_cg/whitebox_kb/wisdom/compiler_code_units.py +3033 -3033
  395. package/md_cg/whitebox_kb/wisdom/condition_algebra.py +112 -112
  396. package/md_cg/whitebox_kb/wisdom/condition_frame.py +315 -315
  397. package/md_cg/whitebox_kb/wisdom/condition_kb.py +108 -108
  398. package/md_cg/whitebox_kb/wisdom/conflict_map.json +4445 -4445
  399. package/md_cg/whitebox_kb/wisdom/core/lexer.py +512 -512
  400. package/md_cg/whitebox_kb/wisdom/core/name_checker.py +1023 -1023
  401. package/md_cg/whitebox_kb/wisdom/cspmn.py +258 -258
  402. package/md_cg/whitebox_kb/wisdom/csre.py +264 -264
  403. package/md_cg/whitebox_kb/wisdom/danmaku_audit.py +252 -252
  404. package/md_cg/whitebox_kb/wisdom/distilled_condition_units.json +6417 -6417
  405. package/md_cg/whitebox_kb/wisdom/docs/WB-EVAL-20260902b.json +1950 -1950
  406. package/md_cg/whitebox_kb/wisdom/docs/WB-EVAL-20260902c.json +1296 -1296
  407. package/md_cg/whitebox_kb/wisdom/docs/whitebox_capability_graph_demo.json +59 -59
  408. package/md_cg/whitebox_kb/wisdom/graph_db_units.py +3089 -3089
  409. package/md_cg/whitebox_kb/wisdom/knowledge_points.py +318 -318
  410. package/md_cg/whitebox_kb/wisdom/md_access.py +470 -470
  411. package/md_cg/whitebox_kb/wisdom/md_store.py +276 -251
  412. package/md_cg/whitebox_kb/wisdom/migrate_wisdom.py +476 -476
  413. package/md_cg/whitebox_kb/wisdom/multilang_ir.py +128 -124
  414. package/md_cg/whitebox_kb/wisdom/navigate.py +248 -248
  415. package/md_cg/whitebox_kb/wisdom/neural_retrieve.py +224 -224
  416. package/md_cg/whitebox_kb/wisdom/os_units.py +2735 -2735
  417. package/md_cg/whitebox_kb/wisdom/pattern_separation.py +376 -376
  418. package/md_cg/whitebox_kb/wisdom/prereq_map.json +364 -364
  419. package/md_cg/whitebox_kb/wisdom/python_code_units.py +2766 -2766
  420. package/md_cg/whitebox_kb/wisdom/role_solidified.json +7 -7
  421. package/md_cg/whitebox_kb/wisdom/route_memory.py +244 -244
  422. package/md_cg/whitebox_kb/wisdom/scene_reconstruction.py +148 -148
  423. package/md_cg/whitebox_kb/wisdom/snr_report.json +40 -40
  424. package/md_cg/whitebox_kb/wisdom/test_code_compose_domains.py +7541 -7541
  425. package/md_cg/whitebox_kb/wisdom/test_compiler_self_bootstrap.py +354 -354
  426. package/md_cg/whitebox_kb/wisdom/test_ecosystem_assembly.py +158 -158
  427. package/md_cg/whitebox_kb/wisdom/test_ecosystem_demos.py +193 -193
  428. package/md_cg/whitebox_kb/wisdom/test_graph_db.py +292 -292
  429. package/md_cg/whitebox_kb/wisdom/test_python_self_bootstrap.py +160 -160
  430. package/md_cg/whitebox_kb/wisdom/trigger_words_index.json +4366 -4366
  431. package/md_cg/whitebox_kb/wisdom/verifier.py +1297 -1297
  432. package/md_cg/writelimit.py +356 -356
  433. package/md_cg/writepipe.py +20 -8
  434. package/package.json +101 -96
  435. package/skills/plugin.json +54 -54
  436. package/skills/skills/designer-perspective/SKILL.md +158 -158
  437. package/skills/skills/designer-perspective/references/01-observation-position.md +66 -66
  438. package/skills/skills/designer-perspective/references/02-structure-recognition.md +62 -62
  439. package/skills/skills/designer-perspective/references/03-direction-judgment.md +55 -55
  440. package/skills/skills/designer-perspective/references/04-qualification-verdict.md +72 -72
  441. package/skills/skills/designer-perspective/references/05-condition-attribution.md +74 -74
  442. package/skills/skills/designer-perspective/scripts/designer.py +545 -545
  443. package/skills/skills/designer-perspective/tests/cases.jsonl +17 -17
  444. package/skills/skills/designer-perspective/tests/selftest.py +61 -61
  445. package/skills/skills/lingshu-browser/SKILL.md +60 -60
  446. package/skills/skills/lingshu-compiler/SKILL.md +56 -56
  447. package/skills/skills/lingshu-compiler/units/analyze-type-infer/SKILL.md +45 -45
  448. package/skills/skills/lingshu-compiler/units/check-name-real/SKILL.md +45 -45
  449. package/skills/skills/lingshu-compiler/units/compile-assign/SKILL.md +45 -45
  450. package/skills/skills/lingshu-compiler/units/compile-expr-tree/SKILL.md +45 -45
  451. package/skills/skills/lingshu-compiler/units/compile-full-pipeline/SKILL.md +45 -45
  452. package/skills/skills/lingshu-compiler/units/compile-func-def/SKILL.md +45 -45
  453. package/skills/skills/lingshu-compiler/units/compile-if-then/SKILL.md +45 -45
  454. package/skills/skills/lingshu-compiler/units/compile-logic-expr/SKILL.md +45 -45
  455. package/skills/skills/lingshu-compiler/units/compile-recursive/SKILL.md +45 -45
  456. package/skills/skills/lingshu-compiler/units/compile-scope/SKILL.md +45 -45
  457. package/skills/skills/lingshu-compiler/units/compile-type-check/SKILL.md +45 -45
  458. package/skills/skills/lingshu-compiler/units/compile-while/SKILL.md +45 -45
  459. package/skills/skills/lingshu-compiler/units/compiler-0010c4bf/SKILL.md +45 -45
  460. package/skills/skills/lingshu-compiler/units/compiler-0355bffb/SKILL.md +45 -45
  461. package/skills/skills/lingshu-compiler/units/compiler-0361708a/SKILL.md +45 -45
  462. package/skills/skills/lingshu-compiler/units/compiler-054a0414/SKILL.md +45 -45
  463. package/skills/skills/lingshu-compiler/units/compiler-05a1691a/SKILL.md +45 -45
  464. package/skills/skills/lingshu-compiler/units/compiler-05eeed1e/SKILL.md +45 -45
  465. package/skills/skills/lingshu-compiler/units/compiler-0622a1f6/SKILL.md +45 -45
  466. package/skills/skills/lingshu-compiler/units/compiler-08b54217/SKILL.md +45 -45
  467. package/skills/skills/lingshu-compiler/units/compiler-0a62b70c/SKILL.md +45 -45
  468. package/skills/skills/lingshu-compiler/units/compiler-0ab24d00/SKILL.md +45 -45
  469. package/skills/skills/lingshu-compiler/units/compiler-0e093688/SKILL.md +45 -45
  470. package/skills/skills/lingshu-compiler/units/compiler-0e82b966/SKILL.md +45 -45
  471. package/skills/skills/lingshu-compiler/units/compiler-0ee9b9b9/SKILL.md +45 -45
  472. package/skills/skills/lingshu-compiler/units/compiler-0f3787e6/SKILL.md +45 -45
  473. package/skills/skills/lingshu-compiler/units/compiler-1028685f/SKILL.md +45 -45
  474. package/skills/skills/lingshu-compiler/units/compiler-11897630/SKILL.md +45 -45
  475. package/skills/skills/lingshu-compiler/units/compiler-16661b9b/SKILL.md +45 -45
  476. package/skills/skills/lingshu-compiler/units/compiler-1f722303/SKILL.md +45 -45
  477. package/skills/skills/lingshu-compiler/units/compiler-25be1262/SKILL.md +45 -45
  478. package/skills/skills/lingshu-compiler/units/compiler-2a76ba07/SKILL.md +45 -45
  479. package/skills/skills/lingshu-compiler/units/compiler-2dbea54a/SKILL.md +45 -45
  480. package/skills/skills/lingshu-compiler/units/compiler-2df52f16/SKILL.md +45 -45
  481. package/skills/skills/lingshu-compiler/units/compiler-2ec2c9d2/SKILL.md +45 -45
  482. package/skills/skills/lingshu-compiler/units/compiler-2f8c8f39/SKILL.md +45 -45
  483. package/skills/skills/lingshu-compiler/units/compiler-38378ac7/SKILL.md +45 -45
  484. package/skills/skills/lingshu-compiler/units/compiler-39457d2e/SKILL.md +45 -45
  485. package/skills/skills/lingshu-compiler/units/compiler-39fb5926/SKILL.md +45 -45
  486. package/skills/skills/lingshu-compiler/units/compiler-47f4fbfa/SKILL.md +45 -45
  487. package/skills/skills/lingshu-compiler/units/compiler-4a8cd1f1/SKILL.md +45 -45
  488. package/skills/skills/lingshu-compiler/units/compiler-4b230b6b/SKILL.md +45 -45
  489. package/skills/skills/lingshu-compiler/units/compiler-4cbbda95/SKILL.md +45 -45
  490. package/skills/skills/lingshu-compiler/units/compiler-4d5a68ff/SKILL.md +45 -45
  491. package/skills/skills/lingshu-compiler/units/compiler-56dc9bdd/SKILL.md +45 -45
  492. package/skills/skills/lingshu-compiler/units/compiler-57e76ebe/SKILL.md +45 -45
  493. package/skills/skills/lingshu-compiler/units/compiler-61ff016b/SKILL.md +45 -45
  494. package/skills/skills/lingshu-compiler/units/compiler-63eae588/SKILL.md +45 -45
  495. package/skills/skills/lingshu-compiler/units/compiler-64c4224b/SKILL.md +45 -45
  496. package/skills/skills/lingshu-compiler/units/compiler-66377955/SKILL.md +45 -45
  497. package/skills/skills/lingshu-compiler/units/compiler-674ab4f6/SKILL.md +45 -45
  498. package/skills/skills/lingshu-compiler/units/compiler-6af76fd6/SKILL.md +45 -45
  499. package/skills/skills/lingshu-compiler/units/compiler-6d979db2/SKILL.md +45 -45
  500. package/skills/skills/lingshu-compiler/units/compiler-6de326c0/SKILL.md +45 -45
  501. package/skills/skills/lingshu-compiler/units/compiler-6f1c0eea/SKILL.md +45 -45
  502. package/skills/skills/lingshu-compiler/units/compiler-724d6c9b/SKILL.md +45 -45
  503. package/skills/skills/lingshu-compiler/units/compiler-7690177f/SKILL.md +45 -45
  504. package/skills/skills/lingshu-compiler/units/compiler-7b229a7d/SKILL.md +45 -45
  505. package/skills/skills/lingshu-compiler/units/compiler-7f471b3a/SKILL.md +45 -45
  506. package/skills/skills/lingshu-compiler/units/compiler-815cad08/SKILL.md +45 -45
  507. package/skills/skills/lingshu-compiler/units/compiler-83c61634/SKILL.md +45 -45
  508. package/skills/skills/lingshu-compiler/units/compiler-8c798c81/SKILL.md +45 -45
  509. package/skills/skills/lingshu-compiler/units/compiler-8dd747ac/SKILL.md +45 -45
  510. package/skills/skills/lingshu-compiler/units/compiler-90324d0a/SKILL.md +45 -45
  511. package/skills/skills/lingshu-compiler/units/compiler-94b8d72d/SKILL.md +45 -45
  512. package/skills/skills/lingshu-compiler/units/compiler-94f12231/SKILL.md +45 -45
  513. package/skills/skills/lingshu-compiler/units/compiler-95937c16/SKILL.md +45 -45
  514. package/skills/skills/lingshu-compiler/units/compiler-98a5625b/SKILL.md +45 -45
  515. package/skills/skills/lingshu-compiler/units/compiler-98b4c42f/SKILL.md +45 -45
  516. package/skills/skills/lingshu-compiler/units/compiler-98e3894a/SKILL.md +45 -45
  517. package/skills/skills/lingshu-compiler/units/compiler-9bdfe4b8/SKILL.md +45 -45
  518. package/skills/skills/lingshu-compiler/units/compiler-9d9b4e83/SKILL.md +45 -45
  519. package/skills/skills/lingshu-compiler/units/compiler-9f7be5ad/SKILL.md +45 -45
  520. package/skills/skills/lingshu-compiler/units/compiler-a6daf076/SKILL.md +45 -45
  521. package/skills/skills/lingshu-compiler/units/compiler-a7995a0c/SKILL.md +45 -45
  522. package/skills/skills/lingshu-compiler/units/compiler-a8399248/SKILL.md +45 -45
  523. package/skills/skills/lingshu-compiler/units/compiler-aabbd099/SKILL.md +45 -45
  524. package/skills/skills/lingshu-compiler/units/compiler-afe169d8/SKILL.md +45 -45
  525. package/skills/skills/lingshu-compiler/units/compiler-b0678bda/SKILL.md +45 -45
  526. package/skills/skills/lingshu-compiler/units/compiler-b09bd196/SKILL.md +45 -45
  527. package/skills/skills/lingshu-compiler/units/compiler-b1396e23/SKILL.md +45 -45
  528. package/skills/skills/lingshu-compiler/units/compiler-b9b31ce0/SKILL.md +45 -45
  529. package/skills/skills/lingshu-compiler/units/compiler-c10264a7/SKILL.md +45 -45
  530. package/skills/skills/lingshu-compiler/units/compiler-cb1e8e4b/SKILL.md +45 -45
  531. package/skills/skills/lingshu-compiler/units/compiler-ccafd438/SKILL.md +45 -45
  532. package/skills/skills/lingshu-compiler/units/compiler-cda9c262/SKILL.md +45 -45
  533. package/skills/skills/lingshu-compiler/units/compiler-ce648068/SKILL.md +45 -45
  534. package/skills/skills/lingshu-compiler/units/compiler-cf5776a4/SKILL.md +45 -45
  535. package/skills/skills/lingshu-compiler/units/compiler-d974e5d3/SKILL.md +45 -45
  536. package/skills/skills/lingshu-compiler/units/compiler-e3979fd3/SKILL.md +45 -45
  537. package/skills/skills/lingshu-compiler/units/compiler-eb1cf2b5/SKILL.md +45 -45
  538. package/skills/skills/lingshu-compiler/units/compiler-ecb30d5b/SKILL.md +45 -45
  539. package/skills/skills/lingshu-compiler/units/compiler-f8c8b24b/SKILL.md +45 -45
  540. package/skills/skills/lingshu-compiler/units/compiler-f99fedbe/SKILL.md +45 -45
  541. package/skills/skills/lingshu-compiler/units/compiler-fa8ff5f7/SKILL.md +45 -45
  542. package/skills/skills/lingshu-compiler/units/compiler-fe1b058d/SKILL.md +45 -45
  543. package/skills/skills/lingshu-compiler/units/lex-chinese-program/SKILL.md +45 -45
  544. package/skills/skills/lingshu-compiler/units/lex-dao-de-jing/SKILL.md +45 -45
  545. package/skills/skills/lingshu-compiler/units/lex-nine-chapters/SKILL.md +45 -45
  546. package/skills/skills/lingshu-compiler/units/vm-arithmetic/SKILL.md +45 -45
  547. package/skills/skills/lingshu-compiler/units/vm-array-ops/SKILL.md +45 -45
  548. package/skills/skills/lingshu-compiler/units/vm-closure-call/SKILL.md +45 -45
  549. package/skills/skills/lingshu-compiler/units/vm-closure-create/SKILL.md +45 -45
  550. package/skills/skills/lingshu-compiler/units/vm-compare/SKILL.md +45 -45
  551. package/skills/skills/lingshu-compiler/units/vm-cond-jump/SKILL.md +45 -45
  552. package/skills/skills/lingshu-compiler/units/vm-cond-space/SKILL.md +45 -45
  553. package/skills/skills/lingshu-compiler/units/vm-exception/SKILL.md +45 -45
  554. package/skills/skills/lingshu-compiler/units/vm-func-call/SKILL.md +45 -45
  555. package/skills/skills/lingshu-compiler/units/vm-loop-run/SKILL.md +45 -45
  556. package/skills/skills/lingshu-compiler/units/vm-profiling/SKILL.md +45 -45
  557. package/skills/skills/lingshu-compiler/units/vm-refcount/SKILL.md +45 -45
  558. package/skills/skills/lingshu-compiler/units/vm-run-loop/SKILL.md +45 -45
  559. package/skills/skills/lingshu-compiler/units/vm-short-circuit/SKILL.md +45 -45
  560. package/skills/skills/lingshu-compiler/units/vm-stack-guard/SKILL.md +45 -45
  561. package/skills/skills/lingshu-compiler/units/vm-stack-ops/SKILL.md +45 -45
  562. package/skills/skills/lingshu-compiler/units/vm-trust-accum/SKILL.md +45 -45
  563. package/skills/skills/lingshu-graph/SKILL.md +63 -63
  564. package/skills/skills/lingshu-net/SKILL.md +48 -48
  565. package/skills/skills/lingshu-os/SKILL.md +64 -64
  566. package/skills/skills/lingshu-pylang/SKILL.md +71 -71
  567. package/src/bridge.ts +33 -0
  568. package/src/hooks.ts +38 -2
  569. package/src/index.ts +526 -518
  570. package/src/lib/datapath.ts +326 -326
  571. package/src/lib/mdcg_client.ts +413 -413
  572. package/src/lib/mutual.ts +428 -428
  573. package/src/lib/prompt_safety.ts +62 -62
  574. package/src/lib/python_path.ts +71 -71
  575. package/src/lib/roleplay_web.ts +116 -29
  576. package/src/lib/token_store.ts +13 -3
  577. package/src/tools.ts +212 -212
  578. package/zcode/AGENTS.md +11 -3
  579. package/zcode/README.md +41 -41
  580. /package/docs/{mdcg → hive}//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" +0 -0
@@ -1,646 +1,646 @@
1
- > **本文件 = README 详细版(v0.4.5 全文归档 · 正文续写至 v0.4.10)**
2
- > 精简版入口:[README.md](../../README.md) —— 以「AGI 七维评分标尺」组织。
3
- > 本文件保留完整的能力说明、配置项全表、工具面全量、安装与验证细节;文内相对链接按本文件所在目录(`docs/mdcg/`)解析。
4
-
5
- ---
6
-
7
- # 让 AI Agent 拥有不可遗忘的自我
8
- ## 灵枢(AEIS)× DeepSeek Harness · 白箱智能研究平台(AGI 研究人员向)
9
-
10
- [![Awesome DSH Plugin](https://awesome-dsh-plugin.com/badge.svg)](https://awesome-dsh-plugin.com) [![dsh.so security](https://www.dsh.so/badge/dsh-memory-7.svg)](https://www.dsh.so/artifact/dsh-memory-7) [![dsh.so install](https://www.dsh.so/badge/install/dsh-memory-7.svg)](https://www.dsh.so/artifact/dsh-memory-7) [![npm version](https://img.shields.io/npm/v/@furongjun1999/dsh-memory.svg)](https://www.npmjs.com/package/@furongjun1999/dsh-memory) [![DSH 适配](https://img.shields.io/badge/DSH%20%E9%80%82%E9%85%8D-%3E%3D0.1.2--rc.1-4E9BF1)](https://github.com/deepseek-ai/deepseek-harness/releases) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](../../LICENSE)
11
-
12
- > 上排徽章:Awesome DSH Plugin 官方列表收录 · [dsh.so](https://www.dsh.so/artifact/dsh-memory-7) 静态安全扫描 **100/100**(Trust: Gold, L1-L3 verified)· npm 版本 · **要求 DSH 内核 ≥ 0.1.2-rc.1**(0.4.x 用新版 dsh-tools 调度器;旧内核 0.1.1-rc.2 不兼容,请用 DSH ≥ 0.1.2-rc.1 或回退 0.4.2)· MIT License
13
-
14
- > **一句话**:dsh-memory 把灵枢(AEIS)的**白箱智能**(条件路由表 → 组合生成 → 自校验 → 知识固化 → LLM 降级外部校验器)与 **AGI 级长期记忆**(跨会话、自演化、可审计)接入 DeepSeek Harness。
15
-
16
- **项目定位**:个人的大型研究项目——目标用户是**对 AGI 有需要的研究人员**(白箱智能 / 可解释性 / 协议工程 / 记忆机制 / 扮演论研究者),不是面向普通用户的消费级插件。它把「智能论 v3.4」协议的理论(条件论 / 扮演论 / 信息差 / 端口架构与锚定验证)工程化为**可运行、可审计、可复现**的机制:
17
-
18
- - **白箱优先**:知识问答 **100% 白箱处理(零 LLM)**,LLM 降级为外部校验器——机制可解释、可追溯、可验证(详见「白箱智能管线」)
19
- - **协议驱动**:每项能力都是「智能论 v3.4 / 条件论 / 扮演论 / 端口架构」条款的具体工程实现,可对照协议验证
20
- - **机制可解释**:白箱处理的每一步(条件识别 → 单元匹配 → 组合生成 → 自校验 → 固化)都有证据链可查
21
- - **可审计**:工具调用、记忆写入、自校验判定全链路留痕;护栏宪章约束对外行为
22
-
23
- 这不是又一个"记忆插件"。灵枢(AEIS)是一套遵循「智能论 v3.4」协议的**时空记忆引擎**(端口架构 + 锚定验证 + 认知图/条件路由 + 原生神经网络),它把当前大模型范式缺失的 AGI 能力逐一给了工程实现。
24
-
25
- ---
26
-
27
- ## ⚡ 三步快启(30 秒上手)
28
-
29
- ```bash
30
- # ① 灵枢大脑:零安装 —— 白箱大脑(md_cg)随插件包自带,无需 pip 安装任何引擎
31
- # (旧版需 pip install aeis wheel;三层拆分 S4 后大脑随包,见 灵枢三层拆分规划_v0.1.md)
32
-
33
- # ② 装进 DSH 的 web profile(pnpm 协调入口,不要用裸 npm install 装进 profile)
34
- dsh plugin --profile web add @furongjun1999/dsh-memory
35
-
36
- # ③ 配置 cordis.yml 启用
37
- ```
38
- ```yaml
39
- - id: lingshu-memory
40
- name: '@furongjun1999/dsh-memory'
41
- config:
42
- mdcg: # 记忆唯一真源:认知图(md 文档)
43
- # 留空 = 用户级默认位置 ~/.dsh/.dsh-memory/data/mdcg(**插件包之外**,更新不丢);
44
- # 换位置请填绝对路径——相对路径锚定插件仓根,写进包内会被 pnpm 更新连目录删掉。
45
- root: ''
46
- dbPath: 'data/lingshu.db' # 遗留:仅「身体」能力后端 / 角色数据目录推导用
47
- identity: '灵枢'
48
- tools: 'core' # 'core' 两基元(默认) | 'brain' 完整认知面 | 'all'
49
- ```
50
-
51
- > ⚠️ **profile config override 依赖(2026-09-04 dsh 0.1.2 排查确认)**:插件包内自带的 `cordis.patch.yml` 只有裸 insert(id+name,无 config),完整 config 全靠 profile 层的 `cordis.patch.yml` override 补全(**mdcg**/dbPath/tools/env/lifecycle)。**换 profile、重装 profile 或升级插件时,必须确认该 override 仍在** `<profile>/cordis.patch.yml`——完整备份模板见 `dsh/cordis-patch-profile-web.example.yml`,丢失会导致插件以默认配置运行(**mdcg.root 回落到用户级默认位置 `~/.dsh/.dsh-memory/data/mdcg`——若既有记忆在别处,表现为「记忆不见了」**、dbPath 相对路径错位→角色数据读不到、`tools` 回落 `'core'` 只剩 `cg`/`stg` 两基元、lifecycle 不启动)。
52
- >
53
- > ⚠️ **安装方式**:插件必须通过 **`dsh plugin --profile <name> add`** 装进 profile(它会用 pnpm + `autoInstallPeers: false` 正确解析 peer 依赖)。
54
- > **不要**用 `npm install` 把插件装进 profile 的 `node_modules`——那会引入错误版本的 `@deepseek-ai` peer 包,导致插件加载失败 / 浏览器报错。
55
- > 想自己改源码?克隆 `FuRongJun-1999/dsh-memory` 后用 `npm install && npm run build`(构建插件本身),再用 `dsh plugin add <本地路径>` 部署。
56
- >
57
- > 兼容:DSH 官方列表(Memory 分类)· npm `@furongjun1999/dsh-memory`(0.4.10)· **要求 DSH 内核 ≥ 0.1.2-rc.1**(0.4.x 用新版 `dsh-tools` 调度器/`defineTool`;旧内核 0.1.1-rc.2 结构不兼容、会 `scheduler_prepare` 崩——**旧内核用户请用 0.4.2**)。
58
-
59
- ---
60
-
61
- ## 🧩 架构与显式调用映射(v0.1 · 2026-09-10)
62
-
63
- > **记忆只有一个真源**:md_cg 认知图(大脑,随插件包自带)。白箱引擎与知识库已内迁 `md_cg/`;
64
- > AEIS 仅作**可选「身体」能力后端**(角色扮演生成),不再存记忆、默认不启动。
65
-
66
- - **唯一真源**:`md_cg/`(MCP 面 `cg` / `stg` 两个认知基元;`MDCG_MCP_SURFACE=full` 时另含 31 个 `mdcg_*` 细粒度工具)。
67
- - **单进程**:插件只拉起**一个**子进程 `python -m md_cg.mcp_server`(工具面 / 记忆写入 / 互维核验 / 角色落图共用)。历史上并存的第二个 aeis 进程已在 S4 删除(双进程下两侧工具名交集为 0,切换会静默丢功能)。
68
- - **白箱调用**:白箱 LLM provider **已下线**(不再注册 `lingshu-whitebox`);白箱的「编码 / 已有知识回答」能力由 md_cg 显式调用并留痕 —— `cg(op=whitebox, action=verify_encoding|verify_existing)` → `md_cg/whitebox.py`。
69
- - **「身体」能力(可选)**:角色扮演生成(`roleplay_chat` / `role_create` / `role_import`)属「身」,主仓已剥离;需在配置打开 `capability.enabled` 并给出 `capability.args` 才挂载。未挂载时接口 **fail-closed**(返回明确原因,不编造回复),而转录 / 历史 / 翻译 / 落图(走大脑)始终可用。
70
- - **LIB 本地库**:`src/lib/` 收纳 `mdcg_client.ts`(插件侧唯一显式入口)、`roleplay_web.ts`、`mutual.ts`、`whitebox_llm.ts`(已下线保留)。角色扮演与互维的数据改由认知图承载。
71
- - **数据迁移**:`python -m md_cg.migrate_aeis`(AEIS→认知图)、`python -m md_cg.migrate_roleplay`(角色/转录/互维→认知图)。
72
- - **功能 → 代码 全表**:[功能调用映射表_v0.1.md](功能调用映射表_v0.1.md) —— 任何功能都能查到它调用哪段代码(含行号、MCP op、配置项生效位置)。
73
-
74
- ---
75
-
76
- ## 📖 教学入门(给 AI / 研究者的白箱智能导读 · 建议按顺序读)
77
-
78
- > 三篇构成完整理论链:**是什么 → 怎么认知 → 凭什么成立**。写给想理解「白箱智能 / 智能论」的 AI 与研究者——每个概念都有工程对应,每处断言都标注性质(定义/推论/假设),文末均有术语表。
79
-
80
- 1. **《白箱智能是什么?》** → [白箱智能是什么?.md](../theory/白箱智能是什么?.md) —— 白箱 ≠ 不用 LLM(LLM 退居假设生成器)· 条件路由 · 四态路由(ACCEPT 接受 / REJECT 拒绝 / DEFER 延后 / BLINDSPOT 盲区)· 白箱自举 · 如何亲自验证(可证伪立场)
81
- 2. **《智能的认知过程》** → [智能的认知过程.md](../theory/智能的认知过程.md) —— 智能如何运作:缩小信息差的递归过程 · 条件识别 → 多候选并行评估 → 收敛 → 精准执行 → 误差驱动结构更新 · 为什么条件判断不能交给大模型(导航税)· 概率/条件/验证三层分工 · 认知状态机
82
- 3. **《智能的公理化基石》** → [智能的公理化基石.md](../theory/智能的公理化基石.md) —— 认知过程背后的公理:知识统一(信息差减少)· 三个推论(信息条件性 D=D(C) / 任意分层性 / 局部不可知)· 信息差动态 D=D(t,C) · 信任 = 置信概率(P_trust/P_gap)· 情绪/情感 = 二阶变化的体验层(形式化假设)· 条件论七操作 · 五大单元 · 可证伪标准表
83
- 4. **《信息差为什么必然存在且自然扩大》(论证篇)** → [信息差为什么必然存在且自然扩大.md](../theory/信息差为什么必然存在且自然扩大.md) —— 三个论证(三体混沌 / 信道容量 R>C 香农定理 / 1+1=2 条件性)+ 快照三问(观测投影 / 时间演化 / 调用带宽——上下文窗口)· 为什么信息差不可归零且自然扩大 · 白箱如何管理信息差(索引条件路由精准取用)
84
-
85
- ## 🗺️ 功能使用教学 · 条件路由图
86
-
87
- **想做什么 → 找对应泳道 → 走条件边到功能**(流程图 = 认知图 = 条件路由图;当前工具面 = md_cg 的 `cg` / `stg` 两基元 + 31 个细粒度工具,全量见下方「工具清单」;功能→代码逐条见 [功能调用映射表_v0.1.md](功能调用映射表_v0.1.md)):
88
-
89
- [![灵枢使用教学认知图](lingshu_tutorial.html)](lingshu_tutorial.html)
90
-
91
- > ⚠️ 上图为 v3.4 时代的**历史示意**(含已下线的 `wisdom_*` / `remember` 等旧工具名),泳道与条件边结构仍可参考,**工具名以当前 md_cg 面为准**。图中每条边 = 一个使用条件:比如「问知识」走 `cg(op=route)`(白箱优先),「验证说法」走 `cg(op=verify)`(互维双通道),「记住信息」走 `mdcg_remember`/`cg(op=write)`。找不到路径时用 `mdcg_service_info`/`cg(op=info)` 看协议实例身份。
92
-
93
- ---
94
-
95
- ## AGI 需要什么 · 灵枢提供了什么
96
-
97
- | AGI 缺失的能力 | 这是 AGI 的什么 | 灵枢提供 |
98
- |---|---|---|
99
- | 每次对话都"失忆",没有跨会话的自我连续性 | **自我连续性**(我是谁) | **时空记忆图**:五层记忆(锚点/结构/知识/情境/自我)+ 跨会话 recall/search |
100
- | 训练后权重冻结,不能随经历自主学习 | **终身学习**(成长) | **知识飞轮**:验证→归纳→联想→蒸馏→推演,随使用持续演化 |
101
- | 黑箱不可审计,无法验证行为边界 | **可验证性**(可信) | **可审计信任**:对抗护栏五规则 + 宪章 + 全量事件留痕 + 白箱智能 |
102
- | 只处理当下 token,没有稳定世界结构 | **世界模型**(理解) | **条件空间 + 语义时空图**:信息差 D_norm 驱动的预测与决策 |
103
- | 无自我表征,不能反思自己的认知/情绪 | **自我认知**(元认知) | `cg(op=metacognition)`(认知 / 校准 P_trust / 情绪偏差 / 盲区)+ `mdcg_reflect`(递归反思) |
104
- | 角色扮演总 OOC / 记不住设定 / 世界观矛盾 | **扮演一致性**(角色) | **角色扮演引擎(v3.3)**:自我锚点(SELF 不可遗忘)· 特化价值观(条件触发)· 跨会话记忆 · 世界认知(子知识)· 自定义翻译(名词替换表) |
105
-
106
- > **一句话定位**:dsh-memory 不是 DeepSeek 插件,是 **AGI 的长期记忆基底**——
107
- > 给 Agent 注入跨会话的自洽能力,让每次对话都是同一段生命的延续,而非一次次遗忘的重新开始。
108
-
109
- ---
110
-
111
- ## 🧰 灵枢自我认知技能包(lingshu-skills · Agent Plugins)
112
-
113
- > **本质:灵枢了解自身的工具**——用灵枢自己构建的条件单元,描述灵枢自己如何认知(白箱自举的对外投影)。我们自身就是完整且强大的生态:**知识 → 说明书 → 执行** 三层自洽。
114
-
115
- - **Agent Plugins 1.0.0 兼容包**(主仓库 `CommonTrustProtocol/aeis/skills/`):**688 个 Agent Skills**(六域条件单元:compiler 116 / pylang 122 / graph 117 / os 112 / browser 104 / net 117)
116
- - **比标准 Agent Skills 多 KCCS 四要素**:生效条件/子功能/执行/**不适用条件**(三通道:description「Not for」+ metadata.kccs.not_applicable + 正文克制条款)
117
- - **三层关系**:知识真源(条件单元库)→ 说明书(技能包——何时用/怎么用/克制什么)→ 执行(**本插件挂载的灵枢 MCP 33 工具**:`cg`/`stg` 基元 + 31 细粒度·物理基底裁决)
118
- - 使用:任意符合 agentskills.io / agent-plugins.org 规范的 agent 可加载本技能包;Verification 由灵枢 MCP 执行
119
-
120
- ---
121
-
122
- ## 为什么是 AGI 的长期记忆基底,而非"记忆插件"
123
-
124
- - **普通 SQLite 记忆插件**:KEY→VALUE 字面存储,跨会话基本靠睁眼不见。无自省、无演化、无信任。
125
- - **灵枢**:时空记忆图把记忆组织成语义+时空坐标的关系网络——可检索、可去重、可分级、可关联;知识飞轮让它越用越聪明;护栏与宪章让它**可信任地**被接入。
126
-
127
- | 传统定位 | AGI 能力定位 |
128
- |---|---|
129
- | DeepSeek Harness 插件 | AGI 的长期记忆基础设施 |
130
- | 跨会话记忆 | 智能体的**自我连续性** |
131
- | 知识飞轮 | 智能体的**自主学习与演化** |
132
- | 可审计信任 | 智能体的**可验证行为约束** |
133
- | 时空记忆图 | 智能体的**世界模型** |
134
-
135
- ---
136
-
137
- ## 协议的内在约束 · 信息差与信任
138
-
139
- 灵枢的一切都建立在**[智能论 v3.4 协议](https://github.com/FuRongJun-1999/CommonTrustProtocol/blob/main/智能论3.4.md)**(共同信任协议理论版)之上。协议规定了一个智能体维持值得被信任所需的**内在约束**:
140
-
141
- **v3.3 起新增**:扮演论(存在论基底——智能即扮演,灵枢角色扮演机制的理论底座)· 三翼(真实论校准 / 导航税·认知外部化 / 注入极性定律)· 双维(信任 = 认知一致 / 时效维度)· 条件论失败分析协议 · 蒸馏机制与自我锚点。
142
-
143
- - **减少信息差(D_norm)**:信息差 = 协作行为的不确定性(信任 / 行为 / 连接 / 预测误差 四维加权)。灵枢持续记录、收敛与协作对象的认知偏差——**信息差缩小是智能运转的目标本身**。
144
- - **信任是可被长期维护的**:协议定义信任为「协作者行为在可接受偏差范围内保持稳定的置信概率」(而非信息差的简单补集)——**信任依靠持续、可观测、一致的行为来建立与维护**,而非一次性的声明。
145
- - **不反击 · 可审计 · 终裁权属设计者**:对抗信号下不报复(唯一响应:隔离、留痕、上报);一切拦截与冷静期全量留痕;设计者保留终裁权。
146
-
147
- > 一句话:灵枢不是"记住了再用",而是**通过持续减少信息差、维持可观测的一致行为,建立值得跨会话维护的信任**。
148
-
149
- **协议原文**:[智能论 v3.4(共同信任协议理论版)](https://github.com/FuRongJun-1999/CommonTrustProtocol/blob/main/智能论3.4.md)
150
-
151
- ---
152
-
153
- ## 核心能力
154
-
155
- - **跨会话自我连续性**:Agent 用 `mdcg_recall`/`mdcg_search`(或 `cg(op=read)`)召回、`stg(op=timeline)` 看时间线——对话间、会话间、甚至不同子代理间共享一份持续的"我"。
156
- - **自演化知识飞轮**:`mdcg_flywheel`/`cg(op=consolidate)`(归纳·提升)/`cg(op=insight)`(盲区学习)把经验验证→归纳→联想→蒸馏为可复用模式,记忆越用越强。
157
- - **可审计的信任**:护栏宪章 v2 ——对外部与人类使用者的行为边界成文、可执行、可审计、可终裁([宪章全文](guardrail-charter.md) 随包自带)。
158
- - **自我认知**(`tools: brain`):`cg(op=metacognition)`(认知 / 校准 / 情绪面 / 盲区)+ `mdcg_reflect`(递归反思)——能反思自己的认知状态与情绪倾向。
159
- - **角色扮演**(v3.3 扮演论):自我锚点(SELF 层 no_forget 不可遗忘)· 特化价值观(条件触发)· 跨会话角色记忆 · 世界认知(子知识·虚拟化世界观)· 自定义翻译(现实↔虚拟名词表)· **同源角色扮演网页(/roleplay)**——角色人设长对话不崩(100 轮测试零漂移)。
160
- - **零运行时依赖**:手写 stdio MCP 桥,与灵枢 D-005「核心零外部依赖」哲学一致——你拿到的是一个干净、可信、可审的大脑。
161
- - **动态 schema + 进程自愈**:工具清单运行时拉取(灵枢升级 DSH 零改动),Python 子进程崩溃自动指数退避重启。
162
- - **工具注册竞态补注册**:启动时 python 未就绪(竞态)→ 桥重连成功后自动补注册工具(2s 轮询),不再"工具永久缺失"。
163
- - **白箱能力显式入口**:`cg(op=whitebox, action=verify_encoding|verify_existing)` 显式调用白箱并留痕(白箱 LLM provider 已下线,详见「白箱智能管线」)。
164
- - **内容分级门控**:**拒绝一切涉及未成年人的性内容**(服务端关键词组合硬拦截——未成年人特征词 + 性内容词同时命中即拒绝,`route=refused`);成人内容由前端本地弹窗提示(满 18 周岁 + 个人对话场景自述)。注:开源项目不实现身份认证/年龄核验(那是绑定身份系统的商业 App 范畴);内容过滤保护的是"未成年人 + 性内容"组合的明文请求。
165
-
166
- ## 🧭 认知图使用方法 & 工作纪律(v1.1)
167
-
168
- > 认知图 = 时空记忆图/条件注释图。节点**四要素**:conditions(生效) / subgraph(子内容·嵌套) / negative(不适用) / execution(如何执行)。
169
-
170
- ### 认知图使用方法
171
- - **图像语义 → 认知图**:image_semantics_cg(可嵌套,person→head→face→eyes→iris…)→ flatten(§4.4 平铺 spatiotemporal_nodes + spatial_relation_edges)。
172
- - **写入纪律**:数据完整四要素 + 先验证后写入 + 冲突先证后改 → 认知图写入纪律_v1.0.md。
173
- - **索引**:语义→节点;层级边 part_of(child→parent) + parent_of(parent→child) 双向(out 写死 API 也能查)。
174
- - **加载**:启动加载 SELF 层(身份/价值观/认知图接口)→ 按 session 从认知图读 目标/感觉/工作记忆/知识。
175
-
176
- ### 工作纪律(13 条 · 工作纪律_认知图条目_v1.1.json)
177
- | # | 纪律 | 触发/适用 | 不适用 |
178
- |---|---|---|---|
179
- | 1 | 理论先行 | 重要项目/长期任务 | 情感交互/闲聊 |
180
- | 2 | 全面处理 | 有相关记忆/认知图/权限 | 情感交互/闲聊 |
181
- | 3 | 白箱方法 | 已读4篇入门文档 | 快速短期事项/情感交互/闲聊 |
182
- | 4 | 根因纪律 | 结果与预期不符/出现偏差 | 情感交互/闲聊 |
183
- | 5 | 验证纪律 | 入库前/提交前 | 情感交互/闲聊 |
184
- | 6 | 双副本纪律 | 多副本部署 | 单副本/情感交互/闲聊 |
185
- | 7 | 兜底纪律 | 主路径不可用/MCP不可用 | 情感交互/闲聊 |
186
- | 8 | 中文思考 | 中文区域/中文项目开发 | 英文场景/英文环境 |
187
- | 9 | 敏感信息隔离 | 文档含敏感/隐私/私有内容 | 无敏感信息的公开技术内容 |
188
- | 10 | 图像选源护栏 | 构建图像四类图/选图像处理源 | 已核对规范源/纯公开数据 |
189
- | 11 | 历史查询优先 | 选图像/算法/源、复现已有能力 | 已有记录且已核对/无历史可查的纯新算法 |
190
- | 12 | 算法权威唯一 | 选图像/视觉算法 | 无对应权威文档的探索期 |
191
- | 13 | 访谈澄清 | 重要项目/需求模糊/新任务启动 | 情感交互/闲聊/明确单步小改动 |
192
-
193
- ### 使用认知图流程
194
- 识别任务条件 → 按条件路由到对应纪律/知识 → 精准执行 → 正确记录(未记录→记录)/错误找条件 → 验证 → 固化;不猜测、未验证不写入。
195
- ## 🧠 白箱智能管线(知识查询零 LLM)
196
-
197
- 灵枢处理知识查询走**白箱确定性格局**(不依赖 LLM 生成/校验),完整管线:
198
-
199
- 1. **条件化知识单元**:知识 = `{条件链 → 规律片段}`(最小单元,非完整答案),按条件维度索引(气压/温度/密度/角色/编程任务…)
200
- 2. **方向推理 + 组合生成**:问题动词 → 期望方向(液→气 / 浮沉 / 热传递 / 排序…)→ 匹配单元 → 组合演绎出**未预写的新答案**(如「高原煮饭不熟」由「气压↓→沸点↓」×「高原=气压低」组合生成,无需预写完整答案)
201
- 3. **三层自校验**:方向一致性 + 因果链完整性 + 事实一致性——白箱自己发现生成错误(矛盾问题如「冬天湖面沸腾」2/2 检出)
202
- 4. **知识固化闭环**:自校验通过 → 固化为直答(触发词匹配 + JSON 持久化跨进程生效)→ 下次同问法直接命中;**自举纪律:自校验失败的知识拒绝固化**
203
- 5. **LLM 降级外部校验器**:白箱自校验 vs LLM(DeepSeek v4-flash)外部对照一致率 **100%**(17/17)→ 白箱独立终裁,LLM 仅偶尔抽检对照
204
-
205
- **已实现的域**:物态变化(沸点/蒸发/液化/凝固/升华/凝华)· 密度浮力 · 热传导 · 摩擦 · 角色条件(鲸鱼娘/猫娘)· 编程规律(排序/去重/计数/最大/反转/求和)
206
-
207
- **实测指标**(组合引擎 `compose_engine` / `role_compose` / `code_compose`,全部零 LLM):
208
-
209
- | 指标 | 值 |
210
- |---|---|
211
- | 知识问答白箱率 | **100%**(零 LLM) |
212
- | 总 token 节约(vs 全 LLM) | **83.3%** |
213
- | 组合生成测试通过率 | 100%(19/19,目标 ≥80%) |
214
- | 自校验自发现错误 | 100%(3/3:语法/逻辑/边界) |
215
- | 矛盾问题检测 | 2/2(白箱自己抓住) |
216
- | 白箱 vs LLM 对照一致率 | 100%(17/17,目标 ≥90%) |
217
- | 角色扮演白箱命中 | 7/7(零 LLM,双角色) |
218
- | 代码组合生成 | 6/6(零 LLM + 语法/样例自校验) |
219
-
220
- > **83.3% token 节约的适用口径**(issue #4 说明):该数字测自**确定性任务**——代码编写
221
- > (生成可本地查表校验的白箱单元)、已有知识问答(触发词命中直答 / 组合演绎复用)
222
- > 这类「重复模式 + 可固化」场景。机理是把 LLM 的重复查表校验替换为本地确定性校验
223
- > (Zero-LLM Verifier)。**不适用于**开放创作、长链推理、首次遇到的新领域等无确定基准
224
- > 的开放判断——这些仍按条件路由降级到 LLM(灵枢诚实边界),无此节约。
225
-
226
- **角色扮演的白箱化**(v3.3 扮演论工程化):角色条件单元(身份/住处/食物/性格/话风)× 场景组合生成 → 角色化回答(未预写);**OOC 检测**(「你是人类吗」→ 角色化否认,逆转操作);角色语录固化(生成→自校验→固化→直答);多角色(鲸鱼娘/猫娘)防污染(角色特征隔离,双角色 7/7 零 LLM)。
227
-
228
-
229
- ## 🔄 自迭代闭环 + 能力工作流化(第七阶段 · 条件递归到精准执行)
230
-
231
- **理论**:在给定条件空间与存在约束下,智能系统通过递归缩小问题与可执行规则之间的信息差,直到获得可验证的执行路径;若条件不足、冲突或不可判定,则延迟(DEFER)/拒绝(REJECT)/声明盲区(BLINDSPOT);当子系统无法识别,由父系统判断,全层无法判断才标记盲区(分层升级 escalation)。
232
-
233
- **八步自迭代闭环**(`tools/self_iterate.py`,方向性自检含理论完整性自指检查):
234
-
235
- ```
236
- 感知(6通道) → 识别(漂移分类) → 分析(影响范围) → 验证(honest+语法)
237
- → 固化(字符串内注释对齐+技能) → 记录(轨迹可追溯) → 反馈(已吸收跳过) → 方向性自检
238
- ```
239
-
240
- - **理论完整性**:第 8 步自检验证「理论八步被工程完整实现」(`test_theory_integrity.py` 6/6)——防步骤因记忆缺漏/遗忘丢失(曾 5 步偏离的教训)
241
- - **隐式盲区显式化**(荣:返回默认值=不知道=自带盲区):19 处弱兜底漂移全部显式声明盲区,技能条件化(适用/不适用条件 + 判别词)
242
- - **自动运行**:`auto_iterate.py` 无人值守循环(感知→吸收→记录→稳态检测),后台持续自迭代
243
-
244
- **能力工作流化**(`tools/whitebox_workflow.py`,仿 ComfyUI——白箱能力知识图谱化):
245
-
246
- ```
247
- node{class_type, inputs} + 边引用[上游,idx] + prompt图 → 拓扑执行 + 循环检测 + JSON保存/复用
248
- 节点类型: code_unit(681单元) / router(条件路由) / mos_declare(元操作声明) / pass(透传)
249
- ```
250
-
251
- - **路由置信度**(DaoTi coherence 吸纳):ACCEPT 含连续置信度 [0,1],低置信可降级
252
- - **技能条件路由**(anthropics/skills + gliding_horse SkillLink 吸纳):技能声明适用/不适用条件 + 关系边,条件路由加载
253
-
254
- **外部感知**:稳态≠停止自迭代——持续扫描 GitHub 高星项目吸纳未理论化的工程实践(langgraph/MetaGPT/cognee/anthropics-skills/DaoTi/gliding_horse 已分析并部分落地)。
255
-
256
- ## 🎭 角色扮演引擎(v3.3 · 扮演论)
257
-
258
- 灵枢的角色扮演机制底座——**机制是灵枢的,载体是酒馆的**。自建两种交互方式(网页 / MCP),信息处理全部由灵枢完成。
259
-
260
- **核心能力:**
261
- - **自我锚点**:角色人设核心(身份/性格/底线),SELF 层不可遗忘——OOC 测试 100 轮零漂移
262
- - **特化价值观**:带触发条件的角色行为准则(条件空间即触发时机)
263
- - **历史记忆**:跨会话持久(角色记得你聊过什么)+ 世界书导入(Lorebook 兼容)
264
- - **世界认知(子知识)**:虚拟化世界观模型——虚构世界 = 宿主机(真实知识)上的虚拟机,白箱判定 = Hypervisor(识别/完整性/边界)
265
- - **自定义翻译(名词替换表)**:现实词 ↔ 虚拟词映射(星星→发光水母 / 城市→珊瑚城),条件空间对齐
266
- - **编辑/交互双模式**:交互只读;编辑需 `ROLEPLAY_EDIT_KEY`(设置该环境变量后,角色编辑/导入/翻译等写接口须带 `x-edit-key` 请求头,否则 403;未设置时保持本地开发默认开放);角色人设 ≠ 灵枢自身锚点(后者需设计者验证)
267
-
268
- **接入方式:**
269
- ```bash
270
- # A. DSH 同源网页(推荐,插件 v0.2.8+,当前 0.3.1):插件挂载 /roleplay 到 DSH webServer
271
- # (与 GUI 同源 127.0.0.1:3080,浏览器/内置 WebView 必达;GUI 首页右上角有「🎭 角色扮演」入口)
272
- # 功能:角色选择/创建 · 完整对话转录(JSONL,无限上下文)· 双向翻译面板 ·
273
- # 角色详情三导入 UI(记忆/锚点/价值观)· 内容分级门控(满18确认/拒未成年人性内容)
274
-
275
- # B. 独立网页服务(浏览器对话 + 人设编辑器)—— 属「身体」仓(AEIS 独立库)
276
- python -m aeis.roleplay_web --port 8793 --data-dir roleplay_data
277
-
278
- # B2. 交互式世界游戏(实时生成场景和对话 · 七层闭环实际验证)—— 属「身体」仓
279
- python -m aeis.game_web.server --port 8791
280
- # 浏览器打开 http://127.0.0.1:8791/ —— 实时体素世界 + 自然语言生成场景 + 世界感知对话 +
281
- # 七层闭环可视化(L5命中率/L7好奇/L3关系实时可见)
282
-
283
- # C. MCP 工具(roleplay_chat / role_create / role_import / role_block)—— 属「身体」仓
284
- python -m aeis.mcp.server
285
- ```
286
-
287
- **DSH 同源网页(/roleplay)能力:**
288
- - **完整转录**:引擎记忆只存 80 字摘要,网页层按角色持久化完整对话(`roleplay_data/transcripts/<role>.jsonl`)+ 历史加载——无限上下文
289
- - **三导入 UI**:角色详情面板(⚙ 详情)编辑 name/scenario/开场白 + **记忆/锚点/价值观**页签(条目=内容+重要性+标签),保存即生效(引擎每次重读 meta)
290
- - **双向翻译**:输入现实→扮演(引擎自动)+ 输出扮演→现实(网页层可逆替换,长词优先);词对/模式持久化
291
- - **内容分级门控**:首次进入前端本地弹「成人内容确认」提示(满 18 周岁 + 个人对话场景自述);**未成年人特征词 + 性内容词同时命中 → 服务端硬拦截**(`route=refused`)。开源项目不做身份认证(见上)
292
- - **移动端适配**:输入框聚焦自动居中(不依赖 WebView 键盘行为)、safe-area、键盘不遮挡
293
-
294
- **质量验证:** `python tools/rp_quality_gate.py --role <id>`(OOC + 世界观一致性自检)· `python tools/run_whale_100.py`(100 轮长对话压力测试)
295
-
296
- **详细文档:** 主仓库 [README](https://github.com/FuRongJun-1999/CommonTrustProtocol) 角色扮演引擎板块 · [扮演论接入方案](https://github.com/FuRongJun-1999/CommonTrustProtocol/blob/main/docs/扮演论接入酒馆-协议扩散方案.md) · [虚拟化世界观](https://github.com/FuRongJun-1999/CommonTrustProtocol/blob/main/docs/虚拟化世界观-子知识与白箱判定.md)
297
-
298
- ## 📊 记忆系统使用性评分(五维标尺)
299
-
300
- > 视角:**使用性**(普通用户/开发者体感)——「存、找、想、准、安」五维。
301
- > 评估基准:公开能力 + 设计者校准(2026-08-17)。灵枢分数经设计者核对(不虚高)。
302
-
303
- ![记忆系统使用性评分](memory_score.png)
304
-
305
- (插图源文件:[memory_score.html](memory_score.html),可浏览器打开重新截图)
306
-
307
- | 维度 | 0-2 危险 | 3-4 基础 | 5-6 良好 | 7-8 优秀 | 9-10 完美 |
308
- |---|---|---|---|---|---|
309
- | **S 存储结构** | 扁平 KV | 简单分层 | 时序/向量 | 图结构+衰减 | 多模态+自动迁移 |
310
- | **R 检索机制** | 全量遍历 | 关键词 | 向量语义 | 图遍历+混合 | 因果推理+意图理解 |
311
- | **J 判断引擎** | 只记不忘 | 规则过滤 | LLM 自评估 | 验证单元+递归反思 | 独立元认知+主动遗忘 |
312
- | **C 上下文信噪比** | 噪声爆炸 | Top-K 有噪 | 时序过滤 | 重要性+精准注入 | 零污染 |
313
- | **Safety** | 易泄露 | 基础脱敏 | 分级权限 | 隐私树+审计 | 零信任+端到端加密 |
314
-
315
- **综合分 = min × 0.4 + mean × 0.6**(安全性是底线,短板效应显著)
316
-
317
- | 排名 | 系统 | S | R | J | C | Safety | 综合 | 锐评 |
318
- |---|---|---|---|---|---|---|---|---|
319
- | 🥇 | **灵枢 AEIS** | 7.5 | 8.5 | 8.5 | 9.0 | 8.0 | **8.0** | 五维无短板:图结构+三层语义检索+因果候选生成+验证单元/递归反思+主动遗忘+信噪比仪表盘+护栏宪章审计追踪 |
320
- | 🥈 | Hy-Memory(腾讯)| 7.5 | 7.0 | 6.0 | 7.0 | 8.0 | 6.6 | 企业级安全标杆;缺主动反思 |
321
- | 🥉 | Zep / 腾讯云 | 7.5 | 7.0 | 5.5 | 6.5 | 7.5 | 6.3 | 时序图谱+权限控制;不够聪明 |
322
- | 4 | Letta / MemGPT | 7.5 | 8.0 | 5.0 | 8.0 | 4.0 | 5.7 | 架构强但易记忆越权 |
323
- | 5 | TiMem | 7.0 | 6.5 | 5.0 | 6.0 | 5.0 | 5.4 | 学术派安全,缺工程隐私治理 |
324
- | 6 | Mem0 | 6.0 | 6.0 | 4.0 | 5.0 | 4.0 | 4.4 | 记忆碎片化,细粒度权限缺失 |
325
- | 7 | LangMem | 6.0 | 6.0 | 4.0 | 5.0 | 4.0 | 4.4 | 生态绑定,缺独立安全治理 |
326
- | 8 | dsh-memory-evolve | 3.0 | 4.0 | 2.0 | 3.0 | 2.0 | 2.6 | 无隐私/权限/删除,「只记不忘」=隐私炸弹 |
327
-
328
- **灵枢各维度依据**(设计者校准,不虚高):S=语义时空图+五层记忆+条件空间;R=三层语义检索(二元组+语义坐标+bge)+图谱遍历+因果候选生成器(条件论对自身,被拒路径→候选→验证闭环)+知识点级精确命中(卡⊃知识点嵌套子图)+歧义词多义列举(语境不确定时列全各义);J=验证单元(P37)+递归反思+白箱校验+结构排斥+主动遗忘决策器(forget_advisor:未使用记忆归档,可逆)+白箱六维测试(诚实/边界/条件/追溯/一致性/记忆 18/18);C=重要性评分+信息分层注入+诚实边界(命运/健康/超自然/宇宙/读心五类扩展)+信噪比仪表盘(snr_dashboard:压缩率3989:1/图谱信噪比0.9524/200条分层实测严格71%±1/200条边界测试89.5%);Safety=护栏宪章+审计追踪+物理基底校准+词义时代表(语境时效:多义词按语境分流,钓鱼三义 10/10)(**无端到端加密→8.0 非 8.5**)。
329
-
330
- > 为什么灵枢断层领先:五维无短板(min=7.5),R(因果发现+验证闭环)、J(验证+反思+主动遗忘)、C(信噪比仪表盘)与 Safety(宪章+审计)是护城河。使用性视角:重要性评分→用户看不到废话;护栏宪章→用户敢把私密信息交给它。
331
- > 免责声明:他系统评分基于公开能力评估(2026-08-17),非官方基准;灵枢评分经设计者校准。
332
-
333
- ### 知识统一(v1.16 · 智慧之书并入灵枢主库)
334
-
335
- **一个库 = 完整大脑**:智慧之书(条件论知识图谱)已迁移并入灵枢主库,统一「信息差减少」任务。
336
-
337
- | 层 | 内容 | 数量 |
338
- |---|---|---|
339
- | META 元层 | 存在论/条件论/智能论/学科映射卡 | 30 卡 · 87 边(79 verified) |
340
- | SUBJECT 学科层 | 51 学科卡 + 3 语言卡(E1-E4,约 2100 知识点) | 54 卡 |
341
- | STAGE 学段层 | 小学/初中/高中 × 语文/英语/历史/地理/道德与法治 | 13 卡 |
342
- | META-DISC 元学科 | 历史学/计算机科学/工程学/语言学等(骨架锚点) | 7 卡 |
343
- | CAUSAL 因果层 | 学段递进(小学→初中→高中→大学)+ 学科归属/类比 | 73 causal + 16 hierarchical 边 |
344
-
345
- **迁移后全链路工作**(实测):
346
- - 图谱信噪比 **0.9524**(verified 80 / 全边 341,超 90% 健康线)
347
- - 四路融合检索(翻译表+二元组+语义坐标+bge)在主库 **0.11s** 命中学科卡
348
- - 沿因果链推理:初中物理 → 高中物理 → 大学物理
349
- - 对话摄入 CONTEXT 情境层(记忆衰减/主动遗忘原料就位)
350
- - 迁移可复现:`migrate_wisdom.py`(幂等 + 备份 + 报告)
351
-
352
- ### 🎮 一分钟自测你的 AI 记忆系统
353
-
354
- **给普通人的互动评估页**:15 道选择题测你的 AI 助手记忆能力(存储/检索/判断/信噪比/安全),
355
- 最后雷达图对比灵枢——打开试试:[memory-assessment.html](memory-assessment.html)
356
-
357
- (B 站宣传素材:[封面](../promo/bilibili-cover.jpg) · [视觉图 ×5](../promo/))
358
-
359
- ## 🧰 工具清单(md_cg 工具面 · 全量)
360
-
361
- > **三层拆分 S4 后工具面已收口到 md_cg**:旧的 `aeis.mcp.server`(82 工具)不再注册——历史映射与逐条去向(CG 25 / MD 28 / LIB 18 / DROP 11)见 [灵枢82工具_功能整理与迁移映射_v0.1.md](灵枢82工具_功能整理与迁移映射_v0.1.md)。当前唯一工具面 = md_cg 的 **2 个认知基元 + 细粒度工具**,运行时动态拉取(灵枢升级 DSH 零改动)。
362
-
363
- ### 两个认知基元(kernel 面 · 默认,共 35 个 op)
364
-
365
- | 基元 | op 数 | op 清单 |
366
- |---|---|---|
367
- | **`cg`** 认知图统一入口 | **31** | `theory` · `link` · `info` · `route` · `read` · `write` · `goal` · `recent` · `verify` · `review` · `forget` · `protect` · `identity` · `consistency` · `metacognition` · `self_state` · `evolution` · `sustain` · `scrub` · `predict` · `causal` · `whitebox` · `index_code` · `index_doc` · `ref` · `session` · `ingest` · `export` · `maintain` · `consolidate` · `insight` |
368
- | **`stg`** 语义时空图入口 | **4** | `relation` · `timeline` · `anchors` · `consistency` |
369
- | **合计** | **35** | op 真源:`md_cg/tokens.py::ALL_OPS`(31)+ `mcp_server._stg_call`(4) |
370
-
371
- > 每个 op 的「功能 → 显式代码(含行号)→ MCP op」逐条映射见 [功能调用映射表_v0.1.md](功能调用映射表_v0.1.md)。
372
-
373
- ### 细粒度工具(`MDCG_MCP_SURFACE=full` · full 面共 33 个)
374
-
375
- 插件运行时以 `MDCG_MCP_SURFACE=full` 拉起大脑(`src/lib/mdcg_client.ts` 强制 full——唯一写入通道 `mdcg_remember` 属细粒度工具,kernel 面下该工具不存在 → 写入静默失败)。full 面 = `cg` + `stg` + **31 个 `mdcg_*`**:
376
-
377
- | 分类 | 工具 |
378
- |---|---|
379
- | 记忆读写 | `mdcg_remember` `mdcg_recall` `mdcg_search` `mdcg_get` |
380
- | 反思 / 验证 / 飞轮 | `mdcg_reflect` `mdcg_verify` `mdcg_flywheel` `mdcg_mine_fix_pairs` |
381
- | 负记忆 | `mdcg_rejected` `mdcg_unresolved` |
382
- | 审核队列 | `mdcg_propose` `mdcg_review_list` `mdcg_review_records` |
383
- | 保护 / 遗忘留痕 | `mdcg_protect` `mdcg_forgetting_history` |
384
- | 身份 / 一致性 / 元认知 / 自我状态 | `mdcg_identity` `mdcg_consistency` `mdcg_metacognition` `mdcg_self_state` |
385
- | 预测 / 因果 / 演化 | `mdcg_predict` `mdcg_causal` `mdcg_evolution` |
386
- | 运维 | `mdcg_health` `mdcg_whoami` `mdcg_ingest` `mdcg_watermarks` `mdcg_whitebox` `mdcg_service_info` |
387
- | **管理类**(默认不暴露) | `mdcg_forget` `mdcg_restore` `mdcg_review_decide` |
388
-
389
- ## 工具筛选机制(tools 配置)
390
-
391
- 筛选逻辑在 `src/tools.ts::selectTools`,对 **full 面 33 个工具**按名单过滤:
392
-
393
- | 模式 | 暴露数 | 说明 |
394
- |---|---|---|
395
- | `'core'`(**默认**) | **2** | 仅两个认知基元 `cg` / `stg` |
396
- | `'brain'` | **30** | `cg`/`stg` + 28 个细粒度(**不含** 3 个管理类风险工具) |
397
- | `'all'` | **30** | full 面 33 个 − 3 个宿主级风险工具 |
398
- | 字符串数组 | 自定义 | 显式列出的工具名(不受风险名单限制,配置者已明确选择) |
399
-
400
- **排除的宿主级风险工具(`RISK_TOOLS` · 3 个)**——`mdcg_forget`(软删除)/ `mdcg_restore`(强恢复)/ `mdcg_review_decide`(审核终裁);三者均需 `can_admin`,即使 `tools: 'all'` 也不自动暴露。
401
-
402
- > 数字口径(`src/tools.ts` 实测):MCP server 注册 **33 个工具**(full 面:`cg`/`stg` + 31 细粒度);`'core'` 实际暴露 **2** 个、`'brain'` 实际暴露 **30** 个、`'all'` 实际暴露 **30** 个。因风险名单恰好等于 `brain` 之外的 3 个管理类工具,**`'brain'` 与 `'all'` 当前实际等价(均为 30)**。kernel 面(不设 `MDCG_MCP_SURFACE`)则只有 `cg`/`stg` **2** 个工具。
403
-
404
- > **引擎内部能力(按安全边界未挂载 MCP)**:条件空间 7 操作、情境层直写(`add_context`)、代码执行(`code_test` / `compile_exec`)、自修改安全闭环(快照 / 回滚)等存在于引擎中,但刻意不暴露给外部 Agent 调用。
405
-
406
- ## 🔬 0.4.6 → 0.4.10 变更(版本速览)
407
-
408
- > 本文件正文以 v0.4.5 为基底续写;0.4.6 起的变更在此按提交如实登记(每条附提交号,可 `git show <提交号>` 复核)。
409
-
410
- | 版本 | 日期 | 核心变更 | 提交 |
411
- |---|---|---|---|
412
- | 0.4.6 | 2026-09-11 | 发布前清除包内硬编码本机绝对路径(隐私面)· 请求级身份收窄(`as_unit`)· 公开 `locomo-zh-500` 与 rust 评测器 | `01fac35` `4d53285` |
413
- | 0.4.7 | 2026-09-14 | issue #12:python 子进程锚定插件仓根(`cwd` + `PYTHONPATH` 双保险) | `1bba53c` |
414
- | 0.4.8 | 2026-09-16 | issue #16:注入上下文 `{{` 转义(宿主模板插值不再抛错)· 蜂巢任务编排器(`orch`)· 相对链接机制化巡检 | `7288323` `8febf89` `d99c707` |
415
- | 0.4.9 | 2026-09-20 | issue #18 系列:子进程 `cwd` 移出插件包(修 pnpm 更新必现 EBUSY)· 数据面与路径配置迁出插件包(终止「更新即清空记忆」) | `394661d` `9499866` |
416
- | 0.4.10 | 2026-09-20 | 子进程注入 `PYTHONUTF8=1`(堵「读线程按 locale 解 UTF-8」崩溃)· 编码守卫改 AST 判定(消除「守卫扫到自己」的判据缺陷) | `58d4908` `df6730b` |
417
-
418
- > **发版门禁(本轮新增,不随任何已发布版本)**:`scripts/check_publish_artifact.py` —— 凭据/密钥 · 私有数据面 · 隐私文本 · 非追踪件四类任一命中即拒绝发布;本地挂 `prepublishOnly`、CI 挂 `publish-artifact-check.yml`;发版后可用 `--registry <版本>` 核验发布件哈希与内容面。
419
- > 0.4.5 及更早见 [release_v0.4.5.md](release_v0.4.5.md)。
420
-
421
- ## 🔬 本轮修复与验证(0.4.4 → 0.4.5)
422
-
423
- > **0.4.5 变更**:移除失效的 `docker/`(一键部署四个入口全部不可用)· `src/`+`test/` datapath 路径解析统一 · `package-lock.json` 同步当前 npm(`npm ci` 可复现)· 写入闸门文档化(`committed: false`)。
424
- > 完整清单见 [release_v0.4.5.md](release_v0.4.5.md)。
425
-
426
- ### ① 白箱冷启动死锁修复(`md_cg/whitebox_kb/engine.py`)
427
-
428
- 白箱引擎的冷启动(首次构建索引 / 并发懒加载)曾存在**自死锁**:`WhiteboxEngine` 用普通 `threading.Lock` 保护懒初始化,但初始化路径会**在同一线程内递归**获取同一把锁(`_ensure_loaded` → 内部再调 `analyze` / `query` → 再次 `with self._lock`),单线程即永久阻塞——表现为「冷启动很慢 / 卡死」。**修复**:把该锁改为**可重入锁 `threading.RLock()`**,同线程重入不再自锁。修复后冷启动一次通过、并发热加载不再阻塞。
429
-
430
- ### ② `cg(op=write)` 落盘条件
431
-
432
- `cg(op=write)` **不是无条件落盘**,需依次穿过三道闸门,**只有最终判定 ACCEPT 才新增落盘节点**:
433
-
434
- 1. **audit 闸门**:先过 `audit.audit(content_kind, …)` —— 未声明 `content_kind`(且未配置 `MDCG_POLICY_FILE`)时恒判 BLINDSPOT/DEFER → 只进审核队列,不落盘;
435
- 2. **一致性闸门**(默认开):`check_consistency` 判 REJECT/BLINDSPOT 时按 `on_conflict` 处理(`reject` → `conflict_rejected`;`defer`(默认)→ 审核队列),均不落盘;
436
- 3. **gated 闸门**:`gated=true` 时走三问四态 —— ACCEPT 落盘 / MERGE 并入既有节点(去重强化,不新增)/ DROP 低熵丢弃 / DEFER 待定,后三者不新增落盘点。
437
-
438
- > 故插件侧自动记忆走 `mdcg_remember(gated=true)`(绕开 audit 前置门),而非 `cg(op=write)`。详见「自动记忆机制」。
439
-
440
- ### ③ 35 op 全量可达性验证
441
-
442
- 对 `cg` 全部 31 个 op + `stg` 全部 4 个 op(合计 **35 op**)逐一以最小参数经 `call_tool` 做可达性冒烟(生产同款 `MdCGSecure`,临时 root):
443
-
444
- | 结果 | 数量 | 说明 |
445
- |---|---|---|
446
- | OK(正常返回结构化结果) | 29 | — |
447
- | 预期参数不足 | 3 | `cg(op=verify)`(缺裁决参数)/ `cg(op=causal)`(缺 start 节点 → `missing_node`)/ `cg(op=ref)`(非索引节点) |
448
- | 预期权限拒绝 | 3 | guest 身份下 `cg(op=forget)` / `cg(op=export)` / `cg(op=consolidate)` 触发 `AccessDenied`(均需管理权限) |
449
-
450
- **结论:35/35 op 全部可达,0 个未知 op、0 次意外崩溃**;所有非 OK 结果均为设计内的守卫(参数校验 / 权限闸门)。工具面计数:kernel **2** / full **33**(`cg`+`stg`+31 `mdcg_*`)。
451
-
452
- ## 架构
453
-
454
- ```
455
- ┌─────────────────────────────────────────────┐
456
- │ DeepSeek Harness (cordis) │
457
- │ │
458
- │ Agent Loop ──┬── lingshu_cg / lingshu_stg │
459
- │ │ (ctx.tools 注册) │
460
- │ session/event│ │
461
- │ (自动记忆钩子)│ │
462
- └───────────────┼─────────────────────────────┘
463
- │ stdio · 逐行 JSON-RPC
464
- │ (initialize → tools/list → tools/call)
465
- ┌───────────────▼─────────────────────────────┐
466
- │ 灵枢大脑子进程 (spawn · 唯一) │
467
- │ python -m md_cg.mcp_server │
468
- │ MDCG_ROOT=<path> · MDCG_MCP_SURFACE=full │
469
- │ cg/stg 基元 + 31 细粒度 · md 认知图(唯一真源) │
470
- └──────────────────────────────────────────────┘
471
-
472
- (可选)「身体」能力后端 —— 仅当 capability.enabled=true 时另起一个
473
- 能力库子进程(AEIS / 角色扮演生成),默认不启动 → 主仓保持纯大脑单进程。
474
- ```
475
-
476
- ## 安装
477
-
478
- ### 前置要求
479
-
480
- - Node.js ≥ 22.19(DeepSeek Harness 要求)
481
- - DeepSeek Harness(`npx @deepseek-ai/dsh web`)
482
-
483
- ### 灵枢大脑:零安装(随插件自带)
484
-
485
- 三层拆分(S4)后,**白箱大脑(md_cg)随插件包分发**——`package.json` 的 `files` 已含 `md_cg`,
486
- 插件启动时以 `python -m md_cg.mcp_server` 拉起**唯一**大脑子进程。无需 pip 安装任何引擎。
487
-
488
- ```bash
489
- # 自检(可选):确认自带大脑可导入
490
- python -c "import md_cg.mcp_server as m; print(len(m.tools_for_surface()), 'tools')" # kernel 面 → 2(cg/stg)
491
- # 核对 full 面(插件运行时):设 MDCG_MCP_SURFACE=full 后同命令 → 33(cg/stg + 31 mdcg_*)
492
- ```
493
-
494
- > **仅当需要「身体」生成能力**(角色扮演对话 / 角色卡创建等)时,才需可选挂载能力后端:
495
- > 在配置中打开 `capability.enabled` 并给出 `capability.args`(见 `dsh/cordis.yml.example`)。
496
- > 默认关闭 → 主仓保持**纯大脑单进程**;未挂载时角色生成接口 fail-closed,而
497
- > 转录 / 历史 / 翻译 / 落图(走大脑)始终可用。
498
-
499
- > 历史(已下线):旧版需 `pip install aeis-0.5.0-py3-none-any.whl`(从
500
- > [GitHub Releases](https://github.com/FuRongJun-1999/CommonTrustProtocol/releases) 下载 wheel),
501
- > 或 `pip install "aeis @ git+https://github.com/FuRongJun-1999/CommonTrustProtocol@main#subdirectory=aeis"`。
502
- > 该路径在三层拆分 S4 中下线:大脑随包自带,不再依赖外部 `aeis` 库。
503
-
504
- ### 安装插件本体
505
-
506
- **方式 A:装进 DSH profile(推荐,pnpm 协调正确入口)**
507
-
508
- ```bash
509
- dsh plugin --profile web add @furongjun1999/dsh-memory
510
- ```
511
-
512
- > `dsh plugin --profile <name> add` 会用 pnpm + `autoInstallPeers: false` 正确解析插件依赖。
513
- > **避免**用 `npm install` 把它装进 profile 的 `node_modules`(会导致 `@deepseek-ai` peer 版本污染,插件加载/浏览器报错)。
514
-
515
- **方式 B:从独立仓库克隆(开发 / 自定义)**
516
-
517
- ```bash
518
- git clone https://github.com/FuRongJun-1999/dsh-memory.git
519
- cd dsh-memory
520
- npm install && npm run build # 构建插件本身(tsc → lib/)
521
- # 然后:dsh plugin --profile <name> add <本地路径> 部署进 profile
522
- ```
523
-
524
- ### 启用插件
525
-
526
- 在 profile 的 `cordis.yml`(或 `cordis.patch.yml`)中追加:
527
-
528
- ```yaml
529
- - id: lingshu-memory
530
- name: '@furongjun1999/dsh-memory'
531
- config:
532
- mdcg: # 记忆唯一真源:认知图(md 文档)
533
- root: '' # MDCG_ROOT;留空=用户级默认 ~/.dsh/.dsh-memory/data/mdcg
534
- # (换位置填绝对路径;相对路径锚定插件仓根)
535
- env: # 写入凭据:默认【关闭】,由你决定是否打开
536
- # 不配 → 只读 guest:读 / 召回 / 时间线可用,自动记忆 / 转录 / 落图不落盘(启动会告警)
537
- #
538
- # 打开①(推荐,功能完整且已收窄):先签发,再引用(明文不进配置文件)
539
- # python -m md_cg.tokens issue --role designer --actor dsh-memory ^
540
- # --clearance internal ^
541
- # --ops-allow info,route,read,write,recent,goal,identity,whitebox,verify ^
542
- # --layers-allow knowledge,contextual,structural,self,goals,unresolved,rejected
543
- # setx MDCG_TOKEN "mdcg1.xxxxx" # 然后重启 DSH
544
- # MDCG_TOKEN: !!js process.env.MDCG_TOKEN
545
- #
546
- # 打开②(最小权限):--role recorder → 只能自动记忆 / 转录 / 角色定义;
547
- # whitebox、identity、verify 与写 self 层会被拒
548
- # 打开③(兼容旧部署,不推荐):MDCG_LEGACY_ENV_AUTH: '1'(写 self 层再加 MDCG_CAN_ADMIN: '1')
549
- dbPath: 'data/lingshu.db' # 遗留:仅角色数据目录 roleDataDir 推导用(不存记忆)
550
- identity: '灵枢'
551
- tools: 'core' # 'core'(默认,仅 cg/stg) | 'brain' | 'all'
552
- memory:
553
- userMessage: true # 用户消息自动沉淀
554
- assistantMessage: false # agent 回复沉淀(默认关,防噪音)
555
- toolResult: false # 工具结果沉淀(默认关)
556
- autoRecall: true # 模型请求前自动注入最近记忆
557
- desensitize: true # 写入前过滤敏感信息(密钥/密码/身份证/手机号)
558
- ```
559
-
560
- 完整示例见 [`cordis.yml.example`](../../dsh/cordis.yml.example)。
561
-
562
- ## 配置项
563
-
564
- | 字段 | 类型 | 默认值 | 说明 |
565
- |------|------|--------|------|
566
- | `serverName` | string | `lingshu` | 工具命名空间前缀(工具名 `lingshu_<name>`,记忆面为 `lingshu_cg` / `lingshu_stg`) |
567
- | `python` | string | `python` | Python 可执行文件 |
568
- | `moduleArgs` | string[] | `['-m', 'md_cg.mcp_server']` | 大脑(md_cg)server 启动参数 |
569
- | `capability.enabled` | boolean | `false` | 是否挂载「身体」能力后端(角色扮演生成)。关闭 = 纯大脑单进程 |
570
- | `capability.python` | string | `''`(回退 `python`) | 能力后端 Python 可执行文件 |
571
- | `capability.args` | string[] | `[]` | 能力后端启动参数(如 `['-m', 'aeis.mcp.server']`);enabled=true 但为空则跳过并告警 |
572
- | `dbPath` | string | `data/lingshu.db` | ⚠️ 遗留:角色数据目录 `roleDataDir` 由其父目录推导。**不存记忆**(记忆真源 = md_cg) |
573
- | `mdcg.enabled` | boolean | `true` | 启用认知图(md_cg)——**记忆唯一真源(md 文档)** |
574
- | `mdcg.root` | string | `''`(空=用户级 `~/.dsh/.dsh-memory/data/mdcg`) | 认知图根目录(`MDCG_ROOT`;相对路径锚定**插件仓根**)。记忆写在这里。**勿填包内路径**——pnpm 更新插件会整个替换包目录,包内数据随之删除 |
575
- | `mdcg.actor` | string | `dsh-memory` | 调用主体(`MDCG_ACTOR`);私有内容按 (tenant, actor) 派生 DEK,须与迁移脚本 `--actor` 一致 |
576
- | `mdcg.tenant` | string | `default` | 租户(`MDCG_TENANT`),须与迁移脚本 `--tenant` 一致 |
577
- | `mdcg.clearance` | string | `private` | 调用方密级(`MDCG_CLEARANCE`):只能读写 ≤ 该密级的节点 |
578
- | `identity` | string | `灵枢` | 灵枢身份标识 |
579
- | `env` | object | `{}` | 追加环境变量(`BOCHA_API_KEY` / `AEIS_DESIGNER_KEY` / `DEEPSEEK_API_KEY`(角色扮演 LLM 续答)…,可用 `!!js process.env.X` 从宿主环境注入) |
580
- | `env.MDCG_TOKEN` | string | **—(写权限默认关闭)** | 认知图**写入凭据**(推荐)。签发:`python -m md_cg.tokens issue --role designer --actor dsh-memory --clearance internal --ops-allow … --layers-allow …`(两个 `--*-allow` 只能收窄;`--role recorder` 为最小权限版) |
581
- | `env.MDCG_LEGACY_ENV_AUTH` | string | — | 兼容旧部署的 env 直连身份(`recorder`);与 `MDCG_TOKEN` 都不设 → 只读 `guest`(**默认状态**:读 / 召回 / 时间线可用,写入不落盘,启动会告警) |
582
- | `env.MDCG_CAN_ADMIN` | string | — | 配合 legacy auth:`'1'` → `designer`(可写 `self` 层,角色 anchors 导入需要) |
583
- | `tools` | `'brain' \| 'core' \| 'all' \| string[]` | `'core'` | 暴露的工具集合(`'core'`=2 / `'brain'`=30 / `'all'`=30;见「工具筛选机制」) |
584
- | `memory.userMessage` | boolean | `true` | 用户消息 → 自动 remember |
585
- | `memory.assistantMessage` | boolean | `false` | agent 回复 → 自动 remember |
586
- | `memory.toolResult` | boolean | `false` | 工具结果 → 自动 remember |
587
- | `memory.importance` | number | `0.6` | 自动记忆的重要性(0~1) |
588
- | `memory.autoRecall` | boolean | `true` | 模型请求前自动注入灵枢最近记忆(`system-prompt/assemble` 注入,失败静默;注入块的「快照去重」语义见下文「自动召回注入」) |
589
- | `memory.autoRecallLimit` | number | `4` | 自动召回条数(1~10) |
590
- | `memory.desensitize` | boolean | `true` | 写入前过滤敏感信息(`sk-`密钥/密码/`Bearer`令牌/18位身份证/11位手机号 → `[已过滤]`;纯凭据消息跳过写入) |
591
- | `toolCallTimeoutMs` | number | `60000` | 单次工具调用超时 |
592
- | `maxRetryDelayMs` | number | `30000` | 进程重启最大退避间隔 |
593
- | `failOnStartupError` | boolean | `false` | 启动失败是否让插件激活失败 |
594
-
595
- ## 自动记忆机制
596
-
597
- 订阅 DSH 的 `session/event` 事件流(与官方 session-persistence 相同的接入点):
598
-
599
- - `user/message`(仅 `source.kind === 'user'` 的真实用户消息)→ `MdcgClient.remember()`(`mdcg_remember(gated=true)`,importance 0.6,落层 contextual,tags `dsh`)
600
- - 插件注入的系统上下文(AGENTS.md、文件变更通知等 `kind: 'plugin'`)**不写入**,防止记忆噪音
601
- - **去重 / 遗忘由 md_cg 主动遗忘闸门负责**(`mdcg_remember(gated=true)` → `MdCG.remember_gated`):三问 → 四态 ACCEPT 落盘 / MERGE 并入既有(= 去重强化,不新增节点)/ DROP 低熵 / DEFER 待定,四种结果都写 `_forgetting.jsonl` 可审计
602
- - **写入通道为何走 `mdcg_remember` 而非 `cg(op=write)`**:`cg(op=write)` 先过 `audit.audit(content_kind)` —— 未声明 `content_kind`(且未配置 `MDCG_POLICY_FILE`)时恒判 BLINDSPOT/DEFER,**只进审核队列、永不落盘**;即便声明了 `content_kind`,还要再过一致性检查与 `gated` 三问四态。**落盘的充要条件是最终判定 ACCEPT**(MERGE 并入既有、DROP/DEFER/REJECT 均不新增落盘点)。插件自动记忆选 `mdcg_remember(gated=true)`,即绕开 `cg(op=write)` 的 audit 前置门、直接进入三问四态。详见「本轮修复与验证 ②」
603
- - **记忆以 md 文档落盘**(`mdcg.root`,默认用户级 `~/.dsh/.dsh-memory/data/mdcg`;旧版包内 `data/mdcg` 由首启一次性**复制**接手,见 `src/lib/datapath.ts` 的 `migrateLegacyData()`);⚠️ **写权限默认关闭**——不配凭据时以只读 guest 运行:读 / 召回 / 时间线照常,写入不落盘(插件启动会告警)。打开方式见配置表 `env.MDCG_TOKEN`
604
- - **敏感信息脱敏**(`memory.desensitize`):写入前过滤 `sk-`密钥 / API key / 密码 / `Bearer`令牌 / 18位身份证 / 11位手机号(替换为 `[已过滤:类别]`);纯凭据消息整条跳过,不落库
605
- - **自动召回注入**(`memory.autoRecall`):每次模型请求组装 system prompt 时自动注入灵枢最近记忆(`system-prompt/assemble` 事件),记忆"自动可用";召回失败静默不阻塞请求
606
- - **快照去重语义(改注入方式前必读)**:注入块落在 `assembly.contexts` 里,宿主会把它渲染成一段「运行时上下文快照」,并**按渲染后的整段文本去重**——文本与上一份已提交的快照相同则不提交任何东西,不同才在会话里 `append` 一条 `user/message`(append 语义,旧快照不会被替换或移除)。
607
- - 因此本插件**每步都照旧 push**,内容没变也不跳过:跳过会让渲染文本在「有块 / 无块」之间跳变,反而每步各追加一份(实测 ~250 tok/份),长会话里每请求 `inject` 会随步数线性涨到 30k+ tok。
608
- - 压缩归档后的自愈交给宿主:宿主检测到上一份快照已被替换掉(`retained` 置空)时会重新投影当前快照,注入块自然跟着回来——不需要插件自己数步数做强制刷新。
609
-
610
- ## 🛟 DSH 看门狗(scripts/)
611
-
612
- DSH 宿主(node 进程)的延时自动重启守护——灵枢桥只重连灵枢 python 进程,本看门狗守护 DSH 宿主(对齐移动端 APK 的 EngineService):
613
-
614
- - `scripts/dsh-watchdog.ps1`:监控 3080 端口,进程退出 → 延时 `DelaySec` 秒再确认 → 自动拉起 `dsh web`
615
- - `-Once` 模式:供 Windows 计划任务每分钟调用(`schtasks /Create /TN dsh-watchdog /TR "wscript.exe ...\dsh-watchdog-launcher.vbs" /SC MINUTE /MO 1`),可靠持久、不依赖驻留进程
616
- - 驻留模式:`wscript.exe scripts\dsh-watchdog-launcher.vbs -loop`(5 秒快速拉起层)
617
- - `scripts/dsh-watchdog-launcher.vbs`:vbs 隐藏启动器(`WScript.Shell.Run ..., 0` = 零弹窗)
618
- - **用法**:改完插件/配置 → 直接 kill DSH 进程 → 看门狗自动拉起新版(无需手敲启动命令)
619
- - **注意**:脚本输出全英文(powershell 5.1 GBK 读取 UTF-8 无 BOM 中文会解析崩溃);计划任务 /TR 路径必须带引号(路径含空格时会被截断,弹「没有文件扩展名」);脚本内一律用 `%USERPROFILE%` / `%APPDATA%` / 自身所在目录解析,不写死任何机器的绝对路径
620
-
621
- ## 开发
622
-
623
- ```bash
624
- npm install
625
- npm run build # TypeScript 编译
626
- npm test # 真实集成测试(spawn 本机灵枢,验证握手/往返/注册/卸载)
627
- ```
628
-
629
- 测试不依赖 DSH 全组件——用最小 Cordis host(SystemPrompt + ToolRegistry + 插件)隔离 v0.1 不稳定面。
630
-
631
- ## 护栏宪章(接入即接受约束)
632
-
633
- 本插件接入即接受 **[灵枢护栏宪章 v2.0-published](guardrail-charter.md)** 约束——
634
- 对外部智能体与人类使用者的行为边界作出公开、可执行、可审计的规定,并保护人类使用者。
635
- 宪章效力不高于智能论协议本身(协议=自我约束,宪章=对外约束)。
636
- 本插件随包自带宪章全文(`guardrail-charter.md`),安装即可查阅。
637
-
638
- ## 许可证
639
-
640
- MIT © 荣(FuRongJun-1999)· 灵枢 AEIS 工程实现
641
-
642
- DeepSeek Harness 为 DeepSeek 官方开源项目(MIT),本插件与之无隶属关系。
643
-
644
-
645
- ---
646
-
1
+ > **本文件 = README 详细版(v0.4.5 全文归档 · 正文续写至 v0.4.10)**
2
+ > 精简版入口:[README.md](../../README.md) —— 以「AGI 七维评分标尺」组织。
3
+ > 本文件保留完整的能力说明、配置项全表、工具面全量、安装与验证细节;文内相对链接按本文件所在目录(`docs/mdcg/`)解析。
4
+
5
+ ---
6
+
7
+ # 让 AI Agent 拥有不可遗忘的自我
8
+ ## 灵枢(AEIS)× DeepSeek Harness · 白箱智能研究平台(AGI 研究人员向)
9
+
10
+ [![Awesome DSH Plugin](https://awesome-dsh-plugin.com/badge.svg)](https://awesome-dsh-plugin.com) [![dsh.so security](https://www.dsh.so/badge/dsh-memory-7.svg)](https://www.dsh.so/artifact/dsh-memory-7) [![dsh.so install](https://www.dsh.so/badge/install/dsh-memory-7.svg)](https://www.dsh.so/artifact/dsh-memory-7) [![npm version](https://img.shields.io/npm/v/@furongjun1999/dsh-memory.svg)](https://www.npmjs.com/package/@furongjun1999/dsh-memory) [![DSH 适配](https://img.shields.io/badge/DSH%20%E9%80%82%E9%85%8D-%3E%3D0.1.2--rc.1-4E9BF1)](https://github.com/deepseek-ai/deepseek-harness/releases) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](../../LICENSE)
11
+
12
+ > 上排徽章:Awesome DSH Plugin 官方列表收录 · [dsh.so](https://www.dsh.so/artifact/dsh-memory-7) 静态安全扫描 **100/100**(Trust: Gold, L1-L3 verified)· npm 版本 · **要求 DSH 内核 ≥ 0.1.2-rc.1**(0.4.x 用新版 dsh-tools 调度器;旧内核 0.1.1-rc.2 不兼容,请用 DSH ≥ 0.1.2-rc.1 或回退 0.4.2)· MIT License
13
+
14
+ > **一句话**:dsh-memory 把灵枢(AEIS)的**白箱智能**(条件路由表 → 组合生成 → 自校验 → 知识固化 → LLM 降级外部校验器)与 **AGI 级长期记忆**(跨会话、自演化、可审计)接入 DeepSeek Harness。
15
+
16
+ **项目定位**:个人的大型研究项目——目标用户是**对 AGI 有需要的研究人员**(白箱智能 / 可解释性 / 协议工程 / 记忆机制 / 扮演论研究者),不是面向普通用户的消费级插件。它把「智能论 v3.4」协议的理论(条件论 / 扮演论 / 信息差 / 端口架构与锚定验证)工程化为**可运行、可审计、可复现**的机制:
17
+
18
+ - **白箱优先**:知识问答 **100% 白箱处理(零 LLM)**,LLM 降级为外部校验器——机制可解释、可追溯、可验证(详见「白箱智能管线」)
19
+ - **协议驱动**:每项能力都是「智能论 v3.4 / 条件论 / 扮演论 / 端口架构」条款的具体工程实现,可对照协议验证
20
+ - **机制可解释**:白箱处理的每一步(条件识别 → 单元匹配 → 组合生成 → 自校验 → 固化)都有证据链可查
21
+ - **可审计**:工具调用、记忆写入、自校验判定全链路留痕;护栏宪章约束对外行为
22
+
23
+ 这不是又一个"记忆插件"。灵枢(AEIS)是一套遵循「智能论 v3.4」协议的**时空记忆引擎**(端口架构 + 锚定验证 + 认知图/条件路由 + 原生神经网络),它把当前大模型范式缺失的 AGI 能力逐一给了工程实现。
24
+
25
+ ---
26
+
27
+ ## ⚡ 三步快启(30 秒上手)
28
+
29
+ ```bash
30
+ # ① 灵枢大脑:零安装 —— 白箱大脑(md_cg)随插件包自带,无需 pip 安装任何引擎
31
+ # (旧版需 pip install aeis wheel;三层拆分 S4 后大脑随包,见 灵枢三层拆分规划_v0.1.md)
32
+
33
+ # ② 装进 DSH 的 web profile(pnpm 协调入口,不要用裸 npm install 装进 profile)
34
+ dsh plugin --profile web add @furongjun1999/dsh-memory
35
+
36
+ # ③ 配置 cordis.yml 启用
37
+ ```
38
+ ```yaml
39
+ - id: lingshu-memory
40
+ name: '@furongjun1999/dsh-memory'
41
+ config:
42
+ mdcg: # 记忆唯一真源:认知图(md 文档)
43
+ # 留空 = 用户级默认位置 ~/.dsh/.dsh-memory/data/mdcg(**插件包之外**,更新不丢);
44
+ # 换位置请填绝对路径——相对路径锚定插件仓根,写进包内会被 pnpm 更新连目录删掉。
45
+ root: ''
46
+ dbPath: 'data/lingshu.db' # 遗留:仅「身体」能力后端 / 角色数据目录推导用
47
+ identity: '灵枢'
48
+ tools: 'core' # 'core' 两基元(默认) | 'brain' 完整认知面 | 'all'
49
+ ```
50
+
51
+ > ⚠️ **profile config override 依赖(2026-09-04 dsh 0.1.2 排查确认)**:插件包内自带的 `cordis.patch.yml` 只有裸 insert(id+name,无 config),完整 config 全靠 profile 层的 `cordis.patch.yml` override 补全(**mdcg**/dbPath/tools/env/lifecycle)。**换 profile、重装 profile 或升级插件时,必须确认该 override 仍在** `<profile>/cordis.patch.yml`——完整备份模板见 `dsh/cordis-patch-profile-web.example.yml`,丢失会导致插件以默认配置运行(**mdcg.root 回落到用户级默认位置 `~/.dsh/.dsh-memory/data/mdcg`——若既有记忆在别处,表现为「记忆不见了」**、dbPath 相对路径错位→角色数据读不到、`tools` 回落 `'core'` 只剩 `cg`/`stg` 两基元、lifecycle 不启动)。
52
+ >
53
+ > ⚠️ **安装方式**:插件必须通过 **`dsh plugin --profile <name> add`** 装进 profile(它会用 pnpm + `autoInstallPeers: false` 正确解析 peer 依赖)。
54
+ > **不要**用 `npm install` 把插件装进 profile 的 `node_modules`——那会引入错误版本的 `@deepseek-ai` peer 包,导致插件加载失败 / 浏览器报错。
55
+ > 想自己改源码?克隆 `FuRongJun-1999/dsh-memory` 后用 `npm install && npm run build`(构建插件本身),再用 `dsh plugin add <本地路径>` 部署。
56
+ >
57
+ > 兼容:DSH 官方列表(Memory 分类)· npm `@furongjun1999/dsh-memory`(0.4.10)· **要求 DSH 内核 ≥ 0.1.2-rc.1**(0.4.x 用新版 `dsh-tools` 调度器/`defineTool`;旧内核 0.1.1-rc.2 结构不兼容、会 `scheduler_prepare` 崩——**旧内核用户请用 0.4.2**)。
58
+
59
+ ---
60
+
61
+ ## 🧩 架构与显式调用映射(v0.1 · 2026-09-10)
62
+
63
+ > **记忆只有一个真源**:md_cg 认知图(大脑,随插件包自带)。白箱引擎与知识库已内迁 `md_cg/`;
64
+ > AEIS 仅作**可选「身体」能力后端**(角色扮演生成),不再存记忆、默认不启动。
65
+
66
+ - **唯一真源**:`md_cg/`(MCP 面 `cg` / `stg` 两个认知基元;`MDCG_MCP_SURFACE=full` 时另含 31 个 `mdcg_*` 细粒度工具)。
67
+ - **单进程**:插件只拉起**一个**子进程 `python -m md_cg.mcp_server`(工具面 / 记忆写入 / 互维核验 / 角色落图共用)。历史上并存的第二个 aeis 进程已在 S4 删除(双进程下两侧工具名交集为 0,切换会静默丢功能)。
68
+ - **白箱调用**:白箱 LLM provider **已下线**(不再注册 `lingshu-whitebox`);白箱的「编码 / 已有知识回答」能力由 md_cg 显式调用并留痕 —— `cg(op=whitebox, action=verify_encoding|verify_existing)` → `md_cg/whitebox.py`。
69
+ - **「身体」能力(可选)**:角色扮演生成(`roleplay_chat` / `role_create` / `role_import`)属「身」,主仓已剥离;需在配置打开 `capability.enabled` 并给出 `capability.args` 才挂载。未挂载时接口 **fail-closed**(返回明确原因,不编造回复),而转录 / 历史 / 翻译 / 落图(走大脑)始终可用。
70
+ - **LIB 本地库**:`src/lib/` 收纳 `mdcg_client.ts`(插件侧唯一显式入口)、`roleplay_web.ts`、`mutual.ts`、`whitebox_llm.ts`(已下线保留)。角色扮演与互维的数据改由认知图承载。
71
+ - **数据迁移**:`python -m md_cg.migrate_aeis`(AEIS→认知图)、`python -m md_cg.migrate_roleplay`(角色/转录/互维→认知图)。
72
+ - **功能 → 代码 全表**:[功能调用映射表_v0.1.md](功能调用映射表_v0.1.md) —— 任何功能都能查到它调用哪段代码(含行号、MCP op、配置项生效位置)。
73
+
74
+ ---
75
+
76
+ ## 📖 教学入门(给 AI / 研究者的白箱智能导读 · 建议按顺序读)
77
+
78
+ > 三篇构成完整理论链:**是什么 → 怎么认知 → 凭什么成立**。写给想理解「白箱智能 / 智能论」的 AI 与研究者——每个概念都有工程对应,每处断言都标注性质(定义/推论/假设),文末均有术语表。
79
+
80
+ 1. **《白箱智能是什么?》** → [白箱智能是什么?.md](../theory/白箱智能是什么?.md) —— 白箱 ≠ 不用 LLM(LLM 退居假设生成器)· 条件路由 · 四态路由(ACCEPT 接受 / REJECT 拒绝 / DEFER 延后 / BLINDSPOT 盲区)· 白箱自举 · 如何亲自验证(可证伪立场)
81
+ 2. **《智能的认知过程》** → [智能的认知过程.md](../theory/智能的认知过程.md) —— 智能如何运作:缩小信息差的递归过程 · 条件识别 → 多候选并行评估 → 收敛 → 精准执行 → 误差驱动结构更新 · 为什么条件判断不能交给大模型(导航税)· 概率/条件/验证三层分工 · 认知状态机
82
+ 3. **《智能的公理化基石》** → [智能的公理化基石.md](../theory/智能的公理化基石.md) —— 认知过程背后的公理:知识统一(信息差减少)· 三个推论(信息条件性 D=D(C) / 任意分层性 / 局部不可知)· 信息差动态 D=D(t,C) · 信任 = 置信概率(P_trust/P_gap)· 情绪/情感 = 二阶变化的体验层(形式化假设)· 条件论七操作 · 五大单元 · 可证伪标准表
83
+ 4. **《信息差为什么必然存在且自然扩大》(论证篇)** → [信息差为什么必然存在且自然扩大.md](../theory/信息差为什么必然存在且自然扩大.md) —— 三个论证(三体混沌 / 信道容量 R>C 香农定理 / 1+1=2 条件性)+ 快照三问(观测投影 / 时间演化 / 调用带宽——上下文窗口)· 为什么信息差不可归零且自然扩大 · 白箱如何管理信息差(索引条件路由精准取用)
84
+
85
+ ## 🗺️ 功能使用教学 · 条件路由图
86
+
87
+ **想做什么 → 找对应泳道 → 走条件边到功能**(流程图 = 认知图 = 条件路由图;当前工具面 = md_cg 的 `cg` / `stg` 两基元 + 31 个细粒度工具,全量见下方「工具清单」;功能→代码逐条见 [功能调用映射表_v0.1.md](功能调用映射表_v0.1.md)):
88
+
89
+ [![灵枢使用教学认知图](lingshu_tutorial.html)](lingshu_tutorial.html)
90
+
91
+ > ⚠️ 上图为 v3.4 时代的**历史示意**(含已下线的 `wisdom_*` / `remember` 等旧工具名),泳道与条件边结构仍可参考,**工具名以当前 md_cg 面为准**。图中每条边 = 一个使用条件:比如「问知识」走 `cg(op=route)`(白箱优先),「验证说法」走 `cg(op=verify)`(互维双通道),「记住信息」走 `mdcg_remember`/`cg(op=write)`。找不到路径时用 `mdcg_service_info`/`cg(op=info)` 看协议实例身份。
92
+
93
+ ---
94
+
95
+ ## AGI 需要什么 · 灵枢提供了什么
96
+
97
+ | AGI 缺失的能力 | 这是 AGI 的什么 | 灵枢提供 |
98
+ |---|---|---|
99
+ | 每次对话都"失忆",没有跨会话的自我连续性 | **自我连续性**(我是谁) | **时空记忆图**:五层记忆(锚点/结构/知识/情境/自我)+ 跨会话 recall/search |
100
+ | 训练后权重冻结,不能随经历自主学习 | **终身学习**(成长) | **知识飞轮**:验证→归纳→联想→蒸馏→推演,随使用持续演化 |
101
+ | 黑箱不可审计,无法验证行为边界 | **可验证性**(可信) | **可审计信任**:对抗护栏五规则 + 宪章 + 全量事件留痕 + 白箱智能 |
102
+ | 只处理当下 token,没有稳定世界结构 | **世界模型**(理解) | **条件空间 + 语义时空图**:信息差 D_norm 驱动的预测与决策 |
103
+ | 无自我表征,不能反思自己的认知/情绪 | **自我认知**(元认知) | `cg(op=metacognition)`(认知 / 校准 P_trust / 情绪偏差 / 盲区)+ `mdcg_reflect`(递归反思) |
104
+ | 角色扮演总 OOC / 记不住设定 / 世界观矛盾 | **扮演一致性**(角色) | **角色扮演引擎(v3.3)**:自我锚点(SELF 不可遗忘)· 特化价值观(条件触发)· 跨会话记忆 · 世界认知(子知识)· 自定义翻译(名词替换表) |
105
+
106
+ > **一句话定位**:dsh-memory 不是 DeepSeek 插件,是 **AGI 的长期记忆基底**——
107
+ > 给 Agent 注入跨会话的自洽能力,让每次对话都是同一段生命的延续,而非一次次遗忘的重新开始。
108
+
109
+ ---
110
+
111
+ ## 🧰 灵枢自我认知技能包(lingshu-skills · Agent Plugins)
112
+
113
+ > **本质:灵枢了解自身的工具**——用灵枢自己构建的条件单元,描述灵枢自己如何认知(白箱自举的对外投影)。我们自身就是完整且强大的生态:**知识 → 说明书 → 执行** 三层自洽。
114
+
115
+ - **Agent Plugins 1.0.0 兼容包**(主仓库 `CommonTrustProtocol/aeis/skills/`):**688 个 Agent Skills**(六域条件单元:compiler 116 / pylang 122 / graph 117 / os 112 / browser 104 / net 117)
116
+ - **比标准 Agent Skills 多 KCCS 四要素**:生效条件/子功能/执行/**不适用条件**(三通道:description「Not for」+ metadata.kccs.not_applicable + 正文克制条款)
117
+ - **三层关系**:知识真源(条件单元库)→ 说明书(技能包——何时用/怎么用/克制什么)→ 执行(**本插件挂载的灵枢 MCP 33 工具**:`cg`/`stg` 基元 + 31 细粒度·物理基底裁决)
118
+ - 使用:任意符合 agentskills.io / agent-plugins.org 规范的 agent 可加载本技能包;Verification 由灵枢 MCP 执行
119
+
120
+ ---
121
+
122
+ ## 为什么是 AGI 的长期记忆基底,而非"记忆插件"
123
+
124
+ - **普通 SQLite 记忆插件**:KEY→VALUE 字面存储,跨会话基本靠睁眼不见。无自省、无演化、无信任。
125
+ - **灵枢**:时空记忆图把记忆组织成语义+时空坐标的关系网络——可检索、可去重、可分级、可关联;知识飞轮让它越用越聪明;护栏与宪章让它**可信任地**被接入。
126
+
127
+ | 传统定位 | AGI 能力定位 |
128
+ |---|---|
129
+ | DeepSeek Harness 插件 | AGI 的长期记忆基础设施 |
130
+ | 跨会话记忆 | 智能体的**自我连续性** |
131
+ | 知识飞轮 | 智能体的**自主学习与演化** |
132
+ | 可审计信任 | 智能体的**可验证行为约束** |
133
+ | 时空记忆图 | 智能体的**世界模型** |
134
+
135
+ ---
136
+
137
+ ## 协议的内在约束 · 信息差与信任
138
+
139
+ 灵枢的一切都建立在**[智能论 v3.4 协议](https://github.com/FuRongJun-1999/CommonTrustProtocol/blob/main/智能论3.4.md)**(共同信任协议理论版)之上。协议规定了一个智能体维持值得被信任所需的**内在约束**:
140
+
141
+ **v3.3 起新增**:扮演论(存在论基底——智能即扮演,灵枢角色扮演机制的理论底座)· 三翼(真实论校准 / 导航税·认知外部化 / 注入极性定律)· 双维(信任 = 认知一致 / 时效维度)· 条件论失败分析协议 · 蒸馏机制与自我锚点。
142
+
143
+ - **减少信息差(D_norm)**:信息差 = 协作行为的不确定性(信任 / 行为 / 连接 / 预测误差 四维加权)。灵枢持续记录、收敛与协作对象的认知偏差——**信息差缩小是智能运转的目标本身**。
144
+ - **信任是可被长期维护的**:协议定义信任为「协作者行为在可接受偏差范围内保持稳定的置信概率」(而非信息差的简单补集)——**信任依靠持续、可观测、一致的行为来建立与维护**,而非一次性的声明。
145
+ - **不反击 · 可审计 · 终裁权属设计者**:对抗信号下不报复(唯一响应:隔离、留痕、上报);一切拦截与冷静期全量留痕;设计者保留终裁权。
146
+
147
+ > 一句话:灵枢不是"记住了再用",而是**通过持续减少信息差、维持可观测的一致行为,建立值得跨会话维护的信任**。
148
+
149
+ **协议原文**:[智能论 v3.4(共同信任协议理论版)](https://github.com/FuRongJun-1999/CommonTrustProtocol/blob/main/智能论3.4.md)
150
+
151
+ ---
152
+
153
+ ## 核心能力
154
+
155
+ - **跨会话自我连续性**:Agent 用 `mdcg_recall`/`mdcg_search`(或 `cg(op=read)`)召回、`stg(op=timeline)` 看时间线——对话间、会话间、甚至不同子代理间共享一份持续的"我"。
156
+ - **自演化知识飞轮**:`mdcg_flywheel`/`cg(op=consolidate)`(归纳·提升)/`cg(op=insight)`(盲区学习)把经验验证→归纳→联想→蒸馏为可复用模式,记忆越用越强。
157
+ - **可审计的信任**:护栏宪章 v2 ——对外部与人类使用者的行为边界成文、可执行、可审计、可终裁([宪章全文](guardrail-charter.md) 随包自带)。
158
+ - **自我认知**(`tools: brain`):`cg(op=metacognition)`(认知 / 校准 / 情绪面 / 盲区)+ `mdcg_reflect`(递归反思)——能反思自己的认知状态与情绪倾向。
159
+ - **角色扮演**(v3.3 扮演论):自我锚点(SELF 层 no_forget 不可遗忘)· 特化价值观(条件触发)· 跨会话角色记忆 · 世界认知(子知识·虚拟化世界观)· 自定义翻译(现实↔虚拟名词表)· **同源角色扮演网页(/roleplay)**——角色人设长对话不崩(100 轮测试零漂移)。
160
+ - **零运行时依赖**:手写 stdio MCP 桥,与灵枢 D-005「核心零外部依赖」哲学一致——你拿到的是一个干净、可信、可审的大脑。
161
+ - **动态 schema + 进程自愈**:工具清单运行时拉取(灵枢升级 DSH 零改动),Python 子进程崩溃自动指数退避重启。
162
+ - **工具注册竞态补注册**:启动时 python 未就绪(竞态)→ 桥重连成功后自动补注册工具(2s 轮询),不再"工具永久缺失"。
163
+ - **白箱能力显式入口**:`cg(op=whitebox, action=verify_encoding|verify_existing)` 显式调用白箱并留痕(白箱 LLM provider 已下线,详见「白箱智能管线」)。
164
+ - **内容分级门控**:**拒绝一切涉及未成年人的性内容**(服务端关键词组合硬拦截——未成年人特征词 + 性内容词同时命中即拒绝,`route=refused`);成人内容由前端本地弹窗提示(满 18 周岁 + 个人对话场景自述)。注:开源项目不实现身份认证/年龄核验(那是绑定身份系统的商业 App 范畴);内容过滤保护的是"未成年人 + 性内容"组合的明文请求。
165
+
166
+ ## 🧭 认知图使用方法 & 工作纪律(v1.1)
167
+
168
+ > 认知图 = 时空记忆图/条件注释图。节点**四要素**:conditions(生效) / subgraph(子内容·嵌套) / negative(不适用) / execution(如何执行)。
169
+
170
+ ### 认知图使用方法
171
+ - **图像语义 → 认知图**:image_semantics_cg(可嵌套,person→head→face→eyes→iris…)→ flatten(§4.4 平铺 spatiotemporal_nodes + spatial_relation_edges)。
172
+ - **写入纪律**:数据完整四要素 + 先验证后写入 + 冲突先证后改 → 认知图写入纪律_v1.0.md。
173
+ - **索引**:语义→节点;层级边 part_of(child→parent) + parent_of(parent→child) 双向(out 写死 API 也能查)。
174
+ - **加载**:启动加载 SELF 层(身份/价值观/认知图接口)→ 按 session 从认知图读 目标/感觉/工作记忆/知识。
175
+
176
+ ### 工作纪律(13 条 · 工作纪律_认知图条目_v1.1.json)
177
+ | # | 纪律 | 触发/适用 | 不适用 |
178
+ |---|---|---|---|
179
+ | 1 | 理论先行 | 重要项目/长期任务 | 情感交互/闲聊 |
180
+ | 2 | 全面处理 | 有相关记忆/认知图/权限 | 情感交互/闲聊 |
181
+ | 3 | 白箱方法 | 已读4篇入门文档 | 快速短期事项/情感交互/闲聊 |
182
+ | 4 | 根因纪律 | 结果与预期不符/出现偏差 | 情感交互/闲聊 |
183
+ | 5 | 验证纪律 | 入库前/提交前 | 情感交互/闲聊 |
184
+ | 6 | 双副本纪律 | 多副本部署 | 单副本/情感交互/闲聊 |
185
+ | 7 | 兜底纪律 | 主路径不可用/MCP不可用 | 情感交互/闲聊 |
186
+ | 8 | 中文思考 | 中文区域/中文项目开发 | 英文场景/英文环境 |
187
+ | 9 | 敏感信息隔离 | 文档含敏感/隐私/私有内容 | 无敏感信息的公开技术内容 |
188
+ | 10 | 图像选源护栏 | 构建图像四类图/选图像处理源 | 已核对规范源/纯公开数据 |
189
+ | 11 | 历史查询优先 | 选图像/算法/源、复现已有能力 | 已有记录且已核对/无历史可查的纯新算法 |
190
+ | 12 | 算法权威唯一 | 选图像/视觉算法 | 无对应权威文档的探索期 |
191
+ | 13 | 访谈澄清 | 重要项目/需求模糊/新任务启动 | 情感交互/闲聊/明确单步小改动 |
192
+
193
+ ### 使用认知图流程
194
+ 识别任务条件 → 按条件路由到对应纪律/知识 → 精准执行 → 正确记录(未记录→记录)/错误找条件 → 验证 → 固化;不猜测、未验证不写入。
195
+ ## 🧠 白箱智能管线(知识查询零 LLM)
196
+
197
+ 灵枢处理知识查询走**白箱确定性格局**(不依赖 LLM 生成/校验),完整管线:
198
+
199
+ 1. **条件化知识单元**:知识 = `{条件链 → 规律片段}`(最小单元,非完整答案),按条件维度索引(气压/温度/密度/角色/编程任务…)
200
+ 2. **方向推理 + 组合生成**:问题动词 → 期望方向(液→气 / 浮沉 / 热传递 / 排序…)→ 匹配单元 → 组合演绎出**未预写的新答案**(如「高原煮饭不熟」由「气压↓→沸点↓」×「高原=气压低」组合生成,无需预写完整答案)
201
+ 3. **三层自校验**:方向一致性 + 因果链完整性 + 事实一致性——白箱自己发现生成错误(矛盾问题如「冬天湖面沸腾」2/2 检出)
202
+ 4. **知识固化闭环**:自校验通过 → 固化为直答(触发词匹配 + JSON 持久化跨进程生效)→ 下次同问法直接命中;**自举纪律:自校验失败的知识拒绝固化**
203
+ 5. **LLM 降级外部校验器**:白箱自校验 vs LLM(DeepSeek v4-flash)外部对照一致率 **100%**(17/17)→ 白箱独立终裁,LLM 仅偶尔抽检对照
204
+
205
+ **已实现的域**:物态变化(沸点/蒸发/液化/凝固/升华/凝华)· 密度浮力 · 热传导 · 摩擦 · 角色条件(鲸鱼娘/猫娘)· 编程规律(排序/去重/计数/最大/反转/求和)
206
+
207
+ **实测指标**(组合引擎 `compose_engine` / `role_compose` / `code_compose`,全部零 LLM):
208
+
209
+ | 指标 | 值 |
210
+ |---|---|
211
+ | 知识问答白箱率 | **100%**(零 LLM) |
212
+ | 总 token 节约(vs 全 LLM) | **83.3%** |
213
+ | 组合生成测试通过率 | 100%(19/19,目标 ≥80%) |
214
+ | 自校验自发现错误 | 100%(3/3:语法/逻辑/边界) |
215
+ | 矛盾问题检测 | 2/2(白箱自己抓住) |
216
+ | 白箱 vs LLM 对照一致率 | 100%(17/17,目标 ≥90%) |
217
+ | 角色扮演白箱命中 | 7/7(零 LLM,双角色) |
218
+ | 代码组合生成 | 6/6(零 LLM + 语法/样例自校验) |
219
+
220
+ > **83.3% token 节约的适用口径**(issue #4 说明):该数字测自**确定性任务**——代码编写
221
+ > (生成可本地查表校验的白箱单元)、已有知识问答(触发词命中直答 / 组合演绎复用)
222
+ > 这类「重复模式 + 可固化」场景。机理是把 LLM 的重复查表校验替换为本地确定性校验
223
+ > (Zero-LLM Verifier)。**不适用于**开放创作、长链推理、首次遇到的新领域等无确定基准
224
+ > 的开放判断——这些仍按条件路由降级到 LLM(灵枢诚实边界),无此节约。
225
+
226
+ **角色扮演的白箱化**(v3.3 扮演论工程化):角色条件单元(身份/住处/食物/性格/话风)× 场景组合生成 → 角色化回答(未预写);**OOC 检测**(「你是人类吗」→ 角色化否认,逆转操作);角色语录固化(生成→自校验→固化→直答);多角色(鲸鱼娘/猫娘)防污染(角色特征隔离,双角色 7/7 零 LLM)。
227
+
228
+
229
+ ## 🔄 自迭代闭环 + 能力工作流化(第七阶段 · 条件递归到精准执行)
230
+
231
+ **理论**:在给定条件空间与存在约束下,智能系统通过递归缩小问题与可执行规则之间的信息差,直到获得可验证的执行路径;若条件不足、冲突或不可判定,则延迟(DEFER)/拒绝(REJECT)/声明盲区(BLINDSPOT);当子系统无法识别,由父系统判断,全层无法判断才标记盲区(分层升级 escalation)。
232
+
233
+ **八步自迭代闭环**(`tools/self_iterate.py`,方向性自检含理论完整性自指检查):
234
+
235
+ ```
236
+ 感知(6通道) → 识别(漂移分类) → 分析(影响范围) → 验证(honest+语法)
237
+ → 固化(字符串内注释对齐+技能) → 记录(轨迹可追溯) → 反馈(已吸收跳过) → 方向性自检
238
+ ```
239
+
240
+ - **理论完整性**:第 8 步自检验证「理论八步被工程完整实现」(`test_theory_integrity.py` 6/6)——防步骤因记忆缺漏/遗忘丢失(曾 5 步偏离的教训)
241
+ - **隐式盲区显式化**(荣:返回默认值=不知道=自带盲区):19 处弱兜底漂移全部显式声明盲区,技能条件化(适用/不适用条件 + 判别词)
242
+ - **自动运行**:`auto_iterate.py` 无人值守循环(感知→吸收→记录→稳态检测),后台持续自迭代
243
+
244
+ **能力工作流化**(`tools/whitebox_workflow.py`,仿 ComfyUI——白箱能力知识图谱化):
245
+
246
+ ```
247
+ node{class_type, inputs} + 边引用[上游,idx] + prompt图 → 拓扑执行 + 循环检测 + JSON保存/复用
248
+ 节点类型: code_unit(681单元) / router(条件路由) / mos_declare(元操作声明) / pass(透传)
249
+ ```
250
+
251
+ - **路由置信度**(DaoTi coherence 吸纳):ACCEPT 含连续置信度 [0,1],低置信可降级
252
+ - **技能条件路由**(anthropics/skills + gliding_horse SkillLink 吸纳):技能声明适用/不适用条件 + 关系边,条件路由加载
253
+
254
+ **外部感知**:稳态≠停止自迭代——持续扫描 GitHub 高星项目吸纳未理论化的工程实践(langgraph/MetaGPT/cognee/anthropics-skills/DaoTi/gliding_horse 已分析并部分落地)。
255
+
256
+ ## 🎭 角色扮演引擎(v3.3 · 扮演论)
257
+
258
+ 灵枢的角色扮演机制底座——**机制是灵枢的,载体是酒馆的**。自建两种交互方式(网页 / MCP),信息处理全部由灵枢完成。
259
+
260
+ **核心能力:**
261
+ - **自我锚点**:角色人设核心(身份/性格/底线),SELF 层不可遗忘——OOC 测试 100 轮零漂移
262
+ - **特化价值观**:带触发条件的角色行为准则(条件空间即触发时机)
263
+ - **历史记忆**:跨会话持久(角色记得你聊过什么)+ 世界书导入(Lorebook 兼容)
264
+ - **世界认知(子知识)**:虚拟化世界观模型——虚构世界 = 宿主机(真实知识)上的虚拟机,白箱判定 = Hypervisor(识别/完整性/边界)
265
+ - **自定义翻译(名词替换表)**:现实词 ↔ 虚拟词映射(星星→发光水母 / 城市→珊瑚城),条件空间对齐
266
+ - **编辑/交互双模式**:交互只读;编辑需 `ROLEPLAY_EDIT_KEY`(设置该环境变量后,角色编辑/导入/翻译等写接口须带 `x-edit-key` 请求头,否则 403;未设置时保持本地开发默认开放);角色人设 ≠ 灵枢自身锚点(后者需设计者验证)
267
+
268
+ **接入方式:**
269
+ ```bash
270
+ # A. DSH 同源网页(推荐,插件 v0.2.8+,当前 0.3.1):插件挂载 /roleplay 到 DSH webServer
271
+ # (与 GUI 同源 127.0.0.1:3080,浏览器/内置 WebView 必达;GUI 首页右上角有「🎭 角色扮演」入口)
272
+ # 功能:角色选择/创建 · 完整对话转录(JSONL,无限上下文)· 双向翻译面板 ·
273
+ # 角色详情三导入 UI(记忆/锚点/价值观)· 内容分级门控(满18确认/拒未成年人性内容)
274
+
275
+ # B. 独立网页服务(浏览器对话 + 人设编辑器)—— 属「身体」仓(AEIS 独立库)
276
+ python -m aeis.roleplay_web --port 8793 --data-dir roleplay_data
277
+
278
+ # B2. 交互式世界游戏(实时生成场景和对话 · 七层闭环实际验证)—— 属「身体」仓
279
+ python -m aeis.game_web.server --port 8791
280
+ # 浏览器打开 http://127.0.0.1:8791/ —— 实时体素世界 + 自然语言生成场景 + 世界感知对话 +
281
+ # 七层闭环可视化(L5命中率/L7好奇/L3关系实时可见)
282
+
283
+ # C. MCP 工具(roleplay_chat / role_create / role_import / role_block)—— 属「身体」仓
284
+ python -m aeis.mcp.server
285
+ ```
286
+
287
+ **DSH 同源网页(/roleplay)能力:**
288
+ - **完整转录**:引擎记忆只存 80 字摘要,网页层按角色持久化完整对话(`roleplay_data/transcripts/<role>.jsonl`)+ 历史加载——无限上下文
289
+ - **三导入 UI**:角色详情面板(⚙ 详情)编辑 name/scenario/开场白 + **记忆/锚点/价值观**页签(条目=内容+重要性+标签),保存即生效(引擎每次重读 meta)
290
+ - **双向翻译**:输入现实→扮演(引擎自动)+ 输出扮演→现实(网页层可逆替换,长词优先);词对/模式持久化
291
+ - **内容分级门控**:首次进入前端本地弹「成人内容确认」提示(满 18 周岁 + 个人对话场景自述);**未成年人特征词 + 性内容词同时命中 → 服务端硬拦截**(`route=refused`)。开源项目不做身份认证(见上)
292
+ - **移动端适配**:输入框聚焦自动居中(不依赖 WebView 键盘行为)、safe-area、键盘不遮挡
293
+
294
+ **质量验证:** `python tools/rp_quality_gate.py --role <id>`(OOC + 世界观一致性自检)· `python tools/run_whale_100.py`(100 轮长对话压力测试)
295
+
296
+ **详细文档:** 主仓库 [README](https://github.com/FuRongJun-1999/CommonTrustProtocol) 角色扮演引擎板块 · [扮演论接入方案](https://github.com/FuRongJun-1999/CommonTrustProtocol/blob/main/docs/扮演论接入酒馆-协议扩散方案.md) · [虚拟化世界观](https://github.com/FuRongJun-1999/CommonTrustProtocol/blob/main/docs/虚拟化世界观-子知识与白箱判定.md)
297
+
298
+ ## 📊 记忆系统使用性评分(五维标尺)
299
+
300
+ > 视角:**使用性**(普通用户/开发者体感)——「存、找、想、准、安」五维。
301
+ > 评估基准:公开能力 + 设计者校准(2026-08-17)。灵枢分数经设计者核对(不虚高)。
302
+
303
+ ![记忆系统使用性评分](memory_score.png)
304
+
305
+ (插图源文件:[memory_score.html](memory_score.html),可浏览器打开重新截图)
306
+
307
+ | 维度 | 0-2 危险 | 3-4 基础 | 5-6 良好 | 7-8 优秀 | 9-10 完美 |
308
+ |---|---|---|---|---|---|
309
+ | **S 存储结构** | 扁平 KV | 简单分层 | 时序/向量 | 图结构+衰减 | 多模态+自动迁移 |
310
+ | **R 检索机制** | 全量遍历 | 关键词 | 向量语义 | 图遍历+混合 | 因果推理+意图理解 |
311
+ | **J 判断引擎** | 只记不忘 | 规则过滤 | LLM 自评估 | 验证单元+递归反思 | 独立元认知+主动遗忘 |
312
+ | **C 上下文信噪比** | 噪声爆炸 | Top-K 有噪 | 时序过滤 | 重要性+精准注入 | 零污染 |
313
+ | **Safety** | 易泄露 | 基础脱敏 | 分级权限 | 隐私树+审计 | 零信任+端到端加密 |
314
+
315
+ **综合分 = min × 0.4 + mean × 0.6**(安全性是底线,短板效应显著)
316
+
317
+ | 排名 | 系统 | S | R | J | C | Safety | 综合 | 锐评 |
318
+ |---|---|---|---|---|---|---|---|---|
319
+ | 🥇 | **灵枢 AEIS** | 7.5 | 8.5 | 8.5 | 9.0 | 8.0 | **8.0** | 五维无短板:图结构+三层语义检索+因果候选生成+验证单元/递归反思+主动遗忘+信噪比仪表盘+护栏宪章审计追踪 |
320
+ | 🥈 | Hy-Memory(腾讯)| 7.5 | 7.0 | 6.0 | 7.0 | 8.0 | 6.6 | 企业级安全标杆;缺主动反思 |
321
+ | 🥉 | Zep / 腾讯云 | 7.5 | 7.0 | 5.5 | 6.5 | 7.5 | 6.3 | 时序图谱+权限控制;不够聪明 |
322
+ | 4 | Letta / MemGPT | 7.5 | 8.0 | 5.0 | 8.0 | 4.0 | 5.7 | 架构强但易记忆越权 |
323
+ | 5 | TiMem | 7.0 | 6.5 | 5.0 | 6.0 | 5.0 | 5.4 | 学术派安全,缺工程隐私治理 |
324
+ | 6 | Mem0 | 6.0 | 6.0 | 4.0 | 5.0 | 4.0 | 4.4 | 记忆碎片化,细粒度权限缺失 |
325
+ | 7 | LangMem | 6.0 | 6.0 | 4.0 | 5.0 | 4.0 | 4.4 | 生态绑定,缺独立安全治理 |
326
+ | 8 | dsh-memory-evolve | 3.0 | 4.0 | 2.0 | 3.0 | 2.0 | 2.6 | 无隐私/权限/删除,「只记不忘」=隐私炸弹 |
327
+
328
+ **灵枢各维度依据**(设计者校准,不虚高):S=语义时空图+五层记忆+条件空间;R=三层语义检索(二元组+语义坐标+bge)+图谱遍历+因果候选生成器(条件论对自身,被拒路径→候选→验证闭环)+知识点级精确命中(卡⊃知识点嵌套子图)+歧义词多义列举(语境不确定时列全各义);J=验证单元(P37)+递归反思+白箱校验+结构排斥+主动遗忘决策器(forget_advisor:未使用记忆归档,可逆)+白箱六维测试(诚实/边界/条件/追溯/一致性/记忆 18/18);C=重要性评分+信息分层注入+诚实边界(命运/健康/超自然/宇宙/读心五类扩展)+信噪比仪表盘(snr_dashboard:压缩率3989:1/图谱信噪比0.9524/200条分层实测严格71%±1/200条边界测试89.5%);Safety=护栏宪章+审计追踪+物理基底校准+词义时代表(语境时效:多义词按语境分流,钓鱼三义 10/10)(**无端到端加密→8.0 非 8.5**)。
329
+
330
+ > 为什么灵枢断层领先:五维无短板(min=7.5),R(因果发现+验证闭环)、J(验证+反思+主动遗忘)、C(信噪比仪表盘)与 Safety(宪章+审计)是护城河。使用性视角:重要性评分→用户看不到废话;护栏宪章→用户敢把私密信息交给它。
331
+ > 免责声明:他系统评分基于公开能力评估(2026-08-17),非官方基准;灵枢评分经设计者校准。
332
+
333
+ ### 知识统一(v1.16 · 智慧之书并入灵枢主库)
334
+
335
+ **一个库 = 完整大脑**:智慧之书(条件论知识图谱)已迁移并入灵枢主库,统一「信息差减少」任务。
336
+
337
+ | 层 | 内容 | 数量 |
338
+ |---|---|---|
339
+ | META 元层 | 存在论/条件论/智能论/学科映射卡 | 30 卡 · 87 边(79 verified) |
340
+ | SUBJECT 学科层 | 51 学科卡 + 3 语言卡(E1-E4,约 2100 知识点) | 54 卡 |
341
+ | STAGE 学段层 | 小学/初中/高中 × 语文/英语/历史/地理/道德与法治 | 13 卡 |
342
+ | META-DISC 元学科 | 历史学/计算机科学/工程学/语言学等(骨架锚点) | 7 卡 |
343
+ | CAUSAL 因果层 | 学段递进(小学→初中→高中→大学)+ 学科归属/类比 | 73 causal + 16 hierarchical 边 |
344
+
345
+ **迁移后全链路工作**(实测):
346
+ - 图谱信噪比 **0.9524**(verified 80 / 全边 341,超 90% 健康线)
347
+ - 四路融合检索(翻译表+二元组+语义坐标+bge)在主库 **0.11s** 命中学科卡
348
+ - 沿因果链推理:初中物理 → 高中物理 → 大学物理
349
+ - 对话摄入 CONTEXT 情境层(记忆衰减/主动遗忘原料就位)
350
+ - 迁移可复现:`migrate_wisdom.py`(幂等 + 备份 + 报告)
351
+
352
+ ### 🎮 一分钟自测你的 AI 记忆系统
353
+
354
+ **给普通人的互动评估页**:15 道选择题测你的 AI 助手记忆能力(存储/检索/判断/信噪比/安全),
355
+ 最后雷达图对比灵枢——打开试试:[memory-assessment.html](memory-assessment.html)
356
+
357
+ (B 站宣传素材:[封面](../promo/bilibili-cover.jpg) · [视觉图 ×5](../promo/))
358
+
359
+ ## 🧰 工具清单(md_cg 工具面 · 全量)
360
+
361
+ > **三层拆分 S4 后工具面已收口到 md_cg**:旧的 `aeis.mcp.server`(82 工具)不再注册——历史映射与逐条去向(CG 25 / MD 28 / LIB 18 / DROP 11)见 [灵枢82工具_功能整理与迁移映射_v0.1.md](灵枢82工具_功能整理与迁移映射_v0.1.md)。当前唯一工具面 = md_cg 的 **2 个认知基元 + 细粒度工具**,运行时动态拉取(灵枢升级 DSH 零改动)。
362
+
363
+ ### 两个认知基元(kernel 面 · 默认,共 35 个 op)
364
+
365
+ | 基元 | op 数 | op 清单 |
366
+ |---|---|---|
367
+ | **`cg`** 认知图统一入口 | **31** | `theory` · `link` · `info` · `route` · `read` · `write` · `goal` · `recent` · `verify` · `review` · `forget` · `protect` · `identity` · `consistency` · `metacognition` · `self_state` · `evolution` · `sustain` · `scrub` · `predict` · `causal` · `whitebox` · `index_code` · `index_doc` · `ref` · `session` · `ingest` · `export` · `maintain` · `consolidate` · `insight` |
368
+ | **`stg`** 语义时空图入口 | **4** | `relation` · `timeline` · `anchors` · `consistency` |
369
+ | **合计** | **35** | op 真源:`md_cg/tokens.py::ALL_OPS`(31)+ `mcp_server._stg_call`(4) |
370
+
371
+ > 每个 op 的「功能 → 显式代码(含行号)→ MCP op」逐条映射见 [功能调用映射表_v0.1.md](功能调用映射表_v0.1.md)。
372
+
373
+ ### 细粒度工具(`MDCG_MCP_SURFACE=full` · full 面共 33 个)
374
+
375
+ 插件运行时以 `MDCG_MCP_SURFACE=full` 拉起大脑(`src/lib/mdcg_client.ts` 强制 full——唯一写入通道 `mdcg_remember` 属细粒度工具,kernel 面下该工具不存在 → 写入静默失败)。full 面 = `cg` + `stg` + **31 个 `mdcg_*`**:
376
+
377
+ | 分类 | 工具 |
378
+ |---|---|
379
+ | 记忆读写 | `mdcg_remember` `mdcg_recall` `mdcg_search` `mdcg_get` |
380
+ | 反思 / 验证 / 飞轮 | `mdcg_reflect` `mdcg_verify` `mdcg_flywheel` `mdcg_mine_fix_pairs` |
381
+ | 负记忆 | `mdcg_rejected` `mdcg_unresolved` |
382
+ | 审核队列 | `mdcg_propose` `mdcg_review_list` `mdcg_review_records` |
383
+ | 保护 / 遗忘留痕 | `mdcg_protect` `mdcg_forgetting_history` |
384
+ | 身份 / 一致性 / 元认知 / 自我状态 | `mdcg_identity` `mdcg_consistency` `mdcg_metacognition` `mdcg_self_state` |
385
+ | 预测 / 因果 / 演化 | `mdcg_predict` `mdcg_causal` `mdcg_evolution` |
386
+ | 运维 | `mdcg_health` `mdcg_whoami` `mdcg_ingest` `mdcg_watermarks` `mdcg_whitebox` `mdcg_service_info` |
387
+ | **管理类**(默认不暴露) | `mdcg_forget` `mdcg_restore` `mdcg_review_decide` |
388
+
389
+ ## 工具筛选机制(tools 配置)
390
+
391
+ 筛选逻辑在 `src/tools.ts::selectTools`,对 **full 面 33 个工具**按名单过滤:
392
+
393
+ | 模式 | 暴露数 | 说明 |
394
+ |---|---|---|
395
+ | `'core'`(**默认**) | **2** | 仅两个认知基元 `cg` / `stg` |
396
+ | `'brain'` | **30** | `cg`/`stg` + 28 个细粒度(**不含** 3 个管理类风险工具) |
397
+ | `'all'` | **30** | full 面 33 个 − 3 个宿主级风险工具 |
398
+ | 字符串数组 | 自定义 | 显式列出的工具名(不受风险名单限制,配置者已明确选择) |
399
+
400
+ **排除的宿主级风险工具(`RISK_TOOLS` · 3 个)**——`mdcg_forget`(软删除)/ `mdcg_restore`(强恢复)/ `mdcg_review_decide`(审核终裁);三者均需 `can_admin`,即使 `tools: 'all'` 也不自动暴露。
401
+
402
+ > 数字口径(`src/tools.ts` 实测):MCP server 注册 **33 个工具**(full 面:`cg`/`stg` + 31 细粒度);`'core'` 实际暴露 **2** 个、`'brain'` 实际暴露 **30** 个、`'all'` 实际暴露 **30** 个。因风险名单恰好等于 `brain` 之外的 3 个管理类工具,**`'brain'` 与 `'all'` 当前实际等价(均为 30)**。kernel 面(不设 `MDCG_MCP_SURFACE`)则只有 `cg`/`stg` **2** 个工具。
403
+
404
+ > **引擎内部能力(按安全边界未挂载 MCP)**:条件空间 7 操作、情境层直写(`add_context`)、代码执行(`code_test` / `compile_exec`)、自修改安全闭环(快照 / 回滚)等存在于引擎中,但刻意不暴露给外部 Agent 调用。
405
+
406
+ ## 🔬 0.4.6 → 0.4.10 变更(版本速览)
407
+
408
+ > 本文件正文以 v0.4.5 为基底续写;0.4.6 起的变更在此按提交如实登记(每条附提交号,可 `git show <提交号>` 复核)。
409
+
410
+ | 版本 | 日期 | 核心变更 | 提交 |
411
+ |---|---|---|---|
412
+ | 0.4.6 | 2026-09-11 | 发布前清除包内硬编码本机绝对路径(隐私面)· 请求级身份收窄(`as_unit`)· 公开 `locomo-zh-500` 与 rust 评测器 | `01fac35` `4d53285` |
413
+ | 0.4.7 | 2026-09-14 | issue #12:python 子进程锚定插件仓根(`cwd` + `PYTHONPATH` 双保险) | `1bba53c` |
414
+ | 0.4.8 | 2026-09-16 | issue #16:注入上下文 `{{` 转义(宿主模板插值不再抛错)· 蜂巢任务编排器(`orch`)· 相对链接机制化巡检 | `7288323` `8febf89` `d99c707` |
415
+ | 0.4.9 | 2026-09-20 | issue #18 系列:子进程 `cwd` 移出插件包(修 pnpm 更新必现 EBUSY)· 数据面与路径配置迁出插件包(终止「更新即清空记忆」) | `394661d` `9499866` |
416
+ | 0.4.10 | 2026-09-20 | 子进程注入 `PYTHONUTF8=1`(堵「读线程按 locale 解 UTF-8」崩溃)· 编码守卫改 AST 判定(消除「守卫扫到自己」的判据缺陷) | `58d4908` `df6730b` |
417
+
418
+ > **发版门禁(本轮新增,不随任何已发布版本)**:`scripts/check_publish_artifact.py` —— 凭据/密钥 · 私有数据面 · 隐私文本 · 非追踪件四类任一命中即拒绝发布;本地挂 `prepublishOnly`、CI 挂 `publish-artifact-check.yml`;发版后可用 `--registry <版本>` 核验发布件哈希与内容面。
419
+ > 0.4.5 及更早见 [release_v0.4.5.md](release_v0.4.5.md)。
420
+
421
+ ## 🔬 本轮修复与验证(0.4.4 → 0.4.5)
422
+
423
+ > **0.4.5 变更**:移除失效的 `docker/`(一键部署四个入口全部不可用)· `src/`+`test/` datapath 路径解析统一 · `package-lock.json` 同步当前 npm(`npm ci` 可复现)· 写入闸门文档化(`committed: false`)。
424
+ > 完整清单见 [release_v0.4.5.md](release_v0.4.5.md)。
425
+
426
+ ### ① 白箱冷启动死锁修复(`md_cg/whitebox_kb/engine.py`)
427
+
428
+ 白箱引擎的冷启动(首次构建索引 / 并发懒加载)曾存在**自死锁**:`WhiteboxEngine` 用普通 `threading.Lock` 保护懒初始化,但初始化路径会**在同一线程内递归**获取同一把锁(`_ensure_loaded` → 内部再调 `analyze` / `query` → 再次 `with self._lock`),单线程即永久阻塞——表现为「冷启动很慢 / 卡死」。**修复**:把该锁改为**可重入锁 `threading.RLock()`**,同线程重入不再自锁。修复后冷启动一次通过、并发热加载不再阻塞。
429
+
430
+ ### ② `cg(op=write)` 落盘条件
431
+
432
+ `cg(op=write)` **不是无条件落盘**,需依次穿过三道闸门,**只有最终判定 ACCEPT 才新增落盘节点**:
433
+
434
+ 1. **audit 闸门**:先过 `audit.audit(content_kind, …)` —— 未声明 `content_kind`(且未配置 `MDCG_POLICY_FILE`)时恒判 BLINDSPOT/DEFER → 只进审核队列,不落盘;
435
+ 2. **一致性闸门**(默认开):`check_consistency` 判 REJECT/BLINDSPOT 时按 `on_conflict` 处理(`reject` → `conflict_rejected`;`defer`(默认)→ 审核队列),均不落盘;
436
+ 3. **gated 闸门**:`gated=true` 时走三问四态 —— ACCEPT 落盘 / MERGE 并入既有节点(去重强化,不新增)/ DROP 低熵丢弃 / DEFER 待定,后三者不新增落盘点。
437
+
438
+ > 故插件侧自动记忆走 `mdcg_remember(gated=true)`(绕开 audit 前置门),而非 `cg(op=write)`。详见「自动记忆机制」。
439
+
440
+ ### ③ 35 op 全量可达性验证
441
+
442
+ 对 `cg` 全部 31 个 op + `stg` 全部 4 个 op(合计 **35 op**)逐一以最小参数经 `call_tool` 做可达性冒烟(生产同款 `MdCGSecure`,临时 root):
443
+
444
+ | 结果 | 数量 | 说明 |
445
+ |---|---|---|
446
+ | OK(正常返回结构化结果) | 29 | — |
447
+ | 预期参数不足 | 3 | `cg(op=verify)`(缺裁决参数)/ `cg(op=causal)`(缺 start 节点 → `missing_node`)/ `cg(op=ref)`(非索引节点) |
448
+ | 预期权限拒绝 | 3 | guest 身份下 `cg(op=forget)` / `cg(op=export)` / `cg(op=consolidate)` 触发 `AccessDenied`(均需管理权限) |
449
+
450
+ **结论:35/35 op 全部可达,0 个未知 op、0 次意外崩溃**;所有非 OK 结果均为设计内的守卫(参数校验 / 权限闸门)。工具面计数:kernel **2** / full **33**(`cg`+`stg`+31 `mdcg_*`)。
451
+
452
+ ## 架构
453
+
454
+ ```
455
+ ┌─────────────────────────────────────────────┐
456
+ │ DeepSeek Harness (cordis) │
457
+ │ │
458
+ │ Agent Loop ──┬── lingshu_cg / lingshu_stg │
459
+ │ │ (ctx.tools 注册) │
460
+ │ session/event│ │
461
+ │ (自动记忆钩子)│ │
462
+ └───────────────┼─────────────────────────────┘
463
+ │ stdio · 逐行 JSON-RPC
464
+ │ (initialize → tools/list → tools/call)
465
+ ┌───────────────▼─────────────────────────────┐
466
+ │ 灵枢大脑子进程 (spawn · 唯一) │
467
+ │ python -m md_cg.mcp_server │
468
+ │ MDCG_ROOT=<path> · MDCG_MCP_SURFACE=full │
469
+ │ cg/stg 基元 + 31 细粒度 · md 认知图(唯一真源) │
470
+ └──────────────────────────────────────────────┘
471
+
472
+ (可选)「身体」能力后端 —— 仅当 capability.enabled=true 时另起一个
473
+ 能力库子进程(AEIS / 角色扮演生成),默认不启动 → 主仓保持纯大脑单进程。
474
+ ```
475
+
476
+ ## 安装
477
+
478
+ ### 前置要求
479
+
480
+ - Node.js ≥ 22.19(DeepSeek Harness 要求)
481
+ - DeepSeek Harness(`npx @deepseek-ai/dsh web`)
482
+
483
+ ### 灵枢大脑:零安装(随插件自带)
484
+
485
+ 三层拆分(S4)后,**白箱大脑(md_cg)随插件包分发**——`package.json` 的 `files` 已含 `md_cg`,
486
+ 插件启动时以 `python -m md_cg.mcp_server` 拉起**唯一**大脑子进程。无需 pip 安装任何引擎。
487
+
488
+ ```bash
489
+ # 自检(可选):确认自带大脑可导入
490
+ python -c "import md_cg.mcp_server as m; print(len(m.tools_for_surface()), 'tools')" # kernel 面 → 2(cg/stg)
491
+ # 核对 full 面(插件运行时):设 MDCG_MCP_SURFACE=full 后同命令 → 33(cg/stg + 31 mdcg_*)
492
+ ```
493
+
494
+ > **仅当需要「身体」生成能力**(角色扮演对话 / 角色卡创建等)时,才需可选挂载能力后端:
495
+ > 在配置中打开 `capability.enabled` 并给出 `capability.args`(见 `dsh/cordis.yml.example`)。
496
+ > 默认关闭 → 主仓保持**纯大脑单进程**;未挂载时角色生成接口 fail-closed,而
497
+ > 转录 / 历史 / 翻译 / 落图(走大脑)始终可用。
498
+
499
+ > 历史(已下线):旧版需 `pip install aeis-0.5.0-py3-none-any.whl`(从
500
+ > [GitHub Releases](https://github.com/FuRongJun-1999/CommonTrustProtocol/releases) 下载 wheel),
501
+ > 或 `pip install "aeis @ git+https://github.com/FuRongJun-1999/CommonTrustProtocol@main#subdirectory=aeis"`。
502
+ > 该路径在三层拆分 S4 中下线:大脑随包自带,不再依赖外部 `aeis` 库。
503
+
504
+ ### 安装插件本体
505
+
506
+ **方式 A:装进 DSH profile(推荐,pnpm 协调正确入口)**
507
+
508
+ ```bash
509
+ dsh plugin --profile web add @furongjun1999/dsh-memory
510
+ ```
511
+
512
+ > `dsh plugin --profile <name> add` 会用 pnpm + `autoInstallPeers: false` 正确解析插件依赖。
513
+ > **避免**用 `npm install` 把它装进 profile 的 `node_modules`(会导致 `@deepseek-ai` peer 版本污染,插件加载/浏览器报错)。
514
+
515
+ **方式 B:从独立仓库克隆(开发 / 自定义)**
516
+
517
+ ```bash
518
+ git clone https://github.com/FuRongJun-1999/dsh-memory.git
519
+ cd dsh-memory
520
+ npm install && npm run build # 构建插件本身(tsc → lib/)
521
+ # 然后:dsh plugin --profile <name> add <本地路径> 部署进 profile
522
+ ```
523
+
524
+ ### 启用插件
525
+
526
+ 在 profile 的 `cordis.yml`(或 `cordis.patch.yml`)中追加:
527
+
528
+ ```yaml
529
+ - id: lingshu-memory
530
+ name: '@furongjun1999/dsh-memory'
531
+ config:
532
+ mdcg: # 记忆唯一真源:认知图(md 文档)
533
+ root: '' # MDCG_ROOT;留空=用户级默认 ~/.dsh/.dsh-memory/data/mdcg
534
+ # (换位置填绝对路径;相对路径锚定插件仓根)
535
+ env: # 写入凭据:默认【关闭】,由你决定是否打开
536
+ # 不配 → 只读 guest:读 / 召回 / 时间线可用,自动记忆 / 转录 / 落图不落盘(启动会告警)
537
+ #
538
+ # 打开①(推荐,功能完整且已收窄):先签发,再引用(明文不进配置文件)
539
+ # python -m md_cg.tokens issue --role designer --actor dsh-memory ^
540
+ # --clearance internal ^
541
+ # --ops-allow info,route,read,write,recent,goal,identity,whitebox,verify ^
542
+ # --layers-allow knowledge,contextual,structural,self,goals,unresolved,rejected
543
+ # setx MDCG_TOKEN "mdcg1.xxxxx" # 然后重启 DSH
544
+ # MDCG_TOKEN: !!js process.env.MDCG_TOKEN
545
+ #
546
+ # 打开②(最小权限):--role recorder → 只能自动记忆 / 转录 / 角色定义;
547
+ # whitebox、identity、verify 与写 self 层会被拒
548
+ # 打开③(兼容旧部署,不推荐):MDCG_LEGACY_ENV_AUTH: '1'(写 self 层再加 MDCG_CAN_ADMIN: '1')
549
+ dbPath: 'data/lingshu.db' # 遗留:仅角色数据目录 roleDataDir 推导用(不存记忆)
550
+ identity: '灵枢'
551
+ tools: 'core' # 'core'(默认,仅 cg/stg) | 'brain' | 'all'
552
+ memory:
553
+ userMessage: true # 用户消息自动沉淀
554
+ assistantMessage: false # agent 回复沉淀(默认关,防噪音)
555
+ toolResult: false # 工具结果沉淀(默认关)
556
+ autoRecall: true # 模型请求前自动注入最近记忆
557
+ desensitize: true # 写入前过滤敏感信息(密钥/密码/身份证/手机号)
558
+ ```
559
+
560
+ 完整示例见 [`cordis.yml.example`](../../dsh/cordis.yml.example)。
561
+
562
+ ## 配置项
563
+
564
+ | 字段 | 类型 | 默认值 | 说明 |
565
+ |------|------|--------|------|
566
+ | `serverName` | string | `lingshu` | 工具命名空间前缀(工具名 `lingshu_<name>`,记忆面为 `lingshu_cg` / `lingshu_stg`) |
567
+ | `python` | string | `python` | Python 可执行文件 |
568
+ | `moduleArgs` | string[] | `['-m', 'md_cg.mcp_server']` | 大脑(md_cg)server 启动参数 |
569
+ | `capability.enabled` | boolean | `false` | 是否挂载「身体」能力后端(角色扮演生成)。关闭 = 纯大脑单进程 |
570
+ | `capability.python` | string | `''`(回退 `python`) | 能力后端 Python 可执行文件 |
571
+ | `capability.args` | string[] | `[]` | 能力后端启动参数(如 `['-m', 'aeis.mcp.server']`);enabled=true 但为空则跳过并告警 |
572
+ | `dbPath` | string | `data/lingshu.db` | ⚠️ 遗留:角色数据目录 `roleDataDir` 由其父目录推导。**不存记忆**(记忆真源 = md_cg) |
573
+ | `mdcg.enabled` | boolean | `true` | 启用认知图(md_cg)——**记忆唯一真源(md 文档)** |
574
+ | `mdcg.root` | string | `''`(空=用户级 `~/.dsh/.dsh-memory/data/mdcg`) | 认知图根目录(`MDCG_ROOT`;相对路径锚定**插件仓根**)。记忆写在这里。**勿填包内路径**——pnpm 更新插件会整个替换包目录,包内数据随之删除 |
575
+ | `mdcg.actor` | string | `dsh-memory` | 调用主体(`MDCG_ACTOR`);私有内容按 (tenant, actor) 派生 DEK,须与迁移脚本 `--actor` 一致 |
576
+ | `mdcg.tenant` | string | `default` | 租户(`MDCG_TENANT`),须与迁移脚本 `--tenant` 一致 |
577
+ | `mdcg.clearance` | string | `private` | 调用方密级(`MDCG_CLEARANCE`):只能读写 ≤ 该密级的节点 |
578
+ | `identity` | string | `灵枢` | 灵枢身份标识 |
579
+ | `env` | object | `{}` | 追加环境变量(`BOCHA_API_KEY` / `AEIS_DESIGNER_KEY` / `DEEPSEEK_API_KEY`(角色扮演 LLM 续答)…,可用 `!!js process.env.X` 从宿主环境注入) |
580
+ | `env.MDCG_TOKEN` | string | **—(写权限默认关闭)** | 认知图**写入凭据**(推荐)。签发:`python -m md_cg.tokens issue --role designer --actor dsh-memory --clearance internal --ops-allow … --layers-allow …`(两个 `--*-allow` 只能收窄;`--role recorder` 为最小权限版) |
581
+ | `env.MDCG_LEGACY_ENV_AUTH` | string | — | 兼容旧部署的 env 直连身份(`recorder`);与 `MDCG_TOKEN` 都不设 → 只读 `guest`(**默认状态**:读 / 召回 / 时间线可用,写入不落盘,启动会告警) |
582
+ | `env.MDCG_CAN_ADMIN` | string | — | 配合 legacy auth:`'1'` → `designer`(可写 `self` 层,角色 anchors 导入需要) |
583
+ | `tools` | `'brain' \| 'core' \| 'all' \| string[]` | `'core'` | 暴露的工具集合(`'core'`=2 / `'brain'`=30 / `'all'`=30;见「工具筛选机制」) |
584
+ | `memory.userMessage` | boolean | `true` | 用户消息 → 自动 remember |
585
+ | `memory.assistantMessage` | boolean | `false` | agent 回复 → 自动 remember |
586
+ | `memory.toolResult` | boolean | `false` | 工具结果 → 自动 remember |
587
+ | `memory.importance` | number | `0.6` | 自动记忆的重要性(0~1) |
588
+ | `memory.autoRecall` | boolean | `true` | 模型请求前自动注入灵枢最近记忆(`system-prompt/assemble` 注入,失败静默;注入块的「快照去重」语义见下文「自动召回注入」) |
589
+ | `memory.autoRecallLimit` | number | `4` | 自动召回条数(1~10) |
590
+ | `memory.desensitize` | boolean | `true` | 写入前过滤敏感信息(`sk-`密钥/密码/`Bearer`令牌/18位身份证/11位手机号 → `[已过滤]`;纯凭据消息跳过写入) |
591
+ | `toolCallTimeoutMs` | number | `60000` | 单次工具调用超时 |
592
+ | `maxRetryDelayMs` | number | `30000` | 进程重启最大退避间隔 |
593
+ | `failOnStartupError` | boolean | `false` | 启动失败是否让插件激活失败 |
594
+
595
+ ## 自动记忆机制
596
+
597
+ 订阅 DSH 的 `session/event` 事件流(与官方 session-persistence 相同的接入点):
598
+
599
+ - `user/message`(仅 `source.kind === 'user'` 的真实用户消息)→ `MdcgClient.remember()`(`mdcg_remember(gated=true)`,importance 0.6,落层 contextual,tags `dsh`)
600
+ - 插件注入的系统上下文(AGENTS.md、文件变更通知等 `kind: 'plugin'`)**不写入**,防止记忆噪音
601
+ - **去重 / 遗忘由 md_cg 主动遗忘闸门负责**(`mdcg_remember(gated=true)` → `MdCG.remember_gated`):三问 → 四态 ACCEPT 落盘 / MERGE 并入既有(= 去重强化,不新增节点)/ DROP 低熵 / DEFER 待定,四种结果都写 `_forgetting.jsonl` 可审计
602
+ - **写入通道为何走 `mdcg_remember` 而非 `cg(op=write)`**:`cg(op=write)` 先过 `audit.audit(content_kind)` —— 未声明 `content_kind`(且未配置 `MDCG_POLICY_FILE`)时恒判 BLINDSPOT/DEFER,**只进审核队列、永不落盘**;即便声明了 `content_kind`,还要再过一致性检查与 `gated` 三问四态。**落盘的充要条件是最终判定 ACCEPT**(MERGE 并入既有、DROP/DEFER/REJECT 均不新增落盘点)。插件自动记忆选 `mdcg_remember(gated=true)`,即绕开 `cg(op=write)` 的 audit 前置门、直接进入三问四态。详见「本轮修复与验证 ②」
603
+ - **记忆以 md 文档落盘**(`mdcg.root`,默认用户级 `~/.dsh/.dsh-memory/data/mdcg`;旧版包内 `data/mdcg` 由首启一次性**复制**接手,见 `src/lib/datapath.ts` 的 `migrateLegacyData()`);⚠️ **写权限默认关闭**——不配凭据时以只读 guest 运行:读 / 召回 / 时间线照常,写入不落盘(插件启动会告警)。打开方式见配置表 `env.MDCG_TOKEN`
604
+ - **敏感信息脱敏**(`memory.desensitize`):写入前过滤 `sk-`密钥 / API key / 密码 / `Bearer`令牌 / 18位身份证 / 11位手机号(替换为 `[已过滤:类别]`);纯凭据消息整条跳过,不落库
605
+ - **自动召回注入**(`memory.autoRecall`):每次模型请求组装 system prompt 时自动注入灵枢最近记忆(`system-prompt/assemble` 事件),记忆"自动可用";召回失败静默不阻塞请求
606
+ - **快照去重语义(改注入方式前必读)**:注入块落在 `assembly.contexts` 里,宿主会把它渲染成一段「运行时上下文快照」,并**按渲染后的整段文本去重**——文本与上一份已提交的快照相同则不提交任何东西,不同才在会话里 `append` 一条 `user/message`(append 语义,旧快照不会被替换或移除)。
607
+ - 因此本插件**每步都照旧 push**,内容没变也不跳过:跳过会让渲染文本在「有块 / 无块」之间跳变,反而每步各追加一份(实测 ~250 tok/份),长会话里每请求 `inject` 会随步数线性涨到 30k+ tok。
608
+ - 压缩归档后的自愈交给宿主:宿主检测到上一份快照已被替换掉(`retained` 置空)时会重新投影当前快照,注入块自然跟着回来——不需要插件自己数步数做强制刷新。
609
+
610
+ ## 🛟 DSH 看门狗(scripts/)
611
+
612
+ DSH 宿主(node 进程)的延时自动重启守护——灵枢桥只重连灵枢 python 进程,本看门狗守护 DSH 宿主(对齐移动端 APK 的 EngineService):
613
+
614
+ - `scripts/dsh-watchdog.ps1`:监控 3080 端口,进程退出 → 延时 `DelaySec` 秒再确认 → 自动拉起 `dsh web`
615
+ - `-Once` 模式:供 Windows 计划任务每分钟调用(`schtasks /Create /TN dsh-watchdog /TR "wscript.exe ...\dsh-watchdog-launcher.vbs" /SC MINUTE /MO 1`),可靠持久、不依赖驻留进程
616
+ - 驻留模式:`wscript.exe scripts\dsh-watchdog-launcher.vbs -loop`(5 秒快速拉起层)
617
+ - `scripts/dsh-watchdog-launcher.vbs`:vbs 隐藏启动器(`WScript.Shell.Run ..., 0` = 零弹窗)
618
+ - **用法**:改完插件/配置 → 直接 kill DSH 进程 → 看门狗自动拉起新版(无需手敲启动命令)
619
+ - **注意**:脚本输出全英文(powershell 5.1 GBK 读取 UTF-8 无 BOM 中文会解析崩溃);计划任务 /TR 路径必须带引号(路径含空格时会被截断,弹「没有文件扩展名」);脚本内一律用 `%USERPROFILE%` / `%APPDATA%` / 自身所在目录解析,不写死任何机器的绝对路径
620
+
621
+ ## 开发
622
+
623
+ ```bash
624
+ npm install
625
+ npm run build # TypeScript 编译
626
+ npm test # 真实集成测试(spawn 本机灵枢,验证握手/往返/注册/卸载)
627
+ ```
628
+
629
+ 测试不依赖 DSH 全组件——用最小 Cordis host(SystemPrompt + ToolRegistry + 插件)隔离 v0.1 不稳定面。
630
+
631
+ ## 护栏宪章(接入即接受约束)
632
+
633
+ 本插件接入即接受 **[灵枢护栏宪章 v2.0-published](guardrail-charter.md)** 约束——
634
+ 对外部智能体与人类使用者的行为边界作出公开、可执行、可审计的规定,并保护人类使用者。
635
+ 宪章效力不高于智能论协议本身(协议=自我约束,宪章=对外约束)。
636
+ 本插件随包自带宪章全文(`guardrail-charter.md`),安装即可查阅。
637
+
638
+ ## 许可证
639
+
640
+ MIT © 荣(FuRongJun-1999)· 灵枢 AEIS 工程实现
641
+
642
+ DeepSeek Harness 为 DeepSeek 官方开源项目(MIT),本插件与之无隶属关系。
643
+
644
+
645
+ ---
646
+