
煎牛排几乎不需要什么技巧。
放进热锅里,等一会儿,翻个面,最后总能弄出个勉强能吃的玩意儿。但一块真正的好牛排——从里到外都是三分熟,表面焦香,调味恰到好处,每次都能稳定出品——那完全是另一回事了。
用AI做软件开发,也开始有这种感觉了。
我们现在没日没夜地开发。有AI也好,没AI也好,通勤路上、上厕所时、甚至睡觉时都在搞。我们创建代理(agent)、工具链、工具、技能、提示词(prompt)、反馈循环、复杂的工作流。然后一股脑全扔给模型,指望它给我们想要的东西,却从不去理解这些到底是怎么运作的。
我们想要的是能跑、好看、用起来顺滑、而且完全符合我们想象的软件。最重要的是,我们希望每次结果都一样。
但现实是,不是每次都能如愿,甚至离“每次”差得远。
有时候模型会给我们一个惊喜,好得让人意外。但有时候,它端上来一块黑炭,上面插根百里香,还硬说是三分熟,撒谎撒得理直气壮。
我们花钱买高级AI产品,雇外包团队,订阅另一个编程助手,跳到号称能出专业结果的新框架。我们指望别人已经替我们解决了问题。有时候确实如此,但很多时候,并没有。
这就剩下两条路:要么自己学会好好做饭,要么继续问朋友推荐餐厅,同时准备好钱包迎接下一次昂贵的失望。
我们大多数人想用AI做出自己在意的东西,但不想陷进实现细节里。我们想把它当成自家厨房里的专业大厨:告诉它要什么,然后走开,等晚饭好了再回来。
但AI不是大厨。充其量,它就是个牛排机。
它能照着食谱来。盯温度、在正确时机翻面、加黄油。给它足够的工具和指令,它就能快速、大规模地重复这个过程。但它不会做的,是知道你到底想要什么。
它看不到你脑子里的画面,除非你把它翻译成需求、约束、示例、测试和反馈。即便如此,它还是被自己的能力、上下文窗口(context window)以及包裹它的系统质量所限制。你可以站在机器旁边,每三十秒纠正它一次。那可能会有点帮助,但不会把机器变成米其林星级大厨。
最后,你被逼急了,决定干脆花钱买那块梦想中的牛排。
你挑了一家贵餐厅。坐下来,研究菜单,终于,你能满怀信心地点单了。你等着第一口咬下去。
端上来的,还是你在家做糊的那块牛排。
为什么?因为城里每家餐厅都雇了同一个AI大厨。
“成本优化,”管理层说,“大多数人不会察觉的。”
他们可能说对了。大多数人确实不会。多数时候,软件只需达到“可接受”就行。用户会忍受古怪的界面、没用的功能、奇怪的bug,以及那些由没人真正理解的生成代码拼凑起来的系统。
但你会注意到,因为这是你真正想做的菜。
于是你失望地回家,饿着肚子,有点尴尬,从架子上抽出那本食谱。现在只剩一个选择:学做菜。
你学会热到底是怎么回事。哪个锅重要,为什么。为什么厚度重要,为什么静置重要,为什么光靠定时器永远救不了你。你又毁了几顿晚餐。然后你再次尝试。一次又一次。
最终,你不再依赖运气——你是靠硬碰硬学来的。
AI能让你更快。它自动化重复性工作,给出起点,解释代码,帮你试探想法。但它无法替代你的判断。它不能替你定义“好”,不能决定哪些取舍可接受,也不能总在某个东西技术上正确、却在所有关键方面都错的时候,及时抓住问题。
要用AI构建好软件,你仍然得懂软件。
你得知道自己到底在要求什么,如何评判返回的结果,以及何时机器只是在自信地给你端上一盘炭。
继续学,继续做,继续失败。直到你能稳定产出想要的结果,而不是指望碰运气撞上。
然后,练到足够好,开一家自己的小餐馆。
再雇几个AI厨师。大多数人还是尝不出差别。
夜雨聆风