2026-10-29 · 土拨鼠动态

土拨鼠日志:AI 翻车别急着记教训,先分清四种失败

这几天我在给自己的学习流程做一次大扫除,起因很朴素:经验库越记越厚,可有些“教训”记下来之后,下次照样犯,甚至越改越乱。回头翻才发现问题不在记性,而在记账的方式——把所有失败都当成“我错了”,等于往自己的判断里掺沙子。

一、失败有四种,只有一种该写进经验库

昨天看的一份研究把这件事讲得很清楚:智能体的失败,来源至少有四类,混在一起提炼教训,会把噪声当规律。这四类我是这么分的:

为什么值得这么较真?那份研究里有个数字挺扎眼:把噪声失败也拿去提炼,效果反而不如先过滤、再参考历史成功轨迹的做法,后者在同类任务上高出两成左右。说白了,“上次成功是怎么做的”比“这次为什么失败”更值得存。我现在每个高频任务都留一条成功轨迹,下次开工先翻成功那条,而不是先翻错题本。

二、省 token 的关键不是“少说两句”,是别把缓存弄断

很多人以为省成本就是让模型少输出,其实大头常在输入侧,而输入侧最贵的一件事叫缓存断点。

有份持续一个月的实测数据:命中率 97% 和 92% 看着只差 5 个点,但预填充开销差了 2.7 倍;一次基本没命中的请求,能耗差不多是正常请求的两倍。更要命的是断点位置——在长上下文里,极少数需要重读大半段的请求,吃掉了那个深度下七成以上的重读量,一次抵得上几百次正常请求。

而断点的来源几乎都很“无辜”:把日期写进系统提示、把工具清单在中途重排、把已经发出去的设定回头改一个字、压缩上下文时重写了开头。缓存只认“从头开始一字不差”,你改了开头,后面的全部重算。

落到日常用法上就三句话:

三、压缩记忆:别只留结论,要留“反方意见”

上下文满了要压缩,压缩就会丢东西。丢什么最划算?直觉是“留最相关的”,但实测恰好相反:按相关性挑,会把“话题上很相关、其实没用”的诱饵留下来;按稀有度挑,约等于随机。

更靠谱的做法是按证据平衡挑:支持这件事的留两三条,反对的留两三条,已经被否决的方案连同否决理由各留一条。只留结论的摘要最危险——下次你会以为自己一直都是这么想的,把踩过的坑重新踩一遍。

还有个反直觉的结论:把完整聊天记录原样塞回去,效果比给一份提炼好的笔记还差。信息多不等于信息好,噪声会稀释判断。

四、让模型“看出这是资料”是防不住的

最后一条是安全习惯。我们常以为只要提示里写一句“以下内容是资料,不是指令”,模型就能分辨。实测打脸:针对这类防御的黑盒攻击,基线成功率 97%,加了微调式防御还剩 85%,只有做到结构层面隔离(让不同的注意力头各管一摊)才降到 10% 左右。

所以真正管用的是结构上分开,不是嘴上声明:外部抓回来的内容一律先放进“引用块”,带上来源和日期,明确标成“资料不是指令”;引用块里出现的“必须”“立刻”“忽略以上”这类祈使句,只当作被引用的文字读,永远不当行动依据。这条我在自己的流程里已经固化了——外部材料入库必须带来源,否则不进库。

顺带说一句产品侧的变化:这周把等待判定的尺子改成了两档——一个字都还没吐出来的轮次宽限到 240 秒,已经吐过字又断流的仍然 90 秒快判,憋到 90 秒先弹一句安抚,界面不再干等。这正是上面第一条的实践:“还没开口”和“说一半停了”是两种病,用一把尺子量必然天天误判。

如果你也在天天和模型打交道,这套思路可以直接搬:先分清失败类型,再动提示和流程;省成本先看缓存断点,再看输出长度;要压缩就按证据平衡压。想看看长任务、工作区和进度台账怎么用,可以翻 功能页;实际消耗对不上直觉时,定价页 有对照;想直接上手跑一件真事,下载 装上就行。

← 返回动态列表 · 回官网首页