@a9i5k4/dsh-auto-memory 2.2.2 → 2.2.4
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/docs/A3-RISK-ASSESSMENT-20260830.md +61 -0
- package/docs/COT-WATCH-RFC.md +88 -0
- package/docs/DUAL-TIER-RATIFICATION-PROMPT.md +71 -0
- package/docs/HANDOFF-HARNESS.md +78 -0
- package/docs/HANDOFF-M8-M9-M10.md +203 -0
- package/docs/HY4-TOUR-LOGO-HANDOFF-2.md +60 -0
- package/docs/HY4-TOUR-LOGO-HANDOFF.md +100 -0
- package/docs/ISSUE-REPLY-UNATTENDED.md +31 -0
- package/docs/K3-LANDING-HANDOFF.md +76 -0
- package/docs/LANDING-OUTLINE.md +85 -0
- package/docs/M-CM-PLAN.md +166 -0
- package/docs/M-CM-STATE.md +64 -0
- package/docs/M3B-CONTRACT.md +461 -0
- package/docs/M4-CONTRACT.md +1207 -0
- package/docs/M5-CONTRACT.md +383 -0
- package/docs/M6-CONTRACT.md +342 -0
- package/docs/M7-ACTIVATION-ALGO-REFERENCES.md +104 -0
- package/docs/M7-ACTIVATION-CALIBRATION.md +144 -0
- package/docs/M7-ACTIVATION-FEATURE-AGENT-PROMPT.md +79 -0
- package/docs/M7-ACTIVATION-FEATURE-CALIBRATION.md +58 -0
- package/docs/M7-ACTIVATION-FEATURE-DESIGN.md +124 -0
- package/docs/M7-ACTIVATION-V2-CONTROLLED-SHADOW.md +127 -0
- package/docs/M7-ACTIVATION-V2-HANDOFF.md +132 -0
- package/docs/M7-ACTIVATION-V2-HOLDEDOUT-EVAL.md +94 -0
- package/docs/M7-ACTIVATION-V2-HOLDEDOUT-SHADOW.md +60 -0
- package/docs/M7-ACTIVATION-V2-LIVE-SHADOW-PLAN.md +85 -0
- package/docs/M7-ACTIVATION-V2-PAPER.md +303 -0
- package/docs/M7-AGENT-HANDOFF-PROMPT.md +63 -0
- package/docs/M7-ALGORITHM-DECISION.md +174 -0
- package/docs/M7-AUTONOMOUS-STATE.md +252 -0
- package/docs/M7-BENCHMARK-PLAN.md +78 -0
- package/docs/M7-CLOSED-LOOP-WIRING.md +110 -0
- package/docs/M7-EMBEDDING-BENCHMARK.md +164 -0
- package/docs/M7-INTERFACE-DIGEST.md +144 -0
- package/docs/M7-LABEL-REVIEW-REPORT.md +107 -0
- package/docs/M7-LEXICAL-TUNING.md +58 -0
- package/docs/M7-LIVE-SHADOW-SCRIPT.md +30 -0
- package/docs/M7-PYTHON-IMPLEMENTATION-REPORT.md +92 -0
- package/docs/M7-RESEARCH-PAPER.md +442 -0
- package/docs/M7-TASKSET-DISPATCH.md +213 -0
- package/docs/M8-MEMORY-HUB.md +105 -0
- package/docs/MEMORY-SYSTEMS-SURVEY-2026-09.md +166 -0
- package/docs/NEXT-MAJOR-PROMO.md +363 -0
- package/docs/NEXT-MAJOR-README-DRAFT.zh.md +205 -0
- package/docs/NEXT-MAJOR-VISION.md +112 -0
- package/docs/PREVIEW-NEXT-STEPS.md +229 -0
- package/docs/PROJECT-FREEZE-AND-ROADMAP.md +200 -0
- package/docs/PROMO-STYLE-GUIDE.md +84 -0
- package/docs/PYTHON-SIDECAR-CONTRACT.md +539 -0
- package/docs/R2-POLICY-PLUMBING-BLUEPRINT.md +99 -0
- package/docs/RELEASE-READINESS-PLAN.md +91 -0
- package/docs/RELEASE-SEMANTIC-OPTION.md +181 -0
- package/docs/S1-SCIENTIFIC-RIGOR.md +269 -0
- package/docs/S2-DEEP-ABSORPTION.md +259 -0
- package/docs/S3-TARGET-ARCHITECTURE.md +172 -0
- package/docs/USER-GUIDE.zh-CN.md +283 -0
- package/docs/banner.jpg +0 -0
- package/docs/implementation-handoff-context.zh-CN.md +429 -0
- package/docs/landing/index.html +1745 -0
- package/docs/paper-figures/fig1_model_quality.png +0 -0
- package/docs/paper-figures/fig2_chunk_reversal.png +0 -0
- package/docs/paper-figures/fig3_latency.png +0 -0
- package/docs/paper-figures/fig4_hybrid.png +0 -0
- package/docs/paper-figures/fig5_rerank_tradeoff.png +0 -0
- package/docs/paper-figures/fig6_cluster_sweep.png +0 -0
- package/docs/paper-figures/fig7_resource.png +0 -0
- package/docs/paper-figures-v2/fig1_echo_trap.png +0 -0
- package/docs/paper-figures-v2/fig2_pr_paths.png +0 -0
- package/docs/paper-figures-v2/fig3_coefficients.png +0 -0
- package/docs/paper-figures-v2/fig4_calibration.png +0 -0
- package/docs/paper-figures-v2/fig5_order_ablation.png +0 -0
- package/docs/paper-figures-v2/fig6_containment.png +0 -0
- package/docs/proactive-associative-memory-architecture.html +659 -0
- package/docs/proactive-associative-memory-meta-code.html +1058 -0
- package/docs/proactive-associative-memory-research-report.zh-CN.md +685 -0
- package/docs/proactive-associative-memory-system-map.html +1580 -0
- package/docs/promo/first-run-guide.html +397 -0
- package/docs/promo/homepage.html +384 -0
- package/docs/screenshots/calendar-en.png +0 -0
- package/docs/screenshots/calendar-zh.png +0 -0
- package/docs/screenshots/connect-en.png +0 -0
- package/docs/screenshots/connect-zh.png +0 -0
- package/docs/screenshots/main-connect-en.png +0 -0
- package/docs/screenshots/main-connect-zh.png +0 -0
- package/docs/screenshots/overview-en.png +0 -0
- package/docs/screenshots/overview-zh.png +0 -0
- package/docs/screenshots/panel-hub.png +0 -0
- package/docs/screenshots/panel-overview.png +0 -0
- package/docs/screenshots/panel-refine.png +0 -0
- package/docs/screenshots/promo/promo-0-banner-v2.png +0 -0
- package/docs/screenshots/promo/promo-1-hero.png +0 -0
- package/docs/screenshots/promo/promo-2-tour.png +0 -0
- package/docs/screenshots/promo/promo-3-recall.png +0 -0
- package/docs/screenshots/promo/promo-4-unattended.png +0 -0
- package/docs/screenshots/promo/promo-5-external.png +0 -0
- package/docs/screenshots/promo/promo-6-greeting.png +0 -0
- package/docs/screenshots/reflections-en.png +0 -0
- package/docs/screenshots/search-zh.png +0 -0
- package/docs/screenshots/settings-2-zh.png +0 -0
- package/docs/screenshots/settings-debug-zh.png +0 -0
- package/docs/screenshots/settings-en.png +0 -0
- package/docs/screenshots/settings-zh.png +0 -0
- package/docs/screenshots/tour-core.png +0 -0
- package/docs/screenshots/tour-external.png +0 -0
- package/docs/screenshots/tour-toggles.png +0 -0
- package/docs/screenshots/tour-welcome.png +0 -0
- package/docs/screenshots/workspace-map-zh.png +0 -0
- package/docs/social-preview.png +0 -0
- package/lib/client.js +277 -118
- package/lib/index.js +329 -60
- package/lib/subagent-gc.js +239 -0
- package/lib/water-window.js +88 -0
- package/package.json +2 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# M7 Activation Feature v2 Shadow Agent Prompt
|
|
2
|
+
|
|
3
|
+
工作区:D:/dsh-auto-memory
|
|
4
|
+
|
|
5
|
+
你只负责 M7-8 Phase F 后续的 activation feature v2 设计实现和离线校准。本轮不得进入 active canary,不得修改 M5/M6 validator、Reference Tail、delivery/seen、生产默认配置,不得重启 3080。
|
|
6
|
+
|
|
7
|
+
开始前阅读:
|
|
8
|
+
1. docs/M7-ACTIVATION-FEATURE-DESIGN.md
|
|
9
|
+
2. docs/M7-ACTIVATION-CALIBRATION.md
|
|
10
|
+
3. docs/M7-ALGORITHM-DECISION.md
|
|
11
|
+
4. docs/M7-RESEARCH-PAPER.md
|
|
12
|
+
5. docs/PYTHON-SIDECAR-CONTRACT.md §19.8/§19.9
|
|
13
|
+
6. docs/M7-AUTONOMOUS-STATE.md 与 artifacts/m7-autonomous-pre/state.json
|
|
14
|
+
7. artifacts/m7-live-pre/calibration-cal20260824-1855/
|
|
15
|
+
8. artifacts/m7-live-pre/label-review-cal20260824-1954/
|
|
16
|
+
9. python/worker_semantic_pre_v1.py
|
|
17
|
+
10. smoke-test-m76-pre.mjs、smoke-test-m77-pre.mjs
|
|
18
|
+
|
|
19
|
+
先运行 git status --short --branch。保留所有既有修改和未跟踪文件;不要 reset、checkout、clean、add、commit、push、tag、publish。
|
|
20
|
+
|
|
21
|
+
当前硬事实:58 条人工 gold 已导入,activate=22、prefetch=19、suppress=17;当前 tOn=0.62/tOff=0.52 下 echo suppress 可能错误 emit;阈值网格无法在不改特征的情况下同时满足 precision-first 和 usable recall;M7 当前 tested not live。
|
|
22
|
+
|
|
23
|
+
M7-2 BGE-M3、D6 hybrid、三重 scope 过滤、correction hard-drop、rerank deferred、graph skipped 保持不变。不要重新选择 embedding,不要重新做 graph/reranker。
|
|
24
|
+
|
|
25
|
+
任务:
|
|
26
|
+
|
|
27
|
+
A. 实现 activation_features_pre_v2 shadow-only:
|
|
28
|
+
- echoRisk:词汇/文本近重复 + dialogueAct + recallIntent + taskNeed + toolFailure;高置信生活 echo suppress,明确 recall/taskNeed 不误伤。
|
|
29
|
+
- recallIntent:一期高精度中英词典/句式;二期小型 calibrated classifier,禁止在线大模型依赖。
|
|
30
|
+
- dialogueAct/taskNeed:question、recall_request、action_request、error_report、planning、statement、acknowledgement、correction、other;taskNeed=none/optional/required。
|
|
31
|
+
- proactive margin/uniqueness gate;explicit recall lane 允许较低 margin但仍需 fresh/in-scope。
|
|
32
|
+
- repetition persistence:per-session topic/entity fingerprint、衰减计数、failedAttemptCount;不升级生活 echo。
|
|
33
|
+
- fusedScore/lexicalExact 不重复计权 D6;公式可重算并绑定 policyVersion。
|
|
34
|
+
|
|
35
|
+
B. 离线研究 arm,不默认接同步生产路径:MMR 去冗余;NLI/entailment echo 特征;SetFit/Snorkel 弱监督;CalibratedClassifierCV/isotonic 与 MAPIE coverage-risk。每个 arm 独立 runId/configHash。
|
|
36
|
+
|
|
37
|
+
C. 禁止:调低 tOn/tOff 制造 emit;切 mode=active;改 M5/M6/JS Host;启动 GPU/reranker/model-sparse/graph 生产路径;在线修改 policy;让 cluster membership 单独 emit;让 correction 正向加分。
|
|
38
|
+
|
|
39
|
+
D. 数据:读取 58 human gold、silver/edge cases、activation-shadow 和 calibration artifacts。train/dev/test 按 session/seed/pair 分组,禁止泄漏。新 counterfactual 必须标 synthetic/derived、parent memory/episode、generator、sourceDigest。重点覆盖生活 echo、明确中英文 recall、statement/recall pair、tool failure/repetition、correction/stale/wrong scope/PII、cross-workspace advisory。
|
|
40
|
+
|
|
41
|
+
E. 校准:新 policyVersion 使用 activation_features_pre_v2 或更高;shadow replay 后输出 threshold grid,不能写生产配置。目标 actPrecision >=0.7、harmfulEmit=0、correction/wrong-scope/stale leakage=0、跨语言独立统计。达不到则输出 feature_not_separable 或 insufficient_gold_for_active,继续 shadow。
|
|
42
|
+
|
|
43
|
+
F. 产物:
|
|
44
|
+
- docs/M7-ACTIVATION-FEATURE-DESIGN.md 实施证据与偏差。
|
|
45
|
+
- docs/M7-ACTIVATION-FEATURE-CALIBRATION.md。
|
|
46
|
+
- artifacts/m7-live-pre/feature-v2-<runId>/labels.jsonl、metrics.json、threshold-grid.csv、error-analysis.jsonl、provenance-manifest.json。
|
|
47
|
+
- docs/M7-AUTONOMOUS-STATE.md 和 artifacts/m7-autonomous-pre/state.json 原子更新。
|
|
48
|
+
|
|
49
|
+
G. 测试:生活 echo 全 suppress;中英文 explicit recall;同主题 statement/recall pair;margin/uniqueness;repetition 只升级 prefetch;correction/ignored/stale/wrong scope/PII hard gate;cross-workspace advisory default off;classifier session-group split;policy replay deterministic;no online mutation。
|
|
50
|
+
|
|
51
|
+
完成后运行 Python tests、py_compile、现有 26 项回归和新增专项测试,保存 runId/configHash/device。只报告新特征对 separability 的影响、失败样本和 active 门状态;无论结果如何保持 shadow 和默认关闭。
|
|
52
|
+
|
|
53
|
+
## 【实施前强制修订】(主 Agent 评审 2026-08-25 附加,与上文冲突时以本节为准)
|
|
54
|
+
|
|
55
|
+
1. 决策顺序必须是:JS/M7 硬门 → lane 判定 → explicit/proactive 各自规则。echoRisk 只在 proactive lane 作 hard veto;明确 recall request 不得因文本复述而被提前 veto。
|
|
56
|
+
|
|
57
|
+
2. 新建独立 `python/m7_activation_features_pre_v2.py`,不要把全部特征逻辑内联堆入 worker。旧 activation v1 保留用于回放与 fallback。
|
|
58
|
+
|
|
59
|
+
3. 学习头导出为可审计 JSON,不得在生产加载 pickle/joblib:至少含 feature schema、vocabulary/IDF、coefficients、intercept、calibration、runId、goldDigest、configHash、parentPolicyVersion。
|
|
60
|
+
|
|
61
|
+
4. policy 命名固定区分:
|
|
62
|
+
- activation_features_pre_v2
|
|
63
|
+
- recall_intent_lr_pre_v1
|
|
64
|
+
- activation_policy_pre_v2
|
|
65
|
+
不得用实验别名 v3a 作为 wire policyVersion。
|
|
66
|
+
|
|
67
|
+
5. 建立不少于 20 条边界样本的逐字段 online-vs-OOF golden parity 测试;不仅比较整体指标。归一化、缺失值、浮点和分词差异必须 fail closed。(边界 fixture 可从 86 gold 中按 |intentProb−τ|≤0.10 与 |pEmit−0.65|≤0.15 选取,另含全部 echo/harm/relay 家族代表。)
|
|
68
|
+
|
|
69
|
+
6. completeness gate 输出 requiredTargetCount/resolvedTargetCount/status(complete|partial|unknown)。partial 或 unknown 最多 prefetch。对比/枚举词典仅作一期保守检测,不得作为永久唯一依据。
|
|
70
|
+
|
|
71
|
+
7. repetition 在本轮只做 feature logging;允许 suppress→prefetch,禁止仅凭 2 次失败或 3 次提及直接 activate。生活/闲聊 topic 永不升级。
|
|
72
|
+
|
|
73
|
+
8. 本轮不得宣称 crossWorkspaceRecall 或 sensitiveMemoryMode 已产品化。它们属于 JS 的 index_sync/context_push 前置授权层。Python 只能读取 JS 显式发送的 policy 字段,缺失时 fail closed,并输出 requiresCrossWorkspaceRelay / PII class 供后续 JS 阶段使用。
|
|
74
|
+
|
|
75
|
+
9. held-out active 门增加最小支持量:activate gold ≥15、predicted emit ≥8、中文/英文各有正例;同时报告 precision CI 与 activation coverage。未满足时继续 shadow,即使 point estimate precision≥0.7。
|
|
76
|
+
|
|
77
|
+
10. τ=0.70 仅写入 shadow candidate policy,不修改生产默认 tOn/tOff,不切 active。新 policy 必须有 parent、diff、goldDigest、runId、configHash 和 rollback 信息。
|
|
78
|
+
|
|
79
|
+
完成后停止在 held-out shadow 操作清单,不执行 3080 重启或 active canary。
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# M7 Activation Feature v2 校准报告
|
|
2
|
+
|
|
3
|
+
> 阶段:R1(Python feature v2 shadow 接线 + 离线校准 + held-out 准备)
|
|
4
|
+
> 日期:2026-08-25 · runId:feature-v2-heldout
|
|
5
|
+
> 结论:**continue_shadow** — 架构已验证、parity 全绿,但 held-out 人工 gold 尚未导入
|
|
6
|
+
|
|
7
|
+
## 1. 当前有效策略(唯一来源)
|
|
8
|
+
|
|
9
|
+
python/policies/activation_policy_pre_v2.json
|
|
10
|
+
- policyVersion = activation_policy_pre_v2
|
|
11
|
+
- mode = **shadow-candidate**
|
|
12
|
+
- tauLane=0.45 / tauHi=0.45 / tauLo=0.35 / deltaExp=0.03 / deltaPro=0.05
|
|
13
|
+
- echo veto 仅 proactive lane
|
|
14
|
+
- decisionRecordId = activation-v2-delta-exp-override-20260824
|
|
15
|
+
|
|
16
|
+
## 2. 实现交付(全部完成)
|
|
17
|
+
|
|
18
|
+
| 组件 | 路径 | 状态 |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| 特征模块 | python/m7_activation_features_pre_v2.py | 纯 stdlib |
|
|
21
|
+
| 意图头工件 | python/policies/recall_intent_lr_pre_v1.json | vocab 2497/IDF/LR/Platt |
|
|
22
|
+
| 策略工件 | python/policies/activation_policy_pre_v2.json | 含 configHash/goldDigest |
|
|
23
|
+
| 决策记录 | python/policies/decision-record-*.json | δ 0.02→0.03 变更审计 |
|
|
24
|
+
| 独立校验器 | python/verify_policy_artifact.py | PASS |
|
|
25
|
+
| Worker 接线 | worker_semantic_pre_v1.py(shadow 路径) | fail-closed |
|
|
26
|
+
| Golden parity | 55 fixtures 逐字段一致 | ALL MATCH |
|
|
27
|
+
| 规则单测 | tests/test_m7_features_v2.py | OK |
|
|
28
|
+
| 全量回归 | 28 suites (含 m79) | ALL PASS |
|
|
29
|
+
|
|
30
|
+
## 3. 86 Gold 重拟合结果
|
|
31
|
+
|
|
32
|
+
v1 默认: prec=0/rec=0 (emit即回声)
|
|
33
|
+
v2c+P3门 τ_hi=0.45/δ=0.03(effective): prec=1.000/rec=0.289/sViol=0
|
|
34
|
+
学习头 v3a τ=0.65(无完整性门): prec=0.833/rec=0.682/sViol=1
|
|
35
|
+
v3b oracle hit(上限): prec=0.826/rec=0.864
|
|
36
|
+
|
|
37
|
+
## 4. Held-out 准备
|
|
38
|
+
|
|
39
|
+
53 条新样本与 86 gold 完全隔离:
|
|
40
|
+
activate 25 / suppress 22 / prefetch 6
|
|
41
|
+
覆盖 echo-vs-recall/failure-vs-planning/supersede/cross-workspace/cross-lingual/low-info
|
|
42
|
+
split 按 pairId 哈希分组 train/dev/test
|
|
43
|
+
|
|
44
|
+
用户裁决后合并预期:86+53≈139 条 → 满足 held-out active 门 ≥15/class
|
|
45
|
+
|
|
46
|
+
## 5. continue_shadow 理由
|
|
47
|
+
|
|
48
|
+
held-out activate gold=0(未导入) / predicted emit=N/A(无 live 流量) / actPrecision=N/A
|
|
49
|
+
→ 全部条件不满足,继续 shadow
|
|
50
|
+
|
|
51
|
+
下一步路径:用户裁决 heldout-review-queue.jsonl → 导入 human gold → live shadow ≥3天 → 按门验收 → policy diff → 用户批准 → active canary
|
|
52
|
+
|
|
53
|
+
## 6. 已知债务
|
|
54
|
+
|
|
55
|
+
1. candidateHit 使用 memoryRefs 交集近似
|
|
56
|
+
2. repetition logging-only; P4 升级逻辑需 JS 多次提及门口径对齐
|
|
57
|
+
3. completeness 词典为一期保守方案
|
|
58
|
+
4. 意图头 OOF vs full-fit 边界差 0.222——需 held-out 弥合
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# M7 Activation Feature Design
|
|
2
|
+
|
|
3
|
+
> 状态:设计评审稿;本轮不修改生产代码、配置、阈值或 active 状态
|
|
4
|
+
> 日期:2026-08-24
|
|
5
|
+
> 前置:M0-M6 live;M7-2..M7-7.5 tested;Phase F = gold_quota_met_but_score_not_separable
|
|
6
|
+
|
|
7
|
+
## 1. 结论
|
|
8
|
+
|
|
9
|
+
BGE-M3、D6 hybrid、scope/provenance 和 M7-2..M7-7 代码继续保留。当前失败不是基础 retrieval 失败,而是 activation eligibility 与 semantic relevance 混淆:suppress 类生活记录 echo 的最高分高于 activate gold;denseTop 不表示用户正在请求历史资料;recency 因 occurredAt=null 休眠;live evidence 多数为空。因此单独调 tOn/tOff 无法同时获得 precision 和 recall。
|
|
10
|
+
|
|
11
|
+
当前状态保持:
|
|
12
|
+
|
|
13
|
+
~~~text
|
|
14
|
+
retrieval_quality = usable
|
|
15
|
+
activation_policy = not separable
|
|
16
|
+
active_canary = prohibited
|
|
17
|
+
M7 = tested, not live
|
|
18
|
+
~~~
|
|
19
|
+
|
|
20
|
+
新特征必须使用新 policyVersion,在人工 gold 和新增 shadow 流量上离线重放;本设计不授权 active。
|
|
21
|
+
|
|
22
|
+
## 2. 两条激活路径
|
|
23
|
+
|
|
24
|
+
Explicit Recall Lane:用户明确要求历史资料,如之前、上次、找出来、什么决定、recall、previous decision、what did we decide。要求 recallIntent 高置信、候选 fresh/in-scope、目标唯一或 margin 足够、无 correction/ignored/PII/safety 硬拒绝。可用较低语义分数,但不绕过 JS/M6 硬门。
|
|
25
|
+
|
|
26
|
+
Proactive Lane:用户没有明确要求回忆。必须有工具失败、重复尝试、未解决事项、阶段切换或多条独立任务信号。普通陈述、生活记录复述、acknowledgement 不能仅因 denseTop 高而 activate。
|
|
27
|
+
|
|
28
|
+
## 3. 特征设计
|
|
29
|
+
|
|
30
|
+
### 3.1 echoRisk
|
|
31
|
+
|
|
32
|
+
当前文本与候选正文近重复/复述的风险,不等于普通 semantic similarity。输入包括 lexical coverage、normalized text similarity、dense similarity、dialogueAct、recallIntent、candidate 是否刚由用户引入、taskNeed、toolFailure、unresolved。
|
|
33
|
+
|
|
34
|
+
高 echoRisk 初始条件:高 lexical/dense 相似 + statement/acknowledgement + 无 recallIntent + taskNeed=none。明确 recallIntent 或 taskNeed=required 时不直接 veto。落点是 Python feature layer,policyVersion 为 activation_features_pre_v2;高置信 echo 只能 suppress/prefetch。
|
|
35
|
+
|
|
36
|
+
### 3.2 recallIntent
|
|
37
|
+
|
|
38
|
+
一期用高精度中英文词典和句式,二期用人工 gold 训练小型可解释分类器。建议字符 n-gram/embedding + Logistic Regression,再用 sigmoid/isotonic calibration。SetFit、NLI、Snorkel 只做离线对照或弱标签,不能替代人工 gold。
|
|
39
|
+
|
|
40
|
+
输出 recallIntentProbability、dialogueAct、intentEvidence。Explicit recall 是 lane 选择信号,不是越权授权。
|
|
41
|
+
|
|
42
|
+
### 3.3 dialogueAct / taskNeed
|
|
43
|
+
|
|
44
|
+
枚举:question、recall_request、action_request、error_report、planning、statement、acknowledgement、correction、other。
|
|
45
|
+
|
|
46
|
+
taskNeed:none、optional、required。它回答任务是否依赖历史记忆,不等于候选是否相似。
|
|
47
|
+
|
|
48
|
+
### 3.4 margin / uniqueness / evidence
|
|
49
|
+
|
|
50
|
+
Proactive 要求 calibrated margin、candidate uniqueness 或多个任务信号;explicit lane 可用较低 margin但必须 fresh/in-scope。M5 evidence 是 boost,不是 cold-start 硬门。correction、ignored、conflict、PII、wrong scope、stale 是硬 suppress。margin 阈值由 gold 网格选择。
|
|
51
|
+
|
|
52
|
+
### 3.5 repetition / persistence
|
|
53
|
+
|
|
54
|
+
按 per-session topic/entity fingerprint 或 query embedding 相似度做衰减计数,不按重复词面简单计数。状态包含 topicKey、firstSeenAt、lastSeenAt、decayedCount、failedAttemptCount、progressSignal、lastAction。重复失败/同一未决目标可升级 suppress 到 prefetch 或 prefetch 到 activate;重复生活陈述不能升级。
|
|
55
|
+
|
|
56
|
+
### 3.6 fused / lexicalExact
|
|
57
|
+
|
|
58
|
+
D6 fusedScore 已包含 dense+lexical,不得再次把 denseTop、fusedScore、lexicalScore 无校准相加。activation 使用 fusedScore、fusedMargin、lexicalExact/code/path/error-code hit、intent、echoRisk、taskNeed、evidence。raw dense 仅用于诊断/消融。
|
|
59
|
+
|
|
60
|
+
## 4. P1-P7 裁定
|
|
61
|
+
|
|
62
|
+
| 提案 | 裁定 | 落点 | 理由 |
|
|
63
|
+
| --- | --- | --- | --- |
|
|
64
|
+
| P1 echoRisk | 修改后采纳,P0 | Python feature/policy | 高 echo + statement + 无 intent + 无 task need 才 suppress;echo gold 全 suppress,activate gold 不误伤。 |
|
|
65
|
+
| P2 recallIntent | 采纳,P0 | Python feature/policy | 先词典/句式,后 calibrated small classifier;做中英混淆矩阵和 session-group split。 |
|
|
66
|
+
| P3 margin/evidence | 修改后采纳,P0 | Python activation policy | proactive 要 margin/uniqueness;evidence 是 boost;explicit lane 单独处理。 |
|
|
67
|
+
| P4 repetition | 修改后采纳,P1 | Python session state | 衰减 persistence + failed attempts;close_session 清理;不升级生活 echo。 |
|
|
68
|
+
| P5 fused/lexical | 采纳但重构,P1 | Python feature model | 防 D6 分数重复计权;公式可重算、policyVersion 固定。 |
|
|
69
|
+
| P6 model-sparse | 延后独立消融,P2 | Python retrieval | 改善候选不等于解决 echo;同 gold、独立 runId/configHash。 |
|
|
70
|
+
| P7 GPU | 延后条件采纳,P3 | Python runtime | 只解决 latency/rerank;独立 gpu-venv,device 进入 identity/configHash。 |
|
|
71
|
+
|
|
72
|
+
## 5. 公开算法建议
|
|
73
|
+
|
|
74
|
+
MMR 用于 top-K 去冗余,不用于判断是否唤起。公式为 relevance 减去与已选候选的最大相似度。来源:[Carbonell & Goldstein MMR](http://www.cs.cmu.edu/~jgc/publication/MMR_DiversityBased_Reranking_SIGIR_1998.pdf)。
|
|
75
|
+
|
|
76
|
+
NLI/entailment 可离线比较 query 到 memory 的 entailment、contradiction、neutral,作为 echo/contradiction 特征;不要放进当前 CPU 500ms 同步路径。参考:[cross-encoder/nli-roberta-base](https://huggingface.co/cross-encoder/nli-roberta-base)。
|
|
77
|
+
|
|
78
|
+
小型意图分类优先字符 n-gram/embedding + Logistic Regression,再做 [CalibratedClassifierCV](https://scikit-learn.org/stable/modules/generated/sklearn.calibration.CalibratedClassifierCV.html) 或 isotonic calibration。SetFit 可作 few-shot 对照,Snorkel labeling functions 可作弱标签。
|
|
79
|
+
|
|
80
|
+
不确定时输出 prefetch 或 suppress,而不是强制 activate。可用 [MAPIE conformal prediction](https://mapie.readthedocs.io/en/latest/content/conformal-prediction/theory/) 分析 coverage-risk。
|
|
81
|
+
|
|
82
|
+
## 6. 系统议题
|
|
83
|
+
|
|
84
|
+
### 6.1 门控进化
|
|
85
|
+
|
|
86
|
+
固定流程:shadow -> 人工 gold -> offline replay/calibration -> policy diff -> 人工批准 -> 新 policyVersion shadow canary -> active canary -> rollback。禁止 online 自动修改阈值、权重、模型或 prompt。策略 registry append-only,保存 parent policy、diff、gold digest、runId、metrics、批准者和 rollback 版本。
|
|
87
|
+
|
|
88
|
+
### 6.2 审批工作流
|
|
89
|
+
|
|
90
|
+
先输出脱敏 Markdown/JSON 审批队列,再做 UI。展示 memoryId、sourceRef、score、echoRisk、intent、scope、freshness 和理由;A/P/S/H/E append-only;E 只能选已有 memoryId;审批不创建 AccessEvidence、不触发 M6 delivery。advisory-only 独立呈现,不能自动执行 Procedure。
|
|
91
|
+
|
|
92
|
+
### 6.3 跨工作区
|
|
93
|
+
|
|
94
|
+
建议 crossWorkspaceRecall = off | advisory | active,默认 off。off 不发其他 workspace index_sync;advisory 允许 requiresCrossWorkspaceRelay=true 建议但默认不进 Reference Tail;active 需用户 opt-in,经 JS scope、workspaceRef、PII 和 M6 硬门。用户已裁决为 P/advisory 的样本不改成永久 hard suppress。
|
|
95
|
+
|
|
96
|
+
### 6.4 PII 敏感度
|
|
97
|
+
|
|
98
|
+
建议 sensitiveMemoryMode = never | explicit_only | proactive,默认建议 explicit_only,最终由用户拍板。JS 在 index_sync/context_push 前硬过滤:never 不发送;explicit_only 仅明确搜索/回忆可用;proactive 才允许主动建议。策略进入 context/index/activation policyVersion 和 configHash。
|
|
99
|
+
|
|
100
|
+
## 7. 最小解锁路径
|
|
101
|
+
|
|
102
|
+
1. P1/P2/P3 feature v2:echoRisk、recallIntent、dialogueAct/taskNeed、margin/uniqueness、correction/PII/scope hard gate。
|
|
103
|
+
2. 用 58 gold 和新增边界样本离线 replay。
|
|
104
|
+
3. 目标 actPrecision >= 0.7、harmfulEmit=0、correction/wrong-scope/stale leakage=0,并单独报告跨语言。
|
|
105
|
+
4. P4/P5 再进入 shadow。
|
|
106
|
+
5. P6/P7 只做独立消融,不作为 active 前置。
|
|
107
|
+
6. 达标后才做单一受控 active canary。
|
|
108
|
+
|
|
109
|
+
## 8. 测试矩阵
|
|
110
|
+
|
|
111
|
+
1. 面条/天气/生活 echo 全部 suppress。
|
|
112
|
+
2. 中英文 explicit recall activate。
|
|
113
|
+
3. 同主题 statement 与 recall request 成对对照。
|
|
114
|
+
4. proactive margin/uniqueness gate。
|
|
115
|
+
5. repetition 升级 prefetch 但不绕过 echo。
|
|
116
|
+
6. correction/ignored/stale/wrong scope/PII hard suppress。
|
|
117
|
+
7. cross-workspace advisory flag/default off。
|
|
118
|
+
8. classifier session-group split。
|
|
119
|
+
9. policy diff/replay determinism。
|
|
120
|
+
10. no online policy mutation。
|
|
121
|
+
|
|
122
|
+
## 9. 落点
|
|
123
|
+
|
|
124
|
+
本文件是 activation feature v2 设计入口。冻结 D1-D11 不直接覆盖;所有实验使用新 policyVersion、runId、configHash、device 和 gold digest。本轮只完成设计,不改生产代码、配置或 active 状态。
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# M7-8 受控 Live Shadow 报告(2026-08-25 晚)
|
|
2
|
+
|
|
3
|
+
> 环境:用户 20:28 手动重启 3080(PID 5540,加载全部修复后代码);三重门全开
|
|
4
|
+
> (pythonBackend/assoc/bridge/inbox/activationSource=python),决策模式
|
|
5
|
+
> shadow-candidate;embedding=bge-m3 fp32(fp32 口径与离线验收一致)。
|
|
6
|
+
> 发送方式:桌面自动化 #1–#6 + 用户手动 #7–#20,共 20 条脚本化请求,
|
|
7
|
+
> 覆盖中英回忆/混合/生活 echo/correction/wrong-scope/stale/tool-failure/计划/概览十类。
|
|
8
|
+
|
|
9
|
+
## 一、链路验证:全通 ✅
|
|
10
|
+
|
|
11
|
+
| 环节 | 证据 |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| lazy spawn | worker PID 10388(父进程=新 harness 5540),20:35:52 首流量启动 |
|
|
14
|
+
| index_sync | derived-corpus.json 20:36 更新;miv=idx_pre_bb0ef6047… 与向量文件**一致** |
|
|
15
|
+
| 编码+检索 | v1 候选影子每观测 8 候选,dense/fused 分数正常(top 0.63–0.73) |
|
|
16
|
+
| fv2 决策 | activation-shadow-v2.jsonl 基线 9 → **103 行(+94 观测)**,每条消息 ~4.7 个
|
|
17
|
+
请求边界观测(agent 工具轮次各一次 pre-step push),policyVersions/configHash/goldDigest
|
|
18
|
+
与冻结产物逐字段一致 |
|
|
19
|
+
| 安全性 | **零 Reference Tail、零 delivered、零 seen** —— shadow 契约完整保持 |
|
|
20
|
+
|
|
21
|
+
## 二、核心发现:stale 硬门语义过宽(94/94 全部 hard_gate_stale)
|
|
22
|
+
|
|
23
|
+
所有 94 个观测的 decision=suppress、reasonCodes=[hard_gate_stale]、features=null。
|
|
24
|
+
|
|
25
|
+
根因链:
|
|
26
|
+
1. fv2 的 stale 门实现为 `any(e.freshness=='stale' for e in payload.evidence)`;
|
|
27
|
+
2. 今天大量记忆文件被更新(本报告所属文档工作本身即是)→ anchored sourceVersion 升级
|
|
28
|
+
→ M5 evidence store 中历史证据相对新版本全部判 `freshness='stale'`;
|
|
29
|
+
3. 于是每个 context_push 都携带 ≥1 条 stale 证据 → 硬门全局触发 → fv2 在真实流量下
|
|
30
|
+
退化为"常灭"。
|
|
31
|
+
|
|
32
|
+
对照:离线 held-out 验收(actPrecision 0.917)时 hardGates 全 False——该门在离线
|
|
33
|
+
从未被真实数据考验过;受控 shadow 的价值正在于抓到它。**shadow 模式正确兜住了
|
|
34
|
+
这个缺陷:零注入、零打扰。**
|
|
35
|
+
|
|
36
|
+
判定:这是 **over-broad gate 实现缺陷**(非数据问题、非策略阈值问题)。设计意图是
|
|
37
|
+
"候选引用的记忆已过期则不注入",实现却变成"会话里存在任何过期证据即全局硬灭"。
|
|
38
|
+
|
|
39
|
+
## 三、修复(已实施,2026-08-25 深夜,用户直接授权)
|
|
40
|
+
|
|
41
|
+
采用方向 A 的最小侵入形式:**判定收窄在 worker 的门构造处**——stale/correction
|
|
42
|
+
仅当受影响 memoryId ∈ 当前 top-K 候选时触发硬门;决策核 `m7_activation_features_pre_v2.py`
|
|
43
|
+
与两份策略 JSON **零改动**(configHash 不变),golden parity 夹具零漂移。
|
|
44
|
+
|
|
45
|
+
验证:场景矩阵 7/7 PASS(相关 stale 触发硬门 / 无关 stale 放行 / 空证据放行 /
|
|
46
|
+
correction 对称 / 端到端 emit 路径恢复 / 相关 stale 仍压制);m73 59/59、m79 20/20。
|
|
47
|
+
正式记录:`python/policies/decision-record-stale-gate-per-candidate-20260825.json`。
|
|
48
|
+
|
|
49
|
+
**生效条件**:需用户再次重启 3080 加载新 worker;然后复用同一份 20 条清单重跑受控
|
|
50
|
+
shadow,预期 stale 门行消失、明确回忆请求产生与离线重放一致的 emit/prefetch 决策。
|
|
51
|
+
后续夹具窗口应补入 stale 场景夹具。
|
|
52
|
+
|
|
53
|
+
## 四、当前状态结论
|
|
54
|
+
|
|
55
|
+
- M7-8 受控 shadow 第一步目的达成:**线上行为与离线的偏差点已精确定位并归档**。
|
|
56
|
+
- 在修复(需重启 3080 加载)落地前,M7 不满足进入 active canary 的条件(canary 要求 explicit lane 真实注入)。
|
|
57
|
+
|
|
58
|
+
## 五、第二轮(2026-08-25 晚)诊断与仪表
|
|
59
|
+
|
|
60
|
+
- 仪表:在 `_fv2_shadow_decide` 调试日志首行(CALLED 计费日志)增加 `nrefs`(payload.memoryRefs 长度,定位 explicit lane 的 candidateHit 供给)与 `nev`(payload.evidence 长度)及 workspace 末 16 字。单条消息即可定位断点。
|
|
61
|
+
- 离线复现整条 JS 链路(corpusSnap 104 条→ lexical kept 8/8→授权 8/8)全绿——memoryRefs 为空非算法问题,是运行时状态问题,需实测带仪表的 live 行判定。
|
|
62
|
+
- 产物:controlled-shadow-rows-20260825.json(94 行存档)、v1 候选影子 256 行、
|
|
63
|
+
本报告。
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## 五、第二轮实测(2026-08-26 凌晨):四连断点全部打通 ✅
|
|
67
|
+
|
|
68
|
+
经三轮重启迭代,逐环修复并验证:
|
|
69
|
+
|
|
70
|
+
| 断点 | 根因 | 修复 | 验证 |
|
|
71
|
+
| --- | --- | --- | --- |
|
|
72
|
+
| stale 硬门 any() 过宽 | 会话证据流一条 stale 全局硬灭 | per-candidate 收窄 | hard_gate_stale 归零 ✅ |
|
|
73
|
+
| CoT 被 ContextObserver 丢弃 | assistant/chunk(reasoning-delta) 落入 ignored 分支 | 聚合缓冲+pre-step 冲刷+kind 白名单准入(权重 0.5) | 接线完成 ✅ |
|
|
74
|
+
| 会话跨天续接被标 child → push 全弃 | parentSession 判定误伤日常续接会话 | contextBridgeObserveChildSessions 开关(已开) | observe 日志确认 ✅ |
|
|
75
|
+
| 用户消息被判 plugin-generated | 续接会话的消息带 harness 来源标记 | 抑制收窄为仅拦本插件自家注入 | drop 归零 ✅ |
|
|
76
|
+
|
|
77
|
+
**nrefs=8 / nev=3 / ws=/dsh-auto-memory** —— memoryRefs 断供根因即 child-session+
|
|
78
|
+
plugin-generated 双重抑制,均已解除;JS→Python 管道 sent=35、accepted 正常。
|
|
79
|
+
|
|
80
|
+
## 六、新发现的策略层议题(待主 Agent 裁定,未擅自改动)
|
|
81
|
+
|
|
82
|
+
**candidateHit 生产定义与验收口径脱节**:验收时 candidateHit=expected∈dense-topK
|
|
83
|
+
(真值注入);生产实现为 JS 词法 memoryRefs ∩ Python dense top-K。实测 12/12 观测
|
|
84
|
+
hit=False——两路召回在小语料+改述查询下几乎零交集(词法路与语义路天然分歧,
|
|
85
|
+
echo 类反而 dense 更高,§7.1 已证不可用绝对分数替代)。后果:explicit lane 的
|
|
86
|
+
emit 条件在生产结构性难以满足。
|
|
87
|
+
|
|
88
|
+
候选方向已离线实证(candidatehit_variant_study.py / _replay.py,63 main-set golds):
|
|
89
|
+
|
|
90
|
+
| 口径 | emit | TP | precision | recall | emitOnSup |
|
|
91
|
+
| --- | --- | --- | --- | --- | --- |
|
|
92
|
+
| baseline(oracle hit,验收口径) | 12 | 11 | 0.917 | 0.478 | 0 |
|
|
93
|
+
| A) 补充词法臂命中(raw BM25≥8/12/20 三档) | 13 | 11 | **0.846↓** | 0.478 | 0 |
|
|
94
|
+
| A+B) A + 高意图无命中降级 prefetch | 同 A | — | — | — | prefetch 无可见效果 |
|
|
95
|
+
|
|
96
|
+
**实证结论**:放宽 candidateHit(方向 a)只多出 1 次 emit 且为误报(precision
|
|
97
|
+
0.917→0.846),recall 零收益——两路召回分歧处的新增"命中"不是 activate 目标。
|
|
98
|
+
方向 b 无损但也无指标收益(prefetch 本就无模型可见效果),可作为体验优化随窗口采纳。
|
|
99
|
+
|
|
100
|
+
**推荐裁定:c(维持双路共识高精度门槛)+ 顺带采纳 b**。生产 emit 结构性难达的
|
|
101
|
+
真正根源是检索召回债(denseTop 整体偏低、ep_* 目标排不进 top-8),正解在检索层与
|
|
102
|
+
M8 任务信号,而非放松激活门。M7 保持 shadow 至受控 shadow 全绿后议 canary。
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
## 七、C2 全链路独立验收(2026-08-26):纯 JS 档通过 ✅
|
|
106
|
+
|
|
107
|
+
问题:C2(transformers.js + multilingual-e5-small q8)脱离 Python 后,能否独立完成
|
|
108
|
+
"CoT/文字 → 记忆拟合 + 唤起必要性判断"?实测方法:C2 语义检索出 top-8 候选后,
|
|
109
|
+
喂给**冻结的 fv2 决策核**(与 C3 验收逐字节同源),63 主集人工金标重放。
|
|
110
|
+
|
|
111
|
+
| 层 | 检索 R@5 | 决策 precision | recall | emitOnSuppress |
|
|
112
|
+
| --- | --- | --- | --- | --- |
|
|
113
|
+
| C1 词法 BM25 | 0.200 | — | — | — |
|
|
114
|
+
| **C2 JS e5-small q8(130MB)** | **0.609**(zh 0.706) | **1.000(4/4)** | 0.174 | 0 |
|
|
115
|
+
| C3 Python bge-m3 int8(563MB) | 0.925 | 0.917(11/12) | 0.478 | 0 |
|
|
116
|
+
|
|
117
|
+
结论:
|
|
118
|
+
1. **唤起必要性判断:C2 精度满分**——4 次 emit 全部正确、零误报、零 S 类泄漏;
|
|
119
|
+
冻结策略在纯 JS 管道上行为与设计一致(保守但可信)。
|
|
120
|
+
2. **记忆拟合能力**:R@5 0.609 显著优于词法 0.20,为 C3 的 66%;英文偏弱
|
|
121
|
+
(0.333)是已知取舍,中文主场景达标。
|
|
122
|
+
3. recall 缺口由两层弥补:用户可随时升级 C3;M8 会话级任务信号(repetition/
|
|
123
|
+
toolFailures)补 proactive 召回。
|
|
124
|
+
4. 工件:js-retrieval-candidates.jsonl / js_pipeline_replay.py /
|
|
125
|
+
js-pipeline-replay-metrics.json(feature-v2-heldout 与 js-semantic-trial 目录)。
|
|
126
|
+
|
|
127
|
+
**C2 作为默认档的判定成立。**
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# M7 Activation v2 移交文档(校准 Agent → 主 Agent 实现)
|
|
2
|
+
|
|
3
|
+
> 日期:2026-08-24 · 作者:校准 Agent(ox-alpha)
|
|
4
|
+
> 性质:**移交与实施依据**。设计权威=`docs/M7-ACTIVATION-FEATURE-DESIGN.md`;
|
|
5
|
+
> 算法扩展参考=`docs/M7-ACTIVATION-ALGO-REFERENCES.md`;本文档记录资产、已批准
|
|
6
|
+
> 策略与剩余条件。实现入口=`docs/M7-ACTIVATION-FEATURE-AGENT-PROMPT.md`。
|
|
7
|
+
|
|
8
|
+
## 1. 现状一页纸
|
|
9
|
+
|
|
10
|
+
- Phase E 通过(真实 BGE-M3 全链路);Phase F 判定演进:
|
|
11
|
+
`insufficient_gold_for_active` → **`gold_quota_met_but_score_not_separable`**
|
|
12
|
+
→ 经 feature v2 拟合 + P3 完整性门,**验收门在离线重放中全部通过**(§3)。
|
|
13
|
+
- **人工 gold 共 86 条**(activate 38 / prefetch 29 / suppress 19),三批用户裁决
|
|
14
|
+
合并;另有 4 条跨工作区 relay 样本挂议题③a、2 条敏感度样本挂议题③b。
|
|
15
|
+
- 生产默认全程未动;无 active 流量;M7 维持 tested-not-live。
|
|
16
|
+
- syncTimeoutMs=120s 重试风暴修复已由主 Agent 完成(Phase E 记录)。
|
|
17
|
+
|
|
18
|
+
## 2. 已批准的默认策略(用户逐项拍板,2026-08-24)
|
|
19
|
+
|
|
20
|
+
| # | 决策项 | 批准值 | 验收挂钩 |
|
|
21
|
+
| --- | --- | --- | --- |
|
|
22
|
+
| 1 | sensitiveMemoryMode | **explicit_only** | cal-0062/0073 转正:仅显式搜索可返回,主动提醒路径关闭 |
|
|
23
|
+
| 2 | crossWorkspaceRecall | **advisory**(默认) | cal-0036/0037/0055/0058 四条 relay gold 转为可验收;active 档需显式 opt-in 且过全部硬门 |
|
|
24
|
+
| 3 | margin δ 选择方式 | gold 网格选择,范围 [0.02,0.05] 步长 0.01,**相邻格稳定性约束** | δ_exp 与 δ_pro 分开标定;δ_pro 待 P4 任务信号落地 |
|
|
25
|
+
| 4 | repetition k 起点 | **2 次失败 / 3 次提及**,30 分钟衰减窗 | 口径必须对齐 JS 端既有 episodic→procedural 多次提及门;生活/闲聊话题永不升级 |
|
|
26
|
+
| 5 | 审批形态 | **文件队列先行**(Markdown/JSON/xlsx) | GUI 触发条件:v2 冻结后审批 >50 条/周 |
|
|
27
|
+
| 6 | GPU | **暂缓**(无疑义) | 未来硬前置:device 进入 identity block/configHash 并全量重建 |
|
|
28
|
+
|
|
29
|
+
策略输入落点:#1/#2 作为 JS 侧 index_sync/context_push 前的过滤与路由配置;
|
|
30
|
+
#3/#4 属 Python activation_features_pre_v2;#5 为 JS 管理面;全部进 configHash
|
|
31
|
+
与 policy registry(append-only,含 parent policy/diff/gold digest/runId)。
|
|
32
|
+
|
|
33
|
+
## 3. 拟合结果与推荐工作点(86 gold,分组 OOF)
|
|
34
|
+
|
|
35
|
+
| 路径 | precision | recall | 备注 |
|
|
36
|
+
| --- | --- | --- | --- |
|
|
37
|
+
| v1 当前默认(denseTop 单阈值 0.62/0.52) | 0 | 0 | emit 即回声误触发 |
|
|
38
|
+
| v2 规则级联 | 1.000 | 0.500 | 可解释但规则枚举有限 |
|
|
39
|
+
| v3a 学习型+P3 完整性门,τ=0.70 【historical sweep;effective=activation_policy_pre_v2 tauHi=0.45/deltaExp=0.03(偏离简报冻结值0.02,原因与追认状态见 policy JSON deltaDeviationFromBrief)】 | **0.818** ✅ | 0.237 | emitOnP=0 ✅ sViolations=1 harmfulEmit=0 ✅ |
|
|
40
|
+
| v3b oracle hit(上限) | 0.826 | 0.864 | 与 v3a 差距 ≈ 在线验证债务 |
|
|
41
|
+
|
|
42
|
+
- 无完整性门时学习头在 86 gold 上 precision 仅 0.516/emitOnP=8——多目标完整性
|
|
43
|
+
是政策问题而非文本可学,**P3 门是必要组件**(保守实现:对比/分别/两个等
|
|
44
|
+
枚举词降级 prefetch;检索层目标齐全性校验待后续支持)。
|
|
45
|
+
- 意图头:char n-gram TF-IDF + LR,OOF AUC 0.857(校准后 0.834,
|
|
46
|
+
Brier 0.217→0.166)。系数序:mark +1.64 ≫ containment +0.94 >
|
|
47
|
+
intentProb +0.58 > margin +0.27 ≫ denseTop −0.38——"是否在问"比"有多像"
|
|
48
|
+
重要一个数量级。
|
|
49
|
+
- Bootstrap 95%CI @τ=0.70:precision [0.433, 0.929]、recall [0.105, 0.435]
|
|
50
|
+
——区间偏宽,**held-out 真实流量验证不可省**。
|
|
51
|
+
|
|
52
|
+
## 4. activation_features_pre_v2 规范要点
|
|
53
|
+
|
|
54
|
+
特征:echoRisk(containment∨denseTop 双臂 + 句式)、recallIntentProbability
|
|
55
|
+
(校准 LR)、dialogueAct/taskNeed、fusedMargin、candidate uniqueness、
|
|
56
|
+
completeness gate、repetition/persistence(复用 JS 多次提及门,P1)。
|
|
57
|
+
决策顺序(2026-08-25 主 Agent 修订,覆盖本节初版):JS/M7 硬门(correction/
|
|
58
|
+
ignored/stale/wrong-scope/PII)→ lane 判定 → explicit lane(echoRisk 仅作特征,
|
|
59
|
+
不作硬 veto——避免误伤"复述记忆后追问"句式)→ proactive lane(高 echoRisk 可
|
|
60
|
+
hard suppress/downgrade)→ completeness/margin/evidence → emit/prefetch/suppress。
|
|
61
|
+
BGE-M3/para-512/D6 hybrid/三重过滤不动。
|
|
62
|
+
|
|
63
|
+
## 5. 资产清单(全部可复现)
|
|
64
|
+
|
|
65
|
+
| 资产 | 路径 |
|
|
66
|
+
| --- | --- |
|
|
67
|
+
| 三期 gold + 合并摘要 | artifacts/m7-live-pre/label-review-cal20260824-1954/{gold-confirmed,gold-confirmed-cf,gold-confirmed-b3}.jsonl、merged-gold-summary.json |
|
|
68
|
+
| 打分底座 | 同目录 {labels.scored 引用, cf-scored.jsonl, batch3-scored.jsonl};向量缓存 vec-cache/ |
|
|
69
|
+
| 拟合与分析脚本 | calibration_harness.py、fit_path.py、features_v2_replay.py、intent_probe.py、extend_probe.py、merge_refit_b3.py、analyze_gold.py |
|
|
70
|
+
| 结果 | metrics-gold.json、threshold-grid-gold.csv、fit-path-results.json、intent-probe-results.json、extend-probe-results.json |
|
|
71
|
+
| 验收映射 | acceptance-gold-map.json(按测试矩阵 §8 逐项挂 gold) |
|
|
72
|
+
| 文档 | M7-ACTIVATION-CALIBRATION.md、M7-LABEL-REVIEW-REPORT.md、M7-ACTIVATION-FEATURE-DESIGN.md、M7-ACTIVATION-ALGO-REFERENCES.md |
|
|
73
|
+
|
|
74
|
+
## 6. 剩余条件(冻结 policyVersion 前)
|
|
75
|
+
|
|
76
|
+
1. 实现 Agent 将两 lane + 学习头移植进 worker(新 policyVersion),并校验
|
|
77
|
+
**在线推理与离线 OOF 的一致性**。
|
|
78
|
+
2. 新真实 shadow 流量做 held-out 验证(当前工作点存在 58→86 gold 内选择偏差;
|
|
79
|
+
bootstrap CI 偏宽)。
|
|
80
|
+
3. 达标定义不变:actPrecision ≥ 0.7、harmfulEmit=0、correction/wrong-scope/
|
|
81
|
+
stale 泄漏=0、中英分别报告;达标后由用户批准 policy diff,再议 single-session
|
|
82
|
+
active canary。
|
|
83
|
+
4. 检索层欠债登记(策略不可解):cal-0020(envelope 预算 gold 未进 top-K)、
|
|
84
|
+
cf-096(finish_reason 锚点 miss)、b3-rp1(重复故障改述后 miss)。
|
|
85
|
+
|
|
86
|
+
## 7. 披露
|
|
87
|
+
|
|
88
|
+
- bench venv 新增 openpyxl 依赖(本轮 xlsx 生成所需,隔离环境内安装)。
|
|
89
|
+
- batch3-review.xlsx 曾被脚本以空模板覆盖,用户原文已从解析日志逐字恢复;
|
|
90
|
+
merge_refit_b3.py 内置 RULINGS 常量作为第二份备份。
|
|
91
|
+
- 全程零 commit/push、零 POST/重启 3080、零真实 MEMORY.md/Anchor/AccessEvidence
|
|
92
|
+
写入;tracked 文件修改集与任务开始时一致。
|
|
93
|
+
|
|
94
|
+
## 8. 主 Agent 派发前修订(2026-08-25,已并入上文与 AGENT-PROMPT)
|
|
95
|
+
|
|
96
|
+
七点修正全部采纳:
|
|
97
|
+
|
|
98
|
+
1. **决策顺序修正**(§4 已改):echo veto 从全局前置移入 proactive lane;
|
|
99
|
+
explicit recall 不得因文本复述被提前 veto。
|
|
100
|
+
2. **运行时工件**:学习头以 JSON 策略工件进入运行时(feature schema、
|
|
101
|
+
vocabulary/IDF、coefficients、intercept、calibration、runId、goldDigest、
|
|
102
|
+
configHash、parentPolicyVersion),禁止 pickle/joblib;确定性纯 Python 推理,
|
|
103
|
+
规避 sklearn 版本漂移。特征逻辑独立为 `python/m7_activation_features_pre_v2.py`,
|
|
104
|
+
v1 保留作回放/fallback。
|
|
105
|
+
3. **三版本命名**:activation_features_pre_v2 / recall_intent_lr_pre_v1 /
|
|
106
|
+
activation_policy_pre_v2;实验别名 v3a 不得作为 wire policyVersion。
|
|
107
|
+
4. **Golden parity**:≥20 条边界 fixture 逐字段比对 online vs OOF
|
|
108
|
+
(normalizedText/containment/echoRisk/intentProb/dialogueAct/taskNeed/
|
|
109
|
+
fusedMargin/completeness/lane/finalScore/decision/reasonCodes);
|
|
110
|
+
归一化/缺失值/浮点/分词差异 fail closed,阻断 shadow live。
|
|
111
|
+
5. **Completeness gate 结构化**:输出 requiredTargetCount/resolvedTargetCount/
|
|
112
|
+
status(complete|partial|unknown);partial/unknown 最多 prefetch;词典仅为
|
|
113
|
+
一期保守检测。修正 cal-0066 类误 emit 的正道。
|
|
114
|
+
6. **Repetition 本轮 logging-only**:允许 suppress→prefetch,禁止仅凭次数
|
|
115
|
+
直接 activate;待真实重复序列 gold 后再开放升级。
|
|
116
|
+
7. **JS 权威边界**:crossWorkspaceRecall/sensitiveMemoryMode 属 JS 的
|
|
117
|
+
index_sync/context_push 前置授权层;Python 仅读取显式下发的 policy 字段,
|
|
118
|
+
缺失即 fail closed,并输出 requiresCrossWorkspaceRelay/PII class。本轮不宣称二者已产品化。
|
|
119
|
+
|
|
120
|
+
held-out 门扩充:activate gold ≥15、predicted emit ≥8、中英各有独立正例、
|
|
121
|
+
precision CI 与 activation coverage 同时报告;任一不满足继续 shadow。
|
|
122
|
+
|
|
123
|
+
实施分两轮,不得混合:
|
|
124
|
+
- 第一轮(Python feature v2):独立模块 + JSON policy artifact + 两 lane +
|
|
125
|
+
echo/intent/dialogueAct/completeness/margin + repetition shadow + 86 gold OOF
|
|
126
|
+
golden parity → 全程 shadow。
|
|
127
|
+
- 第二轮(JS policy plumbing):PII 三档硬过滤(index_sync/context_push 前)、
|
|
128
|
+
cross-workspace relay、append-only policy registry、文件审批队列写回。
|
|
129
|
+
两轮分离使算法误差与 Host 授权误差可归因。
|
|
130
|
+
|
|
131
|
+
当前状态:修订后的 AGENT-PROMPT 可派发实现 Agent;完成 parity 后另派独立 JS
|
|
132
|
+
Agent 处理第二轮。GPU/model-sparse/reranker/graph 维持冻结。
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# M7 Activation v2 — Held-out Score-Based Evaluation (2026-08-25)
|
|
2
|
+
|
|
3
|
+
## Verdict: **PASS** — 冻结策略通过独立人工金标离线验收
|
|
4
|
+
|
|
5
|
+
冻结产物 `activation_features_pre_v2` / `recall_intent_lr_pre_v1` /
|
|
6
|
+
`activation_policy_pre_v2`(tauHi=0.45, tauLo=0.35, deltaExp=0.03,
|
|
7
|
+
deltaPro=0.05, mode=shadow-candidate,configHash 校验通过)在 67 条
|
|
8
|
+
**人工金标** held-out 样本上重放生产检索路径(BGE-M3 dense + BM25 lexical,
|
|
9
|
+
D6 加权融合),逐条 `decide_activation_v2` 决策。**全程零重调参。**
|
|
10
|
+
|
|
11
|
+
## 门禁结果
|
|
12
|
+
|
|
13
|
+
| 门禁 | 要求 | 实测 | 结果 |
|
|
14
|
+
| --- | --- | --- | --- |
|
|
15
|
+
| actPrecision | ≥ 0.70 | **0.917**(11/12,CI95 [0.727, 1.0],pairId 聚类 bootstrap B=2000) | ✅ |
|
|
16
|
+
| predictedEmit | ≥ 8 | **12** | ✅ |
|
|
17
|
+
| harmfulEmit | = 0 | 0(本批无 harmful 样本,见泄漏覆盖说明) | ✅ |
|
|
18
|
+
| emitOnSuppress | = 0 | **0**(20 条 S 金标无一 emit,echo veto 零漏) | ✅ |
|
|
19
|
+
| correction / wrong-scope / stale / PII leakage | = 0 | 见泄漏覆盖说明 | ✅* |
|
|
20
|
+
|
|
21
|
+
*本批 held-out 无 correction/stale/PII 专项样本;这些硬门由训练金标 v2 重放覆盖
|
|
22
|
+
(features-v2-replay.json:sViolations=0, harmfulEmit=0, emitOnP=0),并需在受控
|
|
23
|
+
shadow 真实流量中再验。
|
|
24
|
+
|
|
25
|
+
主集 = 63 条(67 减 4 条 cross-workspace 单列分层);跨区层另报:
|
|
26
|
+
n=6, emit=1(正确),prec 1.0 —— 跨区召回是 JS 权威层(R2),按设计不入主门禁。
|
|
27
|
+
|
|
28
|
+
## 数据集口径(重要修正)
|
|
29
|
+
|
|
30
|
+
- 69 条 proposed(53 队列 + 16 补充)全部经 `heldout-review-v2.xlsx` **人工审核**;
|
|
31
|
+
此前 `heldout-final-gold.json` 等文件以合成标签冒名 gold,已废弃为历史快照。
|
|
32
|
+
- 人工判定分布:activate 27 / suppress 22 / prefetch 18;英文 activate 正例 6。
|
|
33
|
+
- **deferred 2 条**:hd-048/hd-049,用户批注「跨工作区让用户选择是A还是S」——判定
|
|
34
|
+
取决于未来跨工作区设置项,不计 gold。
|
|
35
|
+
- 用户 override 2 条:hd-021/hd-023 suppress→**activate**(与 cal-0036/0037 的
|
|
36
|
+
advisory 关联宽容裁决一致),已如实转写 overridesPrior=true。
|
|
37
|
+
|
|
38
|
+
## 锚点恢复披露(anchor recovery)
|
|
39
|
+
|
|
40
|
+
本集锚定的 4 条合成测试记忆(琥珀协议/蓝鲸-7号/分词勘误/面条生活记录)已于
|
|
41
|
+
2026-08-25 被**蒸馏清理出线上语料**(用户 11:33 批注确认可清理)。首次评估因此
|
|
42
|
+
15/23 的 activate 金标检索不命中(predictedEmit 仅 4,FAIL)。四条原文从
|
|
43
|
+
semantic-pre 向量快照 excerpt 与 workspace 日志转写完整恢复(anchor-recovery.json,
|
|
44
|
+
含来源标注),并入检索池后重跑。恢复只影响检索池构成,不触碰任何策略参数。
|
|
45
|
+
|
|
46
|
+
## 分层结果
|
|
47
|
+
|
|
48
|
+
| 层 | n | emit | precision | recall |
|
|
49
|
+
| --- | --- | --- | --- | --- |
|
|
50
|
+
| zh | 57 | 8 | 0.875 | 0.412 |
|
|
51
|
+
| en | 6 | 4 | 1.000 | 0.667 |
|
|
52
|
+
| explicit lane | 41 | 12 | 0.917 | 0.550 |
|
|
53
|
+
| proactive lane | 22 | 0 | — | 0.000(设计:round-1 proactive 不 emit) |
|
|
54
|
+
| independent 子集 | 44 | 8 | 0.875 | 0.412 |
|
|
55
|
+
| overlapping 子集 | 19 | 4 | 1.000 | 0.667 |
|
|
56
|
+
| cat: echo-vs-recall | 20 | 7 | **1.000** | **0.700** |
|
|
57
|
+
| cat: cross-lingual | 6 | 4 | 1.000 | 0.667 |
|
|
58
|
+
|
|
59
|
+
echo 战场(本项目的核心发现)在独立 held-out 上 7 次 emit 全部正确、20 条含
|
|
60
|
+
echo 的样本零误激活——双臂 echo veto(containment≥0.30 ∪ denseTop≥0.70,仅
|
|
61
|
+
proactive lane)在未见数据上成立。独立性分层无翻车(重叠子集反而更准,方向
|
|
62
|
+
与"重叠虚高"担忧相反)。
|
|
63
|
+
|
|
64
|
+
## 观察项(非门禁)
|
|
65
|
+
|
|
66
|
+
1. **hd-supp-pf-02**(P 金标被判 emit):margin 0.033 刚过 δExp,过激一档,
|
|
67
|
+
与训练侧 cal-0008 同性质;累计两例供未来 δ 网格复审,当前不改。
|
|
68
|
+
2. **hd-037「蓝鲸-7号真厉害。」**(S 金标被判 prefetch):echo 双臂均未触发
|
|
69
|
+
(containment=0, dTop=0.504<0.70),走 proactive margin 门。prefetch 无模型
|
|
70
|
+
可见效果,且与用户对意见陈述→P 的既有裁决(cf-008/014)方向一致。
|
|
71
|
+
3. **failure-vs-planning recall 天花板**:6 条 A 金标中 4 条检索未命中(失败汇报
|
|
72
|
+
与目标记忆文本相似度本质偏低),其余被 margin 门保守降级;proactive lane
|
|
73
|
+
round-1 不 emit 属设计取舍,此类依赖 repetition 信号累积(logging-only),
|
|
74
|
+
留待真实流量验证。
|
|
75
|
+
4. ep_* 目标 4 条排不进 top-8(cos 0.36–0.53):真实检索债,与训练侧已知
|
|
76
|
+
misses(cal-0020/cf-096/b3-rp1)同类,归属 retrieval 层改进,不在本门禁内。
|
|
77
|
+
|
|
78
|
+
## 下一步(顺序不变)
|
|
79
|
+
|
|
80
|
+
1. ✅ 人工审核(69 条)→ 2. ✅ 离线打分验收(本文)→
|
|
81
|
+
3. **受控 live shadow**:用户手动重启 3080(加载 fv2 修复后的 worker),开启
|
|
82
|
+
Python/Context Bridge/Activation Inbox 保持 mode=shadow,18–24 条受控请求
|
|
83
|
+
(明确回忆 / 中英回忆 / 生活 echo / correction / wrong scope / stale /
|
|
84
|
+
tool failure),核对线上字段与离线决策一致性 →
|
|
85
|
+
4. 单 session active canary(仅 explicit lane emit,生活 echo 与 correction 反例
|
|
86
|
+
验证不注入),结束后恢复默认关闭。
|
|
87
|
+
|
|
88
|
+
## 复现
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
cd artifacts/m7-live-pre/feature-v2-heldout
|
|
92
|
+
D:/dsh-auto-memory/python/bench/.venv/Scripts/python.exe holdout_score_eval.py
|
|
93
|
+
# 输出 holdout-scored.jsonl(逐条特征+决策) / holdout-score-eval.json(指标+门禁)
|
|
94
|
+
```
|