本文警告过度依赖AI编程代理会削弱开发者核心能力,揭示“监督悖论”如何让技能退化反噬工作效率,并提供保留人类主动控制的实用工作流。
AI编程不是偷懒是偷脑子:当指挥家当久了,你连键盘都不会敲了
你以为你在指挥AI写代码,其实AI在帮你慢慢戒掉编程
你写需求,AI写代码,你负责审核。
但这个流程藏着三个互相喂养的死循环:
第一,你越是让AI干脏活累活,你自己的编码肌肉就越萎缩。
第二,你越不懂代码底层逻辑,就越看不出AI生成的屎山代码里的坑。
第三,你越依赖特定厂商的AI代理,就越被他们锁死,哪天服务器崩了或者涨价了,整个团队直接停摆。
AI写代码很猛,但人一旦只当“指挥”,脑子会慢慢变钝,最后可能连“指挥”都指不动
咱们先别扯那些高大上的“AI赋能”、“下一代开发范式”,直接把话说透。现在市面上吹得最响的AI编程工作流是什么?就是你动嘴,AI动手。你写个需求文档,它给你生成几千行代码。你从“码农”升级成了“指挥官”,听着是不是倍儿有面子?
但我问你一个扎心的问题:你上一次亲手敲出超过五十行没让AI插手的代码,是什么时候?上周?上个月?还是你已经想不起来了?
AI编程代理这玩意儿,效率确实猛,但它有一个谁都不想提的副作用——它会在你觉得自己“很高效”的那段日子里,悄悄把你的编程脑子掏空。你以为是你在指挥AI,到最后你会发现,你连AI写的代码都看不懂了,更别提指挥它。
这不是AI的错,是这个流程本身自带一个死循环:监督AI需要你本身就很强,但过度用AI会让你变得很弱。
Anthropic自家的研究都承认了:监督AI需要的编程能力,恰恰是过度使用AI会摧毁的能力。
AI把写代码变成“丢骰子加抽卡”的执行流程,开发者开始从手工劳动退化成结果审查员
很多人拿AI代理跟以前的编程语言进化比,说这就像当年Fortran取代汇编,Java取代C++。他们说程序员一直在“往上走”,从管寄存器到管对象,现在只是换了个更高级的抽象层。哥们儿,这比喻听着有道理,但完全是偷换概念。汇编到Fortran,你写的东西更少了,但每一步执行结果都是确定的。你给编译器输入“A = B + C”,它不可能给你算出“A = B * C + 孙悟空”。但AI代理呢?你写“给用户发邮件”,它可能调用一个根本不存在的API,或者把邮件内容写成一坨乱码,或者脑子里自动脑补出“还要同时发短信”。这不是抽象层,这是赌场里的老虎机——你输入一枚代币,出来啥全看运气。
你想想以前的开发流程是啥样。你接到一个需求,脑子里先过一遍,然后打开编辑器,一个字符一个字符地敲。敲到一半发现不对劲,删掉重来。调个函数,查个文档,跑个测试,报个错,再修。整个过程像手工炒菜,油盐酱醋火候都是你自己掌控,累是真累,但每一勺下去你都心里有数。
现在AI编程流程是啥样?你往对话框里扔一段话:“帮我写一个用户登录功能,包含JWT验证。”然后AI噗噗噗给你吐出两百行代码。你干嘛?你不是在写代码,你是在当质检员。你从头到尾扫一遍,看看有没有明显的漏洞,有没有调用了不存在的库,有没有把密码明文存了。然后说一句“嗯,看起来还行”,合并,完事。
这看起来像升级成“指挥官”了对吧?其实你更像一个在流水线末端盯着自动炒菜机的质检员。炒菜机咔咔咔往外倒菜,你只需要拿筷子戳一筷子,看看熟了没,有没有蟑螂。问题出在哪儿?出在“菜的量”爆炸了。以前你一天炒二十道菜,每道菜都经过你手。现在炒菜机一天给你炒两百道菜,你只能每道菜戳一筷子。你觉得自己还在掌控厨房,但你已经很久没摸过炒勺了。
久而久之,一个特别尴尬的情况就来了:你还能看懂菜单上的字——“宫保鸡丁”、“鱼香肉丝”,但你已经搞不清楚后厨到底是怎么把这些菜做出来的了。AI生成的那两百行登录代码,你真的每一行都懂吗?那个装饰器的原理是什么?那个中间件的执行顺序会不会有坑?那个异常处理为什么这么写?你不知道。你只知道“它跑起来了”。这就是从“开发者”进化成了“结果审查员”的第一步。
当开发变成“审稿模式”,学习能力被切掉一半,成长节奏直接被砍半刀
咱们实话实说,编程这门手艺到底是怎么学会的?不是看会的,是摔会的。你写一个循环,忘了写退出条件,程序卡死了,你debug半小时,这辈子都忘不了要写退出条件。你调一个接口,没处理空指针,线上崩了,被老大骂一顿,你下次写代码之前脑子里先过三遍空判断。这些“摔跤”的过程,看着低效,其实是你的大脑在长肌肉。
AI编程流程干了一件什么事儿?它把“摔跤”这个环节给你删了。你让它生成一段代码,它直接给出一份看起来“差不多对”的版本。你不用踩坑,不用debug,甚至不用想“这里为什么要这么写”。你只需要扫一眼,嗯,没语法错误,逻辑说得通,过。学习路径从“写、错、调、修、记住”变成了“看、嗯、过”。中间那最值钱的“踩坑成长路线”直接被压缩成了一张薄薄的审查表。
就像学游泳,以前是把你扔池子里,让你扑腾,喝水,呛水,然后你自己学会怎么浮起来。现在AI直接给你一艘小汽艇,告诉你“你是船长了,开船就行了”。你觉得你进步了,其实你连水的浮力都没体验过。哪天汽艇没油了,你掉水里,你连狗刨都不会。
审查代码最多只占学习过程的一半,甚至不到。真正让你长本事的,是亲手写出代码然后被它折磨的那整个过程。你跳过了折磨,也就跳过了真正的成长。(这话有点像自略,不是所有成长都是要付出痛苦,快乐地失败、尝试,生命就在于破解过程,不是破解结果。)
更麻烦的点来了:用AI越多越依赖AI,最后形成“监督AI必须靠AI能力”的死循环
咱们现在要说到整个陷阱里最操蛋的一个结构了。
Anthropic用了一个词叫“监督悖论”,翻译成人话就是:你要想很好地监督AI写的代码,你自己必须得是个编程老手,能一眼看穿逻辑漏洞、性能坑、安全后门。但你要是一直用AI帮你写代码,你的编程能力就会慢慢萎缩,直到你根本看不出AI代码里的问题。你看不出问题,你就更放心地让它写,它写你就更看不懂。
你品品,这是个完美的死循环。就像一个驾校教练,天天让自动驾驶系统帮你开车,你觉得你坐在驾驶座上就是在“监督”。三个月后,系统突然让你自己开,你连油门刹车都分不清了。你不是在监督,你是在被系统带着跑。
LinkedIn管着五十个工程师的总监Sandor Nyako已经发现了这个问题在他的团队里蔓延。他直接下了一道命令:不准用AI代理做任何需要批判性思维或者问题解决的任务。他说了一句让我后背发凉的大实话:“一个人如果连批判性思维都没有,他怎么去质疑AI给出的答案到底准不准?”你看看,这话多狠。你越是相信AI,你就越懒得动脑;你越懒得动脑,你就越没有判断力;你越没有判断力,你就越得相信AI。到最后,你以为你在用工具,其实是工具在用你。
更吓人的是,这不光是新手的问题。那些写了快三十年代码的老炮,比如Simon Willison,他也公开承认,自从重度依赖AI生成代码之后,他对自己的应用已经没了那种“清晰的脑内模型”。以前他能画出整个系统的架构图,知道每个模块怎么交互,每个数据怎么流转。现在他面对一坨AI生成的代码,脑子里是一团浆糊,每加一个新功能都感觉像在沼泽里走路,因为他不清楚底下到底踩着什么。你看,连三十年的功力都扛不住这个流程的侵蚀。
(不过,也别太信这位Simon Willison,他为人过于谨慎,他就是哪个喜欢对大模型进行安全道德检测的新车检测站,你兴匆匆买个新车准备上路,还要人再给你验证一下,过度优化、过度验证都是真正保守主义,其实是阻碍技术加速发展的绊脚石。)
编程正在从“动手思考”变成“纯规划游戏”,但很多问题只有写代码时才会暴露
现在很多AI编程布道者喜欢说一句话:“你不需要再关注那些琐碎的语法和实现细节了,你需要关注的是更高层次的规划和设计。”听着特别有道理对吧?像一个将军不应该去管前线士兵怎么擦枪,他只需要制定战略。
但这话在编程领域有一个巨大的漏洞。编程这件事,有一个隐藏属性特别容易被忽视:写代码本身就是一种思考方式。你不是先在大脑里完完整整地把整个系统设计好,然后再像打字员一样把它敲出来。绝大多数人,包括那些顶级开发者,都是“边写边想”的。你写一个函数,写到一半发现参数设计不合理,你回去改接口。你搭一个类结构,搭着搭着发现之前设想的继承关系根本行不通,你推翻重来。代码不是设计的结果,代码就是设计的过程。
OpenCode的作者Dax在采访里说了一句我特别想刻在键盘上的话:“当我面对一个新东西或者特别难的东西时,我敲代码的过程,就是我搞清楚‘我们特么的到底要干什么’的过程。”他写类型,写函数之间的协作草图,玩弄文件夹结构,这些不是在“执行计划”,这些就是在“制定计划”。你要是让他先坐那儿写一个完美无瑕的大需求文档,他能憋疯。
为什么?因为你嘴里说出来的需求和真正能跑起来的代码之间,永远隔着一条马里亚纳海沟。
你说“做一个深色模式”,你脑子里想的是“背景深灰,字白,蓝色链接”。AI理解的是“background-color: #121212; color: #ffffff; a标签默认蓝色”。但它不知道你的深色模式要不要跟着系统主题切换,不知道那些自定义组件怎么适配,不知道已经写死的那些内联样式怎么覆盖。
又比如,你学绘画写生,老师说要注意环境色,环境发射的颜色和光,这个你就很难注意到,结果画出纯色红的红苹果,极其不真实,其实我们的眼睛在感受真实与否有一个暗藏的标准,就看你环境色是否统一,统一说明处于一个特定场景Context,否则就直觉判断不真实,这些都是你通过理智无法觉察的潜意识。
如果你不将这种上下文背景Context知识告诉AI,AI会用自己的“猜测”来填。而它的猜测来源,是它训练数据里那些乱七八糟、质量参差不透的代码片段。最后你拿到的东西,永远比你想要的奇怪那么一点点。你为了修正那一点点奇怪,又要花更多时间去审核、去让AI重写、去烧更多token。
最后你发现,你当初自己花两个小时写的那五十行干净代码,比现在折腾一下午加两千行AI代码要靠谱一万倍。
另一个隐藏风险是:成本依赖和供应链锁死,让开发变成“租用能力”而不是“拥有能力”
聊完了脑子的问题,咱们聊点现实的:钱和命脉。你想想,你家一个高级工程师的月薪是多少?三万?五万?这是个固定数字,对吧?你管他今天心情好不好,效率高不高,你付的钱是一样的。但是AI代理的token费用呢?今天是这个价,明天模型一更新,同样的需求可能要多烧三倍的token才能跑出同样的结果。后天供应商搞个促销,大后天又涨价。你的成本从一个稳定系统变成了一个随机游走的神经病。
Primeagen说过一句特别狠的话:“当你全面采用代理工作流的时候,模型供应商就等于拥有了你。”为啥?因为你的团队已经不会自己写代码了。哪天Claude或者Copilot的服务宕机两个小时,你的整个开发团队就干瞪眼两个小时。这还不是最可怕的,最可怕的是,你的团队已经失去了“没有AI也能干活”的能力。你仔细品品这事儿有多荒谬。你付钱给一个工具,工具让你变强,但同时也让你变得离不开它。这就像一个健身教练,先把你腿打折,然后高价卖你轮椅,最后还告诉你“轮椅是新时代的走路方式”。
这不是理论推导,已经发生了。
上次Claude大范围宕机的时候,LinkedIn上无数帖子在哀嚎“我们团队动不了了”,“整个sprint因为一个外部API挂了全停了”。他们的工作流已经深度绑定在那个特定的AI代理上,自己的编程能力退化到了连一个简单的null pointer异常都要靠AI来修的地步。你猜模型供应商看到这种景象是害怕还是开心?他们当然开心。他们要的就是这个效果——让你从一个拥有独立生存能力的开发者,变成一个需要不断消耗token才能产出价值的“租户”。今天租你的逻辑能力,明天租你的调试能力,后天连你写个for循环都要按字数收费。
其实话说回来,这些知识暂时现象,如果AI变成基建,你就不会成天担心房子倒了轧死自己。
最后真正的分界线:会用AI的人很多,但还能不用AI解决问题的人,会越来越少
让AI当你的副驾驶,别让它替你开整趟车。
怎么做?
第一,用AI帮你生成思路、草稿、调研,但核心的实现部分,你自己手写。哪怕只写百分之二十,这百分之二十就是你的肌肉记忆防退化训练。
第二,你跟AI交流的时候,多用伪代码,少用纯自然语言。伪代码离真实代码更近,AI胡说八道的空间更小,你也能保持手感。
第三,永远不要让AI一次性生成你半小时内审核不完的代码量。如果它给你吐了一大坨,你就自己手撕成小块,一部分一部分地理解、重构、合并。
这相当于让你先学车用手刹,然后手刹和自动刹同时用,这为了安全、谨慎和保守付出的复杂性代价太大,但是话说上去很好听,很中肯,完全是那种为了你好的腔调,其实是智商不够胆子补不了,智勇双缺的表现。
原文结尾引用了fast.ai创始人Jeremy Howard的一句话:“现在全面拥抱AI代理的人,正在确保自己的过时。你如果把所有思考都交给计算机,你就会停止提升技能、停止学习、停止变得更有能力。”
这话说得,好像用AI智能体的人都是傻子,其实AI是一匹自由的马,我们要驾驭它,怎么使用马的缰绳Harness来叫停,又喊重来的节奏,这种战略大智慧,不是普通智商的人能驾驭,智勇双全的马背上民族如古蒙古人,那是通过实力验证的。