AI 不是许愿池

Shinji

015 年有一部不算太火的喜剧电影《魔法老师》。主角尼尔是个普通的中学老师,有一天突然被一群无聊的外星人赋予了“言出法随”的能力——只要他随口说一句,哪怕再荒谬,世界也会照单全收。

电影里有两个细节特别耐人寻味。

第一个细节:尼尔在根本不知道自己有了超能力时,抱怨式地随口来了一句“让外星飞船炸毁第 10 班吧”。话音刚落,门外一阵轰鸣。等他一推门,发现整班学生真就被炸得灰飞烟灭。

第二个细节:尼尔晚上惊觉是自己说错话害死了学生,慌忙发功想要弥补。他一拍脑门喊道:“让死人都复活吧!”——他心里想的是“把今天被我害死的第 10 班学生救回来”,但说出口的却没有加任何限定条件。结果,全世界墓地里的骨灰和尸骨瞬间全部重塑,大街小巷塞满了千百年来死去的各种古人。

这两个桥段,是不是像极了我们今天和 AI 打交道的日常?

你随口扔给对话框一句话,AI 执行得毫无保留,甚至可以说“如你所愿”。直到你跑起代码、看到产出的那一刻——你推开那扇门,才发现它不仅解决了你的微小需求,顺便还把你的整个系统给“复活”成了一团乱麻。

你随口许的愿,从来不是你脑子里想的那样

我们在面对 AI 时,太容易把“模糊的念头”当成“清晰的指令”了。

“帮我写个爬虫。”——你没说多久抓一次,没说数据存 SQL 还是存文件,更没说被封 IP 时该重试还是直接报异常。

“把这个接口性能优化一下。”——你没说要响应速度提升到几十毫秒,没说要不要兼容老版本的客户端,也没说哪块核心业务逻辑绝对不能动。

“把界面改得好看一点。”——你没说好看是极致简约还是极客风,是现代扁平还是复古微塑,是加圆角还是调字号。

即便是那些听起来足够具体的指令,也往往漏洞百出。“写个排序算法”——你心里想的是针对几万条数据的快速排序,AI 给你吐出来一段带满注释的冒泡排序。从字面意思看,它一点错没有;但从业务现实来看,完全是南辕北辙。

电影里尼尔还踩过一个坑:他许愿让自家那只金毛狗“能听懂人话、能开口说话”。愿望实现了,狗子确实开口了,但第一句话就是对着他破口大骂。因为尼尔只说了“要会说话”,却忘了加上“要温顺、要懂礼貌、不要骂人”。

我们的大脑天生带有某种“主观补全”的错觉。我们以为自己表达得万无一失,其实脑子里装着一整套上下文、边界条件和潜台词,落到输入框里却只剩下一句无头无尾的废话。

你省掉的每一个定语,都是在给 AI 留出脱轨的自由。

你嘴里说的:让死掉的人复活。 你得到的:全世界所有纪元的死人都站起来了。

AI 是补全大师,但它真的没有读心术

我们要清楚一件事:语言模型本质上是一台极其强大的“概率预测与填空机器”。

你给了它一段残缺不全的前文,它就去预测最可能出现的下文。你给它一句缺乏限定条件的指令,它不会像人类同事那样停下来追问“你具体指的是哪个模块”,而是会直接调用海量训练数据里的“默认参数”,把空白填满。

“优化一下”的默认值,通常是“重构代码”;“让死人复活”的默认值,就是“复活所有人”。

它填得又快又自信,因为它只负责根据统计规律生成文本,并不负责替你确认真实意图。它并不了解你,它了解的只是“全人类在说这句话时,平均概率下对应着什么”。

人类之间的沟通之所以能偷懒,是因为我们有共同的背景知识和默契。你对身边的同事说“把那个页面调一下”,对方能猜出七八成,因为你们昨天才一起开过会, shared 同一个上下文。

但 AI 和你没有任何历史默契。它对你的全部认知,仅仅取决于你刚刚发过去的这几百个字符。当缺少精准约束时,它只能掏出那个“全人类的平均理解”来对付你——而这个平均理解,往往对任何具体场景都是不准确的。

你以为自己在下达需求,实际上你只是在向一个冰冷的机器许愿。

模型能力越强,定语越不能省

《魔法老师》的后半段揭示了一个残酷的规律:超级能力不会自动帮你把事情想明白,它只会把你没想明白的地方放大成灾难。

AI 也是如此。能力越强的模型,执行力越精准——包括执行你的疏漏。

如果你在一个弱小的模型面前提需求,你往往保持着高度警惕,因为你知道它写的东西漏洞百出;但面对顶级的强模型,你很容易掉以轻心,看到它吐出的代码格式优雅、逻辑流畅、逻辑自洽,就直接复制粘贴进了项目。

可一旦你漏掉了一个极罕见的边界条件,顶尖模型会用一种极其专业、极其丝滑的姿态,写出一段能在凌晨三点把数据库跑崩的代码。你根本看不出破绽,直到事故发生。

模型越聪明,盲目放心的代价就越高。 面对强大的 AI,你最不该假设的就是“它应该懂我”。它不需要懂你,它只需要执行你。执行力越猛,你的漏洞就被放大得越彻底。

从“许愿”到“沟通”:给指令加定语的四个习惯

想要让 AI 真正成为生产力工具,而不是搞砸事情的魔法神灯,关键在于把那些隐形的限定条件重新放回对话里:

  1. 交代背景,而不是只下命令

别说“写个博客系统”,试试说:“给一个没有编程基础的团队做一个极简静态博客,只用来发布每周读书笔记,不需要用户登录、评论和后台管理。”背景决定了 AI 在填补默认值时的起点。

  1. 提供参照,少用抽象形容词

形容词是最不可靠的指令。“好看”、“优雅”、“高效”各 人有各人的理解。甩给它一个页面截图、一段现成的规范代码,或者一个竞争产品的链接——能用具体范例约束的,就绝不用形容词。

  1. 明确排除项,画好红线

明确告诉它“不要什么”,往往比告诉它“要什么”更能快速缩小范围。“不要引入第三方依赖”、“不要修改现有接口的返回值类型”、“不要使用弹窗”。排除法是成本最低的精准定位。

  1. 把它当同事,而不是一槌子买卖的神灯

许愿是一次性的,开发是迭代的。别指望一次 prompt 就产出完美终稿。把它当作一个极度听话但缺乏业务常识的初级同事:先让它出第一版草稿,然后在这个基础上追问、修正、加限定条件。

所谓的 prompt 技巧,拆穿了其实就一句话:把你原本寄希望于“默契”的那些定语,老老实实地写出来。

真正的魔法,在你的定语里

电影的结局,尼尔最终选择收回了自己的超能力。他意识到,拥有一条能实现一切愿望的魔法神灯,并不能让人类过得更好——因为人类自己甚至都没想明白到底想要什么。

好在我们面对 AI 时,不需要像尼尔那样心惊胆战。我们不用真的去救活全世界的古人,我们只需要在按下回车键之前,把那句没说完的话补充完整。

AI 从来不是许愿池。你投进一枚模糊的硬币,它绝不可能吐出一幅完美符合你心意的画卷。它是你个人能力的放大器:你给它清晰的限定与边界,它就还你极致的效率;你给它半句含糊的废话,它就还你一个手忙脚乱的“惊喜”。

下次当你想把一段含糊不清的需求发给 AI 时,不妨先停顿三秒问问自己:如果收到这句话的是一群毫无人类常识的外星人,他们会把我的系统搞成什么样?