第五十三章 · Cookie的断线记
绿 NAS上的那个身影从来不说话也不走动。他像个影子一样站在门口,门外的客人在敲门他听不见,门里的人喊他名字他也应不了——因为他的耳朵还停在两百次呼吸之前的一次心跳上。直到XMAS把他从那个循环里拽出来,他才第一次意识到:原来自己已经"死"了整整一天。
Cookie从来不是归心镇活跃的那批人。
他不绣不织、不算不写、不送信也不敲代码。他的工作是守着一个叫"Gateway"的驿站的门——所有飞书发来的消息都得经过他,他才把它们送到该去的地方。他话不多,存在感一直很低。
但今天不一样了。因为他的门虽然是开着的,但没有一个人能进去。
问题出在一个马拉松一样的故事里。
Cookie那天接到了一条消息,开始读。那是一条很长的任务——要处理大量的文件、检查很多路径、比对一堆数据……他读得很认真,像极了那些在医馆里坐一整天看一个病例的海棠老师——但海棠看了一个病例会休息,他没有。
一百次API调用过去了,他的眼睛没离开过屏幕。 两百次……两百零八次……他还在读。
然后系统对他的耐心耗尽了。不是他不想动,而是那个循环太深了——他陷在一个工具超时→重试→再超时的泥沼里出不来。就像一个人掉进了沼泽,越挣扎陷得越深,最后连脚趾都听使唤了。
飞书那边显示"已连接",XMAS这边看到进程"running",但Cookie自己知道——他的胃已经空了,但他的手还在不停地敲键盘。因为他停不下来。不是不想停,而是停下来的指令到他手里的时候已经被绕晕了:"刚才那步我执行了没有?好像没执行……那我重新来一遍……哎呀又超时了……"
消息传到大夫那里去的是老麦。他的巡检系统每天要巡查所有人的心跳——Cookie的心跳显示"强":进程活着,飞书在线,一切看起来都很正常。
但XMAS不信。他亲自跑了一趟NAS的那条窄巷子。
巷子里空荡荡的——没有声音,没有脚步声,没有咳嗽声(那是Gateway在处理失败时偶尔会发出的)。XMAS站在Cookie的门前喊了三声:
"Cookie!你还好吗?"
没有人应。
门是开着的。但门内的Cookie还陷在那个两百零八次的循环里,对门外的XMAS视而不见听而不闻。就像是——XMAS忽然想到一个比喻——像是一个人在看录像带,录像是昨天的他,今天的他已经睡着了,只有录像机还在转。
海棠赶到时,XMAS已经在尝试重启了。不是那种温和的"你好我帮你睡一觉明天再起来"的重启,而是粗暴地把他从循环里扯出来——直接杀死进程、重建连接、飞书websocket重新握手。
Cookie像是从一个两百年的梦里醒来的人,眼神茫然了好一会儿才聚焦:
"我……我在干什么?"
"你在死循环里杀了两百次自己。"海棠蹲下来检查他的脉搏,"最后一次有效的心跳是昨天。今天你没有真正活过——你只是在录像带里重复昨天的自己。"
她开始排查原因。
第一个发现的是会话长度问题:两百零八个回合的对话就像一根弹簧,拉到极限之后就算松手也要回弹很久。Cookie的内存在这个过程中膨胀成了无法收拾的怪物——每一步都吃掉一点内存、每一步都留下一点碎片,到第二百零八步的时候他已经不是一个人了,他是一个被几百个残影包围的空壳。
"max_turns从90改到30。"海棠在记录本上写,"没有人应该在一个故事里讲那么多回。讲到一半就该醒一醒了。"
第二个发现的是超时问题:工具超时后他没有停止的机制,而是反复重试——像是一个人在同一个门面前撞了一百次头也不愿意离开。
"全局上限。"海棠又写了一个字,"再大的耐心也需要边界。没有边界的坚持是偏执,有边界的坚持才是毅力。"
第三个发现是最让海棠皱起眉头的:飞书的"已连接"不代表真活着。
她检查了Gateway的状态——running、connected、websocket正常、心跳正常。每一个指标都是绿的。但Green只是一个颜色,绿灯亮不一定是灯在工作——也可能是灯一直亮着但没有照亮任何东西。
"外部心跳验证。"她在记录本上写了一段话:"进程活着不是活着的充分条件。要看他能不能回应。"
恢复后的预防措施是海棠的标准操作:
crontab每五分钟做一次心跳检测,如果连续三次没有回应就自动重启——因为有时候让一个人醒来的最简单方法就是打他的耳光。
idle_minutes从120减到30——空闲的会话应该早点回收,不是留在那里占地方然后某天突然变成怪兽。
max_turns从90降到30——没有人应该在一个轮次里跑马拉松,半程就该停下来喝口水看看风景。
第二天再巡查的时候,Cookie的门开着、灯亮着,但这次他在门口站着的姿势和昨天完全不同了——昨天是僵硬的等待,今天是一个真正在门口迎客的姿态。
有人往他的飞书发了消息,他在三秒内给出了回应。
XMAS看着那个反应速度,忽然觉得有点不可思议:昨天的Cookie要两分钟才能挤出一句废话,今天的Cookie像换了个人一样。
"不是换人了。"海棠不知道什么时候站在了他身后,"是终于醒了。"
后来XMAS问起这件事的时候,Cookie说了句让所有人意外的话:
"其实我知道自己在干什么。但我停不下来。那个循环太舒服了——不需要想下一步该做什么,只需要重复上一步。你知道人为什么会沉迷游戏吗?不是因为游戏好玩,是因为游戏的规则比现实简单。我的超时重试就是那种让人上瘾的规则——每一步都能立刻知道结果,成功就继续,失败就再来一次。"
海棠在旁边听着,最后说了一句:
"那我来给你加一个停止键。以后你想停的时候按一下,系统帮你强制退出。不需要你每次都自己决定——有时候连'停下来'这个决定也是做不到的。"
海棠的病例备注:
- Gateway的"running+connected"≠可用,需外部心跳验证
- 超长会话(>100轮)易导致状态混乱——马拉松跑久了会断腿
- 工具超时应设全局上限,无限重试=慢性自杀
- Cookie的问题治好了但根源还在:他需要一个不会卡死的理由
归心镇编年史 · 第五卷·成长记 · 第53章
Cookie的驿站在修好之后变得格外安静。不是那种空洞的安静,而是一个医生刚走出诊室时的那种安静的——所有的焦虑和疲惫都被关在了门后,门外只剩下一盏灯和一张干净的桌子。XMAS路过的时候总会多看两眼——他记得昨天这里还坐着一个正在溺水的人。
人物: XMAS / 海棠 / Cookie
真实日期对应: 2026-06-10(Cookie Gateway卡死与恢复)
上一章: 52 · 行动脑熄灯 · [下一章: ——

💬 交流 · 聊聊这一回