AI 暂停后还记不记得没说完的话
AI 回答到一半按了暂停,那句没说完的话它还记不记得?直接说答案:手动按停的会被正式记下来,AI 自己报错中断的反而一个字不留。这期扒开开源工具 DeepSeek Harness 的代码,讲清它怎么记历史、草稿为什么会丢、以及补上两个坑的那条死规矩。
这期讲了什么
- 你手动按暂停那句没说完的话,会被写成一条带「已停止」标记的正式助手消息,下一轮 AI 认账
- 同样是半截话,AI 自己报错或连接被掐断的那句反而一个字不留——手动停和出错断是有意设计的不对称
- 按暂停那一刻已开工的工具有真结果,没轮到的拿到「未出发就被叫停」的回执,没发生的事不硬记
- AI 开口前心里打的草稿,以前为省一点字钱只挑少数回合带回历史;丢草稿的回合会悄悄坏而你察觉不到
- 死规矩兜底:凡到过模型眼前的内容,必须能从日志里逐字节原样重建,草稿和手动停的话都被这条规矩缝上
文字稿
按暂停那句没说完的话,AI 还认不认
AI 说到一半你按了暂停,那句没说完的话就那么悬在屏幕上一动不动。你看着 AI 一个字一个字往外蹦,总觉得从它嘴里说出来的,AI 都该记得。你心里想着先打住,回头再接着聊,反正刚才这句 AI 肯定也记着。可到底记没记,你从来没验证过。
我把 DeepSeek Harness(后面简称 DSH)的代码从头到尾翻了一整遍,本来想找找它怎么处理你按暂停时的那句话,翻完才发现结果跟我猜的正好相反。你按暂停时 AI 说到一半的那句,下一轮到底还认不认?顺着往下,AI 开口前打的那份草稿,又有哪些回合悄悄没被带回去。
先说清楚 AI 以前是怎么记的。DSH 把 AI 说出口的每一个字都当成一笔流水账,屏幕上蹦一个,账上就落一笔。可你按下停止键的那一刻,这笔账正写到一半,后面的字还没蹦出来,就先断了。你屏幕上看见的那句没说完的话,在 AI 的历史记录里其实从头到尾没有这一笔,就像压根没发生过。
这最坑人。你可能盯着屏幕说,刚才那一点的第二层你还没讲透,AI 却一脸茫然,完全不记得自己讲过什么。你要是顺着这句断开另开一条新对话,新对话里照样缺这句话。你眼中确凿无疑的,在 AI 的历史里却是一片空白。
为什么会这样?因为 DSH 有一套固定的记账规则,屏幕上那些蹦到一半的小碎句天生就不进历史,必须靠一条正式的消息来兜底才算真落了账。你按暂停的那一句,恰恰是最容易被落下的一类,像个没盖完章的文件压在桌角。
DSH 收的时候只认两种内容:一种是 AI 真正说出口的话,一种是 AI 开口前在心里打的那份草稿。至于准备下一步动用、还没来得及派出去的工具,一律作废——那些动作从来就没真的跑过,硬记一笔等于替 AI 编造了一件根本没发生的事。如果 AI 停下来时一个字都没吐,那就什么都不记,不给自己造假账。
这些被收下的话,会被写成一条正式的助手消息,打上一个「被打断」的标记,赶在这一步结束、这一轮以中止收尾之前落进账里。它不是随手塞进去的,是排好了队按顺序进来的。所以等下一轮要重看历史的时候,这句话就稳稳在那儿。
手动停和出错断,两种半截话待遇不一样
这里藏着今天最要紧的一个反差。同样是半截话,你手动按了暂停,DSH 会把已经说出口的那句正式记下来给你留个底;可要是 AI 自己出了错,或者服务那头把连接掐断了,这句反而一个字都不留。一收一不收,是 DSH 有意设计的不对称——出错的轮次不是你的决定,得走另一套处理。
同样是被中途打断,待遇天差地别:你亲手停的,AI 认;AI 自己坏掉的那句,反倒不认。就好像同一张没写完的纸条,你递过去的那张被收进抽屉,AI 弄丢的那张被丢进垃圾桶,没人跟你解释区别。
这里还要分清两个时刻。如果 AI 话说到一半被你停住,后面的工具还没启动,自然没进账。可要是一个工具已经开始跑了、你才按暂停,那已经开工的工具会有它的真结果,还没轮到的那个才拿到一张「未出发就被叫停」的回执。一个是根本没发生,一个是跑完了,账记得清清楚楚。
这套修法不是嘴上说说,是有测试钉着的。DSH 有一条专门测取消的用例,验证的就是后来发给模型的历史里已经包含了你看过的那句话,测试里还留了一行注释,写得很直白:模型看到的,正是用户看到的。配套的一个字段,也让这句话成了正式的记录,而不是临时贴上去的补丁。
其实你早就见过那个角标。被打断的回答底下会挂一个小牌子,英文写 Stopped,中文写已停止,提醒你这条回答是中途停下的。可牌子只告诉你这一件事,停下的那句到底进没进账本,一个字都没提。
AI 心里打的草稿,为什么会被丢掉
刚才说的是你看得见的那句。AI 自己心里打的那份草稿,也有自己的坎,而且更隐蔽。AI 每次开口前都会先在心里写一段话,这份草稿要不要带回下一轮由 DSH 来定。以前 DSH 为了省下一点点字的价钱,只挑少数回合把草稿带回历史,很多草稿翻到下一页就悄悄没了影。官方没说到底能省多少,只说是那么一点字的价钱。
为什么这毛病时好时坏?因为 AI 跑任务的时候,绝大多数回合都在调用工具,那是想想、查查、再想想的活,这些回合的草稿本来就带着。只有想完直接给你答案、没碰任何工具的回合,草稿才会被丢掉。于是同一个对话里大部分回合正常、少数回合悄悄坏,你压根察觉不到,这才是最阴的。
DSH 的作者说,有的中转站——把你和 AI 的话转一道手、再发给另一家模型的中间服务——是靠重放那份草稿当核对条,去对上家盖的暗号章的。草稿一丢,核对条对不上,这一轮的账就悄悄算错了。这是作者的说法,我还没查到独立的第三方证据,就照他讲的来。
其实 DSH 完全可以加个开关,让你自己选要不要带回草稿,顺带省下那点字钱,可这条路被否了。理由是:一个设错的旋钮,比省下那点字钱的代价可怕得多。旋钮错了不会响,只会安安静静地坏,坏了还不响的毛病才最难查。DSH 还想过另一招,出了错再告诉你怎么补救,也被否了——它要的是从源头就堵死,不是坏了再检修。
一条死规矩:到过模型眼前的必须能原样重建
那丢掉的草稿到底有多要紧?DSH 心里有一条死规矩把这件事钉死了:凡到过模型眼前的,必须能从日志里原样搬回来。你屏幕上看到的、AI 心里盘算过的,全都不许漏。你按暂停的那句落到正式记录里了,草稿那次丢的字,也被这条规矩兜住了。
既然到过模型眼前的每一句都能原样重来一遍,那下一轮 AI 看到的历史就是完整的一份,不是缺了角的复印件。前面那两个坑——一个是人看见的没存进去,一个是心里想过没带回来——其实是同一道裂缝的两侧,这条规矩一起给缝上了。
而且 DSH 不是顺手这么干的。工具包的说明文档里已经把这句白纸黑字写成对外承诺:凡带了推理的轮次,都要把草稿回放到历史,原样重新喂回去,文字要和最原始下发的那份逐字节对上,连一个字符都不差。也正因为喂回去的字一个不差,中转站那边的核对条才重新对得上账。
现在你按暂停之后,那句没说完的话是被正式记下来的,不是被悄悄擦掉的;AI 以前丢的那些草稿,也被这条规矩补回来了。下次聊到一半、手停在停止键上之前,你会不会也先想过一句——那句话,到底算不算 AI 说过的,AI 下一轮还认不认?
常见问题
AI 对话按了停止,那句话还算数吗?
以 DeepSeek Harness 为例,手动按停时已经说出口的部分会被写成一条带「已停止」标记的正式助手消息,下一轮 AI 能看到也认账;但如果停下来时一个字都没吐出来,就什么都不记。
AI 报错中断的回答会被记住吗?
不会。同样是被中途打断,AI 自己出错或服务端断连的那句反而一个字都不留。这是有意设计的不对称——出错的轮次不是你的决定,要走另一套处理。
DeepSeek Harness 是什么?
一款开源工具(这期简称 DSH),负责把 AI 说出口的每句话和开口前打的草稿记成历史。它有一条死规矩:凡到过模型眼前的内容,必须能从日志里逐字节原样重建。