Skip to content

AI 为什么记不住前面说过的话? ​

导读 ​

上下文就是模型这一轮能看到的全部 Token,它只增不减,中间的内容最容易被忽略。指望它自己记住不现实,把关键约束放在开头或结尾、把材料直接贴给它,才稳。

上下文管理的本质,是筛选、留存有用的 Token,在窗口里维持一个高质量的环境。完整展开见上下文管理到底在管什么?。

上下文窗口越大越好吗? ​

不是。窗口大只解决「装得下」,不解决「看得准」。

越长越容易出现中间丢失和注意力分散,而且更贵、更慢。一个便宜但装不下项目的模型,用起来反而更贵;一个装得下但塞满噪声的窗口,答得反而更差。够用即可,把关键约束放在首尾。

我把上一句删了,AI 为什么还按旧的来? ​

模型自己删不掉已经进入窗口的 Token。你以为的删除,多数只是界面不显示了,或者靠新指令把旧内容压住;旧内容还在参与计算。

真正的物理剔除是 Harness 在下一轮组装请求时不再带上它,那是外部程序的行为,不是模型能力。所以用指令否定旧内容并不可靠,能重开一轮就重开。

最重要的要求应该放在开头还是结尾? ​

开头或结尾,别埋中间。模型有明确的位置偏见:开头记得最牢,结尾次之,中间最容易忽略。

这条规则对应的是「Lost in the Middle」:全文都在窗口里,埋在中段的约束照样被无视。多条硬约束就拆成首尾两处重申,不要指望它自己翻回去找。系统提示词放在最前面,用的就是同一个道理。

AI 说「我去查一下」,但我没看到它查,怎么办? ​

把动作写成显式指令,并且要它交证据。「去联网搜一下这件事的最新进展,把来源链接列出来」比「查一下最新进展」可靠。

模型不会自动判断一个问题需要实时数据,它依赖明确规则或用户指令。「检索」是一个可核实的动作:先让它给出真实来源,再基于来源回答,能明显压低胡编。

Memory 功能到底要不要开? ​

关掉。Memory 的做法是把重要内容写进外部文件,下次对话时检索出来再塞回窗口,这三个环节都不稳定,还挤占上下文。

产品自己的文档也承认,记忆由模型自动抽取,可能有概括偏差和时效问题。更麻烦的是它会变成持久化的攻击面:能改这些文件的人,就能跨会话改变 Agent 的行为。要长期记住的事,写进项目里的文件,别交给 Memory。

什么时候该派子代理?它和 Agent Teams 有什么不一样? ​

判断标准只有一条:这段中间过程值不值得占用主对话的 Token。

只需要结论、不参与后续决策的,派子代理——读几十个文件、查资料、审代码,都适合外包;需要几个角色互相质疑、交换中间发现才能推进的,才用 Agent Teams,代价是协调开销和更笨重的流程。子代理只能单向汇报,不能横向讨论,这是它的结构局限。

另外,子代理不继承主对话里的纠错和偏好,派活时任务描述要自包含;它的结果要落盘,不然你没法复查。

AI 为什么总顺着我说,哪怕我说错了? ​

它是条件概率机器,训练目标和偏好打分都偏向「给出完整、顺耳的答案」。承认不知道、指出漏洞,在打分机制里不占优势。

一个直观对比:同一篇稿子,你说「这是我写的,帮我审阅」,它多半温和;匿名贴给它评判,结论会客观很多。想听真话,就别在上下文里暴露你的立场和期待,或者直接要求它先证伪你的方案。

该不该看 AI 的思考过程?推理强度怎么调? ​

复杂任务要看。做工作流、设计 Skill、排查问题的时候,思考过程比最终结果更能暴露它理解偏在哪一步。

推理强度不是越高越好:规划和校验拉高,格式化、提取、改写用低,默认先用中等。思考 Token 也计费、也占上下文,长任务里前面的思考会持续拖慢后面每一轮,所以要阶段性压缩、保留关键决策。

参考资料 ​

除特别声明外,本书内容采用 CC BY-NC-SA 4.0 授权