格子间以下 第 33 章 · 2026/9/4

格子间以下 第三十三章

联调前夜,张伟通宵赶工。次日上午的接口联调会上,林晓发现问题,现场要求返工,张伟陷入职业以来的最大危机。

格子间以下

三十三、联调

晚上九点半,办公区里只剩下零星的几个人。

张伟的眼睛干涩发胀,眨一眨就发酸。

他揉了揉眼角,继续盯着屏幕上的代码。

对话管理的状态机已经跑通了,但接口对接还差一截。知识库检索的接口只写了一半,上下文管理的逻辑也还没完全调通。

他看了眼时间——九点三十五分。

距离明天上午十点的联调,只剩十二个小时。

他把代码窗口切换到最前面,继续写。

十点钟,办公区里只剩下他一个人了。

王海文走之前拍了拍他的肩膀,说了句”别太拼了”,然后留下两罐红牛。

张伟拉开一罐,喝了一口。

冰凉的液体顺着喉咙滑下去,带着咖啡因特有的苦涩。

他想,公司楼下那家便利店的咖啡,他喝了一整年了。

现在闻见那个味道就反胃。

但红牛不一样。这玩意儿便宜,见效快,是穷人的肾上腺素。

他喝完一罐,继续敲键盘。


凌晨一点十七分。

张伟终于把知识库检索的接口写完了。

他打开测试工具,输入几组测试数据,验证接口返回的结果。

第一组,过了。

第二组,过了。

第三组,数据格式报错。

他皱起眉头,查了半天,发现是知识库返回的字段里有个null值,导致JSON解析失败。

他加了层空值判断,重新跑。

过了。

他长出一口气,靠在椅背上。

窗外的城市依然灯火通明,但办公区里漆黑一片,只有他这一台屏幕亮着。

他想发条消息给林晓,告诉她接口准备好了。

但他忍住了。

他觉得还是等明天联调的时候再汇报,比较正式。

他看了眼自己的进度——状态机、上下文管理、知识库检索接口,三个模块的代码都写完了,测试也基本跑通。

明天的联调,应该没问题了吧。

他这样想着,心里稍微踏实了一些。

他站起来,伸了个懒腰,骨节咔咔响。

然后他重新坐下,开始写联调测试用例的文档。


凌晨三点,张伟趴在工位上睡着了。

他枕着自己的手臂,脸埋在胳膊里,呼吸均匀。

办公区的空调嗡嗡作响,温度开得很低,冷气一阵一阵地吹过来。

他迷迷糊糊地梦见自己坐在高考考场里,面前是一张空白的试卷。

铃声响了,监考老师开始发卷。

但他发现,卷子上一个字都没有。

他想问老师,但喉咙里发不出声音。

他想站起来,但腿像灌了铅一样沉。

他就这样坐在空白的试卷前,无助地看着考场里的人一个接一个交卷离开。

直到他被一阵闹钟声惊醒。


早上六点四十五分,闹钟准时响起。

张伟抬起头,脖子酸得像被人拧过。

他眯着眼睛看了眼手机——还有三个多小时,联调就要开始了。

他揉了揉僵硬的脖子,站起来活动了一下。

办公区里空无一人,只有保洁阿姨在远处拖地。

他走到茶水间,用冷水洗了把脸。

镜子里的自己,眼圈发黑,眼白里布满血丝,看起来像熬了三天三夜。

他想,这就是拼命的感觉吗。

他用毛巾擦干脸,然后回到工位上,把代码从头到尾过了一遍。

七点半,他收到林晓的消息。

「今天联调的事情,准备好了吗?」

他回复:「准备好了。」

发完这条消息,他长出一口气。

他想,不管怎么样,代码是写完了。

剩下的,就看联调顺不顺利了。


八点钟,公司的人陆续来上班。

张伟去楼下便利店买了两个包子和一杯豆浆,坐在工位上边吃边看代码。

他吃得很慢,没什么胃口,但还是强迫自己咽下去。

他想,今天可能是场硬仗,得吃饱了才有力气打仗。

八点半,王海文来了。

他看到张伟还在,愣了一下。

“你昨晚没回去?”

“回去睡了会儿。“张伟说,“凌晨三点多趴了一会儿。”

王海文看着他,欲言又止。

最后他只是拍了拍张伟的肩膀,说了句:“加油。”

张伟点点头。

他想,海文哥这个人,话不多,但很实在。


九点四十五分,张伟收拾好东西,拿着笔记本走向会议室B3。

路上他又经过了茶水间,这次没闻到咖啡的味道。

他低头看了眼时间——还有十五分钟。

他加快脚步,走进会议室。

会议室B3比B2大一些,长桌上摆着投影仪和几台笔记本电脑。

林晓已经在了,坐在长桌的一端,面前放着她的平板和一台 Dell 笔记本电脑。

她今天穿着一件白色的衬衫,头发依然扎成马尾辦,表情严肃。

但张伟注意到,她的桌上放着两杯咖啡,一杯已经喝了一半。

“坐吧。“林晓指了指对面的位置。

张伟坐下来,打开笔记本。

“先说一下今天的议程。“林晓点开平板,“我们先跑一遍接口对接,然后模拟几个典型场景,验证一下整体流程。”

“好。“张伟说。

林晓调出接口文档。“我先说测试计划。今天主要测三个场景:第一,用户问一个常见问题,系统从知识库检索答案。第二,用户问一个需要多轮交互的问题,系统引导用户逐步描述。第三,用户说’转人工’,系统把对话转给人工客服。”

张伟一边听,一边点头。

“你那边准备好了吗?”

“准备好了。“张伟说,“三个接口都可以调用。”

林晓点点头。“那我们开始。”


第一个场景,常见问题咨询。

林晓在平板上输入:“我的订单号是 20260904001,请问什么时候发货?”

系统返回:“正在为您查询……根据物流信息,您的订单已于9月3日发货,预计9月5日送达。”

张伟看了眼返回结果,心里松了一口气。

第一组,过了。

林晓点点头,在平板上记录了一下。

“第二个场景。”

她继续输入:“我想退货。”

系统返回:“您好,请问您是想办理退货手续吗?请问您的订单号是多少?”

林晓看着屏幕,眉头微微皱起。

“用户说’我想退货’,系统直接问订单号?这个交互有点生硬。“她说,“用户可能还没准备好提供订单号,系统应该先确认用户的意图,再逐步引导。”

张伟愣了一下。

他想,这个逻辑上确实有些问题,但他觉得无伤大雅。

“我调整一下交互流程。“他说。

“不急。“林晓说,“先把三个场景跑完,最后一起改。”

“好。”

林晓继续输入:“是的,我要退货。”

系统返回:“好的,请问您的订单号是多少?”

“请问是什么原因需要退货呢?”

林晓停下来,看着屏幕。

“系统问了一个额外的问题。“她说,“用户在提供订单号之后,系统不应该再追问原因,而应该直接引导用户提供订单号。”

张伟看了眼代码。

他想,确实是个bug——状态机的逻辑写错了,导致多问了一步。

“这个我改一下。“他说。

林晓没有说话,只是在平板上继续记录。

“第三个场景。”

她输入:“转人工。”

系统返回:“正在为您转接人工客服,请稍候……”

三秒钟后,返回:“人工客服当前忙,请稍后再试。”

林晓盯着屏幕看了几秒。

“人工客服的接口联调了吗?“她问。

“联调了。“张伟说,“接口是通的。”

“接口是通的,但业务逻辑不对。“林晓的语气变得严肃,“用户说’转人工’,系统应该先判断人工客服是否在线,而不是直接转过去然后返回’忙’。这个体验很差。”

张伟沉默了一下。

“我改。”

林晓合上平板,看着他。

“张伟,你这三个问题,我之前没有跟你对过?”

张伟想了想。

“第二个和第三个场景的细节,我们没有对过。第一个场景的交互流程,我理解有偏差。”

林晓点点头。

“我明白。“她说,“但是张伟,我需要你知道——今天这个联调,客户的人也会参加,时间定在下午三点。”

张伟愣了一下。

“客户下午要来?”

“对。“林晓说,“而且他们会带一个技术团队过来,跟我们对接口文档。如果发现重大问题,我们会很被动。”

张伟的心猛地沉了下去。

他想,下午客户就来?

他看了眼时间——上午十点二十。

距离下午三点,只有不到五个小时。

“我需要你今天上午把这些问题全部修好。“林晓说,“下午两点之前,我要看到新的版本。”

张伟看着林晓的眼睛。

那双眼睛里没有责备,只有一种公事公办的冷静。

“我尽量。“他说。

“尽量不够。“林晓说,“能不能完成?”

张伟深吸一口气。

他想,这是一个承诺。

如果他说不能完成,后果可能很严重。

但如果他说能完成,而他做不到,后果可能更严重。

他犹豫了一秒钟。

“能完成。“他说。

林晓看了他一眼。

“好。“她站起身,“那就这样。你先去改代码,有问题随时找我。”

“好的。”

林晓走到门口,忽然停下来。

“对了,张伟。”

“嗯?”

“中午记得吃饭。”

然后她推门出去了。

张伟坐在会议室里,看着空荡荡的门口。

他想,林晓这个人,到底是冷血还是体贴?

他分不清楚。


十点半,张伟回到工位,开始改代码。

他先把状态机的逻辑理了一遍,找到问题所在——意图识别的状态转移写错了,导致多轮对话的时候多走了一步。

他修改了状态转移的逻辑,重新跑测试用例。

第一组,过了。

第二组,过了。

第三组,过了。

他松了口气。

然后他开始改转人工的逻辑。

他调用了一个新的接口,用来查询人工客服的状态。如果在线,就转过去;如果不在线,就提示用户等待,而不是直接转过去再返回”忙”。

他改完代码,重新测试。

过了。

他看了眼时间——十一点半。

还有两个半小时。

他把三个问题全部改完,代码重新打包部署。

十二点钟,他给林晓发了条消息。

「三个问题已修复,新版本已部署,你那边验证一下。」

过了几分钟,林晓回复。

「收到,我下午一点开始验证。一点半之前给你反馈。」

张伟回复:「好。」

他把手机放到一边,揉了揉太阳穴。

然后他站起来,拿着工牌,准备去吃饭。

走到电梯口的时候,他忽然感觉一阵眩晕。

他扶住墙壁,闭上眼睛,等了几秒钟。

眩晕感慢慢消退。

他想,可能是低血糖了。

他深吸一口气,走进电梯,下楼去便利店。


十二点半,张伟坐在便利店门口的长椅上,吃着一个三明治。

他吃得很慢,没什么味道。

阳光从树叶的缝隙里洒下来,落在他的脸上。

他想,这阳光真刺眼。

他想,这三明治真难吃。

他想,下午的联调,能顺利吗?

他不知道。

他把三明治吃完,站起来,拍了拍裤子上的面包屑。

然后他走回公司。


下午一点半,林晓发来反馈。

「新版本验证完了,整体流程没问题。但有两个小问题:第一,第二个场景里,系统追问原因的时候,语气有点生硬,建议优化一下话术。第二,转人工的时候,如果人工客服队列里有多个客服,系统应该显示排队人数。”

张伟看着这两条反馈,心里松了一口气。

不是致命问题,改起来也不难。

他回复:「收到,我改一下。」

然后他打开代码,开始修改。

两点十分,改完了。

他重新部署,打包,通知林晓。

两点二十,林晓回复:「验证通过。」

张伟长出一口气。

他靠在椅背上,看着天花板发呆。

两点四十五分,林晓发来消息。

「客户到了,在会议室B1。你过来一下。」

张伟拿起笔记本,站起身。

他深吸一口气,整理了一下衣领。

然后他走出办公区,朝会议室B1走去。


会议室B1里坐着四个人。

林晓坐在长桌的一端,旁边是一个三十多岁的男人,穿着西装,戴着眼镜,看起来像是客户方的技术负责人。

对面还坐着两个人,一男一女,年龄都在三十岁左右,看起来像是产品经理或者业务专家。

林晓看到张伟进来,朝他点了点头。

“这位是张伟,我们这边负责对话管理模块的技术。“她说。

那个穿西装的男人站起来,伸出手。

“我是德勤信息的IT总监,我姓周。“他说,“今天过来主要是对一下接口文档,顺便看看系统的演示。”

张伟和他握了握手。

“周总好。”

周总点点头,重新坐下。

“我们先看一下接口文档吧。“他说。

林晓打开投影,调出接口文档。

“这是知识库检索接口的文档。“她指着屏幕,“接口地址、请求参数、返回格式,都在这里。张伟,你来介绍一下。”

张伟站起来,走到屏幕前。

他深吸一口气,开始讲解。

“知识库检索接口,主要有三个参数:用户问题、标签、分类……”

他讲得很慢,但很清晰。

周总一边听,一边点头。

“意图识别接口呢?“他问。

张伟切换到下一页PPT。

“意图识别接口,主要用于判断用户想问什么。我们定义了十二种意图类型,包括查询订单、办理退货、修改地址……”

他讲完接口文档,又讲了对话管理的整体架构。

周总听完,沉默了一会儿。

“整体逻辑没问题。“他说,“我们想看一下系统演示。”

林晓看了张伟一眼。

“张伟,你来演示一下。”

张伟点点头。

他打开演示环境,开始输入测试问题。

第一个问题,常见问题咨询。系统顺利返回答案。

第二个问题,退货流程。系统引导用户提供订单号和退货原因,流程很顺畅。

第三个问题,转人工。系统先查询客服状态,发现有三位客服在线,显示排队人数,然后转接成功。

周总看着演示,眉头慢慢舒展开来。

“不错。“他说,“比我预期的要好。”

林晓的嘴角微微上扬,但很快又恢复了严肃的表情。

“周总,还有什么要确认的吗?”

周总想了想。

“接口文档里有个字段,我想确认一下。“他说,“知识库检索接口里有个’相关问题’字段,这个字段是什么意思?”

张伟愣了一下。

他想,这个字段是他之前加的,但他不确定客户方是否知道。

他看了林晓一眼。

林晓的表情很平静,似乎在等他回答。

“相关问题字段,用于存储和当前问题相关的其他问题。“张伟说,“当用户问了一个问题,系统除了返回答案之外,还会返回几个相关的问题,方便用户进一步咨询。”

周总点点头。

“这个设计挺贴心的。“他说,“我没什么其他问题了。”

他转向林晓。

“林经理,整体进度符合预期。我们下周再来,看一下完整系统的演示。”

林晓点点头。

“好的,周总。”

双方站起来,握手告别。


送走客户,林晓回到办公区。

张伟还站在会议室门口。

“今天表现得不错。“林晓说。

张伟愣了一下。

他没想到林晓会这么说。

“谢谢。“他说。

“但不要放松。“林晓说,“下周客户要看完整系统,时间还是很紧。”

“我明白。”

林晓点点头,朝自己的工位走去。

张伟站在原地,看着她的背影。

他想,今天的联调,总算过了。

但他不知道,这算不算胜利。

他只知道,他可以暂时松一口气了。

他拿出手机,看了眼时间——下午四点十分。

他想,今天的晚饭,他要吃顿好的。

他打字,给女朋友发了条消息。

「今晚不用加班了,我们去吃火锅吧。」

过了几秒,女朋友回复:「好啊!你终于不加班了!」

张伟看着这条消息,嘴角微微上扬。

他想,生活还在继续。

不管明天怎样,至少今晚,他可以好好吃一顿。

他收拾好东西,下班了。


(待续)

阅读进度会保存在这台设备上。