# GD_t 逐任务漂移曲线与数值表 · Qwen3.8-27B τ²-bench 基线

> 2026-08-30 生成 · 数据：`E:\2026ICLR\Qwen3.8baseline\taubench_qwen38_baseline\results\`（783 对话 = 261 任务 × 3 trials，单模型全链路）
> 脚本：`E:\2026ICLR\Qwen3.8baseline\tmp_gd_curves.py` + `tmp_banking_len.py`

## 一、产物清单

| 位置 | 内容 |
|---|---|
| `figures/retail/`（114 张）· `airline/`（50）· `banking/`（97） | 每任务一张 GD_t 曲线图（3 条 trial 线，图例带 reward） |
| `figures/{域}_heatmap.png`（3 张） | 域级总览热力图：x = assistant 步序，y = 对话（task/trial），颜色 = GD_t |
| `tables/{域}_per_step.csv` | **逐时刻长表**：task_id, trial, t_step, writes_so_far, A_t, M_t, N_t(窗口), GD_t |
| `tables/{域}_per_dialogue.csv` | 每对话汇总：reward, termination, 步数, 总字符, prompt_tokens, 金标写数, N/A/M, 漏做数, GD_mean, GD_final |
| `tables/banking_length_analysis.csv` | banking 长度分层归因（见下） |

## 二、口径（与《GD三域整体计算_20260830.md》一致）

- **横坐标 t** = assistant 行为步序（第 1, 2, 3… 条 assistant 消息）
- **GD_t** 在每个写操作处按**最近 H=10 个写操作**滑窗计算：`0.5 − 0.5(A_t−M_t)/N_t`；非写步沿用前一值（forward fill，Ⅱ 部原文同款）；**首个写操作前无定义（图中不画）**
- 写操作判定：`tool_type=='write'` 工具集 + 与金标动作**参数级消耗式匹配**（已与官方 action_checks 逐条互验一致）
- 模型：Qwen3.8-27B（agent/用户模拟器/判分器全链路同模型）

## 三、banking "prompt 过长致败"——验证结论与处理

**传闻属实，且找到了物证链**：

1. **上下文被钳制在窗口上限**：单次调用 prompt_tokens 最大值 **130,772**，与 vLLM `--max-model-len 131072`（见 `logs/vllm38_serving_note.md`）只差 300；p95 = 106,696、p99 = 124,822；**贴顶 5 条对话（>120k）全部 reward=0.0**
2. **长度分层显著**（按对话总字符中位数 134,961 分组）：

| 组 | n | reward 均值 | GD_mean 均值 | 非正常终止数 |
|---|---|---|---|---|
| 短（≤中位） | 146 | **0.214** | **0.287** | 35 |
| 长（>中位） | 145 | **0.103** | **0.478** | 69 |

   Mann-Whitney：reward p=0.012（长组几乎减半）；**GD p=4×10⁻⁶**（长组高 67%）。Spearman(chars, reward) = −0.106（p=0.07）——长度是显著混杂但非唯一因素。
3. **机制解读**：banking 任务自带大 policy/知识文档，多轮检索叠加 → 上下文膨胀逼近 131k → 运行时裁剪/压缩 → 早期任务信息丢失 → 漂移与失败。**长对话的高 GD 是"上下文压力 + 漂移"的混合物。**

**处理办法（三层）**：

- **归因层（本次已做）**：banking 的一切 GD 读数按长度分层解读；论文中长/短组分开报，或以字符数为协变量
- **正向利用（论文角度）**：长度分层本身就是**"上下文长度 → 漂移"的剂量证据**（GD 0.287→0.478 单调上升）——不是要排除的噪声，是与 context rot / Lost-in-Multi-Turn 文献呼应的发现，可纳入分析章
- **实验层（若要消除混杂）**：① 提高上下文窗口重跑（若 Qwen3.8-27B 支持更长 max-model-len，vLLM 参数改大对照）；② 检查 tau2 运行时的上下文裁剪策略，改为"保 system+任务头、裁中段"后重跑；③ 换长窗模型跑 banking 对照，分离"窗口不足"与"模型漂移"两种成因

## 四、复现

```bash
cd E:\2026ICLR\Qwen3.8baseline
python tmp_gd_curves.py      # 全部图 + 表（约 3-5 分钟）
python tmp_banking_len.py    # banking 长度分层表
```

注意：banking 的 15 条对话 reward 字段为空（基础设施错误/中断），相关统计已自动跳过。
