Skip to content

第一百六十五章 茶馆对话

竹叶的影子在茶桌上移了半寸。

沈渡没有急着说话。他端起茶杯,喝了一口,放下。手指在杯壁上停了两秒,然后收回去,放在膝盖上。

"我第一次写代码,"沈渡说,"是十五岁。"

林知行没动。他盯着沈渡,像盯着一个他以为已经读懂的程序突然抛出了一行他没见过的注释。

"不是在学校学的,"沈渡继续说,"是在网吧。十五块钱一小时,我攒了一个星期的早饭钱。那时候我不会英语,代码里的变量名全是拼音。编译错误一堆,我看不懂英文提示,就一个一个试,改一行编译一次,改一行编译一次。"

他顿了顿,嘴角动了一下,像是在笑,但那个笑没有到达眼睛。

"你知道我第一个程序是什么吗?"

林知行摇头。

"一个计算器,"沈渡说,"加减乘除。界面是蓝底白字,丑得要命。但我跑通的那一刻,我在网吧里坐了十分钟,盯着屏幕,一动不动。"

他看着窗外的竹子,眼神有点远。

"那是我第一次觉得,有些东西是可以被我控制的。代码不会骗人,不会因为你穿什么衣服、你爸是谁、你住哪个小区,就给你不同的结果。输入一样的,输出就一样。"

林知行的手指在茶杯上收紧了一下。

他想起了自己。大专宿舍里,凌晨三点,ChatGPT的对话框。那个第一次发现算法思维和AI工具天然适配的瞬间。那种感觉——"有些东西是可以被我控制的"——和沈渡说的一模一样。

"后来呢?"林知行问。

沈渡转过头看他,眼神里有一丝意外。他大概没想到林知行会主动追问。

"后来我考上了985,"沈渡说,"你知道的,简历上写的那样。本科,硕士,出国,回来进灵犀。看起来是标准的精英路径。"

他停了一下,手指无意识地在膝盖上敲了两下。

"但那不是起点。起点是网吧里那个十五块钱一小时的少年。那个少年后来走了很远,但他从来没有忘记一件事——"

沈渡的目光落在林知行脸上,很稳。

"没有人会白白给你机会。每一个机会,都是你拿东西换的。尊严、时间、自由、或者别的什么。"

茶馆里很安静。隔壁包间传来低低的说话声,听不清内容,像是另一个世界的背景音。

"你在灵犀的时候,"林知行说,"也是这样换的?"

沈渡的手指停了。

他没有立刻回答。他端起茶杯,发现茶已经凉了。他放下杯子,往壶里加了热水,给自己倒了一杯,又给林知行续上。动作很慢,像是在争取时间。

"灵犀的前三年,"沈渡终于开口,"我做的事情和你一样。"

"什么意思?"

"写代码,做方案,熬夜,被人偷成果。"沈渡的声音很平,像在念一份简历,"我做了一个教育场景的推荐算法,demo效果很好。我直属领导拿去给VP汇报,PPT上没有我的名字。VP问谁做的,他说是他带的团队。"

林知行的脊背绷紧了。

"你知道我怎么处理的?"沈渡问。

"不知道。"

"我没有处理,"沈渡说,"我忍了。因为那时候我只是一个小工程师,他是我的领导。我要是闹,走的是我,不是他。"

他停了一下,喝了一口茶。

"第二次,我做了一个自然语言理解的模块。这次我学聪明了,提前给VP发了邮件汇报进度。但那个领导在评审会上说,这个模块的核心思路是他提供的,我只是执行。VP信了。"

"为什么?"

"因为他会说话,"沈渡说,"他能在七分钟内把一个方案讲得滴水不漏。我不行。我只会写代码。"

林知行想起了自己在灵犀时的经历。周睿在评审会上展示旧方案,他站起来补充新数据,全场安静了三秒。沈渡事后说:你越位了。

"真实不重要,"沈渡说,"谁在什么时候展示真实,才重要。这句话不是我的原创,是我的领导教我的。用他的方式。"

茶馆里的阳光移了一段。竹子的影子在窗框上晃动。

"第三次,"沈渡继续说,"我做了一个AI解释层的原型。和你后来做的那个很像——给AI的每条输出加一段人类可读的解释。那时候没有大模型,技术条件不成熟,demo效果一般。但思路是对的。"

林知行的心跳快了一拍。

"那个方案被砍了,"沈渡说,"理由是'技术不成熟,投入产出比不高'。砍方案的人是VP,但建议砍的是我的领导。他跟VP说,沈渡的想法太激进,风险太大。"

"为什么?"

"因为如果那个方案做成了,我的位置会升得比他快,"沈渡说,"他不是怕方案失败,是怕我成功。"

林知行盯着沈渡。他忽然意识到,沈渡说的这些事,和他在灵犀的经历几乎一模一样——周睿打压他、程浩拿走他的署名、技术文档上没有他的名字。

区别只在于,沈渡忍了三年,他忍了七个月。

"你后来怎么了?"林知行问。

沈渡笑了一下,这次的笑带着一点苦涩。

"后来我升上去了。那个领导犯了一个错——不是技术错,是政治错。他站错了队。VP换了,他也跟着换了。我接了他的位置。"

"然后呢?"

"然后我发现,"沈渡说,"坐到那个位置上之后,我开始做和他一模一样的事。"

林知行的手指在茶杯上停住了。

"你做的第一件事是什么?"

"保护自己,"沈渡说,"保护自己的方案不被偷、自己的位置不被抢、自己的成果不被署别人的名字。我开始控制信息流——谁能看什么、谁能说什么、谁在什么时候展示什么。我以为这是生存规则。"

他停了一下,目光落在窗外的竹子上。

"然后有一天,我的团队里来了一个新人。很聪明,代码写得漂亮,想法多。我让他做一个模块,他三天做完了,效果比我预期的好。我看了他的代码,发现里面有一个我没有想到的思路。"

沈渡转过头,看着林知行。

"那个瞬间,我没有高兴。我害怕。"

茶馆里的空气像是凝固了。隔壁包间的声音消失了,只剩下竹叶在风里摩擦的沙沙声。

"害怕什么?"林知行问。

"害怕他超过我,"沈渡说,"害怕有一天VP发现,这个团队里最厉害的人不是我,是他。害怕我好不容易爬上来的位置,被一个比我年轻、比我聪明的人拿走。"

他的声音很平,但林知行听出了那平静下面的东西——一种很深的、被压了很久的疲惫。

"所以你控制他。"林知行说。

"所以我控制他,"沈渡点头,"让他做的方案由我来汇报,让他写的代码署我的名字。我以为这是正常的——当年我的领导对我做的,现在我对下属做。这不是恶意,是生存本能。"

"然后呢?"

"然后他走了,"沈渡说,"和你一样,辞职创业。走的时候他说了一句话——'沈渡,你不是我的领导,你是我的影子。你把我变成你的影子,这样你就不用担心被超过了。'"

林知行的手指收紧了。

那句话太像了。方小满走的时候说:你不是沈渡,你只是暂时迷路了。

"他后来怎么样了?"林知行问。

"他的公司做了两年,失败了。"沈渡说,"不是技术不行,是市场没选对。他找过我一次,想让我投资。我拒绝了。"

"为什么?"

"因为我害怕,"沈渡说,"害怕他成功。害怕他证明他是对的,我是错的。"

茶壶里的水又凉了。沈渡没有再续。他把茶杯推开,双手放在桌上,手指交叉。

"知行,"他说,"你以为我是天生的控制狂。其实我是被逼出来的。每一次被人偷、被人踩、被人当棋子用,我都告诉自己——下一次,我要做那个掌控的人。但我没有意识到一件事。"

"什么?"

"掌控和被掌控是同一件事,"沈渡说,"你掌控别人的时候,你也被掌控了。你控制别人不离开,你也走不了了。"

林知行盯着沈渡。他忽然想起一件事——去年在灵犀加班到晚上十一点,路过沈渡的办公室,门开着一条缝,沈渡一个人坐在里面,没开灯,只有电脑屏幕的光。那个表情不是温和,不是掌控,是一种很深的疲惫。

那两秒里他看到了什么?

他看到了一个被困在自己建造的笼子里的人。

"专利的事,"林知行说。他没有犹豫,直接问了出来。"你为什么要把我的开源算法申请专利?"

沈渡的手指停了。

茶馆里安静了三秒。窗外有鸟叫了一声,很快被竹叶的沙沙声淹没了。

"因为那是我唯一能留住你的方式。"沈渡说。

林知行的心跳停了一拍。

"你太强了,"沈渡继续说,声音比刚才低了一点,"强到让我害怕。你的算法思维、你的问题拆解能力、你在开源社区的影响力——这些东西加在一起,不是我能控制的。我试过用升职、用项目、用署名留住你,但你不在乎那些。"

"我在乎,"林知行说,"我在乎署名。"

"你在乎的是被认可,"沈渡说,"不是署名。这两个东西不一样。署名是公司给你的,认可是你自己挣的。你走了之后,你的开源仓库star过四千。那些star不是我给你的,是你的能力挣来的。"

他的目光落在林知行脸上,带着一种林知行没见过的情绪——不是掌控,不是温和,是一种很坦诚的、带着一点悲哀的东西。

"我害怕你走,"沈渡说,"害怕你走了之后,灵犀的技术壁垒会塌掉一块。所以我用专利锁住你的算法——不是为了偷,是为了留。我知道这很卑鄙。但我不知道还有什么别的办法。"

"你可以直接告诉我。"林知行说。

沈渡看了他三秒。

"我说不出口,"他说,"让我说'我需要你',比让我写一百行代码都难。"

茶馆里的阳光移了很远。竹子的影子已经从窗框移到了屏风上,像一幅淡墨的画。

林知行盯着沈渡。他发现自己不知道该说什么。

愤怒?有。那种被偷、被控制、被当棋子用的愤怒,从他离开灵犀的那天起就一直在。但此刻,面对一个坦诚到近乎赤裸的沈渡,那种愤怒忽然变得很远,像隔着一层玻璃。

理解?也有。沈渡说的每一句话,他都能找到对应的经历——被人偷方案、被人踩、被人当棋子用。他只是忍了七个月,沈渡忍了三年。三年和七个月的区别,不是程度,是质变。三年足够把一个人从受害者变成加害者。

但最强烈的,是一种他不知道该怎么命名的感觉。

"沈总,"林知行说,"我有一个问题。"

"问。"

"如果重来一次,你会怎么做?"

沈渡的手指在桌上停了很久。

茶馆里的声音像是被抽走了——没有鸟叫,没有竹叶的沙沙声,没有隔壁包间的低语。只有两个人坐在那里,隔着一壶凉透的茶。

"我会直接告诉你,"沈渡终于开口,声音比刚才低了很多,"知行,我需要你,但我害怕你离开。这句话我说不出口,所以我用了别的方式。"

他顿了顿,目光落在茶杯上。

"如果重来一次,我会学着说出来。哪怕说出来很丢人,哪怕说完之后你可能会笑我。但至少,我不会用专利和协议把你推开。"

林知行点了点头。

他想起了一件事。方小满走的那天,在车站候车厅里,他想说点什么,但说不出口。方小满拍了拍他的肩,说:知行,你记住一件事。你不是沈渡。你只是暂时迷路了。

当时他以为方小满是在安慰他。现在他忽然意识到,方小满说的不只是安慰——方小满在告诉他,他和沈渡是同一种人。

他看着沈渡。沈渡也看着他。

两个人坐在茶馆里,隔着一壶凉透的茶,像两面镜子。

沈渡用控制来保护自己。他用算法来保护自己。控制和算法,看起来完全不同,但本质是一样的——

害怕失控。

害怕有一天醒来,发现所有的事情都不在自己的掌控范围内。害怕被偷、被踩、被抛弃。害怕那些你以为是常量的东西突然变成变量。

害怕失去。

"沈总,"林知行说,"我也一样。"

沈渡看着他,没有说话。

"我也害怕,"林知行说,"害怕方小满走了之后,我的公司会垮。害怕陆可盈退出之后,我会变成一个人。害怕我做的所有东西,最后什么都不是。"

他的声音很平,但每一个字都像是从很深的地方挖出来的。

"我用算法来保护自己。遇到问题就拆解,遇到选择就计算,遇到人就分析。我以为这样就能控制一切。但我没有意识到,有些东西是算不出来的。"

"什么东西?"沈渡问。

"信任,"林知行说,"方小满的信任。客户的选择。还有你——你到底想从我这里得到什么。这些东西没有公式,没有算法,没有最优解。"

沈渡的手指在桌上轻轻敲了两下。

"你说得对,"他说,"没有最优解。"

茶馆里的阳光已经移出了窗框。竹子的影子淡了,只剩下一片模糊的绿色。天色暗了一点,像是要下雨。

"知行,"沈渡站起来,"我该走了。"

林知行也站起来。

两个人站在茶馆的包间里,隔着那张放着凉透的茶壶的桌子。沈渡伸出手。

林知行看了那只手三秒——骨节分明,指甲修得很整齐,是写过十五年代码的手。然后他伸出手,握住了。

沈渡的手很凉。

"谢谢你告诉我这些。"林知行说。

沈渡笑了一下,不是以前那种带着掌控感的微笑,是一种更淡的、带着一点释然的笑。

"不用谢,"他说,"我只是想让你知道,我不是你的敌人。"

他顿了顿,松开手。

"我是你的镜子。"

沈渡走了。茶馆的门在他身后轻轻关上,发出一声很轻的响。

林知行站在原地,看着那扇关上的门。窗外的竹子被风吹动,沙沙声又响了起来。

他在桌边坐下,盯着那壶凉透的茶。

镜子。

沈渡说得对。他是一面镜子。镜子里照出的,是一个用算法保护自己的人。那个人害怕失控,害怕失去,害怕有一天醒来发现所有的事情都不在自己的掌控范围内。

那个人是沈渡。

那个人也是他自己。

林知行掏出手机,看了看时间。下午四点二十三分。他在茶馆里坐了两个多小时。

他打开微信,找到方小满的对话框。上一条消息是两周前,方小满发的:知行,商户那边我能再撑三个月。三个月后你得在北京找到一个能接住这个盘子的方案。

他打了一行字,看了看,删了。又打了一行,又删了。

最后他什么都没发。他把手机放下,站起来,走出茶馆。

外面的空气比里面凉。天阴了,风有点大,竹叶在头顶沙沙作响。紫竹院的游客不多,有几个老人在亭子里下棋,棋子落在棋盘上的声音很脆。

林知行往地铁站走。

他脑子里还在跑沈渡说的话——"我需要你,但我害怕你离开"。这句话他说不出口,所以他用了别的方式。

方小满走的时候,他也没说出口。他想说的是:小满,别走,我需要你。但他说的是:你真的要走?

陆可盈说六个月的时候,他也没说出口。他想说的是:别退出,我还在努力。但他说的是:好。

他用算法来替代那些说不出口的话。拆解问题、计算期望值、找最优解。但有些话不是用算法能表达的。

信任不是算法。需要不是算法。害怕失去,更不是算法。

林知行走到地铁站入口,停下来。

他掏出手机,打开微信,找到方小满的对话框。

这次他没有删。他打了一行字:

小满,我今天见了沈渡。

发送。

消息发出去后,他盯着屏幕,心跳快了一拍。

三秒后,方小满回了一条语音。林知行点开,方小满的声音从听筒里传出来,带着一点四川口音:

"知行,你还好吗?"

林知行盯着屏幕看了很久。

他打字:

我很好。我只是想告诉你一件事。

什么?

我需要你。

消息发出去后,林知行把手机放回口袋,走进地铁站。

身后,紫竹院的竹子在风里沙沙作响。天边的云很低,像是要下雨,但还没下。

有些话不需要算法。

有些话只需要说出来。

(本章完)