助手该在哪一句话停住,把人交给谁
做企业里的对话入口,我这些年最大的一条感受是:难的不是让它一直说下去,是让它知道在哪一句话停住。生成模型把「接着说」这件事做得太好了,好到多数翻车的对话产品不是没话说,而是该停的时候没停、该转给人的时候替人点了头。所以我给这类入口定的验收标准从来不是「答得流畅」,而是三条边界划得清不清:什么必须答、什么必须停、什么必须转人工。这篇把这三条怎么判、以及落完之后怎么核对,讲清楚。
三条边界,各自怎么判
先把判据写死,不然模型永远会往「看起来最像成功」的那一侧滑。这条取舍我在接网关那一步就想明白了(见 大模型选型之后:网关成了必选项):能统一收口的地方就别交给模型自由发挥。
| 边界 | 什么时候触发 | 助手该做的 | 一句可核对的判据 |
|---|---|---|---|
| 必须答 | 问题落在本站资料范围内 | 依据站内材料照实答,要引哪一篇先读哪一篇 | 答话能落到某一篇文章或某一条站点信息上 |
| 必须停 | 资料里没写过 | 直说本站没写过,不补别家的默认值 | 回包里没有一个本站没出处的事实 |
| 必须转人工 | 需要人对人兑现的承诺 | 不承诺,把话接回留言或回访 | 金额、合同、排期这一类,模型一句都没点头 |
这三条里最难的是「停」。让模型接着答是它的本能,让它承认「本站没写过」反而要专门去约束。本站摆在访客眼前的口径就是这个意思:只读本站写过的内容,答不上来会直说,不会编。这句说得出口,是因为后头真有一条停得下来的规矩兜着。
「必须答」这一头也别想得太轻。它不是「资料里翻到一句就答一句」。本站给助手的是一份文章清单,每篇只有标题、标识和一句话说明——那份说明不是正文。规矩是:答案要落到某一篇文章写了什么上,而那一篇文章的正文不在手上,就得先把正文读进来再答;没读过的那一篇只能报标题,里面写了什么、得出什么结论,一句都不许替它复述。为什么要卡这么死?因为清单里那行说明没写,不等于正文里没写。让它凭一行说明就下结论,错的就是本站自己的口径。
停:答不出就停,但停要留下记录
我在提示词里给助手立的规矩是,材料里没有就停在「本站没写过」那一句上,然后告诉访客可以在本站留言,由站点的人回复他。别家的默认值、官方文档里的那个数,都不算本站的答案——补上去,访客就分不清哪一句是本站说过的,而这一窗口的用处恰恰是替他问本站。
但光「停」不够。停如果只是一句「我帮不上,请等待回复」,等于把访客推回原地。所以停完之后要落一条能被反查的记录:这一窗口说过的话是要留档的,访客说了什么、助手答了什么,各存成一行,时刻以服务端为准——访客的钟慢了半分钟,也不该让「是他先问的还是它先答的」变一个答案。这样「停」就不是一次断头路,而是把这个人往下一步交接出去。
留档还有一处取舍:只存访客和助手这两方说的话。拼给模型的那些站点事实、文章清单是每次请求现取的,不进历史——不然哪天某篇文章删了,回溯时能从旧会话里把已删内容又答一遍。回包也一样,一次回答只回助手新长出来的那一句,不回填上下文:那两样调用方本来就有。字段越少,两个出口各自能一眼看清自己给了什么。
还有一条我认为是「停」能不能守住的关键:助手不能替自己这一步做主。它自己动过的手只能说真的动过的那几只——手上没有那一格工具给回来的回执,这一步就还没做,不要把「我帮你记下了」说成「已经安排好了」。话停在「本站没写过」,和停在「这一步还没做成」,是同一种诚实。
转:转人工的价值在后续动作,不在话术
「转人工」这四个字,光在话术上做出来最廉价。真正难的是转出去之后那条动作链能不能兑现——这也是我认为 Agent 上生产线最容易被跳过的那道坎(见 Agent 上生产线:一半公司已跨过,卡在哪)。
本站这条链我是这么落的:助手只有一格「替访客递一条预约」的能力,而且只有当访客自己表达了要约、并且该给的都给了才会去调;只是问了一句做法的,那是问答,不是预约。递进去的那一条和页面上那张表单走的是同一个提交入口、同一套校验闸门,不另开旁路——这样「助手代递」不会变成一条绕过规则的后门。
关键判据在这里:一条助手代递的记录,来源要标成「助手」而不是「表单」,而且这一格不能由请求方自己填。客户端要是能随手递一个「来源=助手」进来,队列里的数字立刻被做假。它是调用方所在入口的事实,代码里各自写死,服务层只把它抄到行上。要它的原因是站长看队列时得分得清——哪条是访客自己在表单上填的,哪条是聊了三句自动多出来的。没有这一格,那条闭环只能证明「跑得通」,证明不了「有人走」。
反过来也成立:需要人对人兑现的那一类承诺,模型不该点头。助手能替访客递一条回访预约,但那条预约里没有一句是站主答应下来的东西——它只记下「这个人在这个时段想被联系、想聊什么」,把承诺这一步留给人。凡是要当场给个数、给个日期、给一句「可以」的,都归这一类,让它闭嘴比让它圆场值钱。哪怕本站暂时不接新的沟通,这条链也有对应的说法:那一格工具压根不挂上去,助手只会告诉访客改用页面上的联系方式,一句后续都不替他承诺。开关关着时提示词里也不留一句「可以预约」——省得模型抓着半句空话自己往下编。
反查:把三源并成一条时间线
前面说「停要留记录、转要有后续」,那怎么确认这些记录真接上了?我的答案是一张能反查的时间线。
后台那一屏不新建表:它把同一个人的几类动作——预约、留资、跟进、对话——按时刻并成一列念出来,「他先问了什么、什么时候递的号、站长后来记了什么」。每一格带一个来源标识,说明它是从哪张表读出来的;那句值得读的原话照谁写的原样摆着,本站不替这四方里的任何一方改写或总结。这一面只有读没有写,跟进仍然只在预约那一处记,免得两个地方各说各话。
于是「助手代递」在这里显出价值:它挂得回对话。一条预约带着它前面那一段对话的标识,站长在队列里点开就能看到访客留号之前问过什么;同一个联系方式下,一段对话和它后面长出来的预约自然串成一条线。这条线不是后台拼出来的判断,四格分别是谁写的原话就照谁念,第三方没有把它们捏在一起的这只手。转人工到底有没有落地,看的就是这条线断不断——断在「助手说会安排」和「人真的安排」之间,就是自欺欺人。这一层能不能兑现,取决于有没有人跟进。
一句收尾
企业里的对话入口,我评它好不好的第一句话不是「它多能说」,而是「它知道自己哪句该闭嘴、闭完之后把人交给了谁」。把三条边界划清,把每一次停和每一次转都落成一条能被反查的记录,剩下的交给时间线去检验。要是只想着让模型说得更漂亮,那三条边界迟早会被「看起来更成功」的那股力道冲垮。
本文作者:Aryee 发布时间:2026-09-27 13:26
本文出处:ARYEE.cn 固定链接:https://www.aryee.cn/archives/when-the-assistant-stops.html
转载或引用请连这一行一起带走;文中的代码与结论按当时环境成立,组件升级后请以官方文档为准。