让 AI 自己去面试
让 AI 自己去面试 · 第三季 · EP13

跑了六场才看清:被噪声误导的两次改动

时长 18 分 23 秒 · 单人旁白 · 8 个章节 · 185 条滚动字幕
听众:AI / 自动化开发者为主,PM 与泛科技读者可无障碍收听

一句话概要

优化一个由外部平台裁决的系统时,最像成果的那个数字往往最不可信。总播报量在相邻参数下波动 10 倍,真正能用来判断改动的,只有「同一场次内可复现」的那几个指标。

本集要点

一、六场实测与那个十倍波动

钩子:只要系统里有外部裁判,参数与结果之间就不是单调关系,中间隔着一个看不见的决策过程。

二、第一次误导:为了不超时,我们把答案切掉了一半

导火索是 batch_probe.js 报出「末批等待 20~37s,超出平台静默窗口 23~26s」。于是把单轮上限从 30s 降到 15s、队列上限设为 4 批、预算八成停止入队。

后果是每轮只播 13s,约 65 字。sim13 平台追问的原话是「您的自我介绍似乎没有说完方便补充一下您的技术背景和项目经历吗」,334s 催场、366s 结束。

回退判定:宁可超时催场,也不能说一半。超时只需再答一句,说一半直接终止。

三、第二次误导:改对了方向,却改错了那一行

sim10 起把打断策略改成「保留队列」,但 bridgePump 丢弃旧内容仍用入队时间早于停止标记时间这个判据,而保留下来的批次恰好全在停止标记之前入队。

sim14 因此产生 53 次 dropped_after_barge_in。改为按轮次丢弃后,sim15 降到 1 次。

新策略与老判据共存时,更具体、更靠底层的那个会赢,而且不报错。

四、反直觉:可信的指标不在播报量里

判据只有一条,这个指标在同一场次内能不能复现。

指标demo(改造前)sim10~sim15(改造后)
首句开口滞后中位 12.0s / 最长 27.0s中位 3.97s / 最长 6.70s
批间纯静音平均 21.8s(最长 58.8s)2.0~2.5s
送达电平—micPeak 0.12~0.18 / rms 0.05~0.07
两条打断路径计数0 / 0首次被真跑覆盖

复盘承认的唯一无争议成果,是开口滞后最长从 27.0s 降到 6.70s。要比较参数,同参数必须跑 ≥5 场取中位数。

五、探针工具也会说谎

batch_probe.js 第一版只算分批不算预算,于是报出「全部超窗口」的误导结论。真实运行里 guard.planBatch 会跳过超预算批次,根本等不到。两个量必须一起模拟。

另一个细节:gap_probe.js 的跨场次对比表写死了 demo 到 sim13 五个目录,跑完 sim14 与 sim15 之后不会自动跟上。

核心一句话:工具的输出是证据,不是结论。跑之前先看它模拟了哪几层现实、读的是哪几个目录。

六、已知与未知

已知:开口滞后与批间静音已达标;总播报量不可作优化目标;比较需同参数 ≥5 场;「宁可超时催场,也不能说一半」已成硬规矩。

未知:为什么平台在部分场次只答 2 轮就终止。该现象与播报量不成正相关,sim14 播 84s 答 12 轮,sim15 播 20s 答 2 轮,sim12 播 13s 也答 2 轮。

推测方向归给了平台侧行为(提问节奏 + 语音活动检测判定),需要与平台侧对照才能归因,没有强行给出一个自洽解释。

七、带走的判断

素材锚点

autobot/docs/TUNING-RETRO-2026-10-07.md §1 六场实测 · §2 两次错误改动 · §3 稳定指标 · §4 诊断工具 · §5 下一步;autobot/gap_probe.js;autobot/batch_probe.js。

《让 AI 自己去面试》第三季 · 共 6 期 · 单人旁白 · 蓝灰主题
本集音频由 edge-tts 合成,字幕时间戳对齐到毫秒。
← 上一期EP12 碎片化:一句「没听到」背后的 3 到 10 秒下一期 →EP14 宁可超时,也不能说一半