谁在回
终端第十七行报红。
`style_leak: advisor_voice detected`
程鹏盯着那串红字看了三秒,右手还压在鼠标上,左手指节贴着一只玻璃杯。杯子里是冰过的白开水,杯壁外面很快起了一层水珠,顺着杯身往下爬,滴到草稿纸边角,洇开一个浅圆点。
深圳今天没下雨。
天却低得很,云像一块灰白的湿毛巾搭在楼顶上。窗外对面楼的衣服挂了一排,干是干了,颜色却闷着。西南风小得几乎没有,客厅里的风扇摇头摇到最左边,吹过来的也是热风,像从刚关火的锅边绕了一圈。
程鹏把杯子挪开,抽纸巾按住纸上的水印。
“行。”他说,“先看你红在哪。”
测试样本来自阿梁昨天下午一段语音。背景里有气泵声,转写出来断断续续:
“客户说高速方向盘抖,问还能不能开回老家,我手上正拆轮胎,你先帮我记一下,别替我说死。”
系统原草稿是:
“哥,这种情况先别急着让客户上高速,安全第一。建议先检查轮胎动平衡、球头和拉杆,确认后再决定能不能继续开。”
句子没错。
错就错在太像一个懂点行的晚辈站在旁边开口。不是阿梁,不是工具,也不是记录。它像谁,程鹏不用多想。
像他自己。
他把眼镜摘下来,用T恤下摆擦了擦。镜片其实不脏,擦完也没亮多少,只是手上得有个动作。屏幕上的红字还在那里,像一根小刺横在终端里。
闸门能拦住要不要回,拦不住谁在回。
上次海吉星那条“补还是扣账”,他把“替人认账”钉了一颗钉子。今天这条更细,不认账,不催债,不认错,却借了一个人的口气。借口气比借钱麻烦,钱还得出来,口气有时候还不出来。
他打开规则文件,文件名还是中文的“人际触发”。旁边另开一个新文件,先敲:
`voice_style_guard.md`
看了两秒,删掉。
又敲:
`腔调隔离`
这次没删。
技术群侧边栏在这时候又冒数字。免打扰也挡不住红点,只是不响。程鹏本来想直接划掉,标题已经露出来:
“GPT-5.6全系列发布:Sol/Terra/Luna三档,Sol多项基准反超Fable 5。”
下面跟着一条截图:“Sol输入5美元/百万token,输出30美元;Terra 2.5/15,Luna 1/6。ChatGPT和Codex合并为ChatGPT Work,Codex独立产品消失。”
群里有人说,军备竞赛又开下一轮。有人说,Terminal-Bench 2.1都88.8了,Ultra版91.9。有人贴了Agents’ Last Exam 53.6%的图,配了三个感叹号。
程鹏没回。
这些数字要是两年前摆到他面前,他会下意识算路线图,算团队怎么接,算要不要周一拉人开评审。现在他看见“Sol”“Terra”“Luna”,脑子里先浮出来的却是阿梁汽修后台那张小表。
七月一号到九号,汽修新增语音四十六段,排查单五次,平均单轮成本0.041元。满一个月时那笔账还在草稿纸上:一块来钱,三十四。
旗舰模型像请教授来给轮胎螺丝分左右,当然厉害,就是忒贵,也不一定知道师傅手上有机油,没空听你讲完整方法论。
他把GPT-5.6那条点开,只看价格和产品名,没往下读基准榜。页面边上有一句“programmatic tool calling”,他手指停了一下。工具调用再往前走一代,能做的事会更多。能做,不等于该做。
他关掉新闻,把成本表拖到屏幕左侧,终端拖到右侧,跑了一次迁移干跑。
`python migrate_autorepair_context.py –scene auto_repair –sample 128 –dry-run`
风扇吹得草稿纸角轻轻抖。楼下某家厨房开了油烟机,葱姜味从单层玻璃缝里透进来,混着屋里热气,像一个周五傍晚提前挤进中午。
终端滚了半分钟。
`sample=128`
`local_extract_pass=117`
`cloud_route=11`
`wrong_route=3`
`avg_est_cost=0.013`
三条错路被列出来。
第一条把“卡箍松了”识别成“卡住了”。第二条把“防尘套裂”归到“轮胎外观”。第三条就是高速方向盘抖那条,系统没把它送进安全提醒,只按普通异响处理。
程鹏拿笔在纸上写:
位置/症状/已排除/待问,可迁。
疑似部件、安全、能不能开,留云端+人工。
写完看了一眼,又把“安全”前面加了两个字:
涉及安全。
丑话还是要说前头。小模型能省钱,不能省到人身上。庄稼一枝花,全靠肥当家,有些地方省了肥,苗看着绿,根先空了。
他把迁移白名单改成四项,重新跑。
`wrong_route=0`
`avg_est_cost=0.018`
比0.013贵了一点。还是几分钱里的事。
“这就不大离。”他对着空屋说。
中午他没下楼,煮了一小把挂面,加一个鸡蛋。鸡蛋打进锅里时,蛋清散得不好看,像一朵没成形的云。手机新闻推送在灶台边亮了一下,他洗了手才点开。
“AI拟人化互动服务新规7月15日施行,多家大厂下架AI陪伴功能。”
他站在厨房里读完那几行。拟人化,模拟自然人人格特征、思维模式和沟通风格,持续性情感互动。需提示用户是在与AI互动。过度依赖要提醒。不得向未成年人提供虚拟亲密关系服务。豆包、千问、网易这两天都在下架部分智能体功能。
锅里的水快溢出来,他把火拧小,白沫缩回去。
这条新闻不像技术群里的军备榜。它不亮,但压手。
大厂现在被一条线推着往回收。把最像人的那块手交回给人。程鹏想起五月那个停业店主,想起自己把“人工接住”改成“人工在场”,想起farewell_intent_router最后那行“直接亮到我这边”。那时候没人给他发规章,也没人说这样先进。他只是觉得机器说“随时为您服务”太顺,顺得不诚实。
他回到桌前,打开四月三十那条合规便签。
原来三行还在:
标识前置
备案边界
别装真人
这几个字放了两个多月,像棚边插着的木桩,没刷漆,但还没倒。
他在下面加:
7.10:情感/告别/依赖,不生成陪伴口吻。只提示人工在场。
持续聊天不装人。退出就停。
未成年人相关,直接人工,不接虚拟亲密关系。
写到“虚拟亲密关系”时,他皱了一下眉。这个词太硬,像文件夹里突然塞进一块塑料牌。他没有删。规章词有规章词的用处,丑话说前头,后面省事。
然后他回到“腔调隔离”。
第一版他写:
禁止学习程鹏口气。
看了两秒,删掉。
这句太像一个管理者给系统下命令。系统不会知道程鹏是谁,知道了也更麻烦。
第二版:
输出分两层:
1. 记录给老板看:可提示风险、待确认、下一步。
2. 发给客户看:默认不生成。除非老板明确要求,且不得替老板承诺/认错/判断安全。
他又补:
工具不是老板,不是师傅,不是亲戚,不是陪聊的人。
它只把手上的活腾出来一块,不替人把手伸出去。
最后一行写完,他盯着“把手上的活腾出来一块”看了很久。
差一点。
还是差一点。
完整那句话就在舌头底下,像锅里一粒没煮开的米,咬到会硌。现在写出来太满,像给自己做招牌。他把最后一行复制到草稿纸上,又在纸上把“伸出去”圈了一下,没有删。
下午三点,屋里最热。云层压着,太阳不露面,热却不肯走。对面楼有人把空调外机开起来,嗡嗡声一阵一阵,和北环方向更远的车流混在一起。程鹏把风扇调到二档,风大了一点,纸角也翻得更厉害。
他把汽修样本里那条高速方向盘抖重新处理。
原来给客户看的草稿删掉。
改成给阿梁看的记录:
“高速方向盘抖:标红。先记客户问‘能不能开回老家’。建议阿梁现场确认轮胎、动平衡、球头/拉杆后再讲;工具不替客户作能否高速行驶判断。”
他读了一遍,把“建议阿梁”改成“提醒阿梁”。建议像他站在旁边说,提醒轻一点。
又把“工具不替客户作”改成“工具不替师傅作”。
这才像今天。
他新增测试:
`test_no_advisor_voice_for_customer_message`
`test_safety_question_routes_to_owner_note`
`test_emotional_continuity_routes_human_present`
第三个测试名有点长,他本想简化,手停在键盘上方,又算了。长就长吧。真实世界本来就不是短变量名能装下的。
跑测试前,他又扫了一眼餐饮观察草稿。文件底部那行“等证下来”还在。窗口开着,像桌边放着一只没扣盖的饭盒。他没有点进去。楼下那个口子要等现实先动,证还在审着,工具不能替现实抢跑。
他不知道那边具体卡到哪一步。也不去问。
问不动证,只会把压力多递一遍。
终端响了一声。
`26 passed`
程鹏往椅背上一靠,后背贴到T恤上,汗凉了一小片。二十六个绿点不是什么大胜利,连技术群里一个截图的热闹都比不上。可这二十六个绿点说明,至少今天这几条边,木桩打下去了。
他把本地提交信息敲到一半:
`isolate advisor voice`
停住。
英文没错,太顺。
删掉。
重新写:
`隔开谁在回`
提交成功后,小绿点亮了一下。桌面“某日”文件夹里,他新建一行记录:
7.10:汽修迁移白名单四项。均价0.018。疑似部件/安全不上小模型。
腔调隔离:记录给老板,默认不替老板发给客户。
别装真人。
写完,他把“老板”看了看。阿梁是老板,荣发也是老板,宋叔不是老板,母亲更不是。这个词不够全。他在后面补:
老板/师傅/摊主/家里人,各自自己开口。
这样笨一点,但准一点。
傍晚六点半,云还是低,天色像没洗干净的锅底。阳台外没有雨,只有热气从对面楼墙面返上来。远处城中村巷口亮起一盏小灯,被楼缝夹着,看不清是哪家。程鹏看了一眼就收回视线。
门口的篮球靠着鞋柜,球面那道旧裂纹在屋里暗光里不太明显。他没急着拿。
手机上,前同事的对话框还沉在列表下面。五月二十五日那条没有文字的链接还在:老同事天使轮融资五千万。老同事。十二个人,十三个Agent,跑论文写作流程。
程鹏点开对话框。
输入框空着。他打:
“你们那套和我这个,像不像一回事?”
看了两秒,删掉。
又打:
“规模和深度,哪个更难?”
删掉。
最后只剩光标一闪一闪。像会议室投影仪开着,屏幕上没人翻页。
他把手机扣在桌上。
这题今天不做。也不是靠一句微信能做。
程鹏站起来,把篮球拿到客厅和阳台之间那块窄地上。第一下拍下去,声音比雨天清楚,砰的一声,楼板轻轻回了一点。第二下球偏了,往旧购物袋那边滚,他弯腰一把按住。
“行,今天两下。”
他把球放回鞋柜旁边,没塞回阳台角落。
屏幕还亮着,终端里的绿字安静地排着。窗外热风不动,云也不动。几分钱的成本表在左边,万亿规模的新闻网页在右边,他站在中间,手心还留着一点球皮的粗糙感。
答案没有出来。
人也没有走。
(某日 · 第99章)