触发条件
取药窗口的小篮子推出来时,里面只有三盒药。
唐敏低头看了一眼,塑料袋薄得发亮,袋口没封严,处方单折在最上面,边角被窗口里的热风吹得微微翘起。社区卫生服务中心的大厅不大,空调像努力过但没赢。上午十点多,外面多云,没下雨,可湿气从自动门缝里一阵一阵挤进来,排队的人一站久,口罩边缘就贴到脸上。
母亲坐在旁边的蓝色塑料椅上,手里攥着叫号小票。小票已经被她捏软,号码那一块皱成了细纹。
“搞完没有?”母亲问。
“快了。”唐敏把药袋拿起来,又看了一遍数量。
一个月。
她回到诊室门口,医生正在给下一位老人量血压,桌上摆着血压计、医保读卡器和一杯快见底的茶。电脑屏幕上挂着处方系统,右下角弹出一个红色提示框,医生用鼠标点了两下,没点掉。
唐敏站在门边,等医生把袖带松开。
“医生,”她说,“我刚看处方,只开了四周。现在慢病长期处方不是可以开十二周吗?我妈出门不方便,固定用药,能不能按三个月开?”
医生抬头看了她一眼,不是不耐烦,是那种已经被同一句话问过很多次的疲惫。他把鼠标拉回处方界面,点开唐敏母亲的名字,又点药品明细。
“政策是有。”他说,“但是我们这边系统现在不是所有药都放开。您看这个,库存只够本月配发;这个药要看上级医院最近一次记录;还有医保这边,长期处方要满足签约、病情稳定、药品目录几个条件一起过。”
他说得很慢,像每个词都要避开一块凸起的地砖。
唐敏看着屏幕。
处方系统里,药名后面有灰色的小字,部分可开长期,部分需复核。医生试着把数量从`4周`改成`12周`,屏幕立刻弹出提示:当前机构库存不足,无法生成。换一个药,又跳出:请补充近三个月诊疗记录。第三个框更短:超出限额。
每一个框都很客气。
每一个框都不动。
医生叹了口气,把数量改回四周:“您别白跑,我能给您开的先开足一个月。下个月如果系统放开,或者您带一下医院那边新的病历,我们再试。现在我给您硬改也出不了单,药房那边也发不了。”
唐敏没有争。
她以前做编辑,遇到这种话,会追问依据是哪一条、执行口径是谁定的、为什么同一项政策到窗口变了形。她甚至能把医生刚才那段话拆成三层:政策层、系统层、库存层,每一层都不是这张桌子前的人能当场改掉的。
可母亲已经坐了四十分钟,后背开始往椅背上滑。她们出门前八点四十五,到这里九点十二,挂号、排队、问诊、取药,回家还要二十分钟。再争十分钟,午饭就往后拖,药也跟着往后拖。
唐敏点头:“好,先开一个月。”
医生把处方确认,语气松了一点:“您下次尽量上午来,药房补货多一点。”
“晓得。”唐敏说。
她把药袋放进环保袋,扶母亲起身。母亲站起来时小票从手里掉了,飘到椅子下面。唐敏弯腰捡起来,看到小票背面沾了一点灰。
大厅电视正在播健康宣传片,声音很小,字幕滚得很快。旁边候诊椅上,一个老人问儿子:“开三个月没有?”儿子说:“没得,还是一个月。”老人哦了一声,把拐杖往腿边收了收。
唐敏带母亲出门。外面没有雨,地面却还带着前两天大雨留下的潮,树池里的泥颜色很深,太阳被云挡住,热气从水泥地里慢慢往上蒸。母亲走得不快,走到小区门口时,背上已经出了一层汗。
“刚才那个地方冷。”母亲说。
“里面冷,外面热。”唐敏说,“深圳今天专门搞人。”
母亲笑了一下:“搞人还要排队。”
“对,排队被搞。”
回到家,昨晚的蛋糕盒还在冰箱第二层。她昨天按小宇说的“不要太甜”,买了一个六寸的酸奶水果蛋糕,奶油薄,水果多。小宇回来吃了饭,没讲机考,倒是把蛋糕上的芒果挑出来给姥姥,说:“这个软。”母亲当时问了两遍是谁生日,第三遍看着蜡烛,说:“十五啊,快大人了。”小宇低头切蛋糕,没接话,只把最大那块的奶油刮掉一半。
今天早上他走得早,书包拉链没拉好,唐敏在门口提醒,他回头拉上,说:“妈,蛋糕还行。”
还行。
这两个字在十五岁男孩嘴里,已经接近五星好评。
唐敏把药袋拆开,新开的三盒药和浅灰色七格药盒摆在餐桌上。她没有急着分药,先把处方单拍照存本地,文件名写:`2026.5.19_社区处方_四周`。想了想,又在备注里补了一句:`尝试12周,系统/库存/复核未过。`
她没有写“失败”。
失败这个词太大,今天只是窗口吐出来一个月的量。
母亲坐在客厅,拿着一颗蓝莓看了很久,忽然问:“小宇不吃甜的?”
唐敏手停了一下:“你记得?”
母亲把蓝莓放进嘴里,皱了皱眉:“昨天那个白白的,他刮掉了。像你小时候,蛋黄也要蘸酱油。”
唐敏没有追问。
她把药片一格一格放进药盒,周二、周三、周四,白色椭圆片,淡黄色小圆片。分到周五时,她忽然明白,母亲的记忆不是按日期往下塌的。它不是日历,一页一页撕掉。它更像一间潮湿的老屋,有些门锁锈死,有些门被一颗蓝莓、一块蛋糕、一句“不欠”轻轻碰到,反而响了一下。
卫生院的电脑按四周开药。
母亲的记忆按物件开门。
唐敏洗干净手,打开电脑。她原本要整理发给李主任的日常干预记录,标题已经写好:`5.13-5.19补充观察`。光标停在第一行,她看了几秒,把页面往下拉,另起一个新标题。
`触发条件`
她先建了六列:
日期。
触发物。
环境。
原话。
身体反应。
处理。
想了想,又加第七列:
是否外发。
第一条,她写:
`2026.5.6 / 叠毛巾+拓印图 / 午饭前,不正面盯视 / “不欠”、”五月廿三” / 先皱眉,后短暂清晰 / 不追问,转午饭 / 医疗记录可概述,不附图`
第二条:
`2026.5.16 / 蓝壳书 / 小房间,取出夹层前后 / 对”老大”有反应 / 皱眉,语气烦 / 不追问 / 不外发`
第三条,她停了很久才写:
`2026.5.19 / 昨晚蛋糕剩余+蓝莓 / 客厅,上午回家后 / “小宇不吃甜的”、”像你小时候,蛋黄也要蘸酱油” / 表情平,能接昨天事件 / 只确认,不追问 / 可外发`
写完,她在“蓝壳书”那一行下面画了一道横线。
横线上方,是可以进入医院的观察。
横线下方,是屋里的事。
信不能进医院。至少现在不能。那张写着“五月廿三”的薄纸,不是量表,不是病历,不是家属补充观察。它是母亲当年给她留的一口气。它可以成为触发条件的背景,但不能被完整交出去,不能被任何一个陌生文件夹重新命名。
唐敏进小房间,把铁皮钱箱打开。除湿盒里的白色颗粒已经有一点点下沉,底部还没有积水。她把那封信夹在两张干净A4纸之间,外面套一只新的密封袋,袋口仍然没有压死,只折了一道,放回蓝壳书旁边。钱箱扣上时,锁扣发出很轻的一声。
母亲在客厅喊:“小敏,吃饭没有?”
“马上。”唐敏说。
她回到电脑前,把要发给李主任的记录另存一份。附件里没有照片,没有信,只保留那条蛋糕和蓝莓的观察。邮件正文她打得很短:
`李主任,补充5月13日至19日自然发生的三条触发观察。另我开始单独整理”触发条件”表,外发部分仅保留可用于临床观察的信息,家庭私密材料不附。请您看格式是否合适。`
打完她看了一遍,没有加“麻烦您”。
最后只补了一句:
`我会继续按”不追,先记”执行。`
这句才像她。
***
下午三点十六,程鹏的编辑器右下角弹出更新提示。
`Cursor Composer 2.5 is ready.`
按钮很蓝,写着`Restart to Update`。旁边技术群已经热了快半小时。有人贴官方说明:Kimi打底,Cursor自家训练和强化学习占总算力百分之八十五;成本只有Opus 4.7级模型的十分之一,性能打到同档;首周双倍用量。再往下,有人转了硅谷大佬站台的截图,有人说这下长任务稳了,有人说工程师单人成本又被砍一刀。
群里最热的一句是:
`以后一个人顶一个小组真不是段子了。`
程鹏看了一眼,没回。
南山老小区下午闷得厉害。天是多云,云压得低,没有雨。阳台对面楼有人把前两天没干透的衣服重新挂出来,深色T恤贴在衣架上,像刚从水里捞过。楼下A12那块木板在晴一点的光里显得更粗糙,“卖虾旁边”四个字边缘干了,墨迹不再往外洇。
他点了更新。
编辑器重启的十几秒里,手机亮了一下。不是用户消息,是母亲上午回的语音。他已经听过两遍。
“吃了。你爸下棚去了。炒饭热就行,别老吃凉的。”
八秒。
背景里有风声,还有塑料筐被挪动的声音。不是工具日志,不是母亲账号里的“行”,是直接发到他微信里的。程鹏把那条语音按住,点了收藏。手指停在“添加标签”上,最后只打了一个字:
`家`
没有迁移,没有规则,没有样本。
家就放在家里。
Cursor重新打开,欢迎页亮了一下,Composer面板自动展开,输入框里灰色提示:`Ask Composer to build, refactor, or debug…`
程鹏把面板缩到一边。
屏幕中央,是某日后台。标签栏里农业、五金、汽修、家、人工在场,一排小块。最底下那个浅灰色标签已经安静了四天。
停业店主最后一次消息仍停在5月15日。
雨中长途大巴车票。出发站深圳。目的地那一栏被手指压住,只露出一个“阳”。旁边黑色行李袋的拉链头磨得发白。那一行字他这几天反复看过:
`我要离开深圳了。谢谢你那天让我先吃热的。`
这四天,他不是忘了。
是每次点开,都觉得任何回复都像多余。祝一路顺风太轻。以后会好起来太顺。问去哪儿又越界。一个人已经把目的地用手指压住了,说明他不想让你知道更多。
可不回,也是一种话。
而这种话不够好。
程鹏把Cursor Composer面板看了一眼。里面很空,只等一句指令。现在让它写一段“告别场景自动回复策略”,大概十几秒就能给出结构:安抚情绪、表达理解、提供后续支持、提示专业帮助。说不定还会有三版语气,温暖版、简洁版、专业版。
他几乎能背出来。
白瞎了。
真正要写的不是回复模板,是挡板。别让系统在这种时候抢答。
他新建了一个规则文件,手动敲下第一行:
`farewell_intent_router`
标题很直,不好看。
下面是触发词。他一个一个打:
`关店`
`离开深圳`
`回老家`
`不干了`
`店转了`
`谢谢你`
`算了`
`以后再说吧`
`号不用了`
写到“谢谢你”时,他停住。谢谢你不是一定告别。农户也会说谢谢,荣发也会说谢谢,阿梁说“谢了”可能只是修完一辆车。不能见一个谢谢就把人拦到人工那里。真实世界不递交干净文本,老话又回来了。
他把规则改成组合触发:
告别动词加停业/离开/不再经营。
感谢语加车票/行李/退租/转让/最后一次。
“算了”单独不触发,必须有前后文连续低频沉默。
然后写动作:
`block_auto_reply = true`
`route_to = human_present`
`billing = free`
`promo_followup = false`
`template_reply = false`
最后一行,他写:
`不生成安慰话。只提醒人工看。`
看了两秒,把“提醒”改成:
`直接亮到我这边。`
这样像人。
技术群又亮。
`Composer 2.5这个成本太狠了。以后小团队能把外包全省掉。`
`1/10成本打Opus性能,代码代理商业化要变天。`
`这才是降本增效。`
程鹏笑了一下。
降本增效当然好。他现在每一分钱调用费都算。汽修那边从几毛压到几分,他高兴得差点把水喝凉了都没发现。三十四块一个月不靠小模型和规则撑不住。庄稼一枝花,全靠肥当家,成本这事儿就是肥,不算不行。
但不是所有地都要省肥。
有些地方省了,苗就黄。
他把规则接进消息路由,跑了三组测试。第一组阿梁:“客户说谢谢,车先不开了。”不触发。第二组宋叔:“今天先算了,明天再拍叶背。”不触发。第三组停业店主那条:“我要离开深圳了。谢谢你那天让我先吃热的。”触发,自动回复被阻断,消息亮到人工在场队列。
队列左侧跳出一行浅灰:
`告别意图 / 自动回复已阻断 / 等待人工`
程鹏盯着它,后背慢慢靠上椅背。
这不是功能复杂。
这事儿甚至有点笨。大模型越来越便宜,Cursor越来越能干,业内都在说一个人顶一个团队,他却在下午三点多,手动给自己的工具加了一道更慢的门:遇到告别,别自动说话,等他本人看。
技术上不体面。
人上还不大离。
他点开停业店主的会话框。输入框空了四天,光标闪得很规矩。程鹏先打:
`一路平安。`
删掉。
又打:
`以后有需要可以再找我。`
删掉。
这句也顺,像服务号售后。
他起身去厨房倒水。北窗没开,玻璃没有雾,只有一层灰。水杯里剩半杯凉水,他没烧热,直接喝了一口。楼下有人喊外卖尾号,A12方向锅铲碰锅,短促一声,又停。这个城市从来不会因为一个人离开而空下来。空的只会是那个人坐过的大巴座位、关掉灯箱的门头、废铁价卖掉的炸炉。
程鹏回到桌前,重新打:
`到了说一声。号不销,随时在。`
他看了一遍。
不问去哪儿。不劝留下。不说会好。不催回复。
发出去。
消息旁边转了一圈,变成一个小小的对勾。
他没有再补。
傍晚六点二十,天色还没暗透,云层把光压得很低。程鹏把新规则提交到本地仓库。commit message 用英文写到一半,又删掉。
`keep human channel for farewells`
他看着这行,觉得也行,但不够像今天。
最后他改成中文:
`为告别保留人工通道`
回车。
提交完成的提示跳出来,短短一行。后台费用曲线还在那里,Cursor Composer的蓝色图标也还在那里,技术群里“1/10成本”的讨论继续往上刷。程鹏把群窗口关掉,打开某日后台,看见浅灰标签旁边多了一个小小的手动标记。
人工在场。
这四个字今天比昨天更贵了一点。
贵在他自己的时间。
(某日 · 第47章)