@a9i5k4/dsh-auto-memory 3.0.1 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -8
- package/README.zh-CN.md +13 -8
- package/docs/HANDBOOK.md +92 -52
- package/docs/USER-GUIDE.en.md +9 -9
- package/docs/USER-GUIDE.zh-CN.md +9 -9
- package/docs/screenshots/promo/promo-0-banner-v4.png +0 -0
- package/docs/screenshots/promo/promo-1b-auto-recall.png +0 -0
- package/lib/activation-host.js +6 -1
- package/lib/client.js +1376 -255
- package/lib/config-io.js +59 -6
- package/lib/context-host.js +17 -2
- package/lib/episodic-store.js +90 -16
- package/lib/evidence-store.js +27 -1
- package/lib/fact-store.js +463 -41
- package/lib/hub-io.js +217 -0
- package/lib/index.js +904 -87
- package/lib/intent-clean-safe.js +1 -1
- package/lib/jsonl-tail-cursor.js +75 -0
- package/lib/m7-index-sync-host.js +4 -6
- package/lib/memory-hub.js +62 -7
- package/lib/migrate-pack.js +351 -0
- package/lib/note-status.js +9 -1
- package/lib/procedure-store.js +252 -31
- package/lib/procedure-switch.js +38 -0
- package/lib/python-setup.js +109 -27
- package/lib/python-sidecar-client.js +285 -8
- package/lib/recall-stats.js +242 -0
- package/lib/rules-layer.js +106 -15
- package/lib/semantic-js.js +25 -7
- package/lib/shadow-host.js +41 -2
- package/package.json +6 -2
- package/docs/internal/ACCEPT-35-LIVE.md +0 -143
- package/docs/internal/ACCEPTANCE-20260914.md +0 -90
- package/docs/internal/ARCH-REVIEW-BRIEF.md +0 -411
- package/docs/internal/ARCH-REVIEW-REQUEST.md +0 -201
- package/docs/internal/ARCH-REVIEW-ROUND2.md +0 -169
- package/docs/internal/ARCH-REVIEW-ROUND3.md +0 -206
- package/docs/internal/ARCHITECTURE-FOR-ZCODE-20260920.md +0 -397
- package/docs/internal/ART-DIRECTION-DEEPSEEK-20260920.md +0 -351
- package/docs/internal/ART-DIRECTION-WIREFRAME.md +0 -191
- package/docs/internal/ART-DIRECTION-WIREFRAME.md.bak-superseded +0 -181
- package/docs/internal/AUDIT-WB-GRAPH-FULL-20260916.md +0 -314
- package/docs/internal/BATTLE-PLAN-20260917.md +0 -871
- package/docs/internal/CONCURRENCY-INVESTIGATION-20260917.md +0 -192
- package/docs/internal/CROSS-SESSION-SEARCH-PATH-DECISION.md +0 -72
- package/docs/internal/CROSS-SESSION-SEARCH-RESEARCH.md +0 -131
- package/docs/internal/CUA-VISION-FIX-NOTES.md +0 -78
- package/docs/internal/DECISIONS-20260914-SESSION.md +0 -269
- package/docs/internal/DESIGN-OVERHAUL-PRE-RESEARCH.md +0 -292
- package/docs/internal/DESIGN-P1-STATE-COMMIT-20260915.md +0 -219
- package/docs/internal/DIRECTION-CHECK-WB-GRAPH-20260916.md +0 -132
- package/docs/internal/FEATURE-INVENTORY.md +0 -531
- package/docs/internal/FEEDBACK-TO-DSHAPI-RELAY.md +0 -13
- package/docs/internal/G-SERIES-EXECUTION-20260917.md +0 -248
- package/docs/internal/G3-DESIGN-20260918.md +0 -82
- package/docs/internal/G3-DISK-FORMAT-GAP-20260919.md +0 -92
- package/docs/internal/GH-DISCUSSION-5732-COMMENT.md +0 -74
- package/docs/internal/GPT-ACCEPTANCE-PROMPT-20260916.md +0 -352
- package/docs/internal/GPT-REVIEW-PROMPT.md +0 -216
- package/docs/internal/GROUP-DIGEST-SETUP.md +0 -62
- package/docs/internal/GROUP-LISTENER-SETUP.md +0 -49
- package/docs/internal/GROUP-WEBHOOK-SETUP.md +0 -93
- package/docs/internal/HANDOFF-TO-ZCODE-20260920.md +0 -309
- package/docs/internal/HANDOFF-TO-ZCODE.md +0 -168
- package/docs/internal/HERMES-DATA-VERIFICATION-20260919.md +0 -120
- package/docs/internal/HERMES-LEGACY-STATUS-20260919.md +0 -74
- package/docs/internal/ISSUE-55-58-VERIFICATION-20260918.md +0 -175
- package/docs/internal/ISSUE10-FIX-EXECUTION-20260919.md +0 -389
- package/docs/internal/ISSUE10-PLAN-20260919.md +0 -254
- package/docs/internal/ISSUE10B-FORENSICS-20260919.md +0 -468
- package/docs/internal/ISSUE9-PURGE-AND-R1-PLAIN-20260919.md +0 -150
- package/docs/internal/ISSUE9-RESIDUAL-FORENSICS-20260919.md +0 -114
- package/docs/internal/KICKOFF-P0.md +0 -254
- package/docs/internal/LESSON-TO-CANDIDATE-STATUS-20260919.md +0 -79
- package/docs/internal/MASTER-PLAN-3.0.md +0 -411
- package/docs/internal/MEMORY-GOVERNANCE-20260917.md +0 -309
- package/docs/internal/MEMORY-MUTATION-AND-INDEX-DESIGN.md +0 -85
- package/docs/internal/MERGE-CONFLICT-SCAN-20260914.md +0 -222
- package/docs/internal/NEXT-VERSION-TODO.md +0 -95
- package/docs/internal/OFFICIAL-DISCUSSION-DRAFT.md +0 -80
- package/docs/internal/PENDING-FIXES-20260916.md +0 -289
- package/docs/internal/PRE-FRONTEND-CHECKLIST-20260919.md +0 -705
- package/docs/internal/PRE-FRONTEND-CHECKLIST-20260919.md.bak-s10 +0 -649
- package/docs/internal/PROCEDURAL-MEMORY-AND-APPROVAL-DESIGN-20260918.md +0 -225
- package/docs/internal/PROGRESS-20260917.md +0 -93
- package/docs/internal/PROMPT-GAP-AUDIT-20260920.md +0 -128
- package/docs/internal/R1-DEGRADE-AUDIT-20260918.md +0 -163
- package/docs/internal/R1-READABILITY-FORENSICS-20260919.md +0 -127
- package/docs/internal/R2-EVIDENCE-DEEP-AUDIT-20260918.md +0 -140
- package/docs/internal/R3-DEGRADE-LEDGER-DESIGN-20260918.md +0 -138
- package/docs/internal/R4-RECALL-QUOTA-PLAN-20260918.md +0 -218
- package/docs/internal/RAG-KARPATHY-PROGRAM.md +0 -229
- package/docs/internal/RELEASE-PROCESS.md +0 -99
- package/docs/internal/REPORT-P0-NIGHTLY.md +0 -212
- package/docs/internal/REPORT-P5-ACCEPTANCE.md +0 -31
- package/docs/internal/REPORT-WB-GRAPH-NIGHTLY.md +0 -153
- package/docs/internal/RESUME-20260918.md +0 -171
- package/docs/internal/RESUME-20260919.md +0 -104
- package/docs/internal/REVIEW-WB-GRAPH-SELF.md +0 -81
- package/docs/internal/RHINELAB-TO-DEEPSEEK-FEASIBILITY.md +0 -198
- package/docs/internal/ROADMAP-20260917-WEEK.md +0 -439
- package/docs/internal/ROADMAP.md +0 -106
- package/docs/internal/RUN-P0-NIGHTLY.md +0 -227
- package/docs/internal/S10-CONSTRUCTION-HANDOFF-20260917.md +0 -185
- package/docs/internal/S10-GAP-INVENTORY-20260917.md +0 -239
- package/docs/internal/S10-GAPS-PLAIN-20260917.md +0 -125
- package/docs/internal/SEMANTIC-ARCHITECTURE-SPEC.md +0 -360
- package/docs/internal/SESSION-FILE-REPAIR-PROTOCOL.md +0 -90
- package/docs/internal/SUBAGENT-REPORT-ROUTING-PRE-RESEARCH.md +0 -261
- package/docs/internal/T6-EXECUTION-20260920.md +0 -130
- package/docs/internal/TELEMETRY-EFFECT-REPORT-DESIGN-20260918.md +0 -146
- package/docs/internal/THESIS-GAP-ANALYSIS-20260918.md +0 -89
- package/docs/internal/THESIS-OUTLINE-20260918.md +0 -147
- package/docs/internal/THREE-LAYER-CONTRACT.md +0 -219
- package/docs/internal/TODO-BACKLOG.md +0 -263
- package/docs/internal/TODO-GRAPH.html +0 -715
- package/docs/internal/TODO-GRAPH.html.bak-20260914-v2 +0 -493
- package/docs/internal/TODO-GRAPH.html.bak-20260915-alsfix +0 -710
- package/docs/internal/TODO-GRAPH.html.bak-20260915-p1 +0 -710
- package/docs/internal/TODO-GRAPH.html.bak-20260915-p6a-rev +0 -703
- package/docs/internal/TODO-GRAPH.html.bak-20260915-wshint +0 -710
- package/docs/internal/TODO-GRAPH.html.bak-20260916-batch +0 -715
- package/docs/internal/UPSTREAM-ISSUE-PR-TRIAGE-20260919.md +0 -297
- package/docs/internal/UPSTREAM-ISSUES-3RD-AUDIT-20260920.md +0 -104
- package/docs/internal/WB-FORMAT-CONVENTION.md +0 -112
- package/docs/internal/WB-GRAPH-DECISIONS-20260914.md +0 -71
- package/docs/internal/WB-GRAPH-INTEGRATION-PLAN.md +0 -386
- package/docs/internal/WB-GRAPH-RESEARCH-BRIEF.md +0 -118
- package/docs/internal/WB-GRAPH-RESEARCH-EXTERNAL.md +0 -228
- package/docs/internal/WB-GRAPH-RESEARCH-LOCAL.md +0 -190
- package/docs/internal/reviews/CLAIM-VERIFICATION-20260914.md +0 -56
- package/docs/internal/reviews/PLAN-gpt6astra-round2-20260914.md +0 -787
- package/docs/internal/reviews/REVIEW-gpt6astra-20260914.md +0 -112
- package/docs/internal/reviews/ROUND3-REVIEW-INTEGRATION-20260914.md +0 -230
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
# 毕业论文总纲 · 资料 / 实验设计 / 论文大纲
|
|
2
|
-
|
|
3
|
-
> 2026-09-18 | 主线:思维链语域指纹(三波段)的构念效度、因果操纵与预测力
|
|
4
|
-
> 数据底座:`E:\dsh_dynamic_adjust\anchored-monitor\demo-data\experiment.jsonl`(35.1 MB,另有 50.0 MB 备份)
|
|
5
|
-
> 编制依据:本地已有学术资产(M7 两篇论文稿)+ 锚定线实验平台 + 外部文献检索
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 第一部分 · 资料清单(Related Work 骨架)
|
|
10
|
-
|
|
11
|
-
### 簇 A|记忆系统与记忆评测基准(提供 baseline 与任务集)
|
|
12
|
-
| 文献/资产 | 位置 | 用法 |
|
|
13
|
-
| --- | --- | --- |
|
|
14
|
-
| LongMemEval(ICLR 2025,xiaowu0162/LongMemEval) | 外部 | 长时交互记忆基准,可直接借用其任务类型与评分协议,作为外部任务集 |
|
|
15
|
-
| MIRIX(arXiv 2507.07957;本地 `.research-mirix/MIRIX-main`) | 本地已克隆 | 多智能体记忆架构,含 `evals/` 目录,可作为对照系统 |
|
|
16
|
-
| cognee / Memori / supermemory | 本地 `.research/`(仅 .git,需完整检出) | 三个开源记忆实现,候选 baseline |
|
|
17
|
-
| MemGPT / Mem0 / SimpleMem / AriadneMem | 外部 | 主流记忆架构谱系,Related Work 的骨架与数字对照来源 |
|
|
18
|
-
| What Do Memory Benchmarks Actually Measure? | 外部(HF blog) | **方法论批判**:直接支撑本论文「基准测的不是存储」这一立论,务必精读 |
|
|
19
|
-
| Long-Term Memory Security Survey(ar5iv 2604.16548) | 外部 | 记忆生命周期治理视角,可用于 Discussion |
|
|
20
|
-
|
|
21
|
-
### 簇 B|提示措辞与语用效应(本论文的干预实验理论来源)
|
|
22
|
-
| 文献 | 位置 | 用法 |
|
|
23
|
-
| --- | --- | --- |
|
|
24
|
-
| The language of prompting(arXiv 2311.01967) | 外部 | 系统研究提示的语言学属性,是「措辞 → 效果」这一路的直接先例 |
|
|
25
|
-
| Carrot or Stick? Reconciling Contradictory Findings on Prompt Tone Effects | 外部 | **矛盾发现综述**:说明语气效应不稳定,正是本论文做严格操纵实验的理由 |
|
|
26
|
-
| 礼貌/粗鲁提示效应(宾大相关报道) | 外部 | 提供「措辞影响准确率」的公众叙事与反例,需找到原始论文核验 |
|
|
27
|
-
| 本地锚定措辞实验(E1/E1.5/E2,见 feasibility report §1.5) | 本地 | 命令式 vs 中性/建议式 → we/let me 翻转的**一手预实验证据** |
|
|
28
|
-
|
|
29
|
-
### 簇 C|思维链的语言学分析(本论文的测量工具理论来源)
|
|
30
|
-
| 文献 | 位置 | 用法 |
|
|
31
|
-
| --- | --- | --- |
|
|
32
|
-
| Robust Pronoun Fidelity with English LLMs(ar5iv 2404.03134) | 外部 | 代词使用与忠实性的关系,是「人称标记作为测量对象」的方法学先例 |
|
|
33
|
-
| Understanding Aha Moments(ar5iv 2504.02956) | 外部 | 从语言模式识别推理转折点,方法上同类(用语词特征定位认知状态切换) |
|
|
34
|
-
| CoT faithfulness 相关综述 | 待补 | 论证「思维链文本本身是可研究对象」,回应「只是装饰」的质疑 |
|
|
35
|
-
|
|
36
|
-
### 簇 D|本地已有学术资产(可直接复用,勿重复造)
|
|
37
|
-
| 资产 | 规模 | 复用方式 |
|
|
38
|
-
| --- | --- | --- |
|
|
39
|
-
| `docs/M7-RESEARCH-PAPER.md` | 43.5 KB | 嵌入检索选型研究,含 RQ1–4、L1/L2 语料构建、效度威胁章节——**章节结构与写法可直接借鉴** |
|
|
40
|
-
| `docs/M7-ACTIVATION-V2-PAPER.md` | 26.3 KB | 激活策略研究,含回声陷阱发现、金标演进、消融与证伪、跨语言迁移 |
|
|
41
|
-
| `docs/M7-BENCHMARK-PLAN.md`、`M7-TASK-DISPATCH.md`、`M7-LABEL-REVIEW-REPORT.md` | 4–12 KB | 基准方案、任务派发、标注复核流程——标注信度的现成流程模板 |
|
|
42
|
-
| `E:\dsh_dynamic_adjust\project_feasibility_report.md` | 620 行 | 锚定线完整技术叙事(含三波段、相变、路径承诺、措辞实验) |
|
|
43
|
-
|
|
44
|
-
> ⚠️ 待核验项:以上外部条目的作者名、年份、卷期需在正式引用前逐条核(本清单只保证「存在且相关」,不保证书目字段准确)。
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## 第二部分 · 实验设计(三个实验,观测 → 操纵 → 预测)
|
|
49
|
-
|
|
50
|
-
### 共同测量口径(先冻结,全篇不再改)
|
|
51
|
-
- 测量量:`persona_ratio = count("let me") / (count(positive) + count("let me"))`,滑动窗口 20 块。
|
|
52
|
-
- 词典:正向 we / let's / we'll / we need / our;负向仅 let me;i will / i'll / i need 归中性(2026-08-17 校正,锚定线已落地)。
|
|
53
|
-
- 波段:ratio < 0.2 → spec;0.2 ≤ ratio < 0.5 → mixed;ratio ≥ 0.5 → react。
|
|
54
|
-
- 数据源:`E:\dsh_dynamic_adjust\anchored-monitor\demo-data\experiment.jsonl`(35.1 MB)+ `events.jsonl`,以及 `~/.dsh/sessions/{sessionId}/events.jsonl` 的真实会话流。
|
|
55
|
-
|
|
56
|
-
> ⚠️ **开工前必须验证的前提**:`experiment.jsonl` 首行为 `{"type":"block_received",...}`,仅含 `textLength` 无正文。需先确认文件内是否存在携带 reasoning 正文的行类型(`events.jsonl` 的 `reasoning_block` 行确有 `text` 字段)。**若 35 MB 实验数据不含正文,E1 语料必须改从会话原始 JSONL 重建**——这是全部实验的前置阻塞项,第一天就要查清。
|
|
57
|
-
|
|
58
|
-
### E1|观测研究:语域指纹的构念效度(回答 RQ1)
|
|
59
|
-
- **问题**:三波段是否对应可被人类标注者识别的、稳定的语域差异?还是正则词频的人为切分?
|
|
60
|
-
- **材料**:从语料随机抽 300 个 reasoning 块(分层抽样:三波段各 100)。
|
|
61
|
-
- **标注**:两位标注者独立判断「该段是集体规划式 / 行动者式 / 无法判断」,双盲于 ratio 值;先标 30 条试点校准标注手册,再标剩余。
|
|
62
|
-
- **信度**:Cohen κ(二分)或 Krippendorff α(三分等级);判据 **κ ≥ 0.61**。
|
|
63
|
-
- **稳健性**:词表扰动(增删 ±1 个词、改权重 ±20%)后波段归属变化率;目标 **< 10%** 翻转。
|
|
64
|
-
- **效度证据**:波段 × 标注类别的混淆矩阵、与 ratio 值的 ROC。
|
|
65
|
-
- **产出**:一张构念效度证据图 + 一份标注手册(附录)。
|
|
66
|
-
|
|
67
|
-
### E2|操纵实验:措辞的因果效应(回答 RQ2)
|
|
68
|
-
- **设计**:3(措辞)× 2(注入时机)被试内设计,任务是重复测量单位。
|
|
69
|
-
- 措辞:命令式("read first and follow them")/ 建议式("reading the index is recommended")/ 中性陈述("an index exists")。
|
|
70
|
-
- 时机:首轮 system prompt / 会话中途注入。
|
|
71
|
-
- **因变量**:主=措辞注入后 5 个块的 persona_ratio 变化 Δ;次=任务正确率、工具调用数、返工次数、token 成本。
|
|
72
|
-
- **刺激材料**:≥20 个等难度任务(可取自 Project2),每条件 × 任务 × 3 次重复。
|
|
73
|
-
- **分析**:线性混合效应模型(固定效应=措辞、时机、交互;随机截距=任务、会话),Holm 校正,报效应量与 95% CI。
|
|
74
|
-
- **先验依据**:feasibility report §1.5 的 E1/E1.5/E2 三轮预实验(命令式 → we 消失出现 3 个 let me;中性/建议式 → we 保持)。
|
|
75
|
-
- **止损线**:若三水平无显著差异 → 保留 E1 作为主结果,E2 降级为探索性分析写入附录。
|
|
76
|
-
|
|
77
|
-
### E3|预测研究:波段是否领先于结果(回答 RQ3)
|
|
78
|
-
- **问题**:波段先于任务结果(预测性),还是结果反过来改变波段(反向因果)?
|
|
79
|
-
- **设计**:对每个任务单元取结果**之前**的窗口特征(ratio 均值 / 斜率 / mixed 停留时长),预测该任务单元的结果。
|
|
80
|
-
- **分析**:时间滞后互相关(lag 从 -10 到 +10)、Granger 因果检验、以及仅用「前置窗口」特征的交叉验证分类(session 分组,防泄漏)。
|
|
81
|
-
- **判据**:前置于结果的 lag 相关显著,且反向 lag 弱于正向 → 支持方向性。
|
|
82
|
-
- **对照**:与零模型(仅用任务类型、块长度、会话位置预测)比较增量 AUC。
|
|
83
|
-
|
|
84
|
-
### 伦理与合规(开工即办)
|
|
85
|
-
- 数据为本人自用日志 → 写明来源、脱敏(去除绝对路径、会话 ID 哈希化)、LLM 使用声明。
|
|
86
|
-
- 人工标注者若含他人 → 需知情同意说明;若仅本人 → 需报告单标注者的信度局限。
|
|
87
|
-
- API 成本:E2 的 3×2×20×3 = 360 次运行,需先估 token 预算并设上限。
|
|
88
|
-
- 第三方 baseline 的 license 需逐个核对后方可分发或复现。
|
|
89
|
-
|
|
90
|
-
- **止损线**:三项主要判据任一未达 → 收缩论文范围(见第四部分风险表)。
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## 第三部分 · 论文大纲(章节级)
|
|
95
|
-
|
|
96
|
-
**题名(工作稿)**:思维链语域的三波段模型——大模型推理轨迹中的人称标记、构念效度与结果预测
|
|
97
|
-
|
|
98
|
-
1. **引言**(1.5 页)
|
|
99
|
-
1.1 现象:同一模型同一任务,分数差异可达 8 分
|
|
100
|
-
1.2 从工程预设到科学问题:措辞是否是可操纵的自变量
|
|
101
|
-
1.3 贡献三条:① 人格语域的构念效度证据 ② 措辞的因果操纵结果 ③ 波段的时序预测力
|
|
102
|
-
1.4 论文结构
|
|
103
|
-
2. **相关工作**(2.5 页)
|
|
104
|
-
2.1 记忆系统与记忆评测(LongMemEval / MemGPT / Mem0 / MIRIX)——说明本文不评记忆质量,而评**思维轨迹的语域**
|
|
105
|
-
2.2 提示措辞与语用效应(language of prompting;语气效应的矛盾发现)
|
|
106
|
-
2.3 思维链的语言学分析(代词忠实性、aha moment 检测)
|
|
107
|
-
2.4 研究空白:三波段模型从未被构念效度检验,也从未被因果操纵验证
|
|
108
|
-
3. **数据与方法**(3 页)
|
|
109
|
-
3.1 语料:来源、规模、抽取与脱敏
|
|
110
|
-
3.2 测量:词典、窗口、ratio 与波段定义(冻结版本号 + 哈希)
|
|
111
|
-
3.3 标注方案与信度估计
|
|
112
|
-
3.4 统计模型:混合效应模型、bootstrap、多重比较校正
|
|
113
|
-
3.5 可复现:脚本、种子、环境
|
|
114
|
-
4. **实验一:构念效度**(2.5 页)——结果表 + 混淆矩阵 + 词表扰动稳健性
|
|
115
|
-
5. **实验二:措辞的因果效应**(3 页)——主效应与交互、森林图、失败案例分析
|
|
116
|
-
6. **实验三:时序预测与方向性**(2 页)——滞后相关、Granger、增量 AUC
|
|
117
|
-
7. **讨论**(2 页)
|
|
118
|
-
7.1 三波段是语域,不是一个分数
|
|
119
|
-
7.2 对提示工程的实践含义(建议式优于命令式)
|
|
120
|
-
7.3 对记忆系统设计的含义(注入措辞也是接口设计)
|
|
121
|
-
7.4 与"语气效应矛盾发现"的对账
|
|
122
|
-
8. **效度威胁与局限**(1 页)——单模型家族、单语言(英语为主)、正则测量的上限、自用数据的样本偏倚
|
|
123
|
-
9. **结论与未来工作**(0.5 页)
|
|
124
|
-
10. **附录**——标注手册、全部提示词模板、完整结果表、复现脚本清单
|
|
125
|
-
|
|
126
|
-
**字数目标**:正文 6000–8000 词 + 附录。
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## 第四部分 · 风险表与收缩路径
|
|
131
|
-
|
|
132
|
-
| 风险 | 概率 | 影响 | 应对 |
|
|
133
|
-
| --- | --- | --- | --- |
|
|
134
|
-
| experiment.jsonl 无正文(前置阻塞) | 中 | 高 | 改从会话原始 JSONL 重建语料;第一天验证 |
|
|
135
|
-
| 标注信度 κ < 0.61 | 中 | 高 | 改标注手册、合并为二分标注、或把 E1 降为描述性 |
|
|
136
|
-
| E2 无显著差异 | 中 | 中 | E1 升为主结果,E2 转探索性附录 |
|
|
137
|
-
| 波段是连续量而非相变 | 中 | 中 | 改为连续测量论文(更保守但仍成立) |
|
|
138
|
-
| 样本量不足(会话数少) | 中 | 中 | 先跑 power analysis;不足则做被试内重复测量 |
|
|
139
|
-
| 伦理/导师不认可用自用数据 | 低 | 高 | 提前与导师确认;备选是公开任务集上的受控实验 |
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
## 第五部分 · 立即执行的三步(本周)
|
|
144
|
-
|
|
145
|
-
1. **验数据**:跑一次解析脚本,确认 `experiment.jsonl` 与真实会话 JSONL 中 reasoning 正文的可得性与块数量,产出「语料可得性报告」。
|
|
146
|
-
2. **验信度**:抽 30 条 reasoning 块,定标注手册,标一遍,算第一版 κ。
|
|
147
|
-
3. **定题**:把本大纲压缩成 1 页预注册(假设、判据、止损线、样本量),交导师确认。
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
# 三层检索契约(Tier-0 / Tier-1 / Tier-2)v2
|
|
2
|
-
|
|
3
|
-
> 2026-09-14 定稿(v2 重整:补 RAG 管线要素、用实测数据定预算)。
|
|
4
|
-
> 背景:三层 OpenViking 式架构**验收"以为过了、实际没过"**——只验了声明项,没验能力可达。
|
|
5
|
-
> 本文件是施工与验收的**唯一依据**。相关:`ROADMAP.md`(主线)、`TODO-GRAPH.html`(P0-② 阶段门)、`MEMORY-MUTATION-AND-INDEX-DESIGN.md`(索引侧)。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# 第一部分 · 三层安排(Arrangement)
|
|
10
|
-
|
|
11
|
-
## 1.1 为什么是三层
|
|
12
|
-
|
|
13
|
-
三层的本质是**把"要不要用"和"内容是什么"分开**:上层负责**判断与缩窄**(便宜、常驻、永远在场),下层负责**给出证据**(贵、按需、可溯源)。因此判定顺序是"上层先出 → 搜索空间缩窄 → 才下探",而不是把三层一起灌进上下文。
|
|
14
|
-
|
|
15
|
-
## 1.2 三层总表
|
|
16
|
-
|
|
17
|
-
| 维度 | **Tier-0 · 目录(指引层)** | **Tier-1 · 摘要(候选层)** | **Tier-2 · 原文块(证据层)** |
|
|
18
|
-
| --- | --- | --- | --- |
|
|
19
|
-
| 回答的问题 | 要不要用某条记忆? | 该下探哪一条? | 原文到底怎么说的? |
|
|
20
|
-
| 输入 | 项目笔记 + 用户级记忆 + 当日日志的**结论行** + 白板 | 语料记录(日志 / 反思 / 笔记 / 用户记忆 / 白板) | 命中记录的 chunk(`chunkId = hash(记忆ID, 内容摘要, 序号)`) |
|
|
21
|
-
| 产出 | 每条 **1 行**:`标题 · 一句结论 · layer · status · 日期` | 每条 1 段摘要(≤`L1` 字符)+ `id` + 得分 + 匹配原因 | 命中块原文 + `文件:行号` + `digest` |
|
|
22
|
-
| 常驻性 | **每轮都注入**(不依赖命中) | 命中后按需(top-`K`) | 需要证据时下探 |
|
|
23
|
-
| 预算 | ≤ `B0` = **800 token** | ≤ `L1` = **140 字符** × `K` = **8** | ≤ `B2` = **2400 字符** / 次 |
|
|
24
|
-
| 失效方式 | 陈旧即被上游覆盖(无状态) | 状态过滤(`superseded`/`retracted`) | 随快照版本(`miv`)失效 |
|
|
25
|
-
|
|
26
|
-
## 1.3 数据流
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
源文件(日志 / 反思 / 笔记 / 用户记忆 / 白板)
|
|
30
|
-
│ ①抽取:标题 → 首句 → 截断(三级降级) ← Tier-1 的产出
|
|
31
|
-
├──────────────► Tier-1 摘要(≤140 字符/条)
|
|
32
|
-
│ ②分块:chunkId = hash(记忆ID, 内容摘要, 序号) ← Tier-2 的存储单位
|
|
33
|
-
├──────────────► Tier-2 原文块(≤1500 字符,实测)
|
|
34
|
-
│ ③目录:从"当前认知"里抽 1 行/条 ← Tier-0 的产出
|
|
35
|
-
└──────────────► Tier-0 目录(≤800 token,常驻)
|
|
36
|
-
|
|
37
|
-
检索时:Tier-0 先出 → 缩窄 → 命中不足才下探 Tier-1 → 需要证据才取 Tier-2
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
# 第二部分 · 每层的要素清单
|
|
43
|
-
|
|
44
|
-
## 2.1 Tier-0(目录)要素
|
|
45
|
-
|
|
46
|
-
| 要素 | 要求 |
|
|
47
|
-
| --- | --- |
|
|
48
|
-
| 内容来源 | **只取"当前认知"**:项目笔记 / 用户记忆 / 白板的标题与结论行;**禁止原始转储** |
|
|
49
|
-
| 每行字段 | `标题`、`一句结论`、`layer`、`status`、`日期`(+ 内部 `id` 供下探) |
|
|
50
|
-
| 优先级 | `project > whiteboard > user > log`;同层按日期倒序(超预算时按此裁剪) |
|
|
51
|
-
| **per-layer 配额(必须有)** | 纯严格优先级会让 `project` **吃满预算**——真实语料实测:project 77 块把 800 token 全占,`whiteboard`/`user`/`log` **一条都进不来**,于是"分层"退化成单层。**规定:`project ≤ 60%·B0`;`whiteboard`、`user` 各**保底 10%**;剩余额度再按优先级填充** |
|
|
52
|
-
| 刷新时机 | 每轮或笔记变更后重建;重建**必须廉价**(纯文本处理,不涉嵌入) |
|
|
53
|
-
| 状态位 | 带 `status`;被 `superseded`/`retracted` 的**不出现在目录**(I5) |
|
|
54
|
-
| 降级 | 目录为空/来源缺失 → 输出显式提示,不静默给空(I7) |
|
|
55
|
-
|
|
56
|
-
## 2.2 Tier-1(摘要层)要素 —— 第二层要做好的事
|
|
57
|
-
|
|
58
|
-
| # | 要素 | 说明与要求 | 现状 |
|
|
59
|
-
| --- | --- | --- | --- |
|
|
60
|
-
| 1 | **抽取规则** | 标题 → 首句 → 截断(三级降级),保证**任何记录都有摘要** | ✅ 已有(`l0-extract-pre.js`) |
|
|
61
|
-
| 2 | **必须保留"判定信息"** | 摘要里要留下**结论句**(例:"已拍板 X""根因是 Y");只留主题词等于没用 | ❌ 缺(决策句常被截掉) |
|
|
62
|
-
| 3 | **长度上限** | ≤`L1`=140 字符;超限按"信息密度"裁,不是简单截断 | ⚠️ 现约 93 字符,无规则 |
|
|
63
|
-
| 4 | **层级与状态** | 每条带 `layer`(五值)与 `status`(三值) | ❌ 缺(C1 在做) |
|
|
64
|
-
| 5 | **得分与匹配原因** | 返回 `词法×n / 语义×score` 与命中词,便于调参与解释 | ✅ 已有 |
|
|
65
|
-
| 6 | **多路融合** | 词法 + 语义 → RRF 融合;任一路不可用要标注(I7) | ⚠️ 语义臂会静默消失 |
|
|
66
|
-
| 7 | **同源去重 / 合并** | 同一文件多个块命中 → 合并为一条显示,避免刷屏占预算 | ❌ 缺 |
|
|
67
|
-
| 8 | **排序体现当前认知** | 笔记/结论优先于历史日志;被替代项降权或过滤 | ❌ 缺(现为纯 top-K) |
|
|
68
|
-
|
|
69
|
-
## 2.3 Tier-2(原文块)要素 —— 第三层要做好的事
|
|
70
|
-
|
|
71
|
-
| # | 要素 | 说明与要求 | 现状 |
|
|
72
|
-
| --- | --- | --- | --- |
|
|
73
|
-
| 1 | **分块粒度** | 按**记录/小节**切(现有 `chunkOrdinal/chunkCount`);实测 p50=418、p90=1186 字符 | ✅ 已有 |
|
|
74
|
-
| 2 | **块边界与重叠** | 边界不切断结论句;跨块语义断裂处应有**少量重叠**(或把结论句并入首块) | ❌ 未见重叠 |
|
|
75
|
-
| 3 | **块元数据** | `chunkId`、`memoryId`、`sourceRef`、`recordDigest`、`chunkOrdinal/Count` | ✅ 已有(15 字段) |
|
|
76
|
-
| 4 | **按块取,不取整篇** | 只回命中块(I3);长文档禁止整篇灌入 | ⚠️ 契约新定 |
|
|
77
|
-
| 5 | **可溯源** | 返回 `文件:行号` + `digest`,便于核验与回滚 | ✅ expand 已返回 |
|
|
78
|
-
| 6 | **超长块处理** | 单块 > `B2` 时:先截结论句 + 尾注"(已截断,全文 N 字符)",不静默丢 | ❌ 缺 |
|
|
79
|
-
| 7 | **保真** | 原文不改写、不摘要(引用必须逐字) | ✅ |
|
|
80
|
-
| 8 | **编码与 BOM** | 读回时剥离 BOM,保持 UTF-8 | ⚠️ 需断言 |
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
# 第三部分 · 一条好 RAG 管线的关键部件(对照表)
|
|
85
|
-
|
|
86
|
-
| # | 部件 | 我们要做到什么 | 现状 |
|
|
87
|
-
| --- | --- | --- | --- |
|
|
88
|
-
| 1 | **分块(Chunking)** | 语义完整、带元数据、必要时重叠 | ✅ 主体已有;重叠缺 |
|
|
89
|
-
| 2 | **嵌入(Embedding)** | 引擎身份入键(模型/维度/归一化);换引擎=全量重建 | ⚠️ OR 双引擎要写清切换语义 |
|
|
90
|
-
| 3 | **索引(Index)** | 向量 + 词法双路;**缓存键=chunkId**(内容寻址) | ❌ 现按整份语料哈希(P0-④) |
|
|
91
|
-
| 4 | **查询理解** | 多键提取、时间意图("最近/上次") | ⚠️ 部分 |
|
|
92
|
-
| 5 | **召回与融合** | 词法 + 语义 RRF;分数可解释 | ✅ 融合已有;语义臂不稳 |
|
|
93
|
-
| 6 | **重排(Rerank)** | 现在靠融合排序;有需求再上轻量重排 | ⚠️ 够用 |
|
|
94
|
-
| 7 | **过滤与权限** | `layer`/`status` 过滤、来源白名单、**检索+注入双层** | ❌ 缺(C1/C2) |
|
|
95
|
-
| 8 | **上下文组装** | 预算分配、排序(相关性 vs 时序)、去重、provenance 标注 | ❌ 缺(C5) |
|
|
96
|
-
| 9 | **可溯源(Grounding)** | 每条注入带出处(文件+行号+digest) | ✅ 部分 |
|
|
97
|
-
| 10 | **评估(Evaluation)** | ground truth 集 + 指标(命中率/答案可达率/噪声比/token) | ⚠️ 只有词法基线 |
|
|
98
|
-
| 11 | **容错与降级** | 跳过+计数+quarantine;未就绪显式标注(I7);fail-open | ❌ 现在 fail-closed 且静默 |
|
|
99
|
-
| 12 | **新鲜度与增量** | 写后防抖触发、快照 epoch、差量同步 | ❌ 缺(P0-④c/④e) |
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
# 第四部分 · 预算(Budget):要,而且要算出来
|
|
104
|
-
|
|
105
|
-
## 4.1 结论先说
|
|
106
|
-
|
|
107
|
-
**需要预算,并且它必须是三层一起核对过的总量。** 三层若同时全给,会直接顶穿注入预算——这不是理论,是实测:
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
Tier-0 800 token(≈1600 字符) + Tier-1 8×140(=1120 字符) + Tier-2 2400 字符
|
|
111
|
-
= 5120 字符,而注入预算 injectBudgetChars = 8000 字符(**可配置项**;见 SPEC §0.2)
|
|
112
|
-
→ 三层仍不同时给:本契约规定"逐层下探",与预算是否宽裕无关
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
**所以本契约规定:三层不是"同时给",而是"逐层下探"**(见 §5 闸门)。默认只给 Tier-0;命中不足才给 Tier-1;要证据才给 Tier-2。
|
|
116
|
-
|
|
117
|
-
## 4.2 预算的实测依据(E2,2026-09-14 重启后复跑)
|
|
118
|
-
|
|
119
|
-
来源:`~/.dsh/memory/semantic-pre/derived-corpus.json`(重启后重建,**34 条记录**,字段含 `text`):
|
|
120
|
-
|
|
121
|
-
| 指标 | 实测值 |
|
|
122
|
-
| --- | --- |
|
|
123
|
-
| 单条原文长度 | 最小 **144** / p50 **760** / p90 **1196** / p99 **1692** / 最大 **1692** 字符 |
|
|
124
|
-
| 合计 | 24,254 字符(均值 713) |
|
|
125
|
-
| 超过 1000 字符 | 7 条(20.6%) |
|
|
126
|
-
| 超过 2000 / 5000 / 10000 字符 | **0 / 0 / 0 条** |
|
|
127
|
-
|
|
128
|
-
**对账(证明"语料 text 长度"这个代理指标可信)**:抽 2 条真实 `expand` 与语料长度比对 —— `mem_d55f8e8e`:expand 报 **1499 字符** ↔ 语料 1499 ✅;`mem_5a7f779a`:expand 报 **1403 字符** ↔ 语料 1403 ✅。
|
|
129
|
-
|
|
130
|
-
## 4.3 由此定出的预算(初值)
|
|
131
|
-
|
|
132
|
-
| 参数 | 取值 | 依据 |
|
|
133
|
-
| --- | --- | --- |
|
|
134
|
-
| `B2`(Tier-2 单次) | **2400 字符**(≈1200 token) | E2 实测 max=1692;语料仍在增长(条均 713),留 ~42% 余量;超出者按 §2.3-6 截断(截结论句 + 标注"已截断,全文 N 字符") |
|
|
135
|
-
| `L1`(Tier-1 每条) | **140 字符**(≈70 token) | 原文 p50=760 → 压到 ~1/5 保留事实;现摘要约 93 字符偏短、缺结论句 |
|
|
136
|
-
| `K`(Tier-1 条数) | **8** | 8×140=1120 字符 ≈ 560 token,占注入预算 ~1/4 |
|
|
137
|
-
| `B0`(Tier-0 常驻) | **800 token**(≈1200 字符) | 占注入预算约 1/4;目录"每条 1 行"约 12 字 → 可容纳 ~30 条当前认知 |
|
|
138
|
-
| 总量上限 | 逐层下探,**不同时给**;单轮注入总长 ≤ `injectBudgetChars`(默认 8000) | §4.1 的实测校验 |
|
|
139
|
-
|
|
140
|
-
> **口径(与 SPEC §0.2 一致,别再当矛盾)**:Tier-0 常驻有两层门 —— `tier0MaxTokens` **默认 400**(**可配置项**),硬上限 `B0` = **800 token**;属「默认值 vs 上限」之别。
|
|
141
|
-
|
|
142
|
-
## 4.4 中间"概览层"要不要?——**本数据下不需要**
|
|
143
|
-
|
|
144
|
-
OpenViking 是 L0(~100 token) → L1(~2k) → L2(原文)。我们的实测是:**原文本身 p90 只有 1196 字符、max 1692**,L0(140 字符) 直接跳到原文块(≤2400)**跨度可接受**。
|
|
145
|
-
判定规则(写进契约,可复测):**当出现单块 > 5000 字符的源(如整篇 PLAN.md、超长日志)时,才需要"概览层"或更细的分块**;当前 **0 条**命中该条件(最近复核:34 条,max 1692)。
|
|
146
|
-
|
|
147
|
-
## 4.5 预算不是拍脑袋(校准流程)
|
|
148
|
-
|
|
149
|
-
1. 跑 **E1**(预算—召回曲线):扫 `L1 ∈ {60, 90, 140, 220, 400}`、`B0 ∈ {200, 400, 800, 1600}`,记录命中率与**答案可达率**;
|
|
150
|
-
2. 跑 **E3**(直接灌 vs 逐层):三策略的正确率 / token / 噪声比;
|
|
151
|
-
3. **选值规则:在满足"答案可达率 ≥ 0.9"的前提下取最小预算**(膝盖点);
|
|
152
|
-
4. 校准结果回写本表,并同步 `TODO-GRAPH.html` 的 P1-⑯。
|
|
153
|
-
|
|
154
|
-
## 4.6 token 计量口径(不统一,I1 就无法验证)
|
|
155
|
-
|
|
156
|
-
仓库既有 `estimateSessionTokens = ceil(chars/4)+4`(`lib/index.js:2471`)**对 CJK 低估 2–4 倍**,直接拿它当预算门会**静默突破 I1**。
|
|
157
|
-
|
|
158
|
-
- **契约规定:预算门取 `max(ceil(chars/2), 仓库口径)`**(保守值恒 ≥ 仓库值);
|
|
159
|
-
- C4 的 Tier-0 模块已按此实现并锁进测试;`estimateMode:'repo'` 可复算仓库口径对照;
|
|
160
|
-
- 换算:`B0 = 800 token` ≈ **1600 字符**目录容量。
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
# 第五部分 · 递进闸门
|
|
165
|
-
|
|
166
|
-
```
|
|
167
|
-
默认(常态):只注入 Tier-0(≤ B0 = 800 token)
|
|
168
|
-
↓ 当(Tier-0 命中 < 2 条)或(问题含「为什么 / 怎么 / 具体 / 复现」语义)时
|
|
169
|
-
下探 Tier-1:top-K(K=8,每条 ≤ L1 = 140 字符)
|
|
170
|
-
↓ 当(需要引用 / 行号 / 复现命令 / 判定"原文怎么说")时
|
|
171
|
-
下探 Tier-2:取该条的命中块(≤ B2 = 2400 字符)
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
- 允许**升层**(下层命中不足→回上层重选),**禁止**一次性三层全灌;
|
|
175
|
-
- 阈值(2 条 / 8 条 / 140 字符)为初值,由 E1/E3 校准。
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
# 第六部分 · 不变量(违反即回归)
|
|
180
|
-
|
|
181
|
-
- **I1** Tier-0 常驻且 ≤ `B0`;**I2** Tier-1 每条 ≤ `L1`、条数 ≤ `K`;**I3** Tier-2 按块且 ≤ `B2`;
|
|
182
|
-
- **I4** 每层条目必须带 `layer` + `status`;
|
|
183
|
-
- **I5**【**2026-09-19 R4-A 修正**】非 `current` 的条目在**检索侧「返回但标记」**、**注入侧「继续过滤」**;
|
|
184
|
-
> **修正依据(用户两次裁定)**:
|
|
185
|
-
> ① 「**返回但标记是正确的**」——作废条目对该 AI 是**有用信息**(「别用这条,看新的」比「查不到」更有价值);
|
|
186
|
-
> ② **`retracted` 也不过滤**:「**并不是挡,我感觉是备注**。因为比如说你之前踩过 3 次的那个坑,
|
|
187
|
-
> 如果你不记住这个教训的话,你还会再踩。」
|
|
188
|
-
> ⇒ 原措辞「**两处都被过滤**」已作废:**检索侧改为三态一律返回 + 标记**(`isRetrievablePre`,
|
|
189
|
-
> 只对未知值 fail-closed);**注入侧维持过滤**(`isCurrentPre`,常驻 800 token 不装过时条目)。
|
|
190
|
-
> **两处判据不同是有意为之**,不是漏改。
|
|
191
|
-
> 呈现:`superseded` ⇒ `⚠已作废(已被 mem_<32hex> 取代)`;`retracted` ⇒ `⚠已撤回(原因:<reason>;更正见 mem_<32hex>)`。
|
|
192
|
-
> **`retracted` 不是垃圾,它是教训**——这是本修正的核心。
|
|
193
|
-
- **I6** 三层来自同一份快照(同一 `miv`),混版视为错误;
|
|
194
|
-
- **I7** 索引未就绪 / 语义臂不可用**必须显式降级标注**(例:`[语义索引未就绪 · 已降级为词法]`),禁止静默丢弃注入。
|
|
195
|
-
|
|
196
|
-
`layer` ∈ { `user` | `project` | `log` | `reflection` | `whiteboard` };`status` ∈ { `current` | `superseded` | `retracted` }。
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
# 第七部分 · 施工清单与验收
|
|
201
|
-
|
|
202
|
-
| # | 改动 | 文件 | 状态 |
|
|
203
|
-
| --- | --- | --- | --- |
|
|
204
|
-
| **C1** | 抽取层补 `layer` + `status` | `lib/l0-extract-pre.js` | ✅ **完成**(+100/−2;`classifyLayerPre`/`L0_LAYERS`/`L0_STATUSES`/`L0_DEFAULT_LAYER`;21 断言绿) |
|
|
205
|
-
| **C2** | 召回返回带 `layer/status` + **检索侧过滤**(I5) | `lib/index.js` | ✅ **完成**(l0Mode 与语义臂两处;导出 `isCurrentPre`;21 断言绿;p2 回归已修复) |
|
|
206
|
-
| **C4** | Tier-0 目录生成器(每条 1 行,≤ `B0`,按优先级 + 配额裁剪) | 新 `lib/tier0-catalog-pre.js` | ✅ **完成**(33 断言绿;真实语料 788 token ≤ 800;**配额已随 C5 落地**:`allocateTier0QuotaPre` 为 opt-in,关闭时逐字节保持旧行为) |
|
|
207
|
-
| **C3** | 接线 `l0-index-pre.js`(L0 自己的向量索引,增量;**需显式落 layer/status 两列**) | `lib/l0-index-pre.js` + 新 `lib/l0-index-sync-pre.js` + `lib/index.js` | ✅ **完成**(模块侧显式落两列并把层/状态计入索引身份;接线经 `createL0IndexSyncPre` 的 `update({layer})` 显式传层;**按层各一份**索引文件;开关 `l0IndexEnabled` **默认开**(用户 2026-09-14 裁定)、5 分钟节流、全 fail-soft;**待宿主重启复核**) |
|
|
208
|
-
| **C5** | 注入层改造:Tier-0 常驻 + 按闸门下探 + **per-layer 配额** + 降级标注(I7) | 新 `lib/tier-layer-inject-pre.js` + `lib/index.js` + `lib/context-host-pre.js` + `lib/activation-host-pre.js` | ✅ **完成**(83 断言绿 + 5 处定向变异报红;**入口更正:每轮 `<memory_system>` 块由 `renderMemoryDynamic` 产出,`injectionText` 是零引用死代码**;`index-not-ready` 由静默丢弃改为降级仍注入;**待宿主重启复核**) |
|
|
209
|
-
| **C6** | 验收套件(每条能力一个**能失败**的断言) | `tests/smoke/smoke-test-three-layer-pre.mjs` | ✅ **完成**(**122 断言**:Tier-0 预算 19 / layer+status 27 / supersede 双层 14 / expand 回归 9 / 源文件损坏降级 11 / C3 接线 32 / C7 回归 10;7 处定向变异全部报红) |
|
|
210
|
-
| **C7** | 注入侧可见性:块内 `Score: 0.xx (rank n/m)` + reason 串带 `intent/dense/margin`(P1-⑮) | `lib/activation-inbox-pre.js` + `lib/context-host-pre.js` + `python/worker_semantic_pre_v1.py` | ✅ **完成**(29 断言绿:分值在、降序排名、乱序必重排、预算计入、无分省略;**待宿主重启后在真实注入里复核**) |
|
|
211
|
-
|
|
212
|
-
**验收判据("真过"的定义)**:
|
|
213
|
-
1. Tier-0 常驻且 ≤ `B0`,内容为"当前认知"而非原始转储;
|
|
214
|
-
2. L0 列表**每条**带 `layer` + `status`;
|
|
215
|
-
3. 造一条被 supersede 的记忆 → 断言它在**结果与注入**两处都不出现,但审计视图可见;
|
|
216
|
-
4. 造一条命中 → 断言 `expand` 取回原文(**已通,作为回归钉子**);
|
|
217
|
-
5. **故意破坏一个源文件** → 断言检索仍返回词法命中 + 明确降级标注(不是整条失败);
|
|
218
|
-
6. 上列每条都在 `tests/smoke/` 有对应套件,且**故意改坏实现时确实会红**。
|
|
219
|
-
7. **注入侧看得见相似度**(C7):注入块每条带 `Score: 0.xx (rank n/m)`,块序按分值严格降序;分值非法整行省略(不写 NaN);这几行的字节计入预算(不得静默超预算)。
|