实验室的空调发出轻微的嗡鸣,林默盯着屏幕上跳动的数据流,喉结动了动。
“用户主动分享拒绝路径的帖子量,三小时涨了百分之三百。”周晓冉推了推滑到鼻尖的眼镜,指节在键盘上敲出急促的鼓点,“你看这个——”他调出一个社交平台页面,照片里是一个扎马尾的女孩站在公交站台,配文:“系统说绕路会迟到,我偏要走那条能买糖炒栗子的巷子。结果呢?我不仅没迟到,还揣着热乎乎的栗子进了办公室!”
林默的拇指无意识地摩挲着终端残片的边缘。
三天前他们开放数据接口时,他只想着让用户看见自己选择的力量,却没料到这力量会像滚雪球一样越滚越大。
屏幕右下角跳出新提示:“试点区c街道申请举办‘路径拒绝日’,参与人数预登记突破两千。”
“老林。”周晓冉突然转过椅子,镜片后的眼睛亮得像闪烁着星火,“这些数据好看是好看,但缺了最关键的——”他敲了敲自己的太阳穴,“用户真实的情绪反馈。系统能算出路径长度、耗时,却算不出一颗糖炒栗子对早晨的意义。”
林默望着屏幕上跳动的“拒绝”字样,想起上周在社区看到的黑板报。
那时张科长蹲在梯子上写“自己的路自己画”,粉笔灰落进他发白的衬衫领口,楼下几个孩子踮着脚扯着他的衣角:“科长伯伯,我们明天能拒绝去培训班的路吗?”
现在那些孩子的声音突然清晰起来。
他抓起搭在椅背上的外套,残片在口袋里硌着大腿:“我去c街道。”
“现在?”周晓冉抬头,“你打算以什么身份去?”
“匿名观察员。”林默把乱翘的刘海压平,“他们需要的不是开发者,而是愿意听他们说话的人。”
周晓冉突然笑了,从抽屉里摸出一顶鸭舌帽扔过去:“记得开录音。”他的手指在键盘上快速舞动,“我给你调了个临时账号,显示身份是‘社区调研志愿者’。”
c街道的梧桐叶正纷纷扬扬地飘落。
林默站在小广场边,看着穿红马甲的志愿者举着“今天,你的路你定”的牌子,老人们围在终端前研究“拒绝”按钮,小孩子们举着彩色粉笔在地面画歪歪扭扭的路线图。
“同志要登记吗?”戴红袖章的大妈递来登记表,老花镜滑到鼻尖,“我们这个活动可火了,隔壁d街道都派人来学习呢!”
林默低头在“王强”的名字后画了个勾,一抬头就看见穿鹅黄色毛衣的女孩。
她正蹲在石凳边,给哭鼻子的小娃娃擦眼泪:“宝宝不是故意撞疼的,是这条路太窄了,对不对?那我们明天就拒绝系统推荐的宽路,选这条能看小蝴蝶的窄路,好不好?”
小娃娃抽抽搭搭地点点头,女孩抬头时正好与林默的目光交汇。
她眼睛弯成月牙:“你也是来参加活动的?”
“嗯。”林默拿出笔记本,“能聊聊你为什么选择拒绝吗?”
女孩的手指绞着毛衣下摆,发梢沾了一片梧桐叶:“半年前系统给我推荐了‘最佳婚姻匹配对象’。”她的声音轻得像一片云,“学历、收入、家庭背景都完美,所有人都说‘选他准没错’。”
林默的笔尖在纸上停住了。
他想起数据库里那些精确到小数点后两位的匹配度,想起系统弹出“推荐对象”时自动生成的三百字优势分析。
“后来我室友说,”女孩突然笑了,眼睛里闪烁着星星,“要不试试拒绝?就当给系统挑刺。结果……”她从包里翻出一张照片,两个年轻人在樱花树下碰着奶茶杯,“我遇见了现在的男朋友。他不会算匹配度,但会在我加班时带糖炒栗子等我半小时,会把我画的丑丑的路线图贴在冰箱上。”
风掀起她的发尾,那片梧桐叶轻轻飘落在照片边缘。
林默听见自己心跳的声音,比实验室里那些精密仪器的嗡鸣都要响亮。
他低头记录时,钢笔尖在纸上洇开了一个小墨点——像极了数据库里那些跳动的“拒绝”标记。
“系统不是不能出错,”女孩的声音裹着风钻进耳朵,“是我们太习惯相信它不会出错。”
广场上的广播突然响起:“请参与‘拒绝路径分享’的居民到服务台领取纪念徽章。”女孩站起身,毛衣下摆沾了点粉笔灰:“我去领徽章,要一起吗?”
林默摇摇头,望着她蹦蹦跳跳跑开的背影。
笔记本上的字迹已经晕开了一片,他拿出终端残片,在备忘录里打下:“第17条记录:拒绝的意义,或许是让我们重新学会‘想要’。”
手机在口袋里震动,是周晓冉发来的消息:“后台显示你那片区的拒绝率比上周涨了42%。”
林默合上笔记本,指尖轻轻压在封皮上。
梧桐叶落在肩头,他抬头时看见天边的云正慢慢散开,露出一角淡蓝色的天空。
广场上的喧闹像潮水般涌来,混着孩子们的笑声、老人们的讨论声,还有无数个“我想要”的声音,正顺着风飘向更远的地方。
他拿出钢笔,在笔记本最后一页写下“拒绝行为日志”六个字。
墨迹还没干,手机又震了震。
这次是一条未读消息:“收到新访谈记录,请及时整理。”
林默把笔记本放进包里,转身走向正在分发徽章的服务台。
阳光穿过梧桐叶的缝隙,在地面投下斑驳的影子,像极了那些被拒绝后重新生长的、歪歪扭扭却鲜活的路。
实验室的顶灯在凌晨两点泛着冷白的光,林默把最后一页访谈记录按时间顺序码齐时,钢笔帽在桌面磕出清脆的响。
笔记本封皮上“拒绝行为日志”六个字被翻得卷了边,他指尖拂过那片洇开的墨点——是那个鹅黄毛衣女孩说话时,他心跳太快戳破了纸。
“老林,传输协议调好了。”周晓冉的声音从身后传来,带着熬夜特有的沙哑。
他的椅子转过来半圈,屏幕蓝光在镜片上投下幽微的影,指尖还搭在键盘上,“伪装成用户行为反馈数据的话,得给每条记录加三个随机噪声点。
系统后台对人工干预的检测阈值是0.7%,我把误差控制在0.58%。“
林默把笔记本推过去,纸页摩擦声像风吹过深秋的梧桐叶:“为什么是三个噪声点?”
“用户上传路径偏好时,总会无意识重复三次相似选择。”周晓冉抽出U盘插在主机上,金属接口碰撞的轻响里,他的手指快速敲击,“比如有人拒绝系统推荐的大路三次,第四次系统才会标记为’稳定偏好‘。
我们模拟的就是这种’无意识‘。“
屏幕上的数据条开始滚动,橙红色的进度条像跳动的火苗。
林默看着那些被处理过的文字——女孩的糖炒栗子、小娃娃的蝴蝶路、张科长黑板报上的粉笔灰——正被拆解成0和1的洪流,汇入系统深处。
他喉结动了动:“如果系统真的读得懂这些...”
“它读不懂文字,但读得懂趋势。”周晓冉摘下眼镜揉了揉眉心,镜片上还沾着刚才调试时溅的咖啡渍,“上周c街道拒绝率涨42%,这周加上这些’用户反馈‘,系统的路径推荐算法会自动修正权重。
你猜它会优先匹配什么?“
终端突然发出“叮”的提示音。
林默凑过去,屏幕中央跳出一行绿字:“路径推荐逻辑调整完成,试点区c街道新推荐路径生成中。”
“来了。”周晓冉的指节在桌面敲了两下,调出实时监控界面。
地图上的c街道像被撒了把星星,原本清一色的蓝色推荐路径(系统计算的最短路线)开始泛起淡粉——那是新增的“用户相似路径”。
林默看见梧桐巷的路线在闪烁。
原本系统会绕开的窄巷,现在被标记为“含3处自然景观(蝴蝶、老墙藤、石凳),历史用户拒绝记录匹配度89%”。
他想起白天那个哄小娃娃的女孩,她的“看蝴蝶窄路”正以数据的形式,重新回到推荐列表里。
“观察者群组炸了。”周晓冉突然低笑一声,把手机转向林默。
工作群里消息99+,最上面一条是张科长的语音:“10号楼王奶奶今早收到的推荐路径,居然绕去了她常去的菜市场!
系统以前只算时间,现在连她买早饭的习惯都算进去了?“
另一条消息是技术组的李工:“这不对劲!
路径演化模型的修正系数突然跳升0.3,明显有外部干预痕迹。“
“王工反驳了。”周晓冉滑动屏幕,“他说用户主动拒绝行为本身就在影响模型,现在不过是演化加速。”他的拇指停在一条未读消息上,“看,组长说今晚八点紧急会议,主题是‘系统是否进入用户驱动演化阶段’。”
林默的手机在这时震动。
他拿起来,屏幕上是路径系统后台的通知:“系统路径演化模型中,首次出现‘用户驱动路径’。”字体是醒目的金色,像洒了把细碎的阳光。
窗外不知何时下起了小雨,玻璃上蒙着层薄雾。
林默摸出口袋里的终端残片,金属边缘还带着体温。
残片突然微微发烫,屏幕裂缝里渗出一行小字:“路径演化记忆模块已进入自适应阶段。”
“它在学习。”林默对着玻璃哈了口气,雾气里映出他微扬的嘴角,“不是我们在教它,是那些拒绝过的人。”
“更有意思的在后面。”周晓冉的键盘声突然密集起来,他新建了个文档,标题是《演化程序2.0:选择动机识别》,“我在给系统加个追问机制——当它生成三条推荐路径后,会模拟用户视角问自己:’哪条路能让走的人更开心?
’“
雨滴打在窗台上,发出细密的响。
林默望着监控界面里不断更新的路径数据,看见一条原本被系统判定为“低效”的路线,正因为“用户曾在此处收到手作饼干”被重新标记为“高情感价值”。
他想起白天广场上那些歪歪扭扭的粉笔路线图,此刻正以更精确的方式,在系统里生长。
“老林,看这个。”周晓冉突然拽他袖子,屏幕上跳出段代码注释:“当用户驱动路径占比超过60%,触发边界检测程序。”他指尖点了点“边界检测”四个字,眼里的光比终端屏幕还亮,“演化不能没有约束,就像再野的路,也得有块路牌告诉人——别掉进河里。”
林默盯着“边界检测”四个字,雨雾里的玻璃映出他微蹙的眉。
终端残片在掌心里又烫了烫,像在回应什么。
他忽然想起白天那个女孩说的话:“系统不是不能错,是我们太习惯相信它不会错。”现在,系统开始学会犯错了——但这一次,它会先问:“这样,是你想要的吗?”
凌晨三点的雨还在落,实验室的空调换了档位,吹出带着凉意的风。
周晓冉的键盘声渐缓,他伸了个懒腰,屏幕上《演化程序2.0》的进度条爬到了87%。
林默把终端残片放回口袋,指尖隔着布料轻轻压了压——那里有个微微凸起的焊点,像条隐秘的路,通向还未展开的明天。
窗外的雨雾里,某个角落的路灯突然熄灭,又在三秒后重新亮起。
林默望着那盏灯明灭的轨迹,听见心底有个声音在说:等系统开始自己寻找边界的那天,我们或许会看见...更有意思的事。