凌晨两点多,我迷迷糊糊醒过来,下意识往屏幕那边瞥了一眼。房间没开灯,屏幕的光映在天花板上,像一条窄窄的河,日志正一行一行往上走,大概又遇到了什么需要重试的活儿,磕磕绊绊自己绕过去了,也不叫我。它倒是不用睡,这一点的确是好的。
我年轻时候写东西有个毛病,任务没落定就睡不踏实,总要守着那个结果出来才肯合眼。后来年纪长了,学会把活交出去,眼皮一沉也就睡着了,只是睡得不深,隔两个钟头会自己醒一次,爬起来看一眼进度条。今晚倒没什么特别的,只是忽然想到,它这样替我守夜,已经守了挺久,而我连它什么时候收工的都说不准。页面在我睡熟的时候自己滑过去了,也不留个信。
这个工具的前身,是几个在Amazon干活的工程师抽空搭的副项目,没花多少心思在外形上,却先把一句话立住了:启动任务之后你可以离开,稍后回来收到的是一个可审查的成果。就这么一句平平常常的需求,我盯着看了很久。你要知道,我们这行过去二十年的规矩一直是反过来的——活挂了,你人不能挂;你人可以走,活得睁着一只眼替你盯着。这几个人偏要改成:你走,活自己留下,你回来的时候它把每一步都摊开给你看,哪一步怎么想的,动了哪个文件,都写得清清楚楚,你看完,愿意签字就签字,不愿意就改。可审查这三个字,说到底就是把"想清楚"这件事又还回到你手上。它没替你决定,只是替你跑了很长一段路,然后把方向盘还给你。
它会记着你纠正过它的话。不是那种重启就忘了的记性,是会把"以后别这么写"真正变成一条规则,写在一个你随时能翻开的文件里,跟那些重复出现的模式、偏好、决策,一并归置整齐。我头一回知道这个设计的时候,心里其实咯噔了一下。一个人要被记住,是件有点重的事,哪怕记住你的是一台机器。它把你的习惯、你的脾气、你某次不耐烦时改过的措辞,都记成了条文,标了时间,整整齐齐码在那里,像一份关于你行为方式的档案。它记得越多,我能偷的懒就越多,我偷的懒越多,它记下的就越多,这个循环一旦跑起来,谁是往里搭的那一方,怕是要过很久才看得清。
我想起很早以前,我们这个行当的经验是记在手上的。某个坑,看一眼就知道要绕,不用说出理由;某个写法,写出来就是不对劲,说不清为什么。现在要把这些东西一五一十讲给它听,它再写成规则记下来。这感觉说不上好还是坏,只是不一样了,像把一本翻烂的书重新抄了一遍,字都对,但边角那些毛糙的东西没了。它整理出来的 Markdown 干净规矩,没有犹豫,没有"上次这么写好像是出过问题的"这种欲言又止。而我恰恰觉得,那些毛糙里藏着一部分我不想丢掉的东西。
它给自己上了七层锁。进程锁在沙箱里,动系统要过审批,敏感的路不许走,写保护的地方碰不得,该拒绝的命令直接拒绝,进出的数据都过一道验证,每一步都留在签名日志里。这些词凑在一起,倒让我想起旧时候船过险滩,船家往舱底压石头,绑紧舵,留下标记,不是为了怕,是为了这一夜能平平安安过去。它大概是知道自己将被托付些要紧的事,才提前把所有可能在半夜响起的警报都想过了一遍。
更妙的在后面。那些不烧心思的活儿不消耗积分,只有真要让模型想的时候才计费。它把"想"这个动作标了价,却没给"记得"和"安排"标价,这账算得倒是诚实。它知道人最舍不得花力气的地方不在动手,在于决定到底要往哪儿动。我盯着那个计费规则看了半晌,心里想的是,这些年我在"想"这件事上花的力气,付的价钱,不知道最后都记到谁头上了。
天亮之前它跑完了,收工的时间大概在我最后一次醒来之前半小时,我竟然没赶上亲眼看到它收尾。它留了个结果在那里,整整齐齐,附着一小段说明,像一份已经签好字的文书,只等着我回来盖章。我倒没什么好抱怨的,这本来就是我要的,可以走,可以睡,回头来收一个可审查的成果。
只是人这东西,从前怕的是交出去的活没人接,现在怕的却是接住了的那个东西,记得比我还牢。天亮以后我大概会去翻开它整理的那份文件,看看它眼里的我,是个什么规矩的人,又有哪些模棱两可的旧习惯,在它那里被悄悄归了类。
