# EXPERIMENT.md — dsh-agent-frugality 效果验证实验设计

> 原则：**先度量后干预（本插件设计哲学）**——防御效果主要靠观测验证，对照实验尽量零/低成本。
> 价格口径：本机 `dsh-model-router` 内置价格表估算（CHEAP 0.27/1.10/0.07，STRONG 0.55/2.19/0.14 每 1M tokens，in/out/cache）；实际以账单为准（2026-08 已有涨价报道）。
> 状态：Exp-1 已自动开始（本会话自插件注入起累计）。

## 一句话回答"要不要实验 & 花多少"

- **A（重复读取）与 B（门禁）**：**零 token**——插件就是度量器，台账/日志已持续记录；效果判断 = 读数据 + 简单统计。
- **C（审查 lane）**：唯一需要花 token 的对照实验，**预算 ≈ $0.1–2**（按本机价格表），半天完成。
- **可选** DEDUP 实战对照：**≈ $1–3**，或**零成本离线重放**（用现有台账估算收益上限）。
- **总预算：$0（核心验证）～ $3（全量对照）**——远低于实验价值。

## Exp-1 台账基线（✅ 零成本，进行中）

- **数据**：`$DSH_HOME/agent-frugality-ledger.jsonl` + `frugality_ledger` 工具快照
- **周期**：自然累积 3–5 个正常工作日的真实使用
- **指标**：total reads / dupReads / dupRate / dupBytes → 重复字节 ÷4 换算"可节省 tokens 上限"
- **成品**：baseline 报告（含按 agent 分布的重复率）
- **已有先例证据**：本会话实测 60% 重复率（5 reads/3 dups）；门禁 objection 2 次成功

## Exp-2 DEDUP 收益（首选：离线零成本）

- **离线法（推荐）**：用 Exp-1 台账直接估算 `DEDUP=1` 的收益上限 = Σ(dupBytes) ÷4 tokens；对照"替换后模型仍需引用上下文"的折减系数 0.6 → 净节省 ≈ 上限 ×0.6。**零 token，无任务干预**。
- **实战对照（可选）**：同批 10 个真实任务，前 5 个 DEDUP=0、后 5 个 DEDUP=1（或同任务随机分配）。
  - 每任务输入 ≈ 50K tokens（长会话）×10 = 500K；输出 ≈ 200K → 合计 ~700K tokens
  - 成本：STRONG 全主模型 ≈ 0.55×0.7 ≈ **$0.4 + 输出 $0.44 ≈ $0.9**；CHEAP 路线减半
- **验收阈值**：DEDUP=1 时重复读取率下降 ≥50% 且任务完成质量（人工抽查 5 条完成声明）无下降 → 开默认

## Exp-3 review-lane 有效性（≈ $0.1–2，半天）

- **金标准**：本插件 T10 独立审查的 **8 findings** + 自举 review 的 **9 findings** 已构成 ground truth 样本（17 条，含 severity）
- **设计**：30 份真实 diff/代码片段（可从本插件 PR 与生态项目取），**cheap model（flash）与主模型各审一遍**，对金标准比对：
  - 指标：发现率（recall vs 金标准）、误报率、**每美元发现数**（核心指标：cheap 的每美元发现数应 > 主模型）
  - 每份 review 输入 ≈ 6K（提示 + 目标 ≤12K 截断）+ 输出 ≈ 800–2000 → 单份 ≈ 8K tokens
  - 30 份 × 2 模型 × 8K = 480K tokens → CHEAP 侧 ≈ $0.13；主模型侧 ≈ $0.35 → **总计 <$0.5**
- **验收阈值**：cheap 每美元发现数 ≥ 主模型 1.5×，且金标准 recall ≥60% → review-lane 策略成立（"审查员不需要贵模型"）

## Exp-4 门禁防"水过"（≈ 零成本）

- **数据**：`agent-frugality.log` 的 `gate-object` 事件（对象ion 计数、是否最终补调 gate）
- **验证**：抽取 5 次 objection → 人工看模型补了多少步（重新验证/补充说明）；统计"完成声明但从未过 gate"的违规率（应降至 ~0）
- **周期**：随 Exp-1 一同观察，无额外消耗

## 总预算表

| 实验 | 成本（按本机价格表） | 周期 | 输出 |
|---|---|---|---|
| Exp-1 基线 | **$0** | 3–5 天自然累积 | 重复率/字节基线 |
| Exp-2 离线 | **$0** | 1 小时后 | DEDUP 收益上限 |
| Exp-2 实战（可选） | ~$0.9 | 半天 | DEDUP 干预实测 |
| Exp-3 review | ~$0.5 | 半天 | cheap-vs-strong 每美元发现数 |
| Exp-4 门禁 | **$0** | 随 Exp-1 | objection 违规率 |

**合计：$0（核心）～ $2.4（含全部对照）**

## Exp-3 review-lane 有效性（✅ 已执行，2026-08-29）

**结果（`docs/experiments/exp3-results.md`，样本 12 份/金标准 11 条，人工裁决 + 自动匹配双记录）**：

| 臂 | 模型 | recall | 误报 | 估算成本 | 每美元命中 |
|---|---|---|---|---|---|
| cheap | deepseek-v4-flash | **81.8%**（9/11） | 1 | $0.0329 | **273.2** |
| strong | deepseek-v4 | **100%**（11/11） | 0 | $0.0666 | 165.3 |

**verdict: PASS**（cheap 每美元命中 = 主模型 1.65× ≥ 1.5× 阈值；cheap recall 81.8% ≥ 60%）。产品结论：**双 lane 策略**——cheap 日常批量（每美元收益 1.65×），strong 用于关键块/发布前（cheap 的 2 个遗漏恰是 S04 字段缺失类 / S06 off-by-one 类状态一致性缺陷，flash 对其弱）。成本估算以本机价格表为准，实测账单 $0.1 级。


1. 现在：跑 `frugality_ledger` 快照 → 用已有台账做 Exp-2 离线估算（本会话数据就够演示）
2. 本周：自然累积 Exp-1/Exp-4（零成本），同时我做 Exp-3 的 30 份样本集（纯本地准备）
3. 周末：Exp-3 跑半天 → 出"每美元发现数"报告 → 决定 review-lane 是否默认开
4. 决策门：全部指标过阈值 → `DSH_FRUGALITY_DEDUP=1` + review-lane 默认开 + README 实验数据更新

## 运营模式：日常即实验（用户确认的长期策略）

**核心循环**：日常真实使用 = 实验场（台账自动记录）→ 周期快照 → 发布到仓库证明效果 → 数据驱动迭代 v0.1.x。

```
[日常使用] 本机所有会话→台账(ledger.jsonl)/事件(log)
     ↓ (定期, 建议每周/每月)
[快照生成] node scripts/experiment-report.mjs
     ↓ 产物
[发布] docs/experiments/YYYY-MM-DD-snapshot.{json,md} → git(仓库公开)
     ↓ 人读
[解读+阈值对照] 重复率<15% / 门禁违规率→0 / 每美元发现数≥1.5×
     ↓ 发现短板
[迭代] TICKETS 新增体验优化任务 → 发版 → 快照继续
```

**运营规则**：
1. **快照即证据**：每份快照带生成时间/数据窗口/插件版本；只发布真实会话数据，不编造。
2. **发布节奏**：建议每周一次快照（重活周）/ 每月一次 README 实验数据段更新；数据达到里程碑（如累计重复率/节省 token）后并入 README 徽章与「实验数据」章节。
3. **隐私纪律**：快照只含 agent 标签/工具名/字节统计，**不含内容与路径名**（SPEC §7.4）；发布前人工过目。
4. **迭代闭环**：每版 CHANGELOG 附「本版数据基线 → 改进 → 验证」三段式；实验报告同步更新。
5. **阈值触发干预**：重复率持续 >15% 一周 → 开启 DEDUP=1；门禁违规率>10% → 提高 GATE_MAX 或改 objection 文案——每次干预后留 1 周观测窗口再评估。
