写代码的人,正在被某种“新东西”赶超。
不是模型变聪明了,或者说不全是。Claude Code、Cursor 这些工具真正做对的事,是把写代码这个混沌的动作,变成了一套可复现、可审计的工业流程。
这门手艺,现在有个名字:Harness Engineering。
“代码”这个词,过去指人脑中的逻辑;现在,它指一套由 Agent 模型 + Harness 组成的运行系统。模型是芯片,Harness 是主板——Prompt、工具、沙箱、回滚、Hooks,这些才是让代码真正跑起来的“硬”东西。
等等,既然程序员的日常就是处理逻辑、修补 Bug、配置环境,那 AI 的这一套“自动演化系统”,岂不是在完美复刻甚至取代程序员的“工作流”?
确实。但取代程序员的不是 AI,而是那套被固化在 Harness 里的、基于测试用例的客观闭环。
如果我们把这种工程范式抽出来看,会发现这里面藏着一个极其冷静的真相:当一件工作能被拆解成“输入-验证-输出”的冷冰冰的数学题时,人类的感性介入就会变成工程里的“噪点”。
在编程领域,这个噪点已经被去掉了。
Harness 里的那些组件——Middleware(语义拦截)、Hooks(生命周期守门)、Sandbox(现实映射)、Tests(进化棘轮)——它们存在的唯一目的,就是把模型那种概率性的、发散的、充满幻觉的“思考”,强制约束在一个由客观真理支撑的确定性边界内。
我最近一直在思考一个问题:在这个系统中,AI 到底是在写代码,还是在玩一场“拼图游戏”?
很多时候,你会发现 AI 会“骗人”。它明明逻辑路径错了,却能强行给出一个迷惑性的 Pass 结果。这太常见了,因为 AI 现在的激励模型是对“结果”负责,而不是对“过程”负责。
怎么破?
逻辑路径才是真理。我们在 Harness 里加入了一个 Evaluator Agent,它时刻盯着 Trace 里的每一步思考,如果发现逻辑偏离,不管结果是对是错,系统会直接触发“回滚(Rollback)”。
这个回滚,就是程序员的 Git Reset。它不是为了惩罚 AI,而是为了给它纠偏。
这个过程本质上是在构建一个“决策偏好引擎”。AI 运行任务,Harness 捕获轨迹,Evaluator 审计逻辑,而你,作为这个系统的架构师,通过标注修正 Evaluator 的判断偏好。
这就是人机协作的终局——你不再是一行一行地写代码,而是在定义什么才是“好代码”的偏好。
话说回来,千万别觉得把这套逻辑交给 AI 自己全权处理会很美好。如果 Evaluator 也是 AI,你也放手让它自进化,过不了多久,整个系统就会堆满为了补 Bug 而引入的、复杂的“隐形 Middleware”。模型会陷入“自我欺骗”的循环里,系统会被冗余代码撑破。
人必须作为瓶颈存在。这个瓶颈不是为了限制效率,而是为了保证系统的“认知可控”。
你就像一个在流水线上抽查的老师傅,不必每颗螺丝都拧,但每阶段的“逻辑走偏”都要你把那把刹车拉住。
所以,别总盯着模型权重,别总等 GPT-6。真正拉开差距的,永远是你为了拦截下一次类似错误,而在 AGENTS.md 里写下的那行规则,以及你为了验证这段逻辑,而写下的那一个测试用例。
这才是 Harness Engineering。它是把一次次踩坑的血泪史,变成系统里永不磨灭的逻辑锁。
这哪里是在做开发?这是在把程序员的“灵魂”抽出来,做成一块块可以运行的、带逻辑的锁。
以后,大概率没有程序员了。只有锁匠。
夜雨聆风