这是用户在 2025-7-8 21:20 为 https://app.immersivetranslate.com/pdf-pro/91153f5f-74e1-4cd7-888c-f442e916faa9/ 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?

氛围编码:通过与人工智能对话进行编程

Advait Sarkar剑桥大学伦敦大学学院英国advait.sarkar@cl.cam.ac.uk

Ian Drosos微软研究院英国t-iandrosos@microsoft.com

摘要

我们研究了“氛围编码”(vibe coding),这是一种新兴的编程范式,开发者主要通过与代码生成大型语言模型交互来编写代码,而不是直接编写代码。我们分析了一组精选视频,这些视频展示了长时间的氛围编码过程,并包含丰富的边思考边讲解的内容。通过框架分析,我们探讨了程序员的目标、工作流程、提示技术、调试方法以及遇到的挑战。我们发现,氛围编码遵循迭代的目标满足循环,开发者在提示 AI、通过快速扫描和应用测试评估生成代码、以及手动编辑之间交替进行。提示策略融合了模糊的高层指令和详细的技术规范。调试仍然是结合 AI 辅助与手动操作的混合过程。关键是,氛围编码并未消除编程专业知识的需求,而是将其重新分配到上下文管理、快速代码评估以及决定何时在 AI 驱动和手动代码操作之间切换的任务上。 在 vibe 编码过程中,对人工智能工具的信任是动态且具有情境性的,通过反复验证而非盲目接受来建立。vibe 编码是人工智能辅助编程的一种演进,代表了“物质脱离”的早期表现形式,实践者通过人工智能调控代码的生成和操作,同时保持选择性和策略性的监督。

1. 引言与背景

2025 年 2 月 2 日,著名计算机科学家 Andrej Karpathy 在 Twitter/X 上发布了关于“vibe 编码”概念的描述(Karpathy,2025):“我称之为‘vibe 编码’的一种新型编码方式,在这种方式下你……甚至会忘记代码的存在。……我几乎不碰键盘。……我总是‘全部接受’,不再阅读差异。当出现错误信息时,我只是复制粘贴它们,通常这样就能解决问题。代码超出了我平常的理解范围,……但这其实不是真正的编码——我只是看东西,说东西,运行东西,复制粘贴东西,而且大多数时候都能奏效。”
这种被称为 Karpathy 规范的新型编程风格描述产生了重大影响。除了引发讨论外,它还推动了“vibe coding”一词的采用,用以描述一种理想化的编程风格,该风格涉及使用具有代理能力的代码生成语言模型工具,如 Cursor、GitHub Copilot 代理模式、Windsurf、Bolt 等。从上述摘录来看,vibe coding 的核心理念似乎是脱离直接操作代码(编写、编辑、阅读等),而是基于对 vibe coder 意图的自然语言(最好是口述)描述,信任代理工具能够足够可靠地执行这些操作以供实际使用。
理想化的编程哲学由某位有影响力的人物提出,这一概念在编程实践中颇为常见。此前的例子包括由 Knuth(1992 年)提出的“文献化编程”,以及由 Weinberg(1971 年)提出的“无我编程”。或许 Karpathy 经典著作中最新颖的方面是其简洁性。文献化编程和无我编程各自都有一本书长的论述,而 Karpathy 经典仅是一条 185 字的推文。
此类哲学理念提出后,通常会引发程序员社区的集体动员,去理解、调整并采纳(或抵制)这种新的工作方式。对一些人来说,Karpathy 经典不过是为他们已经在实践的做法提供了一个方便的标签。对于
对其他人来说,这个术语是对一种新工作方式的介绍,但其中有无数未解答的问题,需要通过个人实践逐案协商解决。如果我偶尔手动编辑代码,这仍然算是 vibe coding 吗?如果我使用键盘而不是语音输入,这还是 vibe coding 吗?如果我使用非智能代理工具,这算 vibe coding 吗?vibe coding 的精神是什么,它与字面意义有何不同?
一个社区通过不断发展的实践和话语来解决这些问题并阐述 vibe coding 概念的方式,是一个社会学问题,本文不打算探讨。我们提出这一点,是为了强调尽管 vibe coding 围绕 Karpathy 经典作品形成,但它是一种新兴现象,其属性在本文撰写时仍在不断协商中。
因此,为了将 vibe 编码作为研究对象,我们采用的唯一标准是连接程序员在进行 vibe 编码或尝试 vibe 编码时所从事的各种不同活动,即程序员自我描述其活动为 vibe 编码。这可能导致漏判;我们可能会排除那些从外部观察者角度看符合 vibe 编码标准,但程序员本人并未明确认定为 vibe 编码的活动。但鉴于对编程社区在对 vibe 编码这类概念边界进行广泛实验和协商所需的认识和理解,我们不愿将任何自我认定为 vibe 编码的过程归类为“误判”,因为那将意味着我们作为研究者,强加了一个实际上并不存在的 vibe 编码规范。
作为一种新兴的编程实践和社会学现象,vibe coding 本质上值得深入探讨,因为它再次促使我们重新审视编程研究中人因学的长期问题,例如专业知识在编程中的作用、程序员的能动性与控制权等,就像早期使用 GitHub Copilot 等新一代代码生成语言模型工具时对编程新性质的描述一样(Sarkar 等,2022a;Lee 等,2024;Barke 等,2023;Vaithilingam 等,2022)。
此外,可以说编程实践是煤矿中的金丝雀,某种程度上预示着生成式人工智能如何更广泛地影响知识工作的实践。程序员本身处于为知识工作者开发生成式人工智能工具的前沿,而现代编程实践的独特起源——源于编程作为工艺、科学或工程身份危机的锻造(Ensmenger,2012)——可以说赋予了日常编程实践异常高度的反思性。可以说,程序员处于特权地位,是首批识别将生成式人工智能应用于自身实践新机遇的知识工作者之一,同时也有能力为自己构建这些前沿工具。本质上,编程的发展方向决定了整个知识工作的走向。
如果按照 Karpathy 的观点来理解,vibe 编码是我们首次见到一种受物质脱离影响的知识工作流程。这里所说的物质基底指的是编程的物质载体,即代码,而程序员不再直接操作这部分物质基底。程序员有意识地脱离了对物质基底的直接操作,而是通过 AI 生产者-中介者来协调代码的生成和编辑。想象类似的物质脱离态度或工作流程可以应用于所有知识工作任务,无论是撰写报告、发送邮件,还是制作电子表格或演示文稿,这并不需要太大的想象力。研究物质脱离在编程实践中的影响及其程度,尤其是在 vibe 编码这一高度自然且外部有效的表现形式中,为我们提供了一个宝贵的机会,以预见知识工作结构可能即将发生的变化。
因此,基于此动机,我们通过对来自 YouTube 和 Twitch 的程序员 vibe 编码思考大声说出视频的框架分析,首次对 vibe 编码作为一种新兴编程现象进行了实证分析(第 2 节)。我们的分析初步描绘了在 vibe 编码过程中目标和意图的形成、vibe 编码的工作流程、提示的性质、调试实践、vibe 编码中出现的挑战、所运用的程序员专业技能及其方式,以及 vibe 编码中对 AI 的信任性质(第 3 节)。
我们讨论了 vibe 编码如何似乎代表了前几代 AI 辅助编码的演进,vibe 的“整体感”、物质脱离的权衡,以及 vibe 编码者如何试图影响社会对 AI 使用的态度(第 4 节)。
我们的分析是初步且暂时性的;我们仅详细研究了一小部分视频,而与 vibe 编码相关的工具和实践正在迅速发展。因此,我们的发现应被理解为 vibe 编码在这一特定早期阶段表现形式的时间性快照。这样的片段既为未来理解 vibe 编码现象的工作奠定基础,也作为该实践进一步发展时的比较参考点。

2. 方法

2.1. 数据来源

我们通过 YouTube 和 Twitch 上的边想边说视频研究 vibe 编码的方法,借鉴了以往的研究。Barik 等人(2015)证明,在线社区调查能够“对定性研究主题提供见解,其结果可与传统定性研究技术相媲美,有时甚至超越”。
对 Hacker News、YouTube、Reddit 及其他在线论坛等在线资源的分析揭示了编程实践的某些方面,如将编程视为游戏(Barik,2017)、Excel 中 lambda 函数的引入(Sarkar 等,2022b)以及第一代代码生成大型语言模型(Sarkar 等,2022a)。正如 Hacker News 被视为“软件开发者在更广泛文化生态系统中交流思想的重要场所”(Barik 等(2015),引用 Wu 等(2014)),YouTube 和 Twitch 在 vibe 编码现象中也发挥着类似作用。这些平台是编程实践形成和实施的社交环境,使其成为研究新兴编程实践的宝贵背景。
虽然分析关于 vibe coding 的公共话语有助于理解其在编程社区中的认知,但在这一初步阶段,我们优先研究了 vibe coding 的实际活动,基于这样一个前提:理解 vibe coding 的实践方式是理解相关话语的必要前提。然而,基于本文提供的基础性理解,未来的工作可以适合进行话语分析。

2.2. 视频分析方法

鉴于 vibe 编码是一种新兴现象,我们希望能够灵活地记录孤立事件、连续事件链、并发事件、感兴趣现象持续时间的变化,以及时间上不连续但概念上相关的事件(例如,当程序员启动一项活动,转而进行另一项任务,随后又恢复原始工作时)。因此,我们选择不将视频分割成预定义的片段或固定时间间隔(例如,Srinivasa Ragavan 等人(2021)所示的 20 秒片段)。此外,我们需要一种方法,允许灵活分析视频中的口头思考信息和观察到的行为。
因此,我们采用了框架分析法(Ritchie 和 Spencer,2002;Goldsmith,2021),这是一种定向内容分析方法,研究人员首先熟悉数据,制定分析框架,然后根据该框架对数据进行索引。
与定性编码手册中的编码不同,框架类别并不代表具体的现象,而是构成了可以将观察结果分类的概念领域。因此,这种方法对研究结果的本体论承诺要求较低。相反,索引过程用于重新组织数据(它们仅用于汇总关于感兴趣概念的数据,而不是支持某一现象主题的数据),以便通过框架类别所暗示的定向研究问题,进而通过各种解释性方法进行探讨。在我们的案例中,由于每个类别中记录的观察数量相对较少,两位研究人员能够协作协商出每个类别中最显著的发现。

2.3. 视频选择

我们通过在 YouTube 和 Twitch 平台上使用平台本地搜索,输入搜索词“vibe coding”和“vibe coding session”来选择初步的视频长名单。我们曾考虑过但未采纳更广泛的搜索词(例如包含工具名称如“Cursor”),因为如上所述,vibe coding 是一种正在不断定义和协商的新兴实践,我们的研究部分是对这一过程的理解练习;因此,我们采用了普通语言哲学的方法论原则(Laugier, 2013),关注该术语在实践中的使用和体现,而非试图强加任何先验的 vibe coding 解释,而包含其他关键词则会导致后者。
搜索在 2025 年 3 月 17 日至 2025 年 4 月 2 日期间进行。在纳入之前,对视频进行了初步检查,以排除明显不包含开发者对 vibe 编码概念反思的假阳性视频(例如广告、带有文字转语音配音的幻灯片、环境音乐视频等)以及极短的视频(少于 3 分钟)。最终得到一个初步列表,共 35 个视频,总时长为 35 小时 46 分钟 21 秒。
接下来,两位研究人员各自独立观看每个视频的10-20分钟片段,以熟悉内容并进行敏感化处理,同时对潜在主题和质量标准做初步记录。通过协商,选定了四个视频供两位研究人员完整观看,以进行初步的定性分析。
随后,两位研究人员会面,讨论对这四个视频的分析,目标是 a)确定纳入最终分析的视频质量标准,b)确定框架分析的类别。
我们确定了以下四个纳入标准。首先,我们优先选择捕捉了大量 vibe 编码工作流程的视频,理想情况下是从头到尾(从空白项目开始,到项目完成结束),以便研究人员能够理解项目的完整背景以及 vibe 编码过程中表现出的任何行为。其次,我们优先选择没有重大时间线编辑的视频,视频创作者通常会进行此类编辑以缩短视频并提升观众参与度,但这可能会影响视频作为真实 vibe 编码过程反映的价值。第三,我们优先选择在编码过程中开发者有丰富的边做边思考反思的视频,旨在排除那些事后配音的视频或在编码活动进行时存在较长停顿和沉默但没有口头反思的视频。第四,我们优先选择所进行项目具有足够现实性、外部效度或严肃性的视频,而非纯粹为演示制作的玩具项目视频。
研究人员重新审视了长名单,并根据这些质量标准对每个视频进行了注释,如有任何不确定之处,彼此协商解决。在最初的 35 个视频中,只有 6 个视频明确满足所有四个标准。在此期间,其中一个视频已从 Twitch 流媒体平台下架。因此,我们最终用于深入框架分析的名单由 5 个视频组成,总时长为 8 小时 27 分钟 19 秒。其中,两个视频 YT22a 和 YT22b 是同一开发者的同一氛围编码项目的两个部分——因此在我们的结果中,我们将两者的发现合并为单一 ID YT22。
所考虑的全部视频列表,包括用于框架开发的四个视频和详细分析的五个视频,见附录 A。

2.4. 框架分析

为了确定框架分析的类别,研究人员在观看整个长名单的视频时,独立整理了关于潜在类别和研究问题的笔记,最终汇总出一个包含22个不同粒度层次的原始类别列表。经过协商,三个类别(程序员目标、意图的形成以及专业知识的运用)被进一步细化,以涵盖研究人员在初始阶段观察到的细微差别。两个原始类别合并为一个更广泛的关于工作流程和工具的类别,另一个原始类别
被移除的是,程序员和非程序员在进行 vibe 编码时的方法有何不同,因为我们的数据集中没有包含任何没有编程经验的用户的 vibe 编码会话。我们的最终框架由 9 个顶级类别组成,分为 20 个子类别。完整框架见表 1。
最后,两位研究人员将数据集分成了两个时长相近的部分,并各自独立应用该框架对其中一部分进行了定性分析。在略有偏离框架分析标准方法的情况下,通常分析数据的单位会直接附加(“索引”)到框架类别上,而在本案例中,研究人员在每个类别下根据需要做了定性笔记和观察,包括视频中思考大声说出的文字记录摘录。这种偏离是必要的,以适应对视频单位化的困难,从而正确考虑新出现的现象(如前所述),同时也考虑到研究人员可能观察到的现象是通过屏幕上的动作和思考大声反思的不可简化组合表现出来的(这两者可能并非同时发生)。
本分析的结果呈现在第3节。
表 1 - 用于 vibe 编码思考大声说视频的定性分析框架
顶层类别 子类别 详细说明
目标 a. 他们建造什么?
i. 人们使用 vibe 编码构建什么类型的应用? ii. 创建了哪些类型的应用(例如,登陆页面、游戏等)? iii. vibe 编码是否完全适合完成一个项目,还是对于更复杂的项目如游戏需要转向手动编码?
i. What kind of apps do people build using vibe coding? ii. What types of applications are created (e.g., landing pages, games, etc.)? iii. Is vibe coding fully appropriate to complete a project, or does it require transitions to manual coding for more complex projects like games?| i. What kind of apps do people build using vibe coding? | | :--- | | ii. What types of applications are created (e.g., landing pages, games, etc.)? | | iii. Is vibe coding fully appropriate to complete a project, or does it require transitions to manual coding for more complex projects like games? |
b. 期望——是完全成功/部分成功,还是仅仅是探索?
i. 人们进入 vibe 编码时是期望完全成功,还是抱着探索的态度? ii. 用户通常期望通过 vibe 编码获得完全成功,还是试验看看这项技术能达到什么程度?
i. Do people go into vibe coding expecting to fully succeed, or are they taking an exploratory attitude? ii. Are users generally expecting complete success with vibe coding, or do they experiment to see how far the technology can be pushed?| i. Do people go into vibe coding expecting to fully succeed, or are they taking an exploratory attitude? | | :--- | | ii. Are users generally expecting complete success with vibe coding, or do they experiment to see how far the technology can be pushed? |
意图 a. 初始意图?
i. 在 vibe 编码中,应用的意图是如何形成和完善的? ii. 意图是在编码开始前预先形成,还是通过与 AI 的迭代交互逐步演变的? iii. 意图的哪些部分是事先确定的,意图如何在不同的提示和阶段中传播?
i. How is the intention for an app formed and refined in vibe coding? ii. Is the intent pre-formed before coding begins, or does it evolve through iterative interactions with the AI? iii. Which parts of the intent are established beforehand, and how does intent spread across various prompts and phases?| i. How is the intention for an app formed and refined in vibe coding? | | :--- | | ii. Is the intent pre-formed before coding begins, or does it evolve through iterative interactions with the AI? | | iii. Which parts of the intent are established beforehand, and how does intent spread across various prompts and phases? |
b. 意图如何以及为何被完善?
i. 哪些 AI 工作流程资源(例如,探索、寻找替代方案)支持并完善这一意图? ii. AI 本身是否通过填补空白来帮助塑造最终意图?与 AI 的反复互动如何影响最终输出? iii. vibe coding 的迭代和对话性质如何影响用户的创造力和解决问题的策略? iv. 这一过程是鼓励更多的探索,还是导致对 AI 建议的依赖?
i. What AI workflow resources (e.g., exploration, seeking alternatives) support and refine this intent? ii. Does the AI itself contribute to shaping the final intent by filling in gaps? How does the back-and-forth interaction with the AI shape the final output? iii. How does the iterative and conversational nature of vibe coding affect users' creativity and problem-solving strategies? iv. Does this process encourage more exploration or lead to a reliance on the AI's suggestions?| i. What AI workflow resources (e.g., exploration, seeking alternatives) support and refine this intent? | | :--- | | ii. Does the AI itself contribute to shaping the final intent by filling in gaps? How does the back-and-forth interaction with the AI shape the final output? | | iii. How does the iterative and conversational nature of vibe coding affect users' creativity and problem-solving strategies? | | iv. Does this process encourage more exploration or lead to a reliance on the AI's suggestions? |
工作流程 a. 工作流程的阶段?
i. vibe 编码工作流程的阶段有哪些? ii. 不同阶段(例如编程、故障定位、调试与规划和测试)如何分配时间和精力? iii. 这些阶段与更传统的 AI 增强编程工作流程以及先前识别的 AI 工作流程(如迭代目标满足)相比如何?
i. What are the stages of the vibe coding workflow? ii. How is time and effort allocated across different stages (e.g., programming, fault localization, debugging versus planning and testing)? iii. How do these stages compare with those in more traditional AIenhanced programming workflows and prior identified AI workflows such as iterative goal satisfaction?| i. What are the stages of the vibe coding workflow? | | :--- | | ii. How is time and effort allocated across different stages (e.g., programming, fault localization, debugging versus planning and testing)? | | iii. How do these stages compare with those in more traditional AIenhanced programming workflows and prior identified AI workflows such as iterative goal satisfaction? |
b. 工具和技术组合?
i. 不同工具在 vibe 编码的背景下如何协同工作? ii. 其他资源(如文档、网络搜索等)如何整合到 vibe 编码工作流程中?
i. How do different tools work together in the context of vibe coding? ii. How are other resources (such as documentation, web searches, etc.) integrated into the vibe coding workflow?| i. How do different tools work together in the context of vibe coding? | | :--- | | ii. How are other resources (such as documentation, web searches, etc.) integrated into the vibe coding workflow? |
提示 a. 需要做哪些准备工作? i. 创作者如何设置一个氛围编码会话(例如,编辑提示指令与使用默认设置)?
b. 明确的提示策略?
i. vibe 编码中的提示策略有哪些? ii. 在编码过程中,采用了哪些方法来启动和引导 AI?
i. What are the prompting strategies in vibe coding? ii. What methods are employed to initiate and guide the AI during the coding process?| i. What are the prompting strategies in vibe coding? | | :--- | | ii. What methods are employed to initiate and guide the AI during the coding process? |
Top Level Category Subcategories Elaboration Goals a. What do they build? "i. What kind of apps do people build using vibe coding? ii. What types of applications are created (e.g., landing pages, games, etc.)? iii. Is vibe coding fully appropriate to complete a project, or does it require transitions to manual coding for more complex projects like games?" b. Expectation - for full/partial success, or just exploration? "i. Do people go into vibe coding expecting to fully succeed, or are they taking an exploratory attitude? ii. Are users generally expecting complete success with vibe coding, or do they experiment to see how far the technology can be pushed?" Intentions a. Initial intention? "i. How is the intention for an app formed and refined in vibe coding? ii. Is the intent pre-formed before coding begins, or does it evolve through iterative interactions with the AI? iii. Which parts of the intent are established beforehand, and how does intent spread across various prompts and phases?" b. Intention refined? How and why? "i. What AI workflow resources (e.g., exploration, seeking alternatives) support and refine this intent? ii. Does the AI itself contribute to shaping the final intent by filling in gaps? How does the back-and-forth interaction with the AI shape the final output? iii. How does the iterative and conversational nature of vibe coding affect users' creativity and problem-solving strategies? iv. Does this process encourage more exploration or lead to a reliance on the AI's suggestions?" Workflow a. Stages of workflow? "i. What are the stages of the vibe coding workflow? ii. How is time and effort allocated across different stages (e.g., programming, fault localization, debugging versus planning and testing)? iii. How do these stages compare with those in more traditional AIenhanced programming workflows and prior identified AI workflows such as iterative goal satisfaction?" b. Portfolio of tools and technologies? "i. How do different tools work together in the context of vibe coding? ii. How are other resources (such as documentation, web searches, etc.) integrated into the vibe coding workflow?" Prompting a. Any setup work? i. How do creators set up a vibe coding session (e.g., editing prompt instructions vs. using default settings)? b. Explicit prompting strategies? "i. What are the prompting strategies in vibe coding? ii. What methods are employed to initiate and guide the AI during the coding process?"| Top Level Category | Subcategories | Elaboration | | :--- | :--- | :--- | | Goals | a. What do they build? | i. What kind of apps do people build using vibe coding? <br> ii. What types of applications are created (e.g., landing pages, games, etc.)? <br> iii. Is vibe coding fully appropriate to complete a project, or does it require transitions to manual coding for more complex projects like games? | | | b. Expectation - for full/partial success, or just exploration? | i. Do people go into vibe coding expecting to fully succeed, or are they taking an exploratory attitude? <br> ii. Are users generally expecting complete success with vibe coding, or do they experiment to see how far the technology can be pushed? | | Intentions | a. Initial intention? | i. How is the intention for an app formed and refined in vibe coding? <br> ii. Is the intent pre-formed before coding begins, or does it evolve through iterative interactions with the AI? <br> iii. Which parts of the intent are established beforehand, and how does intent spread across various prompts and phases? | | | b. Intention refined? How and why? | i. What AI workflow resources (e.g., exploration, seeking alternatives) support and refine this intent? <br> ii. Does the AI itself contribute to shaping the final intent by filling in gaps? How does the back-and-forth interaction with the AI shape the final output? <br> iii. How does the iterative and conversational nature of vibe coding affect users' creativity and problem-solving strategies? <br> iv. Does this process encourage more exploration or lead to a reliance on the AI's suggestions? | | Workflow | a. Stages of workflow? | i. What are the stages of the vibe coding workflow? <br> ii. How is time and effort allocated across different stages (e.g., programming, fault localization, debugging versus planning and testing)? <br> iii. How do these stages compare with those in more traditional AIenhanced programming workflows and prior identified AI workflows such as iterative goal satisfaction? | | | b. Portfolio of tools and technologies? | i. How do different tools work together in the context of vibe coding? <br> ii. How are other resources (such as documentation, web searches, etc.) integrated into the vibe coding workflow? | | Prompting | a. Any setup work? | i. How do creators set up a vibe coding session (e.g., editing prompt instructions vs. using default settings)? | | | b. Explicit prompting strategies? | i. What are the prompting strategies in vibe coding? <br> ii. What methods are employed to initiate and guide the AI during the coding process? |
顶层类别 子类别 详细说明
c. 颗粒度高/低级别?
i. 提示和迭代的颗粒度是多少? ii. 在氛围编码过程中,迭代步骤的细化程度如何? iii. 通过自然语言提示传达的美学意图如何被生成式人工智能转化(或误解)为技术规范和代码?
i. What is the granularity of prompts and iterations? ii. How fine-grained are the iterative steps in the vibe coding process? iii. How is aesthetic intent communicated through natural language prompts translated (or misinterpreted) by generative AI into technical specifications and code?| i. What is the granularity of prompts and iterations? | | :--- | | ii. How fine-grained are the iterative steps in the vibe coding process? | | iii. How is aesthetic intent communicated through natural language prompts translated (or misinterpreted) by generative AI into technical specifications and code? |
d. 单目标/多目标提示? i. 用户是同时处理多个问题,还是一次只处理一个问题?
e. 模式:语音/文本/图像?
i. 不同模式(语音、文本、截图等)在情绪编码中扮演什么角色? ii. 创作者如何将各种输入模式融入情绪编码过程? iii. 代码复用是如何管理的,例如通过借用在线示例来引导 AI?
i. What is the role of different modes (voice, text, screenshot, etc.) in vibe coding? ii. How do creators incorporate various input modes into the vibe coding process? iii. How is code reuse managed, for instance by borrowing online examples to steer the AI?| i. What is the role of different modes (voice, text, screenshot, etc.) in vibe coding? | | :--- | | ii. How do creators incorporate various input modes into the vibe coding process? | | iii. How is code reuse managed, for instance by borrowing online examples to steer the AI? |
调试 a. 针对目标程序,他们采用了哪些调试策略?
i. 在 vibe 编码中采用了哪些调试策略? ii. 创作者如何调试通过 vibe 编码生成的代码?
i. What debugging strategies are employed in vibe coding? ii. How do creators approach debugging code generated through vibe coding?| i. What debugging strategies are employed in vibe coding? | | :--- | | ii. How do creators approach debugging code generated through vibe coding? |
挑战 a. 实现目标时除了代码错误之外还面临哪些挑战?
i. 在 vibe 编码过程中遇到了哪些挑战和障碍? ii. 在整个过程中出现了哪些技术、概念或工作流程相关的障碍?
i. What challenges and barriers are encountered during vibe coding? ii. What technical, conceptual, or workflow-related obstacles arise throughout the process?| i. What challenges and barriers are encountered during vibe coding? | | :--- | | ii. What technical, conceptual, or workflow-related obstacles arise throughout the process? |
b. 如何应对? i. 采用了哪些策略来应对这些挑战?
专业知识 a. 何时使用专业知识?
i. 专家如何在氛围编码中运用他们的专业知识? ii. 专家以何种方式运用他们的专业知识?
i. How do experts deploy their expertise in vibe coding? ii. In what ways do experts deploy their expertise?| i. How do experts deploy their expertise in vibe coding? | | :--- | | ii. In what ways do experts deploy their expertise? |
b. 使用了哪些类型的专业知识?
i. 相关的专业知识是否仅限于开发者知识,还是包括对系统需求、端到端设计以及更广泛技术生态系统的理解? ii. 在这种情况下,技术前瞻性的态度是否可能与传统编码技能同样重要?
i. Is the relevant expertise strictly developer knowledge, or does it include understanding system requirements, end-to-end design, and the broader technical ecosystem? ii. Could a tech-forward attitude be as significant as traditional coding skills in this context?| i. Is the relevant expertise strictly developer knowledge, or does it include understanding system requirements, end-to-end design, and the broader technical ecosystem? | | :--- | | ii. Could a tech-forward attitude be as significant as traditional coding skills in this context? |
c. 何时切换到手动操作?
i. 从何时起,实践者会从氛围编码转向手动编辑(代码、文本、图像、工件)? ii. 在工作流程的哪个阶段适合切换到传统的手动编辑?
i. When do practitioners transition from vibe coding to manual editing (code, text, image, artifact)? ii. At what point in the workflow is it appropriate to jump into traditional manual editing?| i. When do practitioners transition from vibe coding to manual editing (code, text, image, artifact)? | | :--- | | ii. At what point in the workflow is it appropriate to jump into traditional manual editing? |
信任 a. 对信任、过度信任、依赖有何反思?
i. 氛围编码中的信任本质是什么? ii. 用户如何建立对 AI 生成结果的信任,以及过度信任或过度依赖该技术存在哪些风险?
i. What is the nature of trust in vibe coding? ii. How do users develop trust in AI-generated outputs, and what are the risks of overtrust or overreliance on the technology?| i. What is the nature of trust in vibe coding? | | :--- | | ii. How do users develop trust in AI-generated outputs, and what are the risks of overtrust or overreliance on the technology? |
vibe 编码的定义与表现 a. 程序员如何定义氛围编码?
i. 何时一项活动被视为 vibe 编码,而不仅仅是使用 AI 工具? ii. vibe 编码是否不仅包括代码生成,还包括调试、规划和测试? iii. vibe 编码在 AI 辅助编程活动的范围中处于何种位置?
i. When is an activity considered vibe coding versus simply using AI tools? ii. Does vibe coding include not only code generation but also debugging, planning, and testing? iii. Where does vibe coding fit on the spectrum of AI-assisted programming activities?| i. When is an activity considered vibe coding versus simply using AI tools? | | :--- | | ii. Does vibe coding include not only code generation but also debugging, planning, and testing? | | iii. Where does vibe coding fit on the spectrum of AI-assisted programming activities? |
b. YouTube/Twitch 的表现如何影响生产?
i. 氛围编码的表演性方面(例如,YouTube 演示)如何影响生成式人工智能在编程中的实践和认知? ii. 公开演示可能如何影响工具选择、提示策略以及用户体验的构建?
i. How does the performative aspect of vibe coding (e.g., YouTube demonstrations) influence the practice and perception of generative AI in programming? ii. How might public demonstrations affect tool choice, prompting strategies, and the framing of users' experiences?| i. How does the performative aspect of vibe coding (e.g., YouTube demonstrations) influence the practice and perception of generative AI in programming? | | :--- | | ii. How might public demonstrations affect tool choice, prompting strategies, and the framing of users' experiences? |
Top Level Category Subcategories Elaboration c. Granularity high/low level? "i. What is the granularity of prompts and iterations? ii. How fine-grained are the iterative steps in the vibe coding process? iii. How is aesthetic intent communicated through natural language prompts translated (or misinterpreted) by generative AI into technical specifications and code?" d. Single/multiobjective prompts? i. Do users address multiple issues at once or handle one problem at a time? e. Modes voice/text/images? "i. What is the role of different modes (voice, text, screenshot, etc.) in vibe coding? ii. How do creators incorporate various input modes into the vibe coding process? iii. How is code reuse managed, for instance by borrowing online examples to steer the AI?" Debugging a. What debugging strategies for their target program? "i. What debugging strategies are employed in vibe coding? ii. How do creators approach debugging code generated through vibe coding?" Challenges a. What challenges (besides code bugs) in achieving goals? "i. What challenges and barriers are encountered during vibe coding? ii. What technical, conceptual, or workflow-related obstacles arise throughout the process?" b. How addressed? i. What strategies are adopted to address these challenges? Expertise a. When is expertise used? "i. How do experts deploy their expertise in vibe coding? ii. In what ways do experts deploy their expertise?" b. What kinds of expertise used? "i. Is the relevant expertise strictly developer knowledge, or does it include understanding system requirements, end-to-end design, and the broader technical ecosystem? ii. Could a tech-forward attitude be as significant as traditional coding skills in this context?" c. When switch to manual work? "i. When do practitioners transition from vibe coding to manual editing (code, text, image, artifact)? ii. At what point in the workflow is it appropriate to jump into traditional manual editing?" Trust a. Any reflections on trust, overtrust, reliance? "i. What is the nature of trust in vibe coding? ii. How do users develop trust in AI-generated outputs, and what are the risks of overtrust or overreliance on the technology?" Definition of vibe coding and performance a. How programmers define vibe coding? "i. When is an activity considered vibe coding versus simply using AI tools? ii. Does vibe coding include not only code generation but also debugging, planning, and testing? iii. Where does vibe coding fit on the spectrum of AI-assisted programming activities?" b. How performance for YouTube/Twitch skews production? "i. How does the performative aspect of vibe coding (e.g., YouTube demonstrations) influence the practice and perception of generative AI in programming? ii. How might public demonstrations affect tool choice, prompting strategies, and the framing of users' experiences?"| Top Level Category | Subcategories | Elaboration | | :--- | :--- | :--- | | | c. Granularity high/low level? | i. What is the granularity of prompts and iterations? <br> ii. How fine-grained are the iterative steps in the vibe coding process? <br> iii. How is aesthetic intent communicated through natural language prompts translated (or misinterpreted) by generative AI into technical specifications and code? | | | d. Single/multiobjective prompts? | i. Do users address multiple issues at once or handle one problem at a time? | | | e. Modes voice/text/images? | i. What is the role of different modes (voice, text, screenshot, etc.) in vibe coding? <br> ii. How do creators incorporate various input modes into the vibe coding process? <br> iii. How is code reuse managed, for instance by borrowing online examples to steer the AI? | | Debugging | a. What debugging strategies for their target program? | i. What debugging strategies are employed in vibe coding? <br> ii. How do creators approach debugging code generated through vibe coding? | | Challenges | a. What challenges (besides code bugs) in achieving goals? | i. What challenges and barriers are encountered during vibe coding? <br> ii. What technical, conceptual, or workflow-related obstacles arise throughout the process? | | | b. How addressed? | i. What strategies are adopted to address these challenges? | | Expertise | a. When is expertise used? | i. How do experts deploy their expertise in vibe coding? <br> ii. In what ways do experts deploy their expertise? | | | b. What kinds of expertise used? | i. Is the relevant expertise strictly developer knowledge, or does it include understanding system requirements, end-to-end design, and the broader technical ecosystem? <br> ii. Could a tech-forward attitude be as significant as traditional coding skills in this context? | | | c. When switch to manual work? | i. When do practitioners transition from vibe coding to manual editing (code, text, image, artifact)? <br> ii. At what point in the workflow is it appropriate to jump into traditional manual editing? | | Trust | a. Any reflections on trust, overtrust, reliance? | i. What is the nature of trust in vibe coding? <br> ii. How do users develop trust in AI-generated outputs, and what are the risks of overtrust or overreliance on the technology? | | Definition of vibe coding and performance | a. How programmers define vibe coding? | i. When is an activity considered vibe coding versus simply using AI tools? <br> ii. Does vibe coding include not only code generation but also debugging, planning, and testing? <br> iii. Where does vibe coding fit on the spectrum of AI-assisted programming activities? | | | b. How performance for YouTube/Twitch skews production? | i. How does the performative aspect of vibe coding (e.g., YouTube demonstrations) influence the practice and perception of generative AI in programming? <br> ii. How might public demonstrations affect tool choice, prompting strategies, and the framing of users' experiences? |

3. 结果

3.1. 目标

3.1.1. 使用氛围编码构建了哪些类型的应用?

我们的示例涵盖了不同领域和复杂度水平。在最简单的案例(YT15)中,一位创作者开发了一个动画图解,说明了编码代理的工作流程。该项目主要关注视觉设计元素,包括箭头位置、标签、动画和特定色彩主题的美学风格。
在 TW1 中,创作者为现有的游戏平台创建并成功部署了多种会员专属功能。
YT21 的创作者构建了一个代码库聊天应用,集成了 GitHub 仓库,具备用户身份验证、跨会话的持久聊天记录以及基于 URL 的特定对话导航功能。该项目应用了检索增强生成技术来回答用户代码库相关的问题。在 YT22 中,一位开发者创建了一个帮助国际学生求职的网络应用,包含基于职位描述的简历定制、用户账户管理、通过 Stripe 进行支付处理以及文件上传功能。

3.1.2. 程序员是否期望通过 vibe 编码获得完全成功或部分成功?vibe 编码在多大程度上具有探索性?

用户在进行 vibe 编码时表现出一系列期望,从完全成功到部分实现,再到探索性使用(Kery 和 Myers,2017),有时这些期望会在他们的过程中不断演变。
在 YT15 中,用户一开始期望完全成功,试图创建一个图表,因为他们觉得自己没有技能亲自制作这个图表。最终,用户调整为接受部分成功,并对达到“ 80 % 80 % 80%80 \% 的进度”表示满意。他们还表现出一种新兴的探索性元素,当项目完成时,他们对生成的代码表现出好奇(“我们是怎么做到的?”),并表示打算阅读生成的代码以从中学习。
TW1 也期望 vibe 编码能够完全成功,为她已部署的网站添加新功能。她并没有以探索性的方式利用 vibe 编码,而是将 vibe 编码用于为每个功能生成代码,并结合手动修正和编程,以完成她在待办事项列表中收集的一系列任务。
在 YT21 中,程序员表现出对完全成功的强烈期望。他们提到在录制之前已经取得了快速的初步进展,达到了“80%或 90 % 90 % 90%90 \% 的工作版本完成度”。他们表示打算将该应用整合到一个更大的项目中,并最终将其产品化以供公众使用,这些都表明他们期望完全或接近完全的成功。虽然该项目是“绿地项目”(即代码库是从零开始构建的),这提供了“更多探索的机会”,但这种探索是在构建一个成品应用的框架内进行的,而不仅仅是对技术的实验。
YT22 表现出对部分成功的审慎期望,具体目标是最小可行产品(MVP)。创作者讨论了货币化计划,表明其意图不仅仅是探索。然而,他们明确表示结果不需要“达到生产就绪”状态。

3.2. 意图

3.2.1. 一个 vibe 编码项目的初始意图是如何形成的?

在大多数情况下,创作者在使用人工智能工具之前会先制定目标,尽管这些先前意图的具体性和范围各不相同。YT15 中的创作者带着生成一个解释代码代理工作流程的图表的目标进行会话,且已经构思好了图表的结构和组成部分。YT21 中的程序员则以明确的意图开始,计划通过添加对多次会话中持久对话的支持来增强现有应用,并已将该目标分解为可管理的步骤。我们在 YT22 中观察到了详细的预先规划,开发者不仅确定了核心功能,还在开始编码前确定了技术栈、认证方法和盈利策略。

3.2.2. 在 vibe 编码会话过程中,意图是如何以及为何被不断细化的?

vibe 编码的迭代性和对话性质支持通过渐进式发现和完善来细化意图。在所有视频中,创作者的想法都超出了最初的设想,这种完善是由对初始结果的不满以及在评估结果过程中出现的新需求或新想法推动的。在 vibe 编码的工作流程中,用户必须同时形成他们正在开发的作品的意图,以及如何有效地将这些目标传达给 AI 的意图。
用户内在意图与 AI 对其解读之间不可避免的不匹配,成为不仅推动项目方向完善的重要动力,也推动用户改进提示策略和加深对 AI 能力理解的关键因素。
人工智能通过填补实现上的空白和提出新可能性,助力塑造最终意图。在 YT15 中,意图显然经过了多次迭代演变,起初是一个初步的图表布局,随后发展为箭头的摆放,最后添加了样式和动画。项目的方向在与人工智能的反复互动中得到了显著影响,因为生成的代码有时:直接成功匹配创作者的意图,从而推动进展;有时通过解读模糊指令间接成功,激发了新的想法;有时失败,因而需要调试或目标“转向”(Drosos 等,2024)。
在 TW1 的一个实例中,人工智能生成的代码存在错误,但她检查后发现新代码暴露了之前代码中的一个漏洞。在另一个实例中,生成的代码与她最初的意图不符,但却给了她关于如何利用该代码实现未来替代方案的灵感。
在 YT22 中,我们看到一个协商过程,创作者积极评估 AI 的建议,删除了一些 AI 生成的功能,比如完成率框,接受了其他功能,同时识别出缺失的功能,如登录按钮。类似地,在 YT21 中,测试应用程序揭示了意想不到的需求,比如在测试过程中发现需要一个停止按钮,这直接源于体验应用程序的行为并识别出一个最初计划中未包含的可用性问题。
AI 也在 vibe 编码过程之外被咨询,用于指导和迭代意图,比如征求功能创意(TW1)。还观察到其他传统的意图细化来源,如将已有作品和替代商业产品作为设计参考(YT21)。

原型制作与生产的融合,以及情境动力

Vibe 编码似乎显著模糊了原型设计与生产初期阶段之间的界限。与其用文本、图表和其他传统的低保真媒介来勾勒想法,不如在构思过程的早期就生成功能性代码。建立一个基本可运行应用的速度表明,vibe 编码可能会打破这些传统开发阶段之间的界限。这引发了几个问题,包括初始的“vibe”在多大程度上可能比传统原型设计更深刻地决定整个项目的轨迹。
在 vibe 编码会话中,交互历史和之前生成的输出显著影响后续代码生成的方向。我们将这种现象称为上下文动量。这形成了一种路径依赖,早期的提示及其产生的结果可能将项目引导到某一特定轨迹上,而在会话后期可能难以偏离这一轨迹(这让人联想到过早承诺的认知维度(Green,1989),尽管这里难以将其描述为符号系统的属性)。上下文动量是模型“解释”与程序员响应相互叠加的累积效应,共同塑造了程序不断演变的意图。
一个例子来自 YT18, 1 1 ^(1){ }^{1} 这是一个专注于构建汇率应用的项目,用户最初请求历史汇率数据。模型通过提供一个日期选择器来解释该请求,以检索单个日期的数据。尽管用户的潜在意图是希望有一个能够检索日期范围的功能(这一点在提示中并未明确表达),用户仍然对该响应感到满意并继续使用。因此,模型的解释成为了既定路径。当用户后来在应用的另一个部分明确请求查询日期范围的功能时,新生成的代码很可能受到之前单日期实现的影响,仍然只获取单个日期的数据。用户认为这是一个下游的结果。
早期的实现选择,明确地将当前的难点与之前的模型解释及其生成的代码联系起来。因此,虽然程序员可能会选择接受那些并不完全符合他们意图但仍能满足其需求的编辑,以保持开发速度,但这可能会导致在传达意图和引导 AI 结果方面出现更大的后续挑战。
上下文势能也可能带来积极的探索性结果。例如,YT15 决定添加动画是一个即兴的目标,似乎是基于生成代码中现有结构所呈现的可能性而产生的。开发者制定此类目标的可能性因此似乎取决于模型所做的一组任意但令人满意的实现决策,而另一组令人满意的决策可能会导致不同的即兴目标。

3.3. 工作流程

3.3.1. vibe 编码工作流程的阶段有哪些?

vibe 编码工作流程始终从初始的目标设定和提示阶段开始。在 YT15 中,创作者通过转录工具向 Cursor 提供了详细的口头提示,以生成初始图表,确立了解释代码代理工作流程的图表作为第一个目标。同样,YT21 中的创作者以一个明确的目标开始:修改他现有的“与代码库聊天”应用,以支持每个仓库的多次聊天对话,随后将其分解为更小的子目标。在 YT22 中,创作者绘制了一个流程图来可视化工具的功能,并应用了 Code Guide, 2 2 ^(2){ }^{2} 这是一款根据他的应用需求生成项目计划和文档的工具。
在初步生成之后,开发者会持续进行评估和迭代改进的循环。在 YT15 中,创作者在快速预览图表后指出,图表“满足基本功能需求”,但“外观不够美观”,因此对特定元素进行了改进(例如,“箭头更好了,但还可以更好”)。在 TW1 中,创作者不断审查模型的代码更改,发现问题后会向模型指出错误并重新生成代码。YT22 同样展示了开发者对 AI 生成代码的持续审查,通过手动编辑修正错误、移除不需要的功能并调整功能实现。这个评估阶段经常包括测试运行应用程序,例如频繁切换到浏览器测试已实现的更改,并验证是否符合预期(YT21)。
因此,vibe 编码的特点是迭代的目标满足循环(Drosos 等,2024),开发者会(1)制定一个目标或子目标,(2)提示模型生成实现该目标的代码,(3)审查生成的代码,(4)接受或拒绝更改,(5)在应用程序中测试更改,
(6) 识别任何错误或改进的地方,(7) 优化提示词或转向手动调试和编辑,(8) 重复以上步骤,直到子目标被满足、优化或转变。

3.3.2. 工具和技术组合

以 AI 集成开发环境为核心,使用了一个相互连接的工具生态系统。在 YT15 中,Cursor 作为主要的 vibe 编码平台,提供提示、代码生成和编辑的界面,允许用户在 o3-mini 和 Claude 3.5 Sonnet 等模型之间切换。创作者还使用转录工具将语音指令转换为 Cursor 的提示词。使用网页浏览器预览和评估生成的 HTML 和 JavaScript 代码。
YT21 展示了类似的模式。程序员使用 Cursor 进行代码生成和编辑,切换到网页浏览器以可视化和测试网页应用。该程序员积极使用浏览器开发者工具(检查器、控制台、网络标签)来识别错误信息和检查 API 调用。此外,终端用于监控服务器端进程和错误信息。
YT22 的创作者首先使用 Excalidraw 进行初步规划和构思,创建所需工具的流程图。随后使用 Code Guide,这是一种元级工具,用于生成项目计划和文档,旨在通过预处理提示以引入结构和细节来减少 AI 的幻觉。只有在此之后,创作者才会转向 Cursor 进行代理代码生成。
模式,故意配置了像 OpenAI 的 GPT-4o 这样的特定模型。终端用于项目设置和运行开发服务器,而网页浏览器则用于测试、验证和访问文档。

3.4. 提示

3.4.1. 创作者如何设置氛围编码会话以实现有效提示?

为了使他们的提示更有效,创作者会修改代码生成语言模型的系统指令,比较不同的集成开发环境(IDE)以评估其人工智能集成的适用性,比较不同代码生成模型的速度、质量和每个标记的成本,并对提示进行预处理以减少幻觉现象。
TW1 中的创作者采用了一种形式化的方法来定制提示,起始于一个名为.cursorrules 的现有模板,该模板来源于 GitHub。他们将其整合到自己的 Claude.md 文件中,作为代码生成模型的系统指令。他们通过指定代码库中使用的编程语言、框架和库来个性化这些指令。
YT21 揭示了在氛围编码过程中,为实现有效提示所需的更多隐性准备工作。程序员在评估了 VS Code 和 Replit 等替代方案后,特意选择了集成了 AI 的 Cursor。程序员已经在脑海中规划了将聊天界面“更像 ChatGPT”的目标,并将其分解为更小的步骤,首先是“为新对话创建 API”。他们对代码库的熟悉以及预先选择 Claude 3.5 Sonnet 作为模型,都是准备工作的体现,即使没有明确地被视为设置工作。
在 YT22 中,创作者使用 Code Guide 输入需求并生成项目计划和文档,然后通过更新版本信息进行审查和完善。这种准备工作是有策略地为了帮助模型减少幻觉。他们根据输出速度和令牌成本等因素,主动在 Claude 3.7 Sonnet 和 OpenAI GPT-4o 之间切换(在 YT15 和 YT21 中也观察到了明确的性能实验和比较)。
Vibe 编码似乎不依赖于或与代码库的任何特定先前开发阶段相关。我们数据集中的开发者有的完全从空目录开始进行 vibe 编码(YT15),有的从样板启动模板开始(YT22),还有的则是在中途继续开发已有代码库(TW1,YT21)。

3.4.2. 在 vibe 编码过程中使用了哪些明确的提示策略?

我们观察到多种明确的提示策略,例如管理上下文、按名称引用特定代码元素、将指令结构化为列表、结果和约束、粘贴示例和错误信息、引用先前输出、通过外部工具预处理或生成提示、有意限制提示范围,以及将外部文档作为资源包含其中。
我们观察到对 AI 工作上下文的刻意管理。当转向制作动画箭头时,YT15 打开了一个新的“作曲家”窗口(本质上是 Cursor 内的新聊天线程)以创建一个新的上下文。类似地,在开始新阶段之前,YT22 关闭了所有标签页以“清除 AI 的上下文”。
YT21 开发者经常通过代码片段提供上下文,并通过函数名、变量名和 API 名等具体代码元素来精确细致地引导模型。他们还使用编号列表来构建复杂指令,并明确说明期望的结果和约束条件。此外,他们提供具体示例,例如粘贴 API 预期的 JSON 响应示例以指导实现。该开发者还在新提示中明确引用模型的先前输出,以提供纠正性反馈。在我们的数据集中,该开发者独特地在代码编辑器内使用内联提示进行局部修改(即典型于早期代码助手的较小范围、自动补全式交互),以实现有针对性的调整。
如前所述,YT22 中的开发者从 Code Guide 生成的文档和实施计划开始,作为提示 Cursor 的上下文。TW1 也展示了一种元提示方法,即使用一个模型为编码 AI 代理生成提示。YT22 中的开发者还采用了社区知识,使用在 Twitter 上发现的提示结构,但将其调整为适合他具体项目的上下文。他明确实践了范围限制,专注于一次实施计划的一个“阶段”,以减少幻觉。在另一种范围限制形式中,他还为提示引入了约束条件,例如“暂时不要集成 stripe,只需用虚拟数据设计”,可能是为了预见并防止模型填补未说明的空白,或防止模型设定一个过于雄心勃勃的目标,而该目标模型很可能无法在一步内实现。
YT22 中的开发者展示了更细粒度的指导方法,特别是通过提供外部文档作为上下文,明确复制官方 Tanstack Form 文档的网址并附带“使用文档”的指示,利用模型索引外部资源的能力。在遇到运行时问题时,他会补充包含错误信息的提示,直接粘贴浏览器错误并请求修复。

3.4.3. 提示和迭代的粒度是什么?用户是一次只针对单一目标发出提示,还是发出多目标提示?

vibe 编码中提示的粒度涵盖了从高级指令到极其详细的低级指令的范围,既包括单一目标的提示,也包括复杂的、多目标的提示,其中不同且无关的需求同时以不同的细节层次表达。
在 YT15 中,开发者首先通过详细的口头指导来确定图表的初始需求,包括模块和数据流的规格。当结果未达到预期时,他们采用迭代细化的方法,提供精确的反馈。当尝试让模型生成动画时,他们提供了详细的逐步描述,明确指定了期望看到的视觉元素的确切顺序。
YT15 中的创作者使用了精确和不精确的语言来传达美学。在请求箭头重新定位时,创作者给出了具体指示,如“不要使用斜线箭头”和“箭头头部应指向盒子中间”。然而,创作者也使用了不精确的描述词,比如将空间“显著”扩大,依赖于 AI 的理解而非提供确切的尺寸。创作者还发出了一个高级提示,提到了主题和颜色,但未具体说明细节,将这些留给模型的“解读”。同样,YT22 中的程序员在样式设计上也使用了具体与模糊指令的混合,比如“将日期移到下方并使用非常小的字体”和“不要使用粗体,缩小对话间距”。这些提示结合了具体操作和带有主观色彩的描述词,如“非常小”和“缩小”,在保持方向控制的同时,留给模型一定的解读空间。
YT21 展现了类似的模式,但对策略进行了明确的反思。程序员最初使用非常简短的高级提示,例如简单地请求“创建一个用于创建对话的 API”。当这些宽泛的提示未能产生预期结果时,程序员承认“我这里应该更清楚一些”,并转向针对特定函数、变量和样式元素的具体低级提示。程序员还采用了极其细致的迭代来进行局部修改,例如使用内联提示来修改函数的特定部分。程序员表示他“开始时会问一些很傻的问题。如果它感到困惑,[他]就开始提供更多细节”,这揭示了一种有意的粒度调整方法。
TW1 的开发者试图保持提示简洁而详尽,但最终发现较长的提示更好,以避免给 AI“太多偏离轨道的余地”。该开发者在高层指令(例如,“将 VIP 会员的经验值在后端提升至 1.3 倍”)与必要时提供具体实现细节(例如,编辑哪些文件,以及在这些更广泛请求中对变量或代码类型的具体说明)之间取得了平衡。
YT22 有意修改高级提示,聚焦于更小的部分(“只做第一阶段”),以减少幻觉现象,揭示了提示粒度如何影响 AI 性能的心理模型。他们的调试提示始终是单一目标(粘贴具体错误并请求修复),即使是功能请求也集中在特定元素上,比如“制作一个包含所有通过优化的简历的页面”,而不是同时请求多个功能,体现了对可控范围和顺序解决问题的偏好。YT22 还揭示了极细粒度提示可能被认为效率低下的情况;创作者经常进行手动编辑,而不是提示进行微小调整。

3.4.4. 语音、文本和图像等不同输入模式在 vibe 编码提示中扮演什么角色?

尽管 Karpathy 经典作品强调语音输入,但键入文本仍是主要的提示方式,不过我们确实观察到也有使用转录语音和图像的情况。键入的文本本身也可能包含多种元素,例如指令、复制粘贴的错误信息以及文档链接(如前所述)。
在 YT15 中,开发者主要通过转录工具使用语音提示,尽管他们提到自己有打字提示的根深蒂固习惯,并有意识地尝试保持语音模式,理由是希望遵循 Karpathy 经典作品。尽管如此,他们有时仍会切换到文本输入。他们尝试使用截图来更好地传达所需的更改,但由于当时所选模型的限制,这一尝试未能成功(我们在扩展语料库中的其他视频中确实观察到了截图的成功使用)。
相比之下,YT21 和 YT22 主要使用文本输入。YT21 的创作者几乎完全依赖于 Cursor 的创作窗口和内联聊天功能中的基于文本的提示,没有使用语音或图像输入的证据。同样,在 YT22 中,文本是主要的输入方式,创作者通过键入新提示和修改现有提示来进行操作。
代码重用策略在所研究的视频中表现得很一致,自然是通过文本方式实现的。在 YT21 中,创作者经常将整个函数体复制粘贴到创作窗口中,并附带文本说明以提供上下文。同样,创作者会将终端或浏览器控制台中的错误信息复制到提示窗口中。预期输出格式的包含也是 YT21 中的一种代码重用策略,创作者提供了预期 JSON 响应的示例以指导模型。
值得注意的是,观察中没有发现创作者直接从 Stack Overflow 或 GitHub 等在线资源借用代码来指导模型的例子,尽管 YT22 中分享文档 URL 的做法表明外部资源确实发挥了一定作用。

3.5. 调试

3.5.1. 在 vibe 编码过程中采用了哪些调试策略?

在观察到的 vibe 编码过程中,开发者们结合了传统调试技术和人工智能辅助方法。调试过程通常从对代码的视觉检查和应用程序的测试运行开始。根据遇到问题的性质,随后会采用更详细的调试策略。
在 YT15 中,创作者主要依靠识别期望结果与生成输出之间的视觉差异。例如,他们注意到图表中箭头不理想、画布过小以及箭头标签重叠等问题。这种方法对于图形或界面为主的项目尤为适用,因为代码的正确性主要通过其视觉输出而非内部逻辑来判断。
更技术性复杂的调试方法出现在 YT21 和 YT22 中,程序员大量使用了浏览器开发者工具。在 YT21 中,程序员检查了浏览器控制台和网络标签中的错误信息,以定位问题并验证 API 调用。类似地,在 YT22 中,当遇到空白屏幕时,创作者立即打开了浏览器的开发者控制台,识别出“trpc 错误”。
在 YT21 中也观察到了终端分析,程序员在使用浏览器工具的同时监控终端输出。
vibe 编码的一个显著特点是将 AI 本身用作调试工具,或者更准确地说,是完全绕过手动调试过程。在 YT22 中,创作者直接从浏览器控制台复制错误信息,并将其粘贴到 Cursor 聊天中,前面加上“请修复它”或“参考文档修复此错误”等提示。类似地,在 TW1 中,创作者让 AI“查找并调试问题并修复它”。
创作者经常通过有针对性的提示进行迭代优化。在 YT15 中,创作者提供了详细的指示来重新定位箭头、修复重叠的标签以及调整动画。这种使用自然语言提示来指导调试的策略也出现在 YT22 中,创作者没有直接修改代码,而是发出诸如“我不需要粘贴职位描述 URL 的功能,请只使用文本方式”的提示。TW1 则采用了在系统指令上迭代后重新提交提示的策略,以引导模型生成符合她偏好的结果。
尽管有 AI 辅助,创作者仍然进行手动代码审查和编辑。在 YT21 中,程序员经常扫描并阅读 AI 生成的代码,以评估其是否符合预期并在测试前识别潜在问题。同样,在 YT22 中,创作者频繁检查生成的代码,滚动浏览文件并查看差异,以理解 AI 输出的逻辑。在 TW1 中,创作者检查 AI 生成的代码以确认其可行性,在某些情况下,如果输出“接近”预期,他们会接受代码并打算手动修复。
用户经常采用混合的手动-自动调试策略,涉及假设形成和策略性提示。在 YT21 中,当出现错误时,程序员根据错误信息和观察到的行为形成关于原因的假设,然后通过浏览器或代码检查验证这些假设。随后,他们会给出具体且有针对性的提示,包含如何修复已识别问题的指令,例如提示模型“从 URL 中提取 repo-ID”。
模型切换有时被用作调试策略。例如,在 YT15 中,创作者在尝试为箭头制作动画时,从 03-mini 模型切换到了 Claude 3.5 sonnet。这表明创作者会形成关于不同语言模型相对能力和熟练度的心理模型。
用户有时会承认并故意忽略问题,比如在 YT15 中,创作者明确选择不处理编译器警告(“不要使用空规则集”)。
vibe 编码中代码阅读的特殊性质 程序员在 vibe 编码中与 AI 生成代码互动的一个显著特点,尤其是在调试过程中,是他们代码检查的速度和高层次性质。我们观察到,程序员并非逐行审查代码,而是快速从一个点跳到另一个点,进行一种可以称为印象式扫描的操作,而非线性阅读。这使得他们能够快速、几乎即时地评估生成的代码“看起来是否正常”、“是否满足要求”或“是否正是我所要求的”(YT15)。
这种速度得益于几项关键技术。程序员密切关注 IDE(例如 Cursor)呈现的可视化代码差异,这些差异用绿色突出显示新增内容,红色突出显示删除内容。他们可以通过观察红色和绿色高亮的大小快速评估变更量,如果整体形状和大小看起来可接受,就会决定接受变更而不进行过多仔细审查,否则则拒绝。在一个例子中,程序员在两秒内接受了大量差异,因为他们能立即判断这正是他们想要的(YT21)。
程序员会关注特定的函数调用和 LLM 写的代码注释(例如 YT21)。他们寻找任务成功的关键指标,比如确保调用了正确的 API 或使用了正确的标识符(YT21),如果在快速扫描中某些地方引起注意,会更详细地检查代码行。尤其是对于结构化代码,如 HTML 或 React 组件,
程序员可以快速评估整体结构。
有经验的程序员可以通过观察 AI 生成的代码,直观地感知其是否使用了合适的抽象层次。当看到 AI 为图表编写低级的 HTML/JS/CSS 原语时,程序员立刻认出这种模式,感觉像是在“重新发明轮子”,并推测“应该有一些库能做这些事情”(YT15)。
超越 AI 即时建议,理解其在整个项目中的影响,是专业知识的重要应用。专业知识使程序员能够将 AI 生成的代码与代码库的其他部分或外部文档进行交叉核对。他们可能会检查某个特定文件,以确保 AI 使用了正确的 API 路径(YT21),或者将 AI 使用的参数名称与不同文件中的函数进行交叉核对(YT21,YT15)。
专家能够通过代码在脑海中形象化最终产品,而无需运行应用程序进行测试,这也支持了对 AI 生成代码的快速扫描以进行验证。例如,YT21 反复查看 HTML,以确保生成的代码出现在正确的部分,仅通过观察代码结构就能立即发现数据将显示的位置或标题将显示的位置。
此外,快速扫描的过程不仅仅是让程序员能够对当前轮次 AI 生成的编辑中的潜在错误做出反应。在阅读 AI 生成的代码时,程序员还表现出一种主动的态度。程序员有意识地为审查后续周期的 AI 输出做准备。通过熟悉生成代码的整体结构,注意关键标识符、组件以及模型所做的实现决策,他们为评估未来的输出和差异做好准备,保持代码库随着增长仍具备“快速浏览性”。他们可能会参考 API 文档或组件结构,以了解模型在某些区域应生成的内容(YT21,YT22)。
一种相关的主动行为是程序员能够假设某些情况,比如需要对另一个相关文件进行修改,尽管 Cursor 并未直接提示(YT21)。这需要理解代码库的相互关联性和依赖关系,这些依赖关系并非直接的语义依赖,而是包含在程序员的心理模型中,因此对代码生成模型来说是不可见的。

3.6. 挑战

3.6.1. 除了代码错误之外,程序员在进行 vibe 编码时还会遇到哪些挑战?

观察结果揭示了从业者在进行 vibe 编码时面临的若干挑战,这些挑战超出了传统代码错误的范畴。障碍涵盖了技术、概念和工作流程等多个方面。
一个挑战是传达视觉和抽象的想法。在 YT15 中,创作者在表达他想用箭头做什么时遇到了困难,遭遇了用语言描述图表的根本难题。这种沟通障碍同样存在于复杂的概念目标中,比如在 TW1 中,开发者在形成匹配功能的提示时遇到了困难,她问道:“如果我自己都不知道,[AI]怎么会给我想要的东西呢?”
理解 AI 的能力和局限性是另一个挑战。在 YT15 中,创作者对某个特定的 AI 模型(Claude 3.5 Sonnet)是否能按预期制作动画表示不确定,后来在体验不佳后切换到了另一个模型(o3 mini)。在 TW1 中,创作者觉得某些模型在特定工作流程中表现更好,表明将合适的 AI 能力匹配到合适的任务需要对模型有经验和了解。TW1 还表示,“LLMs 会帮你完成大部分工作,但不会帮你完成全部”,认为 AI 能力存在普遍的内在局限性。
AI 幻觉和未能完全遵守提示指令造成了障碍。在 YT21 中,模型有时生成带有不存在属性的代码,开发者需要通过错误信息和代码检查来识别这些问题。TW1 中的开发者表达了挫败感,
当生成的代码未遵循她定义的系统指令时,她指出代码导出了一个不必要的函数。在 YT22 中,模型生成的文档引用了 Next.js 14 和 JavaScript 文件,而创建者使用的是 Next.js 15 和 TypeScript,因此需要手动更新。为了确保正确集成,还需要包含 Tanstack Form 的特定文档,这也表明模型的“通用知识”并不总是足以应对专业框架。
特定工具的限制也带来了挑战。在 YT15 中,创建者不知道如何撤销 Claude 所做的更改,并且难以在 Cursor 的界面中找到检查点。在 YT21 中,程序员遇到 Cursor 将生成的代码更改显示为聊天消息(而不是文件中的编辑)的情况,导致集成变得困难。
决定何时依赖人工智能与何时进行人工干预会带来新的元认知负担(Tankelevitch 等,2024)。在 YT21 中,程序员经常审查并有时拒绝 AI 生成的代码,他表示审查更改有助于他保持控制。在 YT22 中,创作者经常在提示和手动编辑之间切换,但没有明确的标准来选择其中一种方法。TW1 中的开发者观察到,对于小的调整,她觉得手动操作更快,但对于较大的编辑,她更喜欢使用 AI 辅助。

3.6.2. 这些挑战是如何被解决的?

当程序员在与模型沟通时遇到挑战时,迭代优化提示语无疑是他们的首选方法。在 YT15 中,当创作者难以表达箭头位置的视觉意图时,他们通过多次迭代提示语,逐步加入更详细的口头说明。类似地,在 YT21 中,程序员意识到最初的提示语过于模糊,随后尝试提供更详细且具体的提示语,通常包括编号的需求列表并引用现有的代码片段。当模型“未遵循系统指令”时,TW1 通过优化系统指令来强调可接受的行为;这是一种比单独优化提示语更高层次的策略。
在某一时刻,TW1 中的程序员采用了一种不同寻常的提示策略:当开发者对结果不满意时,会先输入“兄弟,你这样会失去气场的。加油。”,然后再粘贴原始提示并重新提交。这种明确的“气场激发”产生的代码比上一次更多,尽管 TW1 中的程序员仍然对代码质量表示不满。这表明一些“气场编码者”在提示中会尝试使用社交或情感诉求,尽管可能是半开玩笑的。我们在更广泛的语料库中的其他视频中也观察到了类似的提示风格。正如预期的那样,这些结果是喜忧参半的。
开发者根据他们对不同 AI 模型优势的认知,有策略地在模型之间切换。在 YT15 中,创作者根据他的定性评估以及各模型在任务不同方面的优势,主动在 OpenAI 的 o3-mini 和 Anthropic 的 Claude 3.5 Sonnet 模型之间切换,使用一个模型进行动画制作,另一个模型进行初始代码生成。类似地,在 TW1 中,开发者讨论了她在生成网页代码时使用 Claude 系列模型,但为了重写文本则切换到 OpenAI 的 GPT-4.5,因为她认为 GPT-4.5 的文本质量优于 Claude。

3.7. 专业知识

3.7.1. 专家何时以及以何种方式在 vibe 编码中运用他们的专业知识?

专业知识贯穿整个 vibe 编码过程,尽管其运用方式不同于传统编程。
在项目的初始阶段,专家运用他们的知识选择合适的工具和模型。在 YT15 中,创作者在基于图表创建能力评估不同的 AI 模型时展现了专业知识。同样,在 YT21 中,程序员基于对各 IDE 功能的专家评估,有意识地选择使用 Cursor 而非 Visual Studio Code 或 Replit IDE。
在代码生成和审查过程中,专业知识表现为快速评估和错误检测。在 YT15 中,创作者运用其专业知识快速视觉评估 HTML 代码。同样,在 YT21 中,
程序员持续审查代码中的关键元素和潜在问题,立即判断建议代码的正确性和适用性(如第3.5.1节所述),展现出对编程语言和编码模式的高度熟悉。
专家知识同样指导问题识别和解决方案开发。在 YT22 中,遇到空白屏幕时,创作者迅速检查浏览器控制台并识别出“trpc 错误”,展示了读取和解读错误信息的专业能力。在 YT21 中,程序员通过立即识别错误信息中的数据库问题,展示了调试技术的专业知识,有效利用浏览器开发者工具诊断问题,形成关于根本原因的假设,并插入打印语句追踪代码执行。在 YT21 中,程序员展示了对 API 端点、数据结构及应用不同部分如何通信的理解,使其能够识别 API 调用中的问题。同样,在 YT22 中,创作者发现应用试图连接 PostgreSQL 而非 Supabase,并准确知道如何手动编辑环境文件以纠正配置。在 YT22 中,创作者通过将 AI 生成的 React 组件与文档进行对比,评估代码是否符合预期标准,展示并应用了其对 UI 库的知识。
专业知识指导质量控制和特征对齐。在 YT22 中,创作者识别并决定移除那些虽然没有错误或干扰,但与预期设计不符的 AI 生成特征。在 TW1 中,创作者展示了对生成代码何时会增加技术债务从而“降低开发者效率”的理解,并主动解决这些问题。
最后,专家还运用他们的知识来判断何时在 AI 指导和手动编辑之间切换(将在第 3.7.3 节中详细讨论)。
因此,我们观察到专业知识并未被取代,而是被重新引导:从直接编写代码转向评估、指导和完善 AI 生成的解决方案。专家更多地扮演导演、审阅者和编辑的角色,而非逐行编写代码,但他们的技术知识在整个开发过程中依然至关重要。

3.7.2. 在 vibe 编码中使用了哪些类型的专业知识?

如前所述,我们研究的所有视频中的程序员都显然具备软件开发方面的专业知识。YT21 利用了一系列专业技能,包括对数据库和编程语言的具体技术知识,但同样重要的是他们的调试能力、对 API 调用的理解以及软件架构概念。类似地,YT22 展示了对其技术栈(Next.js、TypeScript 等)的技术知识。他们根据项目需求做出明智的库选择决策,并能识别 AI 建议何时符合或偏离需求。
除了“传统”的编程专长(代码质量和可维护性、故障定位和调试)之外,我们研究的程序员还表现出两个额外领域的专长:人工智能专长(理解模型、提示实践、上下文窗口等概念,以及 AI 代码生成的局限性),以及产品管理专长(将目标形成并转化为产品功能)。或许由于原型设计与生产的融合(如第 3.2.2 节所述),vibe 编码需要(或至少在很大程度上依赖于)跨越技术实现、工具理解和产品愿景的多方面技能组合。
在这些视频中,我们看到创作者将传统编码知识与对新工具和工作流程的适应相结合。有效的 vibe 编码者似乎能够在直接编写/编辑代码、为 AI 工具制定有效提示、评估 AI 输出以及理解更广泛的产品和用户需求之间自如切换,这表明技术基础和“技术前瞻”思维模式都是该情境下专长的重要组成部分。
此外,我们推测这些程序员也在培养一种可以称为环境能力的感觉。这是一种能力感,程序员觉得自己能够处理以前不会考虑的任务,因为他们可以使用一个 AI 系统,该系统可能只需投入很少的努力就能完成任务,无论他们自己是否具备相关能力。
技能来手动解决它们(他们很可能具备这些技能)。这可以被视为因积极实现“可能性的意识”(Sarkar,2023b;Sarkar,2023a)而产生的能力。这可能导致代理中心的转移,程序员的信心以及他们承担的项目的范围和复杂性,越来越多地由他们对提示和引导模型的感知能力来定义,而不是他们自身的直接编码能力。

3.7.3. 从感觉编码到手动工作的转变何时发生?

开发者在多种不同情况下以及出于多种原因,从 AI 辅助的 vibe 编码转向手动操作。他们可能出于效率、调试、优化以及在模型难以“引导”的特定环节选择手动工作。vibe 编码过程中转向手动操作不仅是技术需求的体现,也反映了个人偏好、专业水平以及对人机交互的期望。
对于那些提示开销超过直接修改所需努力的简单编辑,开发者通常选择手动操作。在 YT21 中,程序员尝试用 AI 进行内联编辑,但在确定 AI 辅助对于如此小的改动并不必要后,决定手动完成这行简单的修改。在 TW1 中,开发者阐述了她在何时选择手动工作与何时使用 AI 辅助的决策过程。在一个例子中,她在认为手动工作更高效时切换到手动操作,并指出“IntelliJ 的自动补全和搜索仍然比 LLMs 更快”。这促使她“与 AI 竞速”寻找代码位置,有时在找到所需内容更快时会中断 AI 生成过程。
另一个视频中常见的过渡点是当 AI 生成了一个大致完成的解决方案,但需要进行细化。这可以看作是为了效率而转向手动工作的特殊情况。例如,TW1 在 AI“接近”她的目标时接受了代码,然后手动编辑生成的代码,使其更符合她对代码的偏好。类似地,在 YT22 中,创作者进行了手动编辑,移除不需要的 UI 元素,删除多余的按钮,并对代码进行小幅修改,以更好地符合他们的设想。TW1 还描述了她的观点,认为 LLMs 应该用来“接近你想要的结果”,但期望完美的输出是“一个错误”——相反,对她来说,最佳的工作流程是对生成的代码进行后期调整,并通过快速修改代码以适应其他场景来重复使用生成的代码,而不是重新提示 AI。在 YT22 中,创作者手动移除了通过 URL 上传职位描述的功能,专注于基于文本的输入,这代表了一个需要直接操作代码的有意识设计决策。
这种细化同样体现在项目计划和文档中。在 YT22 中,开发者手动纠正了 AI 生成文档中的错误(将“Next.js 14”改为“Next.js 15”),并删除了实施计划中的冗余步骤。
调试是多个视频中手动干预的常见触发因素。在 YT21 中,程序员在遇到错误时几乎立即转为手动操作,使用传统的调试技术,如浏览器开发者工具、控制台检查和假设形成。在一个实例中,他们基于错误信息提出了解决方案,并在没有 AI 帮助的情况下实施了修复(YT21)。YT22 显示了类似的模式,开发者手动编辑环境文件以修复数据库连接错误,并直接干预以纠正运行时问题。这些例子表明,当出现错误时,开发者通常依赖自身专业知识和传统调试方法,而非 AI 工具。
然而,YT15 展现了一个相反的案例,开发者明确表示在遇到错误时“不会自己尝试修复”,并引用了遵循 Karpathy 准则。因此,这些视频确实表现出在手动操作方法上的个体差异。YT15 的创作者有意避免手动调试,几乎完全依赖在整个工作流程中通过重新提示来进行修改。相比之下,YT21 的程序员则经常进行手动代码审查,并根据对正确性和项目需求的理解拒绝 AI 的建议。

3.8. 信任

3.8.1. vibe 编码中的信任本质是什么?它是如何形成的?

vibe 编码中的信任表现为细致入微、动态变化,依赖于警觉的审查,并通过与系统的互动逐步发展,体现为便利性与谨慎之间的平衡。
在 YT15 中,我们看到一位开发者通过对 AI 生成的代码进行最小程度的检查就接受它,从而表现出初步的信任。随着后续成功的输出,信任进一步发展。当模型成功生成复杂动画时,创作者表现出惊讶(“如果这真的有效,那感觉有点疯狂”),随后在成功时强化了信任(“哇,[…] 这正是我所要求的”)。这表明显著的积极结果可以显著增强对 AI 能力的信任。
YT21 向实践者展示了一种看似校准良好的信任心态。这位开发者表达了他可以“快速通过 AI 完成 80 90 % 80 90 % 80-90%80-90 \% 的工作进度”。然而,这种信任是有条件的,正如他明确表示的那样,“我喜欢审查更改,因为这在某种程度上帮助我保持控制权。”过度信任的风险被积极地减轻,因为开发者经常拒绝使用不存在的 API 或他认为维护性较差的方法的 AI 建议。所有参与者都表现出频繁(尽管是轻量级的)代码审查。因此,审查更改对于氛围编码来说似乎很重要,不仅是为了保持对代码的理解,也为了保持主动权、作者所有权和信任。
YT22 进一步强化了这种有条件信任的观念。创作者明确表示他不相信“盲目跟随 AI”,强调自己阅读和审查代码的重要性。他进一步指出:“AI 只是一个工具。”这种工具与使用者关系的强调,可以被视为与责任委托形成明确对比。开发者持续审查代码,将其与文档进行比较,并频繁测试,表明信任是不断重新建立的,而非静态假设的。
TW1 展示了信任与专业知识之间的关系。她的专业知识使她能够识别出模型生成的“过于复杂的代码”并加以修复,同时推测一些 vibe 编码者可能没有她那样解决问题的专业能力。这表明,vibe 编码中的信任可能在很大程度上受到用户自身技术专长的影响。在讨论一个包含“十五万行优质代码”的复杂代码库时,创作者强调她不能允许“糟糕”的代码(例如,过于复杂、性能不佳)进入代码库。即使是在“较简单”的功能上,比如描述 VIP 会员权益的信息页面,TW1 仍然指出她会在提交并部署到网站之前审查拉取请求。随后,一位观众提出质疑,称“代码审查不是 vibe 编码”,这表明在 vibe 编码范式中,信任与验证之间存在一定的张力。
用户通过实验、验证和适应的过程建立对 AI 生成输出的信任。当用户未能批判性地评估 AI 输出或缺乏识别有问题代码的专业知识时,过度信任的风险就会出现。在这些视频中,我们看到开发者大多数情况下似乎成功避免了过度信任。他们对 AI 输出保持批判态度,通过测试和审查验证结果,并具备足够的专业知识来识别有问题的代码。

3.9. 定义和执行氛围编码

3.9.1. 程序员如何定义氛围编码?

因此,Vibe 编码表现为一种编程方法,其特点是与 AI 工具进行对话式、迭代式的交互,模型承担了编码工作的主要部分。从 YT15 中,我们看到 vibe 编码通过口语化、相对随意但详细的提示定义,并且模型是代码创建和完善的主要执行者。同样,在 TW1 中,一位程序员直接将其定义为“让 AI 做繁重的工作”,并描述了工作流程,即 AI 创建一个功能,然后“把它全部润色一遍”。在 YT21 中,程序员将 vibe 编码描述为“只是和应用聊天,说做这个,做那个”。
TW1 将 vibe 编码呈现为灵活且富有创造力,类比为“一幅 Bob Ross 的画作”,在那里“你可以
“随心所欲”指的是 vibe 编码者在工作流程中投入的努力,暗示其定义特征可能是自由和创造性流动,而非使用特定工具。对于规划活动,YT15 展示了 vibe 编码可以包含通过与 AI 互动而演变的渐进式意图。程序员在看到初步结果后引入了诸如箭头标签和动画等新需求,在整个过程中灵活规划,而非严格事先规划。这表明即使不完全处于探索性编程环境中(Kery 和 Myers,2017),vibe 编码也包含探索性元素。
基于这些观察,vibe 编码在编程活动中对 AI 依赖的光谱上似乎处于比“传统”AI 辅助编码(例如 Sarkar 等人(2022a)或 Barke 等人(2023)所记录的初代 GitHub Copilot)更高的位置。它不仅仅是使用 AI 完成离散任务或代码补全,而是将代码的创建和修改大量委托给 AI 系统。然而,这并非完全放手不管。如 YT21 所示,程序员可能依赖 AI 生成代码,但在必要时会迅速切换到手动调试和问题解决。同样,YT22 强调人类监督仍然重要,程序员坚持阅读和审查 AI 生成的代码。
在这个光谱上的位置似乎也因个人偏好和项目阶段而异。TW1 关于“不要审查,直接提交”的评论(虽然是幽默的,因为 TW1 的工作流程在很大程度上依赖于审查 AI 生成的代码)表明一些从业者可能倾向于更依赖 AI,而其他人,如 YT21 和 YT22 中的人,则保持更平衡的方法。YT15 显示程序员可能更愿意在早期阶段快速接受 AI 生成的代码,但随着开发的推进变得更加挑剔。在 YT22 中,一位程序员最初将 vibe coding 描述为“你不是真的深入代码,只是接受 AI”,暗示了最小的人为干预。然而,同一程序员后来澄清说他“不相信盲目跟随 AI”,并强调阅读和审查代码的重要性。这种矛盾反映了 vibe coding 定义的不断演变和个人化特征。

3.9.2. 在流媒体平台上,vibe coding 的表演性方面如何影响这一实践?

为流媒体平台(YouTube 和 Twitch)创作内容会影响氛围编码的呈现和实践。以下观察在解读我们的结果时需要特别注意,因为虽然我们试图总体描述氛围编码这一现象,但可能影响我们研究结果普适性的一个重要方面是,我们数据集中视频的表演对象是在线观众,而这并非大多数氛围编码的普遍特征。
创作者们经常通过热情的反应来强调人工智能令人印象深刻的能力,例如 YT15 的程序员在 AI 生成的动画代码正确运行时反复说“哇”。在 YT21 中,创作者明确指出“正因为人工智能和 Cursor 的能力,[他]才能完成[应用程序的构建]”。创作者们强调 vibe 编码的简便和快速(例如“你甚至可以在不触碰键盘的情况下开发这段代码”,“提升我的生产力”),使用诸如“相信 vibe”之类的修辞手法,并称结果为“棒极了”或“令人难以置信”。即使是明显的失败也可能被积极解读(例如,有创作者假设转录错误迫使模型“更广泛地思考”,成为潜在的优势)。这些反应放大了观众对人工智能有效性的感知,甚至可能达到夸大的程度。
流式工作流程引入了独特的动态,如 TW1 中所见,创作者经常回应聊天中的问题和评论,这可能导致流式工作流程中常见的偏题现象(Drosos 和 Guo,2021),包括因为一位观众提到想要达成某个特定成就而在她的网站上玩游戏。这些互动元素产生了私下编码中不会出现的自发内容,但却能带来有价值的见解,比如当她回应一位观众关于指令长度的担忧时解释说“现在上下文窗口很大,所以[她]不必太担心[令牌使用]”。
表演环境有时会鼓励为叙事流畅性采取程序上的捷径,如 YT21 中所见
程序员表示,“我本可以测试这个 API,但我们就直接试试吧”,表现出保持视频节奏的意愿。类似地,YT22 的创作者围绕适合视频的里程碑来构建开发,宣称“第一阶段成功完成”是在适合视频片段的时间点,并明确提到视频长度是停止在某些点的原因,人工地将开发过程划分以符合内容创作的需求。
尽管强调展示人工智能的能力,但这些演示仍表明现实的工作流程包括调试和人工干预。在 YT22 中,虽然强调“拥抱人工智能”,创作者公开展示了手动纠正 AI 输出、更新 Next.js 版本、删除不需要的功能以及修正拼写错误的实例。这通过承认并详细说明必要的人为监督,提供了对 vibe 编码过程更真实的描绘。
此外,创作者在有些不确定时常常会口头表达他们的理解和期望。因此,这种实时解说可能不仅仅是为了印象管理(将在第4节中讨论),也可能是创作者在开发过程中保持控制感和动力的一种方式。通过叙述过程,他们可能在构建和迭代自己的心理模型。

4. 讨论

4.1. vibe 编码与前几代 AI 辅助编程的不同之处

以 GitHub Copilot 等工具的早期分析为例,AI 辅助编程工具的初始阶段标志着程序员与代码生成交互方式的重大转变。该时期的研究,如 Sarkar 等人(2022a)、Vaithilingam 等人(2022)和 Barke 等人(2023)的研究,记录了程序员在面对基于上下文和注释的代码补全等 AI 能力时的体验变化。随后一代工具在此基础上扩展了代码生成的范围和规模,并允许工具访问扩展其操作范围的其他工具(例如,运行终端命令以创建文件、启动服务器、安装软件包等)。这种能力的转变有时被称为使这些工具更具“代理性”。相应地,我们视频中观察到的 vibe 编码体验,建立在前几代 AI 辅助编程体验的基础上,但在理念、工作流程以及程序员与 AI 的互动方式上引入了独特的细微差别。
一个主要区别在于指导交互的理念。Vibe 编码通常采用更基于信任、放手的方式,优先考虑流程或“氛围”而非严格控制。明确借鉴 Karpathy 经典方法,鼓励依赖 LLM 自主处理错误并解决难题,摒弃传统调试方法。这引入了一种工作流程,程序员可能有意让 AI 更持续地“驱动”,即使是熟悉的任务,也创造出一种更像对话或指导一个能干助手的交互风格,有别于之前识别的分段模式(Barke 等,2023)。
在 vibe 编码中,提示呈现出一种新的特性。早期研究指出,用户在有效传达意图和将其抽象层次与模型能力匹配方面面临困难,通常依赖于显式注释(Sarkar 等,2022a;Barke 等,2023)。vibe 编码似乎使这一过程更加复杂,其提示通常显著更长,并表现出极端的粒度混合。vibe 编码的提示可以融合模糊的美学需求、广泛的意识形态目标(如“使其提升 10 倍”)、具体的技术限制(如使用特定库或文件位置),甚至可能包含直接的代码片段或外部文档链接以提供上下文。早期工具主要依赖注释或显式弹出输入框进行提示(Barke 等,2023),而 vibe 编码则以一种流畅、结构较少的方式整合了语音、文本及可能的其他模态。
评估和调试的过程也表现出差异。早期的 AI 辅助编程需要通过检查、执行、文档查阅和静态分析来进行验证(Sarkar 等,2022a;Barke 等,2023),而 vibe 编码则优先考虑快速、有针对性的检查。如第 3.5.1 节所述,程序员快速浏览代码差异,寻找熟悉的模式或关键词(眼动—
球状检查、扫视)而不是逐行审查。关键是,传统的手动调试技能在 vibe 编码中仍然至关重要。当出现错误时,vibe 编码者经常回归传统方法:分析错误信息,使用浏览器开发者工具或终端,并自行形成关于错误及其解决方案的假设。然后,模型可能被要求实现程序员确定的具体修复,尽管有时只是将原始错误信息提供给模型进行修复。这种由人类诊断和规划、AI 执行修复的工作流程,与早期研究中用户理解和修复 AI 代码的体验(Vaithilingam 等,2022)形成对比。它也不同于早期工具探索模式中更为显著的显式验证策略,如详细检查和文档查阅(Barke 等,2023)。
程序员的专业知识在两种范式中都至关重要,但在 vibe 编码中的应用有所不同。早期研究发现,有经验的用户在“加速”阶段(生成代码以实现明确意图)花费更多时间(Barke 等,2023)。在 vibe 编码中,专业知识不仅对编码本身至关重要,还对与 AI 的战略性互动以及管理更广泛的开发环境至关重要。专家运用他们的知识选择工具和模型,配置项目,快速进行视觉代码评估,当 AI 失败时手动诊断复杂的错误,并战略性地决定何时在 AI 驱动和手动工作之间切换。他们能够快速识别冗余或不需要的 AI 输出,并在多个文件或外部工具(如文档或终端输出)之间综合信息。这种专业水平不再是逐行编写代码(如早期工具可能加速的那样),而更多是协调模型和其他工具在复杂开发环境中的运作(Lee 等人(2025)称之为“任务管理”)。
Vibe 编码被视为第一代 AI 辅助编程的进化,它依托大型语言模型的对话和生成能力,同时仍然需要大量的人类专业知识和判断力。它代表了从将代码生成模型作为高级自动补全或搜索工具,向更集成且功能更强大的开发工具的转变。之前的研究已经指出了将 AI 辅助编程与通过搜索重用、编译或通过规范编程之间的类比存在的不足(Sarkar 等,2022a);而在 vibe 编码的情况下,这些类比甚至更不成立。

4.2. 氛围的格式塔理论

“vibe”在 vibe 编码中的本质和功能是什么?这个当代口语词汇意指“一个地方、情境、人物等的氛围,以及它们带给你的感受”, 3 3 ^(3){ }^{3} “一种能够被感知的独特感觉或品质”。 4 4 ^(4){ }^{4}
我们推测性地提出,vibe coding 的氛围与格式塔心理学(例如,Kaldis (2013))之间存在联系,二者都以整体感知和涌现理解为特征。vibe coding 以其快速、迭代的特性,鼓励程序员将 IDE 中 AI 生成的注释、代码和代理行为视为一个整体,依赖于持续的“氛围检查”,这与格式塔原则相对应,即对世界的感官体验是作为有组织的整体结构(而非部分)来感知的。
在 vibe coding 中,提示通常是高层次的,描述期望的结果而非具体的实现(将程序员的意图和表达重点从组成部分转向整体)。模型随后生成代码,结合正在运行的应用程序以及通过迭代积累的上下文势能,可以被视为一种涌现的格式塔。
快速扫描和评估 AI 生成代码的做法可以通过“良好格式法则”(prägnanz 法则)来解释,该法则指出人们倾向于使用启发式方法来解读感官体验,使其呈现为结构化、有规律、有序、对称且简单的形式。积极的氛围暗示着一个良好形成且易于理解的格式。相反,消极的氛围
可能表明缺乏连贯性或存在意外元素。正如我们所见,氛围编码仍然需要大量的人类专业知识、手动干预以及对代码和结果的批判性评估,尤其是在氛围明显不佳时。
如第 3.5.1 节所述,程序员花在深入理解模型生成的每一行代码上的时间较少,而更多时间用于将其输出与他们的高层次预期和心理模型进行验证。能够做到这一点似乎在很大程度上依赖于程序员现有的专业知识以及对编码模式、框架和其特定代码库的成熟心理图式。这种专业知识超出了手动编写代码所需的专业水平。我们认为,这是一种理解代码整体结构(gestalt)以及与模型对话会话上下文的专业能力。程序员反复表现出能够一眼看出一段代码在整个程序中的作用,并迅速识别潜在问题或低效之处的能力。这之所以可能,是因为代码符合程序员所拥有的心理图式,并且能够随着代码的发展迅速更新,使得整体感觉(vibe gestalt)继续对未来的引导和验证有用。 这种专家模式不同于传统编程中那种对专家快速阅读和综合代码库能力的良好记录,因为它在整体结构中融合了几个新颖的组成元素:AI 生成的注释、对话聊天历史和上下文动量,以及关于模型能力的知识和先验期望。

4.3. 从代码中物质脱离的后果

Vibe 编码工作流程表现出从传统编程物质基础——代码——中物质脱离的现象:程序员不再直接操作代码本身,而是使用 AI 工具作为中介来生成和修改代码库的大部分内容。AI 承担了处理代码繁琐物质操作的角色。这从根本上改变了程序员与程序文本材料的关系。
氛围编码代表了一种将物质参与重新定位为以人工智能工具本身作为中介实体的方式。重要的是,人工智能生成的代码、注释和错误积极促进了程序员意图的形成和完善,这些意图随着会话的进行基于这种对话从最初的想法迭代演变。
这可以通过物质参与理论(Material Engagement Theory,MET)(Malafouris,2019)来理解,该理论认为心智不是一个孤立的内部实体,而是通过与物质世界的参与而根本构成的。从这个角度看,思考往往最好被理解为“物思”(thinging):一种主要通过事物进行思考的过程,心智与物质之间的相互作用积极塑造了认知以及技能和意图的发展。陶艺制作就是一个例子,陶工与泥土的阻力和可供性之间的互动与陶工的思考以及技能和意图的发展密不可分。
从 MET 的视角来看,vibe 编码环境中的 AI 工具可以被解读为一种新的“物”或中介材料。因此,程序员的认知过程不再是通过操作代码语法来实现,而是通过与 AI 界面互动、制定提示语并评估 AI 生成的材料输出(生成的代码及其行为)来完成。这种将 AI 视为“物”的解读表明,vibe 编码涉及的是物质参与对象的转变(从代码转向 AI),而非完全放弃,程序员的专业技能现在转向于驾驭这一新的物质基底。
当然,在这种脱离直接代码操作的过程中,可能失去的是那种通过亲自应对代码语法、结构以及调试挑战中固有的物质阻力而产生的深层次、实践性的理解和技能形成。与代码自身的限制和赋能(实际上,是操作符号所带来的认知维度)进行对话,就像陶工与泥土的互动一样,当通过人工智能代理进行中介时,这种互动会被削弱或改变。
尽管如此,vibe 编码中核心的迭代过程展示了与模型物质响应的互动如何作为一种抵抗形式,积极地塑造和完善程序员的意图与策略。
意外的输出、错误或未能满足要求的情况,作为这种新型中介材料的抵抗或赋能,反作用于程序员的初衷,迫使其进行调整或改进。这种动态与在人工智能工具中设计“富有成效的抵抗”(Sarkar,2024)的理念相契合,旨在培养意图,抵消趋向机械化收敛或麻木意图性的倾向。虽然 vibe 编码的工作流程通常寻求减少摩擦,但模型输出的内在反抗,以及程序员对这些输出的主动评估和响应,构成了一种塑造意图的物质性互动。刻意设计的富有成效的抵抗,能够形式化并增强这一在 vibe 编码工作流程中已自然发生的过程。
挑战(而且到目前为止,这几乎不是一个新颖的观察)在于如何平衡将繁琐操作外包带来的好处与直接面对并解决代码本身材料属性所固有阻力所产生的独特认知参与形式和技能发展的潜在损失之间的关系。
此外,我们的分析发现,在 vibe 编码中,代码本身并未停止作为一种物质基底的存在。程序员仍然与代码材料互动,但这种互动的性质发生了深刻变化,涉及新的材料操作:从快速的高层次审查、扫描差异、识别模式、依赖整体属性和视觉线索,到检查关键字和结构以验证正确性或诊断问题,甚至直接进行手动编写、编辑和调试(尽管是策略性和选择性地,而非常规操作)。关键是,正如我们大量观察到的,驾驭 vibe 编码工作流程仍然需要在操作底层代码材料方面具备相当的专业知识,才能以这些方式进行互动。
有趣的是,YT21 中的一个例子揭示了 AI 可能如何改变程序员与代码物质性的关系的另一种复杂性。具体来说,由于程序员使用了 AI,他们似乎能够使用更“原生”的 JavaScript,而较少依赖像 React 这样的高级库,或像 TypeScript 这样抽象程度较高的语言。高级库和语言当然是针对在特定物质基底中工作的感知限制而直接创建的抽象。关于早期 AI 辅助编程的研究指出,这些抽象中体现的人类专业知识是早期模型成功应用的关键因素,这些模型一次生成的代码行数相对较少(Sarkar 等,2022a),相比之下,LLM 代理在 vibe 编码过程中进行的是跨代码库的广泛变更。
值得在此稍作停留,思考这个例子对手动编程与 AI 辅助编程的影响。对于手动程序员来说,高级库非常有价值,因为它们降低了接触代码的物质障碍,因此对他们的工作流程至关重要。对于手动程序员而言,使用原生 JavaScript 编写代码可能冗长、乏味且容易出错。而对于使用上一代 AI 代码生成工具的 AI 辅助程序员来说,高级库的表达能力极大地增强了在那些模型所能处理的小上下文和输出规模内所能实现的功能。
然而,在使用当代具代理性的人工智能工具时,代码生成模型可以处理这些低层抽象的繁琐材料操作,同时保持足够的上下文,以便在必要时构建更复杂的临时抽象。这可能使程序员重新获得使用低级代码的优势——主要是避免外部依赖,从而对自己的代码库保持更大的控制权和灵活性。矛盾的是,这表明在 vibe 编码中逃避物质参与的做法,也可能促使人们重新有效地使用较低层次的物质基底。

4.3.1. 编码之外的氛围感受

如第 1 节所述,vibe 编码工作流程中,用户避免直接操作“原始”物质基底(例如,文档中的文本、电子表格中的公式、画布上的颜料),这种方式可能会扩展到其他人工智能辅助的知识工作流程中。然而,将这些工作流程转变的潜力
转变为“vibe”版本的方式在不同领域可能有所不同。编程环境中有一些资源,实践者可以利用这些资源来支持他们对 vibe 整体感的理解,而这些资源不易转移到其他领域,比如标识符和组件结构的显著性。代码可以通过单元测试进行测试,或者抛出异常以帮助检测生成不当的代码。代码还可以被编译和部署,供用户快速进行视觉和交互式检查,以判断 AI 在代码生成方面是否有效。另一方面,文本则复杂得多。审查生成的文本可能不可避免地需要逐行阅读,以确保 vibe 风格撰写的文档准确无误并反映用户的意图。因此,将 vibe 编码工作流程扩展到其他领域,可能需要为用户创建结构化支持,以审查“vibey” AI 辅助的工作流程(Gordon 等,2024),然后我们才能看到 vibing 有效地扩展到编码之外的领域。

4.4. 印象管理与自我呈现:为观众而 vibing

印象管理的实践涉及在社交场合中对信息的策略性策划,使个体能够有意识或无意识地引导观察者对人、物或情境形成判断。它有时被视为与自我呈现同义,自我呈现旨在影响他人对自身形象的认知(Goffman,1956)(尽管很容易看出自我呈现是印象管理的一个子集)。我们发现创作者会进行印象管理:除了在流媒体平台上维持观众参与度和满意度的典型关注点之外,他们还特别通过行动来管理他人对其专业能力和价值的认知,尤其是在当前围绕人工智能在知识工作中应用的社会话语背景下。
Reif 等人(2025)提供了使用人工智能工具在职场中所带来的社会评价惩罚的实证证据。他们的研究表明,人们预期并确实会受到他人的负面评价,被认为比使用非人工智能工具或完全不借助工具的人更懒惰、能力较差且不够勤奋。这种惩罚与观察者做出的负面性格归因有关,他们将使用人工智能归因于个人缺陷,而非情境因素。因此,存在一个困境,即人工智能带来的生产力提升可能伴随着社会成本,导致一些员工选择隐瞒自己使用人工智能的事实。
此外,Schilke 和 Reimann(2025)描述了人工智能使用的“透明困境”。他们的实验证据表明,披露人工智能的使用会削弱用户的信任。这是因为披露人工智能使用降低了合法性的认知。在许多工作环境中,人们规范性地期望产出应当是人类专业知识和判断的结果,而披露人工智能的参与被视为偏离这些规范,从而削弱了工作过程的合法性。矛盾的是,那些试图通过透明披露人工智能使用来赢得信任的人反而更不被信任。虽然披露会侵蚀信任,但被第三方揭露使用人工智能对信任的破坏作用更大。
Sarkar(2025)为这些负面社会评价提供了理论解释,将对人工智能的羞辱视为知识工作者阶级焦虑驱动的一种界限工作形式。这一观点认为,对人工智能使用的负面判断和羞辱源于对知识工作职业身份、价值和排他性的感知威胁。人工智能被视为可能侵蚀历史上保护这些角色的“广泛准备”的“护城河”。在对人工智能的羞辱中,常用的论点质疑人工智能生成作品的质量、创造力和合法性,有时将人工智能用户描绘为“无品味的新手”或缺乏传统知识工作所需的技能、努力或奋斗。
氛围编码创作者采用印象管理策略,直接应对这一负面的社会环境。视频创作者并不掩盖他们使用人工智能以避免负面评价,而是将使用人工智能作为其表演的核心。他们理解观众可能会因为将他们使用人工智能视为懒惰、缺乏技能或仅仅产出“糟糕作品”的证据,而做出负面的性格推断或进行羞辱。为此,他们有策略地展示自己的技术专长、调试技能以及引导模型的能力。通过展示他们掌控局面并具备验证和纠正人工智能输出的知识,他们将自己与羞辱话语可能针对的“无技能的机会主义者”或“未受教养的业余爱好者”(Sarkar,2025)区分开来。因此,即使依赖人工智能,他们也展现出能力和专业的形象。这使他们能够在公开拥抱人工智能的同时,保持自己的专业形象和信誉。
本质上,他们正在进行一种积极的界限工作,试图将熟练的人工智能辅助编程定义为一种合法甚至先进的知识工作形式。

4.5. 局限性

我们注意到 vibe 编码的新颖性,可以说它真正开始于 2025 年 2 月 Karpathy 经典著作的发布。这意味着我们的视频语料库仅限于最初的 35 35 ∼35\sim 35 小时 vibe 编码内容,其中 8.5 8.5 ∼8.5\sim 8.5 小时是我们分析的高质量视频。这无疑是一个相当小的语料库,未来的工作需要扩展我们的分析。此外,正如第 1 节开头所述,vibe 编码是一种快速发展的、新兴的且经过协商的实践,这意味着我们的数据见证了 vibe 编码者刚开始进行此类探索和协商。关于随着 vibe 编码者积累经验、在 vibe 编码工作流程中发展出新的节奏以及 IDE 的发展以支持他们,这一实践如何变化,还有许多需要学习的地方。
虽然我们已经详细讨论了这些视频的表演性方面(第3.9.2节和第4.4节),但必须承认,表演性方面可能会以某些方式扭曲工作流程,从而无法准确反映其他现实场景中的氛围编码。为了解决这一问题,未来的工作中有必要通过其他数据来源来研究氛围编码,例如通过实验室实验、访谈和日记研究。
最后,所选视频中没有描绘非专业终端用户(特别是非程序员)。因此,尽管我们的研究结果展示了有经验的程序员如何运用他们的专业知识来应对 vibe 编码工作流程中的许多挑战,但我们并不知道非程序员如何应对这些挑战,以及他们如何制造有效 vibing 的障碍。关键是,我们已经较为详细地研究了专业知识在 vibe 编码中的作用(例如,第 3.7 节),并得出结论:编程和人工智能专业知识不仅重要,而且对成功的 vibe 编码至关重要。但我们只能声称这一点在 vibe 编码者具备上述专业知识的情况下成立,因为我们没有研究非专业人员。因此,需要开展研究以了解非专业人员可能实践的 vibe 编码类型——尽管表面上相似,但这可能是完全不同的活动。

5. 结论

本研究是对 vibe 编码的首次实证分析。vibe 编码是一种新兴的编程范式,开发者主要通过自然语言提示与代码生成 AI 交互来编写和编辑代码,而非直接操作代码。通过对 YouTube 和 Twitch 上精选的边思考边讲解视频进行框架分析,我们考察了程序员在这种新型编程方式中如何设定目标、执行工作流程以及运用专业知识。
我们发现,vibe 编码是传统 AI 辅助编程的有意义演进,其特点是开发者通过提示、评估、调试和完善的循环过程,实现迭代式目标满足。该工作流程始终涉及将代码生成策略性地委托给 AI,同时通过快速评估和有针对性的干预保持人工监督。高效的 vibe 编码者采用多样且混合的提示策略,涵盖从高层次、模糊且主观的指令到详细、细致且技术性的规范。
我们的观察挑战了“vibe 编码消除了编程专业知识需求”的观点。相反,我们观察到专业知识的部署发生了重新分配。传统的编码知识被转向提示和上下文管理、快速代码评估、错误识别与解决,以及决定何时在 AI 辅助和手动干预之间切换。因此,对 AI 工具的信任是细致的、动态的且有条件的,通过反复验证建立,而非盲目接受。
这些发现可能对知识工作具有更广泛的影响。vibe 编码代表了一种物质脱离的早期表现形式,实践者通过 AI 中介来协调内容生产,而非直接操作。然而,我们的分析表明,这类工作流程
仍然需要对底层物质基质(在本例中为代码)具备相当的专业知识,才能有效驾驭。
随着 vibe 编码实践的不断发展,本研究为未来对编程及更广泛知识工作中人机协作流程的研究提供了基础性理解。

参考文献

Barik, T.(2017)。关于编程与游戏的本质及其意义的表达。载于 2017 年 IEEE 视觉语言与以人为本计算研讨会(VL/HCC),第 145-153 页。IEEE。
Barik, T., Johnson, B., 和 Murphy-Hill, E.(2015)。我爱黑客新闻:通过分析社交新闻网站扩展定性研究发现。载于 2015 年第十届软件工程基础联合会议论文集,第 882-885 页。
Barke, S., James, M. B., 和 Polikarpova, N.(2023)。有根的副驾驶:程序员如何与代码生成模型互动。ACM 编程语言学报,7(OOPSLA1):85111。
Drosos, I. 和 Guo, P. J.(2021)。主播教授编程、艺术与游戏:认知学徒制、偶发的可教时刻与隐性专家知识。载于 2021 年 IEEE 视觉语言与以人为本计算研讨会(VL/HCC),第 1-6 页。
Drosos, I., Sarkar, A., Xu, X., Negreanu, C., Rintel, S., 和 Tankelevitch, L. (2024)。 “就像一只会回应的橡皮鸭”:通过参与式提示研究理解生成式人工智能辅助的数据分析工作流程。载于第三届人机交互工作研讨会年会论文集,CHIWORK '24,美国纽约。计算机协会出版。
Ensmenger, N. L. (2012)。计算机男孩的崛起。《计算机历史》。麻省理工学院出版社,英国伦敦。
Goffman, E. (1956)。日常生活中的自我呈现。Doubleday,苏格兰。
Goldsmith, L. J. (2021)。在应用定性研究中使用框架分析。《定性报告》,26(6):2061-2076。
Gordon, A. D., Negreanu, C., Cambronero, J., Chakravarthy, R., Drosos, I., Fang, H., Mitra, B., Richardson, H., Sarkar, A., Simmons, S., Williams, J., 和 Zorn, B. (2024)。共审计:帮助人类复核 AI 生成内容的工具。第 14 届人机交互与编程语言交叉年会论文集(PLATEAU 2024)。
Green, T. R. (1989)。符号的认知维度。人和计算机 V V VV ,第 443-460 页。
Kaldis, B. (2013)。格式塔心理学。载于 Kaldis, B.(编),《哲学与社会科学百科全书》,第 2 卷,第 383-386 页。SAGE 出版公司。
Karpathy, A.(2025)。我称之为“氛围编码”的一种新型编码方式,在这种方式中,你完全沉浸于氛围,拥抱指数增长,甚至忘记代码的存在。我总是“全部接受”,不再阅读差异。当我收到错误信息时,我只是复制粘贴它们,通常这样就能解决问题。代码超出了我平常的理解范围……有时 LLMs 无法修复错误,我就绕过它或者请求随机更改,直到问题消失。对于一次性周末项目来说,这还不算太糟,但仍然相当有趣。[来自账号@karpathy 的推文]。https://x.com/ karpathy / status / 1886192184808149383 。在线;访问时间 2025 年 5 月 31 日。
Kery, M. B. 和 Myers, B. A.(2017)。探索探索性编程。载于 2017 年 IEEE 视觉语言与以人为本计算研讨会(VL/HCC),第 25-29 页。IEEE。
Knuth, D. E.(1992)。文体化编程。语言与信息研究中心出版讲义。斯坦福大学语言与信息研究中心,加利福尼亚州斯坦福。
Laugier, S.(2013)。为什么我们需要普通语言哲学。芝加哥大学出版社。
Lee, H.-P. H., Sarkar, A., Tankelevitch, L., Drosos, I., Rintel, S., Banks, R., 和 Wilson, N. (2025)。生成式人工智能对批判性思维的影响:来自知识工作者调查的自我报告认知努力减少及信心效应。《2025 年 CHI 人机交互大会论文集》,CHI '25,美国纽约。计算机协会。
Lee, M. J. L., Sarkar, A., 和 Blackwell, A. F. (2024)。使用 Copilot 进行标识符命名的可预测性:混合主动编程工具的案例研究。发表于第 35 届程序设计心理学兴趣小组年会论文集(PPIG 2024)。
Malafouris, L. (2019)。心智与物质参与。《现象学与认知科学》,18(1):1-17。
Reif, J. A., Larrick, R. P., 和 Soll, J. B. (2025)。使用人工智能的社会评价惩罚证据。《美国国家科学院院刊》,122(19):e2426766122。
Ritchie, J. 和 Spencer, L.(2002)。应用政策研究的定性数据分析。载于《定性数据分析》,第 173-194 页。Routledge 出版社。
Sarkar, A.(2023a)。计算机应该易于使用吗?质疑用户界面设计中的简洁原则。载于 2023 年 CHI 人机交互大会扩展摘要,CHI EA '23,美国纽约。计算机协会。
Sarkar, A.(2023b)。在生成式人工智能模型的终端用户编程中,代码是否仍将是相关的用户界面?载于 2023 年 ACM SIGPLAN 国际新思想、新范式及编程与软件反思研讨会论文集,Onward! 2023,第 153-167 页,美国纽约。计算机协会。
Sarkar, A.(2024)。意图即一切。载于第 35 届编程心理学兴趣小组年会论文集(PPIG 2024)。
Sarkar, A.(2025)。《人工智能可能写了这篇文章:知识工作中阶级主义侮辱语的诞生》。载于《CHI 人机交互大会扩展摘要集》,CHI EA '25,美国纽约。计算机协会出版。
Sarkar, A., Gordon, A. D., Negreanu, C., Poelitz, C., Srinivasa Ragavan, S., 和 Zorn, B.(2022a)。《用人工智能编程是什么体验?》载于第 33 届编程心理学兴趣小组年会论文集(PPIG 2022)。
Sarkar, A., Ragavan, S. S., Williams, J., 和 Gordon, A. D.(2022b)。《终端用户在电子表格中遇到 lambda 抽象:阿波罗之弓还是阿喀琉斯之踵?》载于 2022 年 IEEE 视觉语言与以人为本计算研讨会(VL/HCC),第 1-11 页。
Schilke, O. 和 Reimann, M.(2025)。《透明度困境:人工智能披露如何侵蚀信任》。组织行为与人类决策过程,188:104405。
Srinivasa Ragavan, S., Sarkar, A., 和 Gordon, A. D. (2021)。电子表格理解:猜测、放弃与回访作者。载于 2021 年 CHI 人机交互大会论文集,CHI '21,美国纽约。计算机协会出版。
Tankelevitch, L., Kewenig, V., Simkute, A., Scott, A. E., Sarkar, A., Sellen, A., 和 Rintel, S. (2024)。生成式人工智能的元认知需求与机遇。载于 CHI 人机交互大会论文集,CHI '24,美国纽约。计算机协会出版。
Vaithilingam, P., Zhang, T., 和 Glassman, E. L. (2022)。期望与体验:评估由大型语言模型驱动的代码生成工具的可用性。载于 2022 年 CHI 人机交互大会扩展摘要,CHI EA '22,美国纽约。计算机协会出版。
Weinberg, G. M. (1971)。计算机程序设计心理学。纽约:Van Nostrand Reinhold 出版社。
吴勇,Kropczynski, J.,Shih, P. C.,和 Carroll, J. M.(2014)。探索 GitHub 及其他平台上的软件开发者生态系统。载于第 17 届 ACM 计算机支持协作工作与社会计算会议伴随出版物论文集,页 265-268。

附录

A. 视频来源

本表列出了我们分析中包含的视频。我们在各个研究阶段对视频的使用情况在“研究阶段”栏中标明:“感知”表示在初始感知阶段观看了视频的10-20分钟片段;“开发”表示两位研究人员详细观看了整个视频,以便开发框架的类别和选择最终分析视频的标准;“分析”表示对该整段视频应用了最终的框架分析。
表2 - 来源表
ID 网址和视频标题 发布日期 持续时间 研究阶段
YT1
https://www.youtube.com/ watch?v=5k2-NOh2tk0 什么是“氛围编码”?这是我的做法...
https://www.youtube.com/ watch?v=5k2-NOh2tk0 What is "Vibe Coding"? Here's how I do it...| https://www.youtube.com/ watch?v=5k2-NOh2tk0 | | :--- | | What is "Vibe Coding"? Here's how I do it... |
2025年2月23日 00:17:19 致敏
YT2 https://www.youtube.com/ watch?v=z7aZBxjfDIw 2025年3月16日 00:26:22
敏化,分析 敏化,分析 qquad\qquad
Sensitising, analysis Sensitising, analysis qquad| Sensitising, analysis | | :--- | | Sensitising, analysis $\qquad$ |
TW1 https://www.twitch.tv/ acorn1010/video/2398186371 !foony | VIP | Vibe Coding | !idea \square
YT3 https://www.youtube.com/ watch?v=OVnDfcRtFew 2025年3月14日 01:53:49 致敏
氛围编码:电子邮件活动与代理 | 聊天机器人构建者 AI
YT6
https://www.youtube.com/ watch?v=xh5PhzZZcnQ 与 Wispr Flow 和 Cursor 一起的氛围编码
https://www.youtube.com/ watch?v=xh5PhzZZcnQ Vibe Coding with Wispr Flow and Cursor| https://www.youtube.com/ watch?v=xh5PhzZZcnQ | | :--- | | Vibe Coding with Wispr Flow and Cursor |
2025年3月12日 00:09:49 致敏
ID URL and video title Date published Duration Research phases YT1 "https://www.youtube.com/ watch?v=5k2-NOh2tk0 What is "Vibe Coding"? Here's how I do it..." 23-Feb-25 00:17:19 Sensitising YT2 https://www.youtube.com/ watch?v=z7aZBxjfDIw 16-Mar-25 00:26:22 "Sensitising, analysis Sensitising, analysis qquad" TW1 https://www.twitch.tv/ acorn1010/video/2398186371 !foony | VIP | Vibe Coding | !idea ◻ YT3 https://www.youtube.com/ watch?v=OVnDfcRtFew 14-Mar-25 01:53:49 Sensitising Vibe Coding: Email Campaigns & Agents | Chatbot Builder AI YT6 "https://www.youtube.com/ watch?v=xh5PhzZZcnQ Vibe Coding with Wispr Flow and Cursor" 12-Mar-25 00:09:49 Sensitising| ID | URL and video title | Date published | Duration | Research phases | | :--- | :--- | :--- | :--- | :--- | | YT1 | https://www.youtube.com/ watch?v=5k2-NOh2tk0 <br> What is "Vibe Coding"? Here's how I do it... | 23-Feb-25 | 00:17:19 | Sensitising | | YT2 | https://www.youtube.com/ watch?v=z7aZBxjfDIw | 16-Mar-25 | 00:26:22 | Sensitising, analysis <br> Sensitising, analysis $\qquad$ | | TW1 | https://www.twitch.tv/ acorn1010/video/2398186371 !foony \| VIP | Vibe Coding | !idea | | $\square$ | | | YT3 | https://www.youtube.com/ watch?v=OVnDfcRtFew | 14-Mar-25 | 01:53:49 | Sensitising | | Vibe Coding: Email Campaigns & Agents \| Chatbot Builder AI | | | | | | | | | | | | | | | | | | YT6 | https://www.youtube.com/ watch?v=xh5PhzZZcnQ <br> Vibe Coding with Wispr Flow and Cursor | 12-Mar-25 | 00:09:49 | Sensitising |
表 2 - 来源表(续)
ID 网址和视频标题 发布日期 持续时间 研究阶段
YT7 https://www.youtube.com/ watch?v=dan3QfN3CDU 2025年2月6日 00:33:47 致敏
Karpathy Vibe 编码完整教程(带光标,无需编码)
YT8 2025年2月28日 00:02:35 致敏
https://www.youtube.com/ watch?v=g84CGmelvSU Vibe 编码:用 AI 启动你的 SaaS(Cursor、Supabase 和 Stripe)
https://www.youtube.com/ watch?v=g84CGmelvSU Vibe Coding: Launch Your SaaS with AI (Cursor, Supabase, & Stripe)| https://www.youtube.com/ watch?v=g84CGmelvSU | | :--- | | Vibe Coding: Launch Your SaaS with AI (Cursor, Supabase, & Stripe) |
YT9 https://www.youtube.com/ watch?v=GwhFjhMF 60A 2025年2月6日 00:10:56 致敏
使用 ChatGPT 进行情绪编码
YT10 https://www.youtube.com/watch?v=ulJrdYXLo9I 2025年3月4日 00:11:52 致敏
用 Vibe 编码制作完整游戏??(AI 编码)
YT11
https://www.youtube.com/watch?v=faezjTHA5SU 非程序员的光标完整指南(Vibe 编码 101)
https://www.youtube.com/ watch?v=faezjTHA5SU Complete Guide to Cursor For NonCoders (Vibe Coding 101)| https://www.youtube.com/ watch?v=faezjTHA5SU | | :--- | | Complete Guide to Cursor For NonCoders (Vibe Coding 101) |
YT12 https://www.youtube.com/ watch?v=JEU07S2WyDs 2025年3月8日 00:21:03 敏感化,发展
2025年的氛围编码:无需打字,无压力,只有人工智能!
YT13 https://www.youtube.com/ watch?v=i0gWDz9EUgI 2025年2月11日 00:13:48 致敏
Vibe 编码入门
2025年3月3日 00:10:22 使敏感
03-Mar-25 00:10:22 Sensitising| 03-Mar-25 | | :--- | | 00:10:22 | | Sensitising |
YT14 https://www.youtube.com/ watch?v=yGZtu_6E118
Databutton AI 免费 AI 代码编辑器中的 Vibe 编码,用于 Claude Sonnet 3.7 的全栈开发
YT15 https://www.youtube.com/ watch?v=irBnUAq3MAw 2025年2月17日 00:17:45 敏化、开发、分析
使用 CURSOR 的 VIBE 编码 - 用 HTML 和 JS 绘图
TW2 https://www.twitch.tv/ coolaj86/video/2399572024 2025年3月7日 05:57:50 致敏
Vibe 编码聚会:与 Grok3 直播展开即服务:链接解短器
TW3 https://www.twitch.tv/vadimnotjustdev/video/2402985837 2025年3月11日 02:41:35 致敏
为 React Native 游戏进行 Vibe 编码
YT16 2025年2月15日 00:03:20 致敏
https://www.youtube.com/ watch?v=HBwXs99LFlw VIBE 编码 3 分钟演示 | 光标 + o3-mini + SuperWhisper
https://www.youtube.com/ watch?v=HBwXs99LFlw VIBE CODING 3 min demo l Cursor + o3-mini + SuperWhisper| https://www.youtube.com/ watch?v=HBwXs99LFlw | | :--- | | VIBE CODING 3 min demo l Cursor + o3-mini + SuperWhisper |
YT17
https://www.youtube.com/ watch?v=Nt2Lkdy3f5Y “Vibe” 编码 AI 代理为我做销售(OpenAI 代理 SDK)
https://www.youtube.com/ watch?v=Nt2Lkdy3f5Y ?Vibe? Coding AI Agent to do sales for me (OpenAI Agents SDK)| https://www.youtube.com/ watch?v=Nt2Lkdy3f5Y | | :--- | | ?Vibe? Coding AI Agent to do sales for me (OpenAI Agents SDK) |
2025年3月17日 00:40:04 致敏
YT18 https://www.youtube.com/ watch?v=_QOvocOFLbo 2025年3月16日 00:22:28 敏感化,发展
氛围编码 - 编码与放松 2025年3月15日
YT19 https://www.youtube.com/ watch?v=TwSYePsdfOk 00:27:28 致敏
回忆中的进行中工作:Vibe 编码加密阿尔法检测代理 #1
ID URL and video title Date published Duration Research phases YT7 https://www.youtube.com/ watch?v=dan3QfN3CDU 06-Feb-25 00:33:47 Sensitising Karpathy Vibe Coding Full Tutorial with Cursor (Zero Coding) YT8 28-Feb-25 00:02:35 Sensitising "https://www.youtube.com/ watch?v=g84CGmelvSU Vibe Coding: Launch Your SaaS with AI (Cursor, Supabase, & Stripe)" YT9 https://www.youtube.com/ watch?v=GwhFjhMF 60A 06-Feb-25 00:10:56 Sensitising Vibe coding using ChatGPT YT10 https://www.youtube.com/ watch?v=ulJrdYXLo9I 04-Mar-25 00:11:52 Sensitising Vibe Coding a FULL Game ?? (AI Coding) YT11 "https://www.youtube.com/ watch?v=faezjTHA5SU Complete Guide to Cursor For NonCoders (Vibe Coding 101)" YT12 https://www.youtube.com/ watch?v=JEU07S2WyDs 08-Mar-25 00:21:03 Sensitising, development Vibe Coding in 2025: No Typing, No Stress, Just AI! YT13 https://www.youtube.com/ watch?v=i0gWDz9EUgI 11-Feb-25 00:13:48 Sensitising Vibe Coding 101 "03-Mar-25 00:10:22 Sensitising" YT14 https://www.youtube.com/ watch?v=yGZtu_6E118 Vibe Coding in Databutton AI FREE AI Code Editor for Full stack development in Claude Sonnet 3.7 YT15 https://www.youtube.com/ watch?v=irBnUAq3MAw 17-Feb-25 00:17:45 Sensitising, development, analysis VIBE CODING with CURSOR - Draw w/ HTML and JS TW2 https://www.twitch.tv/ coolaj86/video/2399572024 07-Mar-25 05:57:50 Sensitising Vibe Coding Hangout: Live w/ Grok3 Unfurl-as-a-Service:Link Unshortener TW3 https://www.twitch.tv/ vadimnotjustdev/video/ 2402985837 11-Mar-25 02:41:35 Sensitising Vibe Coding a React Native Game YT16 15-Feb-25 00:03:20 Sensitising "https://www.youtube.com/ watch?v=HBwXs99LFlw VIBE CODING 3 min demo l Cursor + o3-mini + SuperWhisper" YT17 "https://www.youtube.com/ watch?v=Nt2Lkdy3f5Y ?Vibe? Coding AI Agent to do sales for me (OpenAI Agents SDK)" 17-Mar-25 00:40:04 Sensitising YT18 https://www.youtube.com/ watch?v=_QOvocOFLbo 16-Mar-25 00:22:28 Sensitising, development Vibe Coding - Code & Chill 15-Mar-25 YT19 https://www.youtube.com/ watch?v=TwSYePsdfOk 00:27:28 Sensitising WIP at Recall: Vibe Coding Crypto Alpha Detection Agents #1 | ID | URL and video title | Date published | Duration | Research phases | | :--- | :--- | :--- | :--- | :--- | | YT7 | https://www.youtube.com/ watch?v=dan3QfN3CDU | 06-Feb-25 | 00:33:47 | Sensitising | | | Karpathy Vibe Coding Full Tutorial with Cursor (Zero Coding) | | | | | YT8 | | 28-Feb-25 | 00:02:35 | Sensitising | | | https://www.youtube.com/ watch?v=g84CGmelvSU <br> Vibe Coding: Launch Your SaaS with AI (Cursor, Supabase, & Stripe) | | | | | YT9 | https://www.youtube.com/ watch?v=GwhFjhMF 60A | 06-Feb-25 | 00:10:56 | Sensitising | | | Vibe coding using ChatGPT | | | | | YT10 | https://www.youtube.com/ watch?v=ulJrdYXLo9I | 04-Mar-25 | 00:11:52 | Sensitising | | | Vibe Coding a FULL Game ?? (AI Coding) | | | | | YT11 | https://www.youtube.com/ watch?v=faezjTHA5SU <br> Complete Guide to Cursor For NonCoders (Vibe Coding 101) | | | | | | | | | | | YT12 | https://www.youtube.com/ watch?v=JEU07S2WyDs | 08-Mar-25 | 00:21:03 | Sensitising, development | | | Vibe Coding in 2025: No Typing, No Stress, Just AI! | | | | | YT13 | https://www.youtube.com/ watch?v=i0gWDz9EUgI | 11-Feb-25 | 00:13:48 | Sensitising | | | Vibe Coding 101 | 03-Mar-25 <br> 00:10:22 <br> Sensitising | | | | YT14 | https://www.youtube.com/ watch?v=yGZtu_6E118 | | | | | | Vibe Coding in Databutton AI FREE AI Code Editor for Full stack development in Claude Sonnet 3.7 | | | | | YT15 | https://www.youtube.com/ watch?v=irBnUAq3MAw | 17-Feb-25 | 00:17:45 | Sensitising, development, analysis | | | VIBE CODING with CURSOR - Draw w/ HTML and JS | | | | | TW2 | https://www.twitch.tv/ coolaj86/video/2399572024 | 07-Mar-25 | 05:57:50 | Sensitising | | Vibe Coding Hangout: Live w/ Grok3 Unfurl-as-a-Service:Link Unshortener | | | | | | TW3 | https://www.twitch.tv/ vadimnotjustdev/video/ 2402985837 | 11-Mar-25 | 02:41:35 | Sensitising | | | Vibe Coding a React Native Game | | | | | YT16 | | 15-Feb-25 | 00:03:20 | Sensitising | | | https://www.youtube.com/ watch?v=HBwXs99LFlw <br> VIBE CODING 3 min demo l Cursor + o3-mini + SuperWhisper | | | | | YT17 | https://www.youtube.com/ watch?v=Nt2Lkdy3f5Y <br> ?Vibe? Coding AI Agent to do sales for me (OpenAI Agents SDK) | 17-Mar-25 | 00:40:04 | Sensitising | | YT18 | https://www.youtube.com/ watch?v=_QOvocOFLbo | 16-Mar-25 | 00:22:28 | Sensitising, development | | | Vibe Coding - Code & Chill | 15-Mar-25 | | | | YT19 | https://www.youtube.com/ watch?v=TwSYePsdfOk | | 00:27:28 | Sensitising | | | WIP at Recall: Vibe Coding Crypto Alpha Detection Agents #1 | | | |
表 2 - 来源表(续)
ID 网址和视频标题 发布日期 持续时间 研究阶段
YT20
https://www.youtube.com/ watch?v=Pe8ghwTMFlg ?? VS Code - 代理模式升级!
https://www.youtube.com/ watch?v=Pe8ghwTMFlg ?? VS Code - Agent Mode UPGRADE!| https://www.youtube.com/ watch?v=Pe8ghwTMFlg | | :--- | | ?? VS Code - Agent Mode UPGRADE! |
2025年3月7日 01:32:45 致敏
YT21
https://www.youtube.com/watch?v=EAPWrpvIOjs 用 AI 进行氛围编码:观看我在这段长视频中实时修复聊天界面
https://www.youtube.com/ watch?v=EAPWrpvIOjs Vibe Coding with AI: Watch me fix a chat interface in real-time in this long video| https://www.youtube.com/ watch?v=EAPWrpvIOjs | | :--- | | Vibe Coding with AI: Watch me fix a chat interface in real-time in this long video |
2025年2月6日 01:29:37 敏感化,分析
YT22 https://www.youtube.com/ watch?v=SNARzs6jzWY 2025年3月14日 00:32:05 敏感化,分析
使用最先进 AI 的 Vibe 编码初创公司 - 第一阶段
YT22b https://www.youtube.com/ watch?v=u4yqSsYGpcc
Vibe 编码初创公司:仪表盘第二阶段第一部分
YT23 https://www.youtube.com/ watch?v=DvD0b0ZezQQ 2025年3月19日 致敏
氛围编码实际上很糟糕 2025年3月21日 00:38:24
YT24 https://www.youtube.com/ watch?v=NYVaCr3T1T0 致敏
氛围编码实际上非常疯狂……(初学者氛围编码教程)
YT25 YT25 00:45:16 致敏
他每天通过“氛围编码”应用(使用 Replit、ChatGPT、Upwork)赚取 $ 750 $ 750 $750\$ 750
YT26 https://www.youtube.com/ watch?v=faPSZV5XwyI 2025年3月17日 00:21:48 致敏
开始像专业人士一样进行 Vibe 编码,方法如下
YT27 https://www.youtube.com/ watch?v=y3vQBBmE3Cc 2025年3月20日 00:08:31 致敏
YT28 人工智能在6小时内创建了我的游戏……氛围编码,让你无需动手
https://www.youtube.com/ watch?v=icRXv9RXhXI 2025年3月27日 01:22:39 致敏
Vibe Coding 完整课程 + 赢取 MacBook Pro、PlayStation 5 🎮
YT29 https://www.youtube.com/ watch?v=jTaqixu79qU 2025年3月18日 00:16:28 致敏
Vibe Code 软件即服务及移动游戏(Grok、Bolt、Cursor、Prompts)
TW4
https://www.twitch.tv/ codesinthedark/video/ 2414451732 第??天 x3 - 使用 Cursor 进行氛围游戏编程 #vibejam
https://www.twitch.tv/ codesinthedark/video/ 2414451732 DAY ??x3 - Vibe coding a game using Cursor #vibejam| https://www.twitch.tv/ codesinthedark/video/ 2414451732 | | :--- | | DAY ??x3 - Vibe coding a game using Cursor #vibejam |
2025年3月24日 01:32:40 致敏
YT30 https://www.youtube.com/ watch?v=OZaxtm3RyCw 2025年3月30日 00:12:16 致敏
YT31 https://www.youtube.com/ watch?v=y9XEBnNvu2Q 2025年3月28日 01:12:38 致敏
YT32 2025年3月25日 00:05:19 致敏
氛围编码与作品集评审 https://www.youtube.com/watch?v=_yKDiRlToSs 非程序员的氛围编码——我用 AI 在 30 秒内构建了一个在线游戏
Vibe Coding and Portfolio Reviews https://www.youtube.com/ watch?v=_yKDiRlToSs Vibe Coding For Non Coders - I built an online game in 30 seconds using AI| Vibe Coding and Portfolio Reviews | | :--- | | https://www.youtube.com/ watch?v=_yKDiRlToSs | | Vibe Coding For Non Coders - I built an online game in 30 seconds using AI |
ID URL and video title Date published Duration Research phases YT20 "https://www.youtube.com/ watch?v=Pe8ghwTMFlg ?? VS Code - Agent Mode UPGRADE!" 07-Mar-25 01:32:45 Sensitising YT21 "https://www.youtube.com/ watch?v=EAPWrpvIOjs Vibe Coding with AI: Watch me fix a chat interface in real-time in this long video" 06-Feb-25 01:29:37 Sensitising, analysis YT22 https://www.youtube.com/ watch?v=SNARzs6jzWY 14-Mar-25 00:32:05 Sensitising, analysis Vibe Coding Startup Using Most Advanced AI - Phase 1 YT22b https://www.youtube.com/ watch?v=u4yqSsYGpcc Vibe Coding Startup: Dashboard Phase 2 Part 1 YT23 https://www.youtube.com/ watch?v=DvD0b0ZezQQ 19-Mar-25 Sensitising Vibe coding actually sucks 21-Mar-25 00:38:24 YT24 https://www.youtube.com/ watch?v=NYVaCr3T1T0 Sensitising Vibe Coding is Actually INSANE... (Vibe Coding Tutorial for Beginners) YT25 YT25 00:45:16 Sensitising He makes $750 a day 'Vibe Coding' Apps (using Replit, ChatGPT, Upwork) YT26 https://www.youtube.com/ watch?v=faPSZV5XwyI 17-Mar-25 00:21:48 Sensitising Start Vibe Coding Like a Pro, Here's How YT27 https://www.youtube.com/ watch?v=y3vQBBmE3Cc 20-Mar-25 00:08:31 Sensitising YT28 AI Created My Game in 6 Hours... Vibe Coding so you don't have to https://www.youtube.com/ watch?v=icRXv9RXhXI 27-Mar-25 01:22:39 Sensitising Vibe Coding FULL Course + WIN MacBook Pro, PlayStation 5 ?? YT29 https://www.youtube.com/ watch?v=jTaqixu79qU 18-Mar-25 00:16:28 Sensitising Vibe Code SaaS & Mobile Games (Grok, Bolt, Cursor, Prompts) TW4 "https://www.twitch.tv/ codesinthedark/video/ 2414451732 DAY ??x3 - Vibe coding a game using Cursor #vibejam" 24-Mar-25 01:32:40 Sensitising YT30 https://www.youtube.com/ watch?v=OZaxtm3RyCw 30-Mar-25 00:12:16 Sensitising YT31 https://www.youtube.com/ watch?v=y9XEBnNvu2Q 28-Mar-25 01:12:38 Sensitising YT32 25-Mar-25 00:05:19 Sensitising "Vibe Coding and Portfolio Reviews https://www.youtube.com/ watch?v=_yKDiRlToSs Vibe Coding For Non Coders - I built an online game in 30 seconds using AI" | ID | URL and video title | Date published | Duration | Research phases | | :--- | :--- | :--- | :--- | :--- | | YT20 | https://www.youtube.com/ watch?v=Pe8ghwTMFlg <br> ?? VS Code - Agent Mode UPGRADE! | 07-Mar-25 | 01:32:45 | Sensitising | | YT21 | https://www.youtube.com/ watch?v=EAPWrpvIOjs <br> Vibe Coding with AI: Watch me fix a chat interface in real-time in this long video | 06-Feb-25 | 01:29:37 | Sensitising, analysis | | YT22 | https://www.youtube.com/ watch?v=SNARzs6jzWY | 14-Mar-25 | 00:32:05 | Sensitising, analysis | | | Vibe Coding Startup Using Most Advanced AI - Phase 1 | | | | | YT22b | https://www.youtube.com/ watch?v=u4yqSsYGpcc | | | | | | Vibe Coding Startup: Dashboard Phase 2 Part 1 | | | | | YT23 | https://www.youtube.com/ watch?v=DvD0b0ZezQQ | 19-Mar-25 | | Sensitising | | | Vibe coding actually sucks | 21-Mar-25 | 00:38:24 | | | YT24 | https://www.youtube.com/ watch?v=NYVaCr3T1T0 | | | Sensitising | | Vibe Coding is Actually INSANE... (Vibe Coding Tutorial for Beginners) | | | | | | YT25 | YT25 | | 00:45:16 | Sensitising | | | He makes $\$ 750$ a day 'Vibe Coding' Apps (using Replit, ChatGPT, Upwork) | | | | | YT26 | https://www.youtube.com/ watch?v=faPSZV5XwyI | 17-Mar-25 | 00:21:48 | Sensitising | | Start Vibe Coding Like a Pro, Here's How | | | | | | YT27 | https://www.youtube.com/ watch?v=y3vQBBmE3Cc | 20-Mar-25 | 00:08:31 | Sensitising | | YT28 | AI Created My Game in 6 Hours... Vibe Coding so you don't have to | | | | | | https://www.youtube.com/ watch?v=icRXv9RXhXI | 27-Mar-25 | 01:22:39 | Sensitising | | | Vibe Coding FULL Course + WIN MacBook Pro, PlayStation 5 ?? | | | | | YT29 | https://www.youtube.com/ watch?v=jTaqixu79qU | 18-Mar-25 | 00:16:28 | Sensitising | | Vibe Code SaaS & Mobile Games (Grok, Bolt, Cursor, Prompts) | | | | | | TW4 | https://www.twitch.tv/ codesinthedark/video/ 2414451732 <br> DAY ??x3 - Vibe coding a game using Cursor #vibejam | 24-Mar-25 | 01:32:40 | Sensitising | | | | | | | | YT30 | https://www.youtube.com/ watch?v=OZaxtm3RyCw | 30-Mar-25 | 00:12:16 | Sensitising | | YT31 | https://www.youtube.com/ watch?v=y9XEBnNvu2Q | 28-Mar-25 | 01:12:38 | Sensitising | | | | | | | | YT32 | | 25-Mar-25 | 00:05:19 | Sensitising | | | Vibe Coding and Portfolio Reviews <br> https://www.youtube.com/ watch?v=_yKDiRlToSs <br> Vibe Coding For Non Coders - I built an online game in 30 seconds using AI | | | |
表 2 - 来源表(续)
ID 网址和视频标题 发布日期 持续时间 研究阶段
YT33
https://www.youtube.com/watch?v=5qwucCaHpWY 7 天内制作游戏
https: / /www.youtube.com/ watch?v=5qwucCaHpWY BUILDING A GAME IN 7 DAYS| https: / /www.youtube.com/ watch?v=5qwucCaHpWY | | :--- | | BUILDING A GAME IN 7 DAYS |
2025年3月21日 00:12:16 致敏
YT34
https://www.youtube.com/ watch?v=78jina4V7j4 用 Lovable 一击秒杀排名出租网站并直播(与 Alex 的 Vibe 编码)
https://www.youtube.com/ watch?v=78jina4V7j4 One Shotting a Rank and Rent Site With Lovable and Going Live (Vibe Coding With Alex)| https://www.youtube.com/ watch?v=78jina4V7j4 | | :--- | | One Shotting a Rank and Rent Site With Lovable and Going Live (Vibe Coding With Alex) |
2025年4月2日 00:26:16 致敏
YT35
https://www.youtube.com/ watch?v=X-xiJgkqnok 第 503 集 - Vibe 编码
https://www.youtube.com/ watch?v=X-xiJgkqnok Episode #503 - Vibe Coding| https://www.youtube.com/ watch?v=X-xiJgkqnok | | :--- | | Episode #503 - Vibe Coding |
2025年4月1日 00:17:33 致敏
ID URL and video title Date published Duration Research phases YT33 "https: / /www.youtube.com/ watch?v=5qwucCaHpWY BUILDING A GAME IN 7 DAYS" 21-Mar-25 00:12:16 Sensitising YT34 "https://www.youtube.com/ watch?v=78jina4V7j4 One Shotting a Rank and Rent Site With Lovable and Going Live (Vibe Coding With Alex)" 02-Apr-25 00:26:16 Sensitising YT35 "https://www.youtube.com/ watch?v=X-xiJgkqnok Episode #503 - Vibe Coding" 01-Apr-25 00:17:33 Sensitising| ID | URL and video title | Date published | Duration | Research phases | | :--- | :--- | :--- | :--- | :--- | | YT33 | https: / /www.youtube.com/ watch?v=5qwucCaHpWY <br> BUILDING A GAME IN 7 DAYS | 21-Mar-25 | 00:12:16 | Sensitising | | YT34 | https://www.youtube.com/ watch?v=78jina4V7j4 <br> One Shotting a Rank and Rent Site With Lovable and Going Live (Vibe Coding With Alex) | 02-Apr-25 | 00:26:16 | Sensitising | | YT35 | https://www.youtube.com/ watch?v=X-xiJgkqnok <br> Episode #503 - Vibe Coding | 01-Apr-25 | 00:17:33 | Sensitising |

  1. 1 1 ^(1){ }^{1} 该视频未包含在我们的最终框架分析中,但此示例因其清晰性而在此提供。