@furongjun1999/dsh-memory 0.4.7 → 0.4.9
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 +130 -47
- package/codebuddy/CODEBUDDY.md +21 -10
- package/codebuddy/README.md +13 -1
- package/codebuddy/mcp.json +9 -0
- 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 -0
- package/docs/Pi/345/217/257/345/255/246/344/271/240/344/274/230/347/202/271_/347/201/265/346/236/242/345/244/247/350/204/221/346/224/271/350/277/233/344/272/244/346/216/245_20260915.md +144 -0
- package/docs/README.md +111 -0
- package/docs/discipline/harnesses.yaml +226 -152
- package/docs/discipline/templates/full.md.tmpl +61 -58
- package/docs/eval//347/254/254/344/270/211/346/226/271/351/252/214/350/257/201/346/212/245/345/221/212_LoCoMo_/347/201/265/346/236/242_.md +127 -0
- package/docs/eval//347/254/254/344/270/211/346/226/271/351/252/214/350/257/201/346/212/245/345/221/212_LoCoMo_/347/201/265/346/236/242_.png +0 -0
- package/docs/eval//347/254/254/344/270/211/346/226/271/351/252/214/350/257/201/346/212/245/345/221/212_/347/201/265/346/236/242_vs_dejavu_/347/273/237/344/270/200/350/257/204/345/210/206_v7.md +202 -0
- package/docs/experiments/linkref_backfill/candidates_20260917.json +726 -0
- package/docs/experiments/linkref_backfill/candidates_internal_20260917.json +602 -0
- package/docs/experiments/linkref_backfill/candidates_internal_v2.json +603 -0
- package/docs/experiments/linkref_backfill/candidates_secret_20260917.json +884 -0
- package/docs/experiments/linkref_backfill/candidates_secret_v2.json +789 -0
- package/docs/experiments/m4-role-probe/census.py +86 -0
- package/docs/experiments/m4-role-probe/probe.py +89 -0
- package/docs/experiments/mapped_confidence/bench_mapped_conf.py +216 -0
- package/docs/experiments/mapped_confidence/post_check.py +75 -0
- package/docs/experiments/mapped_confidence/repro_thirdparty_tol.py +83 -0
- package/docs/experiments/mapped_confidence/result_mapped_conf.json +215 -0
- package/docs/hive//345/244/232/347/253/257harness/351/200/232/344/277/241/345/245/221/347/272/246_v0.1.md +42 -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 -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 -0
- package/docs/hive//347/234/237/345/256/236/345/272/223/347/253/257/345/210/260/347/253/257/345/256/236/346/265/213_S1b/344/270/216/345/217/254/345/233/236/346/235/203/350/241/241_v0.1.md +57 -0
- package/docs/hive//347/234/237/345/256/236/345/272/223/347/253/257/345/210/260/347/253/257/345/256/236/346/265/213_S7/345/200/222/346/216/222/345/200/231/351/200/211/345/261/202_v0.1.md +126 -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 +503 -0
- package/docs/{ → hive/}/350/234/202/345/267/242/345/267/245/344/275/234/350/256/260/345/277/206_/351/241/271/347/233/256/350/256/241/345/210/222.md +14 -2
- package/docs/mdcg/D_meta_/345/267/245/347/250/213/345/214/226/346/226/271/346/241/210_v0.2.md +216 -0
- package/docs/{README → mdcg/README}/350/257/246/347/273/206/347/211/210_v0.4.5.md +631 -625
- package/docs/{ → mdcg/}/344/270/273/344/273/243/347/220/206/345/255/220/344/273/243/347/220/206/350/256/260/345/277/206/346/236/266/346/236/204/350/256/276/350/256/241.md +1 -1
- package/docs/mdcg//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_/345/245/221/347/272/246_v0.1.md +82 -0
- 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 -0
- 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 +263 -0
- package/docs/{ → mdcg/}/345/215/225/345/205/203/350/207/252/346/210/221/351/224/232/347/202/271_/347/263/273/347/273/237/346/217/220/347/244/272/350/257/215/346/240/207/345/207/206_v0.3.md +1 -1
- package/docs/mdcg//345/255/220/344/273/243/347/220/206/351/205/215/347/275/256/346/240/207/345/207/206_v0.5.md +236 -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 +2 -2
- package/docs/{ → mdcg/}/347/201/265/346/236/242/344/270/211/345/261/202/346/213/206/345/210/206/350/247/204/345/210/222_v0.1.md +181 -181
- 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 -0
- package/docs/mdcg//347/216/257/344/272/214_/347/231/275/347/256/261/345/241/253/345/205/205/346/265/201/346/260/264/347/272/277_v0.1.md +31 -0
- package/docs/{ → mdcg/}/347/274/272/345/217/243/345/215/225_P0/346/224/266/345/217/243_v0.1.md +2 -2
- package/docs/{ → mdcg/}/350/256/244/347/237/245/345/233/276_G4-G8/347/274/272/345/217/243/350/243/201/345/256/232/345/215/225_v0.1.md +1 -1
- package/docs/{ → mdcg/}/350/256/244/347/237/245/345/233/276_/347/264/242/345/274/225/344/270/216/345/267/245/347/250/213/350/247/204/350/214/203/345/214/226_/350/256/241/345/210/222_v0.1.md +4 -4
- package/docs/{ → mdcg/}/350/256/260/345/277/206/346/223/215/344/275/234/347/263/273/347/273/237_MdCGOS/344/270/216MCP/346/216/245/345/205/245_v0.1.md +2 -2
- package/docs/mdcg//350/267/250/347/253/257/351/252/214/350/257/201/344/270/216/345/220/214/346/255/245/345/215/217/350/256/256_v0.1.md +93 -0
- package/docs/plans/GridWorld/346/234/200/345/260/217/351/227/255/347/216/257/350/247/204/346/240/274_v0.1.md +176 -0
- package/docs/{ → swarm/}/350/234/202/347/276/244/344/272/222/350/201/224_v0.1.md +3 -3
- package/docs/swarm//350/234/202/347/276/244/345/220/214/351/224/231/346/243/200/346/265/213/345/256/236/351/252/214/345/215/217/350/256/256_v0.1.md +242 -0
- package/docs/theory//345/215/225/347/272/277/347/250/213/344/270/216/346/263/250/346/204/217/345/212/233/351/233/206/344/270/255_/346/227/240/344/272/211/350/256/256/347/220/206/350/256/272/346/226/207/346/241/243_v1.0.md +129 -0
- package/docs/theory//345/271/266/345/217/221/345/277/205/347/204/266/346/200/247/347/220/206/350/256/272_v0.2.md +134 -0
- package/docs/theory//346/246/202/345/277/265/345/210/206/345/261/202/345/257/271/351/275/220/350/241/250_v0.1.md +145 -0
- 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 +6 -6
- package/docs/{ → theory/}/347/220/206/350/256/272/344/273/223/346/213/206/345/210/206/344/270/216/347/231/275/347/256/261/347/237/245/350/257/206/345/272/223/345/206/205/350/277/201_v0.1.md +1 -1
- package/docs/theory//350/256/244/347/237/245/344/273/243/347/220/206/344/270/216/346/224/266/346/225/233/347/273/223/346/236/204_/346/235/241/344/273/266/350/256/272/351/207/215/346/236/204_v0.1.md +221 -0
- package/docs/world_model//344/270/226/347/225/214/346/250/241/345/236/213_/347/245/236/347/273/217/347/275/221/347/273/234/345/272/225/345/261/202/346/236/266/346/236/204_v1.0.md +237 -0
- package/docs//345/255/230/347/256/227/344/270/200/344/275/223/346/236/266/346/236/204/345/255/246/344/271/240_/345/244/226/351/203/250/347/220/206/350/256/272/345/257/271/347/205/247/344/270/216/350/267/257/347/272/277/344/272/244/346/216/245_20260916.md +98 -0
- package/docs//345/255/230/347/256/227/344/270/200/344/275/223/347/245/236/347/273/217/347/275/221/347/273/234/346/236/266/346/236/204_/346/200/273/347/272/262/344/270/216/344/272/244/346/216/245_20260916.md +109 -0
- 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 +434 -405
- package/docs//347/201/265/346/236/242/350/207/252/346/210/221/346/224/271/350/277/233/345/267/245/344/275/234/350/256/241/345/210/222_/345/244/226/351/203/250/347/240/224/347/251/266/347/263/273/345/210/227/345/220/270/346/224/266_v1_20260919.md +286 -0
- package/docs//347/231/275/347/256/261/345/214/226/347/272/262/351/242/206_/344/270/211/351/241/271/347/233/256/345/255/246/344/271/240/346/200/273/346/236/266/346/236/204/344/270/216Ghidra/344/272/244/346/216/245_20260916.md +104 -0
- package/docs//350/256/260/345/277/206/350/257/204/345/256/241/347/263/273/347/273/237_/347/253/213/351/241/271/350/256/276/350/256/241/344/270/216/346/226/275/345/267/245/344/272/244/346/216/245_20260915.md +183 -0
- package/dsh/README.md +34 -1
- package/dsh/cordis.yml.example +13 -7
- package/dsh/hive-mcp-probe.mjs +94 -0
- package/dsh/hive-mcp.example.yml +62 -0
- package/dsh/update-lingshu.bat +11 -0
- package/dsh/update-lingshu.ps1 +337 -0
- package/lib/hooks.d.ts +8 -0
- package/lib/hooks.js +27 -24
- package/lib/index.d.ts +4 -2
- package/lib/index.js +29 -6
- package/lib/lib/datapath.d.ts +76 -1
- package/lib/lib/datapath.js +199 -13
- package/lib/lib/mdcg_client.d.ts +6 -3
- package/lib/lib/mdcg_client.js +6 -5
- package/lib/lib/mutual.js +4 -4
- package/lib/lib/prompt_safety.d.ts +48 -0
- package/lib/lib/prompt_safety.js +62 -0
- package/lib/lib/token_store.js +4 -5
- package/md_cg/audit.py +91 -2
- package/md_cg/autonomy.py +86 -15
- package/md_cg/backfill.py +36 -1
- package/md_cg/backfill_bigdomain.py +34 -0
- package/md_cg/bench6_arms.py +28 -1
- package/md_cg/bench6_common.py +10 -1
- package/md_cg/bench6_competitors.py +6 -1
- package/md_cg/bench_axis_domain.py +9 -1
- package/md_cg/bench_blind_comp.py +7 -1
- package/md_cg/bench_en_atoms_public.py +9 -0
- package/md_cg/bench_governance.py +348 -0
- package/md_cg/bench_lme_zh.py +16 -1
- package/md_cg/bench_locomo.py +2 -1
- package/md_cg/bench_locomo_zh.py +16 -1
- package/md_cg/bench_locomo_zh_public.py +4 -1
- package/md_cg/bench_longmem.py +2 -1
- package/md_cg/bench_membench.py +37 -6
- package/md_cg/bench_p0.py +4 -1
- package/md_cg/bench_progressive.py +61 -10
- package/md_cg/bench_role_views.py +238 -0
- package/md_cg/bench_task_ab.py +8 -1
- package/md_cg/bench_task_ab_llm.py +13 -1
- package/md_cg/bench_unified_en.py +6 -1
- package/md_cg/bench_zh_mad.py +20 -1
- package/md_cg/blindspot_tickets.py +123 -0
- package/md_cg/branches.py +286 -0
- package/md_cg/build_postings.py +73 -0
- package/md_cg/ccgc.py +949 -0
- package/md_cg/census.py +5 -1
- package/md_cg/chain.py +24 -3
- package/md_cg/codeindex.py +134 -17
- package/md_cg/coldverify.py +265 -0
- package/md_cg/comment_gate.py +338 -0
- package/md_cg/cond_compose.py +190 -0
- package/md_cg/cond_facts.py +155 -0
- package/md_cg/cond_template.json +107 -0
- package/md_cg/condition_anchor.py +143 -0
- package/md_cg/conformance.py +727 -0
- package/md_cg/consistency.py +25 -2
- package/md_cg/consolidate.py +53 -2
- package/md_cg/corpus.py +5 -1
- package/md_cg/crosscheck.py +42 -2
- package/md_cg/crypto.py +35 -1
- package/md_cg/d_meta.py +310 -0
- package/md_cg/datapath.py +201 -26
- package/md_cg/docindex.py +122 -1
- package/md_cg/eval_common.py +35 -6
- package/md_cg/evidence.py +27 -1
- package/md_cg/evolution.py +21 -1
- package/md_cg/export.py +11 -1
- package/md_cg/forgetting.py +34 -4
- package/md_cg/fsutil.py +81 -2
- package/md_cg/hotcache.py +214 -0
- package/md_cg/hyperedge.py +251 -0
- package/md_cg/identity.py +20 -3
- package/md_cg/insight.py +19 -3
- package/md_cg/lexicon/build_cedict_en_zh.py +9 -0
- package/md_cg/lexicon/build_standard_en.py +171 -168
- package/md_cg/lexicon/expand_en_zh.py +6 -0
- package/md_cg/lifecycle.py +273 -0
- package/md_cg/linkref.py +281 -0
- package/md_cg/links.py +29 -1
- package/md_cg/mcp_server.py +894 -168
- package/md_cg/md_whitebox.py +53 -1
- package/md_cg/mdcg.py +1205 -41
- package/md_cg/mdcos.py +1060 -76
- package/md_cg/metacognition.py +39 -4
- package/md_cg/migrate.py +4 -0
- package/md_cg/migrate_aeis.py +221 -213
- package/md_cg/migrate_roleplay.py +8 -0
- package/md_cg/migrate_wisdom_graph.py +14 -1
- package/md_cg/mreview/__init__.py +25 -0
- package/md_cg/mreview/__main__.py +110 -0
- package/md_cg/mreview/bundle.py +178 -0
- package/md_cg/mreview/candidates.py +262 -0
- package/md_cg/mreview/govern.py +694 -0
- package/md_cg/mreview/locate.py +939 -0
- package/md_cg/mreview/pipeline.py +729 -0
- package/md_cg/mreview/rules/duplication.json +21 -0
- package/md_cg/mreview/rules/field_coverage.json +54 -0
- package/md_cg/mreview/rules/source_license.json +21 -0
- package/md_cg/mreview/rules/template_flow.json +21 -0
- package/md_cg/mreview/ruleset.py +253 -0
- package/md_cg/nodefile.py +269 -1
- package/md_cg/pooling.py +23 -1
- package/md_cg/postings.py +298 -0
- package/md_cg/predict.py +113 -15
- package/md_cg/progressive.py +3 -0
- package/md_cg/protect.py +18 -5
- package/md_cg/protocol.py +372 -0
- package/md_cg/provenance.py +262 -0
- package/md_cg/reach.py +453 -0
- package/md_cg/refindex.py +88 -4
- package/md_cg/refine.py +20 -1
- package/md_cg/roleviews.py +89 -0
- package/md_cg/routing.py +76 -0
- package/md_cg/scrub.py +68 -3
- package/md_cg/security.py +26 -1
- package/md_cg/self_state.py +65 -2
- package/md_cg/selfreport.py +151 -0
- package/md_cg/semantic/canonical.py +5 -0
- package/md_cg/semantic/en_normalizer.py +364 -295
- package/md_cg/semantic/zh_en_atoms.py +139 -136
- package/md_cg/signer.py +41 -1
- package/md_cg/sources.py +583 -547
- package/md_cg/statushdr.py +179 -0
- package/md_cg/stg.py +59 -18
- package/md_cg/subgraph.py +23 -0
- package/md_cg/sustain.py +74 -1
- package/md_cg/tasks.py +471 -0
- package/md_cg/test_action_derive.py +203 -0
- package/md_cg/test_audit_rotate.py +270 -0
- package/md_cg/test_autonomy.py +26 -0
- package/md_cg/test_bench_governance.py +102 -0
- package/md_cg/test_blindspot_tickets.py +166 -0
- package/md_cg/test_branches.py +249 -0
- package/md_cg/test_ccg_perturb.py +1 -1
- package/md_cg/test_ccgc.py +433 -0
- package/md_cg/test_codeindex.py +338 -0
- package/md_cg/test_comment_gate.py +187 -0
- package/md_cg/test_cond_compose_anchors.py +76 -0
- package/md_cg/test_condition_anchor.py +82 -0
- package/md_cg/test_conformance.py +343 -0
- package/md_cg/test_d_meta.py +412 -0
- package/md_cg/test_datapath_root.py +188 -0
- package/md_cg/test_en_pipeline.py +24 -0
- package/md_cg/test_gain_gate.py +47 -1
- package/md_cg/test_health_scale.py +173 -0
- package/md_cg/test_hot_cold.py +187 -0
- package/md_cg/test_hyperedge.py +245 -0
- package/md_cg/test_identity_attribution.py +6 -0
- package/md_cg/test_index_durability.py +224 -0
- package/md_cg/test_lifecycle.py +309 -0
- package/md_cg/test_linkref.py +306 -0
- package/md_cg/test_md_access_parity.py +15 -3
- package/md_cg/test_mr_m1.py +769 -0
- package/md_cg/test_mr_m2.py +587 -0
- package/md_cg/test_mr_m3.py +710 -0
- package/md_cg/test_mr_m4.py +485 -0
- package/md_cg/test_p1.py +1 -1
- package/md_cg/test_p11_consistency.py +1 -1
- package/md_cg/test_p12_metacognition.py +2 -2
- package/md_cg/test_p16_self_state.py +1 -1
- package/md_cg/test_p26_refindex.py +50 -21
- package/md_cg/test_p27_docindex.py +258 -4
- package/md_cg/test_p28_refcheck.py +1 -1
- package/md_cg/test_p29_session_ingest_export.py +1 -1
- package/md_cg/test_p2_mcp.py +7 -1
- package/md_cg/test_p31_insight.py +24 -0
- package/md_cg/test_p38_contextualize.py +1 -1
- package/md_cg/test_p39_vision_evidence.py +1 -1
- package/md_cg/test_p40_refine_worklist.py +1 -1
- package/md_cg/test_p41_evolve_patrol.py +1 -1
- package/md_cg/test_p42_provenance.py +1 -1
- package/md_cg/test_p43_pooling.py +41 -13
- package/md_cg/test_p44_md_whitebox.py +14 -1
- package/md_cg/test_protocol.py +243 -0
- package/md_cg/test_reach.py +378 -0
- package/md_cg/test_reach_keys.py +201 -0
- package/md_cg/test_reach_meta_exits.py +145 -0
- package/md_cg/test_read_clip.py +141 -0
- package/md_cg/test_retr_s1.py +340 -0
- package/md_cg/test_retr_s1b.py +209 -0
- package/md_cg/test_retr_s3.py +194 -0
- package/md_cg/test_retr_s4.py +163 -0
- package/md_cg/test_retr_s5.py +200 -0
- package/md_cg/test_retr_s6.py +157 -0
- package/md_cg/test_retr_s7.py +385 -0
- package/md_cg/test_retr_s8_time.py +316 -0
- package/md_cg/test_retr_s9_edges.py +286 -0
- package/md_cg/test_retr_s9_entity_ctx.py +175 -0
- package/md_cg/test_review_conformance.py +367 -0
- package/md_cg/test_role_views.py +354 -0
- package/md_cg/test_tasks.py +409 -0
- package/md_cg/test_tool_face.py +189 -0
- package/md_cg/test_trust.py +361 -0
- package/md_cg/test_twophase.py +286 -0
- package/md_cg/test_units_poll.py +71 -0
- package/md_cg/test_v14_fixes.py +397 -0
- package/md_cg/test_validity_filter.py +280 -0
- package/md_cg/test_wisdom_md_store.py +7 -3
- package/md_cg/test_writepipe.py +214 -0
- package/md_cg/theory.py +17 -2
- package/md_cg/tokens.py +134 -12
- package/md_cg/tool_face.py +261 -0
- package/md_cg/trust.py +943 -0
- package/md_cg/twophase.py +232 -0
- package/md_cg/units.py +665 -0
- package/md_cg/vision_evidence.py +25 -2
- package/md_cg/weights.py +25 -2
- package/md_cg/whitebox.py +33 -2
- package/md_cg/whitebox_kb/data/verify_cache.json +21233 -360
- package/md_cg/whitebox_kb/data/verify_savings.jsonl +5124 -0
- package/md_cg/whitebox_kb/wisdom/audit_log/chain_heat.json +10 -10
- package/md_cg/whitebox_kb/wisdom/code_compose.py +113 -6
- package/md_cg/whitebox_kb/wisdom/code_solidified.json +1 -1
- package/md_cg/whitebox_kb/wisdom/verifier.py +340 -55
- package/md_cg/whitebox_kb/wisdom/wisdom-book-cloud.db +0 -0
- package/md_cg/writelimit.py +37 -7
- package/md_cg/writepipe.py +543 -0
- package/package.json +2 -2
- package/skills/skills/designer-perspective/scripts/__pycache__/designer.cpython-310.pyc +0 -0
- package/skills/skills/designer-perspective/scripts/designer.py +17 -1
- package/skills/skills/designer-perspective/tests/selftest.py +3 -1
- package/src/hooks.ts +27 -22
- package/src/index.ts +33 -6
- package/src/lib/datapath.ts +211 -13
- package/src/lib/mdcg_client.ts +12 -8
- package/src/lib/mutual.ts +411 -411
- package/src/lib/prompt_safety.ts +62 -0
- package/src/lib/token_store.ts +4 -5
- package/zcode/AGENTS.md +21 -10
- package/zcode/README.md +4 -0
- package/docs//345/212/237/350/203/275/350/260/203/347/224/250/346/230/240/345/260/204/350/241/250_v0.1.md +0 -221
- /package/docs/{AGI → eval/AGI}/344/270/203/347/273/264/350/257/204/345/210/206/346/212/245/345/221/212_md_cg_v1.0.md" +0 -0
- /package/docs/{AGI → eval/AGI}/344/270/203/347/273/264/350/257/204/345/210/206/346/212/245/345/221/212_md_cg_v2.0.md" +0 -0
- /package/docs/{ → eval/}/345/256/236/351/252/214/346/226/271/346/241/210_/345/255/246/344/271/240/351/227/255/347/216/257AB/344/270/216/346/250/252/350/257/204_v1.0.md" +0 -0
- /package/docs/{ → eval/}/346/250/252/350/257/204_/345/205/255/345/256/266100/351/242/230/344/270/255/350/213/261/345/217/214/346/237/245_v1.0.md" +0 -0
- /package/docs/{guardrail-charter.md → mdcg/guardrail-charter.md} +0 -0
- /package/docs/{lingshu_tutorial.html → mdcg/lingshu_tutorial.html} +0 -0
- /package/docs/{memory-assessment.html → mdcg/memory-assessment.html} +0 -0
- /package/docs/{memory_score.html → mdcg/memory_score.html} +0 -0
- /package/docs/{memory_score.png → mdcg/memory_score.png} +0 -0
- /package/docs/{release_v0.3.0.md → mdcg/release_v0.3.0.md} +0 -0
- /package/docs/{release_v0.4.5.md → mdcg/release_v0.4.5.md} +0 -0
- /package/docs/{tool_table_v0.3.0.md → mdcg/tool_table_v0.3.0.md} +0 -0
- /package/docs/{ → mdcg/}/344/273/244/347/211/214/344/270/216/350/247/222/350/211/262/346/235/203/350/201/214/345/210/206/347/246/273_v0.1.md" +0 -0
- /package/docs/{ → mdcg/}/347/201/265/346/236/24282/345/267/245/345/205/267_/345/212/237/350/203/275/346/225/264/347/220/206/344/270/216/350/277/201/347/247/273/346/230/240/345/260/204_v0.1.md" +0 -0
- /package/docs/{ → mdcg/}/347/201/265/346/236/242MCP/345/267/245/345/205/267/346/200/273/350/241/250_v3.4.md" +0 -0
- /package/docs/{ → mdcg/}/347/201/265/346/236/242_/350/207/252/346/210/221/345/261/202/345/256/232/344/271/211.md" +0 -0
- /package/docs/{ → mdcg/}/350/256/244/347/237/245/345/233/276_MD/347/233/256/345/275/225/346/226/271/346/241/210_v0.1.md" +0 -0
- /package/docs/{ → mdcg/}/350/256/244/347/237/245/345/233/276_/346/235/241/344/273/266/347/251/272/351/227/264/345/220/210/346/210/220/344/270/216/347/224/237/346/225/210/346/235/241/344/273/266/345/217/243/345/276/204_v0.1.md" +0 -0
- /package/docs/{ → mdcg/}/350/256/244/347/237/245/345/233/276/344/275/234/344/270/272/350/256/260/345/277/206/346/223/215/344/275/234/347/263/273/347/273/237_/350/257/204/344/274/260/344/270/216/350/267/257/347/272/277_v0.1.md" +0 -0
- /package/docs/{ → plans/}/345/221/275/345/220/215/346/262/273/347/220/206_/351/241/271/347/233/256/350/256/241/345/210/222.md" +0 -0
- /package/docs/{ → plans/}/347/237/245/350/257/206/345/233/276/350/260/261/351/241/271/347/233/256_/344/272/244/346/216/245/346/226/207/346/241/243_20260914.md" +0 -0
- /package/docs/{ → swarm/}/350/234/202/347/276/244/345/244/232/346/231/272/350/203/275/344/275/223_/344/275/277/347/224/250/346/212/245/345/221/212_20260913.md" +0 -0
- /package/docs/{ → swarm/}/350/234/202/347/276/244/345/244/232/346/231/272/350/203/275/344/275/223_/345/212/237/350/203/275/350/257/264/346/230/216_v0.6.md" +0 -0
- /package/docs/{ → swarm/}/350/234/202/347/276/244/347/233/262/345/214/272/346/240/207/350/256/260_v1.0.md" +0 -0
- /package/docs/{ → theory/}/344/277/241/346/201/257/345/267/256/344/270/272/344/273/200/344/271/210/345/277/205/347/204/266/345/255/230/345/234/250/344/270/224/350/207/252/347/204/266/346/211/251/345/244/247.md" +0 -0
- /package/docs/{ → theory/}/346/231/272/350/203/275/347/232/204/345/205/254/347/220/206/345/214/226/345/237/272/347/237/263.md" +0 -0
- /package/docs/{ → theory/}/346/231/272/350/203/275/347/232/204/350/256/244/347/237/245/350/277/207/347/250/213.md" +0 -0
- /package/docs/{ → theory/}/346/231/272/350/203/275/350/256/2723.4.md" +0 -0
- /package/docs/{ → theory/}/347/231/275/347/256/261/346/231/272/350/203/275/346/230/257/344/273/200/344/271/210/357/274/237.md" +0 -0
- /package/docs/{ → theory/}/347/231/275/347/256/261/346/231/272/350/203/275/347/263/273/345/210/227/302/267/347/254/254/344/272/224/347/257/207/357/274/232/350/256/251AI/347/234/237/346/255/243/350/243/205/344/270/212/350/256/260/345/277/206.md" +0 -0
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# 让 AI Agent 拥有不可遗忘的记忆
|
|
2
2
|
|
|
3
|
-
**灵枢(Lingshu)** —— 高性能 · 无幻觉 · 多智能体适用的长期记忆系统(v0.4.
|
|
3
|
+
**灵枢(Lingshu)** —— 高性能 · 无幻觉 · 多智能体适用的长期记忆系统(v0.4.9)
|
|
4
4
|
|
|
5
|
-
[](https://awesome-dsh-plugin.com) [](https://www.dsh.so/artifact/dsh-memory-7) [](https://github.com/deepseek-ai/deepseek-harness/releases) [](
|
|
5
|
+
[](https://awesome-dsh-plugin.com) [](https://www.dsh.so/artifact/dsh-memory-7) [](https://github.com/deepseek-ai/deepseek-harness/releases) [](#多-harness-接入按端分目录) [](package.json) [](LICENSE)
|
|
6
6
|
|
|
7
7
|
> **一句话**:让 AI Agent 拥有跨会话的长期记忆——对话自动沉淀为纯文本 md 认知图,
|
|
8
8
|
> 规则化检索引擎决定「记什么、取什么」,全过程可审计、结果可复现。
|
|
@@ -15,27 +15,40 @@
|
|
|
15
15
|
|
|
16
16
|
## ✨ 核心亮点
|
|
17
17
|
|
|
18
|
+
- **🧠 不失忆**——记忆一旦落盘即长期留存:写入须过三道闸门并以 `committed` 字段确认(**绝不假装成功**),遗忘只能由显式 `cg(op=forget)` 发起、不做静默淘汰;检索索引只是派生物、随时可重建——**原文即真源**(见[工具面](#-工具面))
|
|
18
19
|
- **⚡ 高性能**——Rust 检索内核(零第三方依赖):库内嵌多线程大批量检索,`--serve` 进程实例支撑多智能体并发(语言无关);中文检索 hit@1 99.0%,六家横评同口径登顶(见[六家横评](#-六家记忆系统横向对比))
|
|
19
20
|
- **🛡️ 无幻觉**——记什么、取什么、能不能写入,全部由确定性规则裁决,不依赖 LLM 黑箱判断;条件层弱证据的检索干扰由四层证据防火墙白箱剔除(见[弱证据实证](#-弱证据会干扰检索三分离与证据防火墙实证));写没写成功看 `committed` 字段,绝不假装通过;全链路审计留痕、结果可复现
|
|
20
21
|
- **🔌 多智能体适用**——同一份大脑(`md_cg/`)+ 同一份纪律,接入 DSH · CodeBuddy · ZCode · Codex CLI · Claude Code,任何 MCP 宿主可直接挂载(见[多 harness 接入](#多-harness-接入按端分目录))
|
|
21
22
|
- **😊 轻松使用**——三步接入,装完像往常一样对话即可;记忆本体是纯 md 文档,任何编辑器可直接打开审阅
|
|
22
|
-
-
|
|
23
|
+
- **🔧 工程能力**——平台不只有记忆,四类工程能力可直接使用:**任务调度**(spec 进 / result 出,文件协议即接口)· **上下文管理**(重要性评分 · 预算装包 · 分层注入 · 记忆自净)· **蜂巢并发**(worker 池原子领取,多智能体真并行)· **双实例验证**(互验机制——改动须过对端断言才可入主线);四类能力各自落在哪一层见[平台全景](#-平台全景)
|
|
24
|
+
- **📊 可复现评测**——`locomo-zh-500`(500 题)与 `bench6-100-zh-en`(六家横评 · 中英双查)数据集随仓公开,一条命令复现我方成绩(见[公开评测数据集](#-公开评测数据集));**已有第三方独立验证**:七轮复评(统一评分 v7 · 灵枢 9.258)与 LoCoMo 独立复现(自报数字逐位一致 · 见[第三方复评](#第三方复评七轮独立评估))
|
|
23
25
|
|
|
24
26
|
---
|
|
25
27
|
|
|
26
28
|
## 🗺️ 平台全景
|
|
27
29
|
|
|
28
|
-
>
|
|
30
|
+
> 灵枢是**平台**而非单一检索组件——同一仓库内五件套构成带记忆的智能体运行时,各层独立可用、边界正交(大脑零依赖其余各层)。五层各承载一类**系统功能**:
|
|
29
31
|
|
|
30
|
-
| 层 | 位置 | 一句话定位 | 文档入口 |
|
|
31
|
-
|
|
32
|
-
| 🧠 **灵枢大脑** | [`md_cg/`](md_cg/) | 记忆系统本体:对话沉淀为 md 认知图,记什么 / 取什么 / 能否写入全由确定性规则裁决,四层证据防火墙白箱剔除弱证据干扰 | [README 详细版](docs/README详细版_v0.4.5.md) |
|
|
33
|
-
| ⚙️ **Rust 检索引擎** | [`rust/`](rust/) | 只读侧检索核心:零第三方依赖三形态(库内嵌大批量 / `--serve` 多智能体进程实例 / 评测器),与 Python 口径逐位对齐 | [rust/README.md](rust/README.md) |
|
|
34
|
-
| 🐝 **蜂群运行时** | [`swarm/`](swarm/) |
|
|
35
|
-
| 📜 **中文编译器** | [`compiler/`](compiler/) | 术数编译器:词法 → 语法 → 名实校验 → 白名单代码生成 → 验证终裁,五环确定性编译链 + 封闭指令集结构性沙箱 | `python -m compiler.cli`(模块内文档) |
|
|
36
|
-
| ⬢ **蜂巢并发引擎** | [`hive/`](hive/) | 蜂群多智能体并发调度:Rust 纯 std 零依赖 worker 池(原子领取 / 心跳 / 超时强杀 / kill / 崩溃恢复),文件协议即接口,LLM 调用委托零依赖 Python 执行器子进程,MCP 四工具接入 | [hive/README.md](hive/README.md) |
|
|
32
|
+
| 层 | 位置 | 系统功能 | 一句话定位 | 文档入口 |
|
|
33
|
+
|---|---|---|---|---|
|
|
34
|
+
| 🧠 **灵枢大脑** | [`md_cg/`](md_cg/) | **元认知** | 记忆系统本体:对话沉淀为 md 认知图,记什么 / 取什么 / 能否写入全由确定性规则裁决,四层证据防火墙白箱剔除弱证据干扰 | [README 详细版](docs/mdcg/README详细版_v0.4.5.md) |
|
|
35
|
+
| ⚙️ **Rust 检索引擎** | [`rust/`](rust/) | 检索内核 | 只读侧检索核心:零第三方依赖三形态(库内嵌大批量 / `--serve` 多智能体进程实例 / 评测器),与 Python 口径逐位对齐 | [rust/README.md](rust/README.md) |
|
|
36
|
+
| 🐝 **蜂群运行时** | [`swarm/`](swarm/) | **自维持** | 多进程蜂群执行层(靠轮次心跳存续):.pbc 确定性实例 + Gossip 拓扑 / 水位信箱 / WAL-HMAC / 信任聚合 / 健康评分,实例管道断裂即同轮重建(Rust 纯 std 零依赖) | [功能说明 v0.6](docs/swarm/蜂群多智能体_功能说明_v0.6.md) |
|
|
37
|
+
| 📜 **中文编译器** | [`compiler/`](compiler/) | **验证 · 审计** | 术数编译器:词法 → 语法 → 名实校验 → 白名单代码生成 → 验证终裁,五环确定性编译链 + 封闭指令集结构性沙箱 | `python -m compiler.cli`(模块内文档) |
|
|
38
|
+
| ⬢ **蜂巢并发引擎** | [`hive/`](hive/) | **自我改进** | 蜂群多智能体并发调度:Rust 纯 std 零依赖 worker 池(原子领取 / 心跳 / 超时强杀 / kill / 崩溃恢复),文件协议即接口,LLM 调用委托零依赖 Python 执行器子进程,MCP 四工具接入 —— **逐步稳定中** | [hive/README.md](hive/README.md) |
|
|
37
39
|
|
|
38
|
-
|
|
40
|
+
**系统功能 → 工程能力**(四类工程能力分别落在哪一层):
|
|
41
|
+
|
|
42
|
+
| 系统功能 | 承载层 | 落地为工程能力 |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| **元认知**——系统观测自身状态并据此裁决 | 🧠 灵枢大脑 | **上下文管理**:重要性评分 · 预算装包 · 分层注入 · 记忆自净(`cg(op=session/scrub/info)`);按生效条件路由,不确定即标 BLINDSPOT 而非猜测 |
|
|
45
|
+
| **自维持**——系统在故障下维持自身存续(心跳) | 🐝 蜂群运行时 | 轮次心跳 · 健康评分四因子 · Gossip 水位对账 · 实例级容错重建(管道断裂同轮重跑,重试仍败才退场) |
|
|
46
|
+
| **自我改进**——系统改自身源码而**不丧失验证资格** | ⬢ 蜂巢 | **任务调度**(spec 进 / result 出)· **蜂巢并发**(worker 池原子领取,多智能体真并行)· **双实例验证**(互验机制:判据冻结,候选须过对端断言才可入主线) |
|
|
47
|
+
| **验证 · 审计**——改动的可裁决性与全程留痕 | 📜 中文编译器 | 名实校验 → 白名单代码生成 → 验证终裁的确定性链路;每个写入值必须是原文子串(不当场放行) |
|
|
48
|
+
|
|
49
|
+
五件套共享同一套 17 条工作纪律与记忆闭环(见文末[工程纪律](#-工程纪律与设计者视角可选推荐)),接入方式互不牵动——只用记忆就只接大脑,不必理解蜂群与编译器。
|
|
50
|
+
|
|
51
|
+
> **📣 蜂巢反馈邀请**:`hive/` 是五件套里最新的一层,目前处于**逐步稳定阶段**——调度生命周期已闭环(原子领取 / 心跳 / 超时强杀 / kill / 崩溃恢复)并通过回归验证,但并发与崩溃恢复这类路径只有在**真实任务、真实机器**上跑得足够多才会真正稳定,因此这一层会持续迭代。我们特别**欢迎下载试用后反馈**:拉起失败、任务卡住、心跳异常、平台差异、kill 不生效等失败路径,对我们比「跑通了」更有价值。请开 [Issue](https://github.com/FuRongJun-1999/dsh-memory/issues) 并附 `hive_doctor` 输出(serve 存活 / 任务统计 / env 检查)。
|
|
39
52
|
|
|
40
53
|
---
|
|
41
54
|
|
|
@@ -60,7 +73,11 @@ dsh plugin --profile web add .
|
|
|
60
73
|
name: '@furongjun1999/dsh-memory'
|
|
61
74
|
config:
|
|
62
75
|
mdcg:
|
|
63
|
-
|
|
76
|
+
# 记忆唯一真源(md 认知图)。留空 = 用户级默认位置
|
|
77
|
+
# ~/.dsh/.dsh-memory/data/mdcg(更新插件不丢);换位置请填**绝对路径**。
|
|
78
|
+
# 勿填包内相对路径(如 'data/mdcg')——那会把记忆写进插件包目录,
|
|
79
|
+
# pnpm 更新该包时连目录一起删掉(详见 dsh/cordis.yml.example 头注)。
|
|
80
|
+
root: ''
|
|
64
81
|
identity: '灵枢'
|
|
65
82
|
tools: 'core' # 'core'(默认, 仅 cg/stg) | 'brain' | 'all'
|
|
66
83
|
```
|
|
@@ -77,8 +94,9 @@ dsh plugin --profile web add .
|
|
|
77
94
|
|
|
78
95
|
- **前置**:Node ≥ 22.19 · DSH 内核 ≥ 0.1.2-rc.1 · **大脑零安装**(`md_cg` 随包自带,无需 pip 装任何引擎)
|
|
79
96
|
- **写权限默认关闭**:不配凭据即以只读 `guest` 运行(读 / 召回 / 时间线可用,写入不落盘)。要真正落盘见「写入凭据」
|
|
80
|
-
- 完整配置项(30+ 项)· 自动记忆机制 · DSH 看门狗 → [README 详细版](docs/README详细版_v0.4.5.md)
|
|
97
|
+
- 完整配置项(30+ 项)· 自动记忆机制 · DSH 看门狗 → [README 详细版](docs/mdcg/README详细版_v0.4.5.md)
|
|
81
98
|
- **非 DSH 宿主**(CodeBuddy / ZCode / Codex CLI / Claude Code):走[多 harness 接入](#多-harness-接入按端分目录),各端有独立三步接入说明
|
|
99
|
+
- **装后验证**:重启 DSH 后对 Agent 说「列出你的记忆工具」应看到 `cg` / `stg`(`tools: 'all'` 时还有 `mdcg_*`);大脑直连验证:`python -m md_cg.mcp_server`(stdio JSON-RPC)收到 initialize 应答即通,更多细节见 [README 详细版](docs/mdcg/README详细版_v0.4.5.md)
|
|
82
100
|
|
|
83
101
|
---
|
|
84
102
|
|
|
@@ -99,7 +117,7 @@ dsh plugin --profile web add .
|
|
|
99
117
|
|
|
100
118
|
> **核心结论**:**将查询由英文换为中文(同一份英文语料、记忆系统均不变):六家已有记忆系统的检索命中全部大幅提升(+12 ~ +45pp),无一例外**;**灵枢是最佳**——中文查询 hit@1 **99.0% 全表登顶**,英→中提升幅度 **+45pp 亦居本表之首**(双语入库在中文查询下同时拿到最高命中与最大提升)。
|
|
101
119
|
> **诚实口径(非选择性引用,与横评报告一致)**:英文查询侧由 Letta 归档直插(73.0%)与纯向量 RAG(71.0%)领跑,灵枢四路融合在本池低于单词法基线(81.0% < 99.0%,饱和池上条件桶/实体路稀释词法命中);中文提升混合了「查询语言」与「查询形态」双因素(`question_zh` 为关键词串、`question_en` 为自然问句),归因须谨慎。该池零干扰、全为 gold 证据,是**上界对照集**——高命中率不可外推为端到端记忆能力;Letta agent 模式 0 分是入库丢标记(可追溯性问题),非检索能力问题。
|
|
102
|
-
> 完整题型分解 / MRR 全表 / 逐家入库取证 / 偏差判定单 → [六家横评报告](docs/横评_六家100题中英双查_v1.0.md) · 题集 → [data/benchmarks/bench6-100-zh-en/](data/benchmarks/bench6-100-zh-en/README.md)
|
|
120
|
+
> 完整题型分解 / MRR 全表 / 逐家入库取证 / 偏差判定单 → [六家横评报告](docs/eval/横评_六家100题中英双查_v1.0.md) · 题集 → [data/benchmarks/bench6-100-zh-en/](data/benchmarks/bench6-100-zh-en/README.md)
|
|
103
121
|
|
|
104
122
|
---
|
|
105
123
|
|
|
@@ -115,7 +133,9 @@ dsh plugin --profile web add .
|
|
|
115
133
|
|
|
116
134
|
## 🌐 中英双语检索差距:我们用中文语义归一化解决英文检索(实证)
|
|
117
135
|
|
|
118
|
-
> **直接回答**:英文检索问题,我们用**中文翻译 + 语义归一化**解决——英文 query 经 AI 语义归一化为中文标准关键词(归一主体=AI,系统只供词表真源),再经中→英字级原子映射与双语原子库匹配,返回英文原文。同一份 500 题语料上,**给定中文标准关键词时检索效果 hit@10 = 99.8%**(hit@1 96.8%;检索侧上界口径——AI 归一环节的质量未纳入该评测,机械归一的端到端下界见下表 ④)。三条对照边界:不做归一化、拿英文原题直接词面匹配只有 78.2-81.2%(同义词鸿沟硬边界);机械词典查表归一端到端实测仅 57.
|
|
136
|
+
> **直接回答**:英文检索问题,我们用**中文翻译 + 语义归一化**解决——英文 query 经 AI 语义归一化为中文标准关键词(归一主体=AI,系统只供词表真源),再经中→英字级原子映射与双语原子库匹配,返回英文原文。同一份 500 题语料上,**给定中文标准关键词时检索效果 hit@10 = 99.8%**(hit@1 96.8%;检索侧上界口径——AI 归一环节的质量未纳入该评测,机械归一的端到端下界见下表 ④)。三条对照边界:不做归一化、拿英文原题直接词面匹配只有 78.2-81.2%(同义词鸿沟硬边界);机械词典查表归一端到端实测仅 57.6%;而 ②路对归一噪声高度鲁棒——漏 20% 关键词 / 错译 20% / 混入噪词,hit@10 仍稳在 99.2-99.8%。**结论:路线成立且不要求 AI 归一完美,只需大致方向对;99.8 是检索侧上界,端到端真实水平由 AI 归一质量决定(机械下界 57.6,AI 上界趋近 99.8)**。
|
|
137
|
+
|
|
138
|
+
**第三方独立验证(2026-09-15,[报告全文](docs/eval/第三方验证报告_LoCoMo_灵枢_.md))**:上述关键数字已被第三方独立复现——②路 96.8/99.8/99.8 **逐位一致**,中文 96.4→96.8(噪声内);并实证该 99.8 由**中文摘要层**挣得(去英文处理层 hit@10 反为 100.0%),英文标准归一化组件自身端到端为 81.0%(写入侧机械归一口径,较不归一 +58pp),检索失败 100% 归因归一化丢词/错译而非排序。本节口径标注与该实证一致:99.8 是「给定中文标准关键词」的检索侧上界,不声称英文机械归一化独立达到该水平。
|
|
119
139
|
|
|
120
140
|
**测试报告**(灵枢公开仓评测,方法学与口径真源 → [`md_cg/semantic/REPRODUCE.md`](md_cg/semantic/REPRODUCE.md)):
|
|
121
141
|
|
|
@@ -124,15 +144,15 @@ dsh plugin --profile web add .
|
|
|
124
144
|
| ① 中文原子语义(md_cg 主链路:char-bigram + 四路 RRF + 同义扩展 + terms) | 94.6% | 99.2% | **99.2%** | locomo-zh-500 · 500 题(中文题面) |
|
|
125
145
|
| ② **英文检索 · 中文语义归一化桥接(主路线)**:AI 归一为中文关键词 → 字级英文原子映射 × 双语原子库 Jaccard(**给定关键词的检索侧上界**) | **96.8%** | **99.8%** | **99.8%** | locomo-zh-500 · 500 题(同 qids) |
|
|
126
146
|
| ③ 英文原题直接原子匹配(不做归一化的对照) | 50.0% | 74.6% | **81.2%** | locomo-zh-500 · 500 题(同 qids 英文原题) |
|
|
127
|
-
| ④ 英文问句 → 机械词表归一端到端(②链路的机械化对照:归一不借助 AI 的真实下界) | 24.
|
|
147
|
+
| ④ 英文问句 → 机械词表归一端到端(②链路的机械化对照:归一不借助 AI 的真实下界) | 24.6% | 46.2% | **57.6%** | locomo-zh-500 · 500 题(同 qids 英文原题;2026-09-15 第三方错译暴露面修正后 24.0/46.0/57.2→本行,CEDICT 层低置信标记已落地) |
|
|
128
148
|
| 英文反事实:硬套中文 char-bigram 主链路(默认态) | 27% | 45% | 56% | bench6 · 100 题(口径不同,只看量级) |
|
|
129
149
|
|
|
130
|
-
> ②③是**同一评测集上的隔离实验**:② 的 query 走中文关键词语义链(AI 归一化的输出形态),③ 连归一化也不做、直接拿英文自由表达提取原子——②③ 之差(99.8 vs 81.2)=「关键词级语义链」与「自由英文词面」两种 query 输入形态在检索链路里的效果差(同义词鸿沟 + 归一化桥接的合并贡献)。**AI 归一环节本身的质量未单独评测**——其机械替代的端到端下界由 ④ 给出(57.
|
|
150
|
+
> ②③是**同一评测集上的隔离实验**:② 的 query 走中文关键词语义链(AI 归一化的输出形态),③ 连归一化也不做、直接拿英文自由表达提取原子——②③ 之差(99.8 vs 81.2)=「关键词级语义链」与「自由英文词面」两种 query 输入形态在检索链路里的效果差(同义词鸿沟 + 归一化桥接的合并贡献)。**AI 归一环节本身的质量未单独评测**——其机械替代的端到端下界由 ④ 给出(57.6%)。②路鲁棒性实测(query 确定性扰动后走同一 ② 链路):漏 20% 关键词 ⑤=99.4 / 插 3 噪词 ⑥=99.8 / 错译 20% 关键词 ⑦=99.2(hit@10)——归一结果只要过半正确,hit@10 即稳 99%+,**AI 归一的实际门槛远低于完美归一**。doc 侧各臂相同(中文五槽加工面的字级原子映射 ∪ 英文正文归一词,与 ① 同属写入侧加工口径)。历史沿革:早期无加工面语料口径测得 ②=87-88、③=79.0(dsh 端文档口径),方法学真源见 REPRODUCE.md;机械词级归一→纯中文库(u2,33.6% 上界)已裁定排除并归档证据链。
|
|
131
151
|
|
|
132
152
|
**差距三层归因(按权重排序)**:
|
|
133
153
|
|
|
134
154
|
1. **同义词鸿沟(根本原因,语言固有属性)**。中文「概念 → 表达」约 **1:1~1:2**(95 个同义词对),字面重叠天然命中,词面匹配几乎不打折;英文每概念平均 **5.2 种**表达(CC-CEDICT 语料统计,8,493 汉字展开出 172,950 个英义对,**1,820 倍**于中文)。上表 ② vs ③ 就是这道鸿沟的**直接隔离实验**:同一语料,query 侧做中文语义归一化得 99.8%,不做归一化直接英文词面匹配即降至 81.2%——鸿沟真实存在,但**在查询侧做一次语义归一化即可闭合**,不需要向量嵌入。
|
|
135
|
-
2. **归一化是正解,机械归一是死路(主路线裁定的依据)**。机械词典查表翻译端到端实测仅 **57.
|
|
155
|
+
2. **归一化是正解,机械归一是死路(主路线裁定的依据)**。机械词典查表翻译端到端实测仅 **57.6%**(④臂:英文问句 → CEDICT 28294 键词表直译 → ②同链路),且低于「完全不归一」的 81.2%(③臂)——机械直译把可译词错译为错误原子(race→人种),反而毁掉原本有效的词面贡献;更早的机械词级归一→纯中文库口径上界也只有 33.6%(已排除)。根因是英文自然问句的信息密度远低于标注关键词(词面交集 p50=1 vs 8),机械替换无法补足信息差;查询侧归一化由 **AI 完成**(理解式归一,如 take up a hobby → 培养爱好),系统只供词表真源与字级映射——②的 99.8%(上界)与机械路 57.6%(下界)之间的空间,就是 AI 归一要填的部分;⑤⑥⑦证明这个要求只需「大致方向对」。
|
|
136
156
|
3. **架构非对称(设计裁定)**。中文链路的四路 RRF / 同义扩展 / terms 字段全部建立在「字面=语义」的中文前提上,直接跑英文实测劣于独立路(反事实 56%)——英文按裁定走「归一化桥接 + 原子 Jaccard」独立路,不硬套中文 char-bigram 管线,是**有意的取舍**而非遗漏。中→英字级映射覆盖 6,319 字(97.2%),长尾派生词(happy/happiness)不折叠——残余失配由查询侧 AI 归一化吸收,这正是 ② 反超 ③ 21.6pp 的来源。
|
|
137
157
|
|
|
138
158
|
**要不要上语义向量检索?** 向量嵌入可以弥合同义鸿沟,但会引入嵌入模型依赖与索引体积,与灵枢「零重依赖、纯词面可复现」的公开仓原则冲突,**当前明确不做**;归一化桥接已把检索侧上界做到 hit@10 99.8%(鲁棒性:归一不完美时仍 99%+),满足「答案在候选池」的记忆系统主用途。
|
|
@@ -147,22 +167,25 @@ dsh plugin --profile web add .
|
|
|
147
167
|
|
|
148
168
|
| 基准 | 归属 | 状态 |
|
|
149
169
|
|---|---|---|
|
|
150
|
-
| **locomo-zh-500** | **自建**(LoCoMo 中文派生 · 500 题 / 567 turns / 0.6 MB) | **已随仓库公开** `data/benchmarks/locomo-zh-500/` · 可复现 · **我方成绩:中文 hit@1 94.6% · hit@5 / hit@10 99.2%(md_cg 完整主链路);英文(语义归一化桥接)hit@10 99.8%——见上[中英双语检索差距](#-中英双语检索差距我们用中文语义归一化解决英文检索实证)①② 行** |
|
|
151
|
-
| **bench6 · 六家横评** | **自建**(LoCoMo 中文派生 · 100 题 / 137 turns · **中英双查** / 约 90 KB) | **已随仓库公开** `data/benchmarks/bench6-100-zh-en/` · **六家同口径对照**(灵枢 5 口径 / 纯向量 RAG / mem0 / Graphiti / GraphRAG / Letta 两模式)· 报告 → [横评_六家100题中英双查_v1.0.md](docs/横评_六家100题中英双查_v1.0.md) |
|
|
170
|
+
| **locomo-zh-500** | **自建**(LoCoMo 中文派生 · 500 题 / 567 turns / 0.6 MB) | **已随仓库公开** `data/benchmarks/locomo-zh-500/` · 可复现 · **我方成绩:中文 hit@1 94.6% · hit@5 / hit@10 99.2%(md_cg 完整主链路);英文(语义归一化桥接)hit@10 99.8%——见上[中英双语检索差距](#-中英双语检索差距我们用中文语义归一化解决英文检索实证)①② 行** · **第三方独立复现:中文 96.8/99.6(自报 96.4/99.8 噪声内)、英文主路线 96.8/99.8/99.8 逐位一致** → [第三方验证报告](docs/eval/第三方验证报告_LoCoMo_灵枢_.md) |
|
|
171
|
+
| **bench6 · 六家横评** | **自建**(LoCoMo 中文派生 · 100 题 / 137 turns · **中英双查** / 约 90 KB) | **已随仓库公开** `data/benchmarks/bench6-100-zh-en/` · **六家同口径对照**(灵枢 5 口径 / 纯向量 RAG / mem0 / Graphiti / GraphRAG / Letta 两模式)· 报告 → [横评_六家100题中英双查_v1.0.md](docs/eval/横评_六家100题中英双查_v1.0.md) |
|
|
152
172
|
| LoCoMo | 第三方 `mteb/LoCoMo` BEIR(1976 题 / 5882 turns) | 上游来源(英文原版) |
|
|
153
173
|
| memory-bench-1000 | **自建** | SNR 见评分报告 v2.0;已公开 `data/memory-bench-1000.jsonl` |
|
|
154
174
|
|
|
155
175
|
> 上表四行性质不同,勿混读:`locomo-zh-500` 的分数是**本仓库我方成绩**(基于LoCoMo自建并公开的评测集,可复现);`bench6 · 六家横评` 是同源派生的**小型同口径对照集**(零干扰池,只做六家系统横向对照,**非我方单方成绩**);LoCoMo 一行指**上游英文原版 1976 题**,本仓库未在其上产出完整成绩;`memory-bench-1000` 是自建记忆库的评分报告。
|
|
156
176
|
> **该成绩的性质(非虚假声明)**:`locomo-zh-500` 的分数是**写入侧结构化加工后的检索成绩**——入库前把每轮对话加工为「身份 / 时间 / 摘要 / 词 / 条件四槽」条目,再走词法 + 同义扩展检索。这与主流记忆系统所用的**向量化嵌入 + 关键词/摘要压缩**属**同一类写入侧加工**,差异只在索引与检索算法,不在「是否对原文做了加工」。因此该口径可用于**同口径对照**,不是对裸文本直读的虚高取巧。
|
|
157
177
|
> `locomo-zh-500` 是**本仓库对外发布的检索评测集**:供外部在**同一份中文题面**上对自己的记忆系统做可对照评测。它只评检索命中(hit@k / MRR),**不评答案正确性**;被测池为**零干扰**(池内全是 gold),故高命中率不可外推为端到端记忆能力——完整边界与许可见 `data/benchmarks/locomo-zh-500/README.md`。
|
|
158
|
-
> `bench6-100-zh-en` 沿用同一口径,并**每题提供中英两套词面**(评「换查询语言后是否仍命中」);它同样是**上界对照集**——家间差距小于约 16% **不可判为显著**;评测入口已随仓库公开(`run_bench.py`:零依赖口径复现 + Adapter 协议接入你自己的系统),接入任意llm和向量方法都可复现,详见 [横评报告](docs/横评_六家100题中英双查_v1.0.md) 与 `data/benchmarks/bench6-100-zh-en/README.md`。
|
|
178
|
+
> `bench6-100-zh-en` 沿用同一口径,并**每题提供中英两套词面**(评「换查询语言后是否仍命中」);它同样是**上界对照集**——家间差距小于约 16% **不可判为显著**;评测入口已随仓库公开(`run_bench.py`:零依赖口径复现 + Adapter 协议接入你自己的系统),接入任意llm和向量方法都可复现,详见 [横评报告](docs/eval/横评_六家100题中英双查_v1.0.md) 与 `data/benchmarks/bench6-100-zh-en/README.md`。
|
|
159
179
|
|
|
160
180
|
**复现我方成绩**(零上游依赖):
|
|
161
181
|
|
|
162
182
|
```bash
|
|
163
183
|
python -m md_cg.bench_locomo_zh_public # 中文:只读 data/benchmarks/locomo-zh-500/,产出公开词法口径参考量级(hit@1 93.6% 单路 / 97.6% +同义扩展);上表 94.6/99.2 为 md_cg 完整主链路(四路 RRF + 同义扩展 + terms)成绩
|
|
164
|
-
python -m md_cg.bench_en_atoms_public # 英文:语义归一化桥接七臂(② 96.8/99.8/99.8 主路线·检索侧上界 · ③ 81.2 不归一对照 · ③a 78.2 纯正文对照 · ④ 57.
|
|
184
|
+
python -m md_cg.bench_en_atoms_public # 英文:语义归一化桥接七臂(② 96.8/99.8/99.8 主路线·检索侧上界 · ③ 81.2 不归一对照 · ③a 78.2 纯正文对照 · ④ 57.6 机械归一端到端下界 · ⑤⑥⑦ ②路鲁棒性 99.2-99.8);英文原题面为上游派生不入库,自备后即可全量复现
|
|
165
185
|
python -m md_cg.bench_progressive # 渐进式语义检索双实验(G0 96.8/99.8/99.8 =②锚点自校验 · 只宽检 85.2/97.0 · 渐进收敛 93.6/99.0 · 受控池排序面消歧+条件冒充边界)
|
|
186
|
+
# 第三方独立评测脚本(第三方交付物原样入库;脚本内 REPO 为第三方沙箱路径,复现需改为本机仓库路径)
|
|
187
|
+
python test/locomo_independent_eval.py # MdCG 引擎口径五臂(A 中文五槽 / B 英文原文 / C 标准归一化 / D 双语并集 / F 语义摘要路 + 随机基线)
|
|
188
|
+
python test/locomo_jaccard_probe.py # 主路线 Jaccard 口径拆解(J2_full 完整版 / J2_zh 仅中文层 / J2_body 仅英文归一词 / J0_raw 英文原词)
|
|
166
189
|
```
|
|
167
190
|
|
|
168
191
|
> 自建 bench 的噪声层 400 条 + unlabeled 边界 350 条为天然负对照;任何基准报告须带**干扰抑制负例组**与 **T-JUDGE 负例拒绝率**双向报告(遵守「只报总分 = 不通过」)。
|
|
@@ -171,9 +194,18 @@ python -m md_cg.bench_progressive # 渐进式语义检索双实验(G0 9
|
|
|
171
194
|
|
|
172
195
|
## 🎯 能力自评(内部标尺,非横评声明)
|
|
173
196
|
|
|
174
|
-
> 项目维护者按内部七维标尺(结构 / 检索 / 判断 / 调用 / 演化 / 连续 / 可信)自评 **综合 8.6 / 10**(全部维度 ≥ 8.5),并按外部行为级门槛自评为**条件性 L4 → L5 路上**——含未完成项与扣分理由的逐维证据,见 [AGI 七维评分报告 v2.0](docs/AGI七维评分报告_md_cg_v2.0.md)。
|
|
197
|
+
> 项目维护者按内部七维标尺(结构 / 检索 / 判断 / 调用 / 演化 / 连续 / 可信)自评 **综合 8.6 / 10**(全部维度 ≥ 8.5),并按外部行为级门槛自评为**条件性 L4 → L5 路上**——含未完成项与扣分理由的逐维证据,见 [AGI 七维评分报告 v2.0](docs/eval/AGI七维评分报告_md_cg_v2.0.md)。
|
|
175
198
|
> **不虚高的坦白**:五个 8.5 的共同上限是「机制齐备、门槛项未齐」——T 零信任未落地、R 仍是规则层意图理解、C 去污染仍是抽样而非穷尽、U 的 LLM 固化动作尚未自动放行。
|
|
176
199
|
|
|
200
|
+
### 第三方复评(七轮独立评估)
|
|
201
|
+
|
|
202
|
+
> 独立评估者(非项目方)以「统一评分 v7」对灵枢与 deja-vu 做同权重八维对照(检索中英 / 可复现性 / 工程测试 / 架构独立性 / 诚实度 / 生态适配 / 部署运维):**灵枢 9.258 / deja-vu 9.119(+0.139,七轮首次为正——评审者声明该差距在评审噪声以内)**,收敛轨迹 `7.79→8.29→8.57→8.72→9.13→9.133→9.258`;v7 含对自身四条建议全撤回的勘误(§三点五:所称「缺失能力」经复核均早已有之,含 `cg(op=ingest)` 后向索引通道)
|
|
203
|
+
> 报告全文→ [第三方验证报告_灵枢_vs_dejavu_统一评分_v7.md](docs/eval/第三方验证报告_灵枢_vs_dejavu_统一评分_v7.md) · 评估日期 2026-09-15,被评灵枢基线 `38412c4`
|
|
204
|
+
>
|
|
205
|
+
> **LoCoMo 第三方独立验证**(同日另一份独立报告,评测全流程从零实现、不调用灵枢任何 `bench_*` 脚本):中文 96.8/99.6 独立复现(自报 96.4/99.8,噪声内);英文主路线 ② 96.8/99.8/99.8 **逐位一致**;并给出更严格归因——99.8 由中文摘要层挣得(去英文层 hit@10 反为 100.0%)、英文标准归一化端到端真实水平 81.0%(写入侧机械归一口径,较不归一 +58pp)、检索失败 100% 归因归一化丢词/错译而非排序;同时确认数据集区分度(query 对 gold 覆盖 0.875 vs 非 gold 最佳 0.469)与 OOV 如实透出。报告全文→ [第三方验证报告_LoCoMo_灵枢_.md](docs/eval/第三方验证报告_LoCoMo_灵枢_.md) · 配图 → [第三方验证报告_LoCoMo_灵枢_.png](docs/eval/第三方验证报告_LoCoMo_灵枢_.png) · 独立评测脚本 `test/locomo_independent_eval.py`、`test/locomo_jaccard_probe.py`(第三方交付物原样入库,`REPO` 变量为第三方沙箱路径,复现需改为本机仓库路径)
|
|
206
|
+
>
|
|
207
|
+
> **口径声明**:两份报告均为外部独立口径,与上方内部七维自评(8.6)是**多套独立口径,分数不可互比**;LoCoMo 报告同时验证了数字可复现性与归因边界,其归因发现已如实吸收进[中英双语检索差距](#-中英双语检索差距我们用中文语义归一化解决英文检索实证)一节。
|
|
208
|
+
|
|
177
209
|
---
|
|
178
210
|
|
|
179
211
|
## 🧩 能力速查(能力 → 入口)
|
|
@@ -182,24 +214,60 @@ python -m md_cg.bench_progressive # 渐进式语义检索双实验(G0 9
|
|
|
182
214
|
|---|---|
|
|
183
215
|
| 记忆写入 · 关系链接 · 结构关系 | `cg(op=write)` `cg(op=link)` `stg(op=relation)` |
|
|
184
216
|
| 多路融合检索 · 条件路由 · 因果链 · 时间线 | `mdcg_recall` `mdcg_search` `cg(op=route)` `stg(op=timeline)` |
|
|
217
|
+
| 事实时效过滤(`validity=true` 只排「已过期」,保留「未生效」) | `mdcg_recall` `mdcg_search` `cg(op=read)` |
|
|
185
218
|
| 写入裁决 · 主动遗忘 · 冲突检测 · 反思 | `mdcg_remember` `cg(op=verify)` `cg(op=metacognition)` `mdcg_reflect` |
|
|
186
219
|
| 重要性评分 · 预算装包 · 分层注入 · 记忆自净 | `cg(op=session)` `cg(op=scrub)` `cg(op=info)` |
|
|
187
220
|
| 知识固化 · 结构变更账本 / 回滚 · 自维持巡检 | `mdcg_flywheel` `cg(op=consolidate)` `cg(op=maintain)` `cg(op=sustain)` |
|
|
188
221
|
| 身份一致性 · 自我状态 · 演化史 | `cg(op=identity)` `cg(op=self_state)` `cg(op=evolution)` |
|
|
189
|
-
| 加密 · 密级隔离 · 审计留痕 · 保护/遗忘 | `cg(op=protect)` `cg(op=forget)` · [护栏宪章](docs/guardrail-charter.md) |
|
|
222
|
+
| 加密 · 密级隔离 · 审计留痕 · 保护/遗忘 | `cg(op=protect)` `cg(op=forget)` · [护栏宪章](docs/mdcg/guardrail-charter.md) |
|
|
223
|
+
| 记忆可靠性闸(对话→六要素候选→编外复核→落库) | `cg(op=ccg)` |
|
|
224
|
+
|
|
225
|
+
> **索引链**:能力 → op(本表)→ 实现模块(下方[工具面](#-工具面)认知图)→ 行号级代码映射([功能调用映射表](docs/mdcg/功能调用映射表_v0.1.md))——每一步都可从 README 一跳到达源码,一致性由 `scripts/cogmap_sync.py check` 守卫。
|
|
226
|
+
|
|
227
|
+
### 🧱 记忆可靠性闸:CCG 六要素编译(`cg(op=ccg)`)
|
|
228
|
+
|
|
229
|
+
把对话记录编译成可检索的 CCG 六要素条目(`# 功能名 / # 生效条件 / # 子功能 / # 执行 / # 验证方式 / # 不适用条件`),且**编译者不得自证**——LLM 产出的候选必须经**认知图之外的编外单元**复核才准落库(机械拒绝码 `E041`,不依赖 prompt 自觉)。候选以内容摘要绑定暂存(`_ccgc_pending/`,索引不可见),三次独立调用间防篡改。
|
|
230
|
+
|
|
231
|
+
| 步骤 | 调用 | 结果 |
|
|
232
|
+
|---|---|---|
|
|
233
|
+
| ① 编译 | `cg(op=ccg, action=compile, node_id=…, dialog=…)` | 六要素候选 + 名实门校验(每个写入值必须是原文子串),**不当场写库** |
|
|
234
|
+
| ② 复核 | `cg(op=ccg, action=review, node_id=…, blocking=true)` | 编外单元裁决:蜂巢 `reflect`/`verify` 优先;蜂巢不可用则**返回配置指引**(不假装可用),显式 `allow_degrade` 才降级为子代理 |
|
|
235
|
+
| ③ 落库 | `cg(op=ccg, action=link, node_id=…, apply=true)` | 摘要校验 + 签章准入通过才写入 |
|
|
236
|
+
|
|
237
|
+
错误码:`E040` 无签章 · `E041` 自证拒绝 · `E042` 复核未通过 · `E043` 只允许修正四槽(`action=recalibrate`)。`action=catalog` 自描述全部动作,`action=units` 体检复核通道(三态:蜂巢 / 待配置 / 子代理降级)。
|
|
190
238
|
|
|
191
239
|
---
|
|
192
240
|
|
|
193
241
|
## 🧰 工具面
|
|
194
242
|
|
|
195
|
-
|
|
243
|
+
<!-- COGMAP:BEGIN (scripts/cogmap_sync.py 自动生成 · 真源 md_cg/mcp_server.py · 勿手改段内) -->
|
|
244
|
+
|
|
245
|
+
**两个认知基元 · 40 个 op**(`kernel` 面)——下列 op 清单、实现模块与全部链接行号由 [cogmap_sync](scripts/cogmap_sync.py) 从真源自动提取,`check` 门禁守卫漂移;**点击任意名字直达源码对应行**:
|
|
246
|
+
|
|
247
|
+
| 基元 | op 数 | op 清单(点击直达实现分支) |
|
|
248
|
+
|---|---|---|
|
|
249
|
+
| **[`cg`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L513)** 认知图统一入口 | 36 | [`help`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1914) [`status`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1920) [`edges`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1923) [`theory`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1926) [`link`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1943) [`info`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2052) [`route`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2069) [`read`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2090) [`write`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2124) [`goal`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2132) [`task`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2151) [`recent`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2154) [`verify`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2166) [`review`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2170) [`forget`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2190) [`protect`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2196) [`identity`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2199) [`consistency`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2202) [`metacognition`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2205) [`self_state`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2208) [`evolution`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2211) [`sustain`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2214) [`scrub`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2217) [`predict`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2220) [`causal`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2223) [`whitebox`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2226) [`index_code`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2229) [`index_doc`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2261) [`ref`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2297) [`session`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2300) [`ingest`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2303) [`export`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2306) [`maintain`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2309) [`consolidate`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2312) [`insight`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2315) [`ccg`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2318) |
|
|
250
|
+
| **[`stg`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L947)** 语义时空图入口 | 4 | [`relation`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2858) [`timeline`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2860) [`anchors`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2864) [`consistency`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2868) |
|
|
196
251
|
|
|
197
|
-
|
|
252
|
+
**op → 实现模块**(认知图投影:功能在哪段代码,一眼可达):
|
|
253
|
+
|
|
254
|
+
| op(点击直达实现分支) | 实现模块(点击直达源码) |
|
|
198
255
|
|---|---|
|
|
199
|
-
|
|
|
200
|
-
|
|
|
256
|
+
| [`help`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1914) [`status`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1920) [`edges`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1923) [`route`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2069) [`goal`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2132) [`task`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2151) [`recent`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2154) [`verify`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2166) [`review`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2170) [`forget`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2190) [`protect`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2196) [`identity`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2199) [`consistency`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2202) [`metacognition`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2205) [`self_state`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2208) [`evolution`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2211) [`sustain`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2214) [`scrub`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2217) [`predict`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2220) [`causal`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2223) [`whitebox`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2226) [`ref`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2297) [`session`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2300) [`ingest`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2303) [`export`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2306) [`maintain`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2309) [`consolidate`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2312) [`insight`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2315) [`ccg`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2318) | [`_cg_dispatch` 内联](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1911) |
|
|
257
|
+
| [`read`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2090) [`index_code`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2229) [`index_doc`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2261) | [`refindex`](md_cg/refindex.py) |
|
|
258
|
+
| [`info`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2052) | [`audit`](md_cg/audit.py), [`links`](md_cg/links.py), [`nodefile`](md_cg/nodefile.py), [`theory`](md_cg/theory.py) |
|
|
259
|
+
| [`link`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1943) | [`evidence`](md_cg/evidence.py), [`links`](md_cg/links.py), [`provenance`](md_cg/provenance.py), [`signer`](md_cg/signer.py) |
|
|
260
|
+
| [`theory`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L1926) | [`theory`](md_cg/theory.py) |
|
|
261
|
+
| [`write`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2124) | [`writepipe`](md_cg/writepipe.py) |
|
|
262
|
+
| [`relation`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2858) [`timeline`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2860) [`anchors`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2864) [`consistency`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2868) | [`_stg_call` 内联](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L2846) |
|
|
263
|
+
|
|
264
|
+
**细粒度面**(`MDCG_MCP_SURFACE=full`,插件运行时使用):[`cg`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L513) + [`stg`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L947) + **31 个 `mdcg_*`** = **33 个工具**:
|
|
265
|
+
|
|
266
|
+
[`mdcg_remember`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L101) [`mdcg_recall`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L122) [`mdcg_search`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L160) [`mdcg_get`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L172) [`mdcg_reflect`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L177) [`mdcg_verify`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L183) [`mdcg_flywheel`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L191) [`mdcg_mine_fix_pairs`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L196) [`mdcg_rejected`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L201) [`mdcg_unresolved`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L207) [`mdcg_propose`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L213) [`mdcg_review_list`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L221) [`mdcg_review_decide`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L226) [`mdcg_review_records`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L240) [`mdcg_forget`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L248) [`mdcg_protect`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L256) [`mdcg_forgetting_history`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L266) [`mdcg_identity`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L272) [`mdcg_consistency`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L298) [`mdcg_metacognition`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L318) [`mdcg_self_state`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L340) [`mdcg_predict`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L378) [`mdcg_causal`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L406) [`mdcg_evolution`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L423) [`mdcg_restore`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L446) [`mdcg_health`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L451) [`mdcg_whoami`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L456) [`mdcg_ingest`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L461) [`mdcg_watermarks`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L470) [`mdcg_whitebox`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L475) [`mdcg_service_info`](https://github.com/FuRongJun-1999/dsh-memory/blob/main/md_cg/mcp_server.py#L496)
|
|
201
267
|
|
|
202
|
-
|
|
268
|
+
逐个 op 的「功能 → 代码 → op」行号级映射另见[功能调用映射表](docs/mdcg/功能调用映射表_v0.1.md)。
|
|
269
|
+
|
|
270
|
+
<!-- COGMAP:END -->
|
|
203
271
|
|
|
204
272
|
| `tools` 模式 | 暴露数 | 说明 |
|
|
205
273
|
|---|---|---|
|
|
@@ -209,7 +277,7 @@ python -m md_cg.bench_progressive # 渐进式语义检索双实验(G0 9
|
|
|
209
277
|
|
|
210
278
|
> 风险工具 `mdcg_forget` / `mdcg_restore` / `mdcg_review_decide` 需 `can_admin`,即使 `tools: 'all'` 也不自动暴露。
|
|
211
279
|
> 35 op 已逐一冒烟验证:**35/35 可达,0 未知 op、0 意外崩溃**。
|
|
212
|
-
>
|
|
280
|
+
> 历史 82 工具(旧 aeis 引擎)去向见 [迁移映射](docs/mdcg/灵枢82工具_功能整理与迁移映射_v0.1.md)。
|
|
213
281
|
|
|
214
282
|
---
|
|
215
283
|
|
|
@@ -294,20 +362,25 @@ DSH 采用 Cordis bundle 机制,新增或更新插件后必须**重启 DSH 进
|
|
|
294
362
|
|
|
295
363
|
| 文档 | 内容 |
|
|
296
364
|
|---|---|
|
|
297
|
-
| [
|
|
298
|
-
| [
|
|
299
|
-
| [
|
|
300
|
-
| [
|
|
301
|
-
| [
|
|
302
|
-
|
|
|
303
|
-
| [
|
|
304
|
-
| [
|
|
365
|
+
| **[docs/ 目录索引](docs/README.md)** | 六域快速索引(mdcg / swarm / hive / theory / eval / plans)· 新文档归域规则 |
|
|
366
|
+
| [README 详细版](docs/mdcg/README详细版_v0.4.5.md) | 完整能力说明 · 配置项全表 · 安装与验证细节 |
|
|
367
|
+
| [发布说明 v0.4.5](docs/mdcg/release_v0.4.5.md) | 本版变更 / 兼容性 / 升级指引 |
|
|
368
|
+
| [AGI 七维评分报告 v2.0](docs/eval/AGI七维评分报告_md_cg_v2.0.md) | 逐维得分依据 / 扣分项 / 实库证据 / 诚实边界 |
|
|
369
|
+
| [第三方复评 · 统一评分 v7](docs/eval/第三方验证报告_灵枢_vs_dejavu_统一评分_v7.md) | 独立评估者七轮对照(灵枢 vs deja-vu):八维加权 / 收敛轨迹 7.79→9.258 / 评审偏差声明 / 自身建议全撤回勘误 |
|
|
370
|
+
| [第三方验证 · LoCoMo 独立复现](docs/eval/第三方验证报告_LoCoMo_灵枢_.md) | 独立实现评测全流程:自报数字逐位复现 / 归因拆解(中文摘要层 vs 英文归一化 81.0%)/ 静默错译样本 / 数据集区分度证伪检查(配图 `第三方验证报告_LoCoMo_灵枢_.png`) |
|
|
371
|
+
| [功能调用映射表](docs/mdcg/功能调用映射表_v0.1.md) | 任何功能 → 调用哪段代码(含行号、MCP op) |
|
|
372
|
+
| [护栏宪章 v2.0](docs/mdcg/guardrail-charter.md) | 对外部智能体与人类使用者的行为边界 |
|
|
373
|
+
| 教学四篇 | [白箱智能是什么?](docs/theory/白箱智能是什么?.md) · [智能的认知过程](docs/theory/智能的认知过程.md) · [智能的公理化基石](docs/theory/智能的公理化基石.md) · [信息差为什么必然存在](docs/theory/信息差为什么必然存在且自然扩大.md) |
|
|
374
|
+
| [工作纪律·认知图条目 v1.1](docs/工作纪律_认知图条目_v1.1.json) | 自我约束的 17 条工作纪律(嵌套认知图条目 `work_discipline`) |
|
|
375
|
+
| [六家记忆系统横评 v1.0](docs/eval/横评_六家100题中英双查_v1.0.md) | 100 题 · **中英双查** · 六家同口径对照;含判定单 / 条件层归因 / 诚实边界(题集 → [data/benchmarks/bench6-100-zh-en/](data/benchmarks/bench6-100-zh-en/README.md)) |
|
|
305
376
|
| [Rust 检索库](rust/README.md) | `mdcg_eval` 三形态:库内嵌大批量检索 / `--serve` 多智能体进程实例 / 公开数据集评测器(零依赖 · 与 Python 口径逐位对齐) |
|
|
306
|
-
| [蜂群多智能体](docs/蜂群多智能体_功能说明_v0.6.md) | `swarm/` 多进程蜂群执行层(2026-09-13 自 protocol-compiler 迁入,大脑核心内部能力):.pbc 确定性实例 + Gossip/拓扑/水位信箱/WAL-HMAC/信任聚合/健康评分(Rust 纯 std 零依赖 · 159 断言回归全绿) |
|
|
377
|
+
| [蜂群多智能体](docs/swarm/蜂群多智能体_功能说明_v0.6.md) | `swarm/` 多进程蜂群执行层(2026-09-13 自 protocol-compiler 迁入,大脑核心内部能力):.pbc 确定性实例 + Gossip/拓扑/水位信箱/WAL-HMAC/信任聚合/健康评分(Rust 纯 std 零依赖 · 159 断言回归全绿) |
|
|
307
378
|
|
|
308
379
|
### 多 harness 接入(按端分目录)
|
|
309
380
|
|
|
310
|
-
|
|
381
|
+
> **主推路径:MCP 直挂**——各端接入的**共性是挂载同一个 stdio MCP server**(`python -m md_cg.mcp_server`):任何支持 MCP 的宿主直接挂上即可,**不依赖任何插件系统**。
|
|
382
|
+
|
|
383
|
+
共享层(`md_cg/` 大脑 · `data/` · `docs/` · `scripts/`)在仓库根;**harness 专属配置按端归置**,下表列的只是各端**纪律注入方式**的差异(纪律如何进入上下文),大脑与记忆真源零改动:
|
|
311
384
|
|
|
312
385
|
| 目录 | harness | 接入文档 | 纪律注入方式 |
|
|
313
386
|
|---|---|---|---|
|
|
@@ -320,7 +393,10 @@ DSH 采用 Cordis bundle 机制,新增或更新插件后必须**重启 DSH 进
|
|
|
320
393
|
> 五端纪律**同源**(`docs/工作纪律_认知图条目_v1.1.json`),由 `scripts/render_discipline.py` 渲染、
|
|
321
394
|
> `scripts/verify_discipline.py` 守卫漂移;矩阵见 `docs/discipline/harnesses.yaml`。
|
|
322
395
|
|
|
323
|
-
|
|
396
|
+
<details>
|
|
397
|
+
<summary><b>可选补充:插件形态安装(仅 Claude Code / Codex CLI · 省手工复制,非主推路径)</b></summary>
|
|
398
|
+
|
|
399
|
+
> 等价于按上表手工配置,只是把纪律 skill 与配置样例随插件一起拿到;**不装插件不影响任何能力**。
|
|
324
400
|
|
|
325
401
|
| 宿主 | 安装 | 插件位置 | 装后一步 |
|
|
326
402
|
|---|---|---|---|
|
|
@@ -332,16 +408,23 @@ DSH 采用 Cordis bundle 机制,新增或更新插件后必须**重启 DSH 进
|
|
|
332
408
|
> 大脑仍是你本机的 dsh-memory 仓库;插件形态的纪律 skill 同样由真源渲染(`skill` 变体,
|
|
333
409
|
> 矩阵槽位 `claude-code-plugin-skill` / `codex-plugin-skill`),漂移由同一 `verify_discipline.py` 守卫。
|
|
334
410
|
|
|
411
|
+
</details>
|
|
412
|
+
|
|
335
413
|
---
|
|
336
414
|
|
|
337
415
|
## 🛠️ 开发
|
|
338
416
|
|
|
339
417
|
```bash
|
|
340
|
-
npm install
|
|
418
|
+
npm install # NODE_ENV=production 时须加 --include=dev
|
|
341
419
|
npm run build # TypeScript 编译
|
|
342
420
|
npm test # 真实集成测试(spawn 本机灵枢,验证握手/往返/注册/卸载)
|
|
343
421
|
```
|
|
344
422
|
|
|
423
|
+
> `NODE_ENV=production`(或 `--omit=dev`)会省略 devDependencies,`tsc`/`tsx` 不在位;
|
|
424
|
+
> 此时 `prepare` **跳过构建并在 stdout 明示**(不再让 `npm install` 因 `tsc` 缺失而整体失败),
|
|
425
|
+
> 需要构建请用 `npm install --include=dev`。另:`engines.node >=22.19` 之下运行会收到
|
|
426
|
+
> EBADENGINE 警告(仅提示,不阻断)。
|
|
427
|
+
|
|
345
428
|
测试不依赖 DSH 全组件——用最小 Cordis host(SystemPrompt + ToolRegistry + 插件)隔离不稳定面。
|
|
346
429
|
|
|
347
430
|
### Python 测试约定(必须 `python -m`)
|
|
@@ -360,20 +443,20 @@ python scripts/run_tests.py --jobs 1 # 串行(默认并发 4)
|
|
|
360
443
|
|
|
361
444
|
## 📏 工程纪律与设计者视角(可选推荐)
|
|
362
445
|
|
|
363
|
-
> **这段话是什么**:灵枢自身按一套 **
|
|
446
|
+
> **这段话是什么**:灵枢自身按一套 **17 条工程纪律** 运行——方法论(理论先行 / 全面处理 / 根因纪律)、执行(验证先行 / 双副本同步 / 兜底路径)、执行调度(任务派发统一走蜂巢:执行留痕 / 统一调度面)、合规(内容政策双清单 / 敏感信息隔离)、记忆闭环(查记忆 → 执行 → 写记忆)。它原本是灵枢的「自我约束」,与你要不要用灵枢无关;但如果你希望自己的 Agent 也具备同样的工作方式,这套纪律与配套元技能**都可以直接复用**。
|
|
364
447
|
|
|
365
448
|
**两个可复用入口**:
|
|
366
449
|
|
|
367
450
|
| 入口 | 内容 | 位置 |
|
|
368
451
|
|---|---|---|
|
|
369
|
-
| **工程纪律(
|
|
452
|
+
| **工程纪律(17 条)** | 每条 ≡ 一个认知图节点(生效条件 / 执行锚点 / 不适用条件 / 直答出口),含触发词路由 | 真源:[`docs/工作纪律_认知图条目_v1.1.json`](docs/工作纪律_认知图条目_v1.1.json) · 全文投影:[`codebuddy/CODEBUDDY.md`](codebuddy/CODEBUDDY.md)(各端产物见 [多 harness 接入](#多-harness-接入按端分目录)) |
|
|
370
453
|
| **设计者视角(元技能)** | 在动手前回答「该不该做 / 为什么做 / 条件够不够」:条件空间声明 → 四态资格裁决(ACCEPT/REJECT/DEFER/BLINDSPOT)→ 失配归因;附自检 17/17 | [`skills/skills/designer-perspective/`](skills/skills/designer-perspective/)(`tests/selftest.py` 可自行验收) |
|
|
371
454
|
|
|
372
|
-
> **按需裁剪**:
|
|
455
|
+
> **按需裁剪**:17 条中部分条款针对灵枢私有管线(如图像选源线),复用时建议只取方法论 / 执行 / 执行调度 / 合规 / 记忆闭环五组通用条款。多 harness 渲染与防漂移守卫见 [多 harness 接入](#多-harness-接入按端分目录)。
|
|
373
456
|
|
|
374
457
|
## 护栏宪章(接入即接受约束)
|
|
375
458
|
|
|
376
|
-
本插件接入即接受 **[灵枢护栏宪章 v2.0-published](docs/guardrail-charter.md)** 约束——对外部智能体与人类使用者的行为边界作出公开、可执行、可审计的规定,并保护人类使用者。
|
|
459
|
+
本插件接入即接受 **[灵枢护栏宪章 v2.0-published](docs/mdcg/guardrail-charter.md)** 约束——对外部智能体与人类使用者的行为边界作出公开、可执行、可审计的规定,并保护人类使用者。
|
|
377
460
|
|
|
378
461
|
## 许可证
|
|
379
462
|
|
package/codebuddy/CODEBUDDY.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# 工作纪律(工作纪律_认知图条目_v1.1)·
|
|
1
|
+
# 工作纪律(工作纪律_认知图条目_v1.1)· 17 条
|
|
2
2
|
|
|
3
3
|
> 本文件由 `scripts/render_discipline.py` 从真源
|
|
4
4
|
> `docs/工作纪律_认知图条目_v1.1.json` 渲染生成,**请勿手改**;改真源后重跑渲染。
|
|
5
|
-
> 真源指纹(SHA256 前16位):
|
|
5
|
+
> 真源指纹(SHA256 前16位):37aed1b5423c00af
|
|
6
6
|
|
|
7
7
|
## 概述
|
|
8
8
|
|
|
9
|
-
工作纪律集: 4条方法论(理论先行/全面处理/白箱方法/根因) + 3条执行(验证/双副本/兜底) + 1条思考(中文思考/协作模式分级) + 1条保密(敏感信息隔离) + 3条图像线(选源护栏/历史查询优先/算法权威唯一) + 1条协作(访谈澄清:先问清再动手) + 1条合规(内容政策合规:公开产物过内容政策+隐私双清单) +
|
|
9
|
+
工作纪律集: 4条方法论(理论先行/全面处理/白箱方法/根因) + 3条执行(验证/双副本/兜底) + 1条思考(中文思考/协作模式分级) + 1条保密(敏感信息隔离) + 3条图像线(选源护栏/历史查询优先/算法权威唯一) + 1条协作(访谈澄清:先问清再动手) + 1条合规(内容政策合规:公开产物过内容政策+隐私双清单) + 2条执行调度与运行环境(命令执行统一走python/UTF-8: 显式encoding+PYTHONUTF8=1, 规避GBK; 任务派发统一走蜂巢: 任何执行性任务经蜂巢spawn/submit执行并留痕, agent本体只做编排, L1出口=产物落点为只读判定(不改仓库/外部状态)可直跑须留痕) + 1条记忆闭环(任务收尾归档:每次任务执行完只将核心修改(内容/原因/位置/验证结论)按CCG六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆, 不写中间过程)
|
|
10
10
|
|
|
11
11
|
## 执行公约
|
|
12
12
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
### 1. 理论先行
|
|
24
24
|
|
|
25
25
|
- **触发**:重要项目|长期任务
|
|
26
|
-
-
|
|
26
|
+
- **动作**:识别项目级别→检索理论文档与既有实践→输出理论要点→再进入设计
|
|
27
27
|
- **不适用**:情感交互|闲聊
|
|
28
28
|
- **声明**:按工作纪律第1条: 理论先行——先查相关理论与既有实践再动手。
|
|
29
29
|
|
|
@@ -128,9 +128,16 @@
|
|
|
128
128
|
### 16. 任务收尾归档(记忆闭环)
|
|
129
129
|
|
|
130
130
|
- **触发**:任务执行完成|修改落地后|交付后
|
|
131
|
-
- **动作**:任务收尾→提炼核心修改(内容/原因/位置/验证结论四要素, 不写中间过程/试错/调试/重复确认)→写入灵枢记忆(认知图/MCP memory)→标注关联条目+更新 subgraph/depends_on
|
|
131
|
+
- **动作**:任务收尾→提炼核心修改(内容/原因/位置/验证结论四要素, 不写中间过程/试错/调试/重复确认)→按 CCG 六要素成文(# 功能名/# 生效条件/# 子功能/# 执行/# 验证方式/# 不适用条件 六行缺一不可, 与正文四要素并置)→写入灵枢记忆(认知图/MCP memory)→读回确认(写入后发起一次读取查询确认写入成功且可检索)→标注关联条目+更新 subgraph/depends_on
|
|
132
132
|
- **不适用**:情感交互|闲聊|纯查询无改动
|
|
133
|
-
- **声明**:按工作纪律第16条: 任务收尾归档——每次任务执行完只提炼核心修改(内容/原因/位置/验证结论)
|
|
133
|
+
- **声明**:按工作纪律第16条: 任务收尾归档——每次任务执行完只提炼核心修改(内容/原因/位置/验证结论)并按 CCG 六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆, 写入后发起一次读取查询确认写入成功且可检索, 禁写中间过程/试错/调试等无效信息, 与第2条形成「查记忆→执行→写记忆→读回确认」闭环。
|
|
134
|
+
|
|
135
|
+
### 17. 任务派发统一走蜂巢
|
|
136
|
+
|
|
137
|
+
- **触发**:执行性任务|多智能体协作|批量/并行工作|探索盘点|运行测试/脚本
|
|
138
|
+
- **动作**:任务→按产物落点判据定层级(不改仓库/外部状态的只读判定=L1直跑并按任务留痕一条(复核者=使用者+GitHub使用者); 改状态=必派发, 不得自我豁免)→拆spec(LLM委托型=默认exec.py: model+user_prompt+context_files; 确定性执行=自定义worker, 契约「读spec.json写result.json」)→hive_spawn/CLI submit→poll→汇总; 兜底情形须声明「蜂巢不可用, 兜底降级」
|
|
139
|
+
- **不适用**:纯会话内对话/问答(无执行动作)|蜂巢不可用且任务必须立即执行(兜底须声明)|L1只读判定(产物落点=不改仓库/不改外部状态的本地只读命令, 秒级·可逆·高频, 如跑门禁/测试/回归/lint看结论; 判据是产物落点而非「任务简单」的主观感受, 直跑须输出一行「L1 直跑:<命令> — 风险/频次/可逆性」留痕, 留痕粒度按任务(同一任务的多条只读命令合并为一条留痕, 不逐命令逐行); 层级归属的复核者=使用者+GitHub使用者)|情感交互|闲聊
|
|
140
|
+
- **声明**:按工作纪律第17条: 任务派发统一走蜂巢——任何执行性任务经蜂巢 spawn/submit 执行并留痕(spec/status/result), agent本体只做编排; 宿主自带subagent/team不是等价通道, 兜底须声明。L1只读判定(产物落点=不改仓库/外部状态)可直跑, 须输出「L1 直跑:<命令> — 风险/频次/可逆性」留痕。
|
|
134
141
|
|
|
135
142
|
## 声明出口(`response.direct` 原文 · 未输出即未执行)
|
|
136
143
|
|
|
@@ -151,7 +158,8 @@
|
|
|
151
158
|
| 13 | 按工作纪律第13条: 访谈澄清——先提问确认要做什么,逐轮问到完全清楚才动手;事实自查,决策归使用者,不完全清楚不固化。 |
|
|
152
159
|
| 14 | 按工作纪律第14条: 内容政策合规——对外公开产物必须过「内容政策+隐私」双清单,过滤在生成阶段做;已发布发现违规要删条+重写git历史+通知平台清缓存。 |
|
|
153
160
|
| 15 | 按工作纪律第15条: 命令执行统一走python——argv列表+显式UTF-8+PYTHONUTF8=1, 不经Windows shell, 规避GBK解码异常。 |
|
|
154
|
-
| 16 | 按工作纪律第16条: 任务收尾归档——每次任务执行完只提炼核心修改(内容/原因/位置/验证结论)
|
|
161
|
+
| 16 | 按工作纪律第16条: 任务收尾归档——每次任务执行完只提炼核心修改(内容/原因/位置/验证结论)并按 CCG 六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆, 写入后发起一次读取查询确认写入成功且可检索, 禁写中间过程/试错/调试等无效信息, 与第2条形成「查记忆→执行→写记忆→读回确认」闭环。 |
|
|
162
|
+
| 17 | 按工作纪律第17条: 任务派发统一走蜂巢——任何执行性任务经蜂巢 spawn/submit 执行并留痕(spec/status/result), agent本体只做编排; 宿主自带subagent/team不是等价通道, 兜底须声明。L1只读判定(产物落点=不改仓库/外部状态)可直跑, 须输出「L1 直跑:<命令> — 风险/频次/可逆性」留痕。 |
|
|
155
163
|
|
|
156
164
|
## 记忆接口速查(`cg` / `stg`)
|
|
157
165
|
|
|
@@ -160,16 +168,19 @@
|
|
|
160
168
|
| op | 用途 | 常用参数 |
|
|
161
169
|
|---|---|---|
|
|
162
170
|
| `route` | 任务开始路由记忆(返回知识 + 建议能力,不执行) | `intent`(任务意图) |
|
|
163
|
-
| `read` | 召回/检索/按 id 取(`session
|
|
171
|
+
| `read` | 召回/检索/按 id 取(`session`=只取该会话归属的记忆,缺省不过滤;`validity=true`=时效过滤(显式启用,缺省不过滤),**仅排除「已过期」,「未生效」一律保留**——两者语义相反) | `query` / `node_id` / `k` / `layer` / `budget_tokens` / `context` / `session` / `validity` |
|
|
172
|
+
| `edges` | 三元组反查(**只读**):按派生边任意端/谓词/时间反查「这条记忆从哪来 / 谁由它派生」(subject/predicate/object 即 child/relation/parent);`expand_nodes=true` 附命中端点节点卡 | `child` / `parent` / `relation` / `batch` / `start_time` / `end_time` / `time_axis` / `ordering` / `offset` / `limit` / `aggregation` / `expand_nodes` |
|
|
164
173
|
| `write` | 写入(先按 content_kind 审核 + 冲突检测,ACCEPT 落盘 / DEFER 入审核队列 / REJECT 入负记忆)。**自动归属**:frontmatter 带 `writer`/`session`/`harness`(服务端身份,不可伪造) | `content` / `content_kind`(text/code/…)/ `node_id`(同 id 即改写)/ `layer` / `tags` / `importance` / `verification_basis` / `condition_space` / `gated` / `consistency` / `on_conflict`(reject\|defer\|record) |
|
|
165
174
|
| `verify` | 对节点做证据验证(confirmed/weakened/falsified)——**非队列裁决** | `node_id` / `verdict` / `evidence` |
|
|
166
|
-
| `review` | 审核队列:`action=list/rounds/records` 查看;传 `pid`+`decision`+`reason` 即裁决落盘(accept/reject/edit/merge,**需 can_admin
|
|
175
|
+
| `review` | 审核队列:`action=list/rounds/records/stats` 查看;传 `pid`+`decision`+`reason` 即裁决落盘(accept/reject/edit/merge/noop,**需 can_admin**;`noop`=已评估且判定不改动任何现有记忆,只留痕不入库、不进负记忆;本机未配置外部验证器时写入恒 DEFER 入队,靠此裁决落盘) | `action` / `pid` / `decision` / `reason` / `edits` / `merge_into` |
|
|
176
|
+
| `task` | 结构层任务实体(工程台账,跨会话/上下文压缩后不遗忘):`name` 即身份(同名即同任务,slug 归一),`action` = open/status/plan_add/get/list/find/session(缺省 list);**迁 `done` 必须同时给 `result`**(缺一不收,拒收不落盘);未提供的字段沿用旧值(结果不会被静默清空) | `name` / `action` / `plan`(分步计划,每轮覆盖) / `change`(计划变更,逐轮追加) / `result` / `task_status`(active\|blocked\|done\|dropped) / `goal` / `acceptance` / `boundary` / `condition` / `node_id` |
|
|
167
177
|
| `recent` | 近期事件窗口 | `action`(add/list/clear)/ `limit` |
|
|
168
178
|
| `forget` / `protect` | 软删除/恢复 / 写保护 | `node_id` |
|
|
179
|
+
| `help` | 取回工具面上**被投影外置**的完整 op / 参数文档(工具面渐进披露:常驻提示只留一行职责,参数语义按需取;不带 `query` 则列出全部工具) | `query`(工具名或 op 名,如 `cg` / `write`)/ `limit` |
|
|
169
180
|
|
|
170
181
|
三条调用铁律:
|
|
171
182
|
1. **`op` 必填**——漏传会触发参数签名推导兜底(返回标记 `op_derived: true`),复杂任务中也必须显式传,防静默执行错误意图。
|
|
172
|
-
2. **返回 `moved_to: "review_queue"` / `verdict: DEFER/REJECT` 时不要重试**——这是校验闸门的正常行为(返回自带 `hint` 说明),重试同样结果;落盘须由设计者权限(can_admin)经 `op=review` 裁决(decision=accept/reject/edit/merge,本机工具:`python scripts/review_cli.py list`),agent 端无裁决权是设计(写入者不得自裁自决),转告使用者即可。
|
|
183
|
+
2. **返回 `moved_to: "review_queue"` / `verdict: DEFER/REJECT` 时不要重试**——这是校验闸门的正常行为(返回自带 `hint` 说明),重试同样结果;落盘须由设计者权限(can_admin)经 `op=review` 裁决(decision=accept/reject/edit/merge/noop,本机工具:`python scripts/review_cli.py list`),agent 端无裁决权是设计(写入者不得自裁自决),转告使用者即可。
|
|
173
184
|
3. `stg` 同理经 `op` 分发(`timeline` / `relation` / `anchors` 等)。
|
|
174
185
|
|
|
175
186
|
## 收尾强制流程(任务完成时不可跳过)
|
package/codebuddy/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
| 文件 | 作用 | 性质 |
|
|
9
9
|
|---|---|---|
|
|
10
10
|
| `CODEBUDDY.md` | 16 条工作纪律全文(会话起始注入) | **渲染产物**,勿手改 |
|
|
11
|
-
| `mcp.json` |
|
|
11
|
+
| `mcp.json` | 灵枢接入模板:`mdcg`(记忆大脑)+ `hive`(蜂巢并发)两条 MCP server(复制进 CodeBuddy 设置) | 模板 |
|
|
12
12
|
| `README.md` | 本文件(接入说明 + 记忆策略) | 手写 |
|
|
13
13
|
|
|
14
14
|
## 三步接入
|
|
@@ -26,6 +26,18 @@ dsh-memory 仓库所在目录**。此处须用可解析的绝对路径——Pyth
|
|
|
26
26
|
> `stg` 两个认知基元;`cg` 已覆盖 `route` / `read` / `write` 等全部 op,**写入通道不缺**。
|
|
27
27
|
> 细粒度 `mdcg_*` 工具仅在 `full` 面可见,属兼容 / 调试用途,日常接入无需开启。
|
|
28
28
|
|
|
29
|
+
#### 1b. 接入蜂巢(多智能体并发 + 任务上下文管理)
|
|
30
|
+
|
|
31
|
+
`mcp.json` 里同源的第二条 `mcpServers.hive` 一并合并——四工具 `hive_spawn` / `hive_poll` /
|
|
32
|
+
`hive_kill` / `hive_doctor`,提供**跨 harness 通用的并发执行**与**任务上下文管理**
|
|
33
|
+
(`context_files` 注入、预算交回续跑、进展卡观察)。语义与边界见
|
|
34
|
+
[`../hive/README.md`](../hive/README.md) 的「各 harness 注册」。
|
|
35
|
+
|
|
36
|
+
> 依赖 Rust 侧 `hive.exe` 与 `hive/config.local.json`(执行器密钥)。未构建时先
|
|
37
|
+
> `cd hive && cargo build --release`;首次 `hive_spawn` 会自动以 detached 方式拉起 `serve`。
|
|
38
|
+
> **确定性任务(跑命令 / 测试)不在 MCP 面**,走 CLI:
|
|
39
|
+
> `hive/target/release/hive.exe submit --spec <spec.json>`。
|
|
40
|
+
|
|
29
41
|
### 2. 注入工作纪律
|
|
30
42
|
|
|
31
43
|
把 `CODEBUDDY.md` 复制到**你项目的根目录**。
|
package/codebuddy/mcp.json
CHANGED
|
@@ -13,6 +13,15 @@
|
|
|
13
13
|
"MDCG_CLEARANCE": "private",
|
|
14
14
|
"MDCG_TOKEN": ""
|
|
15
15
|
}
|
|
16
|
+
},
|
|
17
|
+
"hive": {
|
|
18
|
+
"command": "python",
|
|
19
|
+
"args": ["-m", "hive.hive_mcp.mcp_server"],
|
|
20
|
+
"env": {
|
|
21
|
+
"PYTHONPATH": "REPLACE_WITH_ABSOLUTE_PATH_TO_dsh-memory",
|
|
22
|
+
"PYTHONUTF8": "1",
|
|
23
|
+
"PYTHONIOENCODING": "utf-8"
|
|
24
|
+
}
|
|
16
25
|
}
|
|
17
26
|
}
|
|
18
27
|
}
|