三台测试机的屏幕刚亮起提醒,小李已经站起身准备鼓掌。他手抬到一半,看见刘好仃蹲在宁波机前,手指一点一点地滑动帧序列回放。
“深圳那一下,快了1帧。”刘好仃说。
没人接话。小吴咽下嘴里的面包,凑过去看。果然,深圳机弹窗出现的瞬间,画面有极其细微的前置抖动,像是有人轻轻推了一把。
“东莞呢?”小李问。
“内存波动0.8毫秒,像是打了个嗝。”刘好仃抬头,“同步是同步了,可它们不是一块铁,是三块拼在一起的板子,缝里还有风。”
小吴挠头:“可用户根本看不出来啊。”
“看得出来。”刘好仃把录像倒回三秒前,“人耳朵听不出音差0.5秒的节拍器,但跳舞的人能踩错步。我们现在不是做工具,是养习惯。”
他站起身,走到白板前,一把划掉原本写着“功能覆盖测试”的计划表,在上面写下“极限工况穿透测试”。
“十人并发操作,跨厂区指令冲突,再加上弱网延迟,三重叠。”他说,“明天上午九点,全场景压上去。”
小李张嘴想抗议,又闭上了。他知道,每当刘好仃用这种语气说话,争论只会多浪费五分钟。
第二天一早,三台测试机同时加载模拟环境。屏幕上,十几个虚拟操作员开始高频交互,导出、切换、报警、巡检指令像雨点一样砸下来。
第七轮测试进行到第三分钟,系统突然触发熔断机制。一条本该优先推送的数据被错误降级,界面冻结三秒后自动重启。
“怎么回事?”小李盯着日志,“前端资源占用才7%,没超限。”
小吴翻着后端调度记录:“问题不在前端。调度器还在用‘先到先服务’,高负载下根本顾不上优先级。”
刘好仃没说话,掏出笔在便签纸上画了个三角:顶上是“紧急度”,左边是“操作惯性”,右边是“环境噪声”。
“以前我们调呼吸,现在得学会换气。”他把纸贴在白板上,“把这三个参数做成动态权重,让系统自己判断什么时候该抢,什么时候该让。”
小李皱眉:“这玩意儿怎么调?”
“拿老张的操作当标尺。”刘好仃调出凌晨三点的录像,“他回头拿水杯,动作慢,视线落点散,系统却判成防查岗——这不是算法错,是它不懂‘差不多’这三个字。”
办公室安静了一瞬。
小吴忽然笑出声:“你是想让机器学会‘揣摩上意’?”
“不是上意,是分寸。”刘好仃在白板角落写下新指标:“操作直觉匹配度。”
“怎么量化?”小李问。
“动作合理性乘环境适配性,除以响应激进度加零点一。”刘好仃写下一串简式,“比如,操作员半转身,手悬在半空,嘴没闭上——八成是在等人说话。这时候弹提醒,就是掀人被子。”
小吴盯着公式看了两秒,突然拍桌:“可以加个模糊指令集!我们录些半截手势、口头嘀咕,看看系统能不能猜中意图。”
“就今天。”刘好仃点头,“下一轮测试加进去。”
第九轮开始前,团队紧急注入了新参数模型和模糊指令样本。测试刚运行一分半钟,系统在一次弱网环境下误判操作员意图,提前锁定了设备模拟接口,导致整条虚拟产线停滞。
“它自作主张了。”小李盯着屏幕,“比卡顿还吓人。”
刘好仃点点头,当场关闭自动锁定模块,在逻辑层加了个“意图确认缓冲期”。
“不确定的时候,只亮黄灯,不踩刹车。”他说,“宁可慢半拍,也不能替人做主。”
小吴补了一句:“就像老师傅带徒弟,看到他拿错工具,先咳嗽一声,而不是直接上手抢。”
“对。”刘好仃在测试报告首页写下新标准:“通过与否,不看有没有错,而看错了之后,系统会不会犹豫。”
他合上笔记本,抬头看三台机器。
“准备第十轮。”
小李深吸一口气,手指悬在启动键上。
“等等。”刘好仃突然说。
他走回电脑前,调出老张昨天实际操作的一段录像。画面里,老张站在机台边,左手扶着台面,右手伸向控制屏,中途停顿了一下,像是想起了什么,转头看了眼身后。
系统判定为“操作中断”,准备弹出引导提示。
刘好仃按下暂停。
“这一秒的停顿,不是犹豫,是习惯。”他说,“他在等机器完成上一步的嗡鸣。”
他把这段视频拖进训练集,标注为“等待设备反馈”。
“加进去。”
小吴快速操作,新样本完成注入。
“现在可以了。”刘好仃说。
小李按下回车。
三台测试机同时加载极限场景,虚拟指令流如暴雨倾泻。深圳机率先响应,弹出第一条提醒,颜色温和,三秒后自动收回。
东莞机在同一时刻捕捉到一次模糊手势,未触发任何动作,仅在后台记下行为日志。
宁波机在弱网条件下接收到一条不完整语音指令,系统未执行,只在角落亮起一个微小的问号图标,持续五秒后消失。
所有模块运行平稳,资源占用稳定在安全区间。
刘好仃盯着宁波机的问号图标,看了足足十秒。
他伸手拿起记号笔,在白板上“操作直觉匹配度”下方画了个圈。
笔尖顿了顿,又补了一横,变成一个未闭合的环。
他转身,对小吴说:
“把问号的显示时间改成七秒。”