思考,输出,沉淀。用通俗的语言陈述技术,让自己和他人都有所收获。
作者:毅航😜
或许你最近时常会刷到这样一些视频,说程序员很快就要被AI取代了,这次的理由是Vibe Coding要来了。
好气啊!
那我当初埋头学习编程算什么?算我倒霉吗?凭什么现在AI圈随便发明一个新名词就能比我更会当牛马?
同为牛马,如同共踏一路,浪潮一至,先淘汰、后淘汰,谁都无从幸免。难道真的要搞得鱼死网破吗?
作为一个马上就要被淘汰的牛马,今天咱们就扒一扒,AI到底是怎么写程序的,所谓的Vibe Coding又到底是什么玩意儿。
一: 大语言模型的"本质"
事实上,不管多厉害的大语言模型,本质上就是个 聊天机器人 。
你发消息,它回消息。仅此而已。
因此,如果想让AI帮忙写代码,一开始只能先把代码复制进去,等AI回复完成后,再把回复粘贴出来调试。
来来回回,纯体力活。
大模型它不知道你项目里有什么,不知道你改了什么,不知道报错从哪来。
这种情况下让 AI 写代码,你让它写代码,就像让一个盲人画地图。它只能靠你口头描述,但描述永远不完整。
再强大的大模型,本质上也只是一个纯对话聊天机器人。除了回复我们发的消息,啥也干不了。
二: AI Agent给AI装上眼睛和手
面对这样的体力活,聪明的程序员肯定是不愿意接受的。于是聪明的程序员想了个办法: 在AI和代码之间,加一个中间层AI Agent进行代理。
所谓的AI Agent其实本质就是一个运行在本地的小程序。具体到编程的场景,为了让它能搞定编程,我们会提前给它写好一系列函数,比如:
read_file------读取文件write_file------写入文件list_file------列出目录
之后,AI Agent会把这些函数的名称、用法,连同我们的提示词打包发给大语言模型,模型看完就会回复一条消息,告诉Agent你调用这个函数,传这个参数",这样就能间接完成文件修改的操作了。
比如,在VS Code里,那些AI编程插件,本质上就是AI Agent。其借助VS Code提供的接口,获得读写代码的能力。
更进一步,有些AI编程插件默认不仅能读写本地文件,还能浏览网页、执行终端命令,有了这些能力,AI才算真正能动手改代码。
三: DIFF格式:让AI精准"动刀"
现在我们已经解决了AI读取文件的问题,那AI拿到文件后,它到底怎么改呢?其中,最直接的办法,就是让AI生成一份改完后的完整代码。
问题来了,哪怕你只改一个标点,AI也得从头到尾生成一遍。不仅效率低、而且浪费Token。
更重要的是,文件一长,它很难100%还原原内容,而且分分钟引入新Bug。
所以绝大多数AI编程工具,都会让大模型以DIFF格式回复修改内容。
简单说,DIFF格式会明确描述: "哪个文件的第几行,需要替换成什么新内容" 。
这种格式其实很古老,像Git、SVN这类版本控制工具早就一直在用,对应的算法也非常成熟。
而大语言模型训练时,收录了整个互联网的文本,其中就包含大量DIFF格式内容,所以它生成的回复也更靠谱。
当然,大语言模型再聪明,回复也不是100%准确。所以AI Agent收到DIFF后,会先检查里面引用的原始代码,和当前本地文件是否一致。
如果不一致,说明模型理解错了上下文,就会重试一次,这样就能尽可能保证,模型修改的是我们正在编辑的文件。
四: AI强大的自学能力
到这一步,我们总算有了一个相对稳定靠谱的AI编程工具。
但人们很快发现,AI其实挺笨的,经常犯一些低级错误:比如VS Code都已经高亮标出语法错误了,AI还得改来改去好几回才能改对;又或者它想修改的文件,根本就不存在。
于是聪明的程序员又动了脑筋,想到把IDE里的各种信息,也一并发给大模型不就行了?
于是现在大多数AI编程工具,除了读写文件,还会主动收集上下文:
- 当前项目的文件结构
- 用户正在查看的文件
- 命令行输出的报错内容
- 有时候甚至当前时间都带上
对AI而言,信息越丰富,AI越能理解"现场"。这样它看到的东西,几乎和程序员一模一样,编程过程自然流畅多了。
五,AI编码的最后一公里
这时候,程序员们终于成功造出了一个能自己写程序的AI工具。
对普通大众而言,不会写代码的普通人,只要输入提示词,就能让AI吭哧吭哧把程序搭出来。
听起来,我们好像真的要被取代了?当然没这么简单。
但要知道,程序在本地跑通只是第一步,上线部署、前端配置、后台服务、建立数据库,哪一项不是麻烦事儿?
这些活儿,AI编程机器人根本干不了。
于是为了实现"被AI取代"的"梦想",于是MCP登场了。
你可以把MCP理解成机器人的插件系统,就像给浏览器装扩展程序一样,MCP能让AI编程机器人安装新的"技能包",去操作那些它原本不懂的事。比如,操作云服务器、部署网站、配置数据库等等。
现在越来越多的云平台,都推出了自己的MCP Server,专门用来接入编程机器人,帮AI编程它完成Vibe Coding最后一步部署。
六:完美背后的"陷阱"
现在听上去是不是很完美?我只需要输入我的想法,就能让AI帮助我进行实现。
但有个关键点,可能很多人都忽略了。我们让AI帮忙部署网站、创建数据库,用的是管理员权限;可网站上线后,本身也需要访问这些资源,比如,读写数据库,这时候AI助手已经"退场"了,所有操作都得靠网站自身的代码实现。
但问题来了,每个云平台的API千差万别,AI不可能写出在所有平台都通用的代码。
所以一开始,就得告诉AI:"这个程序要部署在哪个平台,用对应的接口写。
更麻烦的是,有些云服务是在AI模型训练完成后才发布的,AI根本不知道这些服务的存在。
这时候我们就不得不手动告诉它:这个平台有哪些服务、怎么调用、用什么库、有什么依赖。
为了争抢AI市场,当下大部分云平台通常还会提供一套完整的工程模板。
这个模板会提前导入访问云服务所需的库,配置好必要的配置文件,最关键的是,它给AI编程机器人配好了专属提示词。
在里面清清楚楚写着代码该长什么样、怎么访问数据、怎么部署,甚至怎么读线上文档。
这些提示词会在写代码的过程中,自动和用户的prompt一起发给AI模型,这样AI就知道该怎么生成适配云服务的代码了。
七:总结
至此,我们再把整个流程串起来看:
第一步 ,你打开云服务的工程模板,对编程机器人说"帮我写一个网站"。
第二步 ,机器人自动收集IDE里的各种信息:文件结构、当前报错、已打开的文件、命令行内容。同时读取工程模板自带的提示词,把用户需求、模板提示词、环境信息打包发给AI模型。
第三步 ,AI模型根据提示词,知道要部署在哪个云平台,选用对应接口写代码,以DIFF格式返回。
第四步 ,机器人验证DIFF和本地文件是否匹配,不匹配就重试,匹配就应用修改。这个过程可能来回好几轮,直到网站在本地正常运行。
第五步 ,你说"上线"。因为配置好了云服务的MCP,机器人把MCP函数一并发给AI模型,引导它调用MCP服务,完成部署、建库、配置域名。
就这样,一个完整的"编码→部署"开发流程,被AI自动跑完了。
至少对于简单项目,真正实现了"零基础写代码"。这种让AI心领神会、一气呵成的体验------也许就是大家所说的Vibe Coding吧。
程序员"成功"把自己取代了,还学会了Vibe Coding这个新名词,真是"可喜可贺"。
但程序员真的被取代了吗?我们花了这么久,终于打造出一个足够聪明的工具。
我们拆解自己的技能,打包成提示词;甚至把部署流程都教会了AI,无非是简化自己重复性的工作。
如果说程序是人意志的延伸,那么今天的AI编程,不是让人退出开发过程,而是 把人送回真正的起点。
回到那个有想法、愿意创造的自己。
就像当初那个灵光一闪,第一次想到"让AI通过Agent自己写代码"的程序员一样。
程序员被取代了吗?也许吧。
但它取代的,只是我们敲键盘的手。而不是写下第一个想法的心。