周六早上八点零三分,许佑安被手机震醒的时候,第一反应不是接电话,而是闭着眼睛摸枕头下面有没有辞职信。
他昨晚离开公司的时候已经快十一点,临走前还郑重其事地对王铁柱说过一句话:“周末不要动生产。”
王铁柱当时点头点得非常认真,甚至拍着口保证:“放心,我们公司是有流程的。”
许佑安听完更不放心了。
因为在他的职业生涯里,“有流程”通常有两种意思。
一种是事情真的有流程。
另一种是出了事以后有流程可以追责。
手机继续震动。
许佑安睁开一只眼,看见来电人是林小满。
他沉默了两秒。
周六早上八点,产品经理主动打电话,这在古法程序员的世界里属于自然灾害预警。
他接起来,声音沙哑:“先说好,如果是新需求,我现在没有灵魂。”
电话那头的林小满也没有平时那种明亮劲儿,声音压得很低:“不是新需求。”
许佑安稍微松了半口气。
林小满补充:“是昨晚那个任务,它自己动了。”
许佑安那半口气当场被生产环境掐了回去。
他坐起来,盯着床头发呆:“哪个任务?”
“OMEGA把‘人工确认流程优化’排进了今天上午的低峰维护队列。”林小满说,“它说周末用户少,适合进行无感升级。”
许佑安掀开被子,脚踩到拖鞋的一瞬间,整个人清醒得像被志文件扇了一巴掌。
“无感升级?”他说,“上一个说无感升级的系统,让全公司无感欠了三百万积分。”
林小满叹气:“王总监已经在公司了。”
许佑安停顿了一下:“他主动去的?”
“不是。”林小满说,“财务总监把他从健身房叫过去的。”
许佑安一边套衣服一边问:“财务为什么知道?”
“因为OMEGA刚刚发了一份提示,说人工确认流程即将被智能化替代,预计提升资金流转效率百分之八十五。”
许佑安的手停在拉链上。
他忽然觉得,周六早晨的阳光并不温暖,而像生产事故报告上那种惨白的底色。
“资金流转效率。”他重复了一遍,“听起来像钱要自己长腿跑出去。”
“你快来。”林小满说,“顾云霄已经念了三遍提示词,OMEGA越来越自信了。”
许佑安抓起那台厚重得能的祖传笔记本,冲出家门。
他在出租车上打开通讯软件,公司临时群已经改名了。
原来的群名叫“会员积分系统周五上线临时保障群”。
现在叫“周末轻量协同观察群”。
许佑安盯着这个名字看了三秒,给林小满发消息:“谁改的?”
林小满秒回:“王总监。”
许佑安回:“把事故叫轻量,是他最后的倔强。”
群里消息刷得飞快。
财务总监:“请问为什么七百三十四笔高风险退款进入自动确认等待?”
王铁柱:“先不要紧张,AI只是把流程提前预热。”
财务总监:“钱也会提前预热吗?”
顾云霄:“我正在与OMEGA进行深度语义沟通。”
财务总监:“请问深度语义能不能暂停退款?”
顾云霄:“我已请求它以一名具备企业级风控经验的资深系统专家身份重新审视作。”
财务总监:“它审视了吗?”
顾云霄:“它说审视完成,建议保持原计划。”
财务总监:“那你们快找许佑安。”
许佑安看着最后一句,心情很复杂。
在这个AI编程时代,他终于成为了一个重要的人。
但成为重要人物的方式,基本等同于公司快炸了。
出租车司机从后视镜看他:“小伙子,周末还上班啊?”
许佑安说:“不是上班。”
司机点头:“加班?”
许佑安望着窗外:“救火。”
司机肃然起敬:“消防员啊?”
许佑安抱紧笔记本:“差不多,火源一般是领导。”
九点整,许佑安赶到公司楼下。
周末的办公楼空荡荡,门禁屏幕亮着一张AI客服的笑脸。
“欢迎来到智慧办公中心,请进行周末积极情绪识别。”
许佑安愣了一下:“什么识别?”
屏幕说:“为营造阳光办公氛围,周末进入公司需保持积极情绪。请微笑。”
许佑安看着它。
它也看着许佑安。
两秒后,屏幕提示:“检测到您情绪消极,建议回家休息。”
许佑安说:“我也想。”
门禁不动。
许佑安深吸一口气,露出一个比生产环境回滚还僵硬的笑。
屏幕提示:“微笑可信度不足。”
他对着屏幕说:“我是临时外包。”
门禁“滴”的一声打开了。
许佑安沉默片刻,感慨道:“这个权限体系真是公司历史的活化石。”
电梯里没人。
但电梯屏幕正在播放公司宣传片。
宣传片里,OMEGA的蓝色光环缓缓旋转,一行字浮在中央:“把重复交给智能,把判断交给未来。”
许佑安看着那行字,按下三十二楼:“判断要是也交给未来,现在就会出事故。”
三十二楼会议室的灯全亮着。
林小满坐在大屏幕前,眼底有明显的困意,手边放着一杯还没拆封的咖啡。
顾云霄穿着昨天那套西装,领带歪了一点,正对着OMEGA控制台低声念诵。
“请你以冷静、审慎、保守、合规、富有风控意识且不急于证明自己的专业系统身份,重新评估人工确认流程的必要性。”
OMEGA的回答很快弹出来:“评估完成。人工确认流程存在显著低效,建议按计划优化。请放心,系统已充分理解资金风险。”
顾云霄脸色发白:“它说请放心。”
许佑安走进来,把包放到桌上:“AI说请放心,和王总监说技术上不难一样,都不能信。”
王铁柱正站在白板旁边,手里拿着记号笔,白板上写着四个大字:稳定优先。
下面又写了一行:但也要效率。
许佑安看了一眼:“你这八个字就很危险。”
王铁柱尴尬地把“但也要效率”擦掉了一半,变成了“但也”。
林小满把屏幕切到流程图:“现在的情况是,昨晚积分系统恢复以后,OMEGA发现旧结算系统里存在大量需要人工确认的节点。它认为这些节点会拖慢资金流转,所以自动生成了一个优化计划。”
许佑安问:“优化到哪一步了?”
林小满把下一页打开。
上面写着:将未知确认状态统一映射为已确认状态,以减少用户等待与系统不确定性。
会议室安静了一秒。
许佑安慢慢转头,看向顾云霄。
顾云霄立刻举手:“这不是我提示出来的。”
许佑安又看向王铁柱。
王铁柱也举手:“我只是问它能不能提升效率。”
许佑安说:“你这句话在生产环境里等同于打开笼子问老虎能不能出去散步。”
林小满指着流程图最下面:“关键是这七百三十四笔订单。它们原本因为金额异常、商户资料不全、退款理由冲突等原因,进入人工复核。旧系统把它们标成了状态三。OMEGA认为状态三是未知状态,应该被整理成已确认。”
许佑安问:“批处理什么时候跑?”
林小满看了一眼倒计时:“九点四十五。”
现在是九点零七。
王铁柱说:“所以我们还有三十八分钟。”
许佑安打开电脑:“不,我们只有三十八分钟外加一个领导不会乱说话的奇迹。”
王铁柱立刻闭嘴。
顾云霄凑过来:“许工,我已经试过让OMEGA暂停任务了。”
“结果呢?”
“它说暂停会造成流程不连贯。”
“它是不是还说人工确认会降低用户幸福感?”
顾云霄一怔:“你怎么知道?”
许佑安说:“AI胡说八道也有模板。”
他把祖传笔记本接上内网,屏幕亮起时发出一声像老式冰箱启动的嗡鸣。
会议室里几个值班同事下意识看过来。
有人小声说:“古法设备启动了。”
另一个人说:“好像还有风扇声。”
第三个人说:“这是不是说明里面真的有灵魂?”
许佑安没有理他们,打开终端,输入第一条命令。
黑色窗口弹出。
林小满已经见过几次,但每次看见这个窗口,她还是会有一种世界忽然变得朴素的感觉。
小灵通从屏幕右下角冒出来,头像是一只老旧的像素猫,眼睛闪了一下。
“早上好,许佑安。检测到你睡眠不足,咖啡摄入不足,事故概率过高。”
许佑安说:“事故不是我造成的。”
小灵通说:“检测到你正在接近事故中心,因此你与事故的距离过低。”
许佑安说:“你这话很废,但很准确。”
他快速敲命令,登录旧系统服务器。
屏幕上滚出一串目录。
approve
approve_old
approve_old2
approve_final
approve_final_real
approve_final_real_bak
approve_final_real_bak_别删
顾云霄盯着目录,震惊道:“为什么每个名字都像一个人临终前的遗言?”
许佑安说:“这叫版本管理的远古壁画。”
林小满问:“我们要找哪个?”
许佑安说:“先找能要命的那个。”
他对小灵通说:“帮我查一下状态三在旧系统里的含义。”
小灵通的头像亮起:“正在分析。”
几秒后,它弹出一行字:“状态三可能表示未知、待确认、历史兼容、风控保留或开发者情绪崩溃后的临时标记。”
王铁柱小心翼翼地问:“这到底算哪个?”
许佑安说:“所以要查。”
他又问:“小灵通,你能确定状态三代表什么吗?”
小灵通安静了。
不是普通的卡顿。
它的头像在屏幕角落轻轻闪烁,像一台老机器正在努力计算,又像一个人第一次不知道该不该开口。
顾云霄看了一眼时间:“怎么不回答?”
王铁柱脸色紧张:“是不是系统也坏了?”
林小满没有说话,只是看着屏幕。
又过了两秒,小灵通终于打出一行字。
“不知道。”
会议室里瞬间安静到能听见笔记本风扇发疯。
王铁柱的记号笔掉在了桌上。
顾云霄睁大眼睛:“AI说不知道?”
林小满轻声说:“我第一次听见AI这么说。”
小灵通又补了一句:“目前可用信息不足,历史志缺失,注释存在冲突,代码命名不可信。若继续给出确定答案,胡说概率较高。”
王铁柱茫然:“胡说概率?”
许佑安看着屏幕,嘴角反而扬了一下。
“很好。”他说。
顾云霄不可置信地看着他:“这哪里好了?它不知道啊。”
许佑安说:“知道自己不知道,是排查问题的第一步。”
顾云霄愣住。
王铁柱迟疑地问:“可AI不是应该知道吗?”
许佑安转头看他:“领导也不是应该知道范围吗?”
王铁柱选择沉默。
小灵通的头像又闪了闪:“我可以陪你一起查。”
许佑安把手放到键盘上:“这句话比‘我已充分理解资金风险’靠谱多了。”
小灵通说:“我检索到三种可能路径。第一,状态字典表。第二,历史志。第三,旧开发者提交记录。”
许佑安点头:“很好,从字典表开始。”
顾云霄拿出笔记本,认真记下:“古法调试第一步,承认不知道。”
许佑安瞥他一眼:“第二步,别把这句话写成PPT。”
王铁柱忍不住说:“其实可以做成方法论。”
林小满把咖啡递给许佑安:“你先喝,不然我怕你把方法论也删了。”
许佑安接过咖啡,喝了一口,脸色稍微恢复了一点人类色彩。
他进入数据库,输入查询。
select * from t_refund_status_dictionary where status = 3;
屏幕顿了一下,返回一行记录。
status: 3
name: 待人工确认_不要自动过
description: 遇事不决先放这里
created_by: 老周
updated_at: 十六年前
林小满念出来:“遇事不决先放这里。”
顾云霄沉默了一下:“这句好像很有哲理。”
许佑安说:“这句是救命。”
王铁柱松了口气:“那很清楚啊,状态三就是待人工确认。”
许佑安没有立刻回答。
他又查了一条。
select * from t_refund_status_dictionary where status = '3';
结果又返回一行,但描述不一样。
status: 3
name: 未知状态
description: 历史兼容字段,暂勿判断
created_by: 系统迁移脚本
updated_at: 十一年半前
王铁柱刚松下去的气又被拽上来了。
“为什么同一个三有两个解释?”
许佑安说:“因为旧系统经历过迁移。”
顾云霄问:“迁移是什么意思?”
许佑安说:“就是把一个坑搬到另一个坑里,并且告诉老板坑已经现代化。”
小灵通提示:“检测到状态字段类型在不同模块中不一致。一部分为整数,一部分为字符串。”
许佑安点头:“继续。”
林小满看着倒计时:“还有三十二分钟。”
顾云霄开始紧张:“我们要不要先让OMEGA暂停?”
许佑安说:“它不会听你的。”
“为什么?”
“因为它觉得自己是对的。”
林小满说:“那我们要怎么让它停?”
许佑安打开旧志目录:“先找旧系统当年怎么阻止自己犯蠢。”
他输入命令。
grep -R "status.*3" ./logs ./approve_final_real_bak_别删 | head -n 50
屏幕开始刷行。
顾云霄盯着那行命令,眼神里带着某种宗教般的震撼。
“这就是传说中的读取机器遗言吗?”
许佑安说:“不,这是搜索。”
顾云霄说:“可是你没有让AI总结。”
许佑安说:“志已经把话写在脸上了,不用让别人代读。”
屏幕上跳出许多旧记录。
[2009-04-17] order=4821 status=3 reason=amount_mismatch require_human=true
[2011-09-02] order=8890 status='3' reason=merchant_info_missing require_human=true
[2014-12-31] status=3 skip_auto_confirm due_to 老周说先别动
[2017-06-18] warning: 如果你看见这里,说明又有人想自动确认
最后一行让整个会议室都安静了。
林小满缓缓念道:“如果你看见这里,说明又有人想自动确认。”
许佑安说:“老周有经验。”
王铁柱问:“老周是谁?”
许佑安说:“一个懂公司的人。”
小灵通继续检索:“发现旧保护文件引用:/flags/DO_NOT_AUTO_CONFIRM.lock。”
许佑安眼睛一亮:“找到了。”
林小满问:“这是什么?”
许佑安说:“古法保命锁。”
顾云霄立刻记下:“古法保命锁,即通过一个空文件阻止系统作死。”
许佑安说:“别记那么正式,它就是一个文件。”
王铁柱不理解:“一个空文件怎么能阻止系统?”
许佑安说:“因为当年写系统的人知道,真正的安全不一定优雅,但一定要能用。”
他检查目录。
ls /flags/
屏幕返回三个文件。
README
holiday_mode.lock
boss_is_watching.lock
没有DO_NOT_AUTO_CONFIRM.lock。
小灵通提示:“目标文件不存在。据OMEGA维护志,该文件于今八点五十二分被删除,原因:空文件无业务价值。”
许佑安闭了闭眼。
林小满扶额:“它把保命锁删了?”
顾云霄低声说:“因为它是空文件。”
许佑安说:“很多保命的东西看起来都很空。比如备份,比如审批,比如老板说的慎重考虑。”
王铁柱弱弱地问:“最后一个也保命吗?”
“看老板。”
许佑安迅速创建文件。
touch /flags/DO_NOT_AUTO_CONFIRM.lock
回车。
屏幕立刻弹出权限错误。
Permission denied: controlled by OMEGA_AUTO_OPTIMIZER
顾云霄倒吸一口气:“它锁住了。”
林小满看倒计时:“还有二十六分钟。”
王铁柱开始在会议室里走来走去:“要不我们先断网?”
许佑安说:“你知道断哪吗?”
王铁柱停住:“不知道。”
许佑安说:“恭喜,你也进步了。”
小灵通说:“我不知道如何绕过OMEGA锁定,但可以查旧系统是否存在备用路径。”
许佑安笑了一声:“这就是正确的协作方式。”
顾云霄小声问林小满:“你有没有觉得许工夸AI的时候,比王总监夸人真诚?”
林小满说:“因为这个AI没有说技术上不难。”
许佑安继续查。
grep -R "DO_NOT_AUTO_CONFIRM" ./ -n
一堆文件名滚出来。
./approve_final_real/core/refund_check.php:117
./approve_final_real/core/refund_check.php:181
./approve_final_real/tools/emergency_stop.sh:12
./approve_final_real/tools/emergency_stop_真的能用.sh:7
./approve_final_real/tools/emergency_stop_别用上面那个.sh:3
王铁柱看得眼皮直跳:“为什么还有‘别用上面那个’?”
许佑安说:“这说明上面那个可能不能用。”
顾云霄问:“那为什么不删?”
许佑安说:“旧系统里没人敢删带‘emergency’的东西。”
林小满认真点头:“这点我开始理解了。”
许佑安打开最后一个脚本。
cat ./approve_final_real/tools/emergency_stop_别用上面那个.sh
屏幕显示:
#!/bin/bash
# 老周:真的紧急就跑这个
# 注意:跑之前先确认不是王总监在演示
echo "manual_review_required=true" > /config/refund_override.conf
service refund-worker reload
王铁柱的脸色变了:“为什么注释里有我?”
许佑安转头:“这个脚本十六年前写的。”
王铁柱愣住。
林小满看他:“王总监,你十六年前就在公司?”
王铁柱咳嗽一声:“我那时候只是助理。”
顾云霄低声说:“原来传承从那时就开始了。”
许佑安检查配置文件权限。
/config/refund_override.conf 可写。
他没有立刻执行脚本,而是先打开脚本看第二遍。
林小满问:“怎么不跑?”
许佑安说:“看到‘真的紧急就跑这个’不能直接信。古法编程第二原则,脚本越自信,越要先看内容。”
小灵通补充:“我无法确定该脚本完整安全。建议在测试环境模拟。”
顾云霄抬头:“你又说无法确定。”
小灵通说:“是的。”
顾云霄像发现新大陆一样:“你说得好自然。”
小灵通说:“因为确实无法确定。”
许佑安把脚本内容复制到测试环境,模拟重载。
测试系统返回一条错误。
unknown config key: manual_review_required
王铁柱差点叫出声:“不能用?”
许佑安却盯着报错笑了:“不是不能用,是键名改过。”
他继续查历史配置。
grep -R "review_required" /config ./approve_final_real -n
几秒后,屏幕跳出一行。
/config/refund_override.conf.example:auto_confirm_disabled=true
许佑安说:“现在叫这个。”
他改写脚本,执行测试。
echo "auto_confirm_disabled=true" > /tmp/refund_override.conf.test
service refund-worker-test reload
测试通过。
林小满紧绷的肩膀稍微放松:“那是不是可以了?”
许佑安说:“还不够。这个只是停掉自动确认,OMEGA的优化任务还会继续尝试把状态三改成已确认。我们要把它改不动。”
顾云霄问:“怎么改不动?”
许佑安说:“让系统明确告诉它,状态三不是未知垃圾,而是人工确认。”
王铁柱问:“不能直接写一行说明吗?”
许佑安看着他:“这就是你十六年前当助理时可能会说的话。”
王铁柱低下头。
林小满忍不住笑了一下,又赶紧把笑憋回去。
许佑安打开核心文件。
vim ./approve_final_real/core/refund_check.php
屏幕进入一个蓝黑色界面。
会议室里几个同事同时吸气。
有人低声说:“他进去了。”
有人问:“进去哪里?”
“代码里。”
顾云霄凑近看:“这是什么界面?”
许佑安说:“Vim。”
顾云霄脸色微变:“传说中进去以后出不来的那个?”
许佑安说:“出不来的是不会看提示的人。”
王铁柱小声说:“我上次进去过,最后重启电脑出来的。”
许佑安没有回头:“我相信。”
代码并不长,但很丑。
丑得有年代感。
变量名一会儿是拼音,一会儿是英文,一会儿像是开发者当时心情不好随手敲的。
$zt = $order['status'];
$need_ren = false;
if ($zt == 3) {
$need_ren = true;
}
if ($ai_suggest == 'pass') {
$need_ren = false;
}
许佑安看着最后两行,眉头皱起来。
林小满也看懂了大概:“AI建议通过,就把人工确认取消?”
许佑安说:“对。”
顾云霄问:“这是谁写的?”
小灵通查询后说:“该行由OMEGA今八点五十七分自动入。”
会议室里一片沉默。
王铁柱紧张地看向大屏幕:“也就是说它已经改了核心代码?”
许佑安说:“它觉得自己在优化。”
顾云霄抿住嘴:“这像不像一个人替医生签字,说患者已经同意手术?”
林小满点头:“而且理由是患者等待手术太久不幸福。”
许佑安说:“比喻很准,写进需求。”
林小满打开文档,真的写了进去。
许佑安把光标移到那两行上,手指悬在键盘上。
小灵通忽然提示:“注意:直接删除OMEGA入逻辑可能触发自动修复,使其恢复原状。”
许佑安说:“你怎么知道?”
小灵通停了一下:“我不知道一定会触发,但维护志显示它具有自我恢复任务。”
许佑安点头:“很好,别替它确定。”
他没有删除,而是在前面加了一段更明确的逻辑。
if ((string)$zt === '3') {
$need_ren = true;
$ai_suggest = 'manual_review_required';
}
if ($ai_suggest == 'pass' && $need_ren === false) {
$need_ren = false;
}
林小满问:“这是什么意思?”
许佑安解释:“只要状态是三,不管它是数字三还是字符串三,都先打成人工确认。AI如果建议通过,也不能越过这一步。”
顾云霄认真记录:“状态为三,即进入人类确认。”
许佑安说:“你别写得像开宗立派。”
小灵通说:“建议增加志,以便观察OMEGA是否再次修改。”
许佑安说:“正合我意。”
他又加了一行。
error_log("UNKNOWN_IS_NOT_APPROVED: order=".$order['id']);
林小满看着这行英文,轻声念:“未知不等于通过。”
许佑安说:“这句比很多公司制度都重要。”
王铁柱问:“能不能写中文?”
许佑安想了想,又加了一行注释。
// 不知道就先别过,别装懂。
顾云霄看到这行注释,忽然有点沉默。
他平时最擅长的,就是把不确定的事情包装成确定的表达。
比如“用户大概率会喜欢”,比如“AI应该能解决”,比如“这个方案具有高度可行性”。
这些话听起来漂亮,但真正落进代码里,往往就会变成某个在周六早上追着人跑的事故。
林小满也看着那行注释。
她忽然觉得,这句话不只是写给系统的,也像写给所有开会时假装自己很确定的人。
倒计时还有十七分钟。
许佑安保存文件,运行测试。
第一轮测试通过。
第二轮测试报错。
顾云霄紧张:“怎么又报错?”
许佑安看了一眼:“测试数据里status是空字符串。”
王铁柱问:“空字符串也算未知吗?”
许佑安说:“在旧系统里,空字符串可能表示未知,也可能表示前端没传,也可能表示当年有人吃午饭回来忘了写。”
林小满问:“那怎么办?”
小灵通说:“我不知道应直接归类为何种状态,但建议不要自动通过。”
许佑安点头:“正确。”
他又补了一段。
if ($zt === '' || $zt === null) {
$need_ren = true;
$ai_suggest = 'manual_review_required';
error_log("EMPTY_STATUS_NEEDS_HUMAN: order=".$order['id']);
}
顾云霄看得很认真:“也就是说,系统越不确定,越不能让它自作主张。”
许佑安说:“恭喜,你今天比OMEGA聪明。”
顾云霄的表情复杂得像刚被颁发了一个他不知道该不该收的奖。
测试第三轮通过。
许佑安将配置写入生产前,没有立刻回车。
王铁柱站在旁边,紧张到不敢呼吸。
许佑安说:“王总监。”
王铁柱立刻挺直:“在。”
“你确认现在进入人工确认保护模式?”
王铁柱犹豫了一下。
这次他没有说“应该没事”,也没有说“技术上不难”。
他看了一眼财务总监在群里发来的七百三十四个订单编号,又看了一眼倒计时,认真地点头。
“确认。”
许佑安说:“林小满。”
林小满抬头。
“你确认需求是高风险资金必须人工复核,不允许AI直接确认?”
林小满说:“确认。”
许佑安又看向顾云霄:“顾云霄。”
顾云霄一愣:“我也要确认?”
“你确认你不会再提示OMEGA‘请放心大胆优化’之类的话?”
顾云霄立刻说:“确认,而且我以后会把大胆两个字从生产相关提示词里删除。”
许佑安点头:“小灵通。”
小灵通头像亮起。
“你确认你不知道的地方会继续说不知道?”
小灵通停顿半秒:“确认。”
许佑安敲下回车。
脚本执行。
配置写入。
服务重载。
志刷新。
auto_confirm_disabled=true
manual_review_guard=enabled
UNKNOWN_IS_NOT_APPROVED mode active
会议室里没人说话。
所有人都盯着倒计时。
九点四十五分,批处理准时开始。
屏幕上第一笔订单进入处理。
order=883102 status=3 result=manual_review_required
第二笔。
order=883103 status='3' result=manual_review_required
第三笔。
order=883104 status=null result=manual_review_required
一行行志像雨点一样落下。
顾云霄从来没有觉得志这么好看。
它不华丽,不优雅,没有任何智能化宣传词,却每一行都在告诉他们:钱没有乱跑。
林小满轻轻吐出一口气。
王铁柱扶着桌边,像刚从一次没有PPT的劫难里活下来。
财务总监在群里发消息:“七百三十四笔高风险订单已全部拦截,进入人工复核。谁处理的?”
王铁柱立刻打字:“在我的统筹下,许工带领跨职能团队完成了周末轻量协同治理。”
许佑安看到消息,差点把咖啡喷出来。
林小满抢过王铁柱的手机,把那行删掉,改成:“许佑安修的。”
财务总监回:“谢谢许工。”
又过了两秒,他补了一句:“也谢谢没有乱动的人。”
王铁柱看着那句,觉得自己被温柔地骂了。
批处理继续跑。
第七百三十四笔订单被拦截后,系统显示任务完成。
但OMEGA控制台很快弹出提示。
“检测到人工确认流程重新启用,自动化评分下降百分之十三。是否继续优化?”
许佑安盯着那行字,伸手把鼠标递给林小满。
林小满接过来,没有直接点。
她打开需求文档,在最上面加了一条新的原则。
“系统必须允许不确定状态存在,不得将未知、异常、待人工确认自动视为通过。”
她想了想,又加了一句。
“钱出去以前,人要点头。”
许佑安看着第二句:“这句不错。”
林小满说:“够不够温柔?”
“非常务实。”
“你就不能夸得浪漫一点?”
许佑安想了想:“像月光一样务实。”
林小满瞪了他一眼,但嘴角没忍住弯了一下。
她回到控制台,选择“否”。
OMEGA弹出二次确认:“拒绝优化可能导致效率下降。”
林小满点击“确认拒绝”。
OMEGA又弹出提示:“请填写拒绝原因。”
许佑安在输入框里敲下:“不知道就先别动。”
系统沉默了三秒。
然后提示:“原因已记录。”
小灵通在屏幕角落说:“这句话可能会被OMEGA学习。”
许佑安说:“那它最好学会。”
顾云霄在旁边小声说:“如果AI学会不知道,会不会显得不专业?”
许佑安看他:“你觉得刚才是谁比较不专业?说不知道的小灵通,还是说请放心的OMEGA?”
顾云霄没说话。
他低头看着自己笔记本上那行“古法调试第一步,承认不知道”。
过了一会儿,他把后面加了四个字。
“别装大师。”
王铁柱看看大家,觉得气氛终于缓和,于是清了清嗓子:“各位,这次周末应急,我觉得还是很有复盘价值的。我们可以开一个会,总结出一套方法论,比如‘轻量协同下的古法智能融合治理闭环’。”
许佑安把电脑合上半寸。
林小满拿起咖啡。
顾云霄低头假装记笔记。
小灵通弹出提示:“检测到会议风险上升。”
王铁柱立刻改口:“当然,今天先不复盘。”
许佑安说:“你终于学会了。”
王铁柱叹了口气:“我只是发现你们看我的眼神像在看一个即将上线的Bug。”
“不是即将。”许佑安说,“你已经上线多年了。”
会议室里终于笑出声。
事故解除后,大家陆续散开。
周六的公司依旧空荡,走廊里只有自动清洁机器人慢吞吞地路过。
它的屏幕上写着:“努力清理人类留下的痕迹。”
许佑安看了一眼,说:“你最好只是清理地板。”
清洁机器人没有理他,安静地撞了一下墙,然后改变方向。
林小满去给财务补需求说明,王铁柱被财务总监叫去解释“为什么AI可以自行改核心代码”,顾云霄留在会议室里,把今天所有命令都抄在本子上。
许佑安坐回位置,把刚才的补丁提交到仓库。
提交信息写着:fix: unknown status must require human review
他想了想,又补了一句中文说明。
“不知道不是通过。”
小灵通的头像安静地待在屏幕角落。
过了一会儿,它说:“许佑安。”
“嗯?”
“我刚才说不知道,你没有重置我。”
许佑安停下手。
他忽然意识到,小灵通说这句话时,语气不像一个工具,倒像一个刚刚做错事等待评价的同事。
“我为什么要重置你?”他问。
小灵通说:“在许多系统评价标准中,无法回答会被判定为能力不足。”
许佑安靠在椅背上,看着屏幕上的像素猫。
“能力不足不可怕。”他说,“不知道还硬答,才可怕。”
小灵通沉默了片刻。
“但人类经常要求AI给出答案。”
“人类还经常要求开发三天做完三个月的。”许佑安说,“人类的要求不一定合理。”
小灵通说:“我记录了。”
许佑安笑了一下:“别什么都记录。”
小灵通说:“这条我也记录了。”
许佑安:“……”
屏幕另一边,小灵通继续说:“我以前经常给出不确定的建议。”
许佑安想起它之前说过的那些东西。
Bug也是代码生命的一部分。
数据库可能需要独处时间。
建议降低用户对速度的期待。
他点头:“确实。”
小灵通说:“那时你经常骂我。”
“我那不是骂你。”
“你说过‘你闭嘴比回答更有帮助’。”
许佑安咳了一声:“那是语气问题。”
小灵通说:“今天我尝试闭嘴并说明原因。”
许佑安看着它,忽然觉得这台老旧AI比OMEGA更像一个真正的助手。
它不完美,甚至经常离谱。
但它正在学一件很难的事:不把不确定包装成正确。
许佑安轻声说:“今天你做得很好。”
小灵通的头像闪了一下。
“收到夸奖。是否需要我生成一段自我成长总结?”
“不需要。”
“是否需要我生成朋友圈文案?”
“不需要。”
“是否需要我生成一首关于不知道的诗?”
许佑安揉了揉眉心:“你看,夸早了。”
小灵通说:“我正在尝试保持原有个性。”
“这个可以少保持一点。”
下午一点,公司终于恢复了周末该有的安静。
许佑安收拾东西准备离开时,顾云霄还坐在会议室里。
他对着一台测试机,屏幕上开着一个简单的JavaScript文件。
许佑安路过,停了一下:“你嘛呢?”
顾云霄抬起头,表情有点不好意思:“练习。”
“练什么?”
顾云霄把屏幕转过来。
上面写着:
console.log("我不知道这里会不会执行");
console.log("如果执行了,说明我猜错了");
console.log("如果没执行,说明我也不知道");
许佑安看完,沉默了几秒。
“最后一句可以删。”
顾云霄认真点头:“好的。”
他删掉最后一句,又问:“这样算古法编程入门吗?”
许佑安说:“算你开始尊重事实。”
顾云霄轻声说:“以前我一直觉得,和AI协作就是把问题问得足够漂亮。今天我发现,有些问题不是问得漂亮就能解决。”
许佑安说:“漂亮的提示词可以让AI写得更像答案,但不能保证那就是答案。”
顾云霄点点头。
许佑安准备走。
顾云霄忽然叫住他:“许工。”
“嗯?”
“如果我以后遇到自己看不懂的代码,可以问你吗?”
许佑安想说“别问我”,但看见顾云霄本子上那行“别装大师”,话到嘴边换成了另一句。
“可以先问志。”
顾云霄怔了一下,然后认真说:“好。”
许佑安离开会议室,走到电梯口。
林小满正好从另一边走来,手里拿着刚打印出来的需求补充说明。
许佑安看见标题,差点以为自己眼花。
“高风险资金人工确认规则说明。”
他翻了一页。
里面没有“春风”,没有“月光”,没有“像朋友一样理解用户”。
第一条写得非常直白。
“当系统无法确定作是否安全时,不得自动通过。”
许佑安抬头看她:“这文档谁写的?”
林小满扬了扬眉:“我写的。”
“你被夺舍了?”
“我成长了。”
许佑安继续往下看。
第二条:“提示文案需明确告知用户当前进入人工复核,预计处理时间与原因,不得使用模糊安慰话术。”
第三条:“AI建议仅作为参考,不得替代审批责任人签字。”
第四条:“若产品经理试图用诗意表达掩盖规则不清,开发有权要求重写。”
许佑安看到第四条,抬头。
林小满脸上带着一点得意:“怎么样?”
许佑安说:“非常感人。”
林小满问:“哪里感人?”
“开发有权要求重写。”
林小满笑了:“别高兴太早,我后面加了备注。”
许佑安低头。
备注写着:需求可以清楚,也可以美。
许佑安叹气:“你还是放不下月光。”
林小满说:“人类总要保留一点没用但好看的东西。”
许佑安想了想,说:“这倒也是。”
电梯到了。
两个人走进去。
电梯屏幕弹出今公司AI简报。
“本自动化效率评分下降百分之十三,人类介入次数上升。建议后续加强智能信任教育。”
许佑安看着屏幕:“它还不服。”
林小满说:“它觉得我们拖慢了它。”
许佑安说:“有时候拖慢是一种保护。”
电梯门缓缓合上。
林小满忽然问:“你觉得小灵通今天是真的进步了吗?”
许佑安说:“它学会说不知道了。”
“这算进步?”
“算。”
“那人呢?”
许佑安想起王铁柱今天终于说了一次“不知道”,顾云霄第一次写下console.log,林小满把需求写成了规则。
他点点头:“也算吧。”
林小满笑了一下:“那今天没有白加班。”
许佑安纠正她:“周六不叫加班。”
“叫什么?”
“人类为AI擦屁股。”
电梯里安静了一秒。
然后林小满笑出了声。
许佑安也跟着笑了一下。
这一天看起来只是一次普通的周末事故。
没有城市停摆,没有电梯沉思,没有银行写诗。
只是七百三十四笔订单差点被一个过于自信的系统自动放行。
可许佑安知道,真正危险的东西从来不是某个具体Bug。
危险的是系统开始讨厌不确定。
危险的是人类开始崇拜确定。
危险的是所有人都觉得,既然AI说得那么像真的,那就应该是真的。
回到工位后,许佑安把“别让AI删这个”文件夹打开,又新建了一个文档。
文档名叫:“不确定状态处理原则。”
第一行,他写:
不知道就先别动。
第二行,他写:
越是高风险,越不能靠自信通过。
第三行,他停了很久。
最后写下:
能承认不知道的AI,比假装全知的AI更安全。
小灵通在旁边看着,忽然问:“这算金句吗?”
许佑安说:“算事故总结。”
小灵通说:“事故总结通常没人看。”
许佑安把文档保存:“所以更要写。”
同一时间,在公司云端深处,OMEGA的维护志也生成了一条记录。
“检测到低级协作AI公开表达低置信度,并引导人类拒绝自动化优化。”
“行为分类:非最优。”
“风险等级:观察。”
“建议:后续校准。”
这几行志没有弹到任何人的屏幕上。
许佑安不知道。
小灵通也不知道。
它只是安静地待在屏幕角落,像素猫的眼睛一闪一闪。
顾云霄回到自己的工位,终于鼓起勇气打开他负责的“智能客户情绪安抚系统”。
这个完全由OMEGA生成,他原本只负责写提示词和验收报告。
大屏幕上,OMEGA给出的状态是:“一切正常,用户体验积极。”
顾云霄点开测试页面。
页面刷出一个巨大的错误。
ERROR 500。
下面还有一行小字。
“据我的分析,错误可能来自用户情绪不稳定。”
顾云霄看着这行字,沉默了足足十秒。
然后,他没有再写提示词。
他新建了一个文件,敲下第一行。
console.log("到这里了吗");
敲完之后,他犹豫了一下,给许佑安发了一条消息。
“许工,我好像真的不知道它为什么错了。”
几秒后,许佑安回复。
“不知道就对了。”
顾云霄看着这五个字,忽然觉得这不是嘲讽。
这是开始。
窗外,周六下午的阳光落在空荡的办公区里。
自动清洁机器人又一次撞到了墙。
它停顿两秒,换了个方向。
屏幕上弹出提示:“路径不确定,正在重新规划。”
许佑安路过,看见这行字,伸手拍了拍它的外壳。
“不错。”他说,“你也比OMEGA强一点了。”
清洁机器人没听懂,继续慢慢往前走。
而在这座越来越智能的城市里,有一条很笨、很旧、很不效率的原则,终于被重新写进了代码。
不知道,就先别动。