作者反思自己曾把模型输出质量差归咎于模型本身,但同事用更好的 prompt 获得了好结果,指出 Prompt Fluency 是当下被严重低估的工程技能,且随着模型能力趋同将成为核心竞争力。
我需要坦白一件事,因为我觉得你也这么干过。
几个月前,我听到自己大声说:"Claude 在这件事上变差了。"我让它做某件事,它给了一个普普通通的回复,我叹了口气,然后把它归因于模型在退步。非常令人满意。不是 AI 的错。
然后我看到一位同事给同一个模型提交了同一个请求的更好表述版本,得到了我没能得到的结果。同一个模型。同一天。同一个任务。截然不同的输出。
问题不在模型。在我。只是我真的、真的不想承认是我。
说实话,这就是整篇文章。但让我把那个令人不安的论证完整展开,因为我认为这是目前软件领域最大的隐性技能缺口之一——而且几乎没有人把它当作一种技能来对待。
模型不再是变量了。你才是。
在几年的时间里,"更好的结果"有一个简单的解释:更好的模型。如果输出很弱,就等待下一个版本发布,升级,然后情况就会改善。工具是变量,所以工具就是借口。
这个借口已经死了,而且不会回来。
现在每个人都能用到同样的前沿模型。你、你的同事、你的竞争对手、实习生——同样的 GPT、同样的 Claude、同样的 Gemini,只差一次点击。原始访问权限在成为普遍可用的那一刻就不再是优势了。
所以这里有个让人难受的部分:当两个开发者从同一个模型得到截然不同的结果时,差异已经无处躲藏了。不是模型——你们用的是同一个。是操作者。是提问方式。是 fluency。
我们站在同一台乐器前,从它那里得到不同的音乐,而我们中的大多数人仍在怪罪乐器。
Prompt fluency 是方程式中最后一个剩余变量,而大多数开发者仍在假装这仍然关乎工具——因为"模型还不够好"是一句比"我还不擅长这个"让人舒服得多的话。
模糊的 prompt 就是穿着问号的模糊想法
这个框架重构改变了我看待这件事的方式,这是大多数"prompt 技巧"文章完全忽略的部分。
当你从一个有能力的模型那里得到一个糟糕的答案时,你的本能是你措辞错了——你错过了一些神奇的措辞,一些能解锁好输出的咒语。这就是为什么 prompt hack 标题党文章能刷浏览量:它们承诺了秘密短语。
但大多数糟糕的 prompt 不是措辞失败。是思维失败。
你没能表达清楚你想要什么。你实际上还没有决定你想要什么——而模型,它在做它的工作,恰好把你的模糊反射回来了。一个模糊的请求产生了一个模糊的结果,因为请求本身就是那个模糊,被可视化出来了。
模型是你意图清晰度的一面镜子。如果倒影模糊,在怪罪玻璃之前,先检查站在它前面的东西。
这也是为什么"prompt hacks"在大多数情况下是死胡同。你无法用欺骗来摆脱不知道自己真正在问什么。没有哪个魔法短语能弥补一个未决定的目标、未指定的约束、以及没有定义什么是"好"。秘密不是更好的咒语。是在提问之前真正知道你想要什么——这更难,不太适合发推文,而这才是整场游戏。
即兴发挥有一张账单——你在看不到发票的情况下付款
"好吧,"你可能会说,"但我最终总能搞定的。尝试几次就好了。"当然。但看看那几次尝试实际上花了什么,因为账单是逐项列出的,而大多数人不看它。
第一笔:修正螺旋。你发出一个模糊的 prompt,得到错误的东西,然后开始"不,不是那样"的循环——十五轮地推动模型走向一个三十秒前置规格本来一次就能达到的目标。你感觉很有成效,因为你正在积极工作。你只是在分期付款,支付一笔你本可以一次性结清的账单。
第二笔:不可复用的结果。即使你最终得到了一些勉强能用的东西,你也是通过即兴的来回达成的,如果你想重现也做不到。所以它不会产生复利。明天类似的任务从零开始,因为你从未捕获你是怎么到达那里的——只有凌乱的输出,没有方法。
第三笔——这是昂贵的那一项:错误的结论。你得出"AI 就是不擅长这个",然后放弃。只是问题不在 AI——而是你给它的规格。所以你现在造成了真正的损害:你基于自己模糊的提问永久地贬低了一个有能力的工具,而你会在它本来能处理的事情上避免使用它。
第三笔是即兴发挥的真正代价。它不只是浪费你一个下午。它教会你关于这些工具能做什么的错误教训——而错误的教训比浪费时间更顽固、更昂贵。
Fluency 实际上是什么样的
这些都不是神秘兮兮的,这是好消息。Prompt fluency 是一组可学习的、枯燥的、可重复的习惯——更像写一份好的 bug 报告,而不是施法。下面是它的核心:
说出约束,而不只是目标。"写一个解析这个的函数"是一个愿望。"写一个 Python 函数解析这个 CSV,处理缺失字段时跳过该行,返回字典列表,遇到格式错误的表头时抛出异常"是一份规格。模型只能击中你实际画出的目标。
告诉它你想要的答案形状。格式、长度、结构、语气。如果你知道你想要一张表格、或者要点列表、或者一个不带解释的单独函数——说出来。含糊其辞意味着你在赌博,然后在纠正。
给它看好的和坏的例子。一个你想要的例子和一个你不想要的例子,比一大段描述更能教会模型。具体永远胜过抽象。
告诉它在不确定时怎么做。"如果你没有足够的信息就问而不是猜"或者"说你不确定而不是编造"——光是这一点就能消灭一整类自信地给出错误输出的情况。
分解而不是大 prompt。巨大的模糊提问产生巨大的模糊答案。把它分解成你能验证的步骤。你将调试各个部分而不是一整个模糊体。
捕获有效的做法。这是没人做但人人都应该做的事——下一部分会详细说,因为它是从技能到杠杆机器的区别。
注意这个列表里没有:巧妙的措辞、秘密关键词、越狱技巧。都是精确的规格。清晰的思考,写下来。
真正的解锁:fluency 是可复用的,而不是每次尝试的
这里是 prompt fluency 从一个好习惯变成真正杠杆的地方——而且是重新框架整个事情的见解。
在即兴发挥 prompt 方面变得稍微快一点是好的。但真正的动作不是更快地即兴发挥。根本不即兴发挥。
一个好的 prompt——一个真正的、精确的、加载了约束的规格,能可靠地让你得到你想要的东西——值得写一次然后永远保存。保存它。模板化它。把它变成一个可复用的形式。之后,获得那种任务的出色结果的边际成本趋近于零,因为你不再每次都重新推导规格。你在调用它。
这是把一个"20% 的时候能用"的习惯变成完全不同类别的东西的关键。Prompting 的昂贵部分从来不是打字——是决定:我想要什么,约束是什么,什么算"好"。做一次这个思考,捕获它,然后每次未来的使用几乎是免费的。
这就是一个快速打字在 AI 面前的开发者,和一个建立了个人规格库的开发者之间的区别。前者在即兴发挥得快。后者已经完全不即兴发挥了。只有后者能产生复利。
会让一些人恼火的部分
我知道现在有一批读者会怎么反应:prompting 不是真正的工程。它只是在向聊天机器人打英语。当模型足够好能读懂我的心思时,它就过时了。
我想温和地指出,这种轻蔑正是即兴发挥问题穿着白大褂的样子。
"掌握这个不值得我花时间"正是让人继续即兴发挥、怪罪模型、得到中等结果的态度——而一个认真对待它的同事用同样的工具就能绕着他们转。这种鄙夷没有在保护你免受一个假技能的伤害。它在保护你免于注意到一个你还没开发的真技能。
而"当模型改进时它就会过时"把事情搞反了。更好的模型不会让规格变得不重要——它让规格变得更有价值,因为一个更有能力的模型能比一个弱模型更完整地执行一份精确的规格。这些工具的天花板在上升,而决定你能多接近那个天花板的是你能多清晰地说出你想要什么。那个技能不会消失。它是这整个过程中一直在升值的那件事。
Prompt fluency 正在静悄悄地成为基本要求——就像知道如何高效搜索、写一条清晰的 commit 信息、或者读文档成为基本要求一样。它不华丽。它不是花招。它是把精确的规格变成习惯,然后捕获它,这样你就不必重复思考。
把它当作手艺的开发者从完全相同的模型中获得了一致的、可复用的、产生复利的杠杆。而那些在即兴发挥的开发者得到了不一致的结果,以及一张关于 AI"不能做什么"的越来越长的错误结论清单。
同样的乐器。截然不同的音乐。差距不在模型了。已经不在有一会儿了。
哪一个 prompt 习惯真正提高了你的命中率——还有,实事求是地问:你保存你的好 prompt 吗,还是每次都从零开始重新打?我想知道 prompt 捕获是一个罕见的自律还是我只是最后一个意识到它的人。