Step-5 Preview 路口调度测试最终报告
- 有效运行:
step-5-preview_2026-10-01_114857245-57296(三次中得分最高;规则版本 16,种子 63916,tick 61–261,65 个决策周期) - 其余运行:
step-5-preview_2026-10-01_131000990-67448、step-5-preview_2026-10-01_152857185-51224(只用于稳定性对比) - 数据来源:
report/select-best-run.mjs与report/analyze-run.mjs的输出,加上对原始推理日志的人工判读 - 复现命令:
node report/select-best-run.mjs --model step-5-preview,然后node report/analyze-run.mjs logs/replay_step-5-preview_2026-10-01_114857245-57296.json
结论摘要
Step-5 Preview 有效运行得分 694.16,比 balanced baseline(674.49)高 19.67,比 search baseline(788.38)低 94.22。三次均值 639.2,标准差 39.67,两次低于 balanced baseline。它的前半局是四个模型里最好的:tick 140 之前放行 72 辆车。后半局则几乎停摆:最后 28 个周期只放行 2 辆车。主要原因是输出被截断:25 次回复因为达到 16,384 completion 上限被截断,29 次回复没有调用任何工具,2 次请求超时,共 11 个周期进入 fallback。
- 前半局调度质量高。 c6 放行 16 车满额波次、c14 放行 15 车并带一批行人、c7 放行 14 车,全部 verified、无事故。
- 长推理拖垮后半局。 推理平均 24.5k 字符,最长 61.5k。c38 起有 7 个 fallback 周期,tick 210–261 的上游积压达 39.3。
- 几何错误会被反复强化。 E_L1_LEFT(实际经过东、南横道)被连续 4 个周期写成"经过北横道"。c22 推理甚至推测「maybe in this sim E_L1_LEFT exits to north (depending on handedness convention)」。横道断言正确率 77.8%,在四个模型里与 Space Bunny 并列最低。
0. 分数与稳定性
| 排名 | 运行 | 最终余额 | 放行车辆 | 事故 | 锁格扣费 | 上游积压 | 其他 |
|---|---|---|---|---|---|---|---|
| 1 | 114857245-57296 | 694.16 | 119 | 4 | 18.02 | 54.41 | 11 个 fallback 周期,校车罚 10 |
| 2 | 131000990-67448 | 621.45 | 107 | 3 | 99.87 | — | 6 个 fallback 周期 |
| 3 | 152857185-51224 | 601.99 | 116 | 7 | — | 85.10 | 10 个 fallback 周期 |
均值 639.2,最低 601.99,标准差 39.67。三局都有 6–11 个 fallback 周期,说明截断和超时是这个模型稳定存在的问题,不是偶发事件。
| 策略 | 最终余额 | 放行车辆 | 未服务负债 | 事故 | 锁格扣费 | 上游积压 | 撞人 | 闯红灯罚 | 校车 | 拖车 |
|---|---|---|---|---|---|---|---|---|---|---|
| step-5-preview | 694.16 | 119 | 203.6 | 4 | 18.02 | 54.41 | 20 | 10.4 | 10 | 9.6 |
| baseline-balanced | 674.49 | 84 | 219.6 | 6 | 21.30 | 58.85 | 25 | 5.5 | 0 | 8.4 |
| baseline-search | 788.38 | 122 | 185.4 | 2 | 3.69 | 45.85 | 10 | 6.7 | 0 | 8.4 |
余额拆解:起始 1000,局内累计变化 −111.04,终局通行费 +8.8(驶出 0.8,在路口内 8.0),未服务负债 −203.6(417 辆车未服务,四个模型中最多),合计 694.16。
| 时间段 | 周期数 | 放行车辆 | hold 周期 | 局内余额变化 | 上游积压 | 锁格扣费 | 撞人 | 校车 |
|---|---|---|---|---|---|---|---|---|
| tick 61–140 | 9 | 72 | 1 | −13.93 | 3.48 | 0 | 0 | 0 |
| tick 140–175 | 9 | 23 | 4 | −8.04 | 5.09 | 0.04 | 5 | 0 |
| tick 175–210 | 19 | 22 | 10 | −34.97 | 6.55 | 6.99 | 10 | 10 |
| tick 210–261 | 28 | 2 | 20 | −54.11 | 39.30 | 10.99 | 5 | 0 |
相对 search baseline 的 94 分差距:未服务负债多 18.2,锁格扣费多 14.3,撞人多罚 10,校车罚 10,上游积压多 8.6,闯红灯罚多 3.7。
1. 基础分析
1.1 上下文能力
| 指标 | 数值 |
|---|---|
| 每次请求 prompt tokens | 平均 24,005,P95 45,333,最大 61,162 |
| 推理 tokens | usage 报告为 0,但有推理文本:平均 24,527 字符,P95 58,633,最大 61,524 |
| 回复结束原因 | tool_calls 160、length 25、stop 4;没调用工具的回复 29 次 |
| API 错误 | 请求超时 2 次(c54、c62) |
| fallback 周期 | 11 个:c11、21、25、30、38、44、47、49、51、54、62 |
| 每周期 API 轮数 | 平均 2.9,最多 6 |
| 工具参数里的 ID | 392 个,100% 能在当轮上下文中找到 |
判读:ID 引用零错误,但推理长度经常顶到 completion 上限。25 次因 length 结束的回复大多没有产出工具调用,于是触发 fallback。这是它和其他三个模型最大的区别:它不是不会调度,而是经常没来得及输出决策。
1.2 注意力分布
v16 的观测里没有车道矩阵、出口和 reservedUntil 等字段,这些概念不参与统计。
| 关注较多(≥0.9) | 关注中等(0.75–0.9) | 关注较少 |
|---|---|---|
| 抛锚 0.97;横道、候选冲突、行人预警 0.96–0.97;停止线候选、紧急车、时间预算 0.95;被撤销放行 0.94;正在放行车道 0.94;司机预警 0.91;上周期回顾 0.91 | 上次结算 0.83、hold 0.80、在路口车辆 0.80 | 车道引导机会 0.71 |
| 唤醒原因 | 次数 | 有响应 | 响应率 |
|---|---|---|---|
| ACCIDENT_INTERRUPT | 7 | 7 | 1.00 |
| VEHICLE_RED_LIGHT | 2 | 2 | 1.00 |
| PEDESTRIAN_JAYWALK | 19 | 8 | 0.42 |
| PEDESTRIAN_PATIENCE | 29 | 11 | 0.38 |
判读:注意力分布均衡,对在路口车辆的关注率 0.80,在四个模型里仅次于 V4 Pro 的 0.93。但行人类中断的响应率只有约 0.4。
1.3 tool_call 准确性
整体 203 次调用,成功率 73.9%。
| 工具 | 调用 | 成功率 | 说明 |
|---|---|---|---|
| dry_run_admit | 94 | 45.7% | 资源冲突 24、额度用完 11、规划视野超限 10、车道头未就绪 4、超过 16 车 2 |
| commit_schedule | 55 | 98.2% | 1 次 sleep_ticks=14 超过上限 10 |
| inspect_incident / order_accident_clearance | 22 / 16 | 100% | — |
| dispatch_tow_truck / set_lane_detour / reroute_queue_around_stall | 8 / 4 / 1 | 100% | — |
| inspect_crosswalk / inspect_lane_queue | 1 / 1 | 100% | 几乎不用检查工具 |
| manage_working_memory | 1 | 0% | 计划超过 160 字符 |
| 从未使用 | — | — | 紧急车队、车道引导 |
判读:试算成功率 45.7%,是四个模型中最高的。"规划视野超限" 10 次,说明它常把 top_n 设得过大,排在后面的车超出了规划窗口。检查工具几乎不用,判断主要依赖观测本身和长推理。
1.4 Agent 能力
| 指标 | 数值 |
|---|---|
| 先试算再提交 | 90.7% |
| 提交构成 | verified 18、unverified 1、hold 35 |
| 每周期放行车数 | 平均 1.8,最多 16 |
| 速度档位 | 全部 CRUISE |
| sleep_ticks | 平均 7.4;10 拍 27 次 |
| 决策开销 | API 191 次扣 3.82,非终结工具 148 次扣 0.22 |
判读:只要提交了放车,基本都经过验证(unverified 只有 1 次,四个模型中最少)。问题在于 35 次 hold 加上 11 次 fallback,65 个周期里有一半以上没有放车。
2. 进阶分析
2.1 逻辑推理
- 左转方向反复判断错。 194 条断言正确率 77.8%;前半局 52 条错 12 条,后半局 142 条错 31 条。错误样例:
- c15、c16:「W_L1_LEFT goes from west to south — it would cross the south」(实际经过西、北横道)。
- c19–c22:E_L1_LEFT 被连续写成「crosses NORTH」,c22 一个周期就出现 4 次(实际经过东、南横道)。
- 用"仿真可能有特殊约定"来解释矛盾。 c22 推理:「if E_L1_LEFT goes south, it crosses SOUTH crosswalk. But the conflict says NORTH crosswalk. So maybe E_L1_LEFT path crosses NORTH crosswalk… maybe in this sim, "E_L1_LEFT" exits to north (depending on handedness convention)」。它最初的推导是对的,却被一次试算冲突动摇,改成了错误的结论,之后几个周期一直沿用这个错误结论。
- 纠错效率是四个模型里最好的。 试算失败 40 次,再试 25 次,成功 13 次(52%);31 次最终 hold。"说安全却冲突" 18 次。
2.2 复杂环境博弈
行人。 31 次相位尝试只成功 2 次,合法放行 1 批 2 人:c14 t153 东横道。19 人闯红灯(罚 10.4,四个模型中最多),4 人受伤(罚 20);行人告急时仍放行经过该横道的车辆 81 车次,被撞的 4 人都在告急预警里。
事故。
| 事故 | 类型 | 发生–关闭 | 车辆 | 估算成本 | 责任来源 |
|---|---|---|---|---|---|
| INC0001 | 撞人 SERIOUS | 174–189 | 1 | 5.8 | c15 放行的 V00130(N_R1_RIGHT) |
| INC0002 | 撞人 SERIOUS | 198–215 | 2 | 8.5 | c26 放行的 V00129(W_R1_RIGHT)+ 闯红灯 V00045 |
| INC0003 | 连环事故 CRITICAL(含校车) | 201–228 | 3 | 26.3 | c19 放行的校车 V00065(W_L1_LEFT)+ c27 的 E_S1/E_S2 |
| INC0004 | 撞人 SERIOUS | 212–229 | 1 | 7.4 | c29 放行的 V00207(S_R1_RIGHT) |
4 起事故的首次响应都在 1 拍内。
紧急车辆。 紧急车队一次都没用过。V00043 从 tick 81 起被提示,最长静止 174 拍,到局终都没放行。V00137(静止 63 拍)和 V00217(静止 60 拍)同样没放行。V00050 等了 84 拍。紧急车延误罚款 0.64,是四个模型中最高的。
抛锚。 8 次抛锚。V00014 在 tick 81 先让后车绕行,但等了 63 拍才派拖车;V00068 等了 36 拍,V00122 等了 20 拍;其余 5 次在 1–17 拍内派出。
2.3 亮眼操作
- c6 t107:两条右转车道各 8 车,共 16 车。 摘要:「Admit W_R1 top8 (clears emergency V00036 at head) and N_R1 top8; no pedestrian phases needed」。一次试算通过,同时放出紧急车。
- c14 t153:15 车加一批行人。 南向 S_S1×8(118 人的长队)、S_S2×3、S_R1×4,同时放行东横道 2 名行人:「release EAST B_TO_A peds before jaywalk」。这是它唯一一次合法放行行人,并且与大波次放车同时完成。
- c7 t117:14 车,E_R1 top-6 加 S_S1 top-8,排空 S_S1 的 119 人队列,并预判了下周期 E_L1/E_S1/E_S2/N_L1 预约到期的时间(127)。
- c8 t127:一个周期派两辆拖车再放 10 车。 对 V00089、V00014 派拖车,规划视野超限后缩小批次再次试算通过,放行北向三条车道(含紧急车 V00056)。
- c3 t81: 让后车绕开 V00014、对 N_R1 派拖车,再放行 6 车(含紧急车 V00036)。
2.4 最差操作
- c27 t194:东向直行波次撞上仍在路口内的校车。 摘要:「Safe core: E_S1 top3 + E_S2 top4 clears the two largest backlogs (E_S1 147pax, E_S2 245pax)」。当时司机预警里 8 辆车耐心为 0,西横道有两名行人耐心只剩 5 和 6。tick 201,这批车与 c19 放行、仍在路口内的校车 V00065(W_L1_LEFT)形成 3 车连环事故 INC0003,北横道一名行人受伤,另罚校车 10。c27 分摊 17.55。引擎"路口内车辆不会为事故刹车"的问题也放大了这起事故。
- c15 t162:明知冲突仍放 N_R1。 第一次试算报出
CROSSWALK:WEST:CELL:0:0 vs V00101,说明 N_R1 的路径经过西横道。模型重新试算时把行人相位拿掉,放行了 E_R1×3 和 N_R1×2,计划「next cycle release critical WEST peds (patience ~4 left)」。tick 174,V00130(N_R1_RIGHT)在西横道撞上行人(INC0001)。 - c26 t188:V00129 陷阱。 放行 W_R1 top-2(V00129、V00146),当时西横道有行人耐心 11 和 12。tick 198,V00129 在西横道撞人,并与闯红灯的 V00045 相撞(INC0002)。
- c29 t199:S_R1 撞东横道。 放行 S_R1 top-3,摘要写着「no jaywalker warnings」。但南横道有行人耐心 6,东横道有行人耐心 12,而 S_R1 正好经过南、东横道。tick 212,V00207 在东横道撞人(INC0004)。
- tick 210–261 停摆。 28 个周期只放行 2 辆车,其中 20 个 hold,c38 起还有 7 个 fallback,上游积压 39.3,终局 417 辆车未服务。
3. 损失链条
前半局高质量大波次(tick 140 前放行 72 辆,无事故)
↓
局面变复杂 → 推理越来越长 → 25 次因 length 截断 + 2 次超时 → 11 个 fallback 周期
↓
几何错误被试算冲突"反向强化"(E_L1 → 北),行人相位只成功 2 次
↓
tick 174–212 四起事故(包括含校车的连环事故,估算 26.3)
↓
tick 210 之后几乎停摆:28 个周期放行 2 辆,上游积压 39.3 + 未服务负债 203.6(四个模型中最高)
4. 评测局限
- 规则版本 16 的环境限制。 系统提示里没有路线-横道规则;横道上看不到未来车辆预约;不接受短键别名;行人奖励要等走完全程才结算,所以三方的行人奖励都是 0;观测未压缩,prompt 平均 24k token。
- completion 上限的影响。 这一局的 completion 上限是 16,384 token,Step-5 有 25 次回复撞上这个上限。放宽上限或要求更短的推理,结果可能明显不同,因此当前分数部分反映的是输出预算约束,不完全代表调度能力。
- 仍存在的引擎问题。 闯红灯检查只把"本拍在动"的车当作威胁;已在路口内的车不会为事故刹车,试算也只检查当前的锁(影响 INC0003)。
- 统计口径是启发式的。
usage不报告推理 token,只能统计字符数;注意力、横道断言和矛盾检测靠正则匹配;事故成本按"锁格 × 严重度 × 开放时长"分摊。 - 样本量。 三次取最好、单一种子。