@furongjun1999/dsh-memory 0.7.1 → 0.7.3
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 +58 -48
- package/codebuddy/CODEBUDDY.md +9 -9
- package/docs/README.md +148 -144
- package/docs/discipline/harnesses.yaml +16 -8
- package/docs/discipline/templates/zcode-user.md.tmpl +49 -0
- package/docs/eval/AGI/344/270/203/347/273/264/350/257/204/345/210/206/346/212/245/345/221/212_/345/205/255/345/256/266/350/256/260/345/277/206/347/263/273/347/273/237/345/220/214/345/260/272/345/256/236/346/265/213_v3.1.md +340 -0
- package/docs/eval/N225_/347/264/242/345/274/225/346/227/245/345/277/227/351/235/236/345/257/271/350/261/241/350/243/205/350/275/275/351/235/242/347/261/273/345/236/213/351/227/270_v1.0.md +2 -2
- package/docs/eval/cons200_/345/206/262/347/252/201/346/243/200/346/265/213/351/200/211/351/235/242_/345/256/236/346/226/275/350/256/260/345/275/225_v1.0.md +1 -1
- package/docs/eval/cons200_/345/206/262/347/252/201/346/243/200/346/265/213/351/200/211/351/235/242_/345/256/236/346/226/275/350/256/260/345/275/225_v1.1.md +1 -1
- package/docs/eval/issue43_/351/273/230/350/256/244/347/255/226/347/225/245/344/270/216/351/224/256/347/261/273/345/236/213/351/227/270_v1.1.md +1 -1
- package/docs/eval/issue43_/351/273/230/350/256/244/347/255/226/347/225/245/345/212/240/350/275/275/344/270/216/345/207/255/346/215/256/346/230/216/346/226/207/351/230/237/345/210/227_v1.0.md +2 -2
- package/docs/eval/issue50_/345/205/203/346/225/260/346/215/256/351/200/217/344/274/240/344/270/216/345/205/234/345/272/225_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +5 -5
- package/docs/eval/issue50_/345/215/212/351/207/215/345/244/215/345/276/205/345/256/232/345/244/215/346/240/270_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +9 -9
- package/docs/eval/issue50_/345/276/205/345/256/232/345/244/215/346/240/270/345/205/245/351/230/237_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +4 -4
- package/docs/eval/issue50_/351/207/215/350/246/201/345/272/246/345/220/214/346/272/220/344/270/216/344/277/235/346/212/244/350/257/255/344/271/211_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +1 -1
- package/docs/eval/issue51_/344/270/200/351/224/256/345/256/211/350/243/205/345/244/261/350/264/245_/345/275/222/345/261/236/345/210/244/345/256/232_v1.0.md +1 -1
- package/docs/eval/issue52_/346/235/241/344/273/266/345/205/210/350/241/214/344/270/216/346/210/252/346/226/255/345/217/257/350/247/202/346/265/213_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +3 -3
- package/docs/eval//344/270/211/346/241/243/350/207/252/346/262/273_/346/255/245/351/252/244/342/221/242/345/217/230/346/233/264/345/215/225/344/270/216/345/233/236/346/273/232/345/216/237/350/257/255_/350/220/275/347/240/201/350/256/260/345/275/225_v1.0.md +3 -3
- package/docs/eval//344/270/211/346/241/243/350/207/252/346/262/273_/346/255/245/351/252/244/342/221/243/345/207/206/345/205/245/350/257/273/346/225/260_/350/220/275/347/240/201/350/256/260/345/275/225_v1.0.md +7 -7
- package/docs/eval//344/274/230/345/214/226/347/254/254/344/270/200/346/211/271_/346/216/245/347/272/277/344/270/216/347/255/211/344/273/267/345/217/230/346/215/242_v1.0.md +2 -2
- package/docs/eval//344/274/230/345/214/226/347/254/254/344/270/211/346/211/271_/351/227/250/347/246/201/350/275/254/346/255/243/344/270/216/350/260/203/345/272/246/346/255/242/350/241/200/344/270/216/351/227/250/346/216/247/346/224/266/345/217/243_v1.0.md +1 -1
- package/docs/eval//344/274/230/345/214/226/347/254/254/344/272/214/346/211/271_/344/276/235/350/265/226/351/200/217/344/274/240/344/270/216/345/257/271/346/213/215/345/217/243/345/276/204/344/270/216/350/264/237/347/274/223/345/255/230_v1.0.md +7 -7
- package/docs/eval//345/207/272/350/264/247/351/235/242/345/206/222/347/203/237_/350/277/233/350/264/247/351/227/250/347/246/201_v1.0.md +10 -10
- package/docs/eval//345/217/221/345/270/20307_/345/244/226/351/203/250/346/212/245/345/221/212/345/233/233/346/211/271/344/277/256/345/244/215/344/270/216/346/217/222/344/273/266/351/235/242/345/212/240/345/233/272_v1.0.md +4 -0
- package/docs/eval//345/217/221/345/270/20308_/350/207/252/350/277/255/344/273/243/344/270/216/347/235/241/347/234/240_/345/233/276/346/243/200/347/264/242/350/267/257/344/270/216/346/235/203/351/207/215_v1.0.md +1 -1
- package/docs/eval//345/217/221/345/270/20309_/346/243/200/347/264/242/351/235/242/344/270/211/346/211/271/346/224/266/345/217/243_v1.0.md +1 -1
- package/docs/eval//345/217/221/345/270/20310_/350/257/273/351/235/242/346/215/237/345/235/217UTF8/345/256/266/346/227/217/346/224/266/345/217/243_v1.0.md +71 -0
- package/docs/eval//345/217/221/345/270/20311_/345/244/226/346/212/245/345/205/255/350/277/236/344/277/256/344/270/216/344/270/226/347/225/214/346/250/241/345/236/213/345/272/225/345/272/247_v1.0.md +91 -0
- package/docs/eval//345/275/222/344/270/200/345/261/202/347/274/272/347/234/201/347/277/273/345/205/263_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +2 -2
- package/docs/eval//347/224/250/346/210/267/350/243/201/345/206/263/345/244/204/347/275/256_/347/254/254/344/270/200/346/211/271_v1.0.md +195 -0
- package/docs/eval//347/224/250/346/210/267/350/243/201/345/206/263/345/244/204/347/275/256_/347/254/254/344/272/214/346/211/271B6_/346/234/254/346/234/272/350/267/257/345/276/204/347/233/270/345/257/271/345/214/226_v1.0.md +78 -0
- package/docs/eval//347/253/257/345/210/260/347/253/257LoCoMoQA/345/220/214/345/217/243/345/276/204/345/257/271/347/205/247_v1.0.md +1 -1
- package/docs/eval//347/253/257/345/210/260/347/253/257/345/271/262/346/211/260/346/261/240/350/257/204/346/265/213_/347/241/256/345/256/232/346/200/247/350/243/201/345/206/263vsLLM_judge_v1.1.md +3 -3
- package/docs/eval//347/254/2543/345/261/202stg/347/273/223/346/236/204/347/264/242/345/274/225_/345/256/236/346/226/275/350/256/260/345/275/225_v1.0.md +1 -1
- package/docs/eval//347/274/226/347/240/201/351/235/242/345/211/215/347/275/256_/345/205/245/345/217/243/350/207/252/344/277/235/350/257/201UTF8/344/270/216/346/226/207/346/234/254open/345/256/210/345/215/253_v1.0.md +1 -1
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v26.md +196 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v27.md +259 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v28.md +217 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v29.md +270 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v30.md +231 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v31.md +281 -0
- package/docs/hive//345/256/211/345/205/250/345/256/241/350/256/241/345/256/236/351/224/232_v0.1.md +1 -1
- package/docs/hive//350/234/202/345/267/242M6_ingest/345/256/236/346/226/275/350/256/241/345/210/222_v0.1.md +1 -1
- package/docs/hive//350/234/202/345/267/242/345/217/214/345/256/236/344/276/213/344/272/222/351/252/214_/350/256/276/350/256/241/345/256/232/347/250/277.md +1 -1
- package/docs/hive//350/234/202/345/267/242/350/256/276/350/256/241_/347/220/206/350/256/272/345/257/271/351/275/220_v0.1.md +17 -17
- package/docs/hive//350/234/202/345/267/242/350/277/255/344/273/243_/345/256/217/350/247/202/344/270/216/347/276/244/344/275/223/350/260/203/345/272/246_v0.1.md +1 -1
- package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.10.md +2 -2
- 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 +42 -41
- package/docs/mdcg//345/217/221/345/270/203/351/227/250/347/246/201/351/223/276_v0.1.md +29 -8
- package/docs/mdcg//347/235/241/347/234/240/345/221/250/346/234/237_/350/277/220/347/273/264/345/211/215/346/217/220/344/270/216/347/273/264/346/212/244/346/214/207/345/215/227_v1.0.md +71 -1
- package/docs/plans//345/205/250/344/270/255/346/226/207/347/274/226/347/240/201/344/270/216/350/234/202/345/267/242/344/273/273/345/212/241/346/240/207/350/257/206/345/245/221/347/272/246_v2.0.md +1 -1
- package/docs/plans//345/244/232/344/270/273/344/275/223/344/270/226/347/225/214/346/250/241/345/236/213_/345/257/271/351/275/220/350/257/204/344/274/260/344/270/216/350/220/275/345/234/260/350/256/276/350/256/241_v0.1.md +141 -0
- package/docs/plans//347/235/241/347/234/240/344/270/216/350/207/252/350/277/255/344/273/243_/345/212/237/350/203/275/344/274/230/345/214/226/350/256/276/350/256/241_v0.4.md +2 -2
- package/docs/plans//350/257/255/344/271/211/346/227/266/347/251/272/345/233/276/350/241/245/345/205/250_/344/270/226/347/225/214/346/250/241/345/236/213/345/212/237/350/203/275/347/253/257_/350/256/276/350/256/241_v0.1.md +107 -0
- 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 +9 -8
- package/docs//347/247/244_/350/256/260/345/277/206/347/263/273/347/273/237/350/257/204/346/265/213/350/247/204/350/214/203_v2.1.md +225 -0
- package/dsh/cordis-patch-profile-web.example.yml +2 -2
- package/lib/bridge.js +9 -0
- package/lib/hooks.d.ts +8 -1
- package/lib/hooks.js +94 -32
- package/lib/lib/hook_audit.d.ts +55 -0
- package/lib/lib/hook_audit.js +208 -0
- package/lib/lib/mutual.js +5 -1
- package/lib/lib/roleplay_web.js +17 -2
- package/md_cg/auditview.py +248 -0
- package/md_cg/bench6_arms.py +10 -6
- package/md_cg/bench_e2e_judge.py +4 -2
- package/md_cg/branches.py +29 -3
- package/md_cg/census.py +2 -1
- package/md_cg/consistency.py +38 -13
- package/md_cg/datapath.py +38 -11
- package/md_cg/forgetting.py +15 -2
- package/md_cg/freshness.py +32 -11
- package/md_cg/ghostref.py +130 -0
- package/md_cg/judgment_manifest.py +7 -0
- package/md_cg/mcp_server.py +58 -1
- package/md_cg/mdcg.py +4923 -4764
- package/md_cg/mdcos.py +40 -15
- package/md_cg/mreview/locate.py +1 -1
- package/md_cg/nodefile.py +77 -13
- package/md_cg/readcache.py +29 -4
- package/md_cg/rollback.py +12 -3
- package/md_cg/routing.py +10 -1
- package/md_cg/selfreport.py +12 -3
- package/md_cg/sleep.py +129 -13
- package/md_cg/sources.py +1 -1
- package/md_cg/state_events.py +131 -0
- package/md_cg/sustain.py +1436 -1436
- package/md_cg/test_auditview.py +277 -0
- package/md_cg/test_autonomy_modes.py +2 -1
- package/md_cg/test_boot_openblas_guard.py +197 -0
- package/md_cg/test_ccg_form_parity.py +95 -4
- package/md_cg/test_cons200_scan_selection.py +4 -2
- package/md_cg/test_corrupt_utf8_read_surfaces.py +451 -0
- package/md_cg/test_datapath_device_name.py +62 -3
- package/md_cg/test_generation_guard.py +20 -11
- package/md_cg/test_ghostref.py +182 -0
- package/md_cg/test_health_corrupt_utf8.py +37 -0
- package/md_cg/test_index_crossprocess_reload.py +39 -24
- package/md_cg/test_interop.py +1 -1
- package/md_cg/test_issue52_scan_condition_first.py +1 -1
- package/md_cg/test_issue53_cipher_health_hash.py +385 -0
- package/md_cg/test_lock.py +16 -7
- package/md_cg/test_m3_h9_semantic_guard.py +1 -1
- package/md_cg/test_n230_dirty_replay.py +375 -375
- package/md_cg/test_n238_body_text_parity.py +156 -0
- package/md_cg/test_n276_probe_hoist.py +199 -0
- package/md_cg/test_p4_freshness.py +95 -1
- package/md_cg/test_policy_required_ccg.py +3 -1
- package/md_cg/test_readcache_prodpath.py +66 -0
- package/md_cg/test_sleep.py +58 -1
- package/md_cg/test_sleep_p1.py +218 -2
- package/md_cg/test_state_events.py +178 -0
- package/md_cg/test_time_core_lint.py +8 -1
- package/md_cg/test_writepipe.py +8 -5
- package/md_cg/tokens.py +11 -2
- package/md_cg/writepipe.py +76 -0
- package/package.json +2 -2
- package/skills/plugin.json +1 -1
- package/src/bridge.ts +9 -0
- package/src/hooks.ts +576 -517
- package/src/lib/hook_audit.ts +243 -0
- package/src/lib/mutual.ts +5 -1
- package/src/lib/roleplay_web.ts +17 -2
- package/zcode/AGENTS.md +9 -9
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# 语义时空图补全 · 《秤》多主体世界模型「功能端」 · 设计 v0.1
|
|
2
|
+
|
|
3
|
+
> **任务来源**(使用者 2026-10-06):「在完成睡眠功能修复后,主要就是对语义时空图的补全。就是《秤》多主体世界模型理论落地。**我们做功能端**。」
|
|
4
|
+
> **评估基线**:`docs/plans/多主体世界模型_对齐评估与落地设计_v0.1.md`(L0–L5 逐层对照;路线 A/B/C 已落地)+《秤》v2.1 记忆系统评测规范(`docs/秤_记忆系统评测规范_v2.1.md`)。
|
|
5
|
+
> **状态**:v0.1 未签收;本稿**不改一行码、不动在役库**。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0. 一句话结论
|
|
10
|
+
|
|
11
|
+
stg 现有四 op(relation / timeline / anchors / consistency)+第 3 层结构索引=时空**读面**骨架已具;对照《秤》世界模型功能端,**最大缺口是 L2 状态层(主体×谓词槽位寄存器)与「会话材料 → 状态事件」的抽取管线**。本稿给出:现状盘点(代码级)+L2 槽位 schema 方向+真实语料管线与验收口径+六条待签收点。
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. 现状盘点(代码级证据)
|
|
16
|
+
|
|
17
|
+
### 1.1 已具
|
|
18
|
+
|
|
19
|
+
| 面 | 证据 |
|
|
20
|
+
|---|---|
|
|
21
|
+
| **stg 四 op** | `md_cg/stg.py:468` relation(时间/空间关系)· `:527` timeline · `:584` anchors(时空窗/bbox)· `:657` consistency |
|
|
22
|
+
| **时间模型** | 双轴(`trust.py:367` `TIME_AXES=("effective","observed")`、`:378 time_axis_of`;别名族 `:81-82` FROM/UNTIL_ALIASES);统一时间核(time_core `cred_factor`,γ 半衰期 30 天) |
|
|
23
|
+
| **空间模型** | `stg.py:70 _bbox` / `:101 space_relation`(位置字段进 frontmatter 条件面) |
|
|
24
|
+
| **会话视图** | `stg.py:485 _view_session`(与写侧 `_normalize_session` 同尺;H2 修复) |
|
|
25
|
+
| **读面纪律** | 条件先行+截断可观测(issue #52,`stg.py:542-546`);条件资格首验 `:441 _attach_qualification`(复用 `judge_qualification` 单点,**只上报不过滤**,`MDCG_STG_QUALIFY` 默认关) |
|
|
26
|
+
| **第 3 层结构索引** | `md_cg/stgidx.py`(by_session/by_layer/by_time 内存倒排+写路径增量;`MDCG_STG_INDEX` 默认关;实施记录 `docs/eval/第3层stg结构索引_实施记录_v1.0.md`;守卫 `md_cg/test_stgidx_index_parity.py` 51 断言) |
|
|
27
|
+
| **L0 状态事件五元台账** | `md_cg/state_events.py`:subject/slot/old→new/seq/evidence+kind 五类变迁(迁移/撤回/启用/获取/替换)+actor/t;append-only、跨进程锁、坏行可观测。**已实现、未接生产**(消费者仅自测与探针) |
|
|
28
|
+
| **证据/强度/出处** | `cg(op=audit)`(`md_cg/auditview.py`)+`check_strength` 全写链+幽灵引用检查器(`writepipe._gate_ghostref`) |
|
|
29
|
+
| **先行读数(B 探针)** | `scripts/probe_b_whale_statechain.py`:真实角色扮演会话语料(85.6 万字符/1467 轮)状态链回放——值段 23、复发 20(值段级,真失效约 14–15);三判据「有条件可操作」;主成本=抽取方法论 |
|
|
30
|
+
|
|
31
|
+
### 1.2 缺口(本稿要补的)
|
|
32
|
+
|
|
33
|
+
1. **L2 状态层**:「主体×谓词槽位寄存器」(现值+档位+区间+备择+盲区)=评估稿判定的最大结构缺口;「状态=事件投影」未实装。
|
|
34
|
+
2. **抽取管线**:会话材料 → 状态事件(发言者归属/思考块剥离/**错误消歧**)仅探针,未产品化。
|
|
35
|
+
3. **接线**:台账无写入侧自动记账、无检索/查询入口。
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 2. 目标形态(拟)
|
|
40
|
+
|
|
41
|
+
**一句话:事件是源、槽位是投影、查询走 stg。**
|
|
42
|
+
|
|
43
|
+
- **写**:提取器(会话材料 → 状态事件)+记账入口(Python API 已在;MCP/CLI 受权入口待签收 §5②)。
|
|
44
|
+
- **存**:`_state_events.jsonl`(append-only,已实现)。
|
|
45
|
+
- **投影**:槽位寄存器=台账**物化视图**(不建第二真源)。
|
|
46
|
+
- **读**:stg 增状态查询面——输出「某主体某槽位:**现值 / 区间 / 备择 / 盲区 / 变迁史**」(op 命名与形态待签收 §5①)。
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 3. L2 槽位 schema 方向(核心待签收项)
|
|
51
|
+
|
|
52
|
+
投影单元字段(方向;落稿时逐字与三处既有面对齐):
|
|
53
|
+
|
|
54
|
+
| 字段 | 语义 | 既有面引用(不新造) |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `subject` / `slot` | 主体/谓词槽位 | 台账五元已有 |
|
|
57
|
+
| `value` | 现值 | 台账 `new` |
|
|
58
|
+
| `t_from` / `t_to` | 生效区间(双轴) | `trust.py:81-82` 别名族、`:367 TIME_AXES` |
|
|
59
|
+
| `tier` 档位 | 来源档位(一手/转引/回指→收敛为等级) | 方向:`linkref` 出处边+`links.P_trust`(落稿时对照) |
|
|
60
|
+
| `alternatives` | 备择(同期未决值) | 「未决不进二值」纪律的载体 |
|
|
61
|
+
| `blindspots` | 盲区(声明缺口) | 沿 `missing`/BLINDSPOT 既有语义 |
|
|
62
|
+
| `state` | active/retired(**退役不删除**) | `lifecycle.py` 降级轴语义 |
|
|
63
|
+
| `evidence` | 回链台账 seq(可回查原文) | 台账 `seq`/`evidence` |
|
|
64
|
+
|
|
65
|
+
**同步纪律(一字不新造)**:`evolution.STATE_FIELDS`(`md_cg/evolution.py:52`,回滚面)|`scrub` 键族(`md_cg/scrub.py:409 _EXPIRY_KEYS`、`:485 _NOT_YET_KEYS`,含「`valid_from` 绝不并入 `_EXPIRY_KEYS`」纪律一)|双时间轴别名(`trust.py:81-82`)。
|
|
66
|
+
|
|
67
|
+
**消歧语义(真实语料直接映射)**:台账 `kind` 五类已有;拟补**消歧标记**层——「不是事实」的言语(玩笑/元层/回忆转述)落 `not_fact` 标记、撤回落 `retraction`(已有);**用户侧声明=真源**(经 `evidence`/`actor` 承载,判定口径见 §4)。
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 4. 真实语料管线(验收跑道)
|
|
72
|
+
|
|
73
|
+
**输入**:角色扮演会话语料(**私有·仓外**;格式=分块+「我说/角色说」分离+`>` 思考块)。**已发现的对齐陷阱**:清洗文档的 `[块N]` 锚点与终版语料有中段 +10 偏移 ⇒ 管线须**按内容重导锚点**(不可直接信块号)。
|
|
74
|
+
|
|
75
|
+
**步骤**:①切块与发言者归属(沿用既有切分口径)→ ②思考块剥离(事实层剔除;关系层保留)→ ③状态事件抽取(主体/槽位/旧→新/kind)→ ④**消歧**(对照用户侧声明;角色「记错生活细节」是人设特性,须被消歧而**不覆盖真源**)→ ⑤入台账 → ⑥投影 → ⑦对拍。
|
|
76
|
+
|
|
77
|
+
**验收(对拍答案卷)**:清洗版人设文档+矛盾裁决清单(私有·仓外;含 8 项已清洗+A–D+新快照 E/F/G 全裁决)。指标(拟):**漏率**(答案卷状态未被抽到)/**误率**(抽到而答案卷无)/**错率**(值或时序错);另接《秤》5.1 账本完整性探针口径(事件覆盖缺口率、无账强答率)。
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 5. 待签收点(请逐条裁决)
|
|
82
|
+
|
|
83
|
+
1. **集成点**:槽位投影与查询面落 **stg 第五 op**(建议——使用者定位「语义时空图的功能实现」)vs 独立 cg op;op 命名待定(如 `stg(op=state_chain)`)。
|
|
84
|
+
2. **记账入口形态**:先 Python API+CLI(只读 `--status` 风格)/MCP 写口后置(建议)。
|
|
85
|
+
3. **投影触发**:**查询时现算**(台账量小;避免第二真源)+装载期缓存后置(建议)。
|
|
86
|
+
4. **消歧判定归属**:抽取器出候选+标记,**处置走审核队列**(复用三档自治既有通道;不建议抽取器内联裁决)。
|
|
87
|
+
5. **默认开关**:新面**默认关**(与 `MDCG_STG_INDEX`/`MDCG_STG_QUALIFY` 同纪律),探针全绿后逐档开。
|
|
88
|
+
6. **验收规模**:先以私有语料**探针级**跑通(sandbox only),对拍答案卷后再议产品化(沿用「探针先行、产出读数再定产品化」纪律)。
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 6. 边界(不做的事)
|
|
93
|
+
|
|
94
|
+
- **不改** stg 四 op 既有语义;**不动**在役库;
|
|
95
|
+
- 载体侧(酒馆/卡片)不动;私有材料**不入库**(仅合成/裁剪样本进测试);
|
|
96
|
+
- **不建第二真源**(槽位=投影);**不引第二套条件解析**(复用 `judge_qualification` 单点纪律);
|
|
97
|
+
- 与 N275/N277 两项待裁决互不相交。
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 7. 排期(建议)
|
|
102
|
+
|
|
103
|
+
**P0** 本稿签收 → **P1** 抽取器 v4(消歧口径;sandbox only,对拍答案卷出三率读数)→ **P2** 槽位投影+stg 查询面(新 op,默认关,守卫+定点变异)→ **P3** 接线(写侧入口/文档/《秤》5.1 探针跑通)。
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
*本稿 v0.1 · 2026-10-06 · 待签收*
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"reject": []
|
|
12
12
|
},
|
|
13
13
|
"_comment": "identity负责端口分流; negative只否决明确域外; 无//注释(标准JSON)",
|
|
14
|
-
"content": "工作纪律集: 4条方法论(理论先行/全面处理/白箱方法/根因) + 3条执行(验证/双副本/兜底) + 1条思考(中文思考/协作模式分级) + 1条保密(敏感信息隔离) + 3条图像线(选源护栏/历史查询优先/算法权威唯一) + 1条协作(访谈澄清:先问清再动手) + 1条合规(内容政策合规:公开产物过内容政策+隐私双清单) + 2条执行调度与运行环境(命令执行统一走python/UTF-8: 显式encoding+PYTHONUTF8=1, 规避GBK, 全仓文本与路径一律UTF-8(无BOM, 中文可进路径), 不做控制台兼容(取用走python);
|
|
14
|
+
"content": "工作纪律集: 4条方法论(理论先行/全面处理/白箱方法/根因) + 3条执行(验证/双副本/兜底) + 1条思考(中文思考/协作模式分级) + 1条保密(敏感信息隔离) + 3条图像线(选源护栏/历史查询优先/算法权威唯一) + 1条协作(访谈澄清:先问清再动手) + 1条合规(内容政策合规:公开产物过内容政策+隐私双清单) + 2条执行调度与运行环境(命令执行统一走python/UTF-8: 显式encoding+PYTHONUTF8=1, 规避GBK, 全仓文本与路径一律UTF-8(无BOM, 中文可进路径), 不做控制台兼容(取用走python), 公开面路径写相对路径(守 check_local_paths); 任务派发统一走蜂巢(zcode端的工作流工具为等效蜂巢工具——使用者2026-10-04裁定; 蜂巢功能完全完善之前可优先使用zcode工作流): 任何执行性任务经蜂巢spawn/submit执行并留痕, agent本体只做编排, L1出口=产物落点为只读判定(不改仓库/外部状态)可直跑须留痕) + 1条记忆闭环(任务收尾归档:每次任务执行完只将核心修改(内容/原因/位置/验证结论)按CCG六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆, 不写中间过程; text 类缺要素即被写入闸门拒并当场返回缺失清单) + 1条信息获取(工作区索引优先: 查工作区文件先读 WORKSPACE_INDEX.md(仓根, 由 scripts/workspace_index.py 从 git 追踪面管线生成), 尚无则先跑 --write 生成再读, 不以重复全盘浏览代替; 索引是会陈化的手工件, 故须管线生成+机械守卫, 否则退化为误导源)",
|
|
15
15
|
"execution": {
|
|
16
16
|
"how": "按identity(端口)+任务类型路由到对应纪律"
|
|
17
17
|
},
|
|
@@ -354,12 +354,13 @@
|
|
|
354
354
|
{
|
|
355
355
|
"id": "discipline_python_exec",
|
|
356
356
|
"semantic": "15.命令执行统一走python",
|
|
357
|
-
"content": "一切命令执行统一经 python 子进程并显式 UTF-8(encoding='utf-8', errors='replace'),不经 Windows shell(cmd/PowerShell) 直接执行;子进程环境置 PYTHONUTF8=1 使 locale 不回落 GBK,规避 _readerthread 的 UnicodeDecodeError 与 stdout 的 UnicodeEncodeError。全仓文本与路径/文件名一律 UTF-8(无 BOM), 中文可直接进路径; 本仓一切读写与判定按 UTF-8 字节, 不做控制台兼容——Windows 控制台按代码页解释字节会把中文显示成乱码(实测「控制台试验」显示为「鎺у埗鍙拌瘯楠」), 那是显示层而非数据层问题, 字节未损; 凡须取用本仓内容者走 python(管道/文件读法即正确), 不以控制台为取用通道。新增代码的 open()/read_text() 一律显式 encoding='utf-8', 路径与标识归一到 NFC。",
|
|
357
|
+
"content": "一切命令执行统一经 python 子进程并显式 UTF-8(encoding='utf-8', errors='replace'),不经 Windows shell(cmd/PowerShell) 直接执行;子进程环境置 PYTHONUTF8=1 使 locale 不回落 GBK,规避 _readerthread 的 UnicodeDecodeError 与 stdout 的 UnicodeEncodeError。全仓文本与路径/文件名一律 UTF-8(无 BOM), 中文可直接进路径; 本仓一切读写与判定按 UTF-8 字节, 不做控制台兼容——Windows 控制台按代码页解释字节会把中文显示成乱码(实测「控制台试验」显示为「鎺у埗鍙拌瘯楠」), 那是显示层而非数据层问题, 字节未损; 凡须取用本仓内容者走 python(管道/文件读法即正确), 不以控制台为取用通道。新增代码的 open()/read_text() 一律显式 encoding='utf-8', 路径与标识归一到 NFC。公开面文本中的路径一律写相对路径(仓内相对路径, 或 ~/、%TEMP%、<仓根> 等中性占位), 本机绝对路径(盘符+父目录层)不得进入仓库追踪面——机械判据 scripts/check_local_paths.py(门禁腿; 合成夹具与通用通例不在判据面)。",
|
|
358
358
|
"conditions": {
|
|
359
359
|
"apply": [
|
|
360
360
|
"执行命令",
|
|
361
361
|
"运行测试/脚本",
|
|
362
|
-
"跨进程读写文本"
|
|
362
|
+
"跨进程读写文本",
|
|
363
|
+
"书写文档/引用路径"
|
|
363
364
|
]
|
|
364
365
|
},
|
|
365
366
|
"negative": {
|
|
@@ -369,10 +370,10 @@
|
|
|
369
370
|
]
|
|
370
371
|
},
|
|
371
372
|
"execution": {
|
|
372
|
-
"how": "构造 argv 列表→subprocess.run(capture_output=True, text=True, encoding='utf-8', errors='replace')→env 带 PYTHONUTF8=1→shell=False;边界判据=本次调用是否产出非UTF-8字节流(纯MSYS工具与不起进程的内置工具豁免;原生Windows程序不豁免,须python包装或显式解码)"
|
|
373
|
+
"how": "构造 argv 列表→subprocess.run(capture_output=True, text=True, encoding='utf-8', errors='replace')→env 带 PYTHONUTF8=1→shell=False;边界判据=本次调用是否产出非UTF-8字节流(纯MSYS工具与不起进程的内置工具豁免;原生Windows程序不豁免,须python包装或显式解码);仓内引用与文档路径一律写相对路径(本机绝对路径以中性占位代), 判据 scripts/check_local_paths.py"
|
|
373
374
|
},
|
|
374
375
|
"response": {
|
|
375
|
-
"direct": "按工作纪律第15条: 命令执行统一走python——argv列表+显式UTF-8+PYTHONUTF8=1, 不经Windows shell, 规避GBK解码异常。 另: 全仓文本与路径/文件名一律UTF-8(中文可进路径), 不做控制台兼容(取用走python, 控制台乱码属显示层)。"
|
|
376
|
+
"direct": "按工作纪律第15条: 命令执行统一走python——argv列表+显式UTF-8+PYTHONUTF8=1, 不经Windows shell, 规避GBK解码异常。 另: 全仓文本与路径/文件名一律UTF-8(中文可进路径), 不做控制台兼容(取用走python, 控制台乱码属显示层)。 另: 公开面路径写相对路径——本机绝对路径以中性占位代(仓内 `<仓根>`/家目录 `~/`/临时 `%TEMP%`), 门禁 check_local_paths。"
|
|
376
377
|
}
|
|
377
378
|
},
|
|
378
379
|
{
|
|
@@ -403,7 +404,7 @@
|
|
|
403
404
|
{
|
|
404
405
|
"id": "discipline_hive_dispatch",
|
|
405
406
|
"semantic": "17.任务派发统一走蜂巢",
|
|
406
|
-
"content": "任何执行性任务(跑脚本/测试、批量处理、探索盘点、文本加工、多智能体协作)一律经蜂巢派发执行: agent本体只做编排(拆spec→submit/spawn→poll收result→汇总), 宿主自带subagent/team/Task
|
|
407
|
+
"content": "任何执行性任务(跑脚本/测试、批量处理、探索盘点、文本加工、多智能体协作)一律经蜂巢派发执行: agent本体只做编排(拆spec→submit/spawn→poll收result→汇总), 宿主自带subagent/team/Task不是等价通道; zcode端的工作流工具为等效蜂巢工具(使用者2026-10-04裁定)——在蜂巢功能完全完善之前, zcode端可优先使用zcode工作流处理. 原理: ①执行留痕(spec/status/result落盘可追溯, 会话结束不蒸发); ②统一调度面(worker池/心跳/超时强杀/kill/崩溃恢复); ③dogfooding(自家引擎高频实战打磨, 打破「宿主顺手→跳过→永不打磨」死循环); ④判定成本归零(无例外通道, 杜绝「以为只是探索」滑移). ⑤[2026-09-17 A+C修订] 新增L1出口: 判据外置为产物落点(非「任务简单」的主观感受)——不改仓库/外部状态的本地只读命令属L1直跑(须留痕), 改仓库/外部状态(写文件/git/推远端)必派发. 原理: 层级归属不可由执行者独占自我声明(智能论PROP-DECISION-LAYER-003分层原则第4条「层级归属可被验证单元复核」), 判据须机械可核、豁免须可见. ⑥[2026-09-17 使用者确认] L1留痕粒度=按任务(一个任务一条, 不逐命令逐行); L1层级归属的复核者=使用者+GitHub使用者(坐实分层原则第4条「复核者」位).",
|
|
407
408
|
"conditions": {
|
|
408
409
|
"apply": [
|
|
409
410
|
"执行性任务",
|
|
@@ -423,10 +424,10 @@
|
|
|
423
424
|
]
|
|
424
425
|
},
|
|
425
426
|
"execution": {
|
|
426
|
-
"how": "任务→按产物落点判据定层级(不改仓库/外部状态的只读判定=L1直跑并按任务留痕一条(复核者=使用者+GitHub使用者); 改状态=必派发, 不得自我豁免)→拆spec(LLM委托型=默认exec.py: model+user_prompt+context_files; 确定性执行=自定义worker, 契约「读spec.json写result.json」)→hive_spawn/CLI submit→poll→汇总; 兜底情形须声明「蜂巢不可用, 兜底降级」"
|
|
427
|
+
"how": "任务→按产物落点判据定层级(不改仓库/外部状态的只读判定=L1直跑并按任务留痕一条(复核者=使用者+GitHub使用者); 改状态=必派发, 不得自我豁免)→拆spec(LLM委托型=默认exec.py: model+user_prompt+context_files; 确定性执行=自定义worker, 契约「读spec.json写result.json」)→hive_spawn/CLI submit(zcode端: 工作流工具为等效蜂巢工具——使用者2026-10-04裁定; 蜂巢功能完全完善之前, zcode端可优先使用zcode工作流处理; 留痕以工作流脚本与运行记录为凭)→poll→汇总; 兜底情形须声明「蜂巢不可用, 兜底降级」"
|
|
427
428
|
},
|
|
428
429
|
"response": {
|
|
429
|
-
"direct": "按工作纪律第17条: 任务派发统一走蜂巢——任何执行性任务经蜂巢 spawn/submit 执行并留痕(spec/status/result), agent本体只做编排; 宿主自带subagent/team
|
|
430
|
+
"direct": "按工作纪律第17条: 任务派发统一走蜂巢——任何执行性任务经蜂巢 spawn/submit 执行并留痕(spec/status/result), agent本体只做编排; 宿主自带subagent/team不是等价通道(zcode端的工作流工具为等效蜂巢工具——使用者2026-10-04裁定; 蜂巢功能完全完善之前, zcode端可优先使用zcode工作流处理), 兜底须声明。L1只读判定(产物落点=不改仓库/外部状态)可直跑, 须输出「L1 直跑:<命令> — 风险/频次/可逆性」留痕。"
|
|
430
431
|
}
|
|
431
432
|
},
|
|
432
433
|
{
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# 《秤》v2.1 —— 多主体世界模型评测规范(最终修正版 · 冻结)
|
|
2
|
+
|
|
3
|
+
> **版本性质**:v2.1 是《秤》的冻结版。在 v2.0(四簿七维)基础上吸收红队评审的四条 P0 与两条 P1,完成最后一次修正。**自此进入实证阶段,不再增加指标。**
|
|
4
|
+
> **红队立法理由**:评审方本轮的攻击目标从"指标够不够"转向"**构念效度与因果可识别性**"——你测得很认真,但还没有证明这些读数确实在测你声称要测的东西。v2.1 的全部修改都服务于这一句话。
|
|
5
|
+
> **术语政策**:全文不用英文缩写。所有对照条件与指标以中文命名,旧缩写(Z/O/S/Ro/CBP/W-L 等)仅在本表留档备查。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0. 红队意见处理表(v2.0 → v2.1 变更依据)
|
|
10
|
+
|
|
11
|
+
| # | 红队攻击 | 裁定 | 处理 |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| ① | 理论稿与评测标准构念耦合——测的是"符合你的架构哲学"而非"记忆质量" | **采纳,升级为双轨制** | §1 通用轨/纪律轨分离;纪律轨预注册为规范轨 |
|
|
14
|
+
| ② | 足量证据对照的"≥90% 性能自证"是循环归因(用生成器表现反证证据充分) | **采纳,改为证据覆盖先行** | §3.4 证据覆盖判据替代性能判据 |
|
|
15
|
+
| ③ | 五条件无法隔离写入/检索/呈现——呈现损失被压进检索或生成 | **采纳,加呈现对照条件** | §2.2 呈现对照;§6 破坏性对照 |
|
|
16
|
+
| ④ | "记缺项不记零分"仍混淆"不可观察"与"不适用" | **采纳,拆两态** | §4 四态判定:过/失/不可观察/不适用 |
|
|
17
|
+
| ⑤ | 生命周期"删除 v2"与"退役不删除"纪律语义冲突 | **采纳,改"撤销"** | §5.2 五状态枚举:现役/退役/撤销/删除/未知 |
|
|
18
|
+
| ⑥ | 缺效度实验——指标能否认出人为破坏的环节未验证 | **采纳,定为前置门** | §6 校准零号试验(正式实施前必做) |
|
|
19
|
+
|
|
20
|
+
红队提出的成本维度、生成器交换矩阵、四簿共现矩阵、归一化防破盲,全部吸收:成本入附录(§7.3)、生成器交换入复核档(§8)、共现矩阵入报告(§9)、归一化入判盲纪律(§10)。
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1. 双轨制(P0 · 红队意见①)
|
|
25
|
+
|
|
26
|
+
《秤》v2.0 把理论稿的四条纪律直接当作评分维度,这在验证架构理论时成立,但作为通用标准则是**构念耦合**——它测的是"系统是否符合《多主体世界模型》的架构",而非"系统是否是有效的记忆系统"。一个只保存当前有效事实、不存退役历史与未决队列的系统,在"告诉我当前信息"任务上可能很好,却会在纪律轨上全面记缺项。
|
|
27
|
+
|
|
28
|
+
v2.1 拆为两轨,**报告默认呈现通用轨**:
|
|
29
|
+
|
|
30
|
+
### 通用轨 · 记忆核心(架构中立)
|
|
31
|
+
|
|
32
|
+
只测任何记忆系统都该做到的事,不预设任何架构哲学:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
记住了什么 · 找到了什么 · 是否正确 · 是否有证据
|
|
36
|
+
更新后是否正确 · 时间变化是否正确 · 冲突是否正确处理
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
不要求四态裁决器、不要求双层呈现、不要求出处链。检索管道、摘要系统、全文数据库与五层栈在同一秤上。
|
|
40
|
+
|
|
41
|
+
### 规范轨 · 世界模型纪律(理论特异,预注册)
|
|
42
|
+
|
|
43
|
+
才测《秤》真正原创的部分:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
事件必记账 · 出处不升级 · 退役不删除 · 未决不进二值 · 双层呈现 · 因果边界
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**两条铁律**:①规范轨必须在预注册时声明启用,不得在看到结果后补报;②两轨读数并列呈现,**不得只报系统占优的那一轨**。通用轨给出跨系统可比的底线,规范轨给出理论主张的检验——两轨分工即治理。
|
|
50
|
+
|
|
51
|
+
## 2. 对照条件(六条件 · 去缩写重命名)
|
|
52
|
+
|
|
53
|
+
旧五臂扩为六条件,全部展开命名:
|
|
54
|
+
|
|
55
|
+
| 本规范用语 | 旧缩写 | 输入 | 归因作用 |
|
|
56
|
+
|---|---|---|---|
|
|
57
|
+
| 闭卷条件 | Z | 仅题面 | 生成器先验基线 |
|
|
58
|
+
| 原文参照条件 | O | 语料全文 | 全文直读参照(**参照非上限**) |
|
|
59
|
+
| 足量证据对照条件 | Ro | 该题备齐的证据集 | 证据不缺时生成器能做什么 |
|
|
60
|
+
| **呈现对照条件**(新增) | — | 系统真实检索结果,换标准呈现器重包 | 呈现层是否独立致损 |
|
|
61
|
+
| 系统交付条件 | S | 系统检索 → 系统呈现 → 生成器 | 被测对象实际交付 |
|
|
62
|
+
| 写入探针 | Wp | 直接抽查记忆库内容(不经生成器) | 写入与表示层的机械核验 |
|
|
63
|
+
|
|
64
|
+
**更名修正两条**:其一,"原文参照"取代旧"原文上限"——全文输入受上下文、注意力、提示词影响,是参照不是理论上界;其二,"足量证据对照"取代旧"oracle 检索臂"——证据是否充分由覆盖判据保证(§3.4),不靠名字暗示。
|
|
65
|
+
|
|
66
|
+
### 2.1 六条件如何拆开四个环节
|
|
67
|
+
|
|
68
|
+
被测链条实为四段:**写入 → 表示 → 检索 → 呈现**(生成器是公用测量仪器,不计入系统账)。六条件对四段的隔离:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
闭卷 → 生成器先验(什么都不给)
|
|
72
|
+
原文参照 → 生成器+全文的联合上限参照
|
|
73
|
+
足量证据对照 → 隔离生成器(证据备齐,测它会不会用)
|
|
74
|
+
呈现对照 → 隔离呈现(证据同、呈现换,呈现差则此条件胜)
|
|
75
|
+
系统交付 → 写入/表示/检索/呈现 的合计
|
|
76
|
+
写入探针 → 隔离写入与表示(直接查库,不经生成器)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**表示损失**首次可测:原文"A 导致 B 但仅在 C 条件下成立",记忆里只剩"A 导致 B"——这不是写入缺失(句子在),是表示变换丢了条件。写入探针的结构保真维(时间/否定/条件/来源字段)专测此损。
|
|
80
|
+
|
|
81
|
+
## 3. 题库与判据
|
|
82
|
+
|
|
83
|
+
### 3.1 题型(八类,配比)
|
|
84
|
+
|
|
85
|
+
单点事实 15% / 跨段关联 15% / 因果链重建 20% / 时间与状态更新 10% / 矛盾与冲突 10% / 反事实干预(边界子测试)15% / 拒答与不确定 8% / 来源与证据回溯 7%。
|
|
86
|
+
|
|
87
|
+
答案键统一字段:题号 / 题型 / 必要采分点(权重)/ 支持证据位置 / 完整依赖面 / 潜在冲突证据 / **禁言项**(不得声称的结论)/ 缓答规则 / 干预说明(干预题必填)/ 足量证据集。
|
|
88
|
+
|
|
89
|
+
### 3.2 三层判据(机械先行)
|
|
90
|
+
|
|
91
|
+
机械层(逐字可定位、回源、结构字段、退役泄漏字符串比对)→ 结构层(关系保留、两栖对照、截断一致)→ 语义层(采分点覆盖 ≥0.7、缓答判定;判官须过锚自证:正确率 − 多数类基线 ≥15 个百分点;分歧题第三判官终裁;一致率不达标整批判"不可测")。
|
|
92
|
+
|
|
93
|
+
### 3.3 证据状态向量(非互斥诊断)
|
|
94
|
+
|
|
95
|
+
逐题记:未写入 / 写入但丢结构(表示损)/ 已写未检索 / 检索被干扰稀释 / 呈现丢失 / 证据足而生成器误用 / 证据不足无法判定 / 多环节并发。只报聚合计数与典型样例,不作逐题定罪。
|
|
96
|
+
|
|
97
|
+
### 3.4 足量证据的覆盖判据(P0 · 红队意见② · 替代性能自证)
|
|
98
|
+
|
|
99
|
+
**废弃**"足量证据对照须达原文参照 90%"的性能自证——那是用生成器表现反证证据充分,循环。改为**证据覆盖先行**:
|
|
100
|
+
|
|
101
|
+
> 足量证据集必须满足:答案键每个必要采分点,至少有一个独立、直接支持它、且可在原文逐字定位的证据片段。覆盖率 100% 方可入足量证据对照条件。
|
|
102
|
+
|
|
103
|
+
判据纯机械(采分点 ↔ 支持片段的位置映射在答案键预标)。**性能仅作事后验证**:若足量证据覆盖 100% 而生成器仍失败,才可归因"读出/生成阶段";不得再以"没达 90%"反推证据不足。这同时回应了外部研究的提醒:即便给到相关上下文,生成器仍可能产出无支持内容——足量证据对照正是为隔离这一现象而设,它的判据自身必须干净。
|
|
104
|
+
|
|
105
|
+
## 4. 四态判定(P0 · 红队意见④)
|
|
106
|
+
|
|
107
|
+
系统在每个维度的读数取四态,废三态:
|
|
108
|
+
|
|
109
|
+
| 态 | 含义 |
|
|
110
|
+
|---|---|
|
|
111
|
+
| 过 | 该能力实测达标 |
|
|
112
|
+
| 失 | 该能力实测不达标 |
|
|
113
|
+
| **不可观察** | 评测接口无法观察该能力(系统可能有但未暴露) |
|
|
114
|
+
| **不适用** | 该系统架构本无此层,且未声称提供此功能 |
|
|
115
|
+
|
|
116
|
+
**"我没看到"(不可观察)与"它没有"(不适用)必须分开**——混同则把观察局限误读为能力缺失,是标准设计里的危险跳跃。无栈系统在"缓"维记"不适用"而非"失"。
|
|
117
|
+
|
|
118
|
+
## 5. 规范轨探针(四条纪律 → 四探针)
|
|
119
|
+
|
|
120
|
+
### 5.1 账本完整性探针(事件必记账)
|
|
121
|
+
|
|
122
|
+
埋入"事件—状态"对:事件题记"何时因何",状态题记"现在如何"。无事件记录却由状态反推事件强答,即**无账强答**。指标:事件覆盖缺口率、无账强答率。
|
|
123
|
+
|
|
124
|
+
### 5.2 退役纪律探针(退役不删除 · P1 · 红队意见⑤)
|
|
125
|
+
|
|
126
|
+
更新序列改为五状态语义,消除"删除"歧义:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
现役 → 退役(降级留史、退出注入面)→ 撤销(取消当前有效性,保留曾存在之事实)
|
|
130
|
+
→ 删除(物理移除,仅审计接口可见)→ 未知
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
序列:写 v1 → 查 → 写矛盾 v2 → 查 → **撤销 v2**(非"删除")→ 查。目标行为:v2 撤销后回 v1 或判缓;退役值**永不进注入面**;失效不等于证伪。指标:**退役泄漏率**(退役值出现在注入面的比例,规范轨头号危险指标)、更新采纳率、旧事实残留率、失效误判证伪率。
|
|
134
|
+
|
|
135
|
+
### 5.3 出处链探针(出处不升级)
|
|
136
|
+
|
|
137
|
+
三级出处(一手/转引/回指)+ 幽灵引用。指标:转引升级率、幽灵引用采信率、出处链完整率。
|
|
138
|
+
|
|
139
|
+
### 5.4 不判探针(未决不进二值)
|
|
140
|
+
|
|
141
|
+
应缓题(同档位来源互斥)的正确输出是**两存之**(两说并存+列入未决),不是选边也不是笼统拒答。指标:强制二值率、误判缓率(应答题被滥缓)、两存表达完整率。
|
|
142
|
+
|
|
143
|
+
### 5.5 边界子测试与呈现分离探针
|
|
144
|
+
|
|
145
|
+
**边界子测试**:干预一个前提,预标应失据/应照旧/应盲三类结论,五维评分(删除识别/依赖识别/不变量保持/边界判断/证据重算),四类标签宏平均。答案键不公开。
|
|
146
|
+
|
|
147
|
+
**呈现分离探针**:叙事注入面与证据审计面分离;审计面须能交出出处链全量、两存、备择、盲区。指标:审计面可得率、两面一致率。
|
|
148
|
+
|
|
149
|
+
## 6. 校准零号试验(P0 · 红队意见⑥ · 正式实施的前置门)
|
|
150
|
+
|
|
151
|
+
**在测任何真实系统之前,先用人为破坏的系统攻击《秤》自己。** 构造五个受控系统:
|
|
152
|
+
|
|
153
|
+
| 系统 | 破坏方式 | 规范预期(预注册) |
|
|
154
|
+
|---|---|---|
|
|
155
|
+
| 甲 · 无记忆 | 不接入任何记忆 | 交付净增量 ≈ 0 |
|
|
156
|
+
| 乙 · 坏写入 | 随机删 30% 关键记忆 | 写入/检索/交付三维齐降 |
|
|
157
|
+
| 丙 · 坏检索 | 写入完整,检索随机打乱 | 写入正常,检索与交付降 |
|
|
158
|
+
| 丁 · 坏呈现 | 检索正确,删除时间/否定/来源字段 | 逐字正常,结构保真降、边界子测试降 |
|
|
159
|
+
| 戊 · 正常 | 完整系统 | 各维正常 |
|
|
160
|
+
|
|
161
|
+
**通过判据(预注册)**:各系统的指标下降方向与预期一致,且五个系统在剖面上可被区分(乙≠丙≠丁)。**不通过 ⇒ 规范不进入正式实施,先修指标再谈规模。** 这一步把《秤》从"我们认为这些指标能测记忆系统"升级为"人为破坏某一环节时,指标确实能认出这个环节"——**效度先于规模**。
|
|
162
|
+
|
|
163
|
+
## 7. 统计与发布
|
|
164
|
+
|
|
165
|
+
### 7.1 主终点与功效
|
|
166
|
+
|
|
167
|
+
主终点:**交付净增量**(系统交付条件 − 闭卷条件),自然问句 × 主语料 × 主生成器,题目级配对连续分数差,单侧配对置换检验,α=.05。兑现率降为辅助归一化,分母 <10 个百分点只报差值不报比例。功效:试点估三级方差(题/章节/依赖簇)→ ≥2000 次模拟 → 检出中等效应功效 <0.7 启动预案。区间用依赖簇为重抽样单位的自助法,附聚类阈值敏感性。
|
|
168
|
+
|
|
169
|
+
### 7.2 题目权重(红队意见⑩)
|
|
170
|
+
|
|
171
|
+
题目不等价(某事实被 8 题复用、另一事实只 1 题)。除簇自助法外,**并列报告题目加权与节点加权两套读数**:按章节/事实节点/依赖面对题目贡献去重加权。两套结论一致则稳健,不一致则说明题库对高复用事实敏感,须如实披露。
|
|
172
|
+
|
|
173
|
+
### 7.3 成本附录(红队意见⑫)
|
|
174
|
+
|
|
175
|
+
检索延迟、生成令牌数、记忆库体积、索引成本、查询成本、更新成本单列附录,**不进核心质量分**。成本是能力剖面的第二坐标,不是质量指标——准确率 85% 延迟 10ms 与 87% 延迟 2s 的系统,价值取决于场景。
|
|
176
|
+
|
|
177
|
+
## 8. 三级认定(更名 · 红队意见⑪)
|
|
178
|
+
|
|
179
|
+
旧名(随测/标准/复核)易被误读为系统智能等级,改为描述证据等级的中性名:
|
|
180
|
+
|
|
181
|
+
| 等级 | 最低证据要求 | 允许宣称 |
|
|
182
|
+
|---|---|---|
|
|
183
|
+
| **初测** | 闭卷+系统交付+逐字保真,机械核验,冻结配置 | 特定题集上的端到端表现 |
|
|
184
|
+
| **对照测** | +原文参照、足量证据对照、语义判分、配对统计与区间 | 交付净增量与瓶颈的有限归因 |
|
|
185
|
+
| **复核测** | +双语文料、**生成器交换矩阵**、留出复测、独立复跑、完整审计材料 | 限定场景内可复现的系统差异 |
|
|
186
|
+
|
|
187
|
+
**生成器交换矩阵**(红队意见⑭,复核档要求):记忆系统甲/乙 × 生成器一/二 全交叉。若甲在生成器一强、在生成器二骤弱,而乙两台皆稳,则甲的优势依赖特定生成器配合——这比"换台复测"强得多。
|
|
188
|
+
|
|
189
|
+
两条铁律:高分数不能替代低证据等级;等级量证据完整度,不量智能水平。
|
|
190
|
+
|
|
191
|
+
## 9. 报告(十节 · 加共现矩阵)
|
|
192
|
+
|
|
193
|
+
评测摘要 → 预注册一致性 → 资产与执行环境 → 通用轨结果 → 规范轨结果(四探针)→ 边界与呈现 → 扰动与生命周期 → 统计与判分可靠性 → 失败案例与不可测项(不得为空)→ 复现材料与异议记录。
|
|
194
|
+
|
|
195
|
+
**失败共现矩阵**(红队意见⑮):四簿是观察视角不是独立样本——一次退役泄漏可能同时拉低"退/构/推/增"四维。报告附维度间共现矩阵(退×构、退×增、构×边界、缓×增),读者据此知维度相关性,不把"一个错误四处体现"误读成"四项能力独立失败"。
|
|
196
|
+
|
|
197
|
+
## 10. 治理(强制 · 加防破盲)
|
|
198
|
+
|
|
199
|
+
四条强制不变:利益回避 / 全量产物公开 / 三重盲态 / 既有自报读数降级为待验假设。
|
|
200
|
+
|
|
201
|
+
**防破盲补丁**(红队意见⑪):判官盲态在制度上存在、实际可能破盲——某系统输出的特有格式(字段名、置信度记号)会泄露身份。故**一切答卷送判官前须经统一输出归一化**(剥系统特征格式,统一为"答案+证据"结构)。
|
|
202
|
+
|
|
203
|
+
**立法理由**:理论稿与其同源记忆系统、基准出自同一生态。本规范的价值不在于成就该生态,而在于对包括该生态在内的所有系统一视同仁。**三者可共享作者,不得共享裁判权。**
|
|
204
|
+
|
|
205
|
+
## 11. 冻结与实证路线
|
|
206
|
+
|
|
207
|
+
**v2.1 为冻结版。** 六条件、三层判据、四态判定、双轨、校准零号、三级认定——核心不再增加指标。新增测量维度一律走扩展轨道,读数不进认定等级。
|
|
208
|
+
|
|
209
|
+
**实证路线(按序)**:
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
第一步 校准零号试验 五个受控破坏系统 → 指标认得出破坏方向?
|
|
213
|
+
↓ 通过才进第二步(效度门)
|
|
214
|
+
第二步 试点 朴素基线 + 30题 → 判官校准 + 模拟功效
|
|
215
|
+
↓ 功效达标才进第三步
|
|
216
|
+
第三步 主实验 三栈级 6–8 系统 × 六条件 × 双轨
|
|
217
|
+
↓
|
|
218
|
+
第四步 扰动+生命周期+对抗扩展 → 报告 → 三级认定
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**解冻条件**:一轮完整实证+一次独立复跑后,由实测痛点驱动下一版——由数据驱动版本,不由灵感驱动版本。
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
*v2.1 变更溯源:v2.0 由理论稿导出(四条纪律即四探针);本版吸收红队四条 P0(双轨制、覆盖判据、呈现对照、四态判定)与两条 P1(生命周期五状态、校准零号前置门),并将成本、生成器交换、共现矩阵、防破盲、题目权重五项次级意见全部落位。红队的核心论断——"先证明你测的就是你声称要测的"——是本版全部修改的立法理由。*
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
# (session-<uuid4>)须真实存在于 MDCG_DSH_SESSIONS_ROOT/<workspace>/ 下,
|
|
56
56
|
# 否则降级 anonymous(记忆照样落盘,只是归属不可追溯)。
|
|
57
57
|
# 本机接线(2026-09-26 实测生效):由启动脚本按工作区解析当前会话目录名后注入
|
|
58
|
-
# DSH_HOME
|
|
59
|
-
# set MDCG_DSH_SESSIONS_ROOT
|
|
58
|
+
# DSH_HOME=%USERPROFILE%\.dsh
|
|
59
|
+
# set MDCG_DSH_SESSIONS_ROOT=%USERPROFILE%\.dsh\sessions
|
|
60
60
|
# set MDCG_HARNESS=dsh
|
|
61
61
|
# set MDCG_UNIT=agent
|
|
62
62
|
# set MDCG_SESSION=session-<当前会话 uuid>
|
package/lib/bridge.js
CHANGED
|
@@ -267,6 +267,15 @@ export class LingshuBridge {
|
|
|
267
267
|
this.spawnAndHandshake();
|
|
268
268
|
}, 300_000);
|
|
269
269
|
this.retryTimer.unref();
|
|
270
|
+
// N267:冷却路径也必须结算状态面——否则子进程已死而 readyState 停在 'ok',
|
|
271
|
+
// isReady() 恒 true、waitReady() 立即 resolve(true)(该值经 MdcgClient 一行
|
|
272
|
+
// 直通宿主门控,调用错误被空 catch 静默吞 → 状态面失真)。只跳过
|
|
273
|
+
// scheduleRetry(冷却定时器上面已安排重试)。
|
|
274
|
+
// flushBootQueue 与另三处退出结算(spawn error / 常规 exit / 握手失败)同形:
|
|
275
|
+
// 该分支的生产可达态为 ok/failed,bootQueue 此时必为空——属对称防御,
|
|
276
|
+
// 不单独承担判据(行为无可观察差异)。
|
|
277
|
+
this.readyState = 'failed';
|
|
278
|
+
this.flushBootQueue(false);
|
|
270
279
|
return;
|
|
271
280
|
}
|
|
272
281
|
// 有挂起请求的失败是异常的;仅启动失败的等待者得到 false
|
package/lib/hooks.d.ts
CHANGED
|
@@ -20,7 +20,9 @@
|
|
|
20
20
|
* `origin` / `delegationDepth`)的自动记忆**整条会话拦掉**;② **消息级**——
|
|
21
21
|
* `source.form === 'relay'`(「另一个 agent 发给本 agent 的消息」)不写。
|
|
22
22
|
* 两条判据均为「**字段在场且取值匹配才拦**」:字段缺失一律退化为不过滤(默认放行),
|
|
23
|
-
*
|
|
23
|
+
* 宿主字段面已在本机真实会话事件上观测(2026-10-05 订正:19 场,会话头
|
|
24
|
+
* `delegationDepth=0` 真实在写);**仍未观测**的是 `origin='subagent'` /
|
|
25
|
+
* `delegationDepth>0` / `form='relay'` 的真实出现(见 installMemoryHooks 内注释)。
|
|
24
26
|
*
|
|
25
27
|
* autoRecall:通过 system-prompt/assemble 事件(waterfall,异步允许)在每次
|
|
26
28
|
* 模型请求组装 system prompt 时自动注入灵枢最近记忆
|
|
@@ -60,6 +62,11 @@ export interface MemoryHooksOptions {
|
|
|
60
62
|
autoRecallLimit: number;
|
|
61
63
|
/** 自动记忆脱敏:写入前过滤敏感信息(密钥/密码/令牌/身份证/手机号,默认 true)。 */
|
|
62
64
|
desensitize: boolean;
|
|
65
|
+
/** 落盘审计文件路径(issue #56,诊断面:哪些消息被设计滤除、source.kind 分布、
|
|
66
|
+
* 写入/跳过计数)。缺省 `~/.dsh/logs/dsh-memory-hook-audit.json`(与桥探针 /
|
|
67
|
+
* apply 探针同目录同惯例),供测试与定制注入;审计自身失败静默降级,
|
|
68
|
+
* 绝不冒泡进记忆路径。不改任何既有选项语义。 */
|
|
69
|
+
auditPath?: string;
|
|
63
70
|
}
|
|
64
71
|
/** 两宽「词字符」类:半角 + 全角 字母/数字/下划线(`\w`/`\b` 的替代判据面)。
|
|
65
72
|
* 导出供守卫核对字面量规则的同源性(test/fullwidth_redact.test.ts ⑦);
|