周日上午十点,陈锋如约到了AI社团活动室。
他带来一台断网的旧笔记本,屏幕上只有观察端保留的本地操作日志。周一之后,屏蔽等级仍为百分之四十;周四通话之后,这台设备没有主动查询过“陈峥”或京华旧档。
“它能证明什么?”林默问。
“只能证明我遵守了周四的约定,没有用这台设备主动查旧身份。”陈锋说,“不能证明京华没有查陈峥,也不能证明黑鸦不知道我周一回去。”
苏晚晴把这两句话原样写进记录。
三个人只核对本地日志,没有开始任何新的主动查询。他们缺少上游日志,就无法用陈锋这一台设备的沉默,推导其他人也没有行动。
陈锋把笔记本合上。
“上面再来任务,我发方框。”他说。
“你可以拒绝吗?”苏晚晴问。
“我还剩最后一次违规机会。”
“那也先由你决定用不用。”
陈锋抬起头,对她点了一下。
这场见面没有追出一个藏在后台的人,也没能证明京华已经开始行动。它只确认陈锋遵守了一次约定,并把下一次的知情选择仍然交在他手里。
陈锋临走前,林默把活动室白板上的空方框指给他看。那是他们昨天约定的标记。
“我记得。”陈锋说。
“今天的本地日志也记住。”苏晚晴说,“它证明你守了一次约定,不证明外面没发生任何事。”
陈锋合上包:“观察员最难的就是说‘不知道’。”
“那你今天说了三次。”林默替他拉开门,“进步很大。”
陈锋转过头,看不出林默是不是在开玩笑。最后他也没问,拎着旧笔记本离开了。
周一,暑假正式开始。
校园一下子空了大半。食堂只开一楼,图书馆下午五点闭馆,操场上的人声被蝉鸣盖住。AI社团活动室成了临时工作间。老空调把三十五度的热气降到三十度,每个人的T恤后背都干不透。
林默、陆远和赵一鸣开始做校园AI助手的第一个本地版本。
陆远负责把公开课程表、食堂菜单和图书馆时间表找齐;赵一鸣清理过期字段;林默写推荐规则。苏晚晴不管代码效率,只问三件事:数据从哪里来,用户能否拒绝,推荐出错后谁能看见原因。
第一次测试就出了问题。
程序建议一名暑期留校测试者去二食堂,而二食堂根本没开。旧数据还告诉程序,图书馆开到晚上十点。
陆远盯着两条绿色推荐:“要不先改掉,明天演示好看一点?”
林默把推荐框改成红色,在旁边加了错误原因:数据过期,建议失效。
“演示的人看不见它会错,以后用的人就会走到关着的门口。”
陆远撑着桌子,又看了一遍屏幕。
“我明白道理。可要是每一条建议都可能显示不知道,用户会不会觉得它很笨?”
“会。”林默说。
“那你还留?”
“一个真实的不知道,比一个编出来的建议有用。如果不知道出现得太多,该修的是数据和产品,不是把它藏起来。”
赵一鸣从数据表里找到了原因。食堂公告文件里,暑期营业时间是一张图片,爬取程序只读到了标题,没读到图中的关闭信息。
“以后图片公告不自动进库。”他说,“人工确认后加日期。过期自动失效。”
苏晚晴在白板上补了一行:每条数据都要能回答“谁在什么时候确认过”。
陆远拿起板擦,想把绿色推荐擦掉,又放下了。
“留着吧。”他说,“下次给人演示,先演示它错过什么。”
赵一鸣摘下一只耳机,把程序里所有自动推送改成“建议待确认”。苏晚晴在修改记录上签了个小小的“苏”字。
“可以继续。”她说。
林默没有把V4.0直接接进产品。他只在断网环境里用一小段历史数据测试分析思路,再把能被解释的部分重写成普通规则。代码库里没有系统接口,没有宿主数据,也没有一条可以绕过用户确认的自动通道。
项目第四天,苏晚晴才开始读北都带回的镜像。
林默提前在桌上留出了一块干净区域。这台笔记本不连校园网,也不与项目电脑交换文件。苏晚晴把昨天完成的代码提交退回一次,确认没有任何自动备份程序会在镜像挂载后启动。
“你不用每次都陪我。”她说。
林默正在纸上写挂载前的哈希,闻言抬头:“这句话听着很熟。”
苏晚晴想起第三块记忆那天晚上,也笑了:“那你坐远一点,不要碰键盘。”
林默将椅子向后挪了半米。他负责记录她主动打开的项目,不负责替她决定哪个文件值得看。
她在活动室里另开一台断网笔记本,以只读方式挂载镜像,首先复核哈希。它与贺知行家中记录的值一致。
第一层目录里有电子手稿、部分内部通讯索引和一个加密文件夹。他们只抽查了三个可见文件:一份电子手稿与纸质版对得上;一份会议索引的日期能与贺知行保存的复印件相互支持;第三个文件已损坏,不能因为文件名存在就当成内容存在。
与妈妈生日有关的组合打开了加密文件夹的第一层。解锁后的校验值与贺知行留下的记录一致,只证明外层被正确打开,原档没有被改写。第二层仍然需要密钥。V4.0的分析进度停在百分之二十三,没有给出可以强行跳过的入口。
第一层里只能看见文件数量、日期和一部分损坏的标题。其中有三个日期与父亲U盘的C-7运行记录重合,但光凭日期无法证明它们指向同一件事。
苏晚晴把三个日期记进待核表,没有把文件复制出来。
“百分之二十三只是分析进度。”她说,“不是我们已经掌握百分之二十三的真相。”
林默把这句话写在记录首页。
苏晚晴将所有已读项与未读项分开记录,然后卸载镜像。
“今天到这里。”她说。
她说完却没立刻站起来。屏幕黑了,她的脸仍然朝着原来的方向。
林默把断网笔记本装回锁柜,没有问她在那三个文件名里看见了什么。他去楼下买了两瓶水,回来时苏晚晴已经把记录表封好,在锁柜旁边等他。
“你今天没说‘我在’。”她说。
“因为你知道。”
苏晚晴接过水,拧开瓶盖。这一次,他们谁都没有把安慰说成一句需要反复证明的口号。
这句话也成了两周里的固定边界。白天做项目,傍晚每次只读一小部分镜像,天黑前停下。陈锋偶尔来看代码,只做本地异常测试,不登录观察端。
两周里,系统只下发过一次普通暑期任务。林默按照既有法则完成,但结算面板没有提供新的余额总数。他没有自行把奖励加进三千三百五十的旧余额,只把这次完成记在日期下方,等系统下一次明确显示。
老反对此非常不满。
“宿主。您对本系统账目的不信任,缺乏培养对象应有的感恩。”
“给余额,我就感恩。”
墨镜光头沉默了两秒,把脸转到另一边。它宁可暂时结束对话,也不愿意提供一个可以被审核的数字。
第二周周日接近午夜,校园AI助手的本地原型终于能连续运行。陆远在群里问:“能不能找一所学校试用?”
林默没有答应上云。他只回复:先做公开数据版,本地跑七天。
他刚把这句话发出去,屏幕右下角的墨镜光头就亮了。
【检测到:宿主正在将任务分析能力沉淀为长期工具。】
【本次不计入反派值。】
【行为审计已受理。】
【审计对象:校园AI助手·本地预测模块。】
【倒计时:06:59:59】
【审计期间,任何外部部署都将被记录。】
林默把手从提交键上移开。
这个原型没有系统接口,也没有用户私人数据。七小时后,系统会不会承认这条边界,才是他今夜需要等的答案。
他把本地版本的哈希、数据来源和权限表放到同一个断网目录中,然后设定七点钟。倒计时开始之后,他不再修改一行代码。要审的就是此刻这个版本,不是一个根据系统脸色连夜换出来的答案。