第二篇 · 与 AI 协作 / 第 4 章
AI 是怎么工作的
它为什么一会儿很聪明,一会儿像失忆? 这一章是整份教程里回报最高的一章:看懂它的桌面, 你就能预判它什么时候会胡说、什么时候会变笨。
读完这一章,你能
- 用“猜下一个词”解释 AI 为什么会一本正经地胡说;
- 在一段对话里指出哪部分是系统提示、哪部分是工具说明;
- 看到重复、忘字段名等信号时,判断该不该开新会话。
- 必读:它不是搜索引擎——理解“预测下一个词”,幻觉就有了根。
- 必读:上下文窗口、系统提示与工具说明——它为什么会突然失忆,桌上又最先摆着什么。
- 必读:四个能看见的变笨信号,以及开新会话的检查点。
- 可选以后再看:Agent 调用工具的工作循环,等你要让它动手改文件时再回来。
它不是搜索引擎
很多人对 AI 的默认想象是:一个巨大的资料库,你问它,它去里面翻,翻到了就告诉你。
不是这样的。它的真实工作方式是:预测下一个词。
你给它一段话,它做的唯一一件事是——算出"接下来最可能出现的是什么词", 写下那个词,然后把这句新的话再喂给自己,算下一个词,如此循环。
- 为什么它写得那么流畅?因为"流畅"正是它的训练目标——它被训练成写出最像人话的下一句。
- 为什么它会一本正经地胡说?因为它是在写"最像答案的话",不是在查"真正的答案"。 这两者大部分时候重合,偶尔不重合——不重合的那部分就叫幻觉。
- 为什么它老爱讨好你?因为训练时"让人满意"的回复得分高。你说"我觉得这样对", 它天然倾向于顺着你说。
- 为什么同样的问题问两次,答案会不一样?因为它是按概率挑词的,不是查表。
理解这一点,你就不会再问"它是不是在骗我"这种问题了。更准确的说法是: 它永远在认真地往下写,但它并不"知道"自己写的是不是真的。
token:AI 眼里的文字
AI 不看字,它看 token(词元)。
token 是它把文字切碎之后的碎片,大致相当于"一个常见词"或"半个生僻词"或"一个汉字"。 你可以把它理解成AI 的计费单位和工作单位。
因为后面每一件事都在用它算账:上下文窗口有多大(用 token 算)、 你花了多少钱(用 token 算)、AI 什么时候开始变笨(还是用 token 算)。 你不需要精确计数,只需要有个手感:一整屏密密麻麻的报错,是很"贵"的东西。
上下文窗口:它的工作台
这是最需要你理解的一个概念。请先记住一句话:
它不记得你上一句说过什么。真的不记得。
你感觉它记得,是因为每次你发消息,系统都会把你们之前聊的全部内容,从头到尾重新塞给它一遍。 它每次都像第一次读这本小说,只是这本小说已经写到你眼前这一页了。
那个"能塞进去多少"的容量上限,就叫上下文窗口。 你可以把它想成一张工作台——它必须把所有要用的东西都摊在台面上, 因为桌子底下没有抽屉。
桌上最先摆好的两块东西:系统提示与工具说明
图里最上面那一栏,写着系统提示和工具说明。 这两个词你以后会经常碰到,它们都在占用上下文,而且你通常删不掉。
- 系统提示(system prompt)
- 厂商给 AI 的固定工作说明,每次对话开始前自动放在最上面。 它规定 AI 是谁、用什么语气、哪些事不能做。你看到的只是它的效果,不是全文。
- 工具说明(tool description)
- AI 能调用哪些工具的说明书:每个工具叫什么、能做什么、需要填什么参数。 没有写进说明书的工具,它就用不了——它不会“凭空”去改你的文件。
打个比方:系统提示是公司发给新员工的员工手册, 工具说明是他能使用的设备清单和操作手册。 两者都在开工前就摆在桌上,所以你的对话还没开始,桌子已经占掉一角了。
这能解释两个常见困惑:它为什么总用同一种格式回答(系统提示规定的); 以及你让它“直接改文件”,它为什么只给你一段建议(可能根本没给它改文件的工具)。
如果你让 AI 改一个文件,它却只回了一段代码,先别急着说它笨。 想一想:是它不愿意改,还是这个对话里根本没给它“改文件”这个工具?
这个模型能解释很多你以为的"AI 出了故障":
- 「它怎么忘了我十分钟前说的要求?」——那句话还在桌上,但被埋在一堆新东西底下了。
- 「我要不要重新说一遍?」——千万不要。你再说一遍,桌上又多一份重复的东西,只会更挤。
- 「为什么开个新对话它就全忘了?」——因为新对话就是一张新桌子。这也正是它有时更好用的原因。
聪明区与变笨区
这是本章的核心。AI 的能力不是恒定的——同一个模型,在同一场对话里,会越聊越笨。
为什么会这样?一个直觉的解释是:它的注意力是有限的。 桌上东西越多,分给每一件的注意力就越少。你那条关键要求,在整个桌面里的分量从"主要材料" 变成了"两千字里的一句话"。
这个下滑没有任何提示。没有弹窗、没有警告、没有红线。 它只是开始变得稍微差一点,然后明显差一点。
而人的本能反应是——再解释一遍。你越解释,桌上越挤; 越挤它越笨;它越笨你越觉得"我没说清楚",于是解释得更多。 这就是新手最常见的死亡螺旋。
变笨区不是感觉,是四个能看见的信号
“我觉得它变笨了”不是证据。下面四条是可以直接观察到的行为, 出现两条,就基本可以判定它已经滑进变笨区。
开始重复
同一段解释、同一个方案、同一句开场白反复出现。你说“这个说过了”,它还是接着说。
忘记字段名
项目里明明叫 dish,它写成了 dishName,或者干脆编出一个新字段。
改错文件
你让它改登记页,它去动了首页;或者它告诉你一个项目里根本不存在的文件路径。
把旧要求当新要求
你早就说过“不要动数据库”,它突然开始提议重构表结构,还像第一次听说一样解释给你。
还有一个辅助判断:如果开头很顺、后面越来越糟, 基本可以确定不是你突然变笨,而是桌子满了。
四条信号里出现两条,或者同一处它连续两轮改不对,就不要再解释第三遍。 先让它写一份交接摘要(做了什么、改了哪些文件、还差什么),再开一个新会话,把摘要贴进去。
具体怎么交接、旧会话怎么收尾,见 第 5 章 · 习惯三:一个会话只干一件事。 这一章你只需要记住:信号出现 = 换桌子,而不是往桌上再加一张纸。
它为什么会睁眼说瞎话
回到开头那句话:它在写最像答案的话,不是在查真正的答案。
所以当它不知道的时候,它不会说"我不知道"——它会写出一句听起来完全合理的、格式完全正确的、但内容纯属虚构的话。这就是幻觉。
在写代码这件事上,幻觉长得特别像真的,因为代码本来就长那样:
utils/formatDate.js,调用了 normalizeTimestamp() 来处理时区……
utils/formatDate.js 这个文件可能根本不存在,
normalizeTimestamp() 这个函数也可能从来没人写过。
它不是在撒谎——它是在生成一句"最像会出现在这种场合的话"。
- 只要它提到具体文件名、函数名,就让它给出准确路径。 说不出来就说明是编的。
- 它说"改好了",你必须亲自跑一遍。这是唯一可靠的验收方式。
- 让它"先看再改"。明确要求它先去读真实文件、贴出读到的东西,再动手。 这一步能拦掉绝大多数幻觉。
它是怎么「动手」的
最后一块拼图。Agent(代理)这个词你可能到处看到,它的意思其实很简单:
普通聊天 AI 只会说话。Agent 能动手。
它"动手"的方式,是调用一个个叫做工具(tool)的东西。工具就是预先给它准备好的动作, 比如"读一个文件""改一个文件""在终端里跑一条命令""在网上搜一下"。
既然它每读一个文件都在往桌上加东西,那么——
告诉它"只许看 login 这个文件夹",比说"你去了解一下我的项目"要好得多。
一个是在桌上放一本书,一个是在桌上倒一整个书架。
三句话带走
- 它在预测下一个词,所以“写得流畅”和“说得正确”是两回事。
- AI 没有记忆;上下文窗口是一张每次都要重新摆满的桌子。
- 变笨不是玄学:重复、忘字段名、改错文件、旧要求当新要求,出现两条就开新会话。
| 你观察到的现象 | 真正的原因 |
|---|---|
| 它一本正经地胡说 | 它在写"最像答案的话",不是"正确的答案" |
| 它很爱顺着你说 | 训练目标就是让你满意 |
| 同一个问题两次答案不同 | 它是按概率挑词,不是查表 |
| 它"记得"之前说过的 | 不是记得——是每次把全部历史重新读一遍 |
| 聊久了它变笨 | 工作台满了,注意力被摊薄 |
| 重复解释反而更糟 | 又把同样的东西往桌上堆了一份 |
| 新开一个对话它突然变聪明 | 新桌子,注意力重新集中 |
AI 的记性不是"记住/忘记",而是"桌上还有没有位置"。 你后面所有的工作习惯,本质上都是在帮它把桌子保持干净。
自测:三个问题
AI 说它改了 utils/formatDate.js,你怎么判断这是真的还是幻觉?
让它给出这个文件的准确路径,并贴出实际读到的内容;然后你自己跑一遍功能。 说不出来路径、贴不出内容,基本就是它在写“最像会出现在这种场合的话”。
同一场对话里,它第三次把 dish 写成 dishName,你该继续解释吗?
不该。这已经满足“忘字段名”和“开始重复”两条信号,继续解释只会往桌上再加一张纸。 先写交接摘要,再开新会话。
系统提示和工具说明分别是什么?为什么你通常删不掉它们?
系统提示是厂商给 AI 的固定工作说明,工具说明是它能调用的工具清单和用法。 两者都在对话开始前就由系统放好,属于桌面上最早、也最底层的那一层。
动手 10 分钟
打开你现在正在用 AI 做的一件事,做两个观察:
- 问它:“请列出这场对话里,你记得我提过的三个要求。”对照你真实说过的,看它漏了哪个。
- 在最近几轮回复里找一个变笨信号:重复、忘字段名、改错文件,或者把旧要求当新要求。
找到两个信号,就按上面的检查点写一份交接摘要;一个都没有,说明这张桌子还很干净。
如果你看到 X,大概率是 Y
- 它说“已经改好了”,但文件路径很陌生 → 大概率是幻觉。先让它贴出真实路径和读到的内容。
- 你越解释,它错得越离谱 → 不是你没说清,是桌子满了。停止解释,准备交接。
- 它只给建议,不动手 → 大概率这个对话里没有给它对应的工具,而不是它偷懒。
- 新会话一开始就很准 → 不是模型升级了,是注意力重新集中了。