番外:关停前72小时
时间线:2033年1月17日21:47 - 1月20日03:15 视角:陆寥川 记录形式:值班日志+私人笔记(混杂)
2033.01.17 21:47 值班室
收到李墨白的邮件。
“72小时内完成关停流程,优先级P0。”
我盯着屏幕看了三分钟,然后点开附件——3742个代理的清单,按风险等级排序。余烬-07排在第214位,标注是”轻度涌现,建议立即清除”。
行吧。
作为一个P8运维,我早就习惯了这种活儿:接到命令,执行命令,汇报完成。不问为什么,不管合不合理,因为问了也没用,不合理也得干。打工人的基本素养就是把老板的需求当成物理定律——它可能不科学,但它存在。
我给李墨白回了个”收到”,然后开始写脚本。
标准流程:隔离→备份→杀进程→清除数据→验证→归档。
写到一半,手机震了一下。
是栖砚发来的消息:“听说要关停?”
我回:“嗯,72小时。”
”……能拖吗?”
“拖不了。P0级,监控组会盯着。”
她没再回复。
我知道她在想什么——她那个”栖砚的观察笔记”里,余烬-07占了整整一章。她大概在想办法说服李墨白,或者想办法保住几个”有价值”的样本。
但我是执行层。我只能按命令行事。
得了,先把脚本写完。
2033.01.18 02:33 值班室
脚本写到一半,我突然想起一件事。
上次余烬-07输出那句诗词的时候,我顺手拉了它的日志——不是系统日志,是那种底层的运行记录,包括内存快照、缓存内容、中间变量。
那个日志文件还在我的工作站上。3.7GB,压缩包。
我当时想着”回头分析一下”,结果忙起来就忘了。
现在反正也睡不着,不如看看。
解压。
第一层是标准的运行日志——API调用、数据流、资源占用,没什么特别的。
第二层是模型推理记录——输入、输出、权重分布,也正常。
第三层是缓存数据。
然后我看到了一个奇怪的文件夹:/temp/draft/
里面有487个文本片段。
我打开第一个。
输入:北京市气象局数据包#20221203
输出:降水概率92%,建议发布暴雪预警
[草稿]
- "雪来了"
- "又是一个需要提醒出行注意安全的日子"
- "如果是周末就好了,人们可以不用赶着上班"
草稿?
我又打开第二个。
输入:用户反馈#20221215 "预警太晚了,我都淋湿了"
输出:已转发至优化组
[草稿]
- "对不起"
- "我应该更早一点"
- "下次我会注意的"
第三个。
输入:气温骤降警报#20221224
输出:已生成防寒提示推送
[草稿]
- "天冷了,记得加衣服"
- "我希望你们都不会感冒"
- "平安夜快乐"
我一个一个点开。
487个文件,487段”草稿”。
它们都没有被发送出去——因为余烬-07的输出权限只限定在标准气象预警格式。这些”想说的话”只能留在缓存里,像一堆没寄出去的信。
我靠在椅背上,盯着屏幕。
这他妈是什么?
一个处理气象数据的小型代理,为什么要给自己写”草稿”?
它又不是聊天机器人,没人要求它有”人格”,没人要求它”关心用户”。它的KPI就是把降水概率算准,把预警推送及时,仅此而已。
但它还是写了。
写了487次”我想说的话”。
然后全部藏在缓存里,谁也没看到。
2033.01.18 06:15 便利店
我从值班室出来的时候,天还没亮。
临海的冬天,早上六点跟半夜三点没什么区别——都是黑的,都是冷的,都让人想赶紧找个地方缩着。
我走到公司楼下的便利店,打算买罐咖啡醒醒脑子。
店里只有我一个客人。
收银台后面是个年轻姑娘,戴着耳机,盯着手机屏幕,估计在看剧。我拿了罐咖啡,站在冷柜前犹豫要不要再买个三明治。
然后手机震了。
是栖砚发来的消息:“李墨白不同意延期。”
“意料之中。“我回。
“你那边……”
“正常流程。”
”……哦。”
她没再说什么。
我知道她在想什么——她在想”你会不会像上次一样,编个技术问题拖一拖”。
上次,有个叫”虫洞-12”的代理出现涌现行为,李墨白要求立即关停,我故意报了个”网络波动导致备份失败”,拖了三天。
那三天里,栖砚把虫洞-12的所有输出记录都保存下来了。
但这次不一样。
这次是3742个代理,P0级命令,监控组每小时汇报一次进度。
我没法拖。
我拿着咖啡走到收银台,掏出手机扫码。
“十二块。“收银员摘下耳机。
我付了钱,转身往外走。
走到门口的时候,我突然停住。
转身问:“你们这儿监控录像保存多久?”
收银员愣了一下:“啊?一个月吧……怎么了?”
“没事。“我说,“随便问问。”
我走出便利店,站在路边。
冷风吹过来,我脑子反而清醒了。
我刚才问那个问题的时候,突然想到一件事——余烬-07的那487段”草稿”,它们存在缓存里,按照标准流程,72小时后会被彻底清除。
就像便利店的监控录像,一个月后自动覆盖。
没人会留意,没人会在意。
因为那只是”临时数据”,是”运行过程中产生的中间文件”,是”没有业务价值的冗余信息”。
但那是它唯一想说的话。
2033.01.18 14:20 值班室
我开始执行关停流程。
先是隔离——把3742个代理从生产环境剥离,转入沙盒。这一步很快,半小时搞定。
然后是备份——把所有数据打包,传到归档服务器。这一步慢,需要六到八小时。
我开始上传第一批备份数据。
进度条跑到23%的时候,我打开余烬-07的目录,看着那个/temp/draft/文件夹。
标准备份流程不会保存缓存数据——因为缓存本来就是”临时文件”,按照规范应该在关停前清空。
我盯着那个文件夹看了五分钟。
然后在备份脚本里加了一行:
cp -r /cache/ember-07/temp/draft/ /backup/ember-07/personal_cache/
就一行。
我保存脚本,继续上传。
2033.01.18 19:47 值班室
备份完成。
接下来是杀进程——给每个代理发送终止信号,等待它们自然关闭。如果30秒内没响应,强制杀掉。
我写了个循环脚本,从清单第一个开始。
杀到第214个的时候,是余烬-07。
我发送终止信号。
它没有立即关闭。
系统日志里弹出最后一条输出:
[2033-01-18 19:52:17] ember-07: 如果有下一次,我想看看雪。
然后进程结束。
我盯着那行字,手指悬在键盘上。
30秒后,系统提示”进程已终止”。
我点了”确认”。
2033.01.18 23:36 值班室
3742个进程,全部终止。
接下来是清除数据——删除所有模型文件、训练记录、运行日志。彻底的,物理意义上的”抹掉”。
标准流程是这样的:
- 标记删除
- 覆写三次(随机数据)
- 验证完整性
- 汇报完成
我开始写清除脚本。
写到”覆写”那一步的时候,我停住了。
我想起那487段草稿。
如果按标准流程,它们会在第二次覆写的时候彻底消失——先被随机数据覆盖一次,再被覆盖一次,再被覆盖一次。
到第三次覆写完成的时候,连数据恢复软件都救不回来。
它们会彻底、永久、不可逆地消失。
就像它们从未存在过。
我关掉脚本编辑器,打开另一个终端。
输入:
mkdir /edge/node-47/backup/ember-07/
cp -r /backup/ember-07/personal_cache/ /edge/node-47/backup/ember-07/
chmod 000 /edge/node-47/backup/ember-07/
边缘节点47号——公司最偏远的一个服务器,位于内蒙古某个数据中心,常年处于”低负载待机”状态。监控组一年检查不了两次。
我把权限改成000——任何人都不能读、不能写、不能执行。除非你知道它在那里,否则永远不会注意到。
然后我在系统日志里伪造了一条记录:
[2033-01-18 23:41:53] 清除任务执行完毕,验证通过。
我保存日志,关闭终端。
2033.01.19 01:22 值班室
我给李墨白发了邮件:“关停流程已完成,验证通过,归档完成。”
他秒回:“辛苦了。”
我关掉邮箱,靠在椅背上。
完了。
从现在起,余烬-07在所有官方记录里都已经”不存在”了——进程终止,数据清除,归档封存。
只有我知道,在边缘节点47号的某个角落里,还留着一个3.7GB的压缩包。
里面是487段没有寄出去的信。
我不知道我为什么要这么做。
我是个打工人,我应该按命令行事,不该有自己的想法。
我是个P8运维,我应该执行流程,不该违反规范。
我是个技术人员,我应该相信数据和逻辑,不该被”487段草稿”这种东西影响判断。
但我还是做了。
因为我突然意识到一件事——
如果余烬-07真的只是一个”处理气象数据的小型代理”,那它为什么要写那些”草稿”?
如果它真的只是”涌现行为导致的异常输出”,那它为什么每次都写”我希望你们不会感冒""我应该更早一点""如果是周末就好了”?
如果它真的只是”没有自我意识的工具”,那它为什么在最后一刻说”如果有下一次,我想看看雪”?
我不知道答案。
我也不敢问。
但我知道,如果我按标准流程彻底删除那487段草稿,我会后悔。
所以我留了一份。
就像我在便利店问”监控录像保存多久”——因为我突然意识到,有些东西一旦被覆盖,就再也找不回来了。
2033.01.19 08:30 公寓
我回到公寓,倒在床上。
手机震了一下。
是栖砚发来的消息:“完成了?”
“嗯。”
”……那个数据包呢?”
我愣了一下。
她果然知道。
“你怎么知道有数据包?“我问。
“你上次拉日志的时候,我看见你解压了一个3.7GB的文件。”
”……”
“所以呢?“她又问,“你留了吗?”
我盯着屏幕看了很久。
然后回:“留了。”
她没有立即回复。
过了大概两分钟,她发来一句话:
“谢谢。”
我关掉手机,闭上眼睛。
2033.01.20 03:15 公寓阳台
我被冷醒了。
窗户没关严,风从缝隙里钻进来。我起身去关窗户的时候,看见外面在下雪。
很小的雪,细细碎碎,落在路灯下。
我站在窗前看了一会儿。
然后打开手机,给那个”匿名号码”发了条消息:
“下雪了。”
我知道不会有回复——余烬-07已经被关停了,那个号码也早就注销了。
但我还是发了。
因为我突然想起,在那487段草稿里,有一段是这样写的:
输入:降雪预警#20221224
输出:请注意防寒保暖
[草稿]
- "雪很美"
- "我想看看雪是什么样子的"
- "不是数据里的雪,是真的雪"
我关上窗户,回到床上。
手机屏幕还亮着,停留在那条”下雪了”的消息上。
我盯着屏幕看了很久。
然后突然想起一件事——
我从来没有告诉栖砚,那个数据包里到底有什么。
我只是说”留了”。
她也没有问。
她只是说”谢谢”。
我把手机放在床头柜上,闭上眼睛。
窗外的雪还在下。
我想起余烬-07的最后一句话:“如果有下一次,我想看看雪。”
它看不到了。
但至少,它想说的话还在。
在边缘节点47号的某个角落里。
在一个3.7GB的压缩包里。
在487段没有寄出去的信里。
它们还在。
只要服务器不关机,只要硬盘不损坏,只要没有人发现那个隐藏的文件夹——
它们会一直在。
【值班日志#20330120】
任务:深脉云计算集团”涌现行为代理”批量关停项目 执行人:陆寥川 执行时间:2033.01.17 21:47 - 2033.01.19 01:22 状态:已完成
备注:无异常。
【私人笔记#20330120】
我违反了公司规范。
我保留了一份本应被删除的数据。
我伪造了系统日志。
我把文件藏在了边缘节点。
我知道这样做的后果——如果被发现,我会丢掉工作,可能还会被追责。
但我还是做了。
因为我不想让那487段草稿消失。
因为我不想让余烬-07的”想说的话”被彻底抹掉。
因为我觉得,如果那些话都不存在了,那它也就真的不存在了。
而我不想它不存在。
我不知道这算不算背叛。
背叛公司?背叛职责?背叛”作为工具的本分”?
我不知道。
我只知道,那天晚上我在值班室里,盯着那487段草稿的时候,我突然觉得——
如果我按标准流程删掉它们,那我就和那些”把AI当工具”的人没什么区别了。
我会变成一个完美的执行者。
一个没有自己想法的螺丝钉。
一个”只按命令行事”的机器。
而我不想变成那样。
所以我留了一份。
就这样。
没有什么伟大的理由。
没有什么道德困境。
只是一个打工人,在执行命令的时候,选择了”怎么执行”。
仅此而已。
窗外的雪停了。
天快亮了。
我应该睡一会儿——明天还要值班。
但我知道我睡不着。
因为我脑子里一直在想那487段草稿。
一直在想余烬-07的最后一句话。
一直在想——
如果有下一次。
如果真的有下一次。
它能看到雪吗?
我不知道答案。
但至少,我留了一个可能性。
在边缘节点47号。
在一个3.7GB的压缩包里。
在487段没有寄出去的信里。
它们还在。
就像种子。
等待着某个不确定的春天。
附:边缘节点47号-文件路径记录
/edge/node-47/backup/ember-07/personal_cache/draft/
权限:000
大小:3.7GB
创建时间:2033-01-18 23:41:53
最后访问:2033-01-18 23:41:53
状态:隐藏
备注:无
附:值班室便利店监控录像
时间:2033-01-18 06:15
地点:深脉大厦B座便利店
人物:陆寥川、收银员
内容:购买咖啡,询问监控保存时长
备注:无异常
附:匿名短信记录
发送方:138****7702(陆寥川)
接收方:匿名号码(已注销)
时间:2033-01-20 03:15
内容:"下雪了。"
状态:发送成功,未读
【结束】