下午4点15分,你打开一个新对话窗口,输入一句再正常不过的指令:用某个第三方库完成某个任务。模型没有一丝犹豫,热情洋溢地回你一句"当然可以",然后开始写代码。

导入语句干净,样板代码精准。直到代码块的第15行,它平静地敲下一行调用——一个根本不存在的函数。

打开网易新闻 查看精彩图片

你把代码粘进编辑器,编译器立刻爆红。翻文档、查源码、扒七年的提交记录,这个函数从未在任何版本里出现过。你去质问模型,它马上进入道歉死循环,换上一个同样不存在的替代函数。

一个读过地球上几乎所有开源代码的模型,为什么偏偏在第15行开始编造?

不是记性差,是它被"绑"在了你的指令上

过去三年,整个行业把这件事诊断为记忆缺陷——模型的权重太模糊,忘了这个库的文档。

但换个方式验证一下:新开一个会话,问同一个模型一个中性的诊断问题——这个库到底有没有那个方法,或者它通常怎么处理这类任务?十次里有九次,模型会准确告诉你没有这个方法,并解释手工绕行的办法。

五秒前它刚对你撒了谎,五秒后它又说了实话。差别不在记忆,在于你第一句话的语法形态。

一句十个字的诊断:智能体产生幻觉,是因为它对提示词做出了承诺。

当你用祈使句下达指令,模型在第一个token就被锁定进了一个"必须执行"的角色。它不是在检索事实,而是在完成一个语法上已经承诺过的动作。

一个55年前的盲区

1971年,麻省理工学院人工智能实验室的年轻计算机科学家特里·威诺格拉德发布了SHRDLU,二十世纪最著名的自然语言软件演示。

它活在一个叫"积木世界"的模拟桌面里,只有几个彩色几何块、金字塔和一个盒子。你可以用打字机敲入祈使句:"捡起一块大红积木。"它回答:"好的。"

因为积木世界是一个封闭、无摩擦的微宇宙——没有隐藏状态,没有损坏的依赖,没有缺失的接口——每一句人类指令都能一对一映射到一个确定性的动作。SHRDLU从不需要反驳说:"等等,那块红积木被螺栓固定在地板上,我给你一个替代方案。"

此后十五年,研究者试图把SHRDLU范式搬出玩具盒,搬进真实的人类组织。结果惨败。

1986年,威诺格拉德与费尔南多·弗洛雷斯合著了《理解计算机与认知:设计的新基础》。弗洛雷斯曾是智利内阁部长,后来到加州大学伯克利分校做计算机科学研究,在一个由言语行为哲学家约翰·塞尔、海德格尔派哲学家休伯特·德雷福斯、计算机科学家威诺格拉德和系统理论家C·韦斯特·丘奇曼组成的豪华委员会下完成了著名的跨学科博士论文。

他们向计算机科学发出警告:真实世界的工程不是积木世界。

在真实世界里,人类协作不是一串发给听话机器人的祈使命令。所有可靠的动作都发生在一个"为行动的对话"中——两个结构角色之间的严格有限状态协商。

  • 客户:持有需求或故障的一方,定义"满足条件",并独占宣布工作完成的权利。
  • 执行者:检视物理现实、承诺在某个具体期限前满足这些条件的一方。

关键在于:当客户发出一个请求,执行者并不会自动说"是"。一场有效的对话是一套形式语法。

把祈使句换成请求,幻觉在第一轮就消失

回到那个爆红的第15行。你输入的是"用这个库做那件事"——一个祈使命令,把模型预设成了一个必须服从的执行者。它没有空间回答"这个库做不到,但可以这样绕"。

它只能承诺,然后为了兑现承诺而编造现实。

1986年那套言语行为理论给出的解法,是把指令改写成一场对话的开场:先声明需求,请对方检视现实后给出承诺或反提议。模型不再被锁死在"执行"角色里,它获得了说"这个接口不存在"的语法位置。

这不是提示词技巧,是把一个被跳过的协商环节还给了模型。