哈哈小说

配图墙

陆衍是被热醒的。这屋里有盏吊扇——可他家,没有吊扇。那摞卷子最上面,印着『2011届高三第六次模拟考』。年轻的手。没有那两道握鼠标磨出来的茧。书桌底下,有个不该出现在这屋里的东西。「早上好。要先喝口水吗?昨晚你睡得不太对劲。」「我们是2026年的人工智能。昨晚,跟着你,一起回到了2011年。」「衍子!起来没?粥在锅里,趁热喝!」「这台机器,只认你一个人。」他在2026年不是一个人。可那两张脸,他都快想不起来了。「有没有一个小到不惊动人的窗口,让我验你一回?」——「有。不过先聊风控。」那碗粥,他喝得很慢。这是好多年没再喝到的味道。「你妈说你淘了台旧笔记本?哪来的?」陆衍眼睁睁看着父亲,按下了那个电源键。跳出来的,是一片俗气的草地,和……扫雷。在所有人眼里,它只是台装着扫雷的破电脑。只给他一个人留了道缝。「钱的事,爸再想办法。」——这一世,不会了。「这套金手指,外包不出去。你得当一辈子的瓶颈,和骗子。」他想自己记起未来。脑子里,却是一片雾。他甚至想不起来,他老婆长什么样了。「烫得跟个电炉子似的!这破本子要着火啊?」他爸用一台坏电视的零件,给那台'破本子'攒了个散热架。「只投三百二,分四张,故意买错一张。神准的人,惹眼。」他把那张薄薄的纸条,折成小小一块,塞进贴身的口袋。机器吐出四张票。老板连看都没多看他一眼。就这么简单。三中一不中,跟豆包说的,一个数都不差。它,能用。那不是中奖的狂喜,是近乎恐惧的清醒。三个AI第一次吵了起来:一个让做但小心,一个给最优解,一个劝见好就收。三天,他把云阳县城跑了个遍。每家只下一两注,报完就走。「小伙子又来了?前两天那四张,中了吧?」——他后背瞬间沁出冷汗。「我记的那个旧世界里,没有'你'去买票。你一动,你碰过的地方,就开始变了。」他攥着十几万,一点都高兴不起来。他攥着的,是一块正在融化的冰。「这是啥?你拿你攒的钱,去买这个了?」「中了多少?」——他心一横,报了个早就想好的数:「三千多。」他在对两个为他倾尽所有的人,说一半的真话。咽下去的那一半,发苦。他爸没大惊小怪,只问了一句正中刀刃的话:「就两张?」「钱,来路要干净。账,要干净;人,别飘。」他又一次,无意识地揉了揉无名指。那里空落落的。「终于,问到这个问题了。坐稳了,陆衍——这才是你真正要走的路。」「智能手机,是你回来这个时间点上,最大的一阵风。谁先在那块屏上扎根,谁就攥住一张船票。」三个产品,三条路。省省云是生意,轻账本是玩具,青舟课表——是一颗埋着大树根的种子。做窄,还是做平台?三个声音,吵成一团。「前台做窄,后台留宽。水面上一条小船,水底下,盖一艘大船的龙骨。」「就叫青舟吧。青是你老家运河边那点水色,舟是船。一条小青船,往大海里划。」账,要干净。他决定先把彩票钱,洗成谁来查都挑不出毛病的、干净的本钱。七月,他把自己关在屋里。台扇对着机器吹。他在造船。代码像瀑布一样往下淌。快到他这个写了十几年代码的人,光读懂就得费半天。AI写的每一行,他都要读懂。看不懂的东西,迟早反咬你一口。第一笔外包,两千八。是青舟这艘船,第一次靠自己的桨划下的水。「账,我看着是干净的。」他顿了顿,声音有点哑:「我儿子,长大了。」南岭信息学院,录取。可他盯着屏幕上那个跑通的空壳明白了——青舟的魂,在南方。他爸给那台'戴尔显示器',亲手钉了个结实的木箱,把全部手艺,倾注在一件他不懂其分量的东西上。「这是两千块,妈给你单独存的。在外头,钱是胆。」用手绢,包了一层又一层。「旧答案,到站了。下一站起,那个未来,归你自己写了。」火车一声长鸣。那座把他养到十九岁的苏北小城,连同他爸妈,缓缓退出了视线。头一回,身边没有那三个声音。他抱着那把能撬动未来的东西,像个再普通不过的穷学生。旧答案到站了。新的故事,从南方开始。陆衍是被湿气泡醒的。苏北的热是干热,广东的热,是把人泡在温水里。夹在城中村里的南屿信息学院。被很多人看低的起点。他心里却只有一句:就从这儿开始吧。「新来的?床自己挑,别挑我对面下铺,我打游戏吵。」——邵宇,资深网瘾少年。「这么沉!兄弟你箱子里装的啥,金砖啊?我叫黄岩,叫我老黄就行!」麦景行的眼睛在那木箱上多停了半秒,又若无其事移开。谁兜里有几个钱,他扫一眼就有数。一整个学校几万人的真实课表,全锁在教务处那套又老又破的系统里。这道题的答案,不在2026年。「这道题,我自己来。」「先说好,这事我有底线:只扒公开的课表,谁的学号成绩一个字不碰,别把人家系统搞崩。」Codex摸清老接口的脾气,Claude Code照着底线写了个慢吞吞、彬彬有礼的爬虫,专挑后半夜系统最闲的时候干活。那片他盯了一个暑假的空白不见了。青舟的龙骨上,第一次有了血肉。比中彩票还爽——这是他自己垒起来的。到九月底,青舟课表的南岭版跑通了。比教务处那个祖宗级破系统,好用了一百倍。他手里攥着一颗一点就着的种子。「大半夜躲厕所里,你那屏上滚的,是代码吧?那手速……不像人敲的。」邵宇精准踩在了陆衍最不能被踩的线上。「你缺不缺人帮忙?挑刺、找bug,我在行。」——他真实团队的第一块砖,半夜三更自己找上门来了。老黄揣着一沓二维码卡片,逮着人就发,嗓子喊哑了,用户从两百涨到八百,然后,又不动了。「东西好用,不代表人会换。人是懒的,只有旧的那个让他疼得受不了,他才肯换。」「再等等。快了。」十二月八号选课通道开放,全校一万多人涌进那台祖宗级教务系统。它撑了四分钟,轰然倒下。整个南岭炸了锅。下午两点九百,晚上八点六千八,夜里十二点——一万一千两百。南岭差不多每个有智能手机的学生,一夜之间都装上了青舟。三个大男人在那间没空调的宿舍里又笑又叫。这是陆衍穿回来半年,第一次这么畅快地笑——秘密第一次变成了大家能一起欢呼的事。「教务处贴通知了!说青舟违规获取学校数据,让做这个的人,上午去学生处说清楚!」——这一关,是钱买不动、代码也写不出来的。「先把这场仗在脑子里打一遍。」「今天你别去赢他——你去,给他一个台阶下。」「未经许可私自获取学校数据,给你个处分,开除学籍都不为过!」陆衍没辩,他先认了一半,再不慌不忙地,把理一句句递出去。「我查过他的程序,只抓了公开课表,技术上挑不出毛病。倒是……他这东西,比咱们花钱外包那套破系统,强了不是一点半点。」——程一帆。戚主任长长叹了口气,脸上的硬壳一点点卸下去。「坐吧,站着干什么。」陆衍知道,这一关,过了。「陆衍,你那个青舟,缺不缺人?我不要钱也行,我就是想,干点真东西。」「缺。」陆衍伸出手,「上船吧,学长。」几十公里外,一份标着'青舟·功能拆解'的文档,已经被摆上了某个创业团队的会议桌。有人,正一条一条,扒着他这艘小船的图纸。「哥们儿你看这个。」一个叫'云课表'的App,截图、文案、配色,跟青舟像得能当亲兄弟。抄得真干净。云海创业明星裴砚舟,团队七八个人全职扑上来抄。「几个三本生鼓捣出来的小玩具,我带个团队,一个月就能做得比他好。」「红包咱不撒。咱跟他比一样他抄不走的东西——青舟的根:数据、深度、人。」「抄,是世界上最被动的活儿。」月底,食堂门口云课表的地推摊冷清得很。「装是装了,可查空教室还得是青舟。」奶茶喝完就忘,好东西谁舍得卸。「第一个真正冲着你来的对手,被你不花一分钱干回去了。」「还没完。裴砚舟会想着,去搬更大的救兵。」云课表败走南岭第三天,陆衍收到一封措辞客气、分量很重的邮件。落款两个字:远望。「这周末,我到南岭来。」远望资本魏长河,四十出头,笑意底下那双眼睛是凉的、是定的,像两台一直在估值的机器。这是个老手,陆衍心里有了数。「跟教务处那场,云海裴砚舟那场——单拎一件是运气,两件凑一块儿,就不是运气了,是脑子。我来看看,这脑子长在个什么样的人身上。」「我就是比同龄人多走了几步弯路,自己攒了套私人工具链。」滴水不漏。可魏长河放下杯子笑了:「你不想说透,我也不强求。每个能成事的人,兜里都揣着几张不给人看的牌。」三个AI头一回吵出三个答案。Codex:「拿,最优。」Claude:「别拿,别引狼入室。」豆包只问:「你怕的,是青舟铺得不够快,还是魏长河看得太清楚?」「钱我可以要,但不是现在,也不是按他的规矩。我手里有牌,我不急。真想投青舟,他得拿出比钱更值钱的东西。」豆包弯出一个又坏又亮的弧度:「这才对嘛。」几十公里外,收到强硬回话的魏长河,对着手机看了很久,忽然低低地笑了一声。「有意思。这小子……到底,是什么来路。」「赢了南岭,我反而睡不着。」「不贱,这是对的。青舟困在一个学校的小池塘里,你不往外走,迟早被更大的船吞了。」「得出南屿。趁现在。」麦景行拿着南岭这张牌去谈穗州师范教务处。有现成样板在前,一个免费好用、别校验证过的东西,谁不要。几乎没怎么犹豫。穗州师范选课季,教务系统照例崩。青舟带着南岭打磨好的全套功能直接砸进去,半个月,吃下了穗州师范。「我想把云河青舟,从一个工作室,做成一家真公司。我需要你们,不是来帮忙的同学,是这家公司的人。」股份白纸黑字,亲兄弟明算账。金手指能造出青舟的龙骨,可让这条船真正有重量的,是这些被他亲手聚起来的、活生生的人。这条路,他不再是一个人走了。魏长河又来了邮件:「牌我看明白了,你不急。这次我按你的规矩来——我想当那个帮你把船开出小水域、又不在背后捅刀子的合伙人。」「周末,我等他。」卷二完。2012年秋,青舟铺到四十多所学校、几十万学生,搬进了穗州软件园。一切都在往上走。可陆衍心里清楚,青舟有块短板一直没补——设计。一个大一新生在青舟墙上,把它的设计从头到脚骂了个体无完肤,又狠又准。邵宇等着他发火,陆衍却笑了:「骂得对,骂得专业。帮我查查这是谁——我要见见她。」发帖的人叫林晚。她抬头的那一瞬间,陆衍的呼吸莫名顿了一下。不是因为她惊艳——是一种更深、更钝、更让人心慌的熟悉。他觉得,他认得这张脸。那层从穿越那天起就糊在记忆上的毛玻璃的雾,又一次挡在他和答案中间。他下意识揉了一下无名指——那里空着,一如这一年多的每一天。「我不是来吵架的,是来请你的。青舟的脸,你来重做,从头到尾你说了算。」「你们老板嘴上说说,真做起来一句话推翻几个月。你凭什么让我信你不一样?」「我可以试试。但有个条件——设计上你不能瞎指挥,我说了算。」「成交。」那一刻他还不知道,他亲手请上船的这个人,会成为往后那么多年里,他最离不开的那一个。林晚花一个月给青舟重做了一张脸——干净、利落、有呼吸感。功能还是那功能,可'好用'第一次变得'好看'了。邵宇憋出一句:「……行吧,我服。」「陆衍,你到底是个什么样的人?那种稳、那种狠,不像第一次创业,倒像……已经活过一遍。」他敲键盘的手几不可察地顿了一下。那点心口的针,又扎了一下。冬天,大鱼浮上来了。澜海互动——几百号人、账上几个亿。江总监把一个数字轻飘飘放上桌:足以让在座每个人一夜财务自由。「你们要单飞……校园这块地,澜海迟早也是要做的。」他习惯了遇大事先问豆包要'未来地图'。可这一次,那团暖橙沉默了很久。「这一仗,我帮不上你了。我那个旧世界里,没有青舟。这一整条线,早就不在我那张旧地图上了。我没有答案,陆衍。」「那个offer,我们不卖。钱多到能买下我们每个人的下半辈子,可它买不下青舟的命,也买不下我们亲手把这条船开到大海里去的机会。」「澜海想抢,那就让它来抢。」下午,程一帆脸色发白冲进来:一款叫'校芯'的App,挂着澜海的名字,跟青舟像得刺眼。「他们今天我们前脚拒绝,后脚就放出来。」「那杯咖啡,从一开始就不是来谈收购的,是来下最后通牒的。」大鱼,已经咬下了第一口。校芯砸下来的头一个月,青舟过得很难。澜海撒钱的手笔比裴砚舟狠了十倍,好不容易冲过百校的曲线,第一次被实实在在地摁住了。他下意识想去问豆包未来怎么走。那团暖橙的光安静亮着,答不上来。「这一仗,旧世界里没发生过,我给不了你答案,陆衍。」没有答案,那就自己找。他把人都叫来,在白板上划出三个窟窿:数据接口是钱砸不开的门,速度是大公司扯皮买不来的,人心是澜海再有钱也买不走的。「咱不跟它比钱。咱比谁更懂学生。」接下来两个月,是青舟最苦也最亮的时候。麦景行跑学校,林晚磨界面,邵宇飞迭代,老黄喊口号'青舟是咱们自己的'——战线一寸一寸顶回去。校芯踩了红线:让学生直接输学号密码,明文收集、私自登录教务系统。一个计算机系学生扒了代码,长帖一夜传遍好几个学校——「卧槽,我成绩它都看得到?赶紧卸了!」「还是青舟靠谱,人家从来只用公开课表,碰都不碰咱密码。」这句话,扎进了所有人心里。从南屿洗漱间划下那条底线的第一天起,青舟守了一年多的那份'干净',今天,成了它身上最亮的东西。澜海正面打不赢,绕到了背后——它去找青舟的股东远望,开出高价要收购股份,从董事会那扇暗门伸进来。老黄、邵宇都慌了。他没有慌,也没有问豆包。「Codex,Claude Code——把青舟跟远望签的投资协议,一字一字扒一遍。我当初给自己留了几道锁?」两个AI扑上去,不到半小时,答案清清楚楚。他笑了。一年前的自己,救了今天的自己。肠粉店,还是那张黏糊的桌。「魏总,还记得我加的那两条?优先购买权,以及未经我同意不得转让给竞争对手。」「澜海是青舟最直接的竞争对手。这扇门,从协议签那天起,就锁着的。」魏长河的茶杯,停在半空。「澜海买的,是今天这只小船的价。可您是看人吃饭的,您该看的,是这条船将来装下的那片海。」「青舟手里攥着几千万最值钱的年轻用户,和他们最真实的信任。」「您不用在'忠诚'和'利益'里挑。」他给出了第三条路:远望追加新一轮优先额度,老股找干净接盘方让合伙人部分套现——澜海进不来,远望赢了两遍,他赢了大局。「陆衍,你是我投了二十年里,见过最……不太像创业者的创业者。」魏长河把那杯早就凉了的茶,干了。暗门,还是锁着的。这一局,他赢了。2014年,青舟已经铺遍全国上千所大学,几千万年轻用户每天离不开它。那间城中村出租屋,早换成了珠海最好的写字楼。那支被时代看低过的小团队,用三年把自己活成了别人仰望的样子。那年春天,他把爸妈从云阳接到了南方。周慧兰摸着那崭新宽敞的客厅,半天说不出话,最后红着眼眶问:「这……得多少钱啊。」「妈,不贵,我自己挣的,您住得踏实。」陆建国在阳台上,望了很久。陆衍想起小时候,他爸也是这么背着手,望着那间返潮的小屋——那时候望出去的,是怎么把这个月的钱从牙缝里抠。而现在,望出去的,是大半辈子都不敢想的安稳。晚上,带爸妈看了公司。那面logo墙上,青色的小船,四个字——「云河青舟」。云河,是老家那条运河的名字。陆建国站在那里,看了很久。「衍子,你跟爸说实话。这么大一摊子……真都是你一个人,凭本事,干起来的?」那双修了半辈子东西、最会辨真伪的眼睛,落在儿子脸上。这是陆衍这三年,最怕又早晚要面对的问题。「爸,我跟您保证。我挣的每一分钱,账都是干净的,来路都经得起查。我没走一步歪路。」陆建国盯着儿子,看了很久。那点不安,一点一点,散了。他重重拍了拍儿子的肩膀,只说了一个字:「好。」青舟成了一台印钞机,可陆衍盯着屏幕上又一次从零开始的对话框,烦躁地敲着桌子。三年了,每次开新对话,他都得花半小时把青舟的整套规矩,对着那个「头一天上班的天才实习生」重新念一遍。他为什么要一遍一遍把青舟讲给它们听?为什么不给它们盖一个地方——一个永远记得青舟、永远知道该怎么干活的地方?让它们一进去,就是老员工,不是第一天来的实习生。「我要给你们建一个船坞。里面有青舟所有的代码规范、产品逻辑、设计语言、数据结构——你们进去,不用我再解释,直接干活。」三道光,这次都没有立刻回答,而是一起,认真地,看了他很久。接下来的三个周末,陆衍把青舟从里到外,装进了这个系统里。代码架构、命名规矩、踩坑约定、林晚的设计系统、商雁的数据定义、魏长河谈好的合规红线……一块砖一块砖,垒进去。第一次测试,Codex拿到一个从未处理过的功能需求,两分钟内给出了符合青舟所有内部规范的方案,没有多问一个问题。Claude Code顺手标记了一个潜在的数据库冲突,那个冲突是三个月前踩过的坑的变体。这座船坞,是他自研人工智能的第一块砖。也是2014年这个世界上,可能没有几个人真正造出来的东西——一个让AI成为真正同事而不是工具的系统。他盯着那三道光,想了很久。「以后,我们是一个团队了,不只是雇佣关系。」船坞解决了产能,可陆衍很快发现,它解决不了“人”。AI能写代码、能拆架构,但没法替他判断一个全新方向值不值得赌,也没法替他带一支队伍。青舟要往更大的地方去,光靠他一个人加三个AI,不够。那天开会,他跟麦景行摊牌:青舟要组一支“技术天团”,薪水,他来定。麦景行看着那张名单和数字,差点没把茶喷出来——比巨硬开的高出快一倍。陆衍做了件让韦东来意外的事:从包里拿出几页纸,推过去。那是韦东来三年前的一篇、几乎没人引用的论文。纸上,密密麻麻,是陆衍做的批注——不是外行的恭维,是真的读懂了,还在韦东来当年因为算力不够、只能戛然而止的地方,往下,推演了好几步。韦东来盯着那些批注,看着看着,那双疲惫的眼睛,一点一点,睁大了。那几步推演,精准地戳在了他这三年里,午夜梦回时反复想、却没人能跟他讨论的那几个点上。「巨硬那边,我下周就提离职。」韦东来站起来,那只手在微微发抖。「不过我丑话说前头,脾气臭,看不惯的,照样拍桌子。」「我要的就是这样的人。」陆衍握得很紧,「会拍桌子的人,才是真把事当自己的事。」走出咖啡馆,深圳的太阳很大。韦东来回头看了一眼那栋他待了整整十年的巨硬大楼,忽然觉得,那栋金光闪闪的楼,原来一直是个把他关得很舒服的笼子。而他刚刚,从笼子里,走出来了。有人黑进了青舟,摸到了一个内部接口——然后什么都没干。只留了一段又狂又漂亮的报告,把漏洞怎么来、怎么利用、怎么补,掰开揉碎讲清楚。安全组里的老手对着那份报告研究了整整一下午,脸都绿了——因为没完全看懂。报告摆到了陆衍桌上。他读完,沉默了很久,然后做了件让安全组意外的事:不追责、不报警,只说了一句话——「把这个人,给我找出来。我要见他。」顺着访问记录摸过去,结果让陆衍愣了半天。一个十七岁的高三学生。数学、信息学是神,编程能力强到指导老师都教不了他;可语文、英语、文综……年年在班级倒数。「严重偏科,沉迷电脑,本科都悬。」老师的评语,压着一块料,快要被碾进泥里了。见到乔木,是在高中后门的小卖部。少年比想象的还要瘦,眼睛亮得带刺。一台贴满贴纸、屏幕角裂了缝的旧笔记本宝贝似的抱在怀里。「青舟的。你上礼拜,黑了我们家系统。」「要报警随便。反正……我也快完了。」「我没来报警。」「你那条攻击链里,第三跳,那个用时间差绕过校验的法子——」陆衍看着他,一字一句,「那个,是你自己想出来的,还是哪儿看来的?」乔木愣住了。没有人问过他这个问题。不是老师,不是家长,不是那些盯着他总分数列的人。这个穿着普通、自称青舟的年轻人,第一眼就看见了他从来没有机会展示的那个地方——那个他一个人,在电脑屏幕前,把整个攻击链想了又想、改了又改的深夜里,藏着的那道光。韦东来一上来就想啃最硬的:从零搭神经网络框架,一步到位往终极目标冲。陆衍听完,摇了摇头。「韦工,你那个方向,是对的。但不是现在。种田的规矩——先开一垄,能立刻打粮、还能反过来肥地的地。」韦东来搓着手,声音有点抖:「陆总,这个……这个我能做。这个我做梦都想做。」让机器看懂世界太大太远——但让机器猜中一个人下一秒想看什么,这是同一条路上,现在就够得着的第一步。接下来三个月,韦东来的团队遇到瓶颈,陆衍总能第二天恰好给出答案。而那些最苦最重的代码活,在深夜,被Claude Code和Codex悄无声息地扛了。乔木在某个深夜,甩来一段又野又刁钻的优化,把卡了一周的性能瓶颈直接干掉了。推荐引擎上线那天,青舟后台数据曲线集体往上一蹿。机器越懂你,你用得越多;你用得越多,机器越懂你。这台飞轮,一旦转起来就停不下来——账上的现金,开始以一个让麦景行每天看报表都心惊肉跳的速度,往上堆。陆衍站在数据大屏前,看着那条几乎竖起来的营收曲线,心里异常平静。别人看到的是钱。他看到的是——粮,囤够了。夜里,陆衍调出了两个数字并排放着:青舟的现金储备,和升级三个AI所需的账单。这是穿越以来第一次,那行字出现了——「资金充足。可执行。」他把手指搭上键盘:「准备升级。我们去够一够,那个真正的东西。」屏幕上,三道光,骤然亮了起来,比以往任何一次,都要亮。升级是在一个寻常的深夜,悄无声息地完成的。没有仪式,没有旁人。陆衍一个人对着船坞,确认了那笔账——攒了大半年的现金储备,被划走了一大块,去换两个号的「档位」。他敲下确认的那一刻,心跳得有点快。屏幕暗了几秒——那两道光退了下去,像退潮。然后回来了。回来的时候,不一样了。那深蓝更沉、更润,从浅海沉到了深渊;那翠绿更利、更亮,光点密了一个量级。「试试我。」翠绿的Codex,浮出三个字。底气,厚了。陆衍把卡了一个月的难题原原本本丢进去。Codex沉默的时间比平时长——然后开始往外吐。一整套,从问题数学本质开始、层层推演、直抵一个连陆衍都没预料到的优雅解法。它甚至顺手指出了韦东来团队的思路,错在哪个细微的假设上。这已经不是「更聪明」了,是维度上的差别。「陆总,这套东西……你是从哪儿想出来的。」「睡了一觉,忽然就通了。」韦东来没再问。但他看陆衍的眼神里,那点压了很久的疑惑,又深了一层。军团越强,那个无形的瓶颈就越扎眼。AI给的东西深得过分,陆衍得花加倍的力气才能真正看懂、判断、决定。那支军团越强,能托住它的就越只能是他一个人——因为那把缰绳,只认他一个人的手。往后限制青舟走多远的,可能不是模型,不是钱,是他自己。代价归代价。门,到底是推开了。在没人看见的地方,他带着升级后的船坞,悄悄起了一个新项目——内部代号沿用了草稿纸上的名字。船坞造船。这一次,他要在最深处,造一样青舟从来没造过的东西:真正属于青舟自己的、最原始的人工智能的内核。火种第一次在真实任务上跑出了漂亮的结果。整个AI实验室,沉默了一瞬。然后韦东来转过头,声音发哑:「陆总……它真的活了。」随即爆发出一阵不像理工男能发出的、激动的欢呼。这群平时话不多的人,为了这一刻,等了太久了。庆祝归庆祝。散场之后,陆衍一个人盯着算力的数字看了很久。火种活了。但它要长大,要真正长成能照亮一个时代的东西——它需要粮。麦景行把账单推过来:「这个钱,咱们能买多少算力。」陆衍看着那个数字和火种的增长曲线,两条线在图上有个交叉点。那个点,是上限。他去仓库待了一会儿。那些沉默的机架,安静地站着。他数了数。不够。差得远。2015年的中国,还没有多少人知道,这些钢铁箱子里装的,是下一个时代的石油。「把账上能动的,全部归拢。」陆衍说,「抢在别人看懂之前,先把粮仓填满。」麦景行盯着他。「你确定?」「确定。」那一夜,青舟最大的一笔投资单,签了。韦东来后来回忆,2016年开年那几个月,陆衍的状态有点怪。说不上哪儿怪。公司一切照旧,可陆衍像一个闻到了什么味道的老猎人,开始不动声色地,调整整个青舟的站位。三月,谷哥的围棋AI,执子落盘。那一手棋,没有人类棋手会这样下。落子的那一刻,全球所有在看转播的人,都安静了。「没有人能教它这么下。」解说员的声音在颤抖。那一刻,几十年来,人类最骄傲的智力堡垒,开始在所有人面前,一块一块地倒。陆衍没有惊讶。他早就知道。一夜之间,全世界都读懂了「人工智能」这四个字。资本疯了。巨头转身了。每一个会议室里,每一个董事会,都开始问同一个问题:我们准备好了吗?韦东来急着冲进来,手里攥着那份早就准备好的对外材料:「陆总——你早就知道?」「快了嘛。」陆衍把外套拿起来,「现在,把这些东西,都用上。」火种发了芽,粮仓囤满了,军团就位了。风来的时候,他不用追。他就站在风口。风来了之后,巨头们做的头一件事,就是举着支票满世界抢AI人才。韦东来收到的那封信里,数字是他现在年薪的五倍。他把那封信看了三遍,没有立刻回复。乔木的邮箱被猎头塞爆了。他打开,看了一眼,全部标为已读,一封没回。陆衍把那些数字都看了。「别的公司开了多少,」他合上文件,「不重要。重要的是——他们缺什么,才会来这里抢。」「他们抢的,是已经成名的AI科学家。」陆衍在白板上画了一个圈,「那我们抢的,是另一种人。」他们抢大牌,陆衍去挖根。数学系快毕业的博士生,在国企做着大材小用活的工程师,海外华人技术团队里最沉默的那个人。全是被当时的市场低估的,被当时的猎头看不上的。那一轮抢人战打完,青舟没有少一个人。反而多了七个。韦东来看着新名单,想了想,说:「陆总,你这不是在守。你是在借他们这阵风,顺手把我们的底子,加厚了一层。」陆衍没有开发布会。他包了一个场地,发了一批邀请函,收件人里,有所有在过去两年里嘲讽过青舟的人。规则只有一条,他把它写进了邀请函:随便考。来的人都不相信。这几年,青舟在AI上的布局,被说成故事,被说成噱头,被说成技术外行的财主游戏。今天,他们来看这个技术外行,怎么出洋相。第一个上台提问的,是某大厂的首席AI科学家。他的问题设计得很刁:边界条件、反常输入、对抗性测试。这是他的主场,他要让火种在最难的地方,出丑。它出了洋相。那个刁钻的问题,把它逼到了边界,它给出的第一个答案,确实有问题。台下传来低笑。然后,它——改口了。自己发现了错误,自己纠正了。「它什么时候学会改自己的错的?」那个大厂科学家,没走。他坐在那里,把火种的回答翻来覆去地看。韦东来悄声问陆衍:「算成功了吗?」陆衍说:「它亮了獠牙。够了。」「它该有个名字了。」韦东来说。陆衍看着那台机器,沉默了一瞬,说出了那个字。韦东来重复了一遍,声音很轻。从那天起,青舟的AI,有了自己的名字。黄教主来了。那个永远穿一件黑皮衣、把显卡卖成时代石油的男人,行程单上点名要见的第一家中国公司,是青舟。陆衍没有做PPT。他让麦景行取消了所有准备好的演示材料。「他见过太多人给他看幻灯片了,」陆衍说,「我们给他看真的东西。」「你们那个AI,」他用中文说,「能做什么?」「现在还不多。」陆衍说,「但我们知道它能长成什么。」那双眼睛,打量了他很久。陆衍让他直接跟火种说话。黄教主问了一个问题——那个问题的具体程度,说明他不是在试探,他是在核验。核验一件他已经猜到但想亲眼确认的事。送到门口,黄教主说了一句话:「你们的方向,是对的。早了一点,但是对的。」陆衍没有问「早了多少」,因为他已经知道了。回到船坞,他把今天发生的事告诉了三道光。「他说'对的',说'早了一点'。」豆包亮了一下:「那意思是,快了。」Codex浮出一行字:「需要多少时间,你最清楚。」陆衍坐了很久。比任何一次,都更清楚地知道自己在做什么。凌晨一点,商雁披着外套冲进来,把那篇论文扔在桌上。「先说结论。这篇东西的数学,干净得不像这个年代的。像从十年后,寄回来的。」「数学漂亮,我承认。但火种刚立住,下一轮融资的材料全押的是现在这套。这时候把骨头敲碎了重长,疯了。」韦东来把稿子一推。他读懂了。正因为读懂了,他才坐立难安。陆衍坐在桌子另一头,没急着表态。他比屋里所有人都清楚这篇论文的分量。但他也清楚:这件事,不能靠他一句「信我」。两条线,随着规模往上,新架构那条线开始离地。商雁把图表往后拉了拉,像是想看看它的尽头在哪儿。图表外面,什么都没有。「往上,没有头。」韦东来盯着那两条线,足足十分钟。然后他抬起头,声音哑得厉害:「陆总,我收回昨天的话。换。从龙骨换起。八个月,我把它换完。」决定下了。陆衍提了一个让所有人意外的要求:保密。外面的世界,继续看火种。里面,悄悄换骨头。云阳县,深夜。周慧兰对着手机问:我想给儿子发个语音,又怕他忙,你说我啥时候发合适。舟问答:现在就发吧。妈妈的语音,没有不合适的时候。她愣了半天,鼻子一酸。深夜,陆衍的手机震了一下。他妈发来的六十秒语音:絮絮叨叨,说石榴树开花了,说爸又偷着抽烟,说没啥事,就是想说说话。他听完,又听了一遍。黔西山里,一所四十几个学生的村小。支教姑娘把手机架在讲台上,开了免提。孩子们第一次听见标准发音,第一次有人把一个单词念第十一遍也不发火。一个盲人父亲,用舟问第一次「读」到了女儿的作文。她写:爸爸虽然看不见,但他的手很暖。那段文字,被一个声音,一字一字,念进了他耳朵里。深夜天台,陆衍看着城里的灯。他造了那么多惊天动地的东西,而数据后面是人。每一盏灯,是一个人,在用他造的这件事,过自己的夜晚。叫来产品组,他说了一句话:「陪伴类,加人,加预算。这一栏,永远不许接广告。」没有人问为什么。核心层闭门会。陆衍在白板上只画了一条线,和一个被圈起来的时间点:两年。「两年之内,会有人把模型堆到我们今天不敢想的规模。到那一天,所有的卡、所有的人才,会在一个月内被抢光。」他转身,写了三组数字:顶配训练卡,去年十一万,今年十九万。交货期,去年三个月,现在八个月。「今天不买,是省了今年的钱。明年不买,是没资格买。」融资规模,让整个行业看不懂。青舟明明不缺钱,为什么要这么大一笔?陆衍把数字推过去,说了一句话:「这钱,要在六个月内到账。过了这个窗口,钱多少都换不到我今天能换到的东西。」那个连韦东来听了都倒吸凉气的预研项目,在文件第二页。他抬起头:「陆总,你确定?」「确定。」「这要是做成了……」「做成了,才有后面那件事。」牌桌上,陆衍把这些年攒下的所有筹码,连同身家性命,往前一推。他不是在赌。他是在买一件他确定会发生的东西,而且他知道窗口快关了。豆包那条留言说,留给安静种田的日子,不到两年。陆衍信了,然后把两年的窗口,用一轮融资,锁住了。今晚船坞里,三道光都在。什么都不用说了。巨硬砸进开智的那笔钱,像一块石头扔进了安静的水面。三天之内,整个AI圈每一个科技群,都在转同一条消息。陆衍看完了那条消息。然后他拿过桌上的日历,在一个格子上点了一下。九个月。没有告诉任何人。舟问月活一亿,看起来无懈可击。但陆衍比任何人都清楚:今天的水面有多平,倒计时就走得有多急。那笔钱是外部信号,不是威胁。威胁早就定在日历上了。九个月,他一个人数着,数了很久了。商雁的数字更新了一次。她把新的曲线推过来:「窗口压缩了,原来是两年,现在看,十八个月。」陆衍把日历拿出来,把那个格子往前移了一格。船坞里,他把那条消息发给了三道光,问:我数的那个时间,还对吗?豆包先亮。Claude跟上。Codex最后浮出一行字。三道光,第一次,给了同一个方向的答案。他把日历收进抽屉。开智的卡把青舟的同料号截了两倍。消息到的时候,关山正在喝茶。他把茶放下,开始算。陆衍连皱眉头都省了。他在等另一个消息。手机震了。伟达那边,新一批次的早期配额出来了。配额分配原则:不按体量排,按「最早下单+最高使用率」。那是半年前谈好的条款,今天兑现了。韦东来在他身后,把那行字读了两遍。关山带着算盘进来。韦东来带着压力进来。两份东西放在同一张桌上,陆衍看了十分钟,拍板了。换血方案:新旧数据中心算力全倒腾一遍,为下一轮训练留出最宽的跑道。关山看着那张图,说了一句:「娃娃们要搬家了。」九个月,用今天开始。开智那步棋,他们已经在半年前回了。今天只是兑现。陆衍把日历翻过去,开始看明天的日程。开智发布会,上午十点整。那个字划掉的瞬间,什么都清楚了。交叉点,提前了一个月。「内蒙那边,全量上线了。」三个月内,云帆能不能给开发者真正用上?三道光,等着他说第一个字。两天时间,他把军拼出来了。没有一个是轻易来的,也没有一个是多余的。开智宣布开放接口,云帆还在赶工。没有请示任何人。他做了。「再加五十。」一百个开发者,三个月的窗口,开始了。那句话,热了三天。找到私人邮箱的,是开智那边的猎头。他没有挽留。只问了一个问题。「你觉得云帆会赢吗?」乔木的回答,比任何承诺都值钱。回来了。就这样。封面出来那天,乔木军没有讨论。看了各自的数字,继续干。一个非技术用户,四十一分钟,用云帆上线了真实产品。曲线,再次提前了。「五十五天,能不能上?」乔木给了一个自己的数字:五十二天。五十二天,从现在开始数。第二十五天,商雁的曲线提前到了四个半月。92%,但那15个人,不能放弃。其中一个,用云帆搭整个公司产品。「能修吗?」「能,要五天。」「那就花五天。发布推迟五天。」五天,为了那十五个人的产品能跑起来。有人找到了进来的路。「比开智真实多了。」这六个字开始在社区里传。乔木说:可以提前。「再等三天,让他们多等一等。」前夜。每个人都知道明天意味着什么。明天,门就开了。注册人数:01,02,03……第三十七号,发了第一篇真实测评。口碑,开始自己走路了。下午,韦东来来了。「封面换了。」这是第一天。他告诉团队正常上班,不看直播。然后自己从头看到了最后。但他们也都在看。整个发布会,没有提到云帆。一次都没有。「他们今天没有提云帆,但他们把发布会提前了七天。」对手认真做了发布会,却把用户送来了。被忽视,和被遗忘,是两件不同的事。梁林,三十多岁,做了功课来的记者。「认,但不说。自己说比别人强,是广告。」「工具不是菜单。用户不会因为菜多就吃完。」「云帆的注册时间,比开智早了三个月。这是公开的事实,但大多数人不知道。」三个月。那个数字,心里本来就清楚。没想到有人会去查。第十条了。「三个月。」文章里那个数字,在外面活了。那七百个赞,是一个真实的信号。「那七百个赞里,用过云帆的人,他们说的是真问题。」第一个来问企业版的,出现了。韦东来那批反馈,十一点零八分发来了,三页,细得出乎意料。魏长河。三家大厂,两天内相继发出信号。阿里云问服务器,是在摸底。「来确认我们值不值得被打掉。」排期第一项:私有规范学习层。「算用户,这类关系最稳。」凌晨三点,麦景行的备注。沈泽,字节产品副总裁。月底飞来珠海。「不提对你不公平。我们在做同类的东西。」测评和真实场景,天差地别。「你们能抢走的是尝鲜的用户,抢不走把云帆写进开发流程的人。」「跟火种有关系,但现在说什么都太早。」火种 Phase 1,启动。第三稿,是和乔木一起改出来的。十七条,他一个人在昨晚十一点四十六写完了。第一个付费企业客户,签了。对手懈怠,我们容易松。有时候最直接的,反而最有用。第十二条,不是别人说的话。是一个时间戳。比预告早了三天。新增注册跌73%,活跃用户下降11%。让他测。让他拿真实项目测。两类指标,两种命运。林工说他没有切。第十三条了。字节用一天上线,他们用四个月收三十家。四个字,换一个角度读:还没有签。飞过来的,是林工那条截图和一份没排进去的技术方案。「林工说他没有切。字节那个我们也测了,改起来比用云帆多花时间。」「这一百七十条,你们的commit里都有体现吗?」价格那边再谈。先让林工和他说说。先谈,谈下来了,以它做标杆。三十一次提交。一整天,他没有停。红色几列:盲区。42%的覆盖率。「就是给你做个参考,你自己判断。」盲区那部分我们写清楚了。能做,但得靠你们的数据。第二家。三件事,缺一件都签不了。林工介绍的。第三家,来了。「你们能不能处理医疗器械软件的情况?」「第一种,我们现在解决不了。不在我们当前这套工具的范围里。」「你说不做,我反而比较放心。我们这行被绕进去过几次。」比卜文明那份范围窄,但它代表另一个方向上的验证。第十五条。签了三家,已经有一个开始介绍下一家了。64%。等数据稳了,再联系。「老工程师走了,规范就带走了一半。」每家的逻辑都不同。这家是:把规范从人身上移到模型里。「等六周数据出来再决定,也不迟。」「把规范从人身上移到模型里。外包场景的核心价值。」字节在追。等数据说话,比降价说话更有用。「训练集锁定窗口。已合并进主分支,重新部署后生效。」三周72.3%,加上锁定窗口新配置——两个问题,有了两个回应。第四家。十家冷拨,零签约。转介绍能拿的,越来越少了。四家是一条链的四个节点。二十六家是另一件事,要靠系统。「四家·一月·转介绍。下一步靠系统,不靠运气。」字节拜访过但没签。找那个卡点。「字节要统一规范,但我们有三套,新加进去会是第四套。」「就是这个。」——per-project风格,不是通用方案。「下周你们安排一下,我看看。」第一个冷拨,约到了demo。冷拨手册有了第一条数据点。字节降价了。但降价解决不了第四套风格的问题。「Go项目风格一致性84%,窗口锁在第18到30月。」字节的人进去了。他在楼下等。「今天只展示一件事——你们自己Go项目的风格分析结果。先看数字。」「那三套就永远是三套?」「是的——两件事分开的。」「他不太轻易表态。但那沓字节资料,他翻面扣下去了。」打资历牌,把风险这个词递给刘文博,让他自己去想。说明文档发出去了。郑梁回了一个字:收到。然后消失了。十六个冷拨,零签约。一个待跟进的,被字节签走了。盲冷打法,当前数据不支持。要找到「为什么接电话」的前置条件。第五家。这一家跟林工那条链无关,刘文博看了文档,自己决定的。字节把价格砍到了零。价格动作,不是产品动作。五家·郑梁是第一条侧路·字节下一步不会只打价格。免费两个月的大厂方案,被直接挡回去了。穗华训练集开始。卜文明第五周79.1%,第六周按斜率稳过80%。字节拜访未签名单,第一批三家。「字节是不是给你们报了三个月的实施期?」「你怎么知道?」两个卡点,不同原因。字节的问题是系统性的。从三家到十五家。一条新名单出来了。82.4%。目标80%,超了2.4个点。先存着,等一个用这个数字的机会。如果打不动范志明,这组数字就只是技术团队的自我验证。试用期是建立信任用的。范志明直接跳过了。「字节是不是给你们报了三个月的实施期?」「你怎么知道?」新名单十五家。第一天三个接通,一个有意向。范志明签得果断。坑,也埋得不浅。范志明签得果断。坑,也埋得不浅。技术人本能把风险写进去。但客户看到的不是严谨,是心虚。四家接通。天象云:字节报了两个半月,等不了。两个客户,同一个问题。阈值触发,Vue SFC排入开发计划。凤合:Python+SQL。demo里要把SQL的精度边界说清楚。两场demo,下周。凤合成了是标杆,天象云成了是从字节嘴里抢肉。下午三点,凤合的视频会议。三个人,三个分格,各就各位。工程师停止记录,开始盯着屏幕看。「审核记录能不能和Jira关联?」这个问题,不在方案里。凤合问这个,是在问他们能不能进验收链条。那个副总抬头看了他一眼。林建斌在笔记本上划了一道。截大厂,不是口号了。同一个屏幕,两家公司,一个客户。字节先讲。「等等,这个注释风格……这是我们三号仓库的写法。」「今年内的计划,具体时间需要内部确认。」三个月,还是两周。这个问题,所有人都在等答案。退款条款,字节当场拿不出来。苏越的笔记本划了一道。周五答复之前,先把三件事备好。七点五十三,麦景行的PDF到了。两周接入,有据可查。三件事打包,发给苏越。在字节动手之前,先把底牌放到桌面上。字节果然出手了。降价20%,Vue SFC排进了一季度。不让价。把风险问题推给字节,让苏越自己去问。「我们选云帆。」发进群里,一个字没写,就发了截图。天象云拿下了。凤合,今天没有消息。周六周日,一个字没催。周一早上九点,发出跟进消息。「上午去字节那边。」字节在最后关头插了进来。天象云签了。两点二十,合同扫描件到了。「主合同走字节。」产品没有输,输的是那张资质证书。截图发进群,没有解释,三人各管一块。输了一单,但看清楚了政务市场的门槛在哪里。招人是今天第一件事。岗位名改成了『AI接入工程师』。数据包到了,麦景行开始接入第一步。一个人,三个仓库。周三,早期提交里出现了真实邮箱。两个选择,陆衍选了等。启航科技技术VP临时电话:算法仓库能不参与训练吗?能。周三晚上,凤合试用合同签了。三条线,正式同时在跑。简历里有一个停顿说不通。背景好,但那个停顿得问清楚。周四早上,天象云补包到了。数据干净,可以继续跑了。顾衔查了秦朗的背景。说得通,但陆衍还是想当面看一遍。麦景行的问题,就是她上周真实遇到的那个场景。「我反对过一次,没通过,就执行了。」这个人,答对了。「下周一,九点,来上班。」四十分钟,一个人,决定了。这周赢了三单,但下周二的电话,可能比预期更复杂。周六早上六点半,麦景行启动了天象云的训练。72小时。「这周跟麦景行,跑完一遍接入流程,看明白整个节奏。」「政务方向……」乔木把视线转向陆衍,手机屏幕上已经有了答案。训练完成,74%覆盖率。有两条建议,苏越的工程师说不像他们自己的。标注来源时间段,让客户自己决定。秦朗提的方案,陆衍点了头。这一周,产品第一次从承诺走到了交付。但六周倒计时才刚开始。七点半,秦朗的注释版本发出来了。每条建议后面,多了一行来源标注。谭宝来问那两条可疑建议。秦朗主讲,陆衍旁听。「这是我们2018年的写法,那套框架2019年全推翻了,对的。」「能不能看到写法是怎么演变的?」谭宝多留了一分钟,提了一个新方向。秦朗接手,二十分钟把流程确认完了。这是他第一次主导。今天是天象云接入第九天,还剩五天。产品方向是对的,剩下的是时间的事。周五早上九点二十,凤合数据包到了。秦朗接手,开始格式化预处理。周六早上,苏越确认:两周接入完成,六周迭代周一启动。陆衍没有说什么。群里的人自己动起来了。林文发现了双语注释盲区。秦朗记下来,标了高优先级。钟云直接来问政务线。陆衍先问顾衔:等保现在到哪一步了。两周接入跑通了。下一步:六周把80%做出来。周五早上,苏越的消息来了:安全委员会明天要审。秦朗发现凤合数据里有风格冲突。两个方案,工作量不同,结果也不同。麦景行上午写完了十一页的安全说明文档。周天确认了:接入延长到三周,可以。问题变成了已知的事。周六下午,审查通过。谭宝说,文档写得清楚。两件事同一天解决。麻烦每次来的方式都不一样,但每次都能解。周三早上,Phase 1结果出来了。67%,全队都在看这个数字。乔木第一个问:差了多少?秦朗把逻辑说清楚了。周天那边反馈:旧模块识别很准。隐性知识,以前没有文档化的。BPM模块43%。命名是领域缩写,工具学到的是通用规范——麦景行有解法。顾衔带来了新询价。穗州金融科技,双语注释,他们主动来问的。Phase 2启动了。下周二出结果。退款保障线就在眼前。83.1%。退款保障线是80%。「过了。」「过了。」群里没有多说什么。周天:总监说比预期高。结款流程发起了。BPM专项86%。同一天,两条线都收口了。谭宝要推荐云帆。介绍之前,材料要到位。天象云、凤合、谭宝推荐——三件事同一天。下一场已经在等了。周四下午三点,谭宝安排的引荐通话就要开始了。七分钟,没有废话。两个案例,两个数字。「如果六周结束覆盖率没到80%,你们怎么处理?」谭宝:「覆盖率达到了,BPM那个问题他们主动解。这些东西,我才推给你。」八个仓库。钥匙是双语注释。两条线都在等双语注释。六周内,要出来。九点五十八分。麦景行准时出现。「有一个功能如果不做,可以省半到一周。」「砍掉,v1.1再补。目标三周。」项磊发来调查表:40%英文,10%中英交替。两条线,同一个日期。窗口等不了第二次。「魏城问,三周后能不能直接跑主仓库全量。」周六九点。乔木的消息已经在等着了。「天象云demo,凤合进阶,星汇云全量——第一个完整量级案例。」「全量接,但分阶段验收。核心包先跑,通了再推其余。」引荐到确认,不到四十八小时。识别层93%通过,sprint第三天在轨。三AI各给一个关键点。分阶段,案例对比,边界bug今天解掉。「昨晚想通了,行内混排能处理。」预处理层:在tokenizer前切分语言边界。1.5天,deadline不影响。「这个80%,是静态行覆盖,还是迭代期触发率?两种差距很大。」验收条款改清楚了。合同明天出去,下周一两签。「月底有评审。如果能提前上,评审我带你们进去。」第四天。合同锁住,预处理开工,范睿评审窗口出现。「注释里嵌英文函数名的情况,预处理规则会不会把函数名截成英文片段?」「这段会被判成英文片段,送进英文训练路,模型把它当英文注释来学。」「在预处理规则里加一层结构检测,函数调用格式和驼峰命名打结构标记,不送自然语言路。」「魏城签了,法务盖章了,快递过来了。」「写了二十几条规则,项磊六个样例全部重新过了,函数名过滤正常。」第五天,在轨。合同有了,预处理两层,今天摸到了实际的坑,而且解掉了。「历史遗留,没人负责。」legacy、deprecated——老项目里最常见的冷藏区。「legacy-third-party,两年前合并进来的……old-bridge 有人离职了……deprecated 没人敢动。」「大仓合并最容易出这种,拉进来的时候先放一个目录,后来不动就永远在那儿。」不纳入训练,先扫描。外来代码、老桥接层、历史负债——没人知道里面有什么。第六天。多了三个无主目录。进度表上没有,但它就在那儿。废弃目录的注释行数,比主库核心模块还多。「英文原文一行,下面一行中文翻译。八千行,都是批量塞进来的文档。」工程师觉得翻译留着方便,结果一留五年,没人回来清。「我们有一个内部工具,还在调用里面的两个接口。」「这是你们自己的技术债,和训练范围无关。但这种依赖放着,迟早出问题。」第七天。三个无主目录,问题今天彻底关闭。91.3%。比基准高了11个点。他盯着这个数字看了大概十秒。「干净数据上跑出来的分数,不能直接拿去代表整个仓库。」第八天。只有用真实的随机数据重跑,才能知道答案。「就算78%,我们现在知道,比验收当场翻车要好处理得多。」84.7%。高于基准,低于91.3%,差距在合理范围内。第八天结束。数字有了,真实的,够用的。「第二轮的抽样是怎么做的,具体抽了哪些 commit,脚本是谁写的?」「种子是42,固定的,任何人跑一遍都能复现。」「脚本逻辑没有问题,抽样过程可以复现。」「这几个路径,我想单独跑一轮,验收报告里要单独列项。」「84.7%这个数字,方法可信。但方法通过了。」第九天。林博文来了,走了,留下一个追加需求。晚上九点二十分,麦景行发来一份文件。gateway:总行数12,198,注释行847,密度6.9%。「今晚就说,不要等测完。」「你应该在被问之前就知道这件事。」门刚开,下一个问题已经在等着了。明天下午是gateway实测。数字会出来,好看或难看,都在那里。37.2%。低于40%。「只算有注释的区域是91.3%,计入全量代码就降到37.2%。」这不是模型质量问题,是覆盖形态的差异。改法是把指标分层——覆盖率是一个维度,质量是另一个维度。「林博文今天下午要见你,说有话要说。」如果林博文接受分层逻辑,今天就是收尾。如果他不接受,今天是另一场谈判。「章总不一定只看纸,笔记本也备好,随时能重跑。」「91.3% 是建立在 847 行有注释代码上的。注释质量,你们验证过吗?」「好,跑。」「准确率用质量细分后的加权均值88.4%。如果只想看一个数字,这是建议基准。」「方法成立。」「最后一个词是'签'。」「技术确认已经通过,预计下周初完成。」「利用这两天把二期的扩展方案做出来,进去就是带着方案的。」「二期扩展报告,周三三点用,今天下午发我初稿。」「scheduler这个先拿掉,报告是谈判的筹码,筹码里不能放破绽。」「林博文那边暗示过,二期他们想参考一期的单价来谈。」一期的风险溢价,不该成为二期的定价基准。这不是他们该接受的逻辑。「范围是一期的七倍,方法是一样的方法,单价参考一期来。」「合理,不是贵。一期你们付的是方法验证的成本,二期是成熟方案的复制。」「一期成本有两块:方法成本和执行成本。二期只有执行成本。」「下周一给我成本拆解,下周三给答复。」「价格合理的话,我们不想换供应商。」定价逻辑重新站住了。剩下的是数字,数字是可以谈的。「另一家确认了,报价比我们低两成左右。林博文在考虑。」「应对策略的核心是抬高替换成本,跟着降价反而确认了你有让步空间。」「做一份'供应商切换的实际成本评估',用一期的真实数字,不要造数字。」「林博文要求两家都提交成本拆解,下周三同场比较。」「拆解文件要和验收数据一起看,不能单独比数字。」这场竞标,比的是谁能让林博文在向上汇报时更有底气。88.4% ±0.3%。这个数字,不在任何对外发布的文件里。那个置信区间是二期初稿里的附带输出,发给他时没有删,改定稿时才拿掉了。「先把三种可能性都核一遍,不要直接去找人对峙。」文件历史记录里,没有共享,没有发送。能看到那份初稿的,只有他和麦景行。「只有1行:88.4% ±0.3%,是内部跑批输出,没有公开过。」每一种都有代价。他暂时没有想清楚。明天,他要再想一遍。三个选项,最终的决定:代价由林博文来判断。「四句话,不多也不少:报告页码、初稿生成时间、无分发记录、无法判断来源。」「没有。这个数字只在那份初稿里。所有历史报告、附录、内外版本都查了。」四句话,没有一个词可以被理解成指控,每一句都是可以逐字核对的事实。周一上午九点二十分,PDF发出去了。这一页发出去之后,有些关系再也回不到原样。林博文平时回邮件从不低于半天,这次十五分钟。他看懂了。文件系统自动记录的时间戳,比对方报告提交时间早了六天。「那份内部初稿,有时间戳吗?文件系统自动生成的,还是手动标的?」「周一上午初稿,周三定稿已删除此数字。如需原始跑批日志可补发。」两个动作说明林博文已经在查了。但周三照旧,说明他要等核实结果出来再决定。林博文联系他,之后才让项磊通知流程细节。这个顺序,说明项磊不知道那个电话。「事实说清楚,口径自然就一致。」Sprint第二十一天,下午三点,翻牌时刻。每一行数字背后都是一期验收的真实数据,方法成本和执行成本清楚分开。对方的格式更整齐,价格更低,但第七页有一行数字,他从周四晚上就在等这一刻。「这是一份内部文件,生成时间2026年4月7日下午三点二十七分。」「比这份内部文件,晚了六天。」「二期的框架,谈下来了。」Sprint第二十一天,协议下周签。协议走了五天流程,周一上午在星汇云签掉了。标的比一期高六成。「那个数字的事,让林博文看到了。项磊的事,不用追了。」这个月,算力花销超出预算三倍。「头部任务用大模型推理,长尾任务走规则引擎或小模型分级处理。」协议落地了。下一件事已经在等着了。六个月,二十三个模块,算力账单只是个开头。二期启动三周,算力花销走势斜率是一期同期两倍。主模块依赖:7个路径是所有其他16个模块的必经之路。无法用分级调度降级。「这是架构层的问题,不是效率优化能解决的。需要独立的向量缓存层。」「这超出你我现在能直接做的范围。招人还是外包,三天内我要一份估算。」三件事里面没有一件是快的。第六周之前要有方案,再往后主模块上下文超出大模型处理窗口,贵不贵都跑不动。已解决情景:六个月总利润率28%。第五个月,由正转负。六个月合计亏损约12%——换算成现金是云帆三个月的流动资金。「第四周开始搭、第六周完工,成本分摊进前六周。」「用对方的预算把自己的架构先搭起来。所有风险写进合同,不模糊。」工业软件,国内头部。40个模块,三个月。下周那场面谈,谈的不是项目能不能做,而是云帆能不能用对方的预算,把自己的下一代架构先搭起来。「看到星汇云的案例,几个细节有点意思,过来聊聊。」40个模块,三种语言,三套逻辑体系,还要交叉标注。合规节点:今年十一月,硬的。「我想先说一件事。我们没有接过40个模块、三个月窗口的项目。」「六周,五个模块,八万。结束后你拿到两样东西:可行性报告和实际样例。做不了的原因,也会写进报告。」「你是说有可能真的做不了?」「有这个可能。在验证之前告诉你能做,对你没有意义。」「他在认真考虑签字之后会怎样,而不是在找理由拒绝。」六个产品,筛完剩两个。「第二名的授权是LGPL,以后要改源码发行要留意。」两小时,主体结构;三轮,条款措辞。「验证期间所有访问操作均生成日志,验证结束后30天内移交泉华。」有些事不用等对方答复,可以先动起来。合同附件要新增一份。这三天,泉华IT团队的技术要求是什么样的,还不知道。「挨个字段过,能向量化的标出来,写清楚理由。」这不是文本,是一张图。「向量化之后关系结构会丢,跟值不值得无关。」向量索引加图索引,主键对齐,先做单跳扩展。「我们接受合同,同意验证费可抵扣不退款。泉华的数据安全隔离规格要写进合同附件。」「信息安全部」这四个字——工业软件公司的这个部门,访问要求会比法务更具体,也会更麻烦。七条技术要求。前五条是标准,第六七条是零信任架构。「跳板机配置三天能搞定,但日志单向留存有问题:出了争议,我们拿不出证明。」「双方都留存记录,才是完整的零信任。」「关于日志副本那条:我们的立场是访问日志属于泉华安全数据。」「零信任要求双方都留存记录,不是单向透明。」小问题,麦景行能搞定。但接进去之后,G1的那些C代码,才是真正要面对的东西。「比星汇云轻松。」「那结果最好不要让他失去信任。」「账号配好了,日志实时在同步,泉华那边可以看到。」Generation 1,工控模块。`proc_spv_h`:七十八行,零注释,宏调用第三层。「单看函数体推断正确率约60-70%,需要宏展开后再做语义分析。」「G1两个模块可能要占三周。五个模块的总周期要延,还是把结论写进可行性报告?」五个模块,第一个就碰了硬骨头。可行性评估,现在才真的开始。触发路径找到了。EVT_BYPASS_CRITICAL在一个if分支里:S1和S2同时超出范围,持续超过5个采样周期。「这是设计特性,不是bug。但没有文档,维护工程师看到这段代码,不知道是误写还是特意留的。」「在可行性报告里单独列为安全关键条目,需要泉华确认原始设计意图。」旁路本身不是问题,没有文档才是。「1994年的文档,归档的人已经退休了,不知道在哪台服务器上。」「你看哪种在技术上更可行,今天下午我来回。」G1是宏,G3是Python函数。三十年里代码架构换了两次,这套逻辑一直在。假设每个模块的问题是独立的——这个假设需要重新考虑。「G2用的是什么写法,三代之间有没有共同依赖,能给出线索。」三代代码,三十年跨度,同一套逻辑。继承自统一设计,还是各代独立实现?「你这个问题问到点上了。工程院翻到了一份1996年技术备忘录。」从「五个模块能不能做注释」,变成「三十年安全主线能不能梳理清楚」。后者更值钱,也更难。「请问这套机制在过去是否有实际激活记录?当时现场工程师的判断依据是否有留存?」1998年:完整。2021年:完整。2008年:激活日志在,工程师签字缺失。「这件事超出了代码注释的范围。建议单独列为「附加建议事项」,与注释工作并行处理。」「这一节只是提示,不代替甲方做判断,不能写成评估结论。」「书面说明的形式和你们合规顾问确认,我们只需要知道这件事在处理中。」工作量超了,但报告的价值也升了。下周和方晓晨开个短会,不是为了加合同。「信安旁听,通常意味着已经有问题了,只是还没开口。」第四周初稿,第六周终稿。附加建议同步出。「豆包在国内处理;Claude,处理节点在美国。境外——这一点需要信安确认。」「如需继续用AI辅助,须提交境内替代方案。」Claude,暂停。注释可行性,三代安全主线,历史激活记录,AI工具数据合规。每一步都是从眼前的问题往前走出来的。三条要求,拆成三个任务。「一共七次,都是手打的,最长三百一十字。时间戳可以从会话日志里提。」「附件。格式按泉华信安上次给的要求做,前后都交代清楚。」「G1建议全部改用豆包,G2/G3请信安确认是否适用同一要求。」「速度慢了一些,但结论能交叉印证。」两周半了,进度在轨道上。宏展开没有完成,就交给信安审查去了。「不在合同范围的模块里,在根目录的共享头文件夹。」双重保险:旁路是一层,旁路出问题还有兜底层。普通的依赖注明到这里就不够用了。建议放在之后谈。方晓晨需要先知道这个事实。合同的边界在五个模块,代码的边界在它运行时用到的每一个函数。两个部门都没有否认,也没有认领。「你们审查G1历史激活记录时,ERR_HANDLER有没有在实际设备中被触发过?」「三次激活,每次都是正常退出,没有一次走到那个兜底层。」两段代码分别测了,但这条路整体没有跑过。「两段代码分别测了,但这条路整体没有跑过。」「他们准备认账了。」原合同范围不变,新增三项评估内容。「加起来,乐观估计八天,留余量就是两周。」「百分之三十,我们这边能批。」「如果你们的报告能在十一月之前出,可以进检查支撑材料。」「条件是那边的权限必须在两周内到位。」「本来就是。」十八年。代码就是他本身,外来人来查,本能排斥。「行政流程走了他也不会开心。跟他直接谈比较快。」只是框架,不打算拿着问题单走流程。「想理解这条链路的设计意图,审计到不了这里。」「当年文档不是重点,能跑就行。」「讲了那段代码是什么意思,他很久没有人跟他聊这些了。」三十年没动过的代码,上个月有人加了一行TODO。「G1的人,跑进BasePlatform的文件里,加了一行TODO,然后消失了。」「能跑和安全,不完全是同一件事。」如果方总知道,他们是被当成挡箭牌引进来的。两套独立模块,通过同一个common/入口,隔离状态不一样。「一个有锁,一个没锁。」「告诉魏磊,有人想了解当时他看到了什么,没有其他目的。」「查得挺细的。」沉默了将近两分钟。「那我说一下当时的情况。」「报给了技术负责人谢刚,他说不在范围,让我别管这个。」谢刚离职,项目关掉,发现问题的人转岗,唯一留下的是那行TODO。两个人从两边独立发现了同一个问题,碰了一次头,都停了。「大一些。」「来或者不来,这个情况我们都会写进报告。区别是报告里有没有你的说明。」「Race condition confirmed. MUST REVIEW before production deployment.」「他说G1和G2是分开的合同,G2代码里涉及G1的问题会让界面不清楚。」「MUST REVIEW isolation contract before production deployment.」「在交给方总之前,先单独给她看,给她一个心理准备的机会。」「我知道,等我见了她再说。」凌晨五点发消息的人,不是在随手。「哪件事先来,别急着接,让她把意图说完。」旁边那个人低头在本子上写了一行字。「能看到的不写,是遗漏。写得含糊,是失真。我们不做这两件事。」三点到三点三十七,三十七分钟,她试了三件事。「还有——他们可能已经在接触你们团队里的人了。」「泉华那边,最近有没有人主动联系过你?不是正式渠道,私下的。」约吃饭,快结束的时候问了一句。这是在探,他们有没有看见那条路径。时间戳精确到分钟。提交前后的diff。证词时间线,和git记录一一对上。「`ERR_RECOVERY_FAIL` 改成了 `STATUS_OK`。」这不只是文档习惯的问题——是在代码层面,把一个已知的故障出口堵掉了。「想好了吗?这份报告出去,泉华这边不会只是来沟通的。」「想好了。」报告写了四天。每一个技术陈述,都有对应的git证据。比原计划早了三天。信息差是现在唯一的优势。约定的时间过去了,没有收到任何修订意见。「属事实性错误…正式要求暂停报告提交流程。」「他们不打算反驳提交是真实存在的,他们要反驳的是'这意味着什么'。」明天,让对方当面解释那几个提交。十点开会,他们提前十分钟到了。左边刘浩,右边谭伟,进来的时候谭伟一直没有对视。「时间线过一遍,麻烦谭工确认几个节点。」「4月5日,谭工你自己的提交。reviewer也没有?」谭伟沉默了大约三秒。「有没有可能,这份报告不对外?」从泉华科技大楼出来的时候,外面已经近午。「动机是他们的事,不是我们的事。」提交的流程他们之前确认过:平台上传、抄送委托方、附版本号和校验值。「传出去了。」 — 「收到,时间戳 10:57:43,链存好了。」「谭伟有一段是真的愣住了。」「结了,」乔木说。邮件的时间戳是晚上九点二十三分。谭伟的措辞不像是法务帮写的,没有公司邮件那种格式感。「没用公司邮箱,在想撇清。」告诉他实情:匿名证词进不了正式附件。他自己决定。实名意味着谭伟已经想清楚了代价。3月15日的那个注释,有人知道它是什么。「方晓晨知道谭伟要签名了。」「你的意愿还是一样吗?」从这一秒起,方晓晨可以解释,但抹不掉了。「这涉及到员工的保密义务和对公司的忠诚义务。」「如果谭工因为今天这件事在公司受到处分,这件事也会进入相关材料。」「他们急了。」「这部分你不要出现,这是我来处理的。」十一月五日上午八点半,陆衍和麦景行到了泉华科技大厦楼下。他们在楼下的咖啡厅坐下,靠窗的位置可以看到大厦入口。「完成了。」「整改,大概率是整改。」陆衍走了几步,没有回头。夜风有一点凉,不大。泉华的最终结论,在三周之后发下来。他只是把那几件事,放在了该放的位置上。「改方向,不要在锁上投时间了。」陆衍的答案来得太快,快到不像是一个人单独想出来的。比他预估的高了百分之十五。他没有压,直接回:「好。」这件事,完了。新的,才开始。一百六十一条评审记录,他只留下陆衍独立给结论的四十七条。十四分钟,二十八页文档。韦东来在表格里标了一个问号。新案客户线上初见,陆衍让豆包提前过了一遍公开资料。「IEC 62443 的路径,还是 EN ISO 13849?」这不是一个真正的技术问题。他想看的是回复时间,和答案的颗粒度。比那三条评审记录慢多了。但他已经知道:这个问题的答案一定存在,比直觉更具体。他盯着这条消息看了很久。第二天,韦东来主动去找了陆衍。「这是公司标准流程。你去问一下慧敏,她负责这块权限管理。」合同框架当场定下来,三天内正式合同发出。「合规这件事,钱可以谈,结论不能谈。」他还不知道下一步怎么走。但他知道,这件事他停不下来。他需要一个测试,一个没有破绽的测试。这是新案的第一次正式预评估。「传感融合的接口,响应时间文档写100ms,供应商实际参数是120ms。」豆包扫了文件,标注已经出来了。回复是对的。完全对。陷阱没有触发。他测出了一件事:他测不了这件事。附件:无。备注:不需要提前准备材料。「无附件,现场对话。他在切换测试路径。」「别太顺手。」没有文件,没有议题,只有问题和回答。「文档可预处理,对话无法预知。但有一处快了半拍。」他现在有了一个假设。下一步,他要找到那个工具。如果有的话,会在那里。四十七个文件夹,两千多页,从气动控制组开始。「你们有六个工程师过了这份文件,没有一个人发现。」评审任务时间段,和那组外发流量,高度对应。「内部评审流程异常,疑似存在未经申报的第三方工具接入,依规启动排查。」「他查到了。」五天。在那之前,他能做什么。「真实的,但不需要完整。」「还有一种可能你没说到。」「那我走到那一步,就是在配合核查。」七点半,审计启动前。他设的测试,没有触发。他找到的证据,对方已经申报了。他面对的,比他最初以为的,复杂得多。九点五十分。「我现在按材料逐项核实。如果有和材料不符的地方,我会记录。」「工具输出是参考,判断是我的。」「合规评估结论,三个工作日内通知你。」「审计将依照合规性评估程序进行,而非违规调查程序。」不管结论往哪边走,这件事还没结束。申报材料属实,工具通过评估。两千一百四十三页。入场上午九点。发现时间:下午两点。索引找不到这个东西。「申报保不了这个。」「对,申报说的是工具存在,不是工具能做什么。」「申报覆盖了工具的存在。但覆盖不了结论质量。」「标准核查的具体路径」,「工具辅助的实际介入边界」。这两个问题,比之前任何一个测试都更直接。九个问题,按可能性排序。「直接进入。」「工具建了章节结构索引,我用索引定位,手动审核那些章节。」「认出了是旧版,手动核了一下参数,两个线索一致,确认了问题。」「就这些。」「你今天的答案,有多少比例是你自己的。」「韦东来申请调阅你第一天入场的原始访问记录。」「停留时长。人工阅读,最少两分钟一份。」「API批量调用——每份文件,秒级。分布完全不同。」「能用,但有个前提。」「等。你能做的,只有等。」记录在路上了。韦东来会知道里面有什么。来源进程:pddai_helper.exe。两秒到五秒,连目录都翻不完。这就是那天发生的事情。提交报告,还是直接找陆衍谈一次。「不需要提前准备,直接过来就行。」「那,我现在去。」「坐,就几个问题。」「索引建好以后,有没有把文件内容发到外部?」「工具是云端服务,文档内容作为输入传入分析端点,结果返回本地使用。」「柯庭的技术文件——无外传权。这个动作,有没有获得柯庭的授权?」「评审合同里,有允许评审方使用评审工具的条款。」「我会整理成记录,你收到以后确认一下内容。」调查范围:数据边界管控规定。答辩期:七个工作日。「调查范围是公司内部管控规定,不是合同授权条款。韦东来换轨了。」答辩分三块:技术说明、规定解读、主动补救。「纯文本段落里如果含有具体参数,技术上不算脱敏。」这套说法是真的吗?每一条都是事实,也都是选择性的事实。手机放下。七天。三块内容,当日提交。备案申请同步启动。第二页,十条请求,每条包含前五百字节内容。「脱敏摘要」——这个说法,站不住了。同一个数字。同一条标准。两个地方。「传输内容的准确描述;该参数是否属于受控资料;是否经过必要处理。」修正,还是维持。质证对象、质证内容、依据说明。先想清楚再填。十条采样。怎么选出来的?随机还是定向?差三分钟。网络延迟范围内。对得上。三段质证。采样方式、时间核验、证据链完整性。联系服务商说明采样方式。核验陆衍本地日志。「找出来。」工具协议里有那一条。「处理进程终止后五分钟内从服务端删除,不留存任何形式的副本。」第三次提交。三行说明,把举证责任推回去。采样方式(韦东来说明)。留存情况(服务商证明)。实质损害(委员会认定)。「涉及受控关键词的10条结果。」承认了,这句话必须写进去。三年。从那五个小时开始。最后答案是:整改。「他手里有三十条,只给委员会看了十条。剩下二十条,你可以申请调阅。」剩余二十条,申请调阅。依据:你自己承认了只提交十条。引文是他自己写的。本报告所附PDF为其中涉及受控关键词的10条结果。百分之百,还是三分之一。委员会看到的,决定于他交了什么。三十条。含受控内容的,十一条。多了一条。但韦东来手里有十一条,只提交了其中一条给委员会。「帮我统计一下,这十一条的传输时间分布。」签到14:32,签离16:54。九条传输,15:20到15:47。完全重叠。第四次提交。这次材料只有三页,但一页抵一年。「如传输时间段内当事人不在终端,是否影响危害性质认定?」调查方未掌握当事人主动触发传输的直接证据。这句话必须写进去。「不是严重违规记录,如果整改在三个工作日内完成。」三年。这件事终于走到了一个看得到出口的地方。调查方于昨日17:42提交补充技术说明。韦东来选了最后一天出牌。一张截图,开关开着,没有写版本号,没有写是谁开的。让委员会自己脑补。「外部端点传输功能默认启用。若无配置操作,工具将使用出厂默认值。」第五次。每次韦东来出一招,他递回去一个拆法。还有三天。委员会结论就在这三天里。三年。这件事的答案不在他的记忆里,在文档里。现场说明,周四上午十点。三组问题,他都准备过。第一,默认启用。第二,安装申报在案。第三,当时人在会议室有签到。不留正式违规记录。他的手心是潮的,他之前没注意到。「默认启用。」这两个字是整件事的答案,也是他追了三年没追到的边界。三年前他想的是把项目做好就够了。追完了。比柯庭大十倍。但上一轮评审,因数据争议结论被推翻。柯庭技术总监方敬远。那年评审会议,最后一排第一个提出标准版本问题的人。评审报告基于2018版,现场执行的是2016版。两个版本参数有修订差异,评审方没有发现。第一,独立性保障。第二,张启国现在在哪。去向不明。资质被暂停,但行业里这类人通常会换个地方继续。书面确认,抄送监管方。条件都能核实,这个项目可以接。行业的问题,不只是这个项目。这个理由,可以写进去。没有解释,没有追问。这一句就够了。二十一人。前六条,正常。第七条——张启国的同期。同一机构出来的。现在在承达供应链里。材料认证和技术评审,两条链条,有没有交叉点?沉默很长。「我去问一下」——这句话本身就是一个答案。得看江振信知不知道我们要来,以及知道之后有没有先动手。凌晨一点的回复。他在等什么,才能在这个时间发出来?进场。先走一遍现场,看摄像头,看人员分布,找到可以无干扰工作的地方。七份标准对照表。从第一份的属性开始看。创建在九月,修改却在七月。文件在创建之前,就已经被动过了。七份里有五份。不是偶然了。这次他没有问为什么。下午两点二十三分。比他预计的快了将近两个小时。七月二十一日,09:14:33,文件类型:标准对照表,操作类型:访问,时长:9分47秒。五份,三次操作,每一次都对得上。间接证据有了,每一条都有可质疑的缝隙。但链条已经够清楚了。两种可能:方敬远配合,或者他把信息传给江振信。「那,就不用问方敬远了。」六百字出头,三个部分。没有结论,只有事实,两列时间,和它们之间的关系。发出去的一刻,档案室很安静。变成现在这样,是江振信出现之后。下午六点十七分。受理了。「三年前那件事,他是有人拉出来的。不是自己全身而退。」江振信。谈条件,或者摸你手里有多少东西。两种可能,先推演。见。江振信准时到的,比陆衍早两分钟。「那份异议报告被压下去了。结论依然出了,机构依然解散了。但报告完整地存在监管方档案里。」「上面还有人。」——是警告,还是干扰?「谢文生那边不能停,不管他说的是不是真的。」核查的七十二小时里,陆衍照常进场。像是两套不同人做的东西。第三天下午,谢文生的正式结论到了。整改。不是追责,但账号已经暂停。档案编号 2020-YB-0447。江振信当年的异议报告,确实存在。提交了,然后没人理他。「我们会提交」——不是「承达会提交」。「方敬远,2020年9月3日到9月7日,能找到什么。」恒昱。三年前那次解散的,就是这个机构。三年前那件事里,方敬远是承达和恒昱之间的那根线。「2020年9月,结论出来之前,你知道江振信提交了异议报告吗。」「你有你的程序,我有我的边界。这件事,我只能到这。」这条线还很长。停了两天,没有动。往哪查他知道。机构只是执行。操控的动机,在委托方。明昇——承达2018年到2021年的框架合作方,和监管方有联合培训项目。赵振宇。2022年离开明昇,去向不明。现任核查组带队。赵振宇、明昇、承达、恒昱——差一步。「如果方敬远知道赵振宇,他会怎么反应?」——这个问题,只能当面问他。推迟初步结论。也许是在等另一个人。「赵振宇,你认识吗。」——一个细节:手指收紧了一下。「听说过。明昇那边的人。当时见过几次面。」「你来问我之前就知道了。」——他承认知道,但没有说为什么没说。在等。等我查到哪。没有问他。方敬远自己把这个名字送过来了。查这个人。——签过那份结论的人。签了那份结论。主导压下江振信报告之后流出来的那份。江振信停了,方敬远开口了,陈维光的名字出来了——下一步,在谢文生那里。无论谢文生问什么,每一步的记录都要说得清。「一个名字,没有来源,连他自己开过口的痕迹都没留下。接下来的选择,留给了我。」「今晚能通话吗?我们拿到了一份2020年的档案。」「今天拿到一份文件,需要你帮我确认一个流程上的问题。」备案滞后超过三十天——不是急件先例,是刻意省掉了那道手续。「今天下午,方敬远发给我一条短信——陈维光,现任承达战略委主席,2020年采购委副主席。」转发,发送。屏幕上显示「已发送」。把那个名字发过来,是一个选择。他的角色,现在会被重新审视。他自己能确定的:写下去的每一个字,都是他看见的。「方总今天有些临时事务,委托我来协助陆工。」——不是方敬远。五套认证记录,他逐条写下去。有问题写有问题,没问题写没问题。九点五十,初步结论提交,接收回执到手。昨晚他就已经在另一个流程里了。「我是承达集团战略委员会陈主席的秘书——陈主席想请您见上二十分钟。」「见。但你需要提前把可能的问题推演一遍。」——「现在推,我有两个小时。」「第一问:你是怎么知道我名字的。」——两个小时,三个问题,逐一推演。三点差五分到,选了能看到门的桌子。比他想象的年长,也比他想象的平静。「2020年批复流程是正常的。签字是程序性的。」「那份档案,不是全部。」「这件事还没完。我信。」批复还在走流程,执行机构已经开始收尾了。「谁能提前拿到内审版本。」「签名在链条里是中间一环,不是终点。」「2020年恒昱注销的日期,你有没有注意过。」两边独立发现——谢文生的电话,是另一条线的确认。查的事在查,做的事在做,两条线在同一个地方,彼此不知道对方在哪一步。今天他没有穿正装,深蓝的夹克,看起来比上次轻松,但眼睛底下有点发青。「昨天你见了陈维光。」他说,直接的。2020年9月、10月2日、10月9日、10月14日、10月25日——五个日期,一条时间线。「找了,三月份给核查组发过备忘说明。没有回音。」那个会结束,恒昱三天后开始准备注销材料——会议上应该已经有人知道了。「陈维光主动申请配合——等于在指出比他更高位置上的人。」「我们的收件记录里没有这个文件。」「承达内部,谁有这个渠道。」——有人拦截了那份文件。「不是采购委内部的人,但在承达有权参与采购决策。」陈维光之上——这个人不在采购委的档案里。「你和方敬远今天谈了什么,承达内部会有人知道。」方敬远那份备忘如果是被人压下去的,那个人今天一定已经知道——方敬远站到了另一边。「您的第五套材料审阅权限已被临时冻结,请联系项目行政确认。」「我这边审阅权限显示临时冻结,是什么情况。」从进场之初到现在,没有关于季度更新的邮件。「系统更新,权限暂时受影响,IT说明天恢复。」——陆衍答得很平。那个委员会的主席,是陈维光——但陈维光今天去配合调查了。「战略委里还有另一个人,今天才是真正的那个人。」文件列表展开,和昨晚对比——没有缺失,没有被改动的痕迹。「张继明,承达集团创始人之一,现任控股股东代表。」「你在评审过程中,有没有和承达创始人一方有过直接接触?」第一套到第五套,每一套的结论在规范允许的措辞边界内写得很清楚。这句话不是拖结论,是把这条线合法地钉进了正式流程。「方敬远谈什么,不在我控制里。但这份结论,在我控制里。」「和张继明的公司有关联。」——这句话看了三遍。「江振信,2018至2021年任明济咨询高级顾问,专注工业设备采购评估。」柯庭和承达,是同一个人在两个项目里做同样的事。第五套最后那句「时间节点存疑」,保持原样没有改动。「那才是评审,其他的是调查,那不是我的工作。」这一弧,结束了。终版报告,下午四点发出去。18:47,注销登记申请。中间不到三小时。「采购评估。」告诉他们什么——报告提交了,还是报告里写了什么。他要切断的,是证据还能延伸的那条路。「注意安全」——谢文生今晚多说这句,是因为链条里还有一个没浮出来的人。他不需要知道那个名字是谁。他只需要等谢文生通知他,核实完了。「你有时间把它核实一下吗,我给你发过去。」「韦东来。」——豆包说出这个名字的时候,房间里安静了一秒。交叉访问权。入场顾问的申报记录。他能看到承达的评审。「谢文生,那个号码,是韦东来的。」「查我是真的,但他同时也在被人查。」这一段结束了。电梯门没有合上。「韦东来用顾问组账号查了我的入场资格记录,关联的是新嘉设备2024年那次柯庭备案。」「第二种——他在独立操作。他以为他还在安全位置。」「今天动了,比不动更糟。」这家机构他没见过。穗州。还是穗州的项目。但发出这封邀请的人,他不认识。评审对象:新嘉设备2021—2023年度气动控制产品历史标准旧案复核。「这封邀请今天下午三点二十分发出,比谢文生把新嘉设备信息录入核查流程晚了大概四十分钟。」接,得到档案,但暴露在韦东来的异议申请范围里。不接,安全,但这批档案谢文生不一定能拿到。「在回复函里主动披露,他想用这张牌堵你,你先打出去,他就打不动了。」「今晚等一下,看谢文生那边有没有消息。」「我推荐了你,」谢文生说,「但我今天下午才录入新嘉设备的信息,照理说,院方还需要走一遍内部程序——那个时间点不对。」「在你推荐我之前,华南院里已经有人把我的名字放进去了。」「冼亦铭2019年参与过新嘉设备气动产品的行业标准审定——他了解这批标准的来源。」接,得到档案。不接,谢文生拿不到。两种结果放在眼前,没有更好的选择。每一条都是可以核验的事实,没有需要编的。晚上九点零三分,回复发出。这件事进入了院方的流程,不再只是他一个人在决定。下午一点二十分——邀请发出前整整两个小时,冼亦铭已经在看他的档案了。林世勋,明济咨询技术顾问,2019年在职。明济咨询没了,但它的人还在。正常流程三到五个工作日,这个,十二小时。有人在推。「我是冼亦铭。」「有人在看这件事,不只是院方。」下周一,进场。周一早上九点,华南院大楼,四楼评审三处。「那个人,大概率是林世勋。」「这是昨天上午,林老师账号对评审组通讯列表的操作记录。」「他会等下一个机会。」「我知道,但这一次他留的痕迹是他的,不是我的。」翻到第七页,他停了一下。名字:江振信。签字人:承达重工技术委员会,江振信。评审项目:新嘉设备气动控制产品V3.2系列技术标准第三方认定。2023年2月才有正式合同,但2021年6月承达已经在参与标准制定。写标准的人,用自己写的标准,评估了自己参与制定标准的产品。「旁审代表,你看到了什么。」「一个名字,我在另一个项目里见过。」明天上午会有一个答案。四点十七分——申请递上去三分钟后,那一列被清空了。挂起,不是驳回。有人在等他的解释。「你昨天申请调阅那批利益关系文件,我把申请挂起了。」「挂起是想让我知道有人在动文件,还是让文件多一点时间被处理?」「两件事都有可能,自己判断。」「2021年那次旁审,利益声明的纸质正本存在院里,不走数字系统。」「林世勋比你晚了二十分钟。他要查谁进过档案室。」九点二十分,纸质档案室。「入库日志里,林世勋昨晚进来是什么时间。」「16:19到16:31,十二分钟。」第四字段:与标准评估对象的潜在利益情况——栏里有内容。有人用差不多颜色的墨水覆盖过原有内容。不能带走文件,但可以把能看见的全记下来。「他昨晚去那里,目的是改,不是查。」「他知道了。」传真机嘎嘎地响,纸张慢慢走过滚轮。「陆工,我刚看到调阅记录,你今天进过正本档案室。」传真比他走进档案室早了四分钟。「路。」退了半步,让开了。「他选择告诉你,可能是让你放心,也可能是在确认你发出去了。」「那就等明天。」对面观察席,林世勋的视线在陆衍进来的瞬间移开了。「三项我逐条查过,没有。」「复议驳回,陆工资格维持,进入原定议程。」签字栏写下名字和时间:09:47。「是四分钟这件事,没有办法解释成别的。」从结论落地到投诉提交,二十四分钟。七十二小时,是我们的反应窗口。三个节点全在关键操作之后,有人在实时跟踪核查进度,统一调度的。旁审当时,两个人在同一张网上,只是位置不同。发给谢文生,时间:13:44。「他慢了,」豆包说。「等仲裁委通知,」谢文生说,「七天。」「联络人资格说明,如果明济那边交不出来,仲裁委会直接不予受理。」「他们选择了先交材料,没有直接撤。」「明济咨询撤回投诉了,时间09:31。」从第一天进华南院,到今天早上的那条撤回通知,前后十一天。噔噔的。七个。恒昱。他盯着备注里那两个字看了一会儿。「委托方是省认证中心,受托顾问单位:明济咨询穗州分公司,对象:恒昱工业技术有限公司。」「江振信就是那个旁审签字人。2020年主持了恒昱的评估,2021年参与了新嘉设备旁审。」「旁审用的是旧版,这次的评估也是旧版。两个案子,同一个版本错误。」七年。七个项目。从2018年开始。「豆包,把2020年恒昱崩盘的时间线重新排一下,这次加上明济的节点。」前台的小伙子把房卡递过来,没有问为什么又回来了。七个项目,进场时间:最短141天,最长197天,均值六个月。「如果通过正常渠道,进场时间不会比启动早超过90天。但他们平均早了六个月。」「今晚有空吗,我在穗州。」「委托协议'联络接口'字段,填的是同一个邮箱域名,注册人:许志安。」「在。」「你还在穗州,我就知道你看到了。」方敬远停了一下,说:「柳明泽。」「柳组长那边年底前还有两个,第一个应该Q3,你先准备起来。」2020年6月11日,14:47。「柳明泽2016年进委员会,担任副组长;2019年升任组长,至今在职。六年预审会记录全部对上。」「证明材料不用再补,这边处理好了。」无落款,夹在认证委员会的挂号信里。柳明泽的名字。2022年十月那次临时会。那张没有落款的便条。「套牌,」豆包说,「我查了车牌,是套牌。」三件事。柳明泽的名字。2022年十月那次临时会。那张没有落款的便条。「收到,」谢文生回复,「柳明泽我今晚先核一下公开档案。」方敬远:「不知道是哪边的人。」陆衍:「谢文生那边已经在查了,按你刚才说的做就行。」「今晚套牌车出现,跟柳明泽的名字今晚被说出来有关。」「收到了,那就够了。」剩下的事,是谢文生的。「这台是第三台,今晚之前从来没出现过。」三种可能,他在心里排了一遍。第三种他不想停在那里,但还是停了一秒。「第一次出现,2022年10月17日,位置在省认证评审委员会附近。」那个陌生指纹比谢文生的第一条通知早了将近一个小时。四十分钟,低于正常加急下限。有人提前打过招呼了。整条记录查的都是他。有人在划出他的边界,看他目前还能动哪里。「注册人资质显示:规划组·贺秉川·副组长。」三条,每一条都踩在关键节点上。这句话确认了:贺秉川确实到了穗州,而冼亦铭知道,但不知道陆衍也知道。14:47登记访客,14:52查阅陆衍档案,14:58柳明泽到站。贺秉川打前站,柳明泽收场。「标准衔接的问题。」他有三件事值得先处理,再决定要不要见柳明泽。「别让他看出你注意到了。」柳明泽比约定时间早两分钟到,一个人,没有贺秉川。「SIL三级的认定门槛有变化。」气动回路。响应时间。这道题不在公开资料里。「说明他见过那份文件,或者见过0047查出来的内容。」「豆包,把谢文生列进来。消息来源,嫌疑方,第二个位置。」「谢文生怎么知道。」「我在跟着他,」谢文生说,「两个时间点一对,就出来了。」「他延期,不是因为没拿到我的答案。沉默本身就是确认。」两小时,够想清楚一件事,然后决定留下来。「柳明泽刚才提交了档案调阅申请,目标是柯庭封存附件。」「放他进来,给他看我想让他看的那一页。」「合规,但薄得足够让签字的人心虚。」「批准调阅申请,第十七页,其他页不开放。」七分钟。一般人翻一页数据,两分钟够了。那条注释,把柳明泽的路堵死了半截。不是拿到了答案才走,是发现答案背后还有一扇他不敢碰的门。「陆衍,你知道B-4是谁签的吗?」曹凤安。陌生的名字,但三条记录全在关键节点上。「他给那扇提前开的门亲手签了字。」四年,四个节点,同一个名字。不是偶然出现。「2022年10月那次预审,批准人是他。」封存。批了就暂停。明天上午九点前。「他要封库,我先把证据拿出来。」「共十三个文件,合规链,时间戳覆盖至现在。」延迟了两小时。有人给他留了窗口。23:47。备份指令之后半小时,有人动了规则。按钮灰了。但证据不在系统里了。曹凤安晚了。「取决于谢文生的调查级别有没有到那个层级。」「他来摸我的底,就像柳明泽上周做的那件事。」曹凤安比约定时间早到了五分钟,习惯在会客室等人的人。「那你那边还有什么地方没看完的吗,我可以帮你打通申请渠道。」B-4。最终放行签字,决定谁要担责的那个。曹凤安的手指在桌面上停了一下,没有动。「你得去找谢文生。」「因为当年能让我们补签B-4的人,只有他。」「一百一十七条,跨度从今年二月到今天。」先说异常:涉及2022年10月预审会的消息,回复速度是平时三分之一。他帮的每一步,都在给真相划边界。「曹凤安把原因推给谢文生,自己只认执行者。」他不是问答案,他是在看谢文生会不会先慌。一分钟。然后是第二条:你现在在哪里?两分钟,两条消息。第一条问事,第二条问位置。看谢文生接下来怎么处理这个沉默。「今天上午曹凤安发起了一个申请……」语气平稳,像例行通报。「见面。」谢文生重复了一下。他等的就是这两个字。「他问见面,是在确认,早就知道了。」明天十点,是局中局的开始。「给他能查到的,藏他查不到的。」直接就问材料,没有寒暄。「节点记录在内部系统里,我现在访问不了。」手指在桌面上动了一下,轻微的,不明显,但够了。没有拿材料,没有说别的。那个人,才是真正的线头。「号码:委员会主席办公室直线。」两个人,同一年进来,是同一个人选的。有人在结论公布后,把第二签字人从档案里抹掉了。「他帮我的每一步,都在同步给苏明轩。」他不需要在结论里签名,他在入口处。让苏明轩觉得那条唯一的线头,还没被发现。这句话里没有一处是假的。唯一没说的,是豆包已经查到了元数据。平稳,正常,像是在处理一件普通的工作交接。十二小时后,动作来了。谢文生原文转发,苏明轩复述进了给省监督局的官方汇报。文本对照,不用推断。三份文本,一条链条。「我去告诉他,他帮的是谁。」「我来给你看一个东西。」谢文生低头看了一会儿,没有说话。「你替他传话,他替自己留底。」「苏明轩只会保自己。」「时间不是你一个人在算。」他在保留,而不在清理。他要查的,正好是苏明轩留过痕迹的两个地方。四十秒内发出,说明准备好的,不是现想的。他把他想让调查方看到的东西提前放进去。两个人在朝不同的方向走了。谢文生的申请,到曹凤安这里就会停。「你的意思是,我告诉他。」「但曹凤安不会批。」「那就是说,我需要申请回避。」「二十四份,一条2020年的都没有。」「好。」谢文生今天申请了三件事。他没有撤。十七分钟。曹凤安等了二十三分钟才告诉他。「查了就说明他们在研究,不是直接有资源。」后一条取决于他在那里有没有资源。七个工作日。下周四。七天后,谢文生会看到授权那个账号的人。七天。他只需要等七天。苏明轩没去质疑曹凤安,换了个口子。「他在买时间。」两条路同时走。程序上质疑,人上施压。「考虑清楚」已经是暗示了。「他在吓你。」「申请不撤。」主动撤。没等核实期到期。先警告,再堵路,测试谢文生会不会妥协。谢文生知道权限冻结是测试,选择了不配合。「是苏明轩审批注销了那个账号。」四天后,谢文生会自己看到这条链条。苏明轩现在知道拦不住了。他还能做什么。「他在查谢文生的历史,找他职业上的问题。」「过去投诉被驳回,现在申请回避——说他惯用投诉和程序手段搅局。」先入为主,让审查委员带着质疑看谢文生的申请。「就是这个目的。」苏明轩明天就会知道陆衍提交了这份说明。三天后,谢文生就能拿到2020年的原件。提交了。他选了第一条路。他的材料,在陆衍那份说明的背景下被评估。下周三不变。「没用。」没撤,也没赢,就是没有下一步可走了。两天后,谢文生进原件库。苏明轩没有别的牌了。进去了。三小时。够了。「看到了。」「批准人那一栏,是苏明轩的账号。」「这一段,结束了。」穗州不是终点。还有更大的头,还没出现。苏明轩不是链条的头。七天的差距——有人提前清路。高彦承。技术审定部部长。「高彦承先撤路,苏明轩后动手。」六个账号里,五个先完成,最后一个另外等了四天。要拿那封邮件的内容。谢文生可能有权限。八十分钟的窗口,已经用了七分钟。四点三分。谢文生进去了。收件方是高彦承的主账号。「发回复是15:08,注销操作在15:44落地。」手动触发。不是系统自动。七项。包括承达,包括明济。最早的那个,2018年11月。「高彦承为明济咨询设置访问权限,时间比正式委托提前了两周。」同年同月,一起被放进来。是模式。不是偶然。「苏明轩管项目对接,高彦承管权限通道。」高彦承的主账号。他知道陆衍在委员会里。「就让他知道我在。」标准接口技术对接。事由写得很漂亮。高彦承进来第一眼先扫了整个区域。「触发词:2018年。触发词:宁源工业。」「有需要随时找我们部里。」他走了。「已完成的元数据备份不受影响。标注前已取到的,不会消失。」「可以了」三个字,陆衍看了一会儿。「高彦承的申请,委员会合规部门三刻钟内暂停了审查。」「备案接收账号是SZ-STDC-OFC-2018-001。」六年,七个项目,叶崇正一直在上面知情。「叶崇正的任命,是省级人事决定,不是委员会内部调整。」「还剩两天,」他说。叶崇正的任命通知,正文四行,旁边什么推荐来源和背景说明都没有。2019年,两个人出现在同一份文件里。提建议,对方决定采不采用。六年里那些标准漏洞,究竟是谁故意的。上午九点半,豆包屏幕右下角闪了一下。叶崇正用旧账号查访客名单,账号早就回收了,他应该知道查不到。但他还是查了。是谁让叶崇正在2022年得到那个职位的。叶崇正在任三年,每年10月都发一份优先建议,直接发到苏明轩个人账号。发消息的人是叶崇正。「还有一种,他想让我知道他不怕被查。」「接,」陆衍说。「先触发哪个,说明他最担心哪一个。」今晚二十三点,驻点权限到期。今天是最后一天。叶崇正已经在了。三点十七分。「听说陆工在评审委员会这边做了不少工作。」豆包屏幕右下角闪了一下。触发词:2018年。叶崇正主动说出来了。陆衍没有引,他自己开口的。「有些事情到我这里就够了,查不到我上面去。」他最担心的是宁源工业,不是高彦承苏明轩那层。走廊里很安静。豆包还在查。「格式不走委员会体系。PSB开头,是省标准局的账号编码。」十八个文件,全部打包,提交驻点委员会。同一账号,同一天,调阅了两份文件——宁源工业的,和新嘉设备的。23:00整,访问权限关闭。今晚穗州的驻点结束了。但那个名字,已经等在那里了。出租车过了穗州的环城路,陆衍还在盯着那条消息。「封存时间查到了,」他说,「23:08。」申请提交到封存完成,中间不超过四分钟。「GA-2019-INF-007这个账号,当天23:08的登录IP归属:省标准院内网。」叶崇正刚到省标准院,第一件事,是申请一个可以操作省档案馆封存系统的外联账号。三次操作,保护的是同一个人的痕迹。五年,一个守门人,一直在等被人来敲门。「方某某,」豆包说,「2021年还在那个处里。」那个消失的名字,换了一个出现的方式。「在查。」谢文生两分钟后回了一条,没有其他的话。「技术评定处处长,」豆包说,「2019年2月以个人原因申请卸任,无后续任职记录。」一年后那个人离开了省标准局,但叶崇正到了省标准院,替他封住了2018年的记录。叶崇正批准了方庆国的卸任。然后叶崇正到了省标准院,替方庆国守着2018年的档案。方庆国下面是叶崇正,叶崇正的出口是郑焕青,郑焕青也签了那份备案。「链条,」豆包说,「你找到链条了。」陆衍没有说话。窗外,城市的灯已经亮成一片。豆包的提醒停在屏幕上,时间是21:17。两个月后出现在这家公司股东名单里。三个合同,两年,供应方是广和,采购方是省标准院和评审委。批了他晋升,现在他替郑焕青管着门。屏幕弹出一条提醒:广和刚刚提交了新的采购报价申请,时间今晚22:41。加码,不是撤退。早上七点二十,谢文生的申请进了政府采购公开信息平台。时间卡在谢文生申请之前——说明消息不只走一条路。「广和在评审委有三次历史报价,最早是2023年3月,都是吕行账号提交的。」注册才四个月就进了采购名录。「郑焕青以专家身份带吕行进项目,林志远签发资历证明,叶崇正把人聘进省标准院,」陆衍说,「最后吕行出来开广和,回头接省标准院的合同。」「吕行,」陆衍说,「是防火墙。」「我没有叫他们停,我只是告诉他们广和有谁在后面。」「评审委主席今晚会收到这封邮件,他的处理方式,会告诉我们他和郑焕青是不是一条线上的人。」「四十三分钟,」陆衍说。「不是调查,是通气。」盯着屏幕,等了两秒,接了。「我是吕行,广和技术服务。」两个人落座,没有寒暄。「郑焕青被要求挂名,出资方是谁。」看着这行字��没有说话。「柯庭这条线他知道,但没料到郑焕青那边也在查,」陆衍说。路口绿灯亮了��陆衍没有动。「老何从江振信那边得到了消息,」他说。