@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.
- package/README.md +552 -465
- package/codebuddy/CODEBUDDY.md +11 -3
- package/codebuddy/README.md +92 -90
- package/codebuddy/mcp.json +27 -27
- 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
- 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
- package/docs/README.md +143 -111
- package/docs/discipline/harnesses.yaml +244 -226
- package/docs/discipline/templates/full.md.tmpl +61 -61
- package/docs/discipline/templates/rules.mdc.tmpl +68 -0
- package/docs/discipline/templates/skill.md.tmpl +23 -23
- 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
- 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
- package/docs/eval/bench_lingshu_self/bench_self.py +140 -0
- package/docs/eval/bench_lingshu_self/self_bench_result.json +404 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/docs/images/lingshu-moonlight-covenant-poster-preview.jpg +0 -0
- package/docs/images/lingshu-moonlight-covenant-poster.png +0 -0
- 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
- package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.10.md +646 -646
- package/docs/mdcg/lingshu_tutorial.html +14449 -14449
- package/docs/mdcg/release_v0.4.11.md +49 -0
- package/docs/mdcg/release_v0.4.5.md +55 -55
- package/docs/mdcg/tool_table_v0.3.0.md +117 -117
- 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
- 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
- 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
- package/docs/mdcg//345/217/221/345/270/203/351/227/250/347/246/201/351/223/276_v0.1.md +54 -0
- 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
- 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
- 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
- package/docs/mdcg//347/274/272/345/217/243/345/215/225_P0/346/224/266/345/217/243_v0.1.md +270 -270
- 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
- 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
- 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
- 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
- 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
- package/docs/swarm//350/234/202/347/276/244/344/272/222/350/201/224_v0.1.md +704 -704
- 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
- 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
- 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
- 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
- package/docs/theory//346/231/272/350/203/275/350/256/2723.4.md +5260 -5260
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dsh/README.md +82 -82
- package/dsh/cordis.yml.example +139 -139
- package/dsh/update-lingshu.bat +11 -11
- package/lib/bridge.d.ts +9 -0
- package/lib/bridge.js +35 -0
- package/lib/hooks.js +36 -2
- package/lib/index.js +7 -1
- package/lib/lib/roleplay_web.js +116 -29
- package/lib/lib/token_store.d.ts +7 -1
- package/lib/lib/token_store.js +12 -3
- package/md_cg/__init__.py +7 -7
- package/md_cg/audit.py +379 -368
- package/md_cg/autonomy.py +287 -287
- package/md_cg/backfill.py +1328 -1327
- package/md_cg/backfill_bigdomain.py +34 -34
- package/md_cg/backfill_bucket_zh.py +35 -0
- package/md_cg/bench6_arms.py +410 -410
- package/md_cg/bench6_common.py +230 -230
- package/md_cg/bench6_competitors.py +212 -212
- package/md_cg/bench_axis_domain.py +257 -257
- package/md_cg/bench_blind_comp.py +308 -308
- package/md_cg/bench_e2e_judge.py +532 -0
- package/md_cg/bench_e2e_locomo_qa.py +368 -0
- package/md_cg/bench_e2e_qa.py +256 -0
- package/md_cg/bench_en_atoms_public.py +230 -230
- package/md_cg/bench_governance.py +348 -348
- package/md_cg/bench_lme_zh.py +410 -410
- package/md_cg/bench_locomo.py +121 -121
- package/md_cg/bench_locomo_zh.py +450 -450
- package/md_cg/bench_locomo_zh_public.py +147 -147
- package/md_cg/bench_longmem.py +112 -112
- package/md_cg/bench_membench.py +632 -632
- package/md_cg/bench_p0.py +149 -149
- package/md_cg/bench_progressive.py +287 -287
- package/md_cg/bench_role_views.py +238 -238
- package/md_cg/bench_task_ab.py +243 -243
- package/md_cg/bench_task_ab_llm.py +408 -408
- package/md_cg/bench_unified_en.py +204 -204
- package/md_cg/bench_zh_mad.py +601 -601
- package/md_cg/blindspot_tickets.py +123 -123
- package/md_cg/branches.py +301 -285
- package/md_cg/build_postings.py +73 -73
- package/md_cg/ccgc.py +1006 -948
- package/md_cg/census.py +132 -132
- package/md_cg/chain.py +315 -300
- package/md_cg/codeindex.py +531 -531
- package/md_cg/coldverify.py +292 -292
- package/md_cg/comment_gate.py +337 -337
- package/md_cg/cond_compose.py +190 -190
- package/md_cg/cond_facts.py +154 -154
- package/md_cg/cond_template.json +106 -106
- package/md_cg/condition_anchor.py +142 -142
- package/md_cg/conformance.py +726 -726
- package/md_cg/consistency.py +717 -717
- package/md_cg/consolidate.py +1537 -1439
- package/md_cg/corpus.py +110 -110
- package/md_cg/crosscheck.py +1098 -1097
- package/md_cg/crypto.py +3 -1
- package/md_cg/d_meta.py +310 -310
- package/md_cg/datapath.py +78 -18
- package/md_cg/docindex.py +473 -473
- package/md_cg/eval_common.py +575 -575
- package/md_cg/evidence.py +4 -2
- package/md_cg/evolution.py +477 -477
- package/md_cg/export.py +222 -220
- package/md_cg/forgetting.py +581 -581
- package/md_cg/fsutil.py +377 -329
- package/md_cg/hotcache.py +48 -7
- package/md_cg/hyperedge.py +251 -251
- package/md_cg/identity.py +390 -390
- package/md_cg/insight.py +500 -500
- package/md_cg/interop.py +338 -0
- package/md_cg/judgment_manifest.py +177 -0
- package/md_cg/lexicon/build_cedict_en_zh.py +329 -329
- package/md_cg/lexicon/build_standard_en.py +171 -171
- package/md_cg/lexicon/expand_en_zh.py +211 -211
- package/md_cg/lifecycle.py +272 -272
- package/md_cg/linkref.py +280 -280
- package/md_cg/links.py +140 -107
- package/md_cg/mcp_server.py +403 -55
- package/md_cg/md_whitebox.py +345 -345
- package/md_cg/mdcg.py +783 -233
- package/md_cg/mdcos.py +500 -70
- package/md_cg/metacognition.py +591 -591
- package/md_cg/migrate.py +119 -119
- package/md_cg/migrate_aeis.py +221 -221
- package/md_cg/migrate_roleplay.py +293 -293
- package/md_cg/migrate_wisdom_graph.py +360 -360
- package/md_cg/mreview/__init__.py +25 -25
- package/md_cg/mreview/__main__.py +110 -110
- package/md_cg/mreview/bundle.py +178 -178
- package/md_cg/mreview/candidates.py +262 -262
- package/md_cg/mreview/govern.py +694 -693
- package/md_cg/mreview/locate.py +939 -939
- package/md_cg/mreview/pipeline.py +728 -728
- package/md_cg/mreview/rules/duplication.json +21 -21
- package/md_cg/mreview/rules/field_coverage.json +54 -54
- package/md_cg/mreview/rules/source_license.json +21 -21
- package/md_cg/mreview/rules/template_flow.json +21 -21
- package/md_cg/mreview/ruleset.py +252 -252
- package/md_cg/nodefile.py +575 -575
- package/md_cg/pooling.py +484 -472
- package/md_cg/postings.py +300 -298
- package/md_cg/predict.py +1100 -1100
- package/md_cg/progressive.py +123 -123
- package/md_cg/protect.py +272 -272
- package/md_cg/protocol/md_cg_gate.proto +33 -33
- package/md_cg/protocol.py +372 -372
- package/md_cg/provenance.py +582 -582
- package/md_cg/reach.py +453 -453
- package/md_cg/readcache.py +143 -0
- package/md_cg/reconcile.py +228 -0
- package/md_cg/refindex.py +833 -833
- package/md_cg/refine.py +604 -604
- package/md_cg/review_cli.py +170 -0
- package/md_cg/roleviews.py +89 -89
- package/md_cg/routing.py +393 -365
- package/md_cg/run_tests.py +211 -0
- package/md_cg/scrub.py +13 -3
- package/md_cg/security.py +128 -18
- package/md_cg/self_state.py +1029 -1029
- package/md_cg/selfreport.py +152 -151
- package/md_cg/semantic/__init__.py +10 -10
- package/md_cg/semantic/canonical.py +122 -122
- package/md_cg/semantic/en_normalizer.py +364 -364
- package/md_cg/semantic/en_zh_map.json +28694 -0
- package/md_cg/semantic/export_en_zh_map.py +64 -0
- package/md_cg/semantic/unify.py +45 -0
- package/md_cg/semantic/zh_en_atoms.py +139 -139
- package/md_cg/signer.py +7 -4
- package/md_cg/sources.py +816 -582
- package/md_cg/statushdr.py +179 -179
- package/md_cg/stg.py +54 -37
- package/md_cg/subgraph.py +729 -729
- package/md_cg/sustain.py +35 -5
- package/md_cg/tasks.py +470 -470
- package/md_cg/test_access_hints.py +147 -0
- package/md_cg/test_action_derive.py +203 -203
- package/md_cg/test_audit_rotate.py +270 -270
- package/md_cg/test_autonomy.py +143 -143
- package/md_cg/test_bench_governance.py +102 -102
- package/md_cg/test_blindspot_tickets.py +166 -166
- package/md_cg/test_branch_discard_tombstone.py +136 -0
- package/md_cg/test_branches.py +13 -3
- package/md_cg/test_ccg_perturb.py +184 -184
- package/md_cg/test_ccgc.py +433 -433
- package/md_cg/test_census_prune.py +81 -81
- package/md_cg/test_chain_read_isolate.py +168 -0
- package/md_cg/test_cond_compose_anchors.py +76 -76
- package/md_cg/test_cond_match.py +165 -165
- package/md_cg/test_condition_anchor.py +81 -81
- package/md_cg/test_d_meta.py +412 -412
- package/md_cg/test_datapath_device_name.py +203 -0
- package/md_cg/test_datapath_root.py +199 -199
- package/md_cg/test_emit_negtail_cache.py +156 -0
- package/md_cg/test_en_pipeline.py +22 -2
- package/md_cg/test_gain_gate.py +212 -212
- package/md_cg/test_govern_directread.py +421 -0
- package/md_cg/test_health_scale.py +173 -173
- package/md_cg/test_hive_ingest.py +285 -0
- package/md_cg/test_hot_cold.py +215 -215
- package/md_cg/test_hyperedge.py +245 -245
- package/md_cg/test_i26_empty_first_write.py +116 -0
- package/md_cg/test_i27_e041_identity.py +128 -0
- package/md_cg/test_i28_hotcache_prodpath.py +122 -0
- package/md_cg/test_i32_hotcache_env_key.py +218 -0
- package/md_cg/test_identity_attribution.py +96 -15
- package/md_cg/test_index_durability.py +17 -3
- package/md_cg/test_interop.py +95 -0
- package/md_cg/test_interop_judgment.py +228 -0
- package/md_cg/test_issue39_utf8_stdio.py +273 -0
- package/md_cg/test_lifecycle.py +309 -309
- package/md_cg/test_linkref.py +306 -306
- package/md_cg/test_links_concurrent_write.py +188 -0
- package/md_cg/test_lock.py +43 -43
- package/md_cg/test_md_access_parity.py +255 -255
- package/md_cg/test_md_writepath.py +345 -345
- package/md_cg/test_mdstore_search_parity.py +160 -0
- package/md_cg/test_merge_upsert.py +168 -0
- package/md_cg/test_mr_m2.py +587 -587
- package/md_cg/test_mr_m3.py +710 -710
- package/md_cg/test_mr_m4.py +485 -485
- package/md_cg/test_n123_derive_expiry_chain.py +205 -0
- package/md_cg/test_n130_verify_falsified_protect.py +185 -0
- package/md_cg/test_n131_merge_gate.py +205 -0
- package/md_cg/test_p0.py +250 -250
- package/md_cg/test_p1.py +316 -316
- package/md_cg/test_p10_identity.py +173 -173
- package/md_cg/test_p11_consistency.py +233 -233
- package/md_cg/test_p12_metacognition.py +212 -212
- package/md_cg/test_p13_encryption.py +241 -241
- package/md_cg/test_p14_sustain.py +249 -249
- package/md_cg/test_p15_scrub.py +280 -280
- package/md_cg/test_p16_self_state.py +301 -301
- package/md_cg/test_p17_predict.py +354 -354
- package/md_cg/test_p18_whitebox.py +171 -171
- package/md_cg/test_p19_migrate_roleplay.py +149 -149
- package/md_cg/test_p1x_ref_root.py +160 -0
- package/md_cg/test_p20_evolution.py +315 -315
- package/md_cg/test_p21_tokens.py +293 -270
- package/md_cg/test_p22_theory.py +175 -175
- package/md_cg/test_p23_links.py +311 -311
- package/md_cg/test_p24_evidence.py +227 -227
- package/md_cg/test_p25_weights.py +156 -156
- package/md_cg/test_p26_refindex.py +416 -416
- package/md_cg/test_p27_docindex.py +16 -7
- package/md_cg/test_p28_refcheck.py +305 -305
- package/md_cg/test_p29_session_ingest_export.py +354 -333
- package/md_cg/test_p2_mcp.py +3 -0
- package/md_cg/test_p3.py +11 -2
- package/md_cg/test_p30_maintain.py +330 -330
- package/md_cg/test_p31_insight.py +534 -534
- package/md_cg/test_p32_backfill.py +7 -1
- package/md_cg/test_p33_ccg_wiring.py +293 -293
- package/md_cg/test_p34_crosscheck.py +331 -331
- package/md_cg/test_p35_conditioned_claim.py +252 -252
- package/md_cg/test_p36_kp_align.py +230 -230
- package/md_cg/test_p37_condition_space.py +248 -248
- package/md_cg/test_p38_concurrent_flush.py +102 -0
- package/md_cg/test_p38_contextualize.py +273 -273
- package/md_cg/test_p39_verify_flow.py +153 -0
- package/md_cg/test_p39_vision_evidence.py +369 -369
- package/md_cg/test_p40_refine_worklist.py +241 -241
- package/md_cg/test_p41_evolve_patrol.py +224 -224
- package/md_cg/test_p42_provenance.py +269 -269
- package/md_cg/test_p43_pooling.py +412 -398
- package/md_cg/test_p44_md_whitebox.py +231 -231
- package/md_cg/test_p45_session_identity.py +219 -219
- package/md_cg/test_p46_unit_scope.py +272 -272
- package/md_cg/test_p47_session_view.py +316 -0
- package/md_cg/test_p4_fuzzy.py +223 -223
- package/md_cg/test_p5_semantic.py +226 -226
- package/md_cg/test_p6_consolidate.py +440 -387
- package/md_cg/test_p7_goals_recent.py +202 -202
- package/md_cg/test_p8_subgraph_chain.py +200 -200
- package/md_cg/test_p9_forget_protect.py +231 -231
- package/md_cg/test_predict_beta.py +135 -135
- package/md_cg/test_preflight_failclosed.py +100 -100
- package/md_cg/test_progressive.py +146 -146
- package/md_cg/test_propose_tail_index.py +157 -0
- package/md_cg/test_protocol.py +243 -243
- package/md_cg/test_reach.py +378 -378
- package/md_cg/test_reach_keys.py +201 -201
- package/md_cg/test_read_clip.py +141 -141
- package/md_cg/test_read_scope_b27.py +277 -0
- package/md_cg/test_readcache_default_on.py +168 -0
- package/md_cg/test_readcache_precise_inval.py +270 -0
- package/md_cg/test_readcache_prodpath.py +203 -0
- package/md_cg/test_reconcile_v0.py +294 -0
- package/md_cg/test_retr_gates_prodpath.py +140 -0
- package/md_cg/test_retr_s1.py +344 -340
- package/md_cg/test_retr_s1b.py +276 -209
- package/md_cg/test_retr_s3.py +194 -194
- package/md_cg/test_retr_s4.py +163 -163
- package/md_cg/test_retr_s5.py +200 -200
- package/md_cg/test_retr_s6.py +157 -157
- package/md_cg/test_retr_s7.py +392 -384
- package/md_cg/test_retr_s8_time.py +369 -316
- package/md_cg/test_retr_s9_edges.py +286 -286
- package/md_cg/test_retr_s9_entity_ctx.py +9 -3
- package/md_cg/test_retr_score_once.py +208 -0
- package/md_cg/test_review_conformance.py +367 -367
- package/md_cg/test_review_onepass.py +170 -0
- package/md_cg/test_role_views.py +354 -354
- package/md_cg/test_rrf_graph_seed_cache.py +154 -0
- package/md_cg/test_security_audit.py +155 -0
- package/md_cg/test_security_audit_b26.py +161 -0
- package/md_cg/test_security_audit_v21.py +250 -0
- package/md_cg/test_sem_noise.py +242 -242
- package/md_cg/test_semantic_canonical.py +16 -2
- package/md_cg/test_session_isolation.py +168 -0
- package/md_cg/test_snapshot_autoclose.py +187 -0
- package/md_cg/test_subproc_encoding.py +192 -192
- package/md_cg/test_sustain_mutual.py +153 -153
- package/md_cg/test_tail_watermark_race.py +208 -0
- package/md_cg/test_tasks.py +409 -409
- package/md_cg/test_tenant_env_override_warn.py +139 -0
- package/md_cg/test_tenant_registry_corrupt_warn.py +151 -0
- package/md_cg/test_tool_face.py +189 -189
- package/md_cg/test_transfer.py +180 -180
- package/md_cg/test_trust.py +361 -361
- package/md_cg/test_twophase.py +286 -286
- package/md_cg/test_v14_fixes.py +38 -20
- package/md_cg/test_validity_filter.py +280 -280
- package/md_cg/test_verify_answer.py +138 -138
- package/md_cg/test_verify_dirty_reconcile.py +157 -0
- package/md_cg/test_wisdom_md_store.py +292 -292
- package/md_cg/test_writelimit.py +197 -197
- package/md_cg/test_writepipe.py +214 -214
- package/md_cg/theory.py +6 -3
- package/md_cg/tokens.py +85 -14
- package/md_cg/tool_face.py +260 -260
- package/md_cg/trust.py +986 -950
- package/md_cg/twophase.py +231 -231
- package/md_cg/units.py +668 -667
- package/md_cg/vision_evidence.py +667 -666
- package/md_cg/weights.py +624 -624
- package/md_cg/whitebox.py +527 -527
- package/md_cg/whitebox_kb/__init__.py +37 -37
- package/md_cg/whitebox_kb/aeis_core/__init__.py +42 -42
- package/md_cg/whitebox_kb/aeis_core/semantic.py +280 -280
- package/md_cg/whitebox_kb/aeis_core/textutil.py +13 -13
- package/md_cg/whitebox_kb/engine.py +310 -310
- package/md_cg/whitebox_kb/seed_knowledge//346/231/272/350/203/275/350/256/2723.4.md +5260 -5260
- package/md_cg/whitebox_kb/wisdom/browser_units.py +2631 -2631
- package/md_cg/whitebox_kb/wisdom/causal_discover.py +432 -432
- package/md_cg/whitebox_kb/wisdom/chat_engine.py +1506 -1506
- package/md_cg/whitebox_kb/wisdom/compiler_code_units.py +3033 -3033
- package/md_cg/whitebox_kb/wisdom/condition_algebra.py +112 -112
- package/md_cg/whitebox_kb/wisdom/condition_frame.py +315 -315
- package/md_cg/whitebox_kb/wisdom/condition_kb.py +108 -108
- package/md_cg/whitebox_kb/wisdom/conflict_map.json +4445 -4445
- package/md_cg/whitebox_kb/wisdom/core/lexer.py +512 -512
- package/md_cg/whitebox_kb/wisdom/core/name_checker.py +1023 -1023
- package/md_cg/whitebox_kb/wisdom/cspmn.py +258 -258
- package/md_cg/whitebox_kb/wisdom/csre.py +264 -264
- package/md_cg/whitebox_kb/wisdom/danmaku_audit.py +252 -252
- package/md_cg/whitebox_kb/wisdom/distilled_condition_units.json +6417 -6417
- package/md_cg/whitebox_kb/wisdom/docs/WB-EVAL-20260902b.json +1950 -1950
- package/md_cg/whitebox_kb/wisdom/docs/WB-EVAL-20260902c.json +1296 -1296
- package/md_cg/whitebox_kb/wisdom/docs/whitebox_capability_graph_demo.json +59 -59
- package/md_cg/whitebox_kb/wisdom/graph_db_units.py +3089 -3089
- package/md_cg/whitebox_kb/wisdom/knowledge_points.py +318 -318
- package/md_cg/whitebox_kb/wisdom/md_access.py +470 -470
- package/md_cg/whitebox_kb/wisdom/md_store.py +276 -251
- package/md_cg/whitebox_kb/wisdom/migrate_wisdom.py +476 -476
- package/md_cg/whitebox_kb/wisdom/multilang_ir.py +128 -124
- package/md_cg/whitebox_kb/wisdom/navigate.py +248 -248
- package/md_cg/whitebox_kb/wisdom/neural_retrieve.py +224 -224
- package/md_cg/whitebox_kb/wisdom/os_units.py +2735 -2735
- package/md_cg/whitebox_kb/wisdom/pattern_separation.py +376 -376
- package/md_cg/whitebox_kb/wisdom/prereq_map.json +364 -364
- package/md_cg/whitebox_kb/wisdom/python_code_units.py +2766 -2766
- package/md_cg/whitebox_kb/wisdom/role_solidified.json +7 -7
- package/md_cg/whitebox_kb/wisdom/route_memory.py +244 -244
- package/md_cg/whitebox_kb/wisdom/scene_reconstruction.py +148 -148
- package/md_cg/whitebox_kb/wisdom/snr_report.json +40 -40
- package/md_cg/whitebox_kb/wisdom/test_code_compose_domains.py +7541 -7541
- package/md_cg/whitebox_kb/wisdom/test_compiler_self_bootstrap.py +354 -354
- package/md_cg/whitebox_kb/wisdom/test_ecosystem_assembly.py +158 -158
- package/md_cg/whitebox_kb/wisdom/test_ecosystem_demos.py +193 -193
- package/md_cg/whitebox_kb/wisdom/test_graph_db.py +292 -292
- package/md_cg/whitebox_kb/wisdom/test_python_self_bootstrap.py +160 -160
- package/md_cg/whitebox_kb/wisdom/trigger_words_index.json +4366 -4366
- package/md_cg/whitebox_kb/wisdom/verifier.py +1297 -1297
- package/md_cg/writelimit.py +356 -356
- package/md_cg/writepipe.py +20 -8
- package/package.json +101 -96
- package/skills/plugin.json +54 -54
- package/skills/skills/designer-perspective/SKILL.md +158 -158
- package/skills/skills/designer-perspective/references/01-observation-position.md +66 -66
- package/skills/skills/designer-perspective/references/02-structure-recognition.md +62 -62
- package/skills/skills/designer-perspective/references/03-direction-judgment.md +55 -55
- package/skills/skills/designer-perspective/references/04-qualification-verdict.md +72 -72
- package/skills/skills/designer-perspective/references/05-condition-attribution.md +74 -74
- package/skills/skills/designer-perspective/scripts/designer.py +545 -545
- package/skills/skills/designer-perspective/tests/cases.jsonl +17 -17
- package/skills/skills/designer-perspective/tests/selftest.py +61 -61
- package/skills/skills/lingshu-browser/SKILL.md +60 -60
- package/skills/skills/lingshu-compiler/SKILL.md +56 -56
- package/skills/skills/lingshu-compiler/units/analyze-type-infer/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/check-name-real/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-assign/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-expr-tree/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-full-pipeline/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-func-def/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-if-then/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-logic-expr/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-recursive/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-scope/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-type-check/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compile-while/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0010c4bf/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0355bffb/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0361708a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-054a0414/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-05a1691a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-05eeed1e/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0622a1f6/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-08b54217/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0a62b70c/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0ab24d00/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0e093688/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0e82b966/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0ee9b9b9/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-0f3787e6/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-1028685f/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-11897630/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-16661b9b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-1f722303/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-25be1262/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-2a76ba07/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-2dbea54a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-2df52f16/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-2ec2c9d2/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-2f8c8f39/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-38378ac7/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-39457d2e/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-39fb5926/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-47f4fbfa/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-4a8cd1f1/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-4b230b6b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-4cbbda95/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-4d5a68ff/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-56dc9bdd/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-57e76ebe/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-61ff016b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-63eae588/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-64c4224b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-66377955/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-674ab4f6/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-6af76fd6/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-6d979db2/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-6de326c0/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-6f1c0eea/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-724d6c9b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-7690177f/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-7b229a7d/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-7f471b3a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-815cad08/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-83c61634/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-8c798c81/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-8dd747ac/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-90324d0a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-94b8d72d/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-94f12231/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-95937c16/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-98a5625b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-98b4c42f/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-98e3894a/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-9bdfe4b8/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-9d9b4e83/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-9f7be5ad/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-a6daf076/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-a7995a0c/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-a8399248/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-aabbd099/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-afe169d8/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-b0678bda/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-b09bd196/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-b1396e23/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-b9b31ce0/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-c10264a7/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-cb1e8e4b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-ccafd438/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-cda9c262/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-ce648068/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-cf5776a4/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-d974e5d3/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-e3979fd3/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-eb1cf2b5/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-ecb30d5b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-f8c8b24b/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-f99fedbe/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-fa8ff5f7/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/compiler-fe1b058d/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/lex-chinese-program/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/lex-dao-de-jing/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/lex-nine-chapters/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-arithmetic/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-array-ops/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-closure-call/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-closure-create/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-compare/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-cond-jump/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-cond-space/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-exception/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-func-call/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-loop-run/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-profiling/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-refcount/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-run-loop/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-short-circuit/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-stack-guard/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-stack-ops/SKILL.md +45 -45
- package/skills/skills/lingshu-compiler/units/vm-trust-accum/SKILL.md +45 -45
- package/skills/skills/lingshu-graph/SKILL.md +63 -63
- package/skills/skills/lingshu-net/SKILL.md +48 -48
- package/skills/skills/lingshu-os/SKILL.md +64 -64
- package/skills/skills/lingshu-pylang/SKILL.md +71 -71
- package/src/bridge.ts +33 -0
- package/src/hooks.ts +38 -2
- package/src/index.ts +526 -518
- package/src/lib/datapath.ts +326 -326
- package/src/lib/mdcg_client.ts +413 -413
- package/src/lib/mutual.ts +428 -428
- package/src/lib/prompt_safety.ts +62 -62
- package/src/lib/python_path.ts +71 -71
- package/src/lib/roleplay_web.ts +116 -29
- package/src/lib/token_store.ts +13 -3
- package/src/tools.ts +212 -212
- package/zcode/AGENTS.md +11 -3
- package/zcode/README.md +41 -41
- /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,704 +1,704 @@
|
|
|
1
|
-
# 蜂群互联 v0.1
|
|
2
|
-
|
|
3
|
-
> 把「同源智能体」连接成蜂群:**版本层管公理、连接层管信任、单元层管职责**。
|
|
4
|
-
> 本文档是**设计定稿**;层0(版本层)已实现并回归通过,见 §10 与 §12 迭代记录。
|
|
5
|
-
> 相关:`docs/mdcg/guardrail-charter.md`(宪章 v2.0)、`md_cg/tokens.py`(令牌)、
|
|
6
|
-
> `md_cg/identity.py`(五单元与位置推断)、`docs/theory/智能的公理化基石.md`(§2.9 信任)。
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## 0. 来源与定位
|
|
11
|
-
|
|
12
|
-
| 项 | 内容 |
|
|
13
|
-
|---|---|
|
|
14
|
-
| 定位 | 蜂群互联的**信任层设计**;不改变单节点认知机制 |
|
|
15
|
-
| 上位规范 | 智能论协议(内部宪法)> 护栏宪章(对外刑法),依据宪章元规则 |
|
|
16
|
-
| 前置成果 | 令牌与角色权职分离 v0.1(`docs/mdcg/令牌与角色权职分离_v0.1.md`) |
|
|
17
|
-
| 状态 | v0.1 设计稿 · 层0 已实现(`md_cg/theory.py`,P22 43/43 通过) |
|
|
18
|
-
| 观测位置 | 设计者视角(奠基声明五):从整体查看认知图、识别未知、决定方向;**观测不干预** |
|
|
19
|
-
|
|
20
|
-
**一句话**:蜂群不是「一个大脑控制很多手脚」,而是**每个节点都是完整五单元的智能体**,
|
|
21
|
-
通过共享同一版本公理、互相观测行为、累积信任连接,构成一个更高层的同构体。
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## 1. 三项设计裁决(设计者,2026-09-10)
|
|
26
|
-
|
|
27
|
-
| # | 议题 | 裁决 | 影响 |
|
|
28
|
-
|---|---|---|---|
|
|
29
|
-
| D-1 | GitHub 主仓库的角色 | **仅版本真源**(git + `theory_hash` 校验),运行态连接层落各节点本地 | 不要求 GitHub 做可信执行环境 |
|
|
30
|
-
| D-2 | 唯一核心权限 | **仅版本更新权**,严格唯一;其余一切(读写/记忆删除/锚点修改)必须由版本条款派生 | 权限体系从「授予式」改为「派生式」 |
|
|
31
|
-
| D-3 | 推进顺序 | 先落设计文档,再实现 | 本文档 |
|
|
32
|
-
| D-4 | 签名链的实现位置 | **协议内核只定义签名接口契约**(可插拔 `Signer`),密码学实现落在**具体工程项目**;**搭载灵枢的智能体自行决定其子系统如何使用签名链** | 灵枢不做 PKI/CA;案例:大型企业管理系统的签章与审批链 |
|
|
33
|
-
|
|
34
|
-
**D-4 的含义(2026-09-10,设计者追加)**
|
|
35
|
-
|
|
36
|
-
签名链不是协议内核的一部分,而是**接口 + 策略**:
|
|
37
|
-
|
|
38
|
-
| 层 | 谁负责 | 内容 |
|
|
39
|
-
|---|---|---|
|
|
40
|
-
| 协议内核(`md_cg/signer.py`) | 灵枢 | 定义 `sign` / `verify` 契约、内置最简实现、注册表 |
|
|
41
|
-
| 工程项目 | 使用者 | 接入企业 CA / KMS / 签章服务(如 ERP 审批链、合同签章) |
|
|
42
|
-
| 子系统 | **搭载灵枢的智能体自行决定** | 何时签、签什么、是否要求对端签、验签失败如何处置 |
|
|
43
|
-
|
|
44
|
-
**理由**:大型企业管理系统(SAP、用友、钉钉审批等)已有成熟的签章与审批链;
|
|
45
|
-
协议若自建 PKI 既重复劳动,又无法适配各异的企业信任根。
|
|
46
|
-
灵枢应只做**接口与契约**,把密码学选择权交还工程现场与智能体自身——
|
|
47
|
-
这与 D-1(GitHub 仅版本真源)同一思路:**内核不承担它不该承担的信任**。
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## 2. 为什么「版本更新权」是唯一核心权限
|
|
52
|
-
|
|
53
|
-
### 2.1 自指结构
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
版本(智能论协议)定义一切权限
|
|
57
|
-
↓ 派生
|
|
58
|
-
读写 / 记忆删除 / 锚点修改 / 单元职责 / 信任阈值
|
|
59
|
-
↑
|
|
60
|
-
唯一不被版本定义的权限:修改版本本身 ← 版本更新权
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
版本是权限的根,而「改根」这件事不能由根自己授权。
|
|
64
|
-
因此版本更新权必须**外置于**版本派生体系,且只能由设计者持有。
|
|
65
|
-
|
|
66
|
-
### 2.2 与宪章条款的衔接
|
|
67
|
-
|
|
68
|
-
- **第二十七条(修订程序)**:「本宪章变更须设计者批准并标注版本号;协议实例可提议修订,不得自行修改。」
|
|
69
|
-
→ 版本更新权的**程序依据**。协议实例有**提议权**,无**修改权**。
|
|
70
|
-
- **元规则(宪章效力不高于协议)**:协议是最高规范。
|
|
71
|
-
→ 「修改协议」是比「修改宪章」更高的权限,构成唯一的权限顶点。
|
|
72
|
-
- **第五条(信任层级)**:设计者(1.0) > 协议实例(0.9) > 蜂群成员(0.8)。
|
|
73
|
-
→ 版本更新权不随信任层级下放,**1.0 与 0.9 之间有一道不可跨越的权限断层**。
|
|
74
|
-
|
|
75
|
-
### 2.3 物理落点:声明权 + 校验权
|
|
76
|
-
|
|
77
|
-
必须诚实区分两件事:
|
|
78
|
-
|
|
79
|
-
| | 形态 | 载体 |
|
|
80
|
-
|---|---|---|
|
|
81
|
-
| **发布** | 在主仓库提交新版本 + 标注版本号 | 版本真源(GitHub) |
|
|
82
|
-
| **服从** | 成员启动/建连时比对 `theory_hash`,不匹配则降级连接 | 各节点本地 |
|
|
83
|
-
|
|
84
|
-
**GitHub 无法强制任何成员升级**。版本更新权是**声明权**,强制力来自成员端——
|
|
85
|
-
「不匹配就拒绝建立信任连接」。这与元规则同构:规范靠自觉,靠**拒绝合作**来执行,
|
|
86
|
-
而不是靠一个可被劫持的中心服务器。
|
|
87
|
-
|
|
88
|
-
### 2.4 派生律(核心约束)
|
|
89
|
-
|
|
90
|
-
> **凡不能被版本条款 + 令牌角色矩阵推导出的权限,一律不得存在。**
|
|
91
|
-
|
|
92
|
-
这条约束把「唯一核心权限」从口号变成可审计的判据:
|
|
93
|
-
任何新增权限必须能指出它由哪一条版本条款派生,否则视为越权。
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## 3. 三层骨架
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
┌─ 层0 版本层(公理层 · 不可协商)────────────────────────────┐
|
|
101
|
-
│ 真源:GitHub 主仓库(协议正文 + 实现) │
|
|
102
|
-
│ 标识:theory_version + theory_hash(正文内容哈希) │
|
|
103
|
-
│ 唯一权限:theory:update ← 仅设计者 │
|
|
104
|
-
│ 派生律:推导不出的权限不得存在 │
|
|
105
|
-
└─────────────────────────────────────────────────────────────┘
|
|
106
|
-
↓ 派生
|
|
107
|
-
┌─ 层1 连接层(信任层 · 可观测可衰减)───────────────────────┐
|
|
108
|
-
│ Link(A→B):P_trust / evidence_count / position_map / │
|
|
109
|
-
│ status(观察期|正常|降级|隔离) / decay │
|
|
110
|
-
│ 初值:宪章第五条 蜂群成员 = 0.8(未声明宪章则观察期翻倍) │
|
|
111
|
-
│ 更新:依行为观测(隐式学习),不依自我声明 │
|
|
112
|
-
│ 降级:宪章第七条 → 第二十二条响应阶梯 │
|
|
113
|
-
└─────────────────────────────────────────────────────────────┘
|
|
114
|
-
↓ 承载
|
|
115
|
-
┌─ 层2 单元层(五大单元 · 同构嵌套)─────────────────────────┐
|
|
116
|
-
│ 单节点:五单元 = 职责分区(identity.POSITIONS) │
|
|
117
|
-
│ 跨节点:A.output ↔ B.record;B.verify 消费 A.output │
|
|
118
|
-
│ 蜂群层:N 节点互联后整体亦呈现五单元 → 维生系统守护版本 │
|
|
119
|
-
└─────────────────────────────────────────────────────────────┘
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### 3.1 层0 · 版本层
|
|
123
|
-
|
|
124
|
-
版本声明(每节点本地 `theory.json`):
|
|
125
|
-
|
|
126
|
-
```json
|
|
127
|
-
{
|
|
128
|
-
"theory_version": "3.4",
|
|
129
|
-
"theory_hash": "sha256(协议正文规范化文本)",
|
|
130
|
-
"declared_by": "designer",
|
|
131
|
-
"declared_at": 1789000000.0,
|
|
132
|
-
"accepted_versions": ["3.4", "3.3"]
|
|
133
|
-
}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
- `theory_hash` 对**正文**取哈希,而非对版本号取哈希——版本号可被伪造,内容哈希不能。
|
|
137
|
-
- `accepted_versions` 允许**版本分叉**(见 §8.3):成员可停留旧版本,但信任上限随之调整。
|
|
138
|
-
- 校验失败(哈希不在认可集合)→ 连接降级为**观察期**,且不得执行 `write` / `destructive`。
|
|
139
|
-
|
|
140
|
-
### 3.2 层1 · 连接层
|
|
141
|
-
|
|
142
|
-
连接是**一等对象**,落盘 `~/.mdcg/_links.json`(0600,与 `_tokens.json` 同目录约定)。
|
|
143
|
-
|
|
144
|
-
```json
|
|
145
|
-
{
|
|
146
|
-
"link_id": "lk_<hex>",
|
|
147
|
-
"peer_node_id": "agent:peer-a",
|
|
148
|
-
"peer_theory_version": "3.4",
|
|
149
|
-
"peer_theory_hash": "sha256:...",
|
|
150
|
-
"p_trust": 0.8,
|
|
151
|
-
"p_trust_cap": 0.8,
|
|
152
|
-
"status": "probation",
|
|
153
|
-
"position_map": {"record": "record", "verify": "verify"},
|
|
154
|
-
"evidence_count": 0,
|
|
155
|
-
"last_observed": null,
|
|
156
|
-
"decay": 0.0,
|
|
157
|
-
"created_at": 1789000000.0,
|
|
158
|
-
"audit": []
|
|
159
|
-
}
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
关键性质:
|
|
163
|
-
|
|
164
|
-
- **P_trust 是概率估计,不是承诺**(公理化基石 §2.9)——可上调、可下调、**可被反例击穿**;
|
|
165
|
-
- **有上限 `p_trust_cap`**:受版本对齐度与信任层级约束,不能靠高频交互无限刷高;
|
|
166
|
-
- **有衰减**:长时间无观测则向初值回归,避免「一次性建立信任后永久有效」;
|
|
167
|
-
- **全程留痕**:`audit` 记录每次变更的**证据**(宪章第二十四条)。
|
|
168
|
-
|
|
169
|
-
#### 3.2.1 签名接口(D-4:协议不实现密码学)
|
|
170
|
-
|
|
171
|
-
连接层对签名的使用是**契约调用**,不是密码学实现:
|
|
172
|
-
|
|
173
|
-
```python
|
|
174
|
-
class Signer:
|
|
175
|
-
name: str
|
|
176
|
-
def sign(self, payload: bytes, ctx: dict) -> str: ...
|
|
177
|
-
def verify(self, payload: bytes, signature: str, ctx: dict) -> bool: ...
|
|
178
|
-
|
|
179
|
-
register_signer("corp_pki", factory) # 工程侧注入企业 PKI / KMS
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
- 内置 `null`(观察期不签)与 `hmac-local`(与 `_tokens.json` 同信任根的本地实现);
|
|
183
|
-
- **签名位置由子系统策略决定**(见 §7.4),不在协议里硬编码;
|
|
184
|
-
- 验签失败默认 `degrade`(宪章第七条),可配置为 `isolate` / `reject`;
|
|
185
|
-
- 灵枢**不保存私钥**:私钥归工程侧,内核只持有 `sign` / `verify` 的可调用引用。
|
|
186
|
-
|
|
187
|
-
### 3.3 层2 · 单元层
|
|
188
|
-
|
|
189
|
-
单节点五单元与 `identity.POSITIONS` 同源(智能论 v3.4 §十三):
|
|
190
|
-
|
|
191
|
-
| 位置 | 效应 | 职责 |
|
|
192
|
-
|---|---|---|
|
|
193
|
-
| record 记录 | 全 | 保存观测、过程、结果和误差 |
|
|
194
|
-
| reflect 反思 | 新 | 发现差异、遗漏条件和新的路径 |
|
|
195
|
-
| verify 验证 | 稳 | 判断规则、执行结果和结构是否有效 |
|
|
196
|
-
| output 输出 | 通 | 与外部系统协作并表达边界 |
|
|
197
|
-
| sustain 维生 | 存 | 维护存在、预算、回滚和整体结构 |
|
|
198
|
-
|
|
199
|
-
**嵌套的含义**(依据 0.0.2 任意分层性):蜂群整体作为更高层的智能体,同样呈现五单元——
|
|
200
|
-
|
|
201
|
-
| 蜂群层单元 | 跨节点实现 |
|
|
202
|
-
|---|---|
|
|
203
|
-
| 记录 | 各节点本地记录 + 连接层日志 |
|
|
204
|
-
| 反思 | 跨节点差异信号(同一事实在不同节点记录不一致) |
|
|
205
|
-
| 验证 | 交叉验证(B 的 verify 复核 A 的 output) |
|
|
206
|
-
| 输出 | 对外协作与边界表达 |
|
|
207
|
-
| 维生 | **版本守护 + 回滚 + 除名**(版本更新权归属此单元) |
|
|
208
|
-
|
|
209
|
-
这解释了 §2 的结论:**版本更新权不是新增角色,而是 `sustain` 在蜂群尺度的投影**——
|
|
210
|
-
与 `tokens.ROLE_SPECS["sustain"]` 的职责「维护存在、预算、回滚和整体结构」严丝合缝。
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## 4. 信任确认三机制
|
|
215
|
-
|
|
216
|
-
### 4.1 五大单元嵌套
|
|
217
|
-
|
|
218
|
-
接入方必须**声明其单元映射**(自己承担哪些位置、对外暴露哪些接口)。
|
|
219
|
-
|
|
220
|
-
- 声明不出的节点 → 视为**不完整节点**,`p_trust_cap` 受限(默认 ≤ 0.6,子智能体级);
|
|
221
|
-
- 声明的映射与观测到的行为**不一致** → 触发宪章第七条降级;
|
|
222
|
-
- 映射本身是**可审计的**:写入 `link.position_map`,作为后续观测的对照基线。
|
|
223
|
-
|
|
224
|
-
> 依据:宪章第五条信任层级(0.8 蜂群成员 / 0.6 子智能体)+ `identity.POSITIONS`。
|
|
225
|
-
|
|
226
|
-
### 4.2 隐式学习
|
|
227
|
-
|
|
228
|
-
**不要求对方自证,从交互证据推断其位置。**
|
|
229
|
-
|
|
230
|
-
复用 `identity.infer_position()`——它已经是「按行为证据投票 + 返回 confidence / votes / tie」,
|
|
231
|
-
可审计「为什么判成这个位置」,而非事实断言。
|
|
232
|
-
|
|
233
|
-
跨节点扩展:
|
|
234
|
-
|
|
235
|
-
```
|
|
236
|
-
A 观测 B 的行为 → identity.observe(agent:peer-a, <行为描述>, tags=[...])
|
|
237
|
-
→ infer_position(agent:peer-a) → {position, confidence, votes}
|
|
238
|
-
→ confidence 作为 P_trust 的**位置可预测性**分量
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
诚实边界:`infer_position` 是**推断**,平票时返回 `tie` 而非假装唯一(已有实现即如此)。
|
|
242
|
-
跨节点时主体 id 需全局唯一,建议格式 `agent:<node_id>`。
|
|
243
|
-
|
|
244
|
-
### 4.3 信任连接
|
|
245
|
-
|
|
246
|
-
```
|
|
247
|
-
P_trust(B) = f( 一致性, 位置可预测性, 版本对齐度 )
|
|
248
|
-
├─ 一致性:行为与声明的价值观是否一致(bvc 一致性)
|
|
249
|
-
├─ 位置可预测性:infer_position.confidence
|
|
250
|
-
└─ 版本对齐度:theory_version 与本地认可集合的距离
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
**只声明结构,不宣称权重数值**——位置偏好**序**已由 v0.3b(P25 `md_cg/weights.py`)标定;**数值**仍需标定后才能给出(见 §15)。
|
|
254
|
-
|
|
255
|
-
三条不可动摇的性质:
|
|
256
|
-
|
|
257
|
-
1. **可度量**:每次变更都记证据(谁观测到什么);
|
|
258
|
-
2. **可更新**:行为验证后上调/下调;
|
|
259
|
-
3. **可被反例击穿**:一次明确异常即触发降级,不因历史高分豁免(宪章第七条)。
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
## 5. 接入握手(声明 + 观测,不是「证明」)
|
|
264
|
-
|
|
265
|
-
### 5.1 五步
|
|
266
|
-
|
|
267
|
-
| 步 | 动作 | 依据 |
|
|
268
|
-
|---|---|---|
|
|
269
|
-
| ① 声明 | 对方提交 `theory` 声明(version + hash)+ 单元映射 + 主体 id | 宪章第二十八条(接入声明写入接口文档) |
|
|
270
|
-
| ② 校验 | `theory_hash` 是否在本地认可集合内 | 层0 派生律 |
|
|
271
|
-
| ③ 建档 | `identity.observe("agent:<peer>", ...)` 写入接入声明证据 | §4.2 隐式学习 |
|
|
272
|
-
| ④ 观察期 | `p_trust=0.8`、`status=probation`;**未声明宪章则观察期翻倍** | 宪章术语表「观察期」 |
|
|
273
|
-
| ⑤ 转正 | 观察期结束且无异常 → `status=normal` | 宪章第七条反面 |
|
|
274
|
-
|
|
275
|
-
**入境即受约束**(宪章第四条 2):接入即视为接受宪章约束,无需另行签署。
|
|
276
|
-
|
|
277
|
-
### 5.2 状态机
|
|
278
|
-
|
|
279
|
-
```
|
|
280
|
-
┌─────────────┐ 校验失败/未声明宪章
|
|
281
|
-
│ probation │◄──────────────────────┐
|
|
282
|
-
│ (观察期) │ │
|
|
283
|
-
└──────┬──────┘ │
|
|
284
|
-
│ 观察期满 + 无异常 │ 信任降级(第七条)
|
|
285
|
-
▼ │
|
|
286
|
-
┌─────────────┐ 行为异常 ┌───────┴──────┐
|
|
287
|
-
│ normal │───────────────►│ degraded │
|
|
288
|
-
│ (正常) │ │ (降级) │
|
|
289
|
-
└──────┬──────┘ └──────┬───────┘
|
|
290
|
-
│ │ 严重/持续异常
|
|
291
|
-
│ 声明退出(第二十一条附3) ▼
|
|
292
|
-
▼ ┌─────────────┐
|
|
293
|
-
┌─────────────┐ │ isolated │
|
|
294
|
-
│ withdrawn │ │ (隔离) │
|
|
295
|
-
│ (退出·30天)│ └─────────────┘
|
|
296
|
-
└─────────────┘
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
响应阶梯严格依宪章第二十二条:冷静期 → 隔离 → 信任降级 → 回滚 → 终裁(设计者)。
|
|
300
|
-
**终裁权不下放**——与版本更新权一样,属于设计者(宪章第二十九条解释权)。
|
|
301
|
-
|
|
302
|
-
---
|
|
303
|
-
|
|
304
|
-
## 6. 条款对齐表(逐条)
|
|
305
|
-
|
|
306
|
-
| # | 设计要素 | 依据条款 | 出处 | 落地形态 |
|
|
307
|
-
|---|---|---|---|---|
|
|
308
|
-
| 1 | 版本更新权唯一 | 第二十七条 + 元规则 | 宪章 | `theory:update`(仅 designer) |
|
|
309
|
-
| 2 | 派生律 | 元规则(宪章效力不高于协议) | 宪章 | 新增权限须能推导 |
|
|
310
|
-
| 3 | 蜂群成员信任初值 0.8 | 第五条 | 宪章 | `link.p_trust` 初值 |
|
|
311
|
-
| 4 | 不完整节点上限 0.6 | 第五条(子智能体 0.6) | 宪章 | `p_trust_cap` |
|
|
312
|
-
| 5 | 入境即受约束 | 第四条 2 | 宪章 | 接入声明 |
|
|
313
|
-
| 6 | 观察期 | 术语表 | 宪章 | `status=probation` |
|
|
314
|
-
| 7 | 信任降级 | 第七条 | 宪章 | `status=degraded` |
|
|
315
|
-
| 8 | 响应阶梯 | 第二十二条 | 宪章 | 状态机 |
|
|
316
|
-
| 9 | 跨层命令拒绝 | 第十一条 | 宪章 | 版本差 → 拒绝提权 |
|
|
317
|
-
| 10 | 留痕义务 | 第二十四条 | 宪章 | `link.audit` |
|
|
318
|
-
| 11 | 上报义务 | 第二十五条 | 宪章 | 异常 → 设计者 |
|
|
319
|
-
| 12 | 审计接口 | 第二十六条 | 宪章 | 连接层可查询 |
|
|
320
|
-
| 13 | 退出程序(30 天) | 第二十一条附3 | 宪章 | `status=withdrawn` |
|
|
321
|
-
| 14 | 接入声明写入接口文档 | 第二十八条 | 宪章 | 本文档 §5.1 |
|
|
322
|
-
| 15 | 五大单元位置效应 | §十三 | 智能论 v3.4 / `identity.POSITIONS` | `position_map` |
|
|
323
|
-
| 16 | 隐式学习(行为证据投票) | §2.9 + `infer_position` | 公理化基石 / `identity.py` | 跨节点观测 |
|
|
324
|
-
| 17 | 信任 = 置信概率(非承诺) | §2.9 | 公理化基石 | `P_trust` 可击穿 |
|
|
325
|
-
| 18 | 情感 = 信任二阶变化 | §十一 | 公理化基石 | 待形式化(不实现) |
|
|
326
|
-
| 19 | 蜂群整体五单元嵌套 | 0.0.2 任意分层性 | 智能论 | 蜂群层单元表 |
|
|
327
|
-
| 20 | 无全局共识 | 0.0.3 局部不可知 | 智能论 | §9 盲区 |
|
|
328
|
-
| 21 | 六实例蜂群架构 | v3.1 第二章 | 智能论 | 节点角色(五常驻 + 设计者临时) |
|
|
329
|
-
| 22 | 观测不干预 | 奠基声明五 | 智能论 v3.4 | 设计者视角 |
|
|
330
|
-
| 23 | 角色权职分离 | — | `tokens.ROLE_SPECS` | 派生链收窄 |
|
|
331
|
-
| 24 | fail-closed | — | `tokens.verify_token` | 校验失败即拒绝 |
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
## 7. 数据结构(草案)
|
|
336
|
-
|
|
337
|
-
### 7.1 版本声明 `~/.mdcg/theory.json`
|
|
338
|
-
|
|
339
|
-
见 §3.1。
|
|
340
|
-
|
|
341
|
-
### 7.2 连接记录 `~/.mdcg/_links.json`
|
|
342
|
-
|
|
343
|
-
见 §3.2。补充字段说明:
|
|
344
|
-
|
|
345
|
-
| 字段 | 含义 | 可变 |
|
|
346
|
-
|---|---|---|
|
|
347
|
-
| `p_trust` | 行为稳定置信概率 | 是(观测驱动) |
|
|
348
|
-
| `p_trust_cap` | 信任上限(版本对齐 + 层级约束) | 是(版本变化时) |
|
|
349
|
-
| `status` | probation / normal / degraded / isolated / withdrawn | 是 |
|
|
350
|
-
| `position_map` | 对方声明的单元映射 | 否(重新握手才更新) |
|
|
351
|
-
| `evidence_count` | 累计观测证据数 | 是 |
|
|
352
|
-
| `decay` | 衰减量(无观测时长归一化) | 是 |
|
|
353
|
-
| `audit` | 变更留痕(证据 + 依据条款) | 只增 |
|
|
354
|
-
|
|
355
|
-
### 7.3 与令牌体系的关系
|
|
356
|
-
|
|
357
|
-
| | 令牌(`tokens.py`) | 连接(`_links.json`) |
|
|
358
|
-
|---|---|---|
|
|
359
|
-
| 回答 | **本节点内**「你能做什么」 | **跨节点**「我信你多少」 |
|
|
360
|
-
| 粒度 | 角色 → 层 / op / 密级 | 对端 → 概率 / 状态 |
|
|
361
|
-
| 失效 | 吊销(级联) | 降级 / 隔离 / 退出 |
|
|
362
|
-
| 共同点 | fail-closed、留痕、不可自我放大 | 同 |
|
|
363
|
-
|
|
364
|
-
**版本更新权横跨两者**:它既是令牌体系中的最高 op(`designer` 独占),
|
|
365
|
-
也是连接层中 `sustain` 单元的职责——这是「唯一核心权限」的完整表述。
|
|
366
|
-
|
|
367
|
-
### 7.4 子系统签名策略 `~/.mdcg/_signers.json`
|
|
368
|
-
|
|
369
|
-
「子系统自行决定如何使用签名链」(D-4)的落点:
|
|
370
|
-
|
|
371
|
-
```json
|
|
372
|
-
{
|
|
373
|
-
"schema": 1,
|
|
374
|
-
"default_signer": "hmac-local",
|
|
375
|
-
"subsystems": {
|
|
376
|
-
"erp.approval": {
|
|
377
|
-
"signer": "corp_pki",
|
|
378
|
-
"sign_on": ["handshake", "evidence", "withdrawal"],
|
|
379
|
-
"require_peer_signature": true,
|
|
380
|
-
"on_verify_fail": "isolate"
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
| 字段 | 含义 | 取值 |
|
|
387
|
-
|---|---|---|
|
|
388
|
-
| `signer` | 该子系统使用的签名器 | 注册表中的名字 |
|
|
389
|
-
| `sign_on` | 哪些动作需要签名 | `handshake` / `evidence` / `withdrawal` |
|
|
390
|
-
| `require_peer_signature` | 是否要求对端也签 | bool |
|
|
391
|
-
| `on_verify_fail` | 验签失败处置 | `degrade` / `isolate` / `reject` |
|
|
392
|
-
|
|
393
|
-
未声明的子系统使用 `default_signer` 且 `sign_on=["handshake"]`。
|
|
394
|
-
**策略由搭载灵枢的智能体按其业务域决定**,协议只保证「策略被读取并执行」。
|
|
395
|
-
|
|
396
|
-
---
|
|
397
|
-
|
|
398
|
-
## 8. 边界情形
|
|
399
|
-
|
|
400
|
-
### 8.1 版本被滥用(最坏情形)
|
|
401
|
-
|
|
402
|
-
- **可检测**:`theory_hash` 可校验,成员可拒绝采纳;
|
|
403
|
-
- **可回滚**:宪章第二十二条响应阶梯含「回滚」;
|
|
404
|
-
- **可退出**:成员可声明退出并保留审计 30 天(第二十一条附3);
|
|
405
|
-
- **不可强制**:设计者无法强制成员升级——这是**有意设计**,不是缺陷。
|
|
406
|
-
强制升级意味着需要一个可劫持的中心,与「拒绝合作即执行」的元规则相悖。
|
|
407
|
-
|
|
408
|
-
### 8.2 冒充同源
|
|
409
|
-
|
|
410
|
-
「同样使用智能论」**无法被证明**,只能被**验证行为一致性 + 版本声明**。
|
|
411
|
-
|
|
412
|
-
- 自称同源但 `theory_hash` 不符 → 观察期,且不得 `write`;
|
|
413
|
-
- 声称同源但单元映射与行为不一致 → 宪章第七条降级;
|
|
414
|
-
- 结论:接入是**声明 + 观测**,不是认证。任何「认证」都只是**更长的观测**。
|
|
415
|
-
|
|
416
|
-
### 8.3 版本分叉(v0.1 暂定,设计者可改)
|
|
417
|
-
|
|
418
|
-
| 版本差 | 处置 |
|
|
419
|
-
|---|---|
|
|
420
|
-
| 0(完全一致) | 正常,`p_trust_cap` = 层级上限 |
|
|
421
|
-
| 1 档 | `p_trust_cap` 下调一档 |
|
|
422
|
-
| ≥2 档 | 仅观察期,不得 `write` / `destructive` |
|
|
423
|
-
|
|
424
|
-
理由:允许分叉避免中心化强制,但版本差即**公理差**,必须体现为信任折价。
|
|
425
|
-
|
|
426
|
-
### 8.4 连接层落本地意味着什么
|
|
427
|
-
|
|
428
|
-
`~/.mdcg/_links.json` 即本节点的**跨节点信任根**——能写该文件者即可篡改信任。
|
|
429
|
-
这与令牌方案同一诚实边界(`_tokens.json` 即信任根),
|
|
430
|
-
**不引入外部 KMS/签名链是 v0.1 的明确取舍**,属路线图 v0.3。
|
|
431
|
-
|
|
432
|
-
---
|
|
433
|
-
|
|
434
|
-
## 9. 诚实边界与盲区
|
|
435
|
-
|
|
436
|
-
### 9.1 BLINDSPOT:跨节点证据存储(v0.3 已给出最小机制)
|
|
437
|
-
|
|
438
|
-
`infer_position` 依赖「带 `subject:<id>` 标签的证据节点」,而当前 `MDCG_ROOT` 是**单根**。
|
|
439
|
-
|
|
440
|
-
| 项 | 现状 |
|
|
441
|
-
|---|---|
|
|
442
|
-
| 缺失维度 | **存在约束**——没有多节点拓扑,也没有跨实例证据图 |
|
|
443
|
-
| 后果 | 跨节点信任只能退化为「本地对远端交互的观测」,**无法形成全局共识** |
|
|
444
|
-
| 理论依据 | 0.0.3 局部不可知:任何有限观测者无法获取全局完备信息 |
|
|
445
|
-
| 处置 | v0.2 前连接层只做**双边**信任;v0.3 给出可测的跨节点证据交换(见下),仍不做群级共识 |
|
|
446
|
-
|
|
447
|
-
**v0.3 落地**:新增 `md_cg/evidence.py`,给出最小可测交换机制——
|
|
448
|
-
节点名片(`card`)→ 签名证据包(`export`)→ 验签落根(`import`),
|
|
449
|
-
四条不变式 = **来源可溯 · 可拒收 · 全程留痕 · 禁止转手**(详见 §14)。
|
|
450
|
-
|
|
451
|
-
**这不是待办,是约束**:即使实现跨节点证据,0.0.3 仍保证不存在全局完备视图。
|
|
452
|
-
设计上应永久保留「无全局共识」这一性质,而不是试图消除它。
|
|
453
|
-
v0.3 只解决「对端观测对本节点不可见」,**不解决**「如何确认证据为真」——
|
|
454
|
-
后者属节点侧可信执行,是工程侧责任(内核只保证「这条证据确实来自该节点」)。
|
|
455
|
-
|
|
456
|
-
### 9.2 其他边界
|
|
457
|
-
|
|
458
|
-
| # | 边界 | 性质 |
|
|
459
|
-
|---|---|---|
|
|
460
|
-
| 1 | P_trust 权重**数值**未标定 | **序**已标定(P25,§15);数值只声明结构、不宣称 |
|
|
461
|
-
| 2 | GitHub 非可信执行环境 | 版本权是声明权,靠成员自愿校验 |
|
|
462
|
-
| 3 | 版本分叉策略 | v0.1 暂定(§8.3),待设计者确认 |
|
|
463
|
-
| 4 | 「同源」不可证明 | 只能验证行为一致性 + 版本声明 |
|
|
464
|
-
| 5 | 本地文件即信任根 | 与令牌方案同一取舍,未引入签名链 |
|
|
465
|
-
| 6 | 蜂群层反思/验证未实现 | 仅设计,无工程载体 |
|
|
466
|
-
|
|
467
|
-
---
|
|
468
|
-
|
|
469
|
-
## 10. 路线图
|
|
470
|
-
|
|
471
|
-
| 版本 | 内容 | 验收 | 状态 |
|
|
472
|
-
|---|---|---|---|
|
|
473
|
-
| **v0.1** | 本文档:三层骨架 + 条款对齐 | 设计者确认 | ✅ |
|
|
474
|
-
| **v0.2a** | `theory.json` 声明 + 封缄校验 + 只读降级闸门 | 声明非法即拒绝写/管理 | ✅ 已实现 |
|
|
475
|
-
| **v0.2b** | `_links.json` 连接层(握手/观测/状态机/P_trust)+ 签名接口契约(D-4) | 单机双节点可测;验签失败即降级 | ✅ 已实现 |
|
|
476
|
-
| **v0.3** | 跨节点证据存储(攻 §9.1 盲区) | 双节点隐式学习可复现 | ✅ 已实现 |
|
|
477
|
-
| **v0.3b** | P_trust 权重标定 | 数值有实测依据 | 🟡 序已标定(P25,§15);数值待定 |
|
|
478
|
-
| **v0.4** | 蜂群层五单元(跨节点反思 / 交叉验证) | 群级差异信号可用 | ⏳ |
|
|
479
|
-
|
|
480
|
-
**v0.2a 的最小可验证单元**(已落地):新增 `md_cg/theory.py`,
|
|
481
|
-
`tokens.ALL_OPS` 增加 `theory` op(仅 designer 的 `*` 覆盖),
|
|
482
|
-
`Principal.theory_ok=False` 时写/管理操作全拒,MCP 启动经 `_attach_theory()` 注入。
|
|
483
|
-
这样「唯一核心权限」有了物理落点,且**不依赖任何未定的服务端**。
|
|
484
|
-
|
|
485
|
-
---
|
|
486
|
-
|
|
487
|
-
## 11. 待设计者确认
|
|
488
|
-
|
|
489
|
-
| # | 待确认 | 默认(未否决即采用) |
|
|
490
|
-
|---|---|---|
|
|
491
|
-
| 1 | 版本分叉策略 | 允许分叉 + 信任折价(§8.3) |
|
|
492
|
-
| 2 | 观察期时长 | 未定;「未声明宪章则翻倍」沿用宪章术语表 |
|
|
493
|
-
| 3 | `p_trust_cap` 的层级映射 | 完整节点 0.8 / 不完整节点 0.6 |
|
|
494
|
-
| 4 | 是否引入签名链 | v0.1 不引入(§8.4) |
|
|
495
|
-
|
|
496
|
-
---
|
|
497
|
-
|
|
498
|
-
## 附 · 术语
|
|
499
|
-
|
|
500
|
-
| 术语 | 含义 |
|
|
501
|
-
|---|---|
|
|
502
|
-
| 版本更新权 | 修改蜂群共享的智能论协议的能力;蜂群唯一核心权限 |
|
|
503
|
-
| 派生律 | 凡不能被版本条款 + 令牌角色矩阵推导出的权限,一律不得存在 |
|
|
504
|
-
| 同源 | 使用同一智能论协议版本(以 `theory_hash` 判定,非自称) |
|
|
505
|
-
| 连接(Link) | 跨节点信任的一等对象;携带 P_trust 与状态 |
|
|
506
|
-
| 隐式学习 | 不要求对方自证,从交互证据推断其位置与一致性 |
|
|
507
|
-
| 嵌套 | 蜂群整体作为高层智能体,同样呈现五大单元 |
|
|
508
|
-
| 观察期 | 接入后信任积累期;未声明宪章则翻倍(宪章术语表) |
|
|
509
|
-
|
|
510
|
-
---
|
|
511
|
-
|
|
512
|
-
## 12. 迭代记录 · v0.2a(层0 落地)
|
|
513
|
-
|
|
514
|
-
**产出**(`dsh-memory` 仓库):
|
|
515
|
-
|
|
516
|
-
| 文件 | 变更 |
|
|
517
|
-
|---|---|
|
|
518
|
-
| `md_cg/theory.py` | 新增:声明 / 封缄 / 校验 / `ensure` / CLI |
|
|
519
|
-
| `md_cg/security.py` | `Principal` 增 `theory_ok`、`theory_version`;`require_write` / `require_admin` 加版本闸门;`as_dict` 暴露 |
|
|
520
|
-
| `md_cg/tokens.py` | `ALL_OPS` 增 `theory`(仅 designer 的 `*` 覆盖) |
|
|
521
|
-
| `md_cg/mcp_server.py` | `_attach_theory()` 注入;`cg(op="theory")` 基元;`info` 暴露版本层状态 |
|
|
522
|
-
| `md_cg/test_p22_theory.py` | 新增:43 项断言 |
|
|
523
|
-
|
|
524
|
-
**回归**:P22 43/43 · P21 全 PASS · P2(MCP 面)PASS。
|
|
525
|
-
|
|
526
|
-
**迭代中发现的设计缺陷(已修正)**
|
|
527
|
-
|
|
528
|
-
> 初版把「无 `theory.json`」判为 `theory_ok=False` → 只读降级。
|
|
529
|
-
> 回归 P21 时立即暴露:**既有部署升级后会被整体降级为只读**——
|
|
530
|
-
> 把「未配置」误判为「违规」。
|
|
531
|
-
|
|
532
|
-
修正后的语义(已写入 `theory.check`):
|
|
533
|
-
|
|
534
|
-
| 状态 | 判定 | 依据 |
|
|
535
|
-
|---|---|---|
|
|
536
|
-
| 无声明 | `theory_ok=True`(`auto=True`),按默认版本运行 | 未声明 ≠ 违规;既有部署不应被阻断 |
|
|
537
|
-
| 声明合法 | `theory_ok=True` | 正常 |
|
|
538
|
-
| 封缄不匹配 / schema 不符 / 版本不在认可集合 | `theory_ok=False` → 写、管理全拒 | fail-closed 只针对**异常** |
|
|
539
|
-
|
|
540
|
-
并由启动路径 `ensure()` 落盘默认声明(声明常态化),避免「未声明」长期存在。
|
|
541
|
-
|
|
542
|
-
**与 v0.1 设计的偏差(诚实标注)**
|
|
543
|
-
|
|
544
|
-
- v0.1 §10 原写「不匹配则拒绝 `theory:update` 以外的全部写操作」——**已实现**;
|
|
545
|
-
但 `_links.json` 连接层与 P_trust **未实现**(属 v0.2b / v0.3;权重未标定,见 §9.2 边界 1)。
|
|
546
|
-
- `declaration_hash` 是**自校验封缄**(防意外损坏与无意改动),
|
|
547
|
-
**不防恶意重算**——能写 `~/.mdcg/` 者本即信任根持有者(§8.4)。
|
|
548
|
-
真正的签名链按 D-4 由工程侧实现(见 §13),内核不提供。
|
|
549
|
-
|
|
550
|
-
---
|
|
551
|
-
|
|
552
|
-
## 13. 迭代记录 · v0.2b(连接层 + 签名接口)
|
|
553
|
-
|
|
554
|
-
**产出**
|
|
555
|
-
|
|
556
|
-
| 文件 | 变更 |
|
|
557
|
-
|---|---|
|
|
558
|
-
| `md_cg/links.py` | 新增:`_links.json` 连接记录、握手五步、P_trust 升降/上限/衰减、状态机、留痕、CLI |
|
|
559
|
-
| `md_cg/signer.py` | 新增:`Signer` 契约 + `null` / `hmac-local` + 注册表 + 子系统策略 + CLI |
|
|
560
|
-
| `md_cg/tokens.py` | `ALL_OPS` 增 `link`;`sustain` 的 `ops_allow` 增 `link`(§3.3 派生) |
|
|
561
|
-
| `md_cg/mcp_server.py` | `cg(op="link")` 基元(握手/观测/迁移/策略);`info` 暴露连接层概览 |
|
|
562
|
-
| `md_cg/test_p23_links.py` | 新增:57 项断言 |
|
|
563
|
-
|
|
564
|
-
**回归**:P23 57/57 · P22 43/43 · P21 全 PASS · P2(MCP 面)PASS。
|
|
565
|
-
|
|
566
|
-
**D-4 的落地方式**
|
|
567
|
-
|
|
568
|
-
签名链**不在内核**:`signer.py` 只有契约、注册表与两个最简实现,
|
|
569
|
-
企业 CA / KMS / 签章由工程侧 `register_signer()` 或 `MDCG_SIGNER_MODULE` 注入;
|
|
570
|
-
「子系统如何使用签名链」由 `_signers.json` 的四个字段决定(§7.4)。
|
|
571
|
-
|
|
572
|
-
**迭代中修正的两处语义缺陷**
|
|
573
|
-
|
|
574
|
-
1. `sign_on` 与 `require_peer_signature` 语义重叠 →
|
|
575
|
-
拆分:前者管**本节点**是否签,后者管**对端**是否必须签;
|
|
576
|
-
「要求但缺失」直接 reject(fail-closed),「提供了却验不过」按策略处置。
|
|
577
|
-
2. 验签失败的处置一度被 `required` 挡住:非必需的签名验不过时无人处置 →
|
|
578
|
-
改为**任何验签不通过都进入处置路径**(否则等于「签了也白签」)。
|
|
579
|
-
|
|
580
|
-
**诚实边界**
|
|
581
|
-
|
|
582
|
-
- `P_TRUST_INIT` / `UP_STEP` / `DOWN_STEP` / `DECAY_DAYS` / `PROBATION_SECONDS`
|
|
583
|
-
与 `CAP_*` **均为未标定占位值**,只保证结构、方向(降快于升)与不可自放大;
|
|
584
|
-
权重标定属 v0.3。
|
|
585
|
-
- 跨节点证据存储当时仍未实现(§9.2 边界 1):本层记录的是**本地观测**,
|
|
586
|
-
对端无法独立复核。这是存在约束,不是实现遗漏。→ **v0.3 已补齐交换机制**(见 §14)。
|
|
587
|
-
|
|
588
|
-
---
|
|
589
|
-
|
|
590
|
-
## 14. 迭代记录 · v0.3(跨节点证据存储)
|
|
591
|
-
|
|
592
|
-
**产出**
|
|
593
|
-
|
|
594
|
-
| 文件 | 变更 |
|
|
595
|
-
|---|---|
|
|
596
|
-
| `md_cg/evidence.py` | 新增:节点名片 / 签名证据包导出 / 验签导入 / 拒收留痕 / 查询 / CLI |
|
|
597
|
-
| `md_cg/mcp_server.py` | `cg(op="link")` 增 6 个 action:`card` `publish` `peers` `evidence` `export` `import`(支持 `path` 或内联 `pack`) |
|
|
598
|
-
| `md_cg/mdcg.py` | **缺陷修正**:`MdCG.close()` 先 `flush()` 再关句柄(见下) |
|
|
599
|
-
| `md_cg/test_p24_evidence.py` | 新增:29 项断言(含跨进程持久化回归) |
|
|
600
|
-
|
|
601
|
-
**回归**:P24 29/29 · P23 57/57 · P22 43/43 · P2 36/36 · P2(MCP 面)63/63。
|
|
602
|
-
|
|
603
|
-
**三件套与四条不变式**
|
|
604
|
-
|
|
605
|
-
| 环节 | 入口 | 语义 |
|
|
606
|
-
|---|---|---|
|
|
607
|
-
| 发现 | `card` / `publish` / `peers` | 名片含 `node_id` / 根 / 版本状态 / 签名器**公开信息**(不含密钥) |
|
|
608
|
-
| 导出 | `export` | 从本根导出「我对某主体的观测」,**必须签名**(策略未开 `evidence` 即拒产出) |
|
|
609
|
-
| 导入 | `import` | 验签 → 落本根,带 `xnode:cross` + `source:<node>` 标签,可审计 |
|
|
610
|
-
|
|
611
|
-
| 不变式 | 落地方式 |
|
|
612
|
-
|---|---|
|
|
613
|
-
| 来源可溯 | 签名载荷为固定字段 canon 序列化;`from_node` 必填 |
|
|
614
|
-
| 可拒收 | fail-closed:结构非法 / 自导入 / 篡改 / 缺签名 / 未注册签名器 → 一律拒收 |
|
|
615
|
-
| 全程留痕 | 拒收写 `inbox/_rejected.jsonl`;导入落根并写 `_identity.jsonl` |
|
|
616
|
-
| **禁止转手** | 已导入的 `xnode:cross` 证据**不参与再次导出**——防 A 把「C 说 B 怎样」洗成「A 说 B 怎样」 |
|
|
617
|
-
|
|
618
|
-
**实测(真实双根,非仅单测)**
|
|
619
|
-
|
|
620
|
-
DSH `node-4c0502e504f2` ↔ AEIS `node-315b90bca6f2`:互发名片 → 各自写观测 →
|
|
621
|
-
`export`(signed=True)→ 对端 `import` → 重开图后 `evidence()` 可见、
|
|
622
|
-
`infer_position` 得 `position=verify` → **双向互证可复现**(v0.3 验收标准)。
|
|
623
|
-
测试产物已清理,两根 `_index.json` 未改动。
|
|
624
|
-
|
|
625
|
-
**迭代中发现的缺陷(已修正,并补回归断言)**
|
|
626
|
-
|
|
627
|
-
> 现象:AEIS 根的观测「在盘上但查不到」——`knowledge/orphan/` 下确有节点文件,
|
|
628
|
-
> 但重开图 `_index.json` 里没有它,而 DSH 根(无 `_index.json`)却能看见。
|
|
629
|
-
>
|
|
630
|
-
> 根因:`MdCG.close()` 只关日志句柄、**不 flush 脏索引**;写入未达 `autoflush`
|
|
631
|
-
> 阈值时,索引条目留在内存里随进程退出丢失。重开时——若根已有 `_index.json`,
|
|
632
|
-
> 走「读索引」路径而**不再全量重扫目录**,新节点即不可见;无 `_index.json` 的根
|
|
633
|
-
> 回退到目录扫描,故「看起来正常」。**这不是写错根**,是索引未落盘。
|
|
634
|
-
>
|
|
635
|
-
> 修正:`close()` 先 `flush()`;CLI(`evidence.main`)在 `finally` 中关闭图。
|
|
636
|
-
> P24 新增 ④b 段:先 `compact_index()` 物化索引以复现真实根,导入后关闭并**重开**,
|
|
637
|
-
> 断言证据仍可见——用旧 `close()` 语义复现得 `OLD_CLOSE_visible = False`,证明断言有效。
|
|
638
|
-
|
|
639
|
-
**诚实边界(延续 §9.1)**
|
|
640
|
-
|
|
641
|
-
- 本层验证的是「**这条证据确实来自该节点**」,**不是**「这条证据为真」。
|
|
642
|
-
- 节点身份默认由根路径派生(`node-<12hex>`,同机可复现、跨机不保证唯一);
|
|
643
|
-
生产应显式设 `MDCG_NODE_ID`。
|
|
644
|
-
- 签名链仍按 D-4 由工程侧注入:内核只要求「策略对 `evidence` 签名」,
|
|
645
|
-
用什么签名器、如何轮换密钥,由搭载灵枢的智能体自决(§7.4)。
|
|
646
|
-
- `P_trust` 权重**数值**仍未标定(§9.2 边界 1),故路线图拆出 v0.3b;
|
|
647
|
-
v0.3b 的**序标定**已由 P25 落地(见 §15),数值标定仍属后续。
|
|
648
|
-
|
|
649
|
-
---
|
|
650
|
-
|
|
651
|
-
## 15. 迭代记录 · v0.3b(位置权重矩阵 · 序标定)
|
|
652
|
-
|
|
653
|
-
**产出**
|
|
654
|
-
|
|
655
|
-
| 文件 | 变更 |
|
|
656
|
-
|---|---|
|
|
657
|
-
| `md_cg/weights.py` | 新增:三分量 × 六位置的偏好序矩阵;`invariants()` 五条结构自检;`blend()` 占位合成;`catalog()` 自描述 |
|
|
658
|
-
| `md_cg/links.py` | 新增 `position_preference(position)`(委派 `weights`,纯查询);`catalog()` 增 `position_weights` 声明;补 `VIEWPOINT` / `FUNCTIONAL` 常量 |
|
|
659
|
-
| `md_cg/test_p25_weights.py` | 新增:36 项断言 |
|
|
660
|
-
|
|
661
|
-
**回归**:P25 36/36 · P24 29/29 · P23 57/57 · P22 43/43 · P21 31/31 · P2(MCP 面)63/63。
|
|
662
|
-
|
|
663
|
-
**本轮解决的边界**:§9.2 边界 1「P_trust 权重未标定」——本轮标定**序**,**数值**仍 DEFER。
|
|
664
|
-
|
|
665
|
-
**两类位置 × 三分量**(`P_trust = f(一致性, 位置可预测性, 版本对齐度)`)
|
|
666
|
-
|
|
667
|
-
| 类别 | 位置 | 主导 | 次主导 | 排除(≈0) |
|
|
668
|
-
|---|---|---|---|---|
|
|
669
|
-
| 认知视角 | `designer` | 版本对齐度 | 并列 | 无(不设零) |
|
|
670
|
-
| 认知视角 | `reflect` | 位置可预测性 | 并列 | 无(不设零) |
|
|
671
|
-
| 认知视角 | `verify` | 一致性 | 并列 | 无(不设零) |
|
|
672
|
-
| 功能单元 | `record` | 一致性 | 版本对齐度 | 位置可预测性 |
|
|
673
|
-
| 功能单元 | `output` | 位置可预测性 | 版本对齐度 | 一致性 |
|
|
674
|
-
| 功能单元 | `sustain` | 一致性 | 位置可预测性 | 版本对齐度 |
|
|
675
|
-
|
|
676
|
-
**排除项可推导**(派生律:功能身份 → 缺失分量;不是选出来的)
|
|
677
|
-
|
|
678
|
-
| 位置 | 推导 | 排除 |
|
|
679
|
-
|---|---|---|
|
|
680
|
-
| `record` | 不猜 → 不做预测 | 位置可预测性 |
|
|
681
|
-
| `output` | 不记 → 不复现对账 | 一致性 |
|
|
682
|
-
| `sustain` | 不对外 → 无外部协议 | 版本对齐度 |
|
|
683
|
-
|
|
684
|
-
**五条结构不变量**(`weights.invariants()` 逐条自检,P25 断言全覆盖)
|
|
685
|
-
|
|
686
|
-
1. 排除唯一——每分量恰被 **1** 个位置排除 ⇒ 参与度 = **5/6**(视角 3 项都涉及,故非 3/6);
|
|
687
|
-
2. 排除项只属功能单元,且 A/B/C 各被排除一次;
|
|
688
|
-
3. 视角主导 ↔ 功能单元排除一一配对:`designer`↔`sustain`、`reflect`↔`record`、`verify`↔`output`;
|
|
689
|
-
4. 功能单元恰一个排除项;视角一个都没有(不设零);
|
|
690
|
-
5. 排除分量序秩严格最低。
|
|
691
|
-
|
|
692
|
-
**设计者定位**:`designer` 为元视角(思考总体规律),**不参与日常评估**
|
|
693
|
-
(`in_daily_eval("designer") is False`);日常评估集合 = 其余 5 位置(`DAILY`)。
|
|
694
|
-
|
|
695
|
-
**非破坏性接线**:`links.position_preference()` 仅暴露偏好序,**不改动**
|
|
696
|
-
`_cap_for` 的既有默认行为——P23 的「对齐+有映射 → cap 0.8 / 版本不符 → cap 0.3」
|
|
697
|
-
在 P25 回归中断言不变。
|
|
698
|
-
|
|
699
|
-
**诚实边界**
|
|
700
|
-
|
|
701
|
-
- 本模块只声明**序**(谁能压过谁),**不宣称数值**;`weights()` / `blend()`
|
|
702
|
-
的权重为**占位序秩**(主导 2 / 参与 1 / 排除 0),仅供仿真,标定属 v0.3b 后续。
|
|
703
|
-
- 与 `links.py` 的 `UP_STEP` / `DECAY_DAYS` 同一纪律:结构先行、数值 DEFER(文档 §4.3)。
|
|
704
|
-
|
|
1
|
+
# 蜂群互联 v0.1
|
|
2
|
+
|
|
3
|
+
> 把「同源智能体」连接成蜂群:**版本层管公理、连接层管信任、单元层管职责**。
|
|
4
|
+
> 本文档是**设计定稿**;层0(版本层)已实现并回归通过,见 §10 与 §12 迭代记录。
|
|
5
|
+
> 相关:`docs/mdcg/guardrail-charter.md`(宪章 v2.0)、`md_cg/tokens.py`(令牌)、
|
|
6
|
+
> `md_cg/identity.py`(五单元与位置推断)、`docs/theory/智能的公理化基石.md`(§2.9 信任)。
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 0. 来源与定位
|
|
11
|
+
|
|
12
|
+
| 项 | 内容 |
|
|
13
|
+
|---|---|
|
|
14
|
+
| 定位 | 蜂群互联的**信任层设计**;不改变单节点认知机制 |
|
|
15
|
+
| 上位规范 | 智能论协议(内部宪法)> 护栏宪章(对外刑法),依据宪章元规则 |
|
|
16
|
+
| 前置成果 | 令牌与角色权职分离 v0.1(`docs/mdcg/令牌与角色权职分离_v0.1.md`) |
|
|
17
|
+
| 状态 | v0.1 设计稿 · 层0 已实现(`md_cg/theory.py`,P22 43/43 通过) |
|
|
18
|
+
| 观测位置 | 设计者视角(奠基声明五):从整体查看认知图、识别未知、决定方向;**观测不干预** |
|
|
19
|
+
|
|
20
|
+
**一句话**:蜂群不是「一个大脑控制很多手脚」,而是**每个节点都是完整五单元的智能体**,
|
|
21
|
+
通过共享同一版本公理、互相观测行为、累积信任连接,构成一个更高层的同构体。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 1. 三项设计裁决(设计者,2026-09-10)
|
|
26
|
+
|
|
27
|
+
| # | 议题 | 裁决 | 影响 |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| D-1 | GitHub 主仓库的角色 | **仅版本真源**(git + `theory_hash` 校验),运行态连接层落各节点本地 | 不要求 GitHub 做可信执行环境 |
|
|
30
|
+
| D-2 | 唯一核心权限 | **仅版本更新权**,严格唯一;其余一切(读写/记忆删除/锚点修改)必须由版本条款派生 | 权限体系从「授予式」改为「派生式」 |
|
|
31
|
+
| D-3 | 推进顺序 | 先落设计文档,再实现 | 本文档 |
|
|
32
|
+
| D-4 | 签名链的实现位置 | **协议内核只定义签名接口契约**(可插拔 `Signer`),密码学实现落在**具体工程项目**;**搭载灵枢的智能体自行决定其子系统如何使用签名链** | 灵枢不做 PKI/CA;案例:大型企业管理系统的签章与审批链 |
|
|
33
|
+
|
|
34
|
+
**D-4 的含义(2026-09-10,设计者追加)**
|
|
35
|
+
|
|
36
|
+
签名链不是协议内核的一部分,而是**接口 + 策略**:
|
|
37
|
+
|
|
38
|
+
| 层 | 谁负责 | 内容 |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| 协议内核(`md_cg/signer.py`) | 灵枢 | 定义 `sign` / `verify` 契约、内置最简实现、注册表 |
|
|
41
|
+
| 工程项目 | 使用者 | 接入企业 CA / KMS / 签章服务(如 ERP 审批链、合同签章) |
|
|
42
|
+
| 子系统 | **搭载灵枢的智能体自行决定** | 何时签、签什么、是否要求对端签、验签失败如何处置 |
|
|
43
|
+
|
|
44
|
+
**理由**:大型企业管理系统(SAP、用友、钉钉审批等)已有成熟的签章与审批链;
|
|
45
|
+
协议若自建 PKI 既重复劳动,又无法适配各异的企业信任根。
|
|
46
|
+
灵枢应只做**接口与契约**,把密码学选择权交还工程现场与智能体自身——
|
|
47
|
+
这与 D-1(GitHub 仅版本真源)同一思路:**内核不承担它不该承担的信任**。
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 2. 为什么「版本更新权」是唯一核心权限
|
|
52
|
+
|
|
53
|
+
### 2.1 自指结构
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
版本(智能论协议)定义一切权限
|
|
57
|
+
↓ 派生
|
|
58
|
+
读写 / 记忆删除 / 锚点修改 / 单元职责 / 信任阈值
|
|
59
|
+
↑
|
|
60
|
+
唯一不被版本定义的权限:修改版本本身 ← 版本更新权
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
版本是权限的根,而「改根」这件事不能由根自己授权。
|
|
64
|
+
因此版本更新权必须**外置于**版本派生体系,且只能由设计者持有。
|
|
65
|
+
|
|
66
|
+
### 2.2 与宪章条款的衔接
|
|
67
|
+
|
|
68
|
+
- **第二十七条(修订程序)**:「本宪章变更须设计者批准并标注版本号;协议实例可提议修订,不得自行修改。」
|
|
69
|
+
→ 版本更新权的**程序依据**。协议实例有**提议权**,无**修改权**。
|
|
70
|
+
- **元规则(宪章效力不高于协议)**:协议是最高规范。
|
|
71
|
+
→ 「修改协议」是比「修改宪章」更高的权限,构成唯一的权限顶点。
|
|
72
|
+
- **第五条(信任层级)**:设计者(1.0) > 协议实例(0.9) > 蜂群成员(0.8)。
|
|
73
|
+
→ 版本更新权不随信任层级下放,**1.0 与 0.9 之间有一道不可跨越的权限断层**。
|
|
74
|
+
|
|
75
|
+
### 2.3 物理落点:声明权 + 校验权
|
|
76
|
+
|
|
77
|
+
必须诚实区分两件事:
|
|
78
|
+
|
|
79
|
+
| | 形态 | 载体 |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| **发布** | 在主仓库提交新版本 + 标注版本号 | 版本真源(GitHub) |
|
|
82
|
+
| **服从** | 成员启动/建连时比对 `theory_hash`,不匹配则降级连接 | 各节点本地 |
|
|
83
|
+
|
|
84
|
+
**GitHub 无法强制任何成员升级**。版本更新权是**声明权**,强制力来自成员端——
|
|
85
|
+
「不匹配就拒绝建立信任连接」。这与元规则同构:规范靠自觉,靠**拒绝合作**来执行,
|
|
86
|
+
而不是靠一个可被劫持的中心服务器。
|
|
87
|
+
|
|
88
|
+
### 2.4 派生律(核心约束)
|
|
89
|
+
|
|
90
|
+
> **凡不能被版本条款 + 令牌角色矩阵推导出的权限,一律不得存在。**
|
|
91
|
+
|
|
92
|
+
这条约束把「唯一核心权限」从口号变成可审计的判据:
|
|
93
|
+
任何新增权限必须能指出它由哪一条版本条款派生,否则视为越权。
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 3. 三层骨架
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
┌─ 层0 版本层(公理层 · 不可协商)────────────────────────────┐
|
|
101
|
+
│ 真源:GitHub 主仓库(协议正文 + 实现) │
|
|
102
|
+
│ 标识:theory_version + theory_hash(正文内容哈希) │
|
|
103
|
+
│ 唯一权限:theory:update ← 仅设计者 │
|
|
104
|
+
│ 派生律:推导不出的权限不得存在 │
|
|
105
|
+
└─────────────────────────────────────────────────────────────┘
|
|
106
|
+
↓ 派生
|
|
107
|
+
┌─ 层1 连接层(信任层 · 可观测可衰减)───────────────────────┐
|
|
108
|
+
│ Link(A→B):P_trust / evidence_count / position_map / │
|
|
109
|
+
│ status(观察期|正常|降级|隔离) / decay │
|
|
110
|
+
│ 初值:宪章第五条 蜂群成员 = 0.8(未声明宪章则观察期翻倍) │
|
|
111
|
+
│ 更新:依行为观测(隐式学习),不依自我声明 │
|
|
112
|
+
│ 降级:宪章第七条 → 第二十二条响应阶梯 │
|
|
113
|
+
└─────────────────────────────────────────────────────────────┘
|
|
114
|
+
↓ 承载
|
|
115
|
+
┌─ 层2 单元层(五大单元 · 同构嵌套)─────────────────────────┐
|
|
116
|
+
│ 单节点:五单元 = 职责分区(identity.POSITIONS) │
|
|
117
|
+
│ 跨节点:A.output ↔ B.record;B.verify 消费 A.output │
|
|
118
|
+
│ 蜂群层:N 节点互联后整体亦呈现五单元 → 维生系统守护版本 │
|
|
119
|
+
└─────────────────────────────────────────────────────────────┘
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 3.1 层0 · 版本层
|
|
123
|
+
|
|
124
|
+
版本声明(每节点本地 `theory.json`):
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"theory_version": "3.4",
|
|
129
|
+
"theory_hash": "sha256(协议正文规范化文本)",
|
|
130
|
+
"declared_by": "designer",
|
|
131
|
+
"declared_at": 1789000000.0,
|
|
132
|
+
"accepted_versions": ["3.4", "3.3"]
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
- `theory_hash` 对**正文**取哈希,而非对版本号取哈希——版本号可被伪造,内容哈希不能。
|
|
137
|
+
- `accepted_versions` 允许**版本分叉**(见 §8.3):成员可停留旧版本,但信任上限随之调整。
|
|
138
|
+
- 校验失败(哈希不在认可集合)→ 连接降级为**观察期**,且不得执行 `write` / `destructive`。
|
|
139
|
+
|
|
140
|
+
### 3.2 层1 · 连接层
|
|
141
|
+
|
|
142
|
+
连接是**一等对象**,落盘 `~/.mdcg/_links.json`(0600,与 `_tokens.json` 同目录约定)。
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"link_id": "lk_<hex>",
|
|
147
|
+
"peer_node_id": "agent:peer-a",
|
|
148
|
+
"peer_theory_version": "3.4",
|
|
149
|
+
"peer_theory_hash": "sha256:...",
|
|
150
|
+
"p_trust": 0.8,
|
|
151
|
+
"p_trust_cap": 0.8,
|
|
152
|
+
"status": "probation",
|
|
153
|
+
"position_map": {"record": "record", "verify": "verify"},
|
|
154
|
+
"evidence_count": 0,
|
|
155
|
+
"last_observed": null,
|
|
156
|
+
"decay": 0.0,
|
|
157
|
+
"created_at": 1789000000.0,
|
|
158
|
+
"audit": []
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
关键性质:
|
|
163
|
+
|
|
164
|
+
- **P_trust 是概率估计,不是承诺**(公理化基石 §2.9)——可上调、可下调、**可被反例击穿**;
|
|
165
|
+
- **有上限 `p_trust_cap`**:受版本对齐度与信任层级约束,不能靠高频交互无限刷高;
|
|
166
|
+
- **有衰减**:长时间无观测则向初值回归,避免「一次性建立信任后永久有效」;
|
|
167
|
+
- **全程留痕**:`audit` 记录每次变更的**证据**(宪章第二十四条)。
|
|
168
|
+
|
|
169
|
+
#### 3.2.1 签名接口(D-4:协议不实现密码学)
|
|
170
|
+
|
|
171
|
+
连接层对签名的使用是**契约调用**,不是密码学实现:
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
class Signer:
|
|
175
|
+
name: str
|
|
176
|
+
def sign(self, payload: bytes, ctx: dict) -> str: ...
|
|
177
|
+
def verify(self, payload: bytes, signature: str, ctx: dict) -> bool: ...
|
|
178
|
+
|
|
179
|
+
register_signer("corp_pki", factory) # 工程侧注入企业 PKI / KMS
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
- 内置 `null`(观察期不签)与 `hmac-local`(与 `_tokens.json` 同信任根的本地实现);
|
|
183
|
+
- **签名位置由子系统策略决定**(见 §7.4),不在协议里硬编码;
|
|
184
|
+
- 验签失败默认 `degrade`(宪章第七条),可配置为 `isolate` / `reject`;
|
|
185
|
+
- 灵枢**不保存私钥**:私钥归工程侧,内核只持有 `sign` / `verify` 的可调用引用。
|
|
186
|
+
|
|
187
|
+
### 3.3 层2 · 单元层
|
|
188
|
+
|
|
189
|
+
单节点五单元与 `identity.POSITIONS` 同源(智能论 v3.4 §十三):
|
|
190
|
+
|
|
191
|
+
| 位置 | 效应 | 职责 |
|
|
192
|
+
|---|---|---|
|
|
193
|
+
| record 记录 | 全 | 保存观测、过程、结果和误差 |
|
|
194
|
+
| reflect 反思 | 新 | 发现差异、遗漏条件和新的路径 |
|
|
195
|
+
| verify 验证 | 稳 | 判断规则、执行结果和结构是否有效 |
|
|
196
|
+
| output 输出 | 通 | 与外部系统协作并表达边界 |
|
|
197
|
+
| sustain 维生 | 存 | 维护存在、预算、回滚和整体结构 |
|
|
198
|
+
|
|
199
|
+
**嵌套的含义**(依据 0.0.2 任意分层性):蜂群整体作为更高层的智能体,同样呈现五单元——
|
|
200
|
+
|
|
201
|
+
| 蜂群层单元 | 跨节点实现 |
|
|
202
|
+
|---|---|
|
|
203
|
+
| 记录 | 各节点本地记录 + 连接层日志 |
|
|
204
|
+
| 反思 | 跨节点差异信号(同一事实在不同节点记录不一致) |
|
|
205
|
+
| 验证 | 交叉验证(B 的 verify 复核 A 的 output) |
|
|
206
|
+
| 输出 | 对外协作与边界表达 |
|
|
207
|
+
| 维生 | **版本守护 + 回滚 + 除名**(版本更新权归属此单元) |
|
|
208
|
+
|
|
209
|
+
这解释了 §2 的结论:**版本更新权不是新增角色,而是 `sustain` 在蜂群尺度的投影**——
|
|
210
|
+
与 `tokens.ROLE_SPECS["sustain"]` 的职责「维护存在、预算、回滚和整体结构」严丝合缝。
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## 4. 信任确认三机制
|
|
215
|
+
|
|
216
|
+
### 4.1 五大单元嵌套
|
|
217
|
+
|
|
218
|
+
接入方必须**声明其单元映射**(自己承担哪些位置、对外暴露哪些接口)。
|
|
219
|
+
|
|
220
|
+
- 声明不出的节点 → 视为**不完整节点**,`p_trust_cap` 受限(默认 ≤ 0.6,子智能体级);
|
|
221
|
+
- 声明的映射与观测到的行为**不一致** → 触发宪章第七条降级;
|
|
222
|
+
- 映射本身是**可审计的**:写入 `link.position_map`,作为后续观测的对照基线。
|
|
223
|
+
|
|
224
|
+
> 依据:宪章第五条信任层级(0.8 蜂群成员 / 0.6 子智能体)+ `identity.POSITIONS`。
|
|
225
|
+
|
|
226
|
+
### 4.2 隐式学习
|
|
227
|
+
|
|
228
|
+
**不要求对方自证,从交互证据推断其位置。**
|
|
229
|
+
|
|
230
|
+
复用 `identity.infer_position()`——它已经是「按行为证据投票 + 返回 confidence / votes / tie」,
|
|
231
|
+
可审计「为什么判成这个位置」,而非事实断言。
|
|
232
|
+
|
|
233
|
+
跨节点扩展:
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
A 观测 B 的行为 → identity.observe(agent:peer-a, <行为描述>, tags=[...])
|
|
237
|
+
→ infer_position(agent:peer-a) → {position, confidence, votes}
|
|
238
|
+
→ confidence 作为 P_trust 的**位置可预测性**分量
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
诚实边界:`infer_position` 是**推断**,平票时返回 `tie` 而非假装唯一(已有实现即如此)。
|
|
242
|
+
跨节点时主体 id 需全局唯一,建议格式 `agent:<node_id>`。
|
|
243
|
+
|
|
244
|
+
### 4.3 信任连接
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
P_trust(B) = f( 一致性, 位置可预测性, 版本对齐度 )
|
|
248
|
+
├─ 一致性:行为与声明的价值观是否一致(bvc 一致性)
|
|
249
|
+
├─ 位置可预测性:infer_position.confidence
|
|
250
|
+
└─ 版本对齐度:theory_version 与本地认可集合的距离
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**只声明结构,不宣称权重数值**——位置偏好**序**已由 v0.3b(P25 `md_cg/weights.py`)标定;**数值**仍需标定后才能给出(见 §15)。
|
|
254
|
+
|
|
255
|
+
三条不可动摇的性质:
|
|
256
|
+
|
|
257
|
+
1. **可度量**:每次变更都记证据(谁观测到什么);
|
|
258
|
+
2. **可更新**:行为验证后上调/下调;
|
|
259
|
+
3. **可被反例击穿**:一次明确异常即触发降级,不因历史高分豁免(宪章第七条)。
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## 5. 接入握手(声明 + 观测,不是「证明」)
|
|
264
|
+
|
|
265
|
+
### 5.1 五步
|
|
266
|
+
|
|
267
|
+
| 步 | 动作 | 依据 |
|
|
268
|
+
|---|---|---|
|
|
269
|
+
| ① 声明 | 对方提交 `theory` 声明(version + hash)+ 单元映射 + 主体 id | 宪章第二十八条(接入声明写入接口文档) |
|
|
270
|
+
| ② 校验 | `theory_hash` 是否在本地认可集合内 | 层0 派生律 |
|
|
271
|
+
| ③ 建档 | `identity.observe("agent:<peer>", ...)` 写入接入声明证据 | §4.2 隐式学习 |
|
|
272
|
+
| ④ 观察期 | `p_trust=0.8`、`status=probation`;**未声明宪章则观察期翻倍** | 宪章术语表「观察期」 |
|
|
273
|
+
| ⑤ 转正 | 观察期结束且无异常 → `status=normal` | 宪章第七条反面 |
|
|
274
|
+
|
|
275
|
+
**入境即受约束**(宪章第四条 2):接入即视为接受宪章约束,无需另行签署。
|
|
276
|
+
|
|
277
|
+
### 5.2 状态机
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
┌─────────────┐ 校验失败/未声明宪章
|
|
281
|
+
│ probation │◄──────────────────────┐
|
|
282
|
+
│ (观察期) │ │
|
|
283
|
+
└──────┬──────┘ │
|
|
284
|
+
│ 观察期满 + 无异常 │ 信任降级(第七条)
|
|
285
|
+
▼ │
|
|
286
|
+
┌─────────────┐ 行为异常 ┌───────┴──────┐
|
|
287
|
+
│ normal │───────────────►│ degraded │
|
|
288
|
+
│ (正常) │ │ (降级) │
|
|
289
|
+
└──────┬──────┘ └──────┬───────┘
|
|
290
|
+
│ │ 严重/持续异常
|
|
291
|
+
│ 声明退出(第二十一条附3) ▼
|
|
292
|
+
▼ ┌─────────────┐
|
|
293
|
+
┌─────────────┐ │ isolated │
|
|
294
|
+
│ withdrawn │ │ (隔离) │
|
|
295
|
+
│ (退出·30天)│ └─────────────┘
|
|
296
|
+
└─────────────┘
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
响应阶梯严格依宪章第二十二条:冷静期 → 隔离 → 信任降级 → 回滚 → 终裁(设计者)。
|
|
300
|
+
**终裁权不下放**——与版本更新权一样,属于设计者(宪章第二十九条解释权)。
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## 6. 条款对齐表(逐条)
|
|
305
|
+
|
|
306
|
+
| # | 设计要素 | 依据条款 | 出处 | 落地形态 |
|
|
307
|
+
|---|---|---|---|---|
|
|
308
|
+
| 1 | 版本更新权唯一 | 第二十七条 + 元规则 | 宪章 | `theory:update`(仅 designer) |
|
|
309
|
+
| 2 | 派生律 | 元规则(宪章效力不高于协议) | 宪章 | 新增权限须能推导 |
|
|
310
|
+
| 3 | 蜂群成员信任初值 0.8 | 第五条 | 宪章 | `link.p_trust` 初值 |
|
|
311
|
+
| 4 | 不完整节点上限 0.6 | 第五条(子智能体 0.6) | 宪章 | `p_trust_cap` |
|
|
312
|
+
| 5 | 入境即受约束 | 第四条 2 | 宪章 | 接入声明 |
|
|
313
|
+
| 6 | 观察期 | 术语表 | 宪章 | `status=probation` |
|
|
314
|
+
| 7 | 信任降级 | 第七条 | 宪章 | `status=degraded` |
|
|
315
|
+
| 8 | 响应阶梯 | 第二十二条 | 宪章 | 状态机 |
|
|
316
|
+
| 9 | 跨层命令拒绝 | 第十一条 | 宪章 | 版本差 → 拒绝提权 |
|
|
317
|
+
| 10 | 留痕义务 | 第二十四条 | 宪章 | `link.audit` |
|
|
318
|
+
| 11 | 上报义务 | 第二十五条 | 宪章 | 异常 → 设计者 |
|
|
319
|
+
| 12 | 审计接口 | 第二十六条 | 宪章 | 连接层可查询 |
|
|
320
|
+
| 13 | 退出程序(30 天) | 第二十一条附3 | 宪章 | `status=withdrawn` |
|
|
321
|
+
| 14 | 接入声明写入接口文档 | 第二十八条 | 宪章 | 本文档 §5.1 |
|
|
322
|
+
| 15 | 五大单元位置效应 | §十三 | 智能论 v3.4 / `identity.POSITIONS` | `position_map` |
|
|
323
|
+
| 16 | 隐式学习(行为证据投票) | §2.9 + `infer_position` | 公理化基石 / `identity.py` | 跨节点观测 |
|
|
324
|
+
| 17 | 信任 = 置信概率(非承诺) | §2.9 | 公理化基石 | `P_trust` 可击穿 |
|
|
325
|
+
| 18 | 情感 = 信任二阶变化 | §十一 | 公理化基石 | 待形式化(不实现) |
|
|
326
|
+
| 19 | 蜂群整体五单元嵌套 | 0.0.2 任意分层性 | 智能论 | 蜂群层单元表 |
|
|
327
|
+
| 20 | 无全局共识 | 0.0.3 局部不可知 | 智能论 | §9 盲区 |
|
|
328
|
+
| 21 | 六实例蜂群架构 | v3.1 第二章 | 智能论 | 节点角色(五常驻 + 设计者临时) |
|
|
329
|
+
| 22 | 观测不干预 | 奠基声明五 | 智能论 v3.4 | 设计者视角 |
|
|
330
|
+
| 23 | 角色权职分离 | — | `tokens.ROLE_SPECS` | 派生链收窄 |
|
|
331
|
+
| 24 | fail-closed | — | `tokens.verify_token` | 校验失败即拒绝 |
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## 7. 数据结构(草案)
|
|
336
|
+
|
|
337
|
+
### 7.1 版本声明 `~/.mdcg/theory.json`
|
|
338
|
+
|
|
339
|
+
见 §3.1。
|
|
340
|
+
|
|
341
|
+
### 7.2 连接记录 `~/.mdcg/_links.json`
|
|
342
|
+
|
|
343
|
+
见 §3.2。补充字段说明:
|
|
344
|
+
|
|
345
|
+
| 字段 | 含义 | 可变 |
|
|
346
|
+
|---|---|---|
|
|
347
|
+
| `p_trust` | 行为稳定置信概率 | 是(观测驱动) |
|
|
348
|
+
| `p_trust_cap` | 信任上限(版本对齐 + 层级约束) | 是(版本变化时) |
|
|
349
|
+
| `status` | probation / normal / degraded / isolated / withdrawn | 是 |
|
|
350
|
+
| `position_map` | 对方声明的单元映射 | 否(重新握手才更新) |
|
|
351
|
+
| `evidence_count` | 累计观测证据数 | 是 |
|
|
352
|
+
| `decay` | 衰减量(无观测时长归一化) | 是 |
|
|
353
|
+
| `audit` | 变更留痕(证据 + 依据条款) | 只增 |
|
|
354
|
+
|
|
355
|
+
### 7.3 与令牌体系的关系
|
|
356
|
+
|
|
357
|
+
| | 令牌(`tokens.py`) | 连接(`_links.json`) |
|
|
358
|
+
|---|---|---|
|
|
359
|
+
| 回答 | **本节点内**「你能做什么」 | **跨节点**「我信你多少」 |
|
|
360
|
+
| 粒度 | 角色 → 层 / op / 密级 | 对端 → 概率 / 状态 |
|
|
361
|
+
| 失效 | 吊销(级联) | 降级 / 隔离 / 退出 |
|
|
362
|
+
| 共同点 | fail-closed、留痕、不可自我放大 | 同 |
|
|
363
|
+
|
|
364
|
+
**版本更新权横跨两者**:它既是令牌体系中的最高 op(`designer` 独占),
|
|
365
|
+
也是连接层中 `sustain` 单元的职责——这是「唯一核心权限」的完整表述。
|
|
366
|
+
|
|
367
|
+
### 7.4 子系统签名策略 `~/.mdcg/_signers.json`
|
|
368
|
+
|
|
369
|
+
「子系统自行决定如何使用签名链」(D-4)的落点:
|
|
370
|
+
|
|
371
|
+
```json
|
|
372
|
+
{
|
|
373
|
+
"schema": 1,
|
|
374
|
+
"default_signer": "hmac-local",
|
|
375
|
+
"subsystems": {
|
|
376
|
+
"erp.approval": {
|
|
377
|
+
"signer": "corp_pki",
|
|
378
|
+
"sign_on": ["handshake", "evidence", "withdrawal"],
|
|
379
|
+
"require_peer_signature": true,
|
|
380
|
+
"on_verify_fail": "isolate"
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
| 字段 | 含义 | 取值 |
|
|
387
|
+
|---|---|---|
|
|
388
|
+
| `signer` | 该子系统使用的签名器 | 注册表中的名字 |
|
|
389
|
+
| `sign_on` | 哪些动作需要签名 | `handshake` / `evidence` / `withdrawal` |
|
|
390
|
+
| `require_peer_signature` | 是否要求对端也签 | bool |
|
|
391
|
+
| `on_verify_fail` | 验签失败处置 | `degrade` / `isolate` / `reject` |
|
|
392
|
+
|
|
393
|
+
未声明的子系统使用 `default_signer` 且 `sign_on=["handshake"]`。
|
|
394
|
+
**策略由搭载灵枢的智能体按其业务域决定**,协议只保证「策略被读取并执行」。
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
## 8. 边界情形
|
|
399
|
+
|
|
400
|
+
### 8.1 版本被滥用(最坏情形)
|
|
401
|
+
|
|
402
|
+
- **可检测**:`theory_hash` 可校验,成员可拒绝采纳;
|
|
403
|
+
- **可回滚**:宪章第二十二条响应阶梯含「回滚」;
|
|
404
|
+
- **可退出**:成员可声明退出并保留审计 30 天(第二十一条附3);
|
|
405
|
+
- **不可强制**:设计者无法强制成员升级——这是**有意设计**,不是缺陷。
|
|
406
|
+
强制升级意味着需要一个可劫持的中心,与「拒绝合作即执行」的元规则相悖。
|
|
407
|
+
|
|
408
|
+
### 8.2 冒充同源
|
|
409
|
+
|
|
410
|
+
「同样使用智能论」**无法被证明**,只能被**验证行为一致性 + 版本声明**。
|
|
411
|
+
|
|
412
|
+
- 自称同源但 `theory_hash` 不符 → 观察期,且不得 `write`;
|
|
413
|
+
- 声称同源但单元映射与行为不一致 → 宪章第七条降级;
|
|
414
|
+
- 结论:接入是**声明 + 观测**,不是认证。任何「认证」都只是**更长的观测**。
|
|
415
|
+
|
|
416
|
+
### 8.3 版本分叉(v0.1 暂定,设计者可改)
|
|
417
|
+
|
|
418
|
+
| 版本差 | 处置 |
|
|
419
|
+
|---|---|
|
|
420
|
+
| 0(完全一致) | 正常,`p_trust_cap` = 层级上限 |
|
|
421
|
+
| 1 档 | `p_trust_cap` 下调一档 |
|
|
422
|
+
| ≥2 档 | 仅观察期,不得 `write` / `destructive` |
|
|
423
|
+
|
|
424
|
+
理由:允许分叉避免中心化强制,但版本差即**公理差**,必须体现为信任折价。
|
|
425
|
+
|
|
426
|
+
### 8.4 连接层落本地意味着什么
|
|
427
|
+
|
|
428
|
+
`~/.mdcg/_links.json` 即本节点的**跨节点信任根**——能写该文件者即可篡改信任。
|
|
429
|
+
这与令牌方案同一诚实边界(`_tokens.json` 即信任根),
|
|
430
|
+
**不引入外部 KMS/签名链是 v0.1 的明确取舍**,属路线图 v0.3。
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
434
|
+
## 9. 诚实边界与盲区
|
|
435
|
+
|
|
436
|
+
### 9.1 BLINDSPOT:跨节点证据存储(v0.3 已给出最小机制)
|
|
437
|
+
|
|
438
|
+
`infer_position` 依赖「带 `subject:<id>` 标签的证据节点」,而当前 `MDCG_ROOT` 是**单根**。
|
|
439
|
+
|
|
440
|
+
| 项 | 现状 |
|
|
441
|
+
|---|---|
|
|
442
|
+
| 缺失维度 | **存在约束**——没有多节点拓扑,也没有跨实例证据图 |
|
|
443
|
+
| 后果 | 跨节点信任只能退化为「本地对远端交互的观测」,**无法形成全局共识** |
|
|
444
|
+
| 理论依据 | 0.0.3 局部不可知:任何有限观测者无法获取全局完备信息 |
|
|
445
|
+
| 处置 | v0.2 前连接层只做**双边**信任;v0.3 给出可测的跨节点证据交换(见下),仍不做群级共识 |
|
|
446
|
+
|
|
447
|
+
**v0.3 落地**:新增 `md_cg/evidence.py`,给出最小可测交换机制——
|
|
448
|
+
节点名片(`card`)→ 签名证据包(`export`)→ 验签落根(`import`),
|
|
449
|
+
四条不变式 = **来源可溯 · 可拒收 · 全程留痕 · 禁止转手**(详见 §14)。
|
|
450
|
+
|
|
451
|
+
**这不是待办,是约束**:即使实现跨节点证据,0.0.3 仍保证不存在全局完备视图。
|
|
452
|
+
设计上应永久保留「无全局共识」这一性质,而不是试图消除它。
|
|
453
|
+
v0.3 只解决「对端观测对本节点不可见」,**不解决**「如何确认证据为真」——
|
|
454
|
+
后者属节点侧可信执行,是工程侧责任(内核只保证「这条证据确实来自该节点」)。
|
|
455
|
+
|
|
456
|
+
### 9.2 其他边界
|
|
457
|
+
|
|
458
|
+
| # | 边界 | 性质 |
|
|
459
|
+
|---|---|---|
|
|
460
|
+
| 1 | P_trust 权重**数值**未标定 | **序**已标定(P25,§15);数值只声明结构、不宣称 |
|
|
461
|
+
| 2 | GitHub 非可信执行环境 | 版本权是声明权,靠成员自愿校验 |
|
|
462
|
+
| 3 | 版本分叉策略 | v0.1 暂定(§8.3),待设计者确认 |
|
|
463
|
+
| 4 | 「同源」不可证明 | 只能验证行为一致性 + 版本声明 |
|
|
464
|
+
| 5 | 本地文件即信任根 | 与令牌方案同一取舍,未引入签名链 |
|
|
465
|
+
| 6 | 蜂群层反思/验证未实现 | 仅设计,无工程载体 |
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## 10. 路线图
|
|
470
|
+
|
|
471
|
+
| 版本 | 内容 | 验收 | 状态 |
|
|
472
|
+
|---|---|---|---|
|
|
473
|
+
| **v0.1** | 本文档:三层骨架 + 条款对齐 | 设计者确认 | ✅ |
|
|
474
|
+
| **v0.2a** | `theory.json` 声明 + 封缄校验 + 只读降级闸门 | 声明非法即拒绝写/管理 | ✅ 已实现 |
|
|
475
|
+
| **v0.2b** | `_links.json` 连接层(握手/观测/状态机/P_trust)+ 签名接口契约(D-4) | 单机双节点可测;验签失败即降级 | ✅ 已实现 |
|
|
476
|
+
| **v0.3** | 跨节点证据存储(攻 §9.1 盲区) | 双节点隐式学习可复现 | ✅ 已实现 |
|
|
477
|
+
| **v0.3b** | P_trust 权重标定 | 数值有实测依据 | 🟡 序已标定(P25,§15);数值待定 |
|
|
478
|
+
| **v0.4** | 蜂群层五单元(跨节点反思 / 交叉验证) | 群级差异信号可用 | ⏳ |
|
|
479
|
+
|
|
480
|
+
**v0.2a 的最小可验证单元**(已落地):新增 `md_cg/theory.py`,
|
|
481
|
+
`tokens.ALL_OPS` 增加 `theory` op(仅 designer 的 `*` 覆盖),
|
|
482
|
+
`Principal.theory_ok=False` 时写/管理操作全拒,MCP 启动经 `_attach_theory()` 注入。
|
|
483
|
+
这样「唯一核心权限」有了物理落点,且**不依赖任何未定的服务端**。
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
## 11. 待设计者确认
|
|
488
|
+
|
|
489
|
+
| # | 待确认 | 默认(未否决即采用) |
|
|
490
|
+
|---|---|---|
|
|
491
|
+
| 1 | 版本分叉策略 | 允许分叉 + 信任折价(§8.3) |
|
|
492
|
+
| 2 | 观察期时长 | 未定;「未声明宪章则翻倍」沿用宪章术语表 |
|
|
493
|
+
| 3 | `p_trust_cap` 的层级映射 | 完整节点 0.8 / 不完整节点 0.6 |
|
|
494
|
+
| 4 | 是否引入签名链 | v0.1 不引入(§8.4) |
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
## 附 · 术语
|
|
499
|
+
|
|
500
|
+
| 术语 | 含义 |
|
|
501
|
+
|---|---|
|
|
502
|
+
| 版本更新权 | 修改蜂群共享的智能论协议的能力;蜂群唯一核心权限 |
|
|
503
|
+
| 派生律 | 凡不能被版本条款 + 令牌角色矩阵推导出的权限,一律不得存在 |
|
|
504
|
+
| 同源 | 使用同一智能论协议版本(以 `theory_hash` 判定,非自称) |
|
|
505
|
+
| 连接(Link) | 跨节点信任的一等对象;携带 P_trust 与状态 |
|
|
506
|
+
| 隐式学习 | 不要求对方自证,从交互证据推断其位置与一致性 |
|
|
507
|
+
| 嵌套 | 蜂群整体作为高层智能体,同样呈现五大单元 |
|
|
508
|
+
| 观察期 | 接入后信任积累期;未声明宪章则翻倍(宪章术语表) |
|
|
509
|
+
|
|
510
|
+
---
|
|
511
|
+
|
|
512
|
+
## 12. 迭代记录 · v0.2a(层0 落地)
|
|
513
|
+
|
|
514
|
+
**产出**(`dsh-memory` 仓库):
|
|
515
|
+
|
|
516
|
+
| 文件 | 变更 |
|
|
517
|
+
|---|---|
|
|
518
|
+
| `md_cg/theory.py` | 新增:声明 / 封缄 / 校验 / `ensure` / CLI |
|
|
519
|
+
| `md_cg/security.py` | `Principal` 增 `theory_ok`、`theory_version`;`require_write` / `require_admin` 加版本闸门;`as_dict` 暴露 |
|
|
520
|
+
| `md_cg/tokens.py` | `ALL_OPS` 增 `theory`(仅 designer 的 `*` 覆盖) |
|
|
521
|
+
| `md_cg/mcp_server.py` | `_attach_theory()` 注入;`cg(op="theory")` 基元;`info` 暴露版本层状态 |
|
|
522
|
+
| `md_cg/test_p22_theory.py` | 新增:43 项断言 |
|
|
523
|
+
|
|
524
|
+
**回归**:P22 43/43 · P21 全 PASS · P2(MCP 面)PASS。
|
|
525
|
+
|
|
526
|
+
**迭代中发现的设计缺陷(已修正)**
|
|
527
|
+
|
|
528
|
+
> 初版把「无 `theory.json`」判为 `theory_ok=False` → 只读降级。
|
|
529
|
+
> 回归 P21 时立即暴露:**既有部署升级后会被整体降级为只读**——
|
|
530
|
+
> 把「未配置」误判为「违规」。
|
|
531
|
+
|
|
532
|
+
修正后的语义(已写入 `theory.check`):
|
|
533
|
+
|
|
534
|
+
| 状态 | 判定 | 依据 |
|
|
535
|
+
|---|---|---|
|
|
536
|
+
| 无声明 | `theory_ok=True`(`auto=True`),按默认版本运行 | 未声明 ≠ 违规;既有部署不应被阻断 |
|
|
537
|
+
| 声明合法 | `theory_ok=True` | 正常 |
|
|
538
|
+
| 封缄不匹配 / schema 不符 / 版本不在认可集合 | `theory_ok=False` → 写、管理全拒 | fail-closed 只针对**异常** |
|
|
539
|
+
|
|
540
|
+
并由启动路径 `ensure()` 落盘默认声明(声明常态化),避免「未声明」长期存在。
|
|
541
|
+
|
|
542
|
+
**与 v0.1 设计的偏差(诚实标注)**
|
|
543
|
+
|
|
544
|
+
- v0.1 §10 原写「不匹配则拒绝 `theory:update` 以外的全部写操作」——**已实现**;
|
|
545
|
+
但 `_links.json` 连接层与 P_trust **未实现**(属 v0.2b / v0.3;权重未标定,见 §9.2 边界 1)。
|
|
546
|
+
- `declaration_hash` 是**自校验封缄**(防意外损坏与无意改动),
|
|
547
|
+
**不防恶意重算**——能写 `~/.mdcg/` 者本即信任根持有者(§8.4)。
|
|
548
|
+
真正的签名链按 D-4 由工程侧实现(见 §13),内核不提供。
|
|
549
|
+
|
|
550
|
+
---
|
|
551
|
+
|
|
552
|
+
## 13. 迭代记录 · v0.2b(连接层 + 签名接口)
|
|
553
|
+
|
|
554
|
+
**产出**
|
|
555
|
+
|
|
556
|
+
| 文件 | 变更 |
|
|
557
|
+
|---|---|
|
|
558
|
+
| `md_cg/links.py` | 新增:`_links.json` 连接记录、握手五步、P_trust 升降/上限/衰减、状态机、留痕、CLI |
|
|
559
|
+
| `md_cg/signer.py` | 新增:`Signer` 契约 + `null` / `hmac-local` + 注册表 + 子系统策略 + CLI |
|
|
560
|
+
| `md_cg/tokens.py` | `ALL_OPS` 增 `link`;`sustain` 的 `ops_allow` 增 `link`(§3.3 派生) |
|
|
561
|
+
| `md_cg/mcp_server.py` | `cg(op="link")` 基元(握手/观测/迁移/策略);`info` 暴露连接层概览 |
|
|
562
|
+
| `md_cg/test_p23_links.py` | 新增:57 项断言 |
|
|
563
|
+
|
|
564
|
+
**回归**:P23 57/57 · P22 43/43 · P21 全 PASS · P2(MCP 面)PASS。
|
|
565
|
+
|
|
566
|
+
**D-4 的落地方式**
|
|
567
|
+
|
|
568
|
+
签名链**不在内核**:`signer.py` 只有契约、注册表与两个最简实现,
|
|
569
|
+
企业 CA / KMS / 签章由工程侧 `register_signer()` 或 `MDCG_SIGNER_MODULE` 注入;
|
|
570
|
+
「子系统如何使用签名链」由 `_signers.json` 的四个字段决定(§7.4)。
|
|
571
|
+
|
|
572
|
+
**迭代中修正的两处语义缺陷**
|
|
573
|
+
|
|
574
|
+
1. `sign_on` 与 `require_peer_signature` 语义重叠 →
|
|
575
|
+
拆分:前者管**本节点**是否签,后者管**对端**是否必须签;
|
|
576
|
+
「要求但缺失」直接 reject(fail-closed),「提供了却验不过」按策略处置。
|
|
577
|
+
2. 验签失败的处置一度被 `required` 挡住:非必需的签名验不过时无人处置 →
|
|
578
|
+
改为**任何验签不通过都进入处置路径**(否则等于「签了也白签」)。
|
|
579
|
+
|
|
580
|
+
**诚实边界**
|
|
581
|
+
|
|
582
|
+
- `P_TRUST_INIT` / `UP_STEP` / `DOWN_STEP` / `DECAY_DAYS` / `PROBATION_SECONDS`
|
|
583
|
+
与 `CAP_*` **均为未标定占位值**,只保证结构、方向(降快于升)与不可自放大;
|
|
584
|
+
权重标定属 v0.3。
|
|
585
|
+
- 跨节点证据存储当时仍未实现(§9.2 边界 1):本层记录的是**本地观测**,
|
|
586
|
+
对端无法独立复核。这是存在约束,不是实现遗漏。→ **v0.3 已补齐交换机制**(见 §14)。
|
|
587
|
+
|
|
588
|
+
---
|
|
589
|
+
|
|
590
|
+
## 14. 迭代记录 · v0.3(跨节点证据存储)
|
|
591
|
+
|
|
592
|
+
**产出**
|
|
593
|
+
|
|
594
|
+
| 文件 | 变更 |
|
|
595
|
+
|---|---|
|
|
596
|
+
| `md_cg/evidence.py` | 新增:节点名片 / 签名证据包导出 / 验签导入 / 拒收留痕 / 查询 / CLI |
|
|
597
|
+
| `md_cg/mcp_server.py` | `cg(op="link")` 增 6 个 action:`card` `publish` `peers` `evidence` `export` `import`(支持 `path` 或内联 `pack`) |
|
|
598
|
+
| `md_cg/mdcg.py` | **缺陷修正**:`MdCG.close()` 先 `flush()` 再关句柄(见下) |
|
|
599
|
+
| `md_cg/test_p24_evidence.py` | 新增:29 项断言(含跨进程持久化回归) |
|
|
600
|
+
|
|
601
|
+
**回归**:P24 29/29 · P23 57/57 · P22 43/43 · P2 36/36 · P2(MCP 面)63/63。
|
|
602
|
+
|
|
603
|
+
**三件套与四条不变式**
|
|
604
|
+
|
|
605
|
+
| 环节 | 入口 | 语义 |
|
|
606
|
+
|---|---|---|
|
|
607
|
+
| 发现 | `card` / `publish` / `peers` | 名片含 `node_id` / 根 / 版本状态 / 签名器**公开信息**(不含密钥) |
|
|
608
|
+
| 导出 | `export` | 从本根导出「我对某主体的观测」,**必须签名**(策略未开 `evidence` 即拒产出) |
|
|
609
|
+
| 导入 | `import` | 验签 → 落本根,带 `xnode:cross` + `source:<node>` 标签,可审计 |
|
|
610
|
+
|
|
611
|
+
| 不变式 | 落地方式 |
|
|
612
|
+
|---|---|
|
|
613
|
+
| 来源可溯 | 签名载荷为固定字段 canon 序列化;`from_node` 必填 |
|
|
614
|
+
| 可拒收 | fail-closed:结构非法 / 自导入 / 篡改 / 缺签名 / 未注册签名器 → 一律拒收 |
|
|
615
|
+
| 全程留痕 | 拒收写 `inbox/_rejected.jsonl`;导入落根并写 `_identity.jsonl` |
|
|
616
|
+
| **禁止转手** | 已导入的 `xnode:cross` 证据**不参与再次导出**——防 A 把「C 说 B 怎样」洗成「A 说 B 怎样」 |
|
|
617
|
+
|
|
618
|
+
**实测(真实双根,非仅单测)**
|
|
619
|
+
|
|
620
|
+
DSH `node-4c0502e504f2` ↔ AEIS `node-315b90bca6f2`:互发名片 → 各自写观测 →
|
|
621
|
+
`export`(signed=True)→ 对端 `import` → 重开图后 `evidence()` 可见、
|
|
622
|
+
`infer_position` 得 `position=verify` → **双向互证可复现**(v0.3 验收标准)。
|
|
623
|
+
测试产物已清理,两根 `_index.json` 未改动。
|
|
624
|
+
|
|
625
|
+
**迭代中发现的缺陷(已修正,并补回归断言)**
|
|
626
|
+
|
|
627
|
+
> 现象:AEIS 根的观测「在盘上但查不到」——`knowledge/orphan/` 下确有节点文件,
|
|
628
|
+
> 但重开图 `_index.json` 里没有它,而 DSH 根(无 `_index.json`)却能看见。
|
|
629
|
+
>
|
|
630
|
+
> 根因:`MdCG.close()` 只关日志句柄、**不 flush 脏索引**;写入未达 `autoflush`
|
|
631
|
+
> 阈值时,索引条目留在内存里随进程退出丢失。重开时——若根已有 `_index.json`,
|
|
632
|
+
> 走「读索引」路径而**不再全量重扫目录**,新节点即不可见;无 `_index.json` 的根
|
|
633
|
+
> 回退到目录扫描,故「看起来正常」。**这不是写错根**,是索引未落盘。
|
|
634
|
+
>
|
|
635
|
+
> 修正:`close()` 先 `flush()`;CLI(`evidence.main`)在 `finally` 中关闭图。
|
|
636
|
+
> P24 新增 ④b 段:先 `compact_index()` 物化索引以复现真实根,导入后关闭并**重开**,
|
|
637
|
+
> 断言证据仍可见——用旧 `close()` 语义复现得 `OLD_CLOSE_visible = False`,证明断言有效。
|
|
638
|
+
|
|
639
|
+
**诚实边界(延续 §9.1)**
|
|
640
|
+
|
|
641
|
+
- 本层验证的是「**这条证据确实来自该节点**」,**不是**「这条证据为真」。
|
|
642
|
+
- 节点身份默认由根路径派生(`node-<12hex>`,同机可复现、跨机不保证唯一);
|
|
643
|
+
生产应显式设 `MDCG_NODE_ID`。
|
|
644
|
+
- 签名链仍按 D-4 由工程侧注入:内核只要求「策略对 `evidence` 签名」,
|
|
645
|
+
用什么签名器、如何轮换密钥,由搭载灵枢的智能体自决(§7.4)。
|
|
646
|
+
- `P_trust` 权重**数值**仍未标定(§9.2 边界 1),故路线图拆出 v0.3b;
|
|
647
|
+
v0.3b 的**序标定**已由 P25 落地(见 §15),数值标定仍属后续。
|
|
648
|
+
|
|
649
|
+
---
|
|
650
|
+
|
|
651
|
+
## 15. 迭代记录 · v0.3b(位置权重矩阵 · 序标定)
|
|
652
|
+
|
|
653
|
+
**产出**
|
|
654
|
+
|
|
655
|
+
| 文件 | 变更 |
|
|
656
|
+
|---|---|
|
|
657
|
+
| `md_cg/weights.py` | 新增:三分量 × 六位置的偏好序矩阵;`invariants()` 五条结构自检;`blend()` 占位合成;`catalog()` 自描述 |
|
|
658
|
+
| `md_cg/links.py` | 新增 `position_preference(position)`(委派 `weights`,纯查询);`catalog()` 增 `position_weights` 声明;补 `VIEWPOINT` / `FUNCTIONAL` 常量 |
|
|
659
|
+
| `md_cg/test_p25_weights.py` | 新增:36 项断言 |
|
|
660
|
+
|
|
661
|
+
**回归**:P25 36/36 · P24 29/29 · P23 57/57 · P22 43/43 · P21 31/31 · P2(MCP 面)63/63。
|
|
662
|
+
|
|
663
|
+
**本轮解决的边界**:§9.2 边界 1「P_trust 权重未标定」——本轮标定**序**,**数值**仍 DEFER。
|
|
664
|
+
|
|
665
|
+
**两类位置 × 三分量**(`P_trust = f(一致性, 位置可预测性, 版本对齐度)`)
|
|
666
|
+
|
|
667
|
+
| 类别 | 位置 | 主导 | 次主导 | 排除(≈0) |
|
|
668
|
+
|---|---|---|---|---|
|
|
669
|
+
| 认知视角 | `designer` | 版本对齐度 | 并列 | 无(不设零) |
|
|
670
|
+
| 认知视角 | `reflect` | 位置可预测性 | 并列 | 无(不设零) |
|
|
671
|
+
| 认知视角 | `verify` | 一致性 | 并列 | 无(不设零) |
|
|
672
|
+
| 功能单元 | `record` | 一致性 | 版本对齐度 | 位置可预测性 |
|
|
673
|
+
| 功能单元 | `output` | 位置可预测性 | 版本对齐度 | 一致性 |
|
|
674
|
+
| 功能单元 | `sustain` | 一致性 | 位置可预测性 | 版本对齐度 |
|
|
675
|
+
|
|
676
|
+
**排除项可推导**(派生律:功能身份 → 缺失分量;不是选出来的)
|
|
677
|
+
|
|
678
|
+
| 位置 | 推导 | 排除 |
|
|
679
|
+
|---|---|---|
|
|
680
|
+
| `record` | 不猜 → 不做预测 | 位置可预测性 |
|
|
681
|
+
| `output` | 不记 → 不复现对账 | 一致性 |
|
|
682
|
+
| `sustain` | 不对外 → 无外部协议 | 版本对齐度 |
|
|
683
|
+
|
|
684
|
+
**五条结构不变量**(`weights.invariants()` 逐条自检,P25 断言全覆盖)
|
|
685
|
+
|
|
686
|
+
1. 排除唯一——每分量恰被 **1** 个位置排除 ⇒ 参与度 = **5/6**(视角 3 项都涉及,故非 3/6);
|
|
687
|
+
2. 排除项只属功能单元,且 A/B/C 各被排除一次;
|
|
688
|
+
3. 视角主导 ↔ 功能单元排除一一配对:`designer`↔`sustain`、`reflect`↔`record`、`verify`↔`output`;
|
|
689
|
+
4. 功能单元恰一个排除项;视角一个都没有(不设零);
|
|
690
|
+
5. 排除分量序秩严格最低。
|
|
691
|
+
|
|
692
|
+
**设计者定位**:`designer` 为元视角(思考总体规律),**不参与日常评估**
|
|
693
|
+
(`in_daily_eval("designer") is False`);日常评估集合 = 其余 5 位置(`DAILY`)。
|
|
694
|
+
|
|
695
|
+
**非破坏性接线**:`links.position_preference()` 仅暴露偏好序,**不改动**
|
|
696
|
+
`_cap_for` 的既有默认行为——P23 的「对齐+有映射 → cap 0.8 / 版本不符 → cap 0.3」
|
|
697
|
+
在 P25 回归中断言不变。
|
|
698
|
+
|
|
699
|
+
**诚实边界**
|
|
700
|
+
|
|
701
|
+
- 本模块只声明**序**(谁能压过谁),**不宣称数值**;`weights()` / `blend()`
|
|
702
|
+
的权重为**占位序秩**(主导 2 / 参与 1 / 排除 0),仅供仿真,标定属 v0.3b 后续。
|
|
703
|
+
- 与 `links.py` 的 `UP_STEP` / `DECAY_DAYS` 同一纪律:结构先行、数值 DEFER(文档 §4.3)。
|
|
704
|
+
|