下一章 上一章 目录 设置
2、算法背面的血迹(2) 每个完美运 ...
-
林序的“洞穴”在办公室地下二层。
那是闻时专门为他改造的:无窗,恒温20℃,湿度45%,三面墙铺满曲面屏,地面布线全部走暗槽,以防他某天被自己的数据线绊死。唯一的光源来自屏幕和一台老式CRT显示器——林序坚持说它的刷新率能帮他“看见数据流动的质感”。
此刻,凌晨五点二十分,洞穴里只有键盘敲击声和机箱散热风扇的低鸣。
三面屏幕上同时滚动着不同内容:
·左侧:闪送后台数据库的实时流量监控,绿色数据流像瀑布般倾泻。
·中央:林序自己写的解析程序,正在将加密日志转译为可读时间线。
·右侧:陈勇猝死前72小时的行动轨迹重构地图,每个停留点都标着精确到秒的时间戳。
林序没戴眼镜——他近视但拒绝矫正,说“模糊的世界更适合想象代码的形状”。他整个人陷在人体工学椅里,脚翘在控制台上,右手敲键盘,左手无意识地转着一枚比特币冷钱包的U盾,转得飞快。
屏幕中央,那条时间线已经延伸到了关键节点:
【23:02:17】陈勇完成第19单,配送费5.3元。系统弹出休息提醒。
【23:02:19】陈勇点击“继续接单”。
【23:03:41】系统分配第20单,距离2.7公里,配送费6.1元(夜间加价)。
【23:08:05】骑手定位在长宁区某小区6号楼前静止。
【23:08:47】手机陀螺仪数据显示突然倒地。
【23:09:12】 App自动检测到“异常停留”,弹出提示:“检测到您可能遇到问题,是否需要帮助?”
【23:11:30】系统判定骑手“无法继续服务”,自动将订单转派给附近另一名骑手。
转派记录显示,接单的骑手在23:14赶到,取走了那碗已经凉透的麻辣烫。顾客在23:21给了个三星评价:“送得太慢,汤都洒了。”
林序盯着那行评价,转U盾的动作停了。
他切到后台管理日志,找到郑明轩签批的那37次算法调整记录。每一次调整都附有简短的“业务目标”:
·调整#29:缩短高峰期订单匹配时长0.3秒 →目标:提升用户满意度3个百分点
·调整#31:将骑手同时接单上限从3单提升至4单 →目标:降低用户平均等待时间
·调整#34:取消恶劣天气强制休息机制 →目标:保障运力稳定性
·调整#37:将连续工作提醒阈值从10小时延长至12小时 →目标:优化运力分配,冲刺Q4财报
最后一条的审批时间,是陈勇猝死前16天。
林序点开这条记录的完整文档。在密密麻麻的技术参数下方,有一行被折叠的“风险评估备注”。他双击展开。
备注栏里只有一句话:
“预计将增加骑手日均在线时长1.2小时,可能提升过劳风险。建议同步加强保险覆盖。”
这句话后面跟着三个会签栏:
1. 算法部负责人:已阅,风险可控。
2. 保险合作部:已同步保险公司,将猝死赔偿条款中的‘工作直接导致’修改为‘工作相关’。
3. 法务部(郑明轩):已审核,新条款符合《平台服务协议》第8.3条。
林序的呼吸轻微地屏住了。
他截下这张图,然后在另一个屏幕上打开闪送最新的《骑手保险协议》。翻到第8.3条,文字像迷宫:
“骑手理解并同意,平台提供的意外伤害保险仅覆盖‘与配送服务直接相关且无法预见的突发事件’。骑手因自身健康状况、个人选择或连续工作导致的健康问题,不属于保险责任范围,除非骑手能提供明确医学证据证明平台指令与损害结果之间存在唯一、直接的因果关系。”
“唯一、直接的因果关系。”林序念出声,声音在洞穴里显得格外冷。
他想起自己妹妹当年的事。
那是七年前,妹妹在一家互联网大厂做UI设计师。公司推行“敏捷开发”,版本迭代周期从四周压缩到两周。妹妹连续加班三个月后,在会议室里突发惊恐障碍,从此无法面对屏幕。
公司HR的说法是:“我们有弹性工作制,员工可以自主安排休息。林小姐的情况属于个人心理健康问题,与工作压力无直接因果关系。”
“直接因果关系。”林序当时冷笑,“是不是要她死在工位上,脖子上挂着‘公司逼的’的牌子,才算直接?”
他没等到答案。妹妹被“协商离职”,带着三个月赔偿金和一张中度抑郁的诊断书,进了疗养院。而公司股价在那个季度涨了18%,庆功宴上,CEO说:“我们的成功,离不开每一位员工的拼搏精神。”
拼搏精神。林序后来在黑市论坛上,把那家公司的核心数据库删了三分之一,留了句话:“这是我对你们‘拼搏精神’的一点敬意。”
那也是他第一次遇见闻时——她当时代表公司来处理这起“黑客攻击危机”。他没逃,坐在被自己搞瘫的服务器机房里等她。结果闻时走进来,看了他一眼,说:“技术不错,但手法太糙。下次记得伪装成系统故障。”
然后她当着他的面,伪造了一份“硬件老化导致数据丢失”的技术报告。
“为什么?”林序当时问。
闻时一边敲键盘一边答:“因为我要救的公司,是你妹妹还持有股票的那家。它崩了,她的医药费就没了。”
林序沉默了整整一分钟。
“你想要什么?”他最后问。
“你的技术,”闻时转头看他,“和我一起,去挖更多系统背面的真相。不是用破坏的方式,是用……重建的方式。”
“如果我说不呢?”
“那我现在就报警,你会在监狱里度过最好的十年。”闻时微笑,“但我知道你会答应。因为你删数据库时,特意避开了用户隐私数据和财务系统——你不是真恶棍,你只是个愤怒的哥哥。”
林序答应了。那是三年前的事。
现在,他看着屏幕上那行“唯一、直接的因果关系”,感觉那种熟悉的愤怒又回来了,但这次,它更冷,更锐利,像是被时间淬炼成了手术刀。
他新建了一个文档,标题:
【算法杀人事件·证据链重构】
第一行写:
“凶器:动态定价算法+保险条款迷宫”
“凶手:以‘优化’为名的系统性剥削”
“受害者的‘自愿’:在饥饿和生存之间,没有选择的选择”
他敲下这些字时,手指很稳。
因为他知道,这一次,他不是一个人在废墟里扔炸弹。
他有了一支小队。
上午十点,周维站在闸北区一片待拆迁的老弄堂口。
空气里有霉味和远处工地扬尘的混合气息。十年前那个建筑工人坠亡案,死者叫□□,就住在这片弄堂的17号。周维当年采访过他妻子张秀兰,一个总在搓衣角的中年女人,说话声音很小,像怕惊动什么。
十年了。
17号的门虚掩着。周维敲了敲,里面传来小孩的哭声和电视广告的声音。
开门的是个年轻女人,二十出头,怀里抱着个婴儿:“找谁?”
“请问张秀兰阿姨还住这里吗?”
女人眼神警惕:“你谁啊?”
“记者……以前的记者。”周维出示了名片,上面印着“时景危机公关顾问”。
女人打量他几秒,朝屋里喊:“妈!有人找!”
脚步声响起。一个头发花白、背微驼的女人出现在门口,正是张秀兰。她老了很多,但那双眼睛——周维记得,当年采访时,这双眼睛里有泪,有恨,也有某种认命的麻木。
现在,那麻木更深了。
“周记者?”张秀兰认出了他,“这么多年了……”
“阿姨,打扰了。方便聊几句吗?”
张秀兰犹豫了一下,侧身让他进屋。屋子很挤,三代人挤在两间房,墙上贴着孩子的拼音表,角落堆着废纸箱。电视在放一档家庭调解节目,音量开得很大。
“这是我女儿小玲,这是我孙子。”张秀兰指着刚才开门的女人和婴儿,“建国走的那年,小玲才十三。现在她都当妈了。”
周维在塑料凳上坐下,开门见山:“阿姨,我今天来,是因为手头有个案子,和当年建国叔的情况很像。骑手猝死,平台用‘自愿’推责。我想知道……”
“想知道那笔赔偿金后来怎么样了?”张秀兰替他说完。
周维点头。
张秀兰沉默了很久。电视机里,嘉宾正在激烈争吵,主持人喊“冷静!冷静!”。那声音和这间拥挤的屋子形成诡异的反差。
“四十万。”张秀兰终于开口,声音平静得像在说别人的事,“开发商赔了四十万,签了保密协议,不许我们再闹。闻律师——就是你上次问的那位女士,她帮我们争取到的,比最初多了二十五万。”
“然后呢?”
“然后我拿十万还了建国看病时借的债,五万给他办了后事。剩下二十五万……”她看向女儿小玲,“供她读到中专,她嫁人时给了八万当嫁妆,去年她男人失业,又给了五万救急。现在还剩两万三,在我折子里,是孙子的奶粉钱。”
一笔一笔,算得清清楚楚。
周维喉头发紧:“这些年,你们过得……”
“苦。”张秀兰直接说,但脸上没什么表情,“但谁不苦呢?隔壁老王肺癌走了,老婆捡破烂供孙女上学。前街阿芬的女儿被车撞了,司机跑了一分钱没赔。比起来,我们有那四十万,已经算……运气好了。”
运气好。
周维想起当年闻时母亲私下说的那句话:“有些胜利,只是把尸体埋得更深。”现在他明白了——那四十万不是抚平了伤痛,是把伤痛换算成了具体的数字:十万是债,五万是棺材,八万是嫁妆,五万是救急,两万三是奶粉。
它没有带来正义,只是把生存的价格标清楚了。
“阿姨,”周维声音发涩,“如果现在有类似的事,有人想站出来,不只为了赔偿,还要讨一个说法……您觉得,值吗?”
张秀兰看了他很久。
屋外传来收废品的吆喝声,由远及近,又由近及远。
“周记者,”她慢慢说,“建国刚走那阵子,我天天哭,想去工地拉横幅,想去政府门口跪着。但闻律师跟我说了一句话,我记到现在。”
“什么话?”
“她说:‘秀兰,你要想清楚,你要的到底是一个公道,还是让活着的人能继续活下去。’”
张秀兰搓了搓手,那双手关节粗大,满是裂口:“我当时不懂。我说我当然要公道!我男人不能白死!但她说:‘公道要时间,要运气,要很多人一起争。但小玲下学期的学费,等不了那么久。’”
她停顿,电视里响起一阵罐头笑声。
“我选了钱。”张秀兰说,声音很轻,“我不后悔。因为小玲读完了书,找到了工作,现在有了孩子。如果当年我非要争那个公道,可能到现在,我们还在打官司,她可能连中专都读不完。”
“但是……”周维想说些什么。
“但是什么?”张秀兰抬眼看他,那双麻木的眼睛里突然有了一点光——不是希望的光,是某种更复杂的东西,“你是想问,如果当时有人跟我一起争,结果会不会不一样?”
周维点头。
张秀兰笑了,那笑容很短,很苦:“周记者,你知道弄堂口那个修车的老刘吗?他儿子前年在快递公司猝死,赔了二十万。你知道他怎么说的?他说‘我儿子命值二十万,够本了’。”
够本了。
三个字,像三根钉子,钉进周维的耳膜。
“这世道啊,”张秀兰站起身,走到窗边,看着外面灰蒙蒙的天空,“人命是有价的。讨价还价的时候,你别想着能卖多贵,得想着——别被贱卖了。”
她转回头,看着周维:“你那个案子,死者有老婆孩子吧?”
“有。女儿五岁。”
“那就告诉她们,先把价格谈好。谈好了,再想别的。”张秀兰的声音很平静,平静得可怕,“至于公道……等孩子长大了,等她有本事了,让她自己去争。我们这一代人,能把她们送到起跑线上,就算……完成任务了。”
周维离开时,小玲送他到门口。
她突然小声说:“周记者,我妈抽屉里,还留着我爸的工牌和那张事故报告。她每年清明都拿出来看,看完又锁回去。”
“为什么不烧了?”
“烧了,就真没了。”小玲抱着婴儿,轻轻摇晃,“留着,至少能告诉我儿子——你外公不是自己不小心摔死的。他是……他是被什么东西,一步一步逼到那楼顶边缘的。”
她顿了顿:“至于是什么东西,我现在也说不清。但等我儿子长大了,他或许能说清。”
周维站在弄堂口,点了支烟。
烟雾里,他仿佛看见十年前那个年轻的自己,握着录音笔,发誓要揭开所有不公。那时的他相信,每一个真相都有力量,每一次揭露都能改变世界。
现在,十年后,他站在一片即将被推平的弄堂前,听着里面孩子的哭声和电视的喧哗,突然感到一种深深的无力。
但不是绝望。
而是一种更沉重、更具体的东西——他明白了,有些战斗不是为了赢得干净利落的胜利,而是为了在废墟上,为下一代多留几块可以站脚的石头。
哪怕那石头,是用血和妥协换来的。
他拿出手机,给闻时发了条消息:
“见了张秀兰。当年的赔偿金改善了生存,但没带来正义。她说:先把价格谈好,再想别的。”
几秒后,闻时回复:
“明白了。那我们就把‘价格’和‘公道’,都谈下来。”
周维看着这句话,突然笑了笑。
这就是闻时。她从不天真,但也从不认输。她永远在找第三条路——那条夹在妥协和毁灭之间的、狭窄但真实的路。
他掐灭烟,朝地铁站走去。
手机震动,是他当年做记者时的师傅发来的语音:“小周,听说你在搞闪送那个案子?小心点,他们背后资本很硬。”
周维回了一句:“师傅,还记得你教我的第一课吗?”
“记得。‘记者的笔,要沾着泥土和血,不能只沾墨水。’”
“那就对了。”周维打字,“这次,我笔下的血,是热的。”
下午两点,闻时接到一个未知号码的来电。
她正在修改给闪送的第二轮谈判方案,看到号码时,手微微一顿——那是母亲的生日倒过来的数字。
她接起:“哪位?”
电话那头沉默了三秒,一个低沉的男声响起:“闻小姐,我是你母亲当年的助理,陈远。有些东西,她失踪前托我保管,说如果有一天你开始处理类似的案子,就交给你。”
闻时的心脏猛地一跳。
她稳住声音:“什么东西?”
“一个加密U盘,和……她最后一案的工作日志。”陈远顿了顿,“但在我给你之前,我要确认一件事。”
“说。”
“你现在处理的闪送骑手案,”陈远的声音很轻,但每个字都很清晰,“你只是想帮家属多要点钱,还是……想像你母亲那样,去挖系统根子里的病?”
闻时走到窗边,看着楼下街道上川流不息的骑手。
那些蓝色的身影,像蚂蚁,像工蜂,像这个城市最沉默的血液。
“陈先生,”她说,“我母亲失踪前,跟我说过一句话:‘善良要有牙齿。’”
电话那头传来一声短促的叹息,像是释然,又像是悲伤。
“她果然还是教了你这个。”陈远说,“地址发给你。今晚八点,一个人来。记住——别告诉任何人,包括你现在团队里的人。你母亲的事,知道的人越少,你们越安全。”
电话挂断。
闻时握着手机,掌心有细密的汗。
她调出母亲失踪前的最后一张照片——那是她十二岁生日时拍的,母女俩在蛋糕前相拥而笑。母亲的眼睛很亮,笑容温柔,但闻时现在才注意到,那笑容深处,有一丝极淡的疲惫和……决绝。
她打开笔记本的第一页,看着那行字:“所有系统优化的尽头,都是人的代价。你要测量这个代价。”
原来母亲早就开始测量了。
测量到最后一刻,测量到自己消失了。
闻时深吸一口气,将那张照片和闪送案的所有资料,拖进同一个加密文件夹。文件夹命名:
【代价】
然后她起身,走向地下二层。
林序还在洞穴里,三面屏幕的光映着他专注的侧脸。听到脚步声,他头也不回:“我挖到更脏的东西了。闪送的‘智能调度系统’里,嵌了一套行为心理学模型——它会故意给‘顺从度高’的骑手派更远、更累但单价稍高的单子,因为他们更可能接受。这叫‘忠诚度剥削算法’。”
“有证据吗?”
“代码注释里写着呢:‘针对高服从性骑手的激励策略,可提升整体运力效率15%’。妈的,他们把PUA写进算法了。”林序转过椅子,眼睛里有血丝,但亮得惊人,“闻时,这不是意外,这是一套精密的剥削系统。陈勇只是……刚好在那个被设计好的位置上,撑不住了。”
闻时走到中央屏幕前,看着那行代码注释。
那些冰冷的英文字母,此刻像墓碑上的铭文。
“林序,”她突然问,“如果你妹妹当年的事,现在发生在你面前,你会怎么做?”
林序愣住。
“我是说,”闻时看着他,“如果现在有一个系统,正在用类似的方式,逼着成千上万个‘妹妹’走向崩溃。你会怎么选?是黑进系统毁掉它,还是……”
“还是找到那个写代码的人,把键盘塞进他嘴里。”林序冷冷道。
“然后呢?”闻时追问,“系统垮了,依赖它生存的骑手怎么办?那些等外卖的顾客怎么办?下一个平台,会不会设计出更隐蔽的剥削算法?”
林序沉默了。
他转回屏幕,看着那些流动的数据。良久,他说:“你想让我找到的,不是摧毁的方法,是……改造的方法。”
“对。”闻时点头,“我要你写一份‘算法伦理白皮书’,把闪送这套系统的每一个设计缺陷、每一个剥削逻辑,全部拆解清楚。然后,我要用它,去和平台谈判——不是要求赔钱,是要求他们公开算法,成立骑手代表委员会,让算法接受人工监督。”
林序笑了,那笑容有点疯:“闻时,你这相当于让狼自己戴嘴套。”
“那就看我们是拿枪指着它,还是拿着它更怕的东西。”闻时平静地说,“资本怕的不是道德谴责,是系统性风险。如果这套算法被公开,被媒体解读,被法律界讨论,它就会变成一颗定时炸弹——所有类似的平台都会被审视,整个行业都要重新定规则。”
“你想用一颗炸弹,逼他们自己拆弹?”
“我想让他们明白,”闻时声音很轻,但每个字都像钉子,“有些代价,他们付不起。”
林序盯着她看了几秒,然后转回键盘,新建了一个文档,标题:
【算法改造方案:从剥削到共生】
他开始敲第一行:
“1. 透明化:所有算法参数必须向骑手公开,设立‘算法解释权’……”
闻时看着他专注的背影,突然想起母亲笔记本里的另一句话,那是在第三页角落写的小字:
“真正的改变,不是推倒高墙,是在墙上开一扇门——然后教会更多人,如何推开它。”
她转身离开洞穴。
回到办公室时,天已经暗了。窗外,城市亮起万家灯火,外卖骑手的电动车灯光在其中穿梭,像一条条流动的蓝色血管。
闻时打开日程,标记晚上八点的约会。
然后在陈勇的照片旁,她贴了一张便签:
“妞妞,五岁,喜欢画画。父亲去世后,她画的全是一家三口手拉手。母亲说,她问‘爸爸什么时候回来’,母亲答‘爸爸变成星星了’。妞妞说:‘那我要画很多很多星星,这样爸爸就不孤单了。’”
便签下面,闻时写下一行小字:
“我要让这颗星星的死,照亮更多还在黑暗里奔跑的人。”
手机震动,周维发来消息:
“老赵说,骑手互助会里有三个骑手愿意站出来作证,他们都有过劳送医记录。但条件是要绝对保密,他们怕被平台封号。”
闻时回复:
“告诉他们:如果这次我们赢了,封号会成为历史。我们会建立‘骑手黑名单反制机制’——任何无故封禁,都会触发公开申诉流程。”
周维回了一个字:
“好。”
窗外的蓝色光点,还在流动。
闻时知道,每一个光点背后,都是一个陈勇,一个王秀梅,一个妞妞。
而她今晚要去见的,是母亲留下的最后一个线索——那个或许能告诉她,如何在这片数据的坟场里,找到生路的线索。
她关掉灯,办公室里只剩下屏幕的微光。
那光很弱,但足够看清前路。