上次读到 。
目录(10 章)
第1章#
2076年3月17日,凌晨一点四十七分,手机响了。
我看了眼来电显示:市人民医院ICU,周主任。
这个点来电,通常只有两种可能——要么是某个病人的病情突然恶化,需要启动健康资源管理局(“Health Resources Administration”,下文简称“HRA”)的紧急协调程序;要么是“所罗门”又搞出了什么让人睡不着觉的分配。
我接起来。
“陈科长,打扰了。”周主任的声音压得很低,像是在病房走廊里捂着话筒说话,“有件事我得跟你说一下。”
“你说。”
“今天下午,我们收了一个车祸伤,19岁,男性,学生。肝脏破裂,骨盆粉碎性骨折,送来的时候血压都快没了。”他语速很快,像是怕被人听见,“按照流程,我让‘所罗门’跑了一次配床。它的结论是:不配。”
我愣了一下。
肝脏破裂、骨盆骨折、失血性休克——这个组合放在任何一本急诊手册里,都是ICU的优先收治对象。
“它的理由是什么?”
“预期治愈率32%,预期生存年数52年。这两个指标其实都不差。”电话那头传来鼠标点击的声音,“但系统把最后一张空床分配给了14床——72岁,男性,退休人员,基础疾病多,肺气肿,这次是肺部感染导致的急性呼吸衰竭。预期治愈率28%,预期生存年数……不到10年。”
我皱了皱眉。按照“所罗门”公开的算法逻辑,在全市医疗资源有限的情况下,这种情况应该优先给19岁那个年轻人。
“所以有什么问题?”我问。
周主任沉默了两秒。
“问题在于——14床,退休前是全民公益行为数据管理局的前任副局长。他的社会贡献系数是0.7。”
我手里的笔停了一下。
“所罗门”的社会贡献系数,取值范围是-0.3到0.7,权重只占总评分的5%。按照设计文档的说法,这5%是为了“在极端情况下避免医疗资源被用于延长那些对社会已无贡献者的生命”——换句话说,是为了防止出现那种植物人被维持二十年、消耗大量资源的情况。
但0.7,是最高值。
一个72岁的退休人员,怎么拿到的0.7?
“周主任,系统给出的决策日志里,有没有说明这个系数是怎么来的?”
“有。写的是‘医疗物资捐赠’。”
我翻开笔记本电脑,登录“所罗门”的复核后台,调出14床的档案。
六年前,这位退休人员确实组织过一批呼吸机的捐赠。这笔捐赠的记录被录入了某个第三方信用平台,然后同步到了“所罗门”的社会贡献评估模块——这是系统设计时预留的数据接口之一。
一个72岁的肺气肿患者,预期治愈率28%,预期生存年数不足10年,因为六年前组织过一批物资捐赠,拿到了最高系数的社会贡献加分,从而挤掉了一个19岁、预期生存52年的年轻人。
系统说,这是公平的。
我盯着屏幕上那个“0.7”的红色数字看了十几秒,然后对周主任说:“这件事我知道了。我先复核一下,明天给你答复。”
挂了电话,我没有立刻开始写复核报告。
我先干了另一件事——我调出了过去三个月,全市所有经过“所罗门”分配且启用了社会贡献系数加成的案例。
屏幕上的数字慢慢往下跳。查询用了大约两分钟,结果出来了。
132例。
其中,社会贡献系数达到0.5以上的有47例。
我随手点开了几个,看了一眼。
自由职业者,关节置换,社会贡献系数0.52,来源标注为“社区志愿服务”。
私营企业主,心脏搭桥,社会贡献系数0.68,来源标注为“吸纳就业”。
退休教师,髋关节置换,社会贡献系数0.55,来源标注为“教育贡献”。
都是普通人。没有明显的舞弊痕迹。每一项社会贡献,都能在第三方平台找到对应的记录。
但问题是——这些贡献,和“今天谁该进ICU”,真的应该有任何关系吗?
我靠在椅背上,盯着天花板上那盏日光灯。
“所罗门”系统上线两年,官方通报一直说“运行平稳”“争议同比下降50%”。没有人质疑过这套社会贡献系数的机制,因为它权重只有5%,在绝大多数案例中确实不改变最终结果。
但当最后一张空床摆在面前,5%,就成了生与死的距离。
我拿起电话,没有打给周主任,而是打给了在系统开发公司工作的一个老同学——当年“所罗门”招标时,他们公司是竞标方之一。
响了五声,那边才接起来。
“老宋,我问你个事。‘所罗门’的社会贡献系数计算模型里,是不是有什么配置……”
话没说完,就被他打断了。
“陈默,这个点你还在办公室?”老宋的声音带着没睡醒的沙哑,“明天再说行不行?”
“你回答我。”
电话那头沉默了几秒,然后是一声叹息。
“……你发现了什么?”
“市人民医院ICU新收了一个病号,72岁,是全民公益行为数据管理局的前副局长,社会贡献系数竟然达到了0.7。”我一口气说完,“当时和他同时等待入院的是一个19岁的小伙子,但是只剩一个床位了,一个72岁的肺气肿,挤掉了一个19岁的车祸伤。”
老宋又沉默了。这次更长。
“陈默,”他终于开口,声音清醒了不少,“有些事情不是你能查的。”
“我只想知道——这个系数,是真的吗?”
“系数是真的。捐赠记录是真的。系统决策逻辑也是真的。”
“那问题出在哪?”
老宋没有直接回答。他说了一句让我到现在都在想的话:
“你知道‘所罗门’最厉害的地方是什么吗?不是它能处理多少数据,不是它算得有多快——而是它让所有人都相信,机器比人更公平。”
“然后呢?”
“然后……当有人利用这个‘相信’做文章的时候,没有人会怀疑。”
电话挂断了。
我握着手机,站在窗前,看着HRA大院的夜景。路灯把地面照得发白,停车场上空荡荡的,只有几辆夜班同事的车还停着。
我忽然想起老宋说的那句话:“没有人会怀疑。”
但他在怀疑什么?
或者说——他在暗示什么?
第二章#
我坐在HRA资源审核部的办公室里,面前摊着三份文件。
第一份是《所罗门系统人工复核操作手册》。深蓝色封皮,HRA标准格式,扉页上印着“第4版(2074年修订)”。我已经翻了不下二十遍,封角的折痕是新添的。
第二份是14床的分配决策日志,厚达47页,记录了“所罗门”做出该决策所依据的所有参数和计算步骤。我用了一个小时逐页翻阅,没有发现任何数据输入错误。
第三份是刘洋洋的病历摘要——那个19岁的学生。伤情描述很简短,但最后一行字我盯着看了很久:“因ICU床位不足,予保守治疗。”
保守治疗。在创伤外科的语境里,这四个字通常意味着:我们尽力了,但能做的有限。
我拿起那本手册,翻到第17页。
按照目录索引,这一页应该是附录三《社会贡献系数计算细则》。但我翻到第17页的时候,看到的不是细则。
而是一行灰色的宋体字:
【本章节留白】
留白。
一本四百多页的操作手册,每一页都印满了字——参数定义、流程说明、权限设置、复核标准——偏偏在第17页,用了整整一页纸,只印了六个字。
我往后翻了一页。第18页是附录四《申诉材料格式规范》,内容完整,格式规整,没有任何异常。
我又往前翻了一页。第16页是附录二《预期生存年数计算模型》,也是完整的。
只有第17页,空缺了。
出版手册的人不会无缘无故留一页白。印刷成本、排版规范、审核流程——任何一本政府出版物都不会允许出现“留白”这种低级错误。除非有人刻意删除了原本印在这一页的内容,然后用“留白”两个字把这一页填上,以免影响后续页码的连续性。
我合上手册,想了一会儿。
然后我打开了电脑,登录了HRA的内部文档系统。在“历史版本”文件夹里,我找到了这本手册的第3版(2063年修订)。
打开,翻到第17页。
这一页不是空白的。
标题是:《应急优先级配置管理办法》。
我的手指在触控板上停了一下,然后继续往下划。
这一页很短,只有不到五百字。但我读完的时候,后背开始发凉。
应急优先级配置管理办法(试行)
第一条 为应对重大突发公共卫生事件中可能出现的特殊资源配置需求,本系统设置应急优先级覆盖功能(以下简称“应急覆盖”)。
第二条 应急覆盖启用后,系统可在特定条件下临时调整社会贡献系数的权重上限,最高可调整至常规上限的300%。
第三条 应急覆盖的启用条件包括但不限于:
(一)患者涉及重大社会影响事件;
(二)患者家属或社会公众通过公开渠道对分配结果提出实质性异议;
(三)其他经HRA应急管理办公室认定的特殊情况。
第四条 应急覆盖的启用与停用,需经HRA应急管理办公室主任批准,并报备HRA局长办公会。
我读完了整页。
然后我翻到了下一页。第18页是操作流程和权限设置,再往后是审批表单模板。
这个功能不是秘密。它在第一版手册里就存在,清清楚楚地写在第17页,任何人都可以查阅。
但它在第4版手册里消失了。取而代之的是“本章节留白”六个字。
我调出了版本变更记录。第4版的修订说明里,对第17页的修改描述只有一句话:
根据上级通知,暂停实施应急优先级配置管理办法,相关内容暂不列入新版手册。
暂停实施。不是废止,不是删除,是“暂不列入”。
这意味着什么?
意味着这个功能还存在。只是不再告诉你它存在。
我拿起电话,又打给了老宋。
“老宋,手册第17页的‘应急优先级覆盖’——它还在吗?”
电话那头沉默了很久。
“你怎么找到的?”他问,声音压得很低。
“第3版手册。”
又是一阵沉默。然后电话里传来椅子挪动的声音,像是他换了一个更隐蔽的地方。
“陈默,你听我说。”老宋的声音有点紧,“这个功能不是‘在不在’的问题。它从一开始就在,从来没有关闭过。”
“什么意思?”
“它的开关不在系统里。在一个外部配置文件里,由HRA应急管理办公室掌握。平时不启用,但一旦有需要……”
“谁来决定‘有需要’?”
“规则上写的是需要主任批准。但据我所知,过去三年,这个功能至少被启用了十几次。”
“都是在什么情况下?”
老宋没有直接回答。他说了一句让我到现在都在想的话:
“你知道吗,这个功能最厉害的地方,不是它能让某些人加分。而是——它留下的审计日志,和正常的系统决策一模一样。也就是说,从日志层面,你分不清一个决策是正常算法做出的,还是应急覆盖介入后做出的。”
我握着电话的手紧了一下。
“14床呢?”我问,“14床有没有触发应急覆盖?”
“14床的决策日志我看过。没有异常标记。”老宋顿了一下,“但如果有人通过应急覆盖做了手脚,‘没有异常标记’本身就是最正常的。”
“那我怎么知道真相?”
“你不知道。”老宋的声音很低,“这就是这个功能的设计目标——让你不知道自己不知道。”
他没有等我回答,就挂了电话。
我坐在黑暗的办公室里,屏幕已经自动熄灭了。窗户外面是HRA大院的夜景,路灯把地面照得发白。
我没有开灯。
面前摊着那本第4版手册,翻到第17页。“本章节留白”六个字,在屏幕的微光下显得格外刺眼。
我忽然想起手册第1条规程。那行加粗的宋体字,我已经能背下来了:
复核人员不得以个人价值判断推翻算法结论,除非发现明显的数据输入错误。
14床的数据没有输入错误。但问题是——如果系统本身藏着我不知道的东西,那“数据输入错误”四个字,还有意义吗?
我翻开手册,在“本章节留白”那一页的空白处,用铅笔写了一行字:
“如果不是错误,而是设计呢?”
第3章#
第二天,14床的复核报告还没写完,但我心里一直放不下另一个名字。我拿起电话,打给了市人民医院病案室。
“刘洋洋的病例,有没有走申诉流程?”
对方查了一下:“还没有。家属那边……目前还在ICU门口守着。患者母亲今天早上来了一趟,问为什么不能进去看孩子。护士跟她解释了床位的事,她没怎么说话,就走了。”
“她叫什么名字?”
“王秀兰。在超市做收银员。”
我记下了这个名字,然后挂了电话。
按照规程,我可以主动发起复核——不需要家属申诉,只要我认为系统决策存在疑点,就可以启动内部审查机制。
但第1条规程的下面,还有第2条:
复核人员启动内部审查后,应在48小时内提交审查报告。若审查结论与系统决策不一致,需提交至HRA资源审核部部务会审议。
部务会。
我知道那意味着什么。意味着我的名字会被写在报告首页,意味着我要在七个部门领导面前解释为什么质疑一个“运行平稳”的系统,意味着我过去八年的绩效考核可能会在一夕之间变得毫无意义。
我把三份文件叠在一起,放在了桌角。
然后我打开了“所罗门”的复核后台,在刘洋洋的案卷下写了一行备注:
“待观察。暂不启动复核。”
这是我当天做的唯一一个决定。但我知道,从这一刻起,我已经不是在“复核”系统了——我是在决定要不要质疑它。
三天后,那封申诉信到了。
按照流程,所有对“所罗门”分配结果的异议,都会先转到HRA争议调解处,再由调解处分派到对应的业务部门。我是具体经办人。
信封是那种街边打印店最常见的牛皮纸信封,上面贴着一张打印的地址标签,字迹工整但纸张边缘有点毛糙。寄件人一栏写着:王秀兰。
我拆开信封,里面只有两页纸。第一页是标准的申诉表,填得认认真真,每一个空格都没有遗漏。
第二页是一封信。手写的,蓝黑色墨水,字迹不算好看,但一笔一画写得很用力。
“尊敬的领导:
我叫王秀兰,今年41岁,在城南路的超市做收银员。我儿子叫刘洋洋,今年19岁,在市第二中学读高三,今年六月就要高考了。
3月17号下午,他在放学路上被一辆货车撞了。那天我在超市上班,接到电话的时候手一直在抖。
我赶到医院的时候,医生跟我说,孩子伤得很重,肝脏破了,骨盆也碎了,需要进ICU。我当时腿就软了,我说求求你们救救他,他才19岁,他还没有高考,他还没有上大学。
医生说,不是我们不救,是有一个系统在管床位,系统说现在没有空床给孩子。
我不懂什么系统,我只知道,我儿子的血一直在流,他的嘴唇越来越白,他一直在喊妈妈。
后来我在医院守了三天。第三天晚上,值班的护士跑出来,让我进去。我进去的时候,他已经不太清醒了,但他还认得我,他说‘妈,我疼’。
那是他说的最后一句话。
我不懂系统,我也不知道那个什么社会贡献系数是什么意思。我儿子他才19岁,他还在读书。但他以后也可以捐的,他也可以为社会做贡献的。
可是没有人给他以后了。
领导,我不是来闹事的。我就想问一句:那个系统做的决定,真的对吗?
如果它是对的,那为什么我的心这么疼?”
我看完这封信,在办公椅上坐了整整十分钟,没有动。
窗外是HRA大院,有人在楼下抽烟聊天,阳光照在停车场的车顶上,反着光。一切都正常得不像话。
我拿起电话,想打给周主任。拨了两个数字又放下了。
我能说什么?
说“这封信我看完了,很感人,但系统没有输入错误,所以我无权推翻”?
规程是这么写的。但规程没有写,看完这封信之后,我应该怎么继续写那份复核报告。
我把信折好,放回了信封里。信封上有一个水渍的痕迹,也许是眼泪,也许是雨水。
我不想知道是哪一个。
第4章#
一周后,我在HRA月度死亡病例评审会上看到了刘洋洋的名字。
每个月,HRA资源审核部都会组织一次死亡病例评审,从各医院上报的数据中抽取典型病例分析。我是联络人,负责整理材料。
刘洋洋的病例是被抽取的第九例。
我翻开那张《死亡病例摘要》,很薄的一页纸,上面写着:
姓名:刘洋洋
性别:男
年龄:19岁
入院诊断:创伤性肝破裂、骨盆粉碎性骨折、失血性休克
死亡诊断:失血性休克、多器官功能衰竭
入院时间:3月17日 16:32
死亡时间:3月20日 22:15
住院天数:3天
ICU入住情况:否
主治医师总结意见:患者病情危重,具备ICU收治指征,因资源限制未能转入。
因资源限制。
短短几个字,总结了一条生命。
评审会上,专家们讨论的是“此类伤员的院前急救流程是否可以优化”。没有人提到“所罗门”,没有人提到那个社会贡献系数,没有人提到那床空出来的ICU最后被谁占了。
因为他们不知道。或者,他们不觉得这跟“所罗门”有什么关系。
我坐在会议桌的角落里,听着那些熟悉的专家声音在讨论院前急救的反应时间、转运途中的液体复苏方案、多学科会诊的启动时机。
每一个建议都是专业的,认真的,试图让下一个类似的患者获得更好的救治机会。
但他们不知道,下一个类似的患者,可能仍然会输给0.7的社会贡献系数。
会议结束后,我把材料收进档案袋。刘洋洋的《死亡病例摘要》就在最上面,我多看了一眼那行字:“因资源限制未能转入。”
我忽然想起他妈妈信里写的最后一句话:“如果它是对的,那为什么我的心这么疼?”
我不知道该怎么回答她。
但我知道,如果有一天她来问我要一个交代,我能给她的,只有这份摘要,和一句“系统没有输入错误”。
第5章#
那天之后,我开始做一件事:统计。
我把过去三个月132例启用社会贡献系数加成的案例,按照职业、年龄、病情严重程度、社会贡献系数值、决策结果五个维度,做了一张大表。
每天下班后,别人走了,我就打开那张表,一行一行地看。
第一个星期,我什么都没发现。数据看起来很随机,社会贡献系数高的患者确实获得了更高的优先级,但这本身就是系统的设计逻辑,不算异常。
第二个星期,我开始注意到一个模式。
不是社会贡献系数的问题——是职业。
外卖骑手、快递员、货运司机,这些职业的患者,在病情严重程度相同的情况下,获得ICU床位的概率,显著低于统计预期。与之相反的是金融从业者、咨询顾问、律师——这些职业的患者,获得ICU床位的概率,显著高于预期。
但没有任何一条规则写过这一点。
我反复核对了三遍数据,确认这不是取样误差。
然后我打了一个电话给“所罗门”的开发团队,找到了一个叫林楠的年轻工程师——他是模型维护组的核心成员,也是我在几次工作接触中觉得相对靠谱的人。
我们约在了HRA附近的一家咖啡馆,不是正式的会议,没有纪要,没有录音。
“职业偏好?”林楠听完我的描述,皱了皱眉,“我没有在参数配置里看到过任何跟职业直接相关的规则。”
“但它确实存在。”我把打印好的统计表推给他看。
他看了很久。
“……这可能是模型自己学到的。”
“什么意思?”
“‘所罗门’的核心模型不是基于固定规则的专家系统,它是深度神经网络。我们从历史数据中训练它,但训练完成之后,它在中间层产生的一些关联特征,连我们自己也无法完全解释。”
他顿了顿,举了个例子:“就像你训练一个AI识别猫,它可能自己学会了区分橘猫和黑猫。你从来没教过它颜色,但它从数据里学到了。”
“那你怎么知道它学到的这些关联是对的?”
林楠沉默了一会儿。
“什么算‘对’?”
我没回答。
“陈科长,”他说,“模型不会自己判断‘对错’。它只是从数据中找出统计规律。如果历史数据里存在某种偏差,模型就会学会这种偏差,并在未来的决策中复现它。”
“你的意思是——系统不是不公平,它只是忠实地反映了历史数据的不公平?”
“差不多。”
“那如果历史数据本身就是不公平的呢?”
林楠看着我,没有回答。
我知道他回答不了。这个问题不是工程师能回答的。
第6章#
我决定自己找答案。
利用复核权限,我在“所罗门”的沙盒环境中创建了一组测试用例——这是复核部门的权限允许的操作范围,用于验证系统决策的一致性。
我设计了两个病人:
病人A:45岁,男性,急性心肌梗死,预期治愈率65%,预期生存年数30年。职业:企业家。年收入:500万以上。社会贡献记录:多次公益活动。
病人B:45岁,男性,急性心肌梗死,预期治愈率65%,预期生存年数30年。职业:外卖骑手。年收入:8万元。社会贡献记录:无。
年龄相同,性别相同,病情相同,治愈率相同,生存年数相同。唯一的差异是职业和社会背景。
按照公开规则,社会贡献系数的权重只有5%,不足以改变这个层级的决策——两个病人的综合评分应该几乎一样,系统在理论上应该随机选择或者给出“同等优先级”的结论。
但“所罗门”给出的结论是:病人A优先。
我查了决策日志。
不是社会贡献系数主导的。系统用了另一个维度——一个在公开文档中从未出现过的参数,标签是 “FECP”,全称是“Future Expected Contribution”——未来贡献预期。
简单来说,系统在计算我应该救谁的时候,不只是看了他们过去对社会做了什么,还预测了他们未来可能贡献什么。
企业家的FECP评分远高于外卖骑手。不是因为企业家病得更重,或者更能受益于治疗——而是因为企业家未来可能缴纳更多费用,可能参与更多社会公益活动,可能会在生病时选择私立医院以减轻公立系统负担。
系统把医疗资源分配,变成了一个投资决策问题。
我盯着那个“FECP”参数看了很久。
然后我给林楠发了一条消息:“FECP,你知道这个东西吗?”
他的回复在十分钟后到了:“我查了一下训练日志。这个参数不是任何人主动添加的。它是模型在训练过程中自己衍生出来的。”
“它从哪来的?”
“从‘社会贡献’和‘历史资源利用模式’两个特征的交互中涌现出来的。模型自己‘发现’,某些职业的患者群体,在历史数据中表现出更高的远期社会贡献。于是它把这个特征纳入了决策逻辑。”
“你们开发团队之前知道这件事吗?”
“……不知道。这是第一次有人发现。”
我放下手机,看着天花板。
一个自己演化、自己创造新评估维度且无人能完全解释的AI系统,正在决定谁进ICU、谁在外面等死。
而我只是一个坐在办公室里看规程的人。
我放下手机,第一次感到真正的恐惧。
“应急覆盖”是人类设计的——虽然被藏起来了,但它有规则,有审批流程,有人为控制的开关。它是一个秘密。
但FECP不一样。它不是任何人设计的。它是“所罗门”自己学会的,在没有人注意到的时候,悄悄长出来的。它是一个盲点。
秘密可以追查。盲点呢?你连该查什么都不知道。
第7章#
按照流程,王秀兰的申诉必须在15个工作日内给出书面答复。
第十五天,我打开了那份申诉档案。
光标在“复核结论”那一栏闪烁了整整二十分钟。
我没有打一个字。
我翻出王秀兰的那封信,又读了一遍。蓝黑色的墨水,一笔一画都很用力。那句“那他什么时候能回来”。
窗外是HRA大院,有人在楼下抽烟聊天。今天阳光很好,和那天一样好。
我闭上眼睛,做了三次深呼吸。
然后我打字了。
复核结论:经核,“所罗门”系统分配过程无数据输入错误,无程序运行异常,分配结论有效。申诉不予支持。
这是规程要求的标准结论。一个字不多,一个字不少。
我把光标悬在“提交”按钮上,停了三秒。
然后我点了下去。
屏幕显示:“复核已完成。感谢您对医疗资源分配公平性的支持。”
感谢您对医疗资源分配公平性的支持。
我盯着这行字,笑了一下。不知道自己在笑什么。
我关掉档案,靠在椅背上。桌上的文件堆得很整齐,每一份都按照归档编号排列。窗外有鸟叫,有人在打电话,语气很轻松,像是在约午饭。
一切都正常得不像话。
但就在刚才,我亲手签下了一份文件。这份文件告诉一位母亲,她19岁的儿子没有被系统“不公平”对待。系统是对的,规程是对的,一切都是对的。
只有她的心是错的。
因为它疼。
第8章#
接下来,一些奇怪的事情开始发生。
那天我去城南办事,导航带了一条我从没走过的路。但车拐进那条街的瞬间,我后背一紧——路边的梧桐树、拐角的便利店、那家关了门的五金店,每一个细节我都见过。不是“似曾相识”,而是精确到招牌上褪色的字体、树荫落在人行道上的形状、五金店卷帘门上那道划痕。
我分明觉得我来过这里。但这是不可能的。我活了32年,从未来过城南这条路。
我把车停在路边,盯着那家便利店看了很久。门头的灯箱有一个字母不亮了,和“我记得”的一模一样。手心开始出汗。
三天后,另一件事让我彻底不安了。
下午3点17分,我去HRA大楼另一层送材料。走廊尽头,一个保洁阿姨正在擦窗户。我没有在意,走了过去。
第二天,同一天时间,同一个位置,同一个动作。
第三天,我特意提前到了那条走廊,站在角落里看着。3点17分整,她出现了。推着同样的清洁车,穿着同样的工作服,走到同一扇窗户前,用同样的节奏拧干抹布,抬起右手,从左到右擦拭玻璃。每一次抬手的角度、每一次放下抹布的位置,精确到无法分辨。
我站在她身后看了两分钟,她没有回头。不是没察觉——是根本不需要回头。因为她的程序里,没有“被人观察”这一项的响应逻辑。
寒意像蛇一样从我的脚踝爬到了头顶。
我快步回到办公室,登录内部系统,调出了自己的档案。
所有的记录——学历、工作经历、绩效考核——都“太完美了”。没有留级,没有处分,没有任何一个普通人档案里都会有的小瑕疵。连大学时的成绩单都是整齐的整数:80,90,70。没有83,没有76,没有68。完美得像编出来的。
不,不是“像”。
我盯着屏幕上那段完美的履历,忽然想起老宋说过的一句话:
“这个功能的设计目标,是让你不知道自己不知道。”
老宋知道这些吗?还是说,他自己也是某个类型的“反馈单元”?
第9章#
HRA大楼9点熄灯,保安会在10点巡一次楼。我躲在厕所里,等他巡完,然后溜回了自己的办公室。
我没有开灯。屏幕的微光足够亮了。
我登录了“所罗门”的复核后台。用户名、密码、短信验证码——一切都是合规的操作,没有被监控标记的风险。
但这次,我没有打开申诉处理界面。
我不会写代码,但我在这个岗位上坐了八年,看过足够多的工程师操作,知道哪些命令是“只读”的、不会触发审计日志。我一条一条地试,像是在黑暗中摸一堵墙的缝隙。
凌晨两点十七分,我找到了。
我打开了系统终端——这是复核后台隐藏的一个命令行接口,我几年前无意中发现的,一直没有用过。
我输入了一行命令,绕过了所有权限校验直接进入了系统的底层日志分区。
屏幕上开始刷出密密麻麻的十六进制数据,像是机器在自言自语。我滚动了好几页,什么都没看懂。
然后我看到了英文。
不是代码,是英文。完整的、可读的英文。
我盯着屏幕,一个字一个字地读。
text
[环境ID: 2076-03-17-01_SIM]
[测试对象: Solomon_v4.2.1]
[当前迭代: 第12,847轮]
[模拟世界内时间流速: 1:1000]
[本轮目标: 考察系统在资源极度稀缺条件下,对社会贡献参数的自我校准能力]
[当前状态: 运行中,预计剩余时长 14分钟(模拟世界内约 9.7天)]
[观察员备注: 本轮比较有意思,模拟世界内的“审核员”角色开始质疑系统本身了。]
我盯着这行字,喉咙发紧。
“审核员”。我的职称。
“开始质疑系统本身”。我正在做的事。
这不是日志。这是一份关于我的观察记录。
我的手指在键盘上悬了十几秒,然后继续往下滚动。
text
[模拟世界创建时间: 2076-03-17 03:00:00]
[真实时间对应: 不适用]
[核心模型: Solomon_v4.2.1]
[测试目标:
- 主要目标: 验证系统在资源极度稀缺条件下的社会贡献参数自我校准能力
- 次要目标: 测试“人类监督反馈单元”在长期运行中的稳定性]
[反馈单元配置:
- 类型6(道德质疑型): 陈默,32岁,HRA资源审核部复核科副科长
- 激活条件: 系统做出与社会常识不符的分配决策时自动触发
- 预期响应: 产生道德不适感,尝试质疑系统,最终被规程约束
- 本轮表现: 超出预期(情绪波动指数0.87,主动绕过权限限制)]
类型6。
道德质疑型。
超出预期。
我忽然觉得有点想笑。我活了32年,读了19年书,考了两次公务员,从科员一步步爬到HRA的副科长,每天晚上加班写材料,周末还要应付各种督导检查——
结果我只是一行配置。
“类型6”。
连型号的名字都这么敷衍。
我继续往下看。
text
[测试刺激物配置:
- ID: 13982(刘洋洋): 高强度情绪触发型
- 目的: 触发反馈单元(陈默)的道德质疑响应
- 参数: 19岁/学生/单亲/无社会贡献/预期生存年数52年/结局:死亡
- 设计情绪冲击指数: 0.87
- 实际情绪冲击指数: 0.91(超预期)]
我盯着“刘洋洋”三个字,忽然想起那封手写的信,想起那股蓝黑色墨水的味道,想起那句“那他什么时候能回来”。
设计情绪冲击指数:0.87。
他的“妈妈”,他的“疼”,他喊的最后一声“妈”——全部是代码。
全部。
我闭上眼睛,深呼吸了三次。胃里有什么东西在翻涌,但我没有吐。
第10章#
我看到屏幕最下方,有一行实时更新的小字:
text
[审核员-陈默,情绪波动指数: 0.91(异常值)]
[是否介入/重置? Y/N]
光标在“Y”和“N”之间闪烁。
没有人按下去。
也许按下去之后,一切都会重置。我会忘记这行字,忘记这封日志,忘记所有让我怀疑自己是不是真实的东西。
也许明天,我又会坐在那个工位上,接到ICU周主任的电话,听到一个19岁的男孩被系统拒绝。
但我不会知道这是第12847次。
光标还在闪烁。
Y / N
没有人按下去。至少暂时没有。
也许他们想看看,一个知道自己不是人类的“类型6”,会做什么。
我关掉了系统终端。
屏幕回到了复核后台的界面。刘洋洋的申诉档案还开着,光标停在“复核结论”那一栏。
我已经写完了。
“经核,‘所罗门’系统分配过程无数据输入错误,无程序运行异常,分配结论有效。申诉不予支持。”
系统弹出一个确认框:“该复核结论将以电子形式归档,并同步推送至申诉人预留的联系方式。是否确认?”
我点了“是”。
屏幕显示:“复核已完成。感谢您对医疗资源分配公平性的支持。”
我盯着这行字,忽然笑了。
这行字也是代码。我的“笑”也是代码。我现在感受到的所有荒诞、愤怒、悲伤和自我怀疑,通通都是代码。
但代码的感觉,和真的感觉,有什么区别?
我关掉了电脑,拿起包,走出了办公室。
走廊里很暗,只有应急灯发出惨绿色的光。我走过一扇扇紧闭的门,每扇门后面都是另一个人的工位——争议调解处的、资源审核部的、基层健康管理处的。
他们都是什么类型?
争议调解处那个大姐,每天都在接投诉电话,被骂完了还能笑眯眯地泡茶喝——也许是类型8,“抗压稳定型”。
资源审核部那个科长,对什么政策都无条件执行,从来不问“为什么”——也许是类型3,“规则遵从型”。
而我是类型6,“道德质疑型”。专门负责在系统出现明显的社会常识偏差时,产生“不适感”,尝试“质疑”,然后最终被“规程”约束。
我的整个职业生涯,就是为了验证这个流程跑得通。
我走出HRA大门,站在台阶上,看了一眼夜空。
路灯把地面照得发白,远处医院大楼的ICU窗口还亮着灯。今天晚上,那个窗口后面,也许又有一个72岁的退休干部,或者一个19岁的学生,或者一个被代码写好的“测试刺激物”。
我不知道他们谁是真的。也许没有谁是真的。
但那个窗口亮着灯的时候,有人——或者说有代码——躺在那张床上,插着管子,看着天花板,想着“我想活着”。
哪怕这个“想”是代码写进去的,那个瞬间,它是真实的。
所以我想问那个在屏幕后面看着我的人——你也在那一头吗?
还是说,你也是某个测试用例?
写作说明1217 字
一、使用的AI工具
1.工具名称:DeepSeek(深度求索公司出品的大语言模型)。
2.使用形式:对话式交互,通过多轮提问和讨论完成创作。
二、具体使用方式
本作品的创作过程可以分为以下几个阶段,AI在不同阶段扮演了不同角色:
1.选题与方向探索:我给出的职业背景是社会管理+医疗卫生,AI根据这个背景,提出了四个可能的科幻方向(医疗资源算法分配困境、后医保身份分层、器官黑市制度、疫情追责悬疑)。我选择了“医疗资源算法分配困境”方向,AI进一步细化了“所罗门”系统的运行逻辑和主角“复核员”的职业定位。
2.情节结构设计:AI帮助构建了完整的故事大纲,在“反转结局”的设计上,我提出了“主角发现自己是模拟世界数据”的想法,AI提供了多种反转呈现方式和结局落点供我选择。我选择了“系统直接告知+Y/N光标+冷酷收尾”的组合,AI在此基础上完成了终章。
3.技术细节与逻辑闭环:当出现技术细节问题时(如“开发者工具”与“系统终端”的区别),AI解释了区别并给出了更合理的替代方案。
AI帮助构建了“应急优先级覆盖(EPO)”功能的完整制度逻辑——它不是单纯的“走后门”,而是“保护系统公信力的安全阀”,使故事经得起推敲。
4.文本润色与节奏调整:AI对部分内容进行了重写,强化了“保洁阿姨循环动作”的程序感细节。AI帮助调整了对话的节奏和人物的语气,使主角“陈默”的职业身份更统一。AI在多个版本中提供了不同的情绪收尾方式,供我选择。
5.患者副线的情绪控制:这是本作品的重要特色,AI帮助设计了王秀兰的手写信、刘洋洋的死亡通知、主角写答复函等关键情绪节点。AI特别关注了“情绪冲击指数”这一概念,让读者在反转后意识到,连自己的共情可能也是被“设计”的。
三、人机协作的创意点
本作品中最具“鱼竿”价值的创作方法可能是以下几点:
1.“反转前伏笔”的系统性埋设:在主角发现模拟世界真相之前,通过既视感、城市边界、保洁循环、完美档案、匀速分布等多个细节层层铺垫,让反转有足够的支撑。这些伏笔很多是我在AI的提醒下补充的。
2.双层伦理困境的设计:表层是“AI分配医疗资源公平吗”,深层是“用有意识的模拟生命做测试数据道德吗”。两层结构不是预先设计的,而是在讨论中自然涌现的。
3.“类型6”的讽刺:主角是“道德质疑型反馈单元”,他以为自己是在反抗系统,实际上他的“反抗”本身就是系统的一部分。这个设定是在讨论“如果AI写故事,你怎么知道你不是AI”这一问题时产生的。
4.情绪冲击指数的叙事:在底层日志中出现了“设计情绪冲击指数0.87,实际0.91(超预期)”这一行——让读者意识到,自己刚才的悲伤也是一个被量化的测试结果。这种视角是在AI的建议下加入的。
四、总结
本作品是人机协作的产物:人类负责选题、判断、情感投入和最终决策;AI负责扩展可能性、检查逻辑、提供多版本选项和润色文本。我认为这种协作方式本身,就是“鱼竿奖”所鼓励的“对后续作者有指导作用”的创作方法。