AI工程范式的三次演化:Prompt Engineeri
你猜怎么着?同一个模型,有时候比傻子还笨,有时候却像天才!
说到这儿,我得跟你坦白一件事——这半年来,我一直被一个破问题折磨得睡不着觉。
你有没有过这种经历?明明用的是同一个顶级AI模型,今天它像个神队友,三下五除二帮你搞定了工作。第二天呢?好家伙,翻来覆去在同一个坑里打转,你恨不得钻进电脑里给它一巴掌!
我刚开始以为是自己prompt没写好。后来觉得是背景材料给得不够。直到花三天把一堆工程实践报告啃完,才发现——哈!我踩的坑,根本不是这个坑!
第一次栽跟头,摔得我怀疑人生
先讲个我的糗事。
2023年底那会儿,我写prompt那叫一个认真。跟写高考作文似的——“你是一位资深工程师”“请一步一步仔细思考”“输出格式严格按照如下要求”……
效果呢?时好时坏,全靠运气。
有一次可把我气坏了。我让一个Agent排查线上崩溃,把堆栈信息、错误日志全贴进去,洋洋洒洒写了几百字的prompt:“你是顶级SRE,请分析崩溃原因,重点关注xxx”……
结果你猜怎么着?
它在代码库里跟没头苍蝇似的乱转!翻了一大堆不相关的文件,输出了一份看起来有模有样、但屁用没有的报告。我盯着屏幕,血压直接拉满。
后来我自己动手排查,花了一下午才把问题理清楚,其实根源特别简单——就是一个符号重命名导致的调用链断裂。就这么一个入门级问题,号称能写代码的AI竟然搞不定。
我当时就觉得不对劲:我们是不是搞错了什么?
一顿操作猛如虎,一看效果像二百五
后来我换了个思路,结果让我直拍大腿。
我不再堆prompt了,而是给Agent加了点东西——就叫它“崩溃分析技能”吧。不是什么高大上的玩意儿,就几条具体方法:
- 遇到崩溃,先搜这些关键字
- 先调这个工具(提前配好了脚本索引)
- 去 git 历史里反查术语是什么时候引入的
- 翻翻过去怎么解决类似案例的
就这些。再跑起来,效果完全不一样了——Agent不再瞎逛,而是走一条清晰的路径:先搜关键字框定范围,然后调工具分析调用链,再查 git 记录。半小时定位问题。
我彻底反思了:Agent缺的根本不是“你再解释一遍任务”,而是“一条可执行的调查路径”。
说到这儿,你是不是也有种“原来如此”的感觉?
三件事,压根儿就不是一回事
从那天起,我开始琢磨这三件事到底有什么区别。
第一层:Prompt。 解决的是“怎么把任务说明白”。重要吗?重要。但别神话它。模型再牛逼,本质上还是个统计机器,不会因为你写了“请谨慎分析”就真的变得谨慎。你信不信?
第二层:Context。 解决的是“给模型喂什么”。日志、代码、案例、文档——喂对了,效果确实提升明显。但它只是优化“认知输入”——模型知道得更多,不等于执行得更稳。
第三层:Harness。 这才是真正的王炸。解决的是“怎么让模型在真实环境里可靠地干活”。
你想想,以前Agent表现不好的时候,我的第一反应是什么?“把prompt写长点”。
现在呢?我的第一反应是:它到底缺的是目标表达、任务材料,还是工程支架?
大部分时候,缺的是支架。
一个让我下巴掉下来的案例
说个真事。国外有个顶级AI团队做过一个实验:他们让Agent在3位工程师的监督下构建一套大型生产系统,最终代码量达到百万行,期间几乎没有人工直接编写。关键在于,他们设定了一条极度反直觉的规则——禁止任何人工手动输入代码。
这不是炫技,是倒逼。
当你绝对不能自己动手,你就只能把藏在脑子里的经验全变成系统可执行的规则:架构模式哪些能用、检查必须过哪些、代码库规范怎么统一……过去靠默契、靠经验、靠拍脑袋的东西,全得写成显式约束。
这就是Harness Engineering的精髓:把人类的隐性知识,变成Agent可以遵守的规则。
你琢磨琢磨,这有多炸裂。
最新研究告诉你:别再瞎折腾了
今年有篇综述把这事儿讲得挺透。它提出一个概念叫“绑定约束”——对于长任务,性能方差主要来自Harness,而非模型本身。
证据呢?有团队只调整了编辑工具和架构配置,模型权重完全不变,15个不同模型的编码基准成绩就提升了将近10倍。另一个团队固定同一个模型,只重写了系统提示词、增加了中间验证环节,终端任务的得分就从52.8%升到了66.5%。还有团队用自动优化的方法调整架构,得分达到了76.4%。
相比之下,模型本身迭代通常只带来两三个百分点的提升。
你品,光换模型不换Harness,效果有限。这事儿真不是我瞎编。
我现在是怎么干的?
跟你说说我现在的习惯,跟以前完全反过来。
以前我是先写prompt,再给材料,最后才想怎么跑。顺序全反了。现在呢?先用Harness想清楚:这个Agent需要什么运行环境?工具链怎么搭?状态怎么管理?失败了怎么恢复?然后再设计Context流动:每步该看到什么、哪些记忆要留、哪些要忘。最后才写Prompt,定义目标和输出格式。
顺序一反,效果差不少。
最后说句大实话
你想想,模型能力越来越强,它需要的其实是什么?不是“被更严厉地管束”,而是“给它一个自由发挥的舞台”。
人类要帮它搭舞台,而不是不断纠正它的每个动作。
用了一堆顶级模型但效果不好,大概率不是模型不够聪明——而是你还没给它提供足够好的运行环境。在烂系统上装再好的引擎,也跑不起来。
这可能是未来程序员真正的主战场——不是写代码,而是设计能让Agent高质量产出的环境。
最后送你一句话:
**想让Agent变得更好,要么换更强的模型,要么写更好的Harness。模型迭代速度已经在放缓,Harness这部分的提升空间,可能比你想象的大得多。**
我最近彻底翻新了团队排查Agent问题的思路。大多数问题就出在Harness上。
不是模型不行。
是你的舞台还没搭好。
读者评论 4