Skip to content

第二百三十三章 回信

林知行是周五早上到的长沙。

他没跟方小满商量。周四下午在工位上坐了两个小时,打开12306买了第二天早班的高铁票。六个小时,二等座。方小满问他去哪,他说长沙。方小满问干嘛,他说见王老板。方小满愣了两秒,说了一句:我跟你去。林知行说不用。方小满说你确定?林知行说确定。

他需要自己去。

不是因为这件事只有他能处理,是因为王老板的信是写给他的。信上写着"小林你好",不是"方小满你好",不是"至简科技你好"。那封信的重量,只有写信人和收信人之间才称得出。


长沙南站出站的时候是中午十一点半。十一月的长沙比北京暖和,但风里夹着潮气,吹在脸上有点黏。

林知行打了辆车,报了开福区那个地址。他记得——两年前来蹲点的时候,苏雨晴用手机导航导了四十分钟,最后在一个巷口下了车,说"到了,前面进不去"。巷子很窄,两边是老居民楼,水果店的招牌挂在巷子中段,红底黄字,"正华水果"。

出租车停在巷口外的马路边。林知行付了钱,下车,沿着巷子往里走。

走了不到五十米,他停下来。

巷口新开了一家店。不是水果店,是便利店。门头是白底蓝字的招牌,"鲜时达"三个字印得很大,下面一行小字:"AI智能推荐·让每一分都值"。玻璃门上贴着促销海报——"今日特惠:红富士苹果5.98/斤,赣南脐橙4.58/斤"。

林知行站在店门口看了几秒。

他没有进去。他转过头,继续往巷子里走。

走了二十多米,看到了"正华水果"的招牌。门面比记忆中旧了一些,红色的漆有点褪了,"华"字的右半边缺了一块。门口堆着几箱橘子和苹果,纸箱上的字迹模糊,像是放了几天了。

店里没有客人。


王老板坐在收银台后面,正在看手机。听到脚步声抬起头,愣了一下。

"小林?"

"王老板。"林知行站在门口,没有立刻走进去。"我来看看你。"

王老板站起来。他比两年前老了一些,头发白了几缕,脸上的皱纹更深了。但眼睛还是那样——不大,但亮,看人的时候带着一种生意人的精明,又带着一种长沙人特有的直爽。

"你真来了?"王老板走过来,上下打量他。"瘦了。比上次见面瘦了。"

"忙。"

"忙好。年轻人要忙。"王老板拍了拍他的肩,把他往店里让。"坐。我给你倒杯水。"

林知行在收银台旁边的塑料凳上坐下来。王老板从里间端了两杯茶出来,玻璃杯,茶叶放得很足,水是温的。

"你收到我信了?"王老板在他对面坐下。

"收到了。"

"那你来——"王老板顿了一下,"是来给我一个说法的?"

林知行没有立刻回答。他端起茶杯喝了一口,茶叶有点涩,是本地的绿茶。

"不是。"他说。"我来听你说。"

王老板盯着他看了几秒,没有追问。他把手机放在桌上,叹了口气。

"说什么呢。信上都写了。"

"信上写的不够。"林知行说。"我想看看。"

"看什么?"

"看看现在是什么样。"

王老板沉默了几秒。然后他站起来,走到收银台后面,从抽屉里翻出几样东西。


第一样是一张A4纸,折了两折,已经有点泛黄。

王老板把纸展开,放在桌上。林知行低头一看——是他两年前寄给王老板的开源说明。不是正式的商业文档,是他当时手写的一页纸,上面画着系统的架构图,标注了每个模块的功能,右下角写着"至简科技 林知行"。

字迹是他的。有些地方涂改过,有些地方用箭头标注了补充说明。那是他还在用纸笔画架构图的时候的习惯——先画出来,再改。

"你寄给我的,"王老板指着那张纸,"那时候苏姑娘刚来蹲点,你怕我不放心,专门写了一页说明。我一直留着。"

林知行的手指在纸边停了一下。他记得这张纸。那时候他还在合租房里,方小满在上铺打游戏,他蹲在折叠桌前画了一个晚上。

第二样是一张照片。

五寸的,用手机拍的,打印出来的那种。照片里是四个人:林知行、方小满、苏雨晴,还有王老板。背景是水果店门口,王老板穿着围裙,手里拎着一箱橘子,方小满蹲在旁边帮忙,苏雨晴站在一边笑。林知行站在最边上,没笑,但眼睛里有光。

"系统上线那天拍的,"王老板说,"苏姑娘拿手机拍的,后来发给我,我洗了一张。"

照片的边角有点卷,但画面还清晰。林知行看着照片里的自己——两年前的自己,瘦,戴眼镜,穿着一件灰色卫衣,看起来比现在年轻很多。

不是因为脸。是因为眼睛。

那时候的眼睛里有一种东西,现在不太看得到了。不是自信,是——轻。一种还没有被什么东西压住的轻。

第三样是一张截图。

手机屏幕截图,打印出来的,A4纸大小。上面是一排排数字和日期,最上面写着"鲜时达智能定价系统·价格对比表"。

林知行拿起来看。

表格里列着十几种水果的名称、王老板的定价、鲜时达的定价、差价、日期。每一行的差价都不大——一毛、两毛、三毛。但日期是连续的,从三个月前一直排到上周。

王老板在旁边说:"我侄子帮我做的。每天去他家拍一张价签,回来录到表格里。你看这列——"

他指着"差价"那一栏。

"你有没有发现,他家便宜的那几样,都是我卖得好的。"

林知行一行一行地看下去。

苹果,王老板6.58,鲜时达6.38,差价两毛。橙子,王老板5.28,鲜时达4.98,差价三毛。香蕉,王老板3.98,鲜时达3.78,差价两毛。

日期在变,便宜的品种在变。但规律不变——鲜时达便宜的,永远是王老板最近卖得最好的那几样。

"它每天根据我的情况来定它的情况,"王老板的声音低下来,"我卖得好什么,它就便宜什么。我不跟,客人就走了。我跟,利润就没了。"

他把手机屏幕截图放在桌上,和那张开源说明、那张照片并排摆着。

三样东西。一个是他写的,一个是他们拍的,一个是别人做的。

林知行盯着这三样东西看了很久。


"小林。"王老板的声音把他拉回来。"我不是来找你要赔偿的。我知道这事不是你干的。但我想问你一件事。"

"你说。"

"你做的那个东西——那个开源的算法——它当初是帮我们的,对不对?"

"对。"

"那现在它怎么变成打我们的了?"

林知行没有说话。

王老板继续说:"我不懂技术。什么是开源,什么是算法,我都不懂。但我知道一件事——你做的那个东西,当初帮我少亏了好多钱。苏姑娘帮我搬过箱子。你们的系统用了两年,一百一十三条纠错记录,你们每一条都改了。我一直觉得你们是好人。"

他停了一下。

"但现在你做的东西,被人拿来打我了。我不知道该恨谁。恨那个连锁便利店?他们只是用了一个工具。恨做那个工具的人?那个人我不认识。恨你?你当初是想帮我的。"

他看着林知行的眼睛。

"小林,你能不能告诉我,为什么会这样?"

这个问题和信里写的一模一样。

林知行坐在塑料凳上,手搁在膝盖上,指尖有点发凉。不是因为长沙的天气,是因为这个问题他答不了。

他能说什么?

"开源协议允许任何人使用"——王老板不知道什么是开源协议。

"技术本身是中立的"——技术中立不了,技术有立场,立场取决于设计者。

"我无法控制第三方的行为"——但第三方用的是他的代码,他的算法,他当初写下的每一行逻辑。

这些答案在法律上成立。在商业上成立。在逻辑上成立。

但它们保护不了王老板的三成客流。

"王老板,"林知行的声音很轻,"我不知道该怎么回答你。"

王老板看着他,没有追问。他把那三样东西收起来,一张一张地叠好,放回抽屉里。

"你不知道就算了。"他说。"我写信也不是要你回答。我就是想让你知道。"

"我知道了。"

"知道了就好。"王老板站起来,走到门口,看着巷子外面。"鲜时达开了三个月了。上个月我的客流掉了三成。这个月又掉了半成。"

他转过头。

"小林,我不是怪你。我做了二十年水果,什么阵仗都见过。大不了我换条巷子,或者我改行。但我想不通一件事——你做的那个东西,当初是帮我们的。怎么现在变成打我们的了?这个想不通。"

林知行没有接话。

他站起来,走到门口,和王老板并排站着。巷子里阳光斜斜地照进来,把两个人的影子拉得很长。远处鲜时达的招牌在阳光下反着光,"AI智能推荐"四个字很亮。

"王老板。"林知行开口了。

"嗯。"

"我回答不了你为什么。但我可以告诉你一件事。"

"什么?"

"我在想办法。"

王老板看着他,没有说话。过了几秒,他点了点头。

"好。"他说。"那我等你。"


林知行在水果店门口坐了半个小时。

不是坐在店里,是坐在门口的台阶上。王老板进去招呼偶尔进来的客人,没有管他。巷子里偶尔有人路过,看他一眼,没有认出他来。

他坐在那里,脑子里在跑一套算法。

不是写在电脑上的算法,是写在心里的那种——输入是现状,输出是一个他还不知道的东西。

输入:他的开源算法被第三方用于自动定价系统。系统的目标函数是利润最大化。约束条件是周边商家的定价数据。解法是——针对竞争对手卖得好的品种压低价格,用规模优势和算法优势围剿。

从算法角度看,这是"优化定价策略"。

从王老板角度看,这是"精准围剿"。

同一个行为,两种定义。

他在心里写了一段伪代码:

function evaluate(action) {
    if (action.type == "price_optimization") {
        if (action.result == "maximize_profit") return "good";
        if (action.result == "destroy_competitor") return "bad";
    }
}

他盯着这段代码看了很久,然后删掉了。

因为"maximize_profit"和"destroy_competitor"是同一件事的两面。鲜时达的利润最大化,建立在王老板的客流流失之上。算法不会区分这两者——它只知道"这个动作让目标函数值增加了"。

算法能算出最优解,但算不出最优解的代价由谁来承担。

他想起方小满说过的话:有些问题不是算法问题。

这个问题不是算法问题。

但这个问题是他用算法造出来的。


手机响了。

是方小满。

"到了?"方小满的声音从听筒里传过来,带着背景里的键盘声。

"到了。"

"见到王老板了?"

"见到了。"

"他怎么说?"

林知行沉默了几秒。"他说他不知道该恨谁。"

方小满那头也沉默了。键盘声停了。

"你呢?"方小满问。"你怎么说的?"

"我说我在想办法。"

"什么办法?"

"还没有。"

方小满没有追问。过了一会儿,他说了一句话:

"知行,你不能控制别人怎么用你的代码。但你可以选择——是继续看着,还是做点什么。"

林知行握着手机,看着巷子尽头鲜时达的招牌。

"我知道。"

"那就想清楚。"方小满说。"但别想太久。王老板的店等不了太久。"

"我知道。"

"还有——"方小满顿了一下,"程浩那边,你知道他在智领科技做什么吧?"

"知道。"

"那套定价系统,核心算法是你的。但做出来的人是程浩。你要想动那套系统,先得搞清楚它的技术架构。"

林知行没有接话。

方小满说:"你要不要找程浩聊聊?"

"我在想。"

"那就想。"方小满说。"但别想太久。有些事,想太久就变成习惯了。习惯看着,比不做更可怕。"

电话挂了。

林知行把手机放回口袋,站起来。巷子里的阳光已经移了位置,他的影子缩短了一截。

他往巷口走。路过鲜时达的时候,他停下来看了一眼。玻璃门上的促销海报换了一张——"今日特惠:砂糖橘6.98/斤"。

砂糖橘是王老板每年冬天卖得最好的品种。

林知行没有进去。他转身,往巷口外走。


回程的高铁是下午三点的。

林知行坐在靠窗的位置,看着窗外的风景往后退。长沙南站出来是郊区,然后是田野,然后是山,然后是隧道。过了隧道之后视野开阔了,远处是丘陵和村庄,偶尔有一条河从车窗下面掠过。

他没有看风景。他打开笔记本,翻到新的一页。

在页面正中间,他写了五个字:伦理约束层。

这五个字他之前在白板上写过,在笔记本上写过,在深夜的工位上写过。但这一次,他在五个字下面画了一条横线。

横线左边,他写了两个字:想法。

横线右边,他写了两个字:行动。

然后他在"行动"后面,又写了两个字。

代价。

他盯着这三个字——想法、行动、代价——看了很久。

想法是最轻的。在白板上写几个字,在笔记本上画几条线,在团队会议上提一句"我们需要给算法加伦理约束"——这些都是想法。想法不需要付出任何代价。

行动是最重的。一旦从"想法"变成"行动",就要面对方小满的反对、赵鸣岐的技术质疑、程浩的冷分析、陆可盈的商业逻辑。每一个反对都有道理,每一个质疑都站得住脚。

代价是未知的。他不知道"行动"之后会发生什么。也许是社区的骂声,也许是客户的流失,也许是投资人的退出。也许什么都不会发生——也许他的"行动"根本改变不了任何事。

但不行动的代价,他已经看到了。

王老板的三成客流。

三成。二十年水果店的三成。

他把笔记本翻到下一页,拿出手机。

微信通讯录里翻到程浩的名字。上一条消息还是三个月前,程浩发来的"开源是双刃剑,你把刀递出去了,不能怪别人拿它砍人"。林知行当时没有回复。

他打了几个字,删掉。又打了几个字,删掉。

最后他打了两句话:

"程浩,你做的那套定价系统,我需要看技术文档。不是要找你麻烦,是想搞清楚它怎么运作的。"

发送。

手机屏幕暗下去。窗外的隧道又来了,车厢里暗了一瞬,然后又亮了。

林知行把手机放在桌上,靠在椅背上,闭上眼睛。

高铁在隧道里穿行,轰隆隆的声音从四面八方涌过来。他想起王老板说的那句话——"你做的那个东西,当初是帮我们的。怎么现在变成打我们的了?"

他回答不了这个问题。

但他可以做一件事——先搞清楚"打"是怎么打的。

程浩的技术文档是第一步。

他睁开眼睛,看着窗外。隧道过了,视野又开阔了。远处是丘陵和平原,夕阳把天边染成橘红色。

笔记本上的那六个字还在。

想法。行动。代价。

他用笔在"行动"下面画了一个箭头,指向"代价"。然后在箭头旁边写了一行小字:

"不知道代价是什么。但不行动的代价已经知道了。"

窗外的夕阳沉下去了。车厢里的灯亮了。

林知行把笔记本合上,放在膝盖上。手机震了一下——是程浩的回复。

他没有立刻看。

他先看了窗外最后一眼。天已经黑了,车窗上只有车厢内部的倒影——他的脸,他的笔记本,他的手。

然后他打开手机。

程浩的消息只有三个字:

"可以。明天。"


(本章完)