# Vibe coding 是什么？描述、运行、检查

> Vibe coding（中文常译作“氛围编程”）指的是用平常的话把想要的软件描述给 AI 工具，运行它做出来的东西，再提出修改，自己并不去读代码。这个说法出自 Andrej Karpathy 在 2025 年 2 月 2 日发在 X 上的一条帖子。它适合做原型和自用的小工具。凡是存放密码、付款信息或别人数据的应用，代码仍然需要有人审查。

Mindket 编辑部 · 发布于 2026-11-05 · 更新于 2026-11-05 · https://mindket.com/cn/learn/vibe-coding/what-is-vibe-coding

## 要点

- 把应用的想法写成三行简述：谁来用，用来做什么，做完是什么样子。
- 每次改动都亲手点一遍，再提下一个要求。
- 没人审查过的应用，不要放 API 密钥、密码和客户资料。
- 第一个项目从浏览器里的应用生成器开始，想自己掌握文件时再换编辑器。

## 试一遍：描述、运行、检查

今天就能试 vibe coding，什么都不用装。在浏览器里打开 [Lovable](https://lovable.dev) 这类应用生成器，注册一个免费账号，在提示框里写下你想要的东西。提示词就是你给 AI 的指令，用平常说话的方式写就行。

挑一个这周你自己就会用的小东西。下面这条提示词是我们自己写的示例，不是哪家厂商的模板。它说清了给谁用、做什么、先不要什么，第一次尝试时，工具需要从你这里知道的，大体就是这些。

然后开始绕圈。每绕一圈只要几分钟，你会绕上很多圈。

````text
做一个帮我们分摊餐费的网页。
谁来用：我和三个朋友，在饭桌上用手机打开。
它做什么：我输入总金额和小费比例，勾选在场的人，
页面显示每人应付多少，精确到分。
先不要：登录、历史记录和付款功能。
````

1. **只描述一件小事。**说清谁来用、他们要做什么、应该看到什么。第一版先别加登录和数据库。Lovable 自己的快速入门，示例提示词最后一句就是“No login or database yet”，因为没有这两样，第一版出错的地方就少。
2. **让它生成，然后打开预览。**预览就是正在运行的应用，显示在聊天旁边。在 Lovable 里，它在聊天面板的右侧，里面的每个按钮都能点。
3. **像陌生人那样去用。**每个按钮都按一下。在该填数字的地方输入字母。切换到手机视图，因为多数人会用手机打开你的链接。
4. **把看到的情况说出来，一条消息只提一个修改。**“小费输入框能填负数，应该拒绝。”给了 AI 一个能修的事实。“改得好一点”只能让它去猜。
5. **留一个能退回去的版本。**Lovable 把每次改动都存进版本历史，Cursor 的智能体工作时会存检查点。要做大改动之前，先记下哪个版本是好的。

> 循环卡住，往往是因为反馈太含糊。一个 bug 过了两轮还在，就按步骤描述它：你点了什么，期望看到什么，实际发生了什么。AI 能照着这些步骤重现问题，一句“还是坏的”它可做不到。

## 这个名字从哪里来

Collins 词典称 Andrej Karpathy 为 AI 先驱，这个词就是他在那条帖子里造出来的。帖子的其余部分，Simon Willison 在博客里全文转载过，读起来像一份坦白的习惯清单。

Karpathy 用语音和编辑器对话，报错信息原样贴回去，什么也不解释，还写道：“I "Accept All" always, I don't read the diffs anymore.”diff 就是一次改动增加和删除了哪些行的清单。bug 修不好时，他就让 AI 随便改，改到问题消失为止。他自己的评价很平淡：“It's not too bad for throwaway weekend projects.”

六周之后，程序员兼博主 Willison 把这个词的意思钉牢了。在他看来，vibe coding 就是“用 LLM 构建软件，却不审查它写出的代码”。LLM 即大语言模型，这些工具背后用的都是这类 AI。如果你审查了代码、测试过，而且能把每一行讲给别人听，哪怕全部代码都是 AI 敲的，他也把这叫作软件开发。

对你来说，这条界线才是有用的部分。要问的从来不是代码是不是 AI 写的，而是有没有人检查过，出错的代价有多大。聚会安排小工具出了 bug，顶多让你尴尬一晚。网店泄露了银行卡号，代价就大得多。

这个词传播得很快。Collins 把 vibe coding 选为 2025 年度词汇，并把它描述为“用自然语言提示人工智能来编写计算机代码”。

> 有一种新的编程方式，我叫它“vibe coding”：你完全顺着感觉走，拥抱指数级的进步，忘掉代码的存在。
>
> Andrej Karpathy, [X](https://x.com/karpathy/status/1886192184808149383) (2026-11-05 查阅)

**这个词是怎样传开的**

1. **2025年2月2日** Karpathy 在 X 上发帖。他给 vibe coding 起了名字，并说用来做周末随手丢的小项目还不错。
2. **2025年3月19日** Willison 划出界线。没审查的代码是 vibe coding，审查过、测试过、看得懂的代码是软件开发。
3. **2025年11月6日** 年度词汇。Collins 把 vibe coding 选为 2025 年度词汇。
4. **2026年2月4日** Karpathy 一年后回顾。他把经过审查的专业做法叫作“agentic engineering”（智能体工程）。

来源：[Andrej Karpathy 的 X 帖子](https://x.com/karpathy/status/1886192184808149383) (2026-11-05 查阅)；[Simon Willison 的博客](https://simonwillison.net/2025/Mar/19/vibe-coding/) (2026-11-05 查阅)；[Collins 词典博客](https://blog.collinsdictionary.com/language-lovers/collins-word-of-the-year-2025-ai-meets-authenticity-as-society-shifts/) (2026-11-05 查阅)；[Andrej Karpathy 的 X 帖子](https://x.com/karpathy/status/2019137879310836075) (2026-11-05 查阅)

[![Andrej Karpathy（@karpathy）2025 年 2 月 2 日在 X 上发帖：有一种新的编程方式，我叫它“vibe coding”，你完全顺着感觉走，拥抱指数级的进步，忘掉代码的存在](https://mindket.com/blog/shots/x-karpathy-vibe-coding.webp?v=bdbb53df088e)](https://x.com/karpathy/status/1886192184808149383)

Andrej Karpathy 在 X 上，2025 年 2 月 2 日

> 这是 Karpathy 的第一条帖子，截自 2026 年 11 月 5 号 X 官方嵌入卡片显示的样子，时间按 UTC 显示，其余内容折叠在“Show more”后面。点开图片就能到 X 上看原帖。

## 应用生成器、AI 编辑器和终端智能体

所有 vibe coding 工具跑的都是同一个循环。区别在于代码放在哪里、你能看到多少。正是这一点，决定了第一个项目该用哪一种。

**应用生成器**在浏览器里运行，做出来的东西也由它托管。Lovable 就是一种。你写要求，它来生成，点一下 Publish 按钮，应用就上线到一个可以分享的网址。你一个文件都不用打开，不过想看代码时，代码就在那里。

**AI 编辑器**是装在你电脑上的程序，它修改你打开的文件夹里的文件。Cursor 是一种，装了 GitHub Copilot 的 VS Code 也是。你拿到的是文件和每次改动的记录，同时也要自己负责运行应用、把它放到网上。本课程后面给 Cursor 和 Copilot 的智能体各安排了一课。

**终端智能体**在终端里工作，终端就是输入命令的那个文字窗口。Claude Code 就是一种，它另有一门课。它读写的文件和编辑器一样，所以适合本来就习惯敲命令的人。

几类工具之间可以互相搬。Lovable 能把项目同步到 GitHub，那是一个存放代码和改动历史的网站，任何编辑器都能从那里打开这份副本。

第一个项目，我们会选应用生成器。你先看到一个能用的应用，再去了解一文件夹代码长什么样，以后照样可以把代码搬进编辑器。

|  | 应用生成器 | AI 编辑器 | 终端智能体 |
| --- | --- | --- | --- |
| 本课程里的例子 | Lovable | Cursor，装了 Copilot 的 VS Code | Claude Code，另有一门课 |
| 要安装什么 | 不用装，在浏览器里运行 | 一个桌面应用 | 一个命令行程序 |
| 应用在哪里运行 | Lovable 托管，给它一个网址 | 在你的电脑上，直到你把它放到网上 | 在你的电脑上，直到你把它放到网上 |
| 什么时候能看到代码 | 打开 Code 标签页才看得到 | 一直都在编辑器里 | 一直都在你的文件夹里 |

## 一年之后，Karpathy 和 Willison 怎样看 vibe coding

2026 年 2 月 4 日，也就是第一条帖子发出一年后，Karpathy [在 X 上](https://x.com/karpathy/status/2019137879310836075)做了一次回顾。他写道，2025 年初的 AI 模型能力还弱，vibe coding 多半只用来做好玩的一次性项目和演示。一年过去，专业开发者越来越多地通过 AI 智能体写软件，只是监督和审查都多了。这种更严谨的做法，他最喜欢的叫法是“agentic engineering”（智能体工程）：代码由智能体来写，你负责指挥它们、检查它们做的事。

2026 年 5 月 6 日，Simon Willison [在博客上](https://simonwillison.net/2026/May/6/vibe-coding-and-agentic-engineering/)整理一期播客访谈时，把界线划得更清楚。给别人用的软件，他说用 vibe coding 做是“极不负责任”的，因为里面是别人的信息。只给自己用的小工具，出了 bug 只伤到你自己，那就放手去做。他也承认，在他自己的项目里，这两种做法正越来越分不清。

动手之前，可以拿他们的分法检验一下你的项目。bug 只会让你自己吃亏，上面那个描述、运行、检查的循环就够了。别人会把自己的数据填进这个应用，那就从第一天起安排人检查代码，下一节讲的正是这件事。下面这段 2025 年 6 月的视频里，Karpathy 在一场主题演讲中亲口讲了 vibe coding。

> 如今（一年之后），通过 LLM 智能体编程正越来越成为专业开发者的默认工作方式，只是多了监督和审查。
>
> Andrej Karpathy, vibe coding 一词的提出者，引文为译文, [X](https://x.com/karpathy/status/2019137879310836075) (2026-11-05 查阅)

[![Andrej Karpathy（@karpathy）2026 年 2 月 4 日在 X 上引用自己第一条 vibe coding 帖子：很多人把这条转发成 vibe coding 一周年，来做点回顾](https://mindket.com/blog/shots/x-karpathy-agentic-engineering.webp?v=9665e3326597)](https://x.com/karpathy/status/2019137879310836075)

Andrej Karpathy 在 X 上，2026 年 2 月 4 日

[Andrej Karpathy: Software Is Changing (Again)](https://www.youtube.com/watch?v=LCEmiRjPEtQ)

Y Combinator 在 YouTube 上的视频：2025 年 6 月 17 日，Karpathy 在旧金山 AI Startup School 的主题演讲。“Vibe Coding: Everyone is now a programmer”这一章从 29:06 开始。

> X 官方嵌入卡片的截图，拍摄于 2026 年 11 月 5 日，时间为协调世界时（UTC）。X 用“Show more”截断了帖子后面的内容。点击截图可到 X 上打开原帖。

## Vibe coding 容易在哪里出问题

这个循环只检查你看得到的东西。坏掉的按钮会在预览里露出来。任何访客都能读出每一行数据的数据库，却不会，严重的问题就藏在这个空档里。

第一个陷阱是密钥。API 密钥是一个程序访问另一项服务时用的密码，比如支付或邮件服务。在访客浏览器里运行的代码藏不住它，所以你把密钥贴进聊天时，Lovable 会发现它，引导你存进单独的 Secrets 存储，改由服务器端代码去调用那项服务。

第二个是数据访问。行级安全（row-level security）是数据库里的一组规则，决定哪个用户能看到、能修改哪些行。Lovable 的安全页面说，规则配错是“数据泄露的常见原因”，每次发布时都会快速扫描一遍。同一个页面也说得很直白：这些扫描“不能代替彻底的安全审查”。

第三个是没人读的代码。Karpathy 在帖子里自己承认，代码长到了“超出我平常理解范围”的地步，而卖这类工具的 Cursor，在讲 vibe coding 的帮助页里也得出同样的结论。

要降低这个风险，不必逐行读代码。每次改动保留之前，请 AI 用平常的话解释它改了什么，再请它列出应用存放数据的每一个地方。哪个回答让你意外，那就是该停下来、找一位懂代码的人的时候。

> 我们不建议把你自己都不理解的软件发布到生产环境。
>
> Cursor, 讲 vibe coding 的帮助页, [Cursor 帮助：What is vibe coding?](https://cursor.com/help/ai-features/vibe-coding) (2026-11-05 查阅)

- 一条提示词就要整个产品。先做一个页面，检查好，再加下一个。
- 把 API 密钥贴进聊天或页面代码。放到工具存放密钥的地方，再问清应用会怎样使用它。
- 还没人看过数据的访问规则，就让陌生人注册、往里存数据。
- 每次改动都直接接受，看都不看。至少读一下改了哪些文件，这样没要求的改动也能被发现。
- 接入按用量计费的服务，却不设花费上限。Willison 特别点出，碰到按用量计费的服务，vibe coding 要格外小心。

## 下一课：用 Lovable 做一个应用

进入下一课之前，先给你想要的应用写一份简述：谁来用，用来做什么，怎样算做成了。在下面再列一张单子，写明这个应用绝不能存放的东西，比如密码或客户资料。单子是空的，这个想法就很适合当第一个 vibe coding 项目。单子不空，就先做一个不含这些部分的版本。

[Lovable 这一课](https://mindket.com/cn/learn/vibe-coding/build-app-with-lovable)会带着这份简述去生成应用，指着屏幕修改它，再把它发布到一个网址上。你只需要一个免费的 Lovable 账号。

## 自测一下

1. 按 Simon Willison 的定义，什么情况下用 AI 写代码就成了 vibe coding？

   A. AI 写了一半以上的代码
   B. 没有人审查 AI 写出的代码
   C. 应用在浏览器里运行
   D. 提示词是说出来的，不是打出来的

   答案：B。 Willison 把 vibe coding 定义为用 LLM 构建软件，却不审查它写出的代码。

2. 给新应用写的第一条提示词，应该先不要什么？

   A. 谁来用这个应用
   B. 这个应用要做什么
   C. 登录和数据库

   答案：C。 Lovable 的第一条示例提示词要求先不加登录和数据库，因为没有它们，第一版出错的地方就少。

3. 在 Lovable 应用里，邮件服务的 API 密钥应该放在哪里？

   A. 放进 Secrets 存储，由服务器端代码使用
   B. 写进页面代码，让浏览器直接访问服务
   C. 留在聊天记录里，让 Lovable 记住
   D. 写进应用的标题

   答案：A。 在访客浏览器里运行的代码藏不住密钥，所以 Lovable 把密钥放进 Secrets，再从服务器端调用服务。

4. 你想要能留在自己电脑上、以后交给开发者的文件，该用哪一类工具？

   A. 托管应用的应用生成器
   B. 没有项目文件夹的聊天应用
   C. 一本 AI 术语词典
   D. Cursor 这样的 AI 编辑器

   答案：D。 AI 编辑器修改的是你电脑上某个文件夹里的文件，所以从第一次改动起，代码就归你所有。

## 常见问题

### 完全没有编程经验，也能 vibe coding 吗？

做小应用可以。Cursor 的帮助页举的例子，是设计师做出能用的原型、产品经理搭起内部工具。你仍然需要的，是每次改动都亲手测一遍的习惯，以及把 bug 描述准确的耐心。

### Vibe coding 做商业应用安全吗？

单靠它不行。客户用上之前，请一位懂代码的人检查应用怎样存数据、怎样登录、怎样保管密钥。Lovable 自己也建议，处理敏感数据的应用再做一次专业的安全审查。

### Vibe coding 工具要花钱吗？

起步不用。Lovable 的免费套餐每天有五个生成额度，每月最多 30 个。Cursor 有一个用量有限的 Free 套餐，在 VS Code 里没有套餐就登录 Copilot，符合条件的账号会加入 Copilot Free。项目一大，很快就会超出这些额度。

### 新手该从哪个 vibe coding 工具开始？

看你这周结束时想拿到什么。想要一个能分享的链接，就用应用生成器，它替你发布。想要能留在手里、以后交给开发者的文件，就用 AI 编辑器，应用由你自己运行。

## 资料来源

- [Andrej Karpathy on X, February 2, 2025](https://x.com/karpathy/status/1886192184808149383) (2026-11-05 查阅)
- [Andrej Karpathy on X, February 4, 2026](https://x.com/karpathy/status/2019137879310836075) (2026-11-05 查阅)
- [Simon Willison: Not all AI-assisted programming is vibe coding](https://simonwillison.net/2025/Mar/19/vibe-coding/) (2026-11-05 查阅)
- [Simon Willison: Vibe coding and agentic engineering are getting closer than I'd like](https://simonwillison.net/2026/May/6/vibe-coding-and-agentic-engineering/) (2026-11-05 查阅)
- [Y Combinator on YouTube: Andrej Karpathy: Software Is Changing (Again)](https://www.youtube.com/watch?v=LCEmiRjPEtQ) (2026-11-05 查阅)
- [Collins Dictionary blog: Word of the Year 2025](https://blog.collinsdictionary.com/language-lovers/collins-word-of-the-year-2025-ai-meets-authenticity-as-society-shifts/) (2026-11-05 查阅)
- [Cursor Help: What is vibe coding?](https://cursor.com/help/ai-features/vibe-coding) (2026-11-05 查阅)
- [Cursor Help: Pricing and plans](https://cursor.com/help/account-and-billing/pricing) (2026-11-05 查阅)
- [Lovable docs: Quick start](https://docs.lovable.dev/introduction/getting-started) (2026-11-05 查阅)
- [Lovable docs: Security overview](https://docs.lovable.dev/features/security) (2026-11-05 查阅)
- [Lovable docs: Sync your project with GitHub](https://docs.lovable.dev/integrations/github) (2026-11-05 查阅)
- [VS Code docs: Set up GitHub Copilot](https://code.visualstudio.com/docs/setup/copilot) (2026-11-05 查阅)

[浏览技能](https://mindket.com/cn/skills)
