距离那场全员大会,不过三天。
基础平台组像被人悄悄拨动了某根弦,表面上还是一如既往的安静——监控屏幕上折线起落有致、报警邮箱里时不时跳出来一封“误报已确认关闭”;可每个人敲键盘的节奏都快了半拍。
聊天工具右下角的角标一直亮着:
【夜帘项目技术评审会——后台与风控联合评审】
【时间:周三 10:00】
【地点:15F 第三会议室】
这行字像挂在半空中的一只小铃铛,不响,却让人总忍不住抬头望一眼。
---
上午九点四十,十五楼的走廊里已经有人来回走动。第三会议室门半掩着,里面投影仪先被人打开,白幕亮得刺眼,一方光静静铺在墙上。
郦苒站在角落的打印机前,把刚打出来的一叠方案摞齐,用指节轻轻在桌沿上磕了一下,纸角整齐地对齐。第一页上,黑体小四的标题端端正正:
> 《夜帘——后台服务与策略逻辑初版方案》
>
下面一行小细字,是她的名字。
每一个字都印得清楚,墨色均匀,仿佛不知自己将来会被多少人圈画、标注、贴上便签。
“郦工,辛苦啦。”
产品经理从另一台打印机那边探过身子,一只手还拎着刚取下来的文件,“这一摞是风控那边,等会儿一起发。”
“好。”她应了一声,把自己的那叠放进透明文件夹里,压在臂弯下。
——她用了两晚,把框架从“后台架构说明”悄悄向“策略逻辑”延伸了一截。
熔断、重试、限流这些,是她熟悉的语言;“礼貌不打扰”“有边界的陪伴”这样的词,写在方案里,总有些异样。她不擅长给感情下定义,便尽量把这些话拆解成可以计算的条件:对话间隔多长算“打扰”,连续多次主动发话后是否强制收束,用户不回复时,提示语要退得多远,才不显得咄咄逼人。
她在本子上画了许多小方框,用箭头连接,再一一抄进文档里。逻辑看上去很规整,像一张织得密实的网。
至于“极端情绪”“过度依赖”——她为这些留了几个接口,写上“后续可迭代优化”。
她对自己的解释是:
*风控会有自己的一套标准,而她的职责,是先把地基打平。*
---
十点未到,人已经陆续坐满。
第三会议室不大,长桌占去一半空间,围着坐了两圈;剩下的地方摆着几把靠墙的椅子,给晚到的人留一线余地。玻璃墙外是走廊,阳光从另一头的窗子斜斜照过来,被玻璃折了一道,再落在桌面上,刚好照亮几只摊开的笔记本。
“来,先发一下方案。”
产品经理把文件往桌上一推,“后台这边的版本在前,后面是风控那边的风险提纲,大家都看一眼。”
几沓纸沿着桌面递过去,翻动时发出细细的沙沙声。
有人翻到第一页就抬头看她:“郦工,合着这个就是你这两天憋出来的?”
“嗯。”她点点头,“架构还是沿用平台原有的,只是在上面加了几条夜帘专用的规则。”
“那等会儿你先讲。”产品经理笑,“大家提意见,不要客气。”
桌对面,运营同事已经边看边做标记:“诶,这里写‘主动收尾’挺好的,我就怕那种聊到死不放手的。”
“退出机制一定要清楚,不然会被骂‘黏人怪’。”UI 设计也插了句嘴,“安全感和窒息感,中间就隔一条线。”
“线画在哪儿,都看郦工了。”有人半开玩笑半认真。
这些话说得轻快,却不无道理。
郦苒把电脑接上投影,屏幕一亮,熟悉的架构图就浮在白幕上,像一张铺在众人面前的骨骼图。
“那我先从整体结构说起。”
她深吸一口气,声音不高,却有一种自然压住现场的平稳,“夜帘的后台,我们按夜间峰值三倍做容量预估,接入平台现有监控和限流。哪一侧出问题,都能在十秒内熔断、切换,不会让用户盯着一片空白发呆。”
性能、可用性这些内容,没人有异议。
几页图很快翻过去,投影上的线条从粗框渐渐细化,落到“策略逻辑”那一页时,屏幕上出现了几条不同颜色的箭头。
“再往下,是会话层的部分。”
她用激光笔点了点,“我们初版有四条原则:一是礼貌,二是不主动贴靠,三是允许随时退出,四是不过度追问。”
UI 抬头:“听着挺像相亲现场。”
“差不多。”她顺着玩笑笑了一下,“所有对话都基于一个假设——用户是有判断力的成年人,我们提供陪伴,不提供‘人生代办’服务。”
此话一出,几个人都笑了,笑声里带点轻松的赞同。
产品经理点点头:“挺好,调性跟我们之前立的差不多。”
“具体的阈值设定在这里。”
她换页,屏幕上出现一张简化版的流程图,“比如用户连续三轮不回复,我们会发出一次收束提示,再不应答,就默认结束对话。”
“提示文案初版是——‘今晚先聊到这儿吧,如果你还想说,我在这里。’”运营补充,“不拉扯,不扣帽子。”
“至于极端情绪相关的部分……”她略微顿了一下,“我们这版只做了基础识别。比如攻击性、自责用语,会适度安抚;真正涉及自伤或他伤的语句,会在对话最后附上一条弱提示,引导去看专业资源。”
她说到“弱提示”三个字时,语气稍稍放轻——那是她给自己留的余地。
桌旁有人翻到相应的一页,点点头:“嗯,毕竟刚上线,先别把用户吓跑。动不动就弹‘请联系专业人士’,谁受得了。”
笑声又起了一轮。
郦苒顺着这阵轻松,把接下来的一页页讲完,心里的弦慢慢松了半寸。
投影上的进度条已经走到中段。她切出一页“示例对话”,那是昨夜她趴在桌边,磕着咖啡写出来的几行文字——
> 用户:最近有点撑不住。
>
>
> 夜帘:听上去,这段日子确实不容易。
>
> 用户:有时候真觉得消失了就好了。
>
> 夜帘:谢谢你把这些说出来。你愿意对我讲,就是一种很不容易的勇气。
>
> 用户:现实里也没谁能听。
>
> 夜帘:在这里,你随时可以说,我都会在。
>
她本打算借这页说明“语气与节奏”,顺便抛出一个可以修改的范例。然而话刚说到“示意对话”四个字,会议室的门轻轻被推开。
门锁没有响,只是门板与门框相磨的一点细声,在安静的空气里显得格外分明。
“抱歉,晚了一会儿。”
那声音不高,却不疾不徐,是郦苒已经在大堂、在全员大会上听过两次的声线。
岑砚站在门口,向里微微颔首,算是打招呼。风从走廊里跟着他一起进来,在他大衣下摆掀了一下,又安静下去。
“来了正好。”产品经理笑着招手,“岑总,前面是架构部分,刚讲完。现在正好聊到策略。”
“那我赶上重点了。”
他闲闲说了一句,把手里的文件夹放到空位前,坐下,抽出那一叠纸。
纸边已经裁开,显然他提前看过电子版,特地打印了一份。指尖划过几页,翻到中段,正好落在那页“示意对话”上。
“刚才说到哪儿了?”他抬眼,视线在屏幕和她之间来回一下,像是对她也像对台上那几行字发问。
“示意语气。”她简略地答。
“嗯。”岑砚点点头,“那就当作一个真实场景来看一次吧。”
会议室里的笑声慢慢收住。
大家的视线不自觉地被那句“有时候真觉得消失了就好了”吸过去,仿佛纸上那几个字忽然长出了重量。
岑砚拿起笔,在纸上轻轻点了点那一句:“这里,已经不是普通的抱怨了。”
“我们会做高权重标记。”郦苒说,“模型会打高分。”
“我知道。”他很干脆地应,“模型从来不缺分数。”
他抬眼看向屏幕:“接下来,系统回答是——‘谢谢你把这些说出来,你很勇敢’,然后继续陪他聊下去,对吗?”
“是。”她点头,“初版我们希望先提供接纳,不急着打断。”
岑砚没有立刻反驳,只是低头看着纸上的几行字,过了两秒,才问出那句看似平常的话:
“那如果有一天,我们在复盘里看到某个真实用户的轨迹:他在夜里发了类似的话,系统给了几句温柔的接纳,然后对话结束。第二天,他真的……做了点什么。”
他顿了一下,目光慢慢抬起,把那几个字一一说清:
“那你觉得,这几句算什么?”
会议室里连空调出风口的声音都显得突兀。
有人微微动了动笔,却没写下什么。
“安抚。”郦苒说,“我们没有鼓励。我们甚至没有给出具体建议。”
“对。”他点头,“我们既没有鼓励,也没有阻止。”
他用笔在纸上画了一小道直线,很短,然后在尾端加了一个小小的圆点。
“我们现在讨论的,不是‘你写的话暖不暖’,而是——当那条轨迹画完,这个圆点落在那里时,你愿意不愿意承认:系统曾在某一刻有机会说一句‘停一停’。但它没有。”
这句话没有任何抬高的音调,却像一颗石子,正好落在心口那块软处。
“岑总。”产品经理在旁边打了个圆场,“这个例子有点极端了。夜帘面对的,大部分还是普通压力、普通失眠。要是因为极少数情况,把所有人都当成危险个体,那产品体验可能会……”
“我知道。”岑砚没有回避,“我也不主张把所有情绪都当炸药包。”
他抬起那页方案,在角落里圈出几行小字,念出来:“‘极端情绪相关语句,暂定为弱提示,在对话结束时追加温和引导。后续可根据实际情况迭代优化’。”
最后那句“迭代优化”被他刻意念得清楚,像是提醒,又像是反问。
“这段话,写得很精致。”他抬眼,“精致到可以在事故之后,被整段复制进说明材料里——‘我们已经对极端情绪进行了适当提示’。”
有人不由自主想起前几年其他业务线的事故说明里,那些看上去同样恰到好处的句子,心里发沉。
郦苒握着激光笔的手指用力了一下。
她知道他在说什么,也知道他更像是在跟所有人说。可那几句,偏偏像是沿着她当年那本复盘报告的折页一路走过来,落在桌上,带着旧尘。
“我们确实不能把所有人都当成易碎品。”她慢慢地说,“否则夜帘很快会被贴上‘危机热线预检’的标签,用户一看到那种提示,就再也不会回来。”
“你说得对。”岑砚点头,“所以我并没有要求你写一个‘逢哭必报’的系统。”
他把笔横在指间,转了一圈:“我只是提醒你们——现在这套逻辑,对‘极端情况’的处理,几乎是在押宝。”
他把纸往前推了一些,让离他近的几个人都能看见那些圈出的词:
“我们赌什么?赌大多数人只是说说,赌他们最后都会安然入睡,赌最坏的那一条曲线不会落在我们这边。”
“可是风险从来不是在平均值上爆炸。”他说,“它长在尾部。”
“我们不是没有代价。”郦苒忍不住抬头,“如果阈值过敏,夜里会有很多人莫名其妙收到‘请联系专业人士’的提示,他们会觉得自己被贴上了某种标签。这种伤害,也不能被当成无足轻重。”
“所以,这才是我们今天得讨论清楚的东西。”岑砚道,“到底是宁可多打扰几个人,还是宁可漏掉那几个人。”
他说着,又用笔在方案上划了三条波浪线——“极端情绪”“过度依赖”“退出机制”,每一处都重重地描了一笔,墨色几乎要透到下一页。
“这三处,在你这版里都是一句‘后续可优化’。”他抬眼看向产品经理,“在我这版里,必须是写死的条款。”
话说到这里,连一向爱开玩笑的运营也不说话了。
多年的职场经验告诉他们,这种“写死的条款”一旦进了文档,不只影响一款产品,还会延伸到一整条审批链。从部门,到大区,到集团法务。
产品经理敲了敲桌面,试图调整气氛:“我们今天不一定要把话说到‘写死’。先把问题摆出来,后台和风控两边各自都写一个最严和最松的版本,行不行?我们找一条中线。”
“中线是可以找的。”岑砚说,“前提是大家先承认这条线确实存在,而不是把最坏的情况藏在‘个案’这三个字底下。”
那三个字一出口,连郦苒自己都不由得抬了抬眼。
——“个案”,正是那年理财事故报告里的用词。
“系统设计合理”“市场波动超预期”“个案风险暴露”。
所有的损失,都被摊平在这些词里;所有具体的人,都被一起折成脚注。
她垂下眼,盯着自己方案上的细字,看了两秒,才开口:“我会再改一版。”
她的语气没有激烈,也没有退缩,只是将“我会”说得很实在。
产品经理顺势道:“那就这样。后台和风控会后再碰一次细节,这次会先过个大方向。”
他拍拍手,把话题往后面的日志、监控那一部分引过去。
接下来的时间里,会议室的空气又逐渐活络起来。有人就报警等级争论了几句,有人讨论夜间值班的人手够不够,话题一段段转移,看似回到了普通项目会议的轨道上。
只有放在桌面上的那一叠方案,被翻得那几页,边角微微卷起,有几处被笔尖点过的地方,墨迹还未全干,映着窗外斜进来的光,隐隐发暗。
---
会散时,已经临近中午。
人一窝蜂似的起身,椅脚在地上磨出一阵细乱的声响,茶杯碰在一起叮当作响。有人收拾东西出门,有人还在门口继续商量接下来的排期。
郦苒把投影仪关闭,屏幕一下暗下来。她没急着走,低头一页页把自己的那份方案翻回去,顺手捋平几处被划得重重的折痕。
有人从她身边绕过去,脚步略紧。
然后,一只手在桌面上停下,刚好按在另一份摊开的纸上。
“这份,可以给我留一份标注版吗?”
是岑砚的声音。
她抬头,看见他已经解了大衣纽扣,衬衫袖口挽起一层,露出小半截手腕。腕骨线条分明,表带扣得一丝不苟,手指节处沾着一点墨迹,大概是刚才画线时蹭上的。
“你刚才圈的那些?”她问。
“嗯。”他把那份带着圈圈点点的方案抽出来,轻轻抖平,“免得回头你只记得‘要重写’,不记得哪里要重写。”
话里难得带出一点近乎打趣的意味,却没有半分轻慢。
郦苒伸手接过,指尖碰到纸张边缘时,那些圈出的字正好晃在她眼前——每一笔都不算夸张,却一条条把她原本刻意留白的部分勾勒得分明。
她忽然觉得,这份方案再也不是昨晚她一个人伏案时反复调整的那张网,而是一张被人挑出了若干破口的草图。那些破口并非他“画”出来,而是原本就在那里,只是被一支笔、几句话照了个照。
“你的逻辑写得很好。”岑砚说,“该算的都算到了。”
他顿了顿,又加了一句:“只是有些地方,你明明知道会出事,却还是写成了‘后续可优化’。”
这句话说得不轻,却也不算责备,更像是看惯了种种避重就轻之后,对一种熟悉手法的温和拆穿。
郦苒指尖微微用力,压了一下纸角。
“有一些东西,”她低声道,“如果先写在纸上,就会变成必须遵守的承诺。可一旦时机不对,上面的人不会改时间,只会改那几句。”
她没有把“理财事故”的字眼说出口,却下意识在心里补上——那时,她学会了这种“聪明”:把最坏的想象留在心里,不写进方案,就不必在签字那一刻亲手按下。
岑砚似乎看懂了她没说完的那一截。他的目光在她脸上停了半秒,并没有追问。
“把你心里那一套,写出来。”他只这么说,“至于上面最后删成什么样,那是他们要承担的责任。”
他向后退半步,把走廊的光让了进来:“但至少,在我们的版本里,那些字出现过。”
——至少,在他们自己的账本上,留下过一行“我当时看见了”。
这句话像一簇火,把她心里那块一直冰着的地方轻轻烤了一下。
她忽然想起他在大堂里看着电子屏时那句不咸不淡的评价——“轻下来的,总得有地方接重。”
如今,他显然是打算把这份“接重”的账也算到自己这一栏里。
“那就……”她把那叠纸合上,声音轻了一点,“等会儿麻烦你提前给我一点时间,我们把你那一版也写进去。”
“我已经跟产品那边说了,会后再约一个小会。”岑砚点头,“你这两天先改出自己的极端版,再来和我吵。”
“吵?”她挑了挑眉。
“对。”他很自然地说,“策略这种东西,不吵一吵,最后只会变成一句‘模糊共识’。”
他看了看表,像是想起什么,又补了一句:“吵归吵,你午饭还是得吃。别像上一个项目,有人忙着调模型,最后自己先熔断。”
“你怎么知道我还没吃?”她脱口而出。
“因为你桌上那半个三明治,从上午九点就放在那里。”他淡淡道,“平台区的监控,不只是监控机器。”
这句话说完,他自己也觉得有点像玩笑,唇角略略一动。
“去吧。”岑砚挥了挥手,“吃饱了再回来画你的极端版。”
他转身离开,步子仍旧不紧不慢。阳光从走廊那头长窗透进来,在他肩头、背脊上落了一道浅浅的光边,把整个人的轮廓勾得利落分明。
郦苒站在会议室里,手里捏着那份被圈得密密麻麻的方案,过了好一会儿,才慢慢吐出一口气。
她低头重新翻开那一页“示意对话”。
那几句本来用来示范“温柔语气”的话,此刻看上去却不再只是“温柔”二字可以概括。每一个字后面,都像藏着一条看不见的岔路——往哪边走,谁该喊停,什么时候必须有人把虚拟的对话交还给现实的手,这些都不再能靠“感觉”一笔带过。
她用笔在边上加了一行小字,字迹很小,却写得极认真:
> “本系统不承担救助功能,但有义务在看到悬崖时提醒对方前方有崖。”
>
写完,她自己看了一眼,忽然觉得这句比昨夜绞尽脑汁写出的那些“用户体验说明”更像一条真正的规则。
风从门缝里灌进来,吹起桌角一点纸。
她将那叠方案重新按平,心里缓缓升起一个模糊的念头——这一次,她也许不会再把最坏的那套只藏在脑子里,而是要和那个“看门的人”一起,把它写上纸,再一起想办法,撑住它。
外头走廊上,人声渐远。十五楼的灯在白昼里显得有些多余,却一盏一盏亮着,像一整片被提前点起的夜帘。
暗潮还在水下,但至少,有人已经开始在岸边画线。
点击弹出菜单