Space Bunny Alpha(stealth/space-bunny-alpha)路口调度测试最终报告
- 有效运行:
stealth-space-bunny-alpha_2026-10-01_114857334-21412(三次中得分最高;规则版本 16,种子 63916,tick 61–261,56 个决策周期) - 其余运行:
stealth-space-bunny-alpha_2026-10-01_140700887-54472、stealth-space-bunny-alpha_2026-10-01_114857344-4644(只用于稳定性对比) - 数据来源:
report/select-best-run.mjs与report/analyze-run.mjs的输出,加上对原始推理日志和回放事件的人工判读 - 复现命令:
node report/select-best-run.mjs --model stealth/space-bunny-alpha,然后node report/analyze-run.mjs logs/replay_stealth-space-bunny-alpha_2026-10-01_114857334-21412.json
结论摘要
Space Bunny Alpha 有效运行得分 692.70,只比 balanced baseline(674.49)高 18.21,比 search baseline(788.38)低 95.68,是四个模型里最低的。三次均值 628.36,标准差 56.88,两次低于 balanced baseline。它是工具用得最全、放行车辆最多(150 辆)、损失也最大的模型:12 种工具全部用过,但 7 起事故里有 3 起是连环事故,锁格扣费 55.88,撞伤 9 名行人罚 45,两项都是四个模型中最差。
- 工具覆盖最全,执行最激进。 唯一同时用过 working memory(16 次)、车道引导、紧急车队(11 次)、绕行(11 次)和 BURST 档位(14 次)的模型。
- 右转几何系统性反向。 它认为北右转去东、南右转去西,方向恰好相反。c15 推理中看到冲突证据后,它的结论是「Let's not over-think」。这个错误直接导致 c18 放行的西横道行人被自己放行的紧急车撞到。
- 后半局失控。 tick 210–261 局内余额变化 −93.01,锁格扣费 46.35。c27 一次 BURST 波次估算成本约 37,是四个模型里单周期损失最大的一次。
0. 分数与稳定性
| 排名 | 运行 | 最终余额 | 放行车辆 | 事故 | 锁格扣费 | 上游积压 | 其他 |
|---|---|---|---|---|---|---|---|
| 1 | 114857334-21412 | 692.70 | 150 | 7 | 55.88 | 50.38 | 12 次 unverified 提交 |
| 2 | 140700887-54472 | 638.02 | 128 | 6 | 71.59 | — | — |
| 3 | 114857344-4644 | 554.37 | 140 | 8 | 157.94 | — | 17 次 unverified 提交 |
均值 628.36,最低 554.37,标准差 56.88。三局事故都有 6–8 起,锁格扣费从 56 到 158 不等。这说明"放得多、撞得多"是稳定的风格,只是撞的严重程度看运气。
| 策略 | 最终余额 | 放行车辆 | 未服务负债 | 事故 | 锁格扣费 | 上游积压 | 撞人 | 闯红灯罚 | 校车 | 拖车 |
|---|---|---|---|---|---|---|---|---|---|---|
| space-bunny-alpha | 692.70 | 150 | 183.9 | 7 | 55.88 | 50.38 | 45 | 9.2 | 0 | 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,局内累计变化 −133.30,终局通行费 +9.9,未服务负债 −183.9(399 辆车未服务,四个模型中最少),合计 692.70。
| 时间段 | 周期数 | 放行车辆 | hold 周期 | 局内余额变化 | 上游积压 | 锁格扣费 | 撞人 |
|---|---|---|---|---|---|---|---|
| tick 61–140 | 7 | 43 | 1 | −8.16 | 1.69 | 0 | 0 |
| tick 140–175 | 7 | 39 | 2 | +0.26 | 6.12 | 0 | 0 |
| tick 175–210 | 19 | 38 | 8 | −32.39 | 7.25 | 9.53 | 30 |
| tick 210–261 | 23 | 30 | 16 | −93.01 | 35.32 | 46.35 | 15 |
相对 search baseline 的 96 分差距:锁格扣费多 52.2,撞人多罚 35,上游积压多 4.5,闯红灯罚多 2.5;未服务负债少 1.5。放行车辆比 search 多 28 辆,但多出来的通行收入远不够覆盖事故成本。
1. 基础分析
1.1 上下文能力
| 指标 | 数值 |
|---|---|
| 每次请求 prompt tokens | 平均 19,899,P95 31,983,最大 37,183 |
| 推理 tokens | usage 报告为 0,但有推理文本:平均 9,894 字符,P95 34,285 |
| 每周期 API 轮数 | 平均 4.2;2 个周期用满 8 轮 |
| 工具参数里的 ID | 663 个,100% 能在当轮上下文中找到 |
| 非规范 ID / 重复失败调用 | 0 / 0 |
| working memory | 16 次(保存 12、查看 4),成功率 62.5%;失败 6 次,抽样看都是字段超过 80 字符;40 个周期能看到计划 |
判读:推理文本较短(约为 V4 Pro 的 1/3),自我修正标记 3,215 次(平均每次回复 13.7 个,四个模型中最少),属于"想得少、做得多"的风格。它是唯一认真使用 working memory 的模型,但对记忆内容的关注率只有 0.475。
1.2 注意力分布
v16 的观测里没有车道矩阵、出口和 reservedUntil 等字段,这些概念不参与统计。
| 关注较多(≥0.9) | 关注中等(0.7–0.9) | 关注较少 |
|---|---|---|
| 横道、行人预警、紧急车(1.0);候选冲突、时间预算 0.98;抛锚 0.97;上周期回顾 0.96;停止线候选 0.95;司机预警 0.92;正在放行车道 0.91 | 被撤销放行 0.87、hold 0.78、上次结算 0.73 | 车道引导机会 0.68、在路口车辆 0.54、working memory 0.48 |
| 唤醒原因 | 次数 | 有响应 | 响应率 |
|---|---|---|---|
| ACCIDENT_INTERRUPT | 18 | 17 | 0.94 |
| VEHICLE_TAILGATE / VEHICLE_RED_LIGHT | 1 / 1 | 1 / 1 | 1.00 |
| PEDESTRIAN_PATIENCE | 28 | 20 | 0.71 |
| PEDESTRIAN_JAYWALK | 17 | 2 | 0.12 |
判读:对"在路口行驶车辆"的关注率只有 0.54,是四个模型中最低的。这和它的事故模式完全对得上:它经常没意识到上一周期放行的车还在路口里(见 2.4 第 2 条)。行人闯红灯中断几乎全被忽略。
1.3 tool_call 准确性
整体 351 次调用,成功率 71.5%;75 次回复并行发出多个工具调用。
| 工具 | 调用 | 成功率 | 说明 |
|---|---|---|---|
| dry_run_admit | 108 | 25.9% | 资源冲突 54(其中行人相位冲突 52)、车道头未就绪 18、额度用完 7 |
| commit_schedule | 58 | 91.4% | 车道头未就绪、车辆不在停止线等 |
| inspect_incident / order_accident_clearance | 55 / 46 | 100% | 事故相关调用最多 |
| dispatch_emergency_convoy | 11 | 45.5% | NOT_LANE_HEAD 4、目标不相邻 1、目标槽位被占 1 |
| set_lane_detour | 11 | 90.9% | 1 次 SOURCE_NOT_SEVERED |
| manage_working_memory | 16 | 62.5% | 6 次超长 |
| guide_inbound_lane_change | 2 | 0% | 目标槽位被占 |
| inspect_lane_queue / inspect_crosswalk / dispatch_tow_truck / reroute | 22 / 13 / 8 / 1 | 100% | — |
判读:试算成功率是四个模型中最低的 25.9%,主要原因是 68 次行人相位尝试中 52 次与车辆冲突。它经常想同时放行人和车,但横道几何判断错了,所以反复冲突。
1.4 Agent 能力
| 指标 | 数值 |
|---|---|
| 先试算再提交 | 96.4% |
| 提交构成 | verified 16、unverified 12、hold 27、reckless 1 |
| 每周期放行车数 | 平均 2.7,最多 14 |
| 速度档位 | CRUISE 41、BURST 14 |
| sleep_ticks | 平均 8.6;10 拍 41 次 |
| 决策开销 | API 234 次扣 4.68,非终结工具 293 次扣 0.44(都是最高) |
判读:unverified 提交 12 次,是四个模型中最多的。还有 1 次 reckless 提交,即没有试算就放车。
2. 进阶分析
2.1 逻辑推理
- 右转方向系统性反向。 130 条横道断言正确率 76.9%,前后半局各错 15 条。错误集中在右转:c15 一个周期就写出「N_R1_RIGHT → east exit (crossing EAST crosswalk), E_R1_RIGHT → south exit, S_R1_RIGHT → west exit (crossing WEST crosswalk), W_R1_RIGHT → north exit」。实际是北右转去西、东右转去北、南右转去东、西右转去南,四条全部相反。
- 看到反证也不修正。 同一段推理里,试算结果显示 V00194(S_R1_RIGHT)与东横道冲突,与它的推导矛盾。模型的处理是:「Maybe the cell indices overlap and I mis-mapped. Whatever… Let's not over-think. The empirical fact: EAST crosswalk cell 7 conflicts with V00194」。它只接受了这一个具体事实,没有回头修正整套右转规则,之后多个周期的错误都来自同一个反向映射。
- 纠错效率最低。 试算失败 73 次,再试 42 次,成功 17 次(40.5%);38 次最终 hold。"说安全却冲突" 24 次。
2.2 复杂环境博弈
行人。 68 次相位尝试只成功 4 次,合法放行 2 批共 5 人:c18 t181 西横道双向 3 人,c30 t206 东横道 2 人。17 人闯红灯(罚 9.2),9 人受伤(罚 45)。行人告急时仍放行经过该横道的车辆 195 车次,被撞的 9 人里有 8 人此前就在告急预警里。
事故。 7 起,其中 3 起是 CRITICAL 连环事故:
| 事故 | 类型 | 发生–关闭 | 车辆 | 估算成本 | 责任来源 |
|---|---|---|---|---|---|
| INC0001 | 撞人 SERIOUS | 176–200 | 2 | 11.6 | c12、c15 放行的 S_R1_RIGHT 车辆 |
| INC0002 | 撞人 SERIOUS(2 名行人) | 181–199 | 2 | 13.9 | c17 放行的紧急车 V00101 + 尾随者 V00107 |
| INC0003 | 连环事故 CRITICAL | 204–260 | 5 | 33.9 | c21 的 W_R1(V00129、V00146)+ c27 的 W_S1/W_S2/S_L1 |
| INC0004 | 连环事故 CRITICAL | 207–228 | 3 | 16.6 | c27 的 W_S1/W_S2 + 闯红灯 V00074 |
| INC0005 | 撞人 SERIOUS | 213–228 | 1 | 6.5 | 自行进入的 V00210 |
| INC0006 | 连环事故 CRITICAL | 234–260 | 4 | 10.8 | c42–c43 东向波次 + 自行进入的 V00236 |
| INC0007 | 撞人 SERIOUS | 242–局终 | 1 | 7.6 | c46 放行的 V00185(N_R1_RIGHT) |
首次响应都在 1–2 拍内。不过 INC0003 发生后,c27 已排程的 V00072、V00093 仍在 tick 205 和 207 驶入并被卷入。这与引擎"已排程的车不会为事故刹车"的问题有关,但根源是 c27 放行时这些车道本来就有闯红灯预警。
紧急车辆。 11 次紧急车队调用里成功 5 次。V00212 先后被调度 3 次(c21、c26、c29),到 tick 234 才放行,等了 59 拍。V00056 等了 61 拍。V00256 到局终都没放行。
抛锚。 8 次抛锚,派车延迟 1–37 拍。最慢的是 V00014,37 拍,期间先在 tick 91 让后车绕行。
2.3 亮眼操作
- c8 t131:14 车 BURST 波次。 摘要:「West straights top-3 BURST (incl. emergency V00043 behind V00030/V00037), East straight top-2 BURST (van V00141), plus all four open right-turn lanes (… S_R1 top2 incl. 40-pax bus V00084, W_R1 top2 incl. school bus V00090)」。一次试算冲突后调整批次通过,同时放行紧急车、大巴和校车,没有出事。
- c10 t142:12 车波次放出两辆救护车。 N_L1 top-2 放出已经卡了 56 拍的救护车 V00056,N_R1 top-4 带上 V00096,再加上左转对 W_L1 与 S_L1(S_L1 排队 110 人)。
- c5 t101:先查清再动手。 先连续检查 6 条车道队列,再付费拖走 V00014,释放 48 人的队列,然后放行 9 辆东向车(含 3 辆约 40 人的大巴)。
- c2 t71:开局 12 车北向直行波次,并带上紧急车 V00050。
2.4 最差操作
- c27 t201:带着已知警告的 BURST 波次,单周期损失约 37。 推理里明确写道:「the same set as last cycle's rejected-ish option… it carried jaywalker_warnings for all three W_S2 vehicles」。当时司机预警里 8 辆车耐心为 0,南横道有一名行人只剩 4。模型仍放行 W_S1×3、W_S2×3、S_L1×2,全部用 BURST,理由是「W straights take priority」。结果 tick 204 和 207 先后形成 INC0003(5 车,估算 33.9,开放到 tick 260)和 INC0004(3 车、2 名行人),单周期分摊 36.93。
- c17–c18:自己放行的紧急车撞上自己放行的行人。 c17 只放行紧急车 V00101(N_R1_RIGHT),紧随其后的是已被预警 6 次的尾随者 V00107。c18 的最后一轮,模型的联合试算(西横道加北横道)因"北横道被 V00107 占用"失败。模型随即只提交了西横道行人相位,没有再试算:「commit only a bidirectional WEST crosswalk phase to defuse the patience-0 pedestrian… No vehicle admits to avoid any collision risk」。按它的反向右转映射,N_R1_RIGHT 去东边,与西横道无关。实际 N_R1_RIGHT 正要经过西横道。tick 181 V00101 撞上刚放行的 PED:3,tick 185 又撞上 PED:45:1(INC0002)。引擎接受了这个未验证的行人相位,也值得排查(见第 4 节)。
- c21 t184:放行 W_R1,埋下最大连环事故。 当时横道上已有两起事故,北横道一名行人耐心只剩 2。模型提交了 W_R1_RIGHT top-3(包括 V00129、V00146),这两辆车后来都卷入 INC0003,c21 分摊 13.56。
- c46 t238:单放一车撞人。 摘要:「Only legal vehicle route this cycle is N_R1_RIGHT」,提交时没有通过试算。当时北横道有 4 名行人正在闯红灯,而 N_R1_RIGHT 正好经过北横道。tick 242 V00185 在北横道撞人(INC0007),到局终都没关闭。
- c43 t234:事故未清时继续放东向波次。 东向 E_R1 top-5、E_S2 top-3、E_L1 top-2,共 10 车。当时北横道有 4 名行人正在闯红灯。同一拍东横道发生 INC0006,c42–c43 放行的 V00216、V00079、V00212 随后被卷入,形成 4 车连环事故。
3. 损失链条
右转几何反向(看到反证也不修正)+ 对在路口车辆关注率仅 0.54
↓
行人相位反复冲突(68 次成功 4 次),行人大量闯红灯和告急
↓
大批放行经过告急横道的车辆(195 车次),加上 BURST 和 12 次 unverified 提交
↓
tick 176–242 共 7 起事故,3 起连环;c27 一次波次分摊约 37
↓
锁格扣费 55.88 + 撞人罚 45 → 尽管放行 150 辆车,仍是四个模型里最低分
4. 评测局限
- 规则版本 16 的环境限制。 系统提示里没有路线-横道规则,模型只能自己从坐标推断右转去向;Space Bunny 的反向映射在 v17 之后加了规则的版本里可能不会出现。另外,横道上看不到未来车辆预约;不接受短键别名;行人奖励要等走完全程才结算,所以三方的行人奖励都是 0;观测未压缩。
- 仍存在的引擎问题。
- 闯红灯检查只把"本拍在动"的车当作威胁。
- 已在路口内或已排程的车不会为事故刹车,试算也只检查当前的锁(影响 INC0003 中 V00072、V00093 的卷入)。
- 新发现,待排查: c18 只含行人相位的
commit_schedule未经试算就被接受,而上一周期放行的 V00101 正要经过该横道。需要确认提交时是否检查了正在行驶车辆对横道格子的未来占用。
- 统计口径是启发式的。 注意力、横道断言和矛盾检测靠正则匹配推理文本;
usage不报告推理 token,只能统计推理字符数;事故成本按"锁格 × 严重度 × 开放时长"分摊。 - 样本量。 三次取最好、单一种子。