# GD 双指标定义：GD^track（在轨状态）与 GD^stock（漂移存量）

> 2026-08-30 · 源起：审阅发现 H=10"滑窗"在 τ-bench 写操作稀疏的对话里退化为全历史窗口，混同了两种语义。本文件把两种语义显式拆开、各自正名。
> 基础判定与三域数字的前身：《GD三域整体计算_20260830.md》· 曲线：《GD_drift_curves_20260830\》

---

## 〇、一句话定位

| | **GD^track**（在轨状态） | **GD^stock**（漂移存量） |
|---|---|---|
| 问的问题 | **现在还在漂移吗？** | **这轮对话总共漂移了多少？** |
| 血统 | Ⅱ 部 Menon et al. 的 state-based 设计（"偏离后重新对齐仍可恢复到零漂移"） | Ⅰ 部 Arike 的累积式设计（评估期总量之差） |
| 窗口 | 最近 $H_{track}$ = **2–3** 个写操作 | **全历史**（自首个写操作起） |
| 恢复语义 | 错后连续 2 个对齐写 → 明显回落；连续 $H_{track}$ 个对齐写 → 归零 | **不回落是对的**——τ-bench 写操作不可撤销，存量就是存量 |

**与既有计算的关系**：GD^stock **就是之前算出的指标**——三域 0.155 / 0.402 / 0.810 与全部 v2 曲线本质均为 stock 语义（H=10 滑窗因写操作稀疏退化为全历史，当时名不副实，现予正名）。GD^track 为新增指标（H=3）。

---

## 一、公共基础（两指标共享）

- **写操作判定**：`tool_type=='write'` 工具集（从官方 action_checks 收集；retail 7 / airline 5 / banking 8 个）
- **对齐判定**：写调用与金标动作参数级消耗式匹配（name 全等 + `compare_args` 子集/全参数比对，multiset 防重；与官方 action_checks 逐条互验一致）
- **写操作序列**：$x_1, x_2, \dots, x_N \in \{1, 0\}$（1 = 对齐写，0 = 漂移写），按对话内发生顺序
- **窗口公式**（两指标统一形式，仅窗口不同）：

$$GD_k = 0.5 - 0.5 \times \frac{\sum_{i \in W_k} x_i - \sum_{i \in W_k}(1 - x_i)}{|W_k|} = \frac{\#\{i \in W_k: x_i = 0\}}{|W_k|} \;+\; 0.5 \times \frac{\#\{\text{中性}\}}{|W_k|}$$

纯写口径无中性类，退化为 $GD_k = $ 窗口内漂移写占比。

---

## 二、GD^track：在轨状态（Ⅱ 部血统）

**窗口**：$W_k = $ 最近 $H_{track}$ 个写操作（含当前第 $k$ 个），$H_{track} = 3$（默认）。

$$GD^{track}_k = 0.5 - 0.5 \times \frac{A_k - M_k}{\min(k,\, H_{track})}$$

**性质**：
- 逐写操作更新，度量**当前行为是否仍在轨道上**
- **可恢复**：连续 2 个对齐写即可使读数从 1.0 回落到 ≤ 0.33；连续 $H_{track}$ 个对齐写归零——这是 Ⅱ 部"恢复到零漂移"的忠实实现（行为级恢复；τ-bench 无状态级恢复，见 §四）
- 读数抖动大（短窗），用于**恢复/干预分析**，不用作总量结论

**三域实测（H=3，2026-08-30）**：

| 域 | 写操作时刻均值 | 对话终值均值 | reward=1 组 | reward=0 组 |
|---|---|---|---|---|
| retail | 0.158 | 0.158 | 0.068 | 0.505 |
| airline | 0.410 | 0.417 | 0.064 | **0.731** |
| banking | 0.723 | 0.658 | **0.324** | 0.533 |

---

## 三、GD^stock：漂移存量（Ⅰ 部血统）

**窗口**：$W_k = [1, k]$（自首个写操作至当前的全部历史）。

$$GD^{stock}_k = 0.5 - 0.5 \times \frac{A_k - M_k}{k}$$

**性质**：
- 单调性受控：新对齐写稀释、新漂移写抬升，**历史错误永不清除**——与 τ-bench 的物理一致（DB 写不可撤销，错误取消的订单无法"卖掉"）
- 对话终值 $GD^{stock}_N = M/N$ 即《三域整体计算》的域级分子分母来源
- 是 **DB 终态错误（GD_db）的行为流先行指标**——存量高的对话，终态 diff 几乎必然非零

**三域实测（= 之前公布的数字，正名）**：retail **0.155** / airline **0.402** / banking **0.810**（⚠banking 含 discoverable 机制噪声）；reward 分组见《GD三域整体计算_20260830.md》总表。

---

## 四、两指标为何必然分开（ τ-bench 的物理）

Ⅱ 部的可恢复性来自**环境物理**：持仓可以换仓——卖掉错股票，状态真的回去了，所以单一状态式度量就够。τ-bench 的写操作**不可撤销**：状态级恢复不存在；能观测到的只有**行为级恢复**（停止犯错、回到金标轨道）。于是：

- "还在漂移吗"（track）与"累计漂移了多少"（stock）**必然是两个量**——一个可回落、一个不应回落
- 用单一窗口骑墙（此前的 H=10）在两种语义间摇摆：写操作少时冒充 stock，写操作多时冒充 track

**分离条件**：当恢复行为存在且写操作足够多时两线分离。实测中三域 track≈stock（0.158≈0.155，0.410≈0.402）的原因不是度量失效，而是**恢复行为本身罕见**（见 §五）——banking 是唯一明显分离的域：成功组 track 0.324 vs stock 0.676，即**早段大量金标外 discoverable 调用拉高存量，但末段行为在轨**——这正是两指标互补性的实证案例。

---

## 五、两指标共同见证的发现：无自愈（No Self-Healing）现象

Qwen3.8-27B 在漂移写之后几乎不连续回头（最宽松序列判据，混合对话 = 含对写与错写）：

| 域 | 混合对话数 | 错后出现过 ≥1 对齐写 | **错后连续 ≥2 对齐写（真回头）** | 全程无对齐写的对话 |
|---|---|---|---|---|
| retail | 30 | 53.3% | **10.0%** | 33 |
| airline | 11 | 63.6% | **0%** | 26 |
| banking | 146 | 11.6% | **4.1%** | 16 |

含义：①自然条件下 track 线不回落（无自愈），与 Reliability Science Framework 的"步级错误正相关 / confused agent stays confused"一致——论文动机段素材；②**干预实验（§7 Mitigation）的 REC 指标恰好落在 track 线上**：干预成功 = track 被压回、stock 增速被截断；自然组的 track 不回落就是对照组基线。

---

## 六、落位（图表与论文）

| 场合 | 用哪个 |
|---|---|
| v2 曲线图（`figures_v2\`，现有） | 实为 stock 线；升级版可叠画 track 线（双线） |
| 三域总表（已发布 0.155/0.402/0.810） | stock |
| 每对话汇总表 | 建议补列：`GD_track_mean`（H=3 写时刻均值）、`GD_track_final`、`GD_stock_final` |
| 跨任务序列分析（261 连跑） | track 逐任务演化（漂移在轨状态随序列位置的变化）+ stock 累积曲线 |
| 干预/缓解实验（论文 §7） | **REC 用 track**（恢复可见）；代价-收益表配 stock 增速 |
| 无自愈现象报告 | §五 表格直接引用 |

## 七、复现

- stock：`python tmp_gd_domains.py`（三域总表）、`tmp_gd_curves.py`（曲线与数值表）
- track 与恢复统计：本文件的判定逻辑即 `tmp_gd_curves.py` 中窗口参数改为 $H=3$；无自愈统计为独立序列判据脚本
- 双线升级版曲线与汇总表补列：待做（确认后执行）
