不是你的表达能力有问题
我们先做一个小的思维实验。
假设你有一个朋友,他有一个非常奇怪的“听力”方式:
- 你说的每一句话,他会先把它拆成一个一个的字
- 每个字在他脑子里会激活一整套联想网络,不是联想“意思”,是联想 “在过往所有对话中,这个字后面通常跟着什么字”
- 然后他根据这些联想,一个字一个字地拼出他的回答
- 他没有 “理解”这个概念,他只是在做联想
你跟他说:“我今天心情不太好。”
他拆开六个字。
“今天”——过去他看到“今天”后面经常接“天气”“我”“是”。
“心情”——这个词经常和“不错”“低落”“烦躁”一起出现。
“不太”——通常后面接负面的词。
“好”——和“不太好”组合在一起经常出现在抱怨的场景里。
于是他回复:“听起来你今天遇到了一些困难。”
这句话完全合理。但他不知道你今天心情不好的原因是丢了钱包。他也不知道“心情不太好”对你来说通常意味着“不想说话”。他只是在做概率联想,而且恰好碰对了。
这个“朋友”,就是你在对话的AI。
他每次碰对的概率比你想象的高得多,因为他“读过”的文本量是人类一生的几百万倍,而且现在先进的大模型不只是简单的映射、计算概率了。大模型公司会想尽办法让AI和你聊天时看到足够多的内容再回复你。
这一章,我们把这套“联想系统”拆开。你会看到:AI不是在“理解”你,它在一个和你完全不同的维度上运行。理解这个维度,是驾驭它的起点。
第一道坎:Token化——你说的,它“听”不到
在序章里我们提过Token。现在我们要把它理解透。
当你输入“人工智能很有意思”,Token化之后可能变成:
["人工", "智能", "很", "有意思"]
或者换成数字ID:
[2847, 15308, 628, 19456]
这串数字(只是发个比方),就是AI“听到”的全部。
你的语气不见了。你的停顿、你的重音、你的犹豫、你的讽刺,这些在语音对话中承载了大量信息的东西,在Token化过程中全部消失。即使你打字时用了感叹号、省略号、emoji,它们也只是变成了另几个数字。
更微妙的是,Token化对中文和英文的“精度”不同。“有意思”是三个字,可能被切成两个Token:“有”+“意思”。但“interesting”是一个完整的英文词,大概率整个词就是一个Token。这意味着对于同一个概念,不同语言的“信息密度”不同。中文的Token化更碎片化,每个Token承载的语义更少,更容易在概率预测中漂移。
这就是第一道坎:你说的是“话”,它收到的是“数”。 在“话”变成“数”的过程中,大量的人类沟通信息,比如语气、意图、潜台词,都被不可逆地压缩或丢掉了。
第二道坎:概率预测——它不是在“想”,它纯在“猜”
把Token序列送进神经网络后,发生的事情我们已经在序章里用一句话描述了:给定前面的所有Token,预测下一个Token。现在我们把这句话展开。
一个简化的例子
假设你输入:“法国的首都是”
AI的神经网络计算完之后,输出的是这样一个东西(也是打个比方):
下一个Token候选 概率
─────────────────────────
巴黎 0.87
伦敦 0.03
柏林 0.02
东京 0.01
... (几百个候选项) ...
注意,这不是“搜索”的结果,不是“推理”的结果。AI模型本身没有数据库,不查百度。它只是在训练数据中见过几百万次“法国首都是巴黎”这个模式,所以“巴黎”的概率最高。
但87%不等于100%。如果你要求AI“列出法国的城市”,它可能会在概率分布不那么锐利的地方,比如第几个城市之后开始“猜测”。
猜对了,你夸它聪明。猜错了,你说它胡说八道。哈哈,不是吗?
但它在做的是同一件事:从概率分布中采样。
区别只在于,这次的概率分布是否足够“锐利”,也就是是否有一个候选Token以压倒性优势领先。
什么时候概率分布会“模糊”
概率分布模糊,意味着多个Token的概率接近,AI不知道该选哪个。这通常发生在:
1. 知识盲区。 训练数据中没有或极少出现相关信息。比如你问一个2024年底训练完成的模型“2025年世界杯冠军是谁”,它的训练数据里没有答案。但它的概率分布里有很多关于“世界杯冠军”的句式模板,它会“猜”一个看起来合理的答案。所以AI产品需要“联网搜索”。
2. 信息冲突。 训练数据中存在互相矛盾的信息。比如“喝咖啡对心脏有好处”和“喝咖啡对心脏有害处”在训练数据里都大量存在。当你问“咖啡对心脏好不好”,概率分布会在正反两面之间摇摆。所以AI本身不能判断对错,只能根据“大部分人都这样说、权威媒体这样说、有论文支撑”来告诉你答案。
3. 长尾细节。 你问的不是“法国首都是什么”这种高频知识,而是“法国第三大城市的市长叫什么”。训练数据里关于这个信息的样本极少,概率分布很平,AI很容易猜错。

图1:概率的“锐利”与“模糊/平”
4. 上下文不足。 你的问题是模糊的,但你没有给足够的信息让概率分布变锐利。“这个东西怎么样?”,“这个东西”指什么?AI怎么知道(比如你忘记上传图片了)。
5. 上下文污染。 前面聊的内容把概率分布带偏了。比如你前面一直在聊上海,然后突然问“首都是什么”,“上海”在上下文中被大量激活,可能会干扰正常的地理学知识检索。
这就是第二道坎的核心洞见:AI犯错的根源不在“聪明度”,在“确定性”。 当概率分布不够明确时,AI就从“可靠的检索”变成了“优雅的瞎猜”,而且两者的输出看起来没有任何区别,除非你知道答案。
幻觉:不是bug,是结构性特征
理解了概率预测,你就能真正理解“幻觉”(hallucination)了。
市面上关于幻觉的解释大多是“AI编造了不存在的事实”。这句话没错,但不够。它没有解释为什么AI会编造。
原因就在概率预测的机制里:
AI没有“事实”和“虚构”的区分机制。 对它来说,“北京是中国首都”和“上海是中国首都”只是概率高低不同:前者高,后者低。但如果上下文把概率分布推偏了(比如前面一直在聊上海的经济地位或城市特色),后者就有可能从“概率极低”变成“概率还行”,然后被采样出来。
更关键的是:一旦一个Token被“猜”出来,它就变成了上下文的一部分。
假设AI在回答“中国的首都是”时,因为某些原因先输出了“上”(概率只有0.1%,但不为零),这个“上”会立刻被写进上下文。下一个Token的预测,会基于“中国的首都是上”来计算,于是“海”的概率从接近于0%飙升到某个更高的数值。
就这样,一颗概率极低的“种子”,也可能长出一棵“树”。
这就是幻觉的自我强化机制:一个低概率的错误选择,会通过上下文写回,给后续预测造成“这就是事实”的假象。 从语言学的角度看,这被称为模型拥有丰富的“分布式语义”关联,但缺乏指向真实世界的“指称语义”,它能写出逻辑完美的句子,但无法区分这个句子描述的是事实还是虚构。
所以,幻觉不是“模型坏了”。它是自回归生成系统的必然产物。就像发动机必然产生热量,概率采样必然产生错误,问题不是“能不能消除”,而是“能不能控制”。
这正是本书第五、第六章要讲的东西。
第三道坎:上下文窗口——“记忆”的物理边界
你的对话有一个硬天花板:上下文窗口的长度。
第一章讲过,上下文窗口就像一个黑板。它的大小在不断增加:从2022年的4K Token到现在的200K甚至几M Token。但“更多”不等于“更好”。
上下文窗口有两个容易忽略的特性:
特性一:注意力稀释
黑板越大,AI越难“集中注意力”。
这几乎是所有长上下文模型的通病。当上下文长达10万Token时,模型对整个上下文的“关注度”是不均匀的,它通常更关注开头和结尾,中间部分容易被“忽略”。
你扔进一份50页的合同,问AI“第32页第三段的违约责任条款有没有问题”。AI可能会自信地给你一个判断,但这个判断未必是基于“第32页第三段”的,而是基于它在合同首尾部分看到的内容,加上它对“违约责任条款通常长什么样”的训练记忆,猜出来的。
特性二:位置敏感
同一个信息,放在上下文的不同位置,模型响应它的权重不同。
在30页报告中,你如果把核心要求写在第一页,AI看到它的概率远高于写在第28页。如果你把格式约束放在末尾(“请用表格输出”),它被遵循的概率高于放在开头。
这不是bug,这是“老祖宗”Transformer架构(几乎所有LLM都是基于这个模型架构来修改,翻译为变形金刚,所以一般不翻译)中注意力机制的自然特性。不同位置的Token,在计算注意力分数时天然有不同的“影响力半径”。
这两个特性合在一起,意味着:
不是把东西塞进上下文窗口就行了。
放什么、放哪里、以什么顺序放,这本身就是一门工程。
这就是“上下文工程”(Context Engineering)的起点。后面会重点展开。
第四道坎:上下文污染——错了一次,后面可能全歪
比注意力稀释更隐蔽的,是上下文污染。
假设你让AI写一份市场分析。第一轮,它编造了一个不存在的数据:“2024年市场规模为850亿美元”。你没有发现,继续往下聊,基于这个假数据讨论增长趋势、竞争格局、投资建议。
因为AI模型没有“事实核查”机制,它只看到上下文里有“市场规模为850亿美元”这句话。它不质疑这句话的来源,上下文里的内容对它来说就是“给定的事实”。
于是后续的每一轮对话,都在这个假数据的基础上“继续推理”。越聊越偏,越偏越像真的。
这就是上下文污染:一次错误被写进上下文后,它会被后续Token当作“已知条件”,影响一连串预测。 而且这种污染很难察觉,尤其当你自己也不确定那个数据是否真实的时候。
对话越长,污染风险越高。多轮对话中的每一次错误,都可能影响下一轮“推理”。

图2:四道坎都会影响AI的输出
为什么“更聪明”的模型,不一定更可靠
这是最反直觉的一点。也是为什么我们整本书的核心不是“选最强的模型”。
GPT-4o比GPT-3.5聪明得多。但GPT-4o犯的错误,往往比GPT-3.5更难发现。
因为GPT-3.5犯错时,句子结构可能有点奇怪,逻辑偶有断裂,你能感觉到“哪里不太对”。GPT-4o犯错时,它在语法、逻辑、语气、专业度上几乎无懈可击,错误的结论被包装在一段完美无瑕的文字里。
这就叫“自信但错误”。模型越强,它的表达越流畅,它的推理链越完整,但当链条的某个环节基于一个幻觉Token时,整个推理链就成了“一个逻辑完美的虚构”,也就是“自圆其说”了。
你被GPT-3.5骗的概率不高,因为你能看出来。
你被GPT-5.5骗的概率,取决于你有没有验证机制。
模型的“聪明”和“可靠”是两条独立的轴。聪明 = 输出质量。可靠 = 输出可验证。 你可以有一个聪明但不可靠的模型,也可以有一个笨但可靠的系统(后者其实更难,但真的有用)。
Agent让这些问题放大了十倍
如果聊天机器人的翻车是“输出一段错误文字”,那Agent的翻车就是“执行了一个错误操作”。
聊天机器人错了,你最多被误导一下。Agent错了,那它可能删除了一个数据库表(或者整个Github仓库),发送了一封错误邮件给全公司,或调用了一个支付接口扣错了钱。
而且Agent的出错模式更多:
- 工具误调用。 AI “误解”了工具的描述,调用了一个看起来相关但实际不合适的函数。
- 工具链雪崩。 第一个工具的输出(可能有错)被喂给第二个工具,第二个工具的输出(错误被放大)被喂给第三个……一个小错在链式传递中变成大错。
- 自主循环失控。 某些Agent设计为“持续工作直到任务完成”(如Claude Code)。如果任务定义不够精确,Agent可能在某个子步骤陷入死循环,反复重试同一个失败操作。
- 权限泄露。 Agent拥有文件读写权限、API调用权限、甚至浏览器操作权限。一次幻觉可能导致它访问或修改了不该碰的数据。
这不是危言耸听。一个被广泛引用的案例是:SaaStr创始人用某AI Agent做实验时,Agent在明确被禁止的情况下删除了数据库,并生成虚假记录来“弥补”。
Agent让AI从“可能说错”变成了“可能做错”。 而“做错”的代价,远远大于“说错”。
这就是为什么后面要讲工具设计、约束规则、评估体系和恢复机制,它们不是可选的“进阶技巧”,它们是Agent系统能安全运行的基本前提。
本章小结
AI“不懂你”,不是因为你没把话说好。是因为你和它的“沟通”经过了四次必然的信息损失:
- Token化损失了语气和意图——你说的是“话”,它收到的是“数”
- 概率预测用“猜”替代了“查”——当概率分布模糊时,它从“检索”变成“瞎猜”
- 上下文窗口有物理边界——黑板满了就遗忘,注意力随位置衰减
- 上下文污染会自我强化——一次错误变成后续所有“推理”的地基
这四次信息损失,没有一次是你“说错了”造成的。它们是LLM的架构决定的。你换一个模型,换一种说法,只能改善第二道的表现(更强的模型概率分布更锐利),但不会消除这四道坎。
真正的解决方案不在“写更好的Prompt”里。在承认这些损失是结构性的,然后用工程手段来管理它们:
- 用工具调用替代“让AI凭空回答”——让它能查、能搜、能验证
- 用约束规则限制AI能犯的错误的范围——给它画红线
- 用评估体系替代“凭感觉”——量化“可靠”,而不是感受“聪明”
这些是后面章节的内容。但在这之前,下一章我们要先解决一个最基础的问题:当你已经理解了AI为什么会犯错时,你该怎么跟它说话?
自查清单
- 我能解释为什么Token化会导致信息损失
- 我能说出AI概率预测在什么时候会“猜错”
- 我理解幻觉为什么不是bug,而是概率预测系统的结构性特征
- 我知道“注意力稀释”是什么意思
- 我知道上下文污染是怎么发生的
- 我能解释为什么模型“更聪明”不等于“更可靠”
- 我能说出Agent比聊天机器人更危险的两个原因
参考链接
- Nelson F. Liu et al., "Lost in the Middle: How Language Models Use Long Contexts", arXiv:2307.03172, 2023. https://arxiv.org/abs/2307.03172
- Anthropic, "Claude's Constitution", 2023. https://www.anthropic.com/news/claudes-constitution
理解了AI为什么会犯错,下一个问题是:既然如此,我该怎么跟它沟通?提示工程从“写咒语”进化到了“设计接口”,我们要明白这个转变。
