现在位置: 首页 > AI Agent 教程 > 正文

Vibe Coding 入门教程

Vibe Coding(氛围编程)是一种借助大语言模型(LLM),用自然语言描述需求来生成代码的全新编程范式,让你将精力集中在「想做什么」而非「怎么写」。


什么是 Vibe Coding

「Vibe Coding」一词由前特斯拉 AI 总监、OpenAI 联合创始人 Andrej Karpathy 在 2025 年 2 月首次提出。

他在社交媒体上这样描述:一种全新的编码方式,你完全沉浸在氛围中,拥抱指数级的效率提升,甚至忘记代码本身的存在。

简单来说,Vibe Coding 就是:你用人话告诉 AI 你想要什么功能,AI 帮你把代码写出来。

你不需要纠结语法细节、不需要记忆 API 参数、不需要手动调试每一个错误——这些都由 AI 来处理。

你的角色从「写代码的人」转变为「描述需求的人」,或者说——从程序员变成了产品经理+架构师。

Vibe Coding 不是让 AI 替代你思考,而是让 AI 处理低价值的重复劳动,让你专注于更有创造性的部分:理解问题、设计架构、验证结果。


Vibe Coding vs 传统编程

理解 Vibe Coding 与传统的编程方式有什么不同,有助于你更好地使用它。

维度 传统编程 Vibe Coding
输入方式 逐行手写代码 自然语言描述需求
关注点 语法、API、实现细节 需求、架构、验证
调试方式 手动断点/日志调试 把错误信息丢给 AI,让它修复
速度 取决于打字速度和熟练度 取决于需求描述的清晰程度
适用场景 所有编程任务 原型开发、CRUD、脚本工具、UI 页面
核心技能 编程语言掌握度 需求拆解 + 结果验证能力

为什么现在可以 Vibe Coding

Vibe Coding 之所以在 2025 年成为可能,是因为几个关键条件的成熟。

大模型编码能力的飞跃

GPT-4、Claude 4、Gemini 等模型在代码生成方面的准确率大幅提升。

它们不仅能写出语法正确的代码,还能理解项目上下文、遵循最佳实践、处理边界情况。

更重要的是,它们可以处理超长上下文——一次性阅读整个项目,理解你的代码库结构。

AI 编程工具的爆发

Cursor、Claude Code、GitHub Copilot、Windsurf 等工具将 AI 能力深度集成到了开发流程中。

这些工具不仅能补全代码,还能直接修改文件、运行终端命令、搜索代码库——像一个真正的开发者一样工作。

Agent 模式的出现

Agent 模式的工具可以自主执行多步骤任务:读取文件、编写代码、运行测试、根据测试结果修复错误。

你只需要下达一个初始指令,Agent 会自己循环迭代直到任务完成。


主流工具介绍

以下是目前最主流的 Vibe Coding 工具,各有侧重。

工具 类型 核心特点 适合场景
Qoder Agent IDE 深度代码库理解、Quest 自动任务、多 Agent、Repo Wiki、CLI/IDE 双模式 中大型工程、长期项目维护
Trae AI 原生 IDE 对话驱动开发、自动生成与修改代码 Vibe Coding、新项目快速搭建
Cursor AI 编辑器 项目级理解、多文件修改、Agent 模式 全栈开发、大型项目
Claude Code CLI Agent 在终端中执行复杂任务、自动修改项目 后端、自动化开发
GitHub Copilot AI 编程助手 智能补全、聊天、Agent 日常开发辅助
Windsurf AI 编辑器 Cascade 工作流、自动多文件修改 快速开发、小中型项目
OpenAI Codex AI 编程 Agent 理解任务并执行完整开发流程 自动化开发
Bolt.new 在线 AI 开发平台 一句话生成完整应用 MVP、原型验证
v0 by Vercel UI 生成工具 自动生成 React 页面 页面设计、组件开发
Replit AI 在线 IDE 云开发 + AI 协作 教学、快速测试
Lovable AI 应用生成器 从描述直接生成 SaaS 创业、产品验证
Firebase Studio AI 应用平台 AI + 后端服务集成 App / Web 开发

如果你是第一次接触 Vibe Coding,可以先使用国内的 QoderTrae 开始,操作类似 VS Code,学习曲线最平缓,且不会改变你熟悉的编辑器环境。


快速开始

下面以 Claude Code(终端 CLI)Cursor 为例,展示 Vibe Coding 的典型工作流。

使用 Claude Code

假设你要写一个 Python 脚本,从 CSV 文件中读取数据并生成统计报告。

第一步:在终端中启动 Claude Code。

claude

第二步:用自然语言描述你的需求。

你不需要写任何代码,只需要清楚地说明你想要的:

# 直接用人话告诉 AI 你要什么
$ claude

> 帮我写一个 Python 脚本,读取 sales.csv 文件,
> 按月份统计销售额,生成一个 sales_report.csv 报告文件。
> 报告包含:月份、总销售额、订单数、平均客单价。
> 跳过空行和无效数据,有异常时打印警告但继续执行。

第三步:AI 会自动创建文件、编写代码、并运行验证。

实例

# 文件路径:sales_report.py
import csv
from collections import defaultdict
import sys

def generate_sales_report(input_file, output_file):
    """从 CSV 读取销售数据,按月统计并输出报告"""
    # 按月聚合数据
    monthly = defaultdict(lambda: {"total_sales": 0.0, "orders": 0})

    # 读取 CSV(使用 utf-8-sig 处理 BOM 头)
    with open(input_file, "r", encoding="utf-8-sig") as f:
        reader = csv.DictReader(f)
        for row_num, row in enumerate(reader, start=2):
            try:
                # 跳过完全空行
                if not any(row.values()):
                    continue

                # 提取字段——必填字段缺失时跳过并警告
                date_str = row.get("date", "")
                amount_str = row.get("amount", "")

                if not date_str or not amount_str:
                    print(f"警告: 第 {row_num} 行缺少必填字段,已跳过")
                    continue

                # 解析月份(取前7位:YYYY-MM)
                month = date_str[:7]
                amount = float(amount_str)

                monthly[month]["total_sales"] += amount
                monthly[month]["orders"] += 1

            except (ValueError, KeyError) as e:
                print(f"警告: 第 {row_num} 行数据异常 ({e}),已跳过")
                continue

    # 写入报告
    with open(output_file, "w", newline="", encoding="utf-8") as f:
        writer = csv.writer(f)
        writer.writerow(["月份", "总销售额", "订单数", "平均客单价"])
        for month in sorted(monthly.keys()):
            data = monthly[month]
            avg = round(data["total_sales"] / data["orders"], 2)
            writer.writerow([month, data["total_sales"], data["orders"], avg])

    print(f"报告已生成: {output_file}")
    print(f"共覆盖 {len(monthly)} 个月份")

# 程序入口
if __name__ == "__main__":
    input_file = "sales.csv"
    output_file = "sales_report.csv"
    generate_sales_report(input_file, output_file)

输入示例 CSV:

date,product,amount,quantity
2025-01-15,Widget A,199.00,2
2025-01-20,Gadget B,59.50,1
2025-02-03,Widget A,199.00,3
2025-02-14,Gadget B,59.50,2
2025-03-08,Widget A,199.00,1

运行结果:

$ python sales_report.py
报告已生成: sales_report.csv
共覆盖 3 个月份

生成报告内容:

月份,总销售额,订单数,平均客单价
2025-01,258.5,2,129.25
2025-02,258.5,2,129.25
2025-03,199.0,1,199.0

使用 Cursor

在 Cursor 中,按 Cmd + I(Mac)或 Ctrl + I(Windows)打开 Composer。

Composer 支持多文件编辑,可以一次性修改项目中多个文件。

你可以在 Composer 中输入:

## 需求
给现有的 REST API 项目添加用户认证功能:

1. 创建 User 模型(字段:id, username, email, hashed_password, created_at)
2. 实现 /register 和 /login 两个接口
3. 使用 JWT token,过期时间 30 分钟
4. 注册时验证 email 格式和 username 长度(3-20 字符)
5. 密码最少 8 位,至少包含一个数字和一个字母

## 技术栈
- FastAPI + SQLAlchemy + SQLite
- passlib 做密码哈希
- python-jose 做 JWT

Cursor 会读取你的项目结构,然后逐步创建模型、路由、中间件等文件。

期间你可以随时提修改意见,比如「把 JWT 过期时间改成 1 小时」「给返回结果加上用户角色字段」。


Vibe Coding 最佳实践

虽然 Vibe Coding 降低了写代码的门槛,但要想用得顺畅,依然需要掌握一些技巧。

需求描述要具体

模糊的需求产出模糊的代码。

不推荐的描述 推荐的描述
帮我写个登录功能 实现邮箱+密码登录,使用 JWT token,过期时间 30 分钟,密码用 bcrypt 加密
美化一下这个页面 把按钮改成圆角、加上 hover 阴影效果,主色调改为蓝色 #3b82f6
修一下这个 bug 当用户输入负数时,程序崩溃了。应该返回错误提示而不是崩溃。错误堆栈见下。
加个缓存 用 Redis 缓存用户信息,key 为 user:{id},过期时间 10 分钟,更新时主动失效

分步骤推进

不要一开始就描述一个完整的大型系统。

把大任务拆成多个小步骤,每步验证通过后再进行下一步。

比如:先搭数据模型 → 再写 API 接口 → 再加认证 → 再加前端页面。

这样每一步的上下文都清晰可控,AI 不容易在中间「迷失方向」。

始终验证结果

AI 生成的代码不一定正确。

你需要做的事:

  • 运行代码,确认它能正常工作
  • 检查关键逻辑,确保没有隐藏的 bug
  • 确认边界情况被正确处理(空输入、异常值、并发)
  • 检查安全相关的代码(密码处理、SQL 查询、权限校验)

Vibe Coding 的核心原则:你信任 AI 来写代码,但你不信任 AI 写出来的代码一定是正确的。验证是你不可推卸的责任。

提供足够的上下文

AI 不了解你的项目,除非你告诉它。

在描述需求时,提供以下上下文会让结果好很多:

  • 当前使用的技术栈和框架版本
  • 相关的文件路径和代码片段
  • 项目的目录结构和命名规范
  • 已有的数据库模型或接口定义

用错误信息驱动迭代

这是 Vibe Coding 最高效的调试方式。

当代码运行出错时,直接把错误信息复制给 AI,让它修复。

大部分语法错误、类型错误、导入错误,AI 都能在几秒内修好。

实例

# 直接把错误堆栈丢给 AI
Traceback (most recent call last):
  File "main.py", line 23, in process_data
    result = data["results"] / count
TypeError: unsupported operand type(s) for /: 'str' and 'int'

# 补充说明
# count 可能为 0,需要处理除零错误

常见误区与注意事项

误区一:AI 可以替代所有编程知识

Vibe Coding 降低了编程门槛,但没有消除门槛。

你仍然需要理解基本概念:变量、函数、API、数据库、HTTP、异步等。

否则你无法判断 AI 生成的代码是否正确,也无法有效地描述需求。

误区二:一次性描述所有功能

不要把整个产品的 PRD 文档复制给 AI,期望它一次性生成完美代码。

AI 的注意力有上限,需求越多越容易出错。

更有效的方式是:核心功能 → 验证 → 添加功能 → 验证 → 继续迭代。

误区三:不读 AI 写的代码

有些开发者拿到 AI 生成的代码后直接合入,这是非常危险的。

AI 可能会引入安全漏洞、性能问题、或者完全不合理的架构。

你至少需要快速浏览一遍关键逻辑,确保没有明显问题。

注意事项

  • 敏感信息(API 密钥、数据库密码)不要直接写在对话里——先在代码中用环境变量占位,再手动填入
  • 每次关键修改后提交 Git,方便出问题时回滚
  • AI 生成的代码可能不符合你团队的编码规范,需要手动调整
  • 对于需要高可靠性的代码(支付、认证、数据处理),AI 生成后务必人工审查

适合 Vibe Coding 的场景

Vibe Coding 并非万能,了解什么场景适合它能帮你更好地分配精力。

场景 适合度 说明
原型/MVP 开发 极高 快速验证想法,几个小时出一个可用的 demo
CRUD 接口 极高 重复模式明确,AI 完成度很高
前端页面/组件 很高 HTML/CSS/React 组件,AI 非常擅长
脚本/自动化工具 很高 一次性脚本、数据处理、文件操作
单元测试编写 很高 根据函数签名生成测试用例
复杂算法实现 中等 需要清晰的算法描述,且需人工验证正确性
底层系统优化 较低 涉及内存布局、缓存行、硬件特性,AI 容易出现细微错误
高安全需求代码 谨慎 加密、认证、支付类代码,AI 生成后必须专家审查

小结

Vibe Coding 代表了一种编程范式的转变:从「程序员手动实现」走向「程序员描述需求,AI 负责实现」。

它不会让程序员失业,但它会改变程序员的工作方式。

未来的核心竞争力不再是写代码的速度,而是:拆解问题的能力、验证结果的能力、以及判断什么值得做的眼光。

Vibe Coding 真正的价值不是让你少写代码,而是让你有更多时间去思考「应该写什么」。