书名:Vibe Coding : AI编程时代的认知重构
ISBN:978-7-115-68273-4
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 张昕东
责任编辑 傅道坤
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
Vibe Coding作为一种新兴的编程范式,借助人工智能技术,允许开发者通过自然语言与AI协作,将脑海中的想法轻松转化为代码。它打破了传统编程的壁垒,让编程不再局限于专业人士。如今,Vibe Coding正引领编程领域的新潮流,在全球范围内引发了广泛关注与积极探索,极大地改变了软件开发的格局与效率。
本书以扎实严谨的内容构建专业认知,又以轻松诙谐的笔触消解技术门槛,带领读者深入浅出地触摸Vibe Coding的核心内涵与实践路线。本书共分为3部分:第1部分聚焦基础认知,介绍Vibe Coding的定义、技术原理及常见误解,梳理AI编码的发展历程,并探讨其对行业从业者及编程爱好者的影响;第2部分侧重实践应用,明确Vibe Coding的适用场景与人群特征,界定相关实践所需的核心能力,重点阐述人机协同模式下提升软件交付效率与质量的方法论;第3部分着眼未来演进,基于技术发展规律对Vibe Coding的前景进行理性展望,围绕未来开发范式与人机协作关系展开前瞻性探讨,为读者提供思考框架。
本书适合需快速落地想法的开发者、AI编程实践者及关注前沿技术的行业研究者阅读。
代码,是想法的沉淀,是逻辑的诗篇。自计算机诞生以来,软件开发的历史本质上是一部人机协作范式不断演进、创造力不断被解放的历史——从穿孔纸带到高级语言,从单兵作战到开源协同,每一次飞跃都极大地提升了我们将想象变为现实的效率。今天,代码已经成为物理世界与数字世界的连接器,成为人工智能的双手和执行器,正在产生并持续释放更大的社会价值。
如今,我们正处在一个由人工智能驱动的全新变革奇点。Vibe Coding作为当下在开发者圈层快速走红的概念,生动地捕捉到开发者在这个时代的复杂情绪:既有将想法快速变为现实的兴奋与畅快,也包含着对AI能力边界和工程严谨性的审慎与疑虑。这并非简单的工具更替,而是一场深刻的认知革命,它正在重塑我们与机器的协作方式,重新定义“程序员”这一身份的内涵与边界。
过去20年,数以千万计的中国开发者用代码构筑了数字世界的繁荣。在阿里云,我们有幸服务于这个庞大而充满活力的群体。我们深知,编码是开发者倾注心血最多的环节,而编码产出的代码与系统,更是企业数字资产的核心。因此,我们团队始终致力于AI编码技术的研发,从通义灵码到Qoder,我们的目标不仅是提升编码效率与代码质量,也希望提升每一位开发者的创造性体验与职业幸福感,进而带来整个行业IT生产力的革新。
我们同样清楚,代码编写是一件严肃的工程活动。真正的Vibe Coding并非随心所欲的即兴创作,也不是对软件工程规范的抛弃。恰恰相反,正如昕东在本书中所深入阐述的,真正的Vibe Coding实践者,无一不善于运用上下文工程(Context Engineering)构建与AI的精准对话,将严谨的规划与思考融入每一次交互,让AI成为自己思想的延伸,而不是混乱的替代。他们是在用一种全新的方式,更加优雅、高效地践行着软件工程的本质。
我们为真实世界的软件开发打造AI编码工具,深知其间的挑战与机遇。我们的产品凝聚了阿里巴巴自身复杂企业级软件研发的最佳实践,也融合了服务百万客户的研发效能经验。这一切,都是为了让AI更好地理解真实开发场景的“隐性知识”,成为一名真正可靠的“智能体”搭档。
昕东作为我们AI编码产品Qoder和通义灵码的早期创始成员,拥有难得的双重身份:既是前沿AI编码技术的构建者,也是AI编程范式的深度实践者。从代码生成、代码搜索到智能体研发,他全程身处一线,亲历了技术从理论到产品的完整演进。这份宝贵的经历让他可以跳出单纯的技术视角,对Vibe Coding这一新兴现象进行体系化的审视与思考。
本书就是他交出的一份深度答卷。它没有停留在对现象的表面描述,而是系统性地将Vibe Coding分为三个部分:从“道”的层面澄清Vibe Coding的定义、追溯AI编码历史,帮助读者建立基础认知;到“术”的层面聚焦Vibe Coding的实践,通过详述适用场景、核心能力与人机协同的方法论,指导读者落地应用;最终上升到对Vibe Coding未来发展的展望,探讨编程语言、设计模式、人机关系等前瞻性话题。
昕东用他自然风趣的文笔和专业严谨的洞察力,为我们描绘了一幅AI编程时代的清晰路线图。我相信,无论你是经验丰富的架构师,还是刚刚踏入编程世界的新人,都能从本书中获得宝贵启发。
大语言模型与Vibe Coding正在重新定义开发者的能力和职责边界,未来的开发者,需要有能力驾驭这个时代最先进的生产力。我诚挚地向每一位正在或即将在AI时代乘风破浪的开发者、技术管理者和编程爱好者推荐本书,愿它能成为你在AI编程之路上的实用指南,愿大家在AI时代都有更理想的事业发展和社会贡献。
丁宇(叔同)
阿里巴巴 Qoder & 通义灵码 负责人
我和昕东相识于2018年,是在复旦大学彭鑫老师组织的由中国计算机学会软件工程专业委员会主办的一个专题研讨会上。他当时硕士毕业不久,介绍了阿里巴巴在开源领域所取得的成绩,以及在代码平台开源上的探索。我当时刚从学术界转入企业界的时间也不长,对参加学会活动的企业界人士比较关注,总想着能从他们身上多获悉一些行业一线的动态。
之后,我们再没有当面见过,只偶尔通过微信联系。昕东后来作为创始人之一,打造出了业界颇具影响力的AI辅助开发产品“通义灵码”;我则与同事们一起训练了一系列的代码大模型,还孵化了CodeArts Snap(后改为Doer,内部最早叫“代码精灵”)。这两个产品在2024年都获得了中国信通院的最高等级评估。
不久前他联系我,说写了一本关于Vibe Coding的书,希望我写篇推荐。起初我感觉不合适:一来我对Vibe Coding这个说法有所保留,二来我们分属不同的头部企业,难免有顾虑。但他马上发来了图书的电子稿和其他相关信息。我快速浏览后发现,书中不少核心观点和朱少民老师与我合著的《软件工程3.0:大模型驱动的研发新范式》非常相近,比如都高度认同未来需要人机协同。尤其看到第13章的标题“我们真的希望AI完全和人类一样吗”时,我产生了非常强烈的共鸣:这和几天前我在华为内部三丫坡会议上的发言观点几乎一致。
读完本书,我有如下几方面的感觉。
• 深入的理解。昕东作为哥伦比亚大学毕业的硕士,具有非常扎实的软件工程功底,在代码搜索、代码评审、缺陷定位、缺陷修复、代码生成等软件工程关键技术领域均有深厚造诣,更在ICSE、FSE等国际软件工程顶级会议上发表多篇论文,这在国内企业界并不多见。另外,他对未来的展望有非常深入的思考,竟以4章篇幅持续追问AI的未来,这份深度非常难得。
• 鲜活的语言。书中包含大量有趣的类比,为不同背景的读者的理解提供了便利;平铺直叙的快人快语,更让本书通俗易懂。就像人们读杜甫的诗句,不需要很深入的专业背景,就能理解作者所想。而昕东对古今中外的典故、名言信手拈来,更让读者可通过立体式的类比,反复咀嚼书稿内容,便于吸收理解。
• 笃定的信仰。坦率地讲,对Vibe Coding的解读因人而异,正所谓“1000个人眼中有1000个哈姆雷特”。但在我看来,昕东是以布道师的姿态,将其视作一种信仰来宣传的。从术语的含义与翻译、Vibe与Spec的对比,到从What到How的落地路径,他都掰开揉碎作深入分析。这种执着态度令人动容。
希望打开本书的你,也能收获属于自己的那份独特理解。
王千祥
中国计算机学会软件工程专业委员会副主任
华为公司智能化软件研发首席专家
我从事软件工程研究与实践三十余载,见证了软件开发从结构化、面向对象到服务化、云原生的数次范式变迁。每一次变迁,都深刻地重塑了技术的边界与工程师的价值。然而,没有哪一次变迁能像今天这样,以如此迅猛之势冲击着我们每一个人的认知——这便是由大语言模型(LLM)驱动的AI编程浪潮。
当Copilot的自动补全开始领会我们的意图,ChatGPT能就一个模糊的想法生成完整的代码框架时,一种夹杂着兴奋与焦虑的复杂情绪在开发者社区中弥漫开来。我们既兴奋于生产力的空前解放,也焦虑于自身价值的重新定义:我们赖以自豪的编码技艺,在看似无所不能的AI面前,边界在何方?我们未来的核心竞争力,又将是什么?这已成为整个行业必须直面的“时代之问”。
Vibe Coding,一个新颖甚至略带“反叛”意味的词,直译为“氛围编程”或“凭感觉编程”。初闻其名,我不禁莞尔,甚至略有警觉——在强调严谨、逻辑与规范的软件工程领域,“凭感觉”似乎是“草率”与“不可靠”的代名词。但沉下心细读本书后,我最初的疑虑烟消云散,取而代之的是深深的共鸣与智识上的欣喜。
本书作者并非在鼓吹一种随性所至、缺乏纪律的编码方式。恰恰相反,他敏锐地捕捉到AI时代软件开发的核心特征,并试图构建一套全新的认知框架与方法论。作者指出,Vibe Coding的精髓,不在于开发者“凭感觉”写代码,而在于将开发者最宝贵的、基于经验的“感觉”——对业务的深刻理解、对用户场景的精准直觉、对系统边界的模糊感知——通过高效的人机交互传递给AI,由AI完成繁重的、具体的编码实现。这是开发角色的升维:开发者从代码的“生产者”,转变为代码意图的“导演”与代码质量的“验收官”。
这与我近年来一直倡导的“软件工程3.0”理念不谋而合。我认为,继以V模型为代表的1.0时代和以敏捷/DevOps为代表的2.0时代之后,软件工程正在迈入以“智能化”为核心的3.0时代。在这个新时代,软件开发不再仅是人与机器(编译器、IDE)的交互,而是人、AI与数据三位一体的协同创作。软件本身将具备更强的自适应、自演化能力,而软件开发过程则由AI深度赋能,实现从需求、设计、编码到测试、运维的全链路智能化。本书所揭示的,正是软件工程3.0时代中,“开发”这一核心环节的全新图景。它为我们描绘了开发者如何驾驭AI这个强大的“外部大脑”,将工作重心聚焦于更具创造性的高阶认知活动上。
尤为令我赞赏的是,作者在书中花了大量篇幅,探讨如何为这种看似“感性”的编程方式,注入工程的“理性”与“严谨”,这与我产生了强烈的共鸣。因为近一年来,我一直提倡在大模型时代全面实施测试驱动的开发(TDD),而TDD也可以和Vibe Coding有机地融合起来,即TDD为Vibe Coding这匹思想的骏马配上了“质量”缰绳。
先让AI或我们自己想清楚如何验证待开发软件的功能,这正是TDD的精髓。当我们把各种应用场景,尤其是那些棘手的异常场景、复杂的约束条件,清晰地转化为一个个可执行的测试用例时,这些测试用例本身就构成了提供给LLM的、最精准、最无歧义的“上下文素材”。它们就像一张精密的网,将LLM自由奔放的“创造力”约束在“正确”的框架之内,从而极大提升生成代码的质量、健壮性与可维护性。没有测试护航的Vibe Coding,可能沦为一场华丽的冒险;有了TDD的加持,Vibe Coding则升华为一种优雅、高效且可靠的工程实践——这正是从Vibe(感觉)走向实现(现实)的坚实桥梁。
本书高屋建瓴、结构清晰,从理论认知到实践方法,为我们应对AI编程时代的挑战提供了完整的路线图。它不仅为初入行的开发者指明了学习的方向,也为经验丰富的资深工程师和技术管理者提供了重构知识体系、升级领导力模型的深刻启示。它告诉我们,未来优秀工程师的价值,不再仅体现于能写出多么精巧的代码,更在于能否提出正确问题、清晰定义“完成”标准、构建人机协作的宏观框架。
我相信,本书的出版,将为身处技术浪潮中的我们,带来思想的启迪与行动的指南。软件工程的星辰大海,正因AI的注入而变得前所未有的璀璨。让我们拥抱变化、重塑认知,共同开启这个人机协同、智能共创的软件新时代。
朱少民
《软件工程3.0》 作者、同济大学特聘教授
由大模型开启的人工智能革命正在给软件开发带来全新的范式转换。在大模型诞生之前,程序员主要依靠计算机语言进行软件开发;而ChatGPT将大模型代码生成能力引入该领域之后,软件开发本身也迎来了全新的范式革命——从最初专业开发人员使用AI进行辅助编程(AI Copilot),逐步演进为非专业人士通过自然语言实现的“氛围编程”(Vibe Coding)。Vibe Coding为软件开发领域注入了全新的思潮。
不过,很多传统的软件工程人员起初并不看好氛围编程,甚至将其视作雕虫小技。在他们看来,不懂机器原理、编程语言理论、编译器、算法与架构的非专业人士,只能通过氛围编程做一些“玩具级”应用,很难胜任严肃的大规模企业级软件开发任务。
我觉得面对创新事物,这样一棍子打死的态度是非常危险的。实际上,历史上诸多颠覆式创新,起初往往诞生于边缘领域——那些不被重视甚至被轻视的领域。或许我们需要跳出传统软件工程理论的框架,以更开放的视角看待氛围编程。
我们不妨先回顾一段历史:在1995—2000年左右的互联网早期,Web编程应运而生,其核心便是HTML、JavaScript与CSS。彼时,传统软件工程人员同样看不上这门新兴技术,甚至直言“写标记语言、脚本语言算不上真正的编程”。如今再看,这个说法已然相当荒谬。事实上,随着互联网的突飞猛进,Web编程不仅站稳了脚跟,更创造了人类软件史上“用户量最大、软件数量最多、产业价值最高”的辉煌成就。时至今日,想必没人会否认,Web编程是软件发展史上一项极具里程碑意义的伟大创新。
对于氛围编程,我们同样需要以这样全新的视角来看待。面向对象编程和交互设计的奠基人、施乐PARC研究院的开创者、图灵奖获得者Alan Kay,早在20世纪80年代就有过一个前瞻性预言:“软件未来应该像文档一样可以随时编辑。”这个提法在当时无疑过于超前,受限于彼时的技术条件,终究未能落地。而在技术飞速发展的今天,氛围编程正为实现Alan Kay当年的这一愿景,提供了前所未有的可能。
如今我们使用的软件产品,大多是标准化的成品。简单来说,产品经理定义了产品的功能与形态,用户只能被动接受并按指定方式使用。而氛围编程的出现正在打破这一局限:未来软件厂商可将软件部分模块的扩展权和定义权开放给普通用户,让大家通过氛围编程对软件进行二次加工和个性化定制。得益于自然语言编程的低门槛,人人都可以参与到这样的软件二次创作中。
这不仅会极大降低软件开发的门槛与成本,还能精准响应各种个性化需求——要知道,传统软件开发因成本高昂,曾让无数个性化需求被压抑。氛围编程所生产的软件,或许会呈现“需求即生产,即用即抛”的鲜明特点。这不仅可能会带来颠覆式的软件交付和生产方式变革,更将开启一个全民用自然语言实现软件创造的平权时代。
张昕东老师是AI编程领域极具经验的专业人士,他通过本书对氛围编程展开了与时俱进的深度探索——既分享了扎实的实践经验,也带来了深刻的思维启发。希望大家通过阅读本书,能够全方位提升对氛围编程的认知,共同迎接人工智能时代下全新的软件范式。
李建忠
奇点智能研究院院长、CSDN高级副总裁
张昕东,美国哥伦比亚大学硕士,长期深耕软件工程智能化领域,聚焦代码Agent、代码生成、代码搜索、缺陷定位、修复推荐、代码评审、静态分析、智能测试等核心方向的研究与实践。
他不仅在理论领域成果丰硕——作为浙江大学“求是强鹰”校外导师,拥有20余篇专利及软件著作权,在ICSE、FSE等软件工程国际顶会发表多篇论文,还深度参与《码出高效》 《阿里测试之道》等技术图书的写作;更在产业落地中成绩斐然,曾从0到1打造出国内下载量第一的AI编码产品,始终致力于通过技术创新为开发者提质提效,提升研发幸福感。
对AI编码领域的满腔热忱,驱动着他持续探索技术边界:既希望借助AI编码能力加速创意落地,更致力于将Vibe Coding的时代红利传递给每一位怀揣梦想的实践者。
可通过如下方式与作者联系。

微信公众号“Vibe编码”

小红书“VibeCoder”
“代码明明是手写的,为什么很多程序被称为脚本呢?”
“因为它要RUN起来。”
比较正经的解释是,Script可译为“剧本”,而以前国内把剧本称为“脚本”。一个软件产物(比如网页)就像一场戏曲演出:静态的HTML代码是基础框架,带有解释性的脚本语言则负责动态演绎,共同呈现完整效果。
进入Vibe Coding时代,我们依然追求精彩纷呈的最终软件产物,且渴望更快、更丰富地获得它。在AI的加持下回望开头的问题,我们甚至会不禁发问:代码一定要手写吗?
人类希望更快地实现需求,而需求和产物之间的桥梁,已不再完全是人类手敲的代码——提示词成了新的“代码”,大模型则扮演起“编译器”的角色。这让人类的需求迭代速度有了前所未有的提升,大量独立开发者涌现并取得成功,软件工程也由此迈入3.0时代。但与此同时,也有研究指出,人机协作效率可能会不增反降:大量开发者盲目依赖AI,“一句话需求”正在威胁多年积累的软件工程体系。
Vibe Coding究竟是一剂良药还是一枚毒药?它的过去、现在和未来是怎样的?从业开发者和入门小白应该如何构建自身的软件能力,又该以怎样的心态和方式来接纳它?本书将分享一些个人浅见,希望能为读者带来启发。
讨论Vibe Coding前,得先聊聊人和AI的关系。在此,我想提出一个有趣的“小狗理论”。
2022年大模型热潮来临前,我养了一只可爱的小型犬。经过这3年与小狗和大模型的朝夕相处,我发现大模型的行为太像小狗了,总结下来有以下6个特征。
• 每次交互都遵循马尔可夫链:上下文几乎独立,不记仇但也未必记得开心的事,每次交流仿佛重新开始。
• 及时响应:对人类的请求积极回应,看似唯主人的命令是从,有时却执行不到位。
• 态度友好但死不悔改:始终摇尾示好,犯错后会表现出委屈的样子并“道歉”,但是下次照犯不误。
• 微弱的长期记忆:通过类似“嗅觉”的感观信号和特别信号(如语音指令、拆零食的动作、看到主人穿外出服等)召回相关记忆,刺激并激活神经信号。
• 直觉式生成:如同巴甫洛夫的狗(Pavlov’s dog),条件反射般地快速给出概率最高的回答。
• Agent之间的局限:就像Agent与Agent的交互,狗与狗之间通过嗅闻、吠叫传递信息,沟通效率并不高。
我们在Vibe Coding的过程中,正是要理解和适应大语言模型的能力、缺点与习性,找到将AI这一强有力的拼图嵌入日常的软件开发和需求实现的方法。
本书分为3个部分,总计14章。本书虽按章节有序编排,但各章主题相对独立,均围绕读者关心的核心问题展开讨论。这种编排设计为读者的阅读提供了双重选择:既可按章节顺序通读,系统掌握Vibe Coding的完整知识体系;也能直接挑选感兴趣的主题跳读(Vibe Reading),快速获取针对性内容。无论选择哪种方式,都能高效满足对Vibe Coding的认知需求。
要论AI编码迄今为止的重要时间点,我认为有3个。
• 2023年3月:GitHub Copilot X发布,搭载GPT 4模型,提供强大的代码补全能力和研发问答功能。
• 2024年8月底:Cursor Composer功能发布,配合Claude Sonnet 3.5模型,支持AI自由编辑多个文件。
• 2025年5月:Claude Code工具正式发布,搭载Claude Sonnet 4和Claude Opus 4模型,可连续自主编程7小时,具备最强大的Agent编码能力,推动Vibe Coding逐渐走向现实。
这一部分旨在向读者介绍Vibe Coding的概念、前世今生,澄清网络流传的误会和歧义,帮助读者形成对Vibe Coding的全面认知。
这一部分将分享Vibe Coding的面向人群、所需能力、模型与工具的现有局限,以及如何最大化地发挥AI在编码领域的价值。
我不奢求、也没有资格通过一本纸质书手把手地教会大家Vibe Coding——真正想学习和实践Vibe Coding的读者,也不会选择问道于一本纸质书。如果想要掌握最新的Vibe Coding技巧和方法,建议参考网上最新的技术博客、开源工程,或向真正的Vibe Coding实践者“取经”。
这一部分主要通过一些方法论和经验谈,帮助读者认清Vibe Coding的现实与底层理论基础,做到“知其能也知其不能”,并培养鉴别AI编码工具和模型的能力,从而更好地与AI协同开发,提升生产力。
Vibe Coding方兴未艾,距离人们期望的“AI充分理解人类需求、准确迭代变更、保持架构整洁、快速实现需求”的愿景仍有差距。这中间既有AI模型和工具的局限,也有人类的指令输入与流程控制因素的掣肘,更有人机协同的配合问题。
既然大家都能想象Vibe Coding的终态目标,而AI理解能力与编码能力的高速进步又让这一目标的实现充满信心,这一部分内容便通过对Vibe Coding的未来展望,为读者提供一些思考方向。
写作这类新兴主题的图书,我既兴奋又忐忑。虽然之前也与同事合著过技术图书,但仅参与了部分章节的编写,且涉及的技术主题均较为成熟。此次面向新兴话题,静下心来独立完成本书的写作对我来说是一个极大的挑战。
Vibe Coding的概念非常新,尽管我在AI编码领域有一些研究沉淀,但借助最新的AI编码模型和工具,深度体验Vibe Coding也只有短短数月。如果书中存在观点错误,或有更新的知识与当前认知相左,恳请各位读者海涵。
解缙曾受明成祖朱棣之命编修大典,因急于求成,完工心切,仅用1年时间就上交了初稿《文献大成》,永乐帝阅后不悦,称其“搜罗不广,记载简略”,命其重修。随后,解缙与姚广孝等人召集全国数千人共同编纂,“天下文艺之英,济济乎咸集于京师”,最终于永乐五年成书,朱棣亲笔作序,钦定书名为《永乐大典》。
本书虽然没有《永乐大典》那般浩繁的工作量,但也担心涉猎不足、体验不深,或对软件工程和AI理解不到位而误导读者。在此先叠甲致歉,也欢迎大家通过线上线下交流,分享Vibe Coding的体验和最新知识。
塞缪尔·摩尔斯(Samuel Morse)在1844年发送了第一封电报,电报的内容令人印象深刻:
What hath god wrought!
这是出自《圣经》中的一句话,意思是:上帝创造了何等奇迹!
这句惊叹之词点亮了人类历史长河中的一颗闪亮之星。
人类历史上有众多群星闪耀时刻,如果要谈论软件工程领域最近的一颗新星是什么,我想大概率就是Vibe Coding。
2025年2月,AI届的知名大V、OpenAI联合创始人、前特斯拉AI负责人Andrej Karpathy在社交媒体上首次使用了Vibe Coding一词,如同周杰伦在首张专辑《Jay》中第一首歌的第一个音“Woo~”一般,将人们带入了新的纪元,一种全新的人机协作编程方式横空出世:
开发者通过自然语言与AI(如大语言模型)对话,AI负责生成和优化代码,开发者则专注于描述需求和目标,而不再手写每一行代码或深入底层
实现。
想象一下这样的场景:你在回家的路上,突然有了一个绝妙的想法——做一个能够自动分析冰箱中的食材并推荐菜谱的小应用,并且能够自动计算卡路里。在传统编程时代,这个想法可能会在你的脑海中停留几秒钟,然后被现实的技术门槛无情地扼杀。但在Vibe Coding的时代,你可能只需要拿出手机,对着AI说:“帮我做一个应用,用户可以拍照上传冰箱里的食材,然后自动分析这些食材并推荐合适的菜谱,包括制作步骤和营养信息。”
几分钟后回到家,你便可以打开AI帮你生成的这款应用,开始参照烹饪。这不是科幻小说,而是Vibe Coding的现实。
当然,上面举的例子现在还没有成为现实。现在,AI Coding的能力和配套的部署运维能力还没有完全达到这种理想程度,我们可以先大概定义一下氛围的阶段。
1. 编码氛围开发者在编码过程中,在知道如何设计代码架构、部署运维的前提下,借助AI Coding的能力大幅缩短编码时间,提高编码效率和代码质量。
2. 应用氛围开发者在开发应用的过程中,只需提出应用的功能、目的、交互逻辑和使用细节,仅需以极低的程度干预(如资源采购或设计微调),即可依托AI Agent的能力得到一款线上稳定运行的应用。
3. 需求氛围开发者在实现需求的过程中,无须关心平台、部署运维、软件适配性、前后端逻辑、数据链路等细节信息,只需提出需求交由AI实现。如果需求过于简单,导致AI实现偏离预期,也可以直接从需求描述层面纠偏,直至完全实现软件类需求。
很明显,我们目前还处于“编码氛围”和“应用氛围”阶段之间,但是相较于几年前的“古法”编程已经有了划时代的进步,最近两年刚接触编程的新朋友已经成为AI 编码时代的“原住民”。

下面,我们来看看Vibe Coding和传统编程的本质区别是什么。
Vibe Coding是传统编码的进一步抽象,这种抽象的影响贯穿底层实现至DevOps全流程,为编码体验带来全新的视角。
1. 传统编程的“仪式感”让我们先回到传统编程的世界,每一个程序员都记得自己第一次写“Hello World”的经历:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}这是使用Java语言编写的一段经典的Hello World程序。对于这段代码,我们需要理解什么是类定义,什么是方法定义,public、protected、private的可见范围,static指的是什么静态,main方法的入参为什么是这个字符串数组……甚至还要关心为什么每句代码需要用分号来收尾。
在学生还没有完全吸收语法含义的情况下,老师一般会往下教,指导大家下载JDK,配置环境,然后用javac编译,再用java命令运行这个Hello World程序。
这是一段不堪回首的经历,我不知道那天课堂上其他零基础的同学是用什么方式“背诵”全文的,我当时反正是路易十六上刑场——摸不着头脑。
每种语言都有自己独特的精巧设计,每种语法也都有存在的必要逻辑,但是这些日后或许会熟悉的编码“仪式感”着实消磨了初学者的兴趣,挫败了锐气。
有意思的是,James Gosling(Java之父)称Java为“蓝领语言”(Blue Collar Language),以此来表达它很简单,可见开发者对简洁的追求是无止境的。Java在随后的JDK 22到JDK 25的版本迭代中也在尽力简化简单程序的语法,比如上面那段Hello World可以简化地写为:
void main() {
System.out.println("Hello, World!");
}如果你想开发一个完整的Web应用,你大概率需要完全掌握:
• 前端技术(HTML、CSS、JavaScript);
• 后端技术(Python、Java、Node.js、Golang等);
• 数据库知识(SQL、NoSQL);
• 服务器部署(云服务、域名、SSL证书);
• 版本控制(Git);
• 测试和调试技巧。
如此陡峭的学习曲线,如此延迟的正反馈满足感,引无数初学者折腰,将诸多创意灵感拒之门外。
2. Vibe Coding的“去仪式化”Vibe Coding的出现彻底颠覆了这一切,它的核心理念是“完全沉浸于氛围中,拥抱指数级增长,甚至忘记代码的存在”。
在Vibe Coding的世界里,编程变成了你与AI之间的一场对话:
你:“我想要一个能够追踪我每日饮水量的应用,当我饮水量不足时会提醒我。”
AI:“好的,我来为你创建一个饮水量追踪应用。它会包括:
● 让你记录饮水量的简洁界面;
● 个性化的每日目标设置;
● 智能提醒功能;
● 每周统计报告;
● 用于鼓励你多喝水的可爱的动画效果。
让我开始编写代码……”
几分钟后,一个完整的应用诞生了——包括前端界面、后端逻辑、数据存储,甚至还有推送通知功能。
Vibe Coding的本质是剥离了一些“繁文缛节”和“重复机械的工序”,让人们更加专注于需求本身。
Vibe这个词来自vibration(振动),在现代语境中指的是一种感觉、氛围或直觉。在如今的编程语境中,Vibe Coding强调的是:
• 直觉驱动——你不需要精确地描述每一个技术细节,只需要表达你想要的“感觉”;
• 快速迭代——通过不断地对话和调整来完善应用;
• 结果导向——关注最终效果而非实现过程;
• 创意优先——让想法的表达不受技术限制。
从How到What的转变传统编程关注的是How(如何实现),比如:
• 如何实现某个功能?
• 如何设计数据库结构?
• 如何处理用户输入验证?
• 如何接入外部SDK?
• 如何处理错误情况?
而Vibe Coding关注的是What(想要什么),比如:
• 我想要一个什么样的用户体验?
• 这个应用应该解决什么问题?
• 用户在关键场景下会产生什么感受?
• 成功上线的标准是什么?
这种转变的意义是深远的。它让编程从一门技术变成了一种表达方式——就像从钻研复杂的印刷术,到轻松使用文字处理器:想要创作发表一篇文章,谁还会像几百年前的古人一样,大费周章地去寻找字模,铺板印刷呢?
Vibe的本质是AI对编码领域的强大赋能,它解放了开发者和创意拥有者的生产力,让用编程创造价值这件事,多了一份沉浸其中的氛围感。但要注意的是,现阶段的氛围编程不是在轻松而无知的氛围中随意编程,而是在有想法和编程基础的前提下享受沉浸加速的氛围感。本书后续章节会结合近几年的AI编码的进化史,以及软件工程和编程语言的演进脉络,为大家进一步介绍Vibe Coding的来龙去脉。
Vibe Coding常遭世人误解,这不仅会让它本身饱受非议,更严重的是,会让本来能体验它的人望而却步,让刚入门的新人走了弯路。比较常见的误解莫过于“Vibe Coding能用一句话开发整个应用”。
下面我们就来澄清一下关于Vibe的误解。
Vibe毕竟是个舶来词,要强行音译的话,我很担心被人翻译成“外包”,这就远远偏离了Vibe所要表达的意境。
Vibe这个新兴词汇听起来很有潮流感,就像“我在上海这座city,点了杯dirty,在tech salon里vibe coding,氛围chill”这样的表达,把Vibe Coding放进去竟毫无违和感。当然,这种中英夹杂、略带刻意的表达难免会让一些人反感——Vibe Coding也绝不是为追求潮流、蹭热度而造出来的新词。
诚然,使用最新的AI编程工具快速把想法落地时,那种成就感确实让人忍不住想分享。但对技术人和从业者来说,大家的共识很清晰:想让Vibe Coding成为新一代开发范式,成为软件3.0的标志;通过提升Coding Agent的能力,让更多热爱编程的人参与进来,让更多的新奇想法真正落地。
如前文所述,Vibe源于vibration这个单词,形象地表述则是AI的编程能力能够跟上或者超越与它协作的开发者,开发者为之触动。因此,Vibe更偏向描述一种主观感觉和状态。如果用一个词来定义Vibe的终极形态,我认为是resonance(共振):AI能力的提升带动人类编程能力迭代,人类通过转变观念来适应AI,人机协作由此迈向新的境界。
很多人对真正的Vibe Coding存在误解:有人觉得只要和AI协作就是Vibe Coding;有人认为自己只提需求,然后放手让AI完成就是Vibe Coding;还有人觉得让AI独立完成任务是不负责任的,只有在自己编写代码时AI能帮忙补全才是Vibe Coding。
下面举几个例子,大家不妨自己判断:这些算不算Vibe Coding?
• 2023年,利用AI大模型的行级补全能力,加速代码的编写。
• 2024年,用上下文窗口为32 K的大模型[1]构建Agentic DevOps,给它一个明确的需求让它做。
[1] 在多数技术与数据相关的场景中,K、M、G均为表示数量级的前缀,其中K对应“千”(kilo)、M对应“百万”(million)、G对应“十亿”(giga)。在这里的语境中,“用上下文窗口为32 K的大模型”,实际指“用上下文窗口为32×1024(即3.2万)个token的大模型”。考虑到行业内普遍以K、M、G作为量级表述惯例,为贴合业内人士的阅读习惯,避免理解偏差,后文将统一保留K、M(及G,若涉及)的表述方式。
• 2025年,给成熟的Vibe Coding平台甩一句需求,让它生成能分享的应用。
严格来讲,这些都算不上真正的Vibe Coding。2023年的AI能力过于薄弱,支撑不起Vibe状态,条件不允许;2024年的Agentic DevOps虽然构想美好、心态够Vibe,但是过于超前于模型的应用架构,实用性不强,无法支撑起可以落地的产品;2025年AI虽然有了强大的大型仓库理解和开发能力,也有了一批成熟的Vibe Coding平台提供助力,但一句需求就想成事终究不可取——即使最终生成了应用,也不过是玩具,还白白浪费算力。
我本是男儿郎,又不是女娇娥。
电影《霸王别姬》中的程蝶衣琢磨了一辈子,才凭着自己的苦练痴魔和时代的进程成就了真虞姬。Vibe Coding也是一样,AI的能力提升与开发者的协同心态缺一不可:
• AI编码大模型能理解大型仓库,且具备完整编写、构建大中型应用的能力;
• 开发者能充分理解大模型的能力边界,最大限度地利用AI能力帮助自己快速落地实现。
我们要做的就是深度投身到AI协同的编程中来:以需求高质量、高速度落地为核心目标,充分体验并摸清全球顶尖代码模型的能力边界,选对用好适合自己的AI编码工具,践行最前沿的上下文工程理念,转变思路,突破全栈。
Spec源于specification,指的是“规范”,这个词正式进入大众的视野与Vibe一同被热议,是在2025年7月Amazon发布Kiro IDE产品后。该产品将Vibe和Spec定义为两种开发模式:
• Vibe表示“沟通即开发”,即自由快速地通过实践来探索想法,通过持续提出新需求来迭代产品;
• Spec表示“先计划后开发”,即通过编写严格的需求文档、设计文档并确认步骤制定计划,然后再启动编码步骤。
上面的定义区分,其实是从Vibe的内涵中为Spec划分出一块专属空间。实际上,Vibe本身的含义很宽泛,其核心是充分利用AI Agent的能力加速需求的迭代落地。要知道,此前所有实践Vibe Coding的开发者,从没有把规范丢到一边——越是专业的Vibe Coding实践者,越会通过构建工程规则、设置工作流记忆偏好、使用上下文工程的规范框架、编写完整的原始诉求和PRD(产品需求文档),或是启用AI编码工具内置的计划模式(Plan Mode),通过先计划后执行(Plan & Act)的模式更加确定性地和AI共创应用。
所谓的越自律越自由,想要更加智能化、快速化地实现开发目标,就越需要规范和文档来约束AI的不确定性。传奇音乐制作人Rick Rubin曾联合顶级代码模型厂商Anthropic发布过一本名为The Way of Code(编码之道)的电子书,书中借鉴老子《道德经》的辩证思维,化用其经典表述来描述Vibe Coding的创作意境。
Being and non-being create each other.
Simple and complex define each other.
Long and short determine each other.
High and low distinguish each other.
Front-end and back-end follow each other.
翻译过来就是:
有无相生
简繁相成
长短相较
高低相辩
前后端相随
Vibe Coding的技术既技术又哲学,AI编码从最初的Prompt Engineering(提示词工程)到现在定义更广的Context Engineering(上下文工程),持续不变的是对规范的执着,对研发流程的敬畏,对控制熵增的追求。
虽然大多数人并不需要理解原理便能享受科技发展的成果,就像街上99%的司机不懂内燃机的原理,依然可以开好车一样。但是眼下的Vibe Coding还没有达到人人只需简单学习就能轻松上手,做出生产级应用的程度。这就像20世纪90年代的司机,总得大致了解内燃机的作用、前驱后驱的区别、踩离合/油门/刹车时内部大概发生了什么,才能把车开得更顺。同理,简单了解Vibe Coding背后的原理,既能让编码过程更可控、更顺手,也能知道AI的能力边界。
大语言模型的能力已经被大众所熟知,在编码场景下,又有哪些定制化的特殊能力呢?
1. 大语言模型的代码理解能力如今,大语言模型的训练,特别是代码专属模型的训练,已经不满足于开源数据集。2023年到2024年间,符合开源协议使用条件的开源数据集已被模型训练充分利用。当时,业界的做法是通过语法解析和程序分析手段对这些代码内容做质量筛选、搞仓库级语法理解、建跨文件索引关联,加深模型对现有数据的结构化理解。
说个有意思的现象:大家现在很容易一眼就看出哪些网页是AI生成的。Tailwind公司的工程师Adam还幽默地出来“道歉”,说5年前他将Tailwind UI中的每个按钮颜色都设置成了bg-indigo-500,导致现在全球每个AI生成的UI的按钮都带有那抹靛蓝色。
到了2024年下半年,各模型厂商都意识到数据生成、数据质量和数据版本的重要性,于是深化了对Vibe Coding技术栈所需语言和框架代码的适配,改写甚至重新生成了原本低质量的训练数据,还模拟了代码运行环境和测试用例,最终提高了模型的综合编码能力。
更重要的是,大语言模型的上下文窗口已突破128 K,现在主流的编码大模型更是达到200 K甚至更大。128 K可以说是Agentic Coding的门槛,一行代码大约10个token,1000个token大概就是100行代码,一次比较完整的Agent运行请求需要调取多个代码文件片段,初始请求一般为12 K左右,一次Agent的运行平均调用模型5~10次,在这个过程中还会调用工具、阅读和生成大量内容,全程下来大约需要30 K~80 K的上下文。因此,如果使用以前的64K或32K上下文窗口的模型是很难支撑Agentic Coding的。
而正是依托当前这些先进的拥有大上下文窗口的代码大语言模型,才能支撑AI Agent通过仓库级理解、多文件修改来实现复杂需求,让Vibe Coding的流畅体验成为可能。
2. 大语言模型的推理能力输出的质量是基础。讲个反直觉的事实,在2024年上半年时,大多数模型很难保证输出格式的正确性。比如,用户想要让模型输出JSON格式,但是大模型经常因缺少符号而导致解析失败。这在工具调用过程中是非常致命的,Agent流程中只要任一环节有5%的出错率,那么整体失败率就会高达50%以上(一轮Agent一般要调用模型10次左右)。当时也只能依靠干预推理过程、增加后处理机制,或者干脆识别错误并重试来人为解决格式问题。
如今,格式问题已基本解决,大模型对指令的遵循能力也大幅提升。格式遵循恰是观察大语言模型能力的一个不错的窗口:一屋不扫何以扫天下,连JSON都写不规范,又怎能写好代码?从Claude Sonnet 3.5开始,AI 编码模型才算真正达到生产可用标准。
生成的速度是关键。天下武功,唯快不破。对于代码输出来说,虽然准确性是第一位的,但是速度依然很关键。一般模型的输出token上限为8192个,若要在3分钟内打满这个额度,至少需要45 tps的速度(tps表示每秒输出的token数)。
经长期实践验证,20 tps的模型输出速度会给人带来明显的迟滞感,60 tps可满足高效需求。当速度达到40 tps及以上时,开发者对于模型速度的感知差异趋于弱化,这大致相当于每秒生成5行代码的效率。
对于Diff Apply(即代码改动应用,指的是将生成的代码和解决方案整合到原始代码中)的过程,其对速度的要求就更高了。该过程通常采用search-replace(搜索替换)或投机解码的方式实现,完整文件的应用速度需达到
1000 tps以上,也就是处理一个1000行代码的文件,耗时需控制在10 s以内。
此外,成本也是不可忽视的因素。解决了质量和速度问题后,成本就成了关键考量。目前,大多数的旗舰模型都启用了提示词缓存(Prompt Caching),这种方式的推理成本是之前的1/10左右,特别是对于Agent来说,若前序输入固定不变,可充分利用缓存机制来大幅降低成本,使得Agentic Coding更加普惠。
质量、速度、成本这三大支柱,外加大语言模型的推理能力,共同为Vibe Coding铺平了道路。
模型并不是万能的,应该也很少有人拿着裸模(即原始模型)通过对话的方式来辅助编程。我们不妨看看应用层做了哪些功能,能帮助我们更好地借助模型完成编码任务。
1. 工程索引在线与离线的语法解析、跨文件解析,早在大模型问世之前就已被各类软件工程生产力工具采用。如今,经索引召回的代码与文档已成为AI编程的重要上下文。
另外,以DeepWiki等工具为代表的工程描述文档,既是大模型推理的关键依据,也是人类理解新工程的窗口。
除了这些静态的、提前索引好的内容,主流的AI IDE还会捕捉用户的操作行为,将用户正在阅读编辑的区域、编辑器打开历史、最近改动内容等,也纳入追踪并作为重要输入。
虽然RAG(检索增强生成)的讨论热度渐趋平息,但是代码领域的检索增强始终在持续演进,其技术手段也正从传统的正文或向量检索,逐步向基于LLM理解的索引召回方向发展。存储介质涵盖关系型数据库、向量数据库、图数据库,存储区域则包含本地存储和远端存储。在当前效果优先的背景下,混合工程索引已被众多AI编码工具采用。而能否强化代码结构和文件间的关联性,在相同上下文的情况下提升提示词的信息密度,正是拉开AI编码应用能力差距的关键。
强大的代码工程索引技术、快速准确的上下文召回,在幕后为Vibe Coding的效果筑牢了根基。
2. 记忆系统随着Agent模式的深度开发和用户的广泛接受,AI在长期编辑中的一致性保障以及短期历史的压缩,已成为亟待解决的问题,记忆系统应运
而生。
记忆分为短期记忆和长期记忆:短期记忆目前仍侧重当轮会话内容的总结和压缩;长期记忆则包含个人全局记忆、工程全局记忆和项目记忆,与工程索引存在一定的重叠之处。
学术界和工业界正在尝试借鉴操作系统的内存管理方法,结合类人记忆的遗忘和加强算法,对记忆进行动态管理以组织上下文,并且结合文件系统和版本管理系统让记忆管理更加完善。与此同时,记忆领域仍然面临若干难题,比如记忆质量的评估、分类、干扰问题,以及不同分支、不同版本的记忆管理与复用。
总之,Vibe Coding通过结合先进的自然语言处理技术和记忆系统,构建了更强大的上下文组织系统,有效提升了连续对话和长间隔对话的一致性。
3. 代码修改代码修改并不是单纯的大模型推理生成问题,而是要将模型生成的解决方案应用到原有的代码中。
最早的代码应用逻辑是依靠语法分析、变量替换加规则缩进来实现的,那是个茹毛饮血的原始阶段,暂且不表。由于当时大模型对行号的理解始终是个难题,生成git diff格式再apply(应用到原文)的思路很难完全落地。
后来,Cursor首创的基于投机解码技术的高速apply逻辑,让代码生成和原文修改成为了很自然的过程,即先用大模型生成解决方案描述,对不改动的代码使用# ...existing code...之类的注释来标记,然后训练一个小模型进行处理。apply的过程是先用小模型基于代码原文和解决方案来快速推理(如用N-gram算法或者是直接整行复制),然后再用一个稍大的模型快速验证,生成和验证同步进行,全文的生成速度可达1000 tps以上。
再往后,大家发现search-replace技术已趋成熟,并且对于大文件小改动的场景非常友好,大量的模型能力评测也采用了这种方法,大模型通过训练对这种代码应用方式的掌握也更精进。
基于大模型的代码修改是AI编码和AI Agent的基础,是Vibe Coding得以实现的基石,让Coding Agent能够持续演进代码内容。
4. 工具使用现在,随着大模型编码能力的提升,其指令遵循和工具使用的能力也在增强。大模型发展初期就已具备工具定义与使用功能,部分高级用户还将Python脚本包装为本地工具供大模型调用。但是受限于大模型的训练方式,实际的指令遵循力度和工具能力都很有限。
除了工具调用,新出现的MCP以及正在兴起的ANP、A2A协议,为Agent赋予了更强大的能力来完成复杂需求,也让更多赛道上的选手通过MCP融入Vibe Coding技术栈中,比如Figma MCP、Supabase MCP等。
如今,新研发的大模型均针对Agent场景进行原生训练,强化了工具使用的能力,并且还有大量的评测集用于评估模型的工具使用水平。模型和应用协同发力,持续拓宽AI编码的边界;更重要的是,很多Agent自身也作为工具被使用,比如Gemini CLI的非交互式模式可作为需求分析环节,嵌入其他的Agent流程中。
这种工具集成和被集成的能力,让整个Vibe生态愈发繁荣。
理解了Vibe的定义本质和原理后,接下来我会从一些有趣的话题切入,向大家介绍Vibe Coding的由来、用法和展望。
我不会手把手地说教,比如指导读者怎么配置项目、如何开始Vibe Coding,因为这些内容更新迭代太快,实在没必要沉淀到纸质书中耗费资源。想要了解这些的读者,不妨去GitHub或其他Vibe Coding分享社区看看,也可以购买体验最新的编码工具和模型,开启属于你的Vibe工程。
我希望用轻松幽默的文字与想要接触或正在实践Vibe Coding的读者聊聊Vibe和Coding的感受,主观地回应部分从业者的焦虑,并分享一些我认为有用的理念和技巧。也许在工期不紧时,在想要了解AI编码时,在AI生成代码的间隙,你能翻开本书读上几页,并有一些小小的收获。