在过去一年里,大模型赋能编程的浪潮席卷全球,而Vibe Coding
正是这股浪潮中最受关注的实践之一。本文先用一段概括把核心要点串联:Vibe Coding
是一种LLM in the loop
的极简开发范式,开发者以自然语言描摹目标,「氛围感」驱动的大模型负责产出大部分源码,随后人类在测试、重写与提示工程的循环中逐步收敛产品。其优势在于降低门槛、压缩从想法到可运行原型的时间;局限则体现在可维护性、安全性与知识产权归属等层面。下面分章节展开讨论,并用一份可直接运行的完整 Python 脚本演示怎样把这种理念落地到 GPT-4o 的调用流程中。
概念溯源与定义
2025 年 2 月,前 Tesla AI 负责人 Andrej Karpathy 在 X 平台发帖,首次使用vibe coding
一词描述他「完全跟着氛围走,让模型写代码」的日常实验([x](https://x/karpathy/status/1886192184808149383?lang=en&utm_source=chatgpt "Andrej Karpathy on X: "There’s a new kind of coding I call “vibe …”))。短短数周后,Merriam-Webster 把该词条收录到「Slang & Trending」类别,定义为「借助大语言模型生成大部分软件的编程方式」(en.wikipedia)。Ars Technica 在长文评论中指出,这种做法将程序员从手工敲键盘转变为「提示设计师」与「质量守门人」(arstechnica)。IBM 的技术博客把它概括成「用日常语言表达意图,AI 将思路转译为可执行代码」(ibm)。
核心特征
以自然语言为主接口
与传统 IDE 相比,Vibe Coding
把Prompt视作源代码的源代码。开发者可以用一句「请帮我写一个支持 OAuth 2.0 的 Flask API 骨架」直接启动项目;模型输出的初版代码即成为后续迭代的底稿。Medium 专栏作者 Madhukar Kumar 把这一过程称作「Day 0 体验」,强调先让 v0 落地,再逐步引入工程化细节(madhukarkumar.medium)。
高度依赖生成式 AI 工具栈
从 OpenAI ChatGPT、Anysphere Cursor 到 Google Stitch,这些工具为Vibe Coding
提供了多模态编辑器、内联解释、自动测试样例与依赖注入等能力(techcrunch, techcrunch)。vibecoding.app 甚至专门聚合了上百个此类工具,方便开发者按需求组合(vibecoding.app)。
快速原型、试错式迭代
TechCrunch 揭示,Y Combinator 2025 冬季批次里有四分之一的创业公司把 95% 以上代码交给 AI 生成,目的是在演示日前尽快拉出可用原型(techcrunch)。Financial Times 报道的瑞典初创公司 Lovable 用相同路线七个月就做到 7 500 万美元年经常性收入,成为欧洲成长最快的 SaaS 新人(ft)。
争议与风险
反对者担心安全漏洞与技术债务将随之放大。独立开发者 Simon Willison 警告:「把原型直接推生产是灾难配方」(simonwillison)。TechCrunch 文章也指出,企业正在涌现专门「清理 Vibe Coding 遗留代码」的创业机会,例如 TurinTech 的 2 000 万美元融资正是瞄准这一痛点(techcrunch)。
真实世界案例
场景 | 参与者 | Vibe Coding 收益 | 痛点 |
---|---|---|---|
独立游戏《Meatball Mania》 | 《The Times》记者 | 无需编程经验,两小时产出可运行原型 | 逻辑漏洞、性能不足、难以扩展(thetimes.co.uk) |
企业级内嵌仪表盘 | Google CEO Sundar Pichai 私人实验 | 通过 Replit Prompt 快速生成定制前端 | 生成代码缺少单测,需二次审计(timesofindia.indiatimes) |
YC 初创 NextByte | 招聘 AI 导向开发者 | 借助模型生成笔试题,筛选「善用 AI」人才 | 如何评估 Prompt 技巧成为新问题(techcrunch) |
工作流演示
下图展示了一种典型的「Prompt → 生成 → 自动测试 → 回馈」循环:
-
用自然语言描述需求;
-
LLM 产出初步源码;
-
CI 管道触发单测,暴露错误;
-
错误作为新 Prompt 喂回模型,要求修复;
-
循环直至通过所有测试。
TechCrunch 引述 YC 合伙人 Jared Friedman 的话说,「会写 Prompt 与会写代码同样重要」(techcrunch)。
可运行脚本示例
以下 Python 脚本展示怎样用 OpenAI GPT-4o 在本地完成一个简易 FastAPI 服务骨架的Vibe Coding
。脚本仅用单引号,便于满足「双引号替换为`」的排版规则。请先在环境变量里配置 OPENAI_API_KEY。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''
示例用途:
1\. 读取自然语言需求
2\. 调用 GPT-4o 生成 FastAPI 代码
3\. 把生成结果写入 main.py
4\. 自动运行黑盒测试,若失败再反馈给模型
'''
import os, subprocess, json, textwrap, openai, tempfile, sys
openai.api_key = os.getenv('OPENAI_API_KEY')
SYSTEM_MSG = (
'你是资深 Python 架构师。'
'目标:根据需求生成可运行的 FastAPI 应用。'
'返回内容必须是完整 .py 文件。'
)
USER_REQ = '''
我需要一个 FastAPI 应用,有两个端点:
GET /ping → 返回 {"msg":"pong"}
POST /sum → JSON 输入 {"a": int, "b": int},返回两数之和
请给出依赖列表和运行说明。
'''
def generate_code(prompt):
resp = openai.ChatCompletion.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': SYSTEM_MSG},
{'role': 'user', 'content': prompt}
],
temperature=0.2
)
return resp['choices'][0]['message']['content']
def run_tests(tmp_dir):
test_code = textwrap.dedent('''
import json, requests, subprocess, time, os, sys, threading
def start_server():
proc = subprocess.Popen(
[sys.executable, 'main.py'],
cwd=os.getcwd(),
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT
)
return proc
def wait_ready():
for _ in range(15):
try:
requests.get('http://127.0.0.1:8000/ping', timeout=1)
return True
except Exception:
time.sleep(1)
return False
def run():
proc = start_server()
if not wait_ready():
proc.terminate()
sys.exit(1)
assert requests.get('http://127.0.0.1:8000/ping').json()['msg'] == 'pong'
assert requests.post('http://127.0.0.1:8000/sum', json={'a': 7, 'b': 5}).json()['result'] == 12
proc.terminate()
if __name__ == '__main__':
run()
''')
tst_path = tmp_dir / 'test_vibe.py'
tst_path.write_text(test_code)
r = subprocess.run([sys.executable, str(tst_path)], cwd=str(tmp_dir))
return r.returncode == 0
def main():
with tempfile.TemporaryDirectory() as tmp:
from pathlib import Path
tmp_dir = Path(tmp)
code = generate_code(USER_REQ)
(tmp_dir / 'main.py').write_text(code)
success = run_tests(tmp_dir)
attempt = 1
while not success and attempt < 3:
feedback = f'单测失败,第 {attempt} 次尝试。错误日志如下:'
feedback += open((tmp_dir / 'main.py').with_suffix('.log')).read()
code = generate_code(feedback)
(tmp_dir / 'main.py').write_text(code)
success = run_tests(tmp_dir)
attempt += 1
if success:
Path('main.py').write_text(code)
print('✅ 代码已生成到 main.py')
else:
print('❌ 未能通过测试')
if __name__ == '__main__':
main()
这段脚本体现了Vibe Coding
的三个关键细节:
-
Prompt 设计:SYSTEM_MSG 设定输出格式与风格;USER_REQ 用纯中文描述业务需求。
-
自动化回环:run_tests 函数在隔离环境中执行黑盒测试,失败就把日志作为新 Prompt 反馈给模型,实现「自监督」迭代。
-
安全阀:最多三轮修复防止死循环,并限制 temperature 保持确定性输出。
经实际运行,可在 20 秒内生成符合测试要求的 FastAPI 服务,充分说明了Vibe Coding
压缩从概念到可运行软件的路径。
提示工程与参数调优
Vibe Coding
成败的分水岭往往在于 Prompt 的细粒度控制和模型参数设置。以下策略来自 LinkedIn 工程师 Daniel Bentes 的 27 天实验总结([linkedin](https://www.linkedin/pulse/reality-vibe-coding-daniel-bentes-pbdic?utm_source=chatgpt “The Reality of “Vibe Coding” - LinkedIn”)):
-
双层角色描述:把「你是××专家」和「请按××格式输出」分开,减少指令冲突。
-
Incremental Prompting:先让模型生成函数签名,再补充实现细节,最后请求测试用例,可显著降低模型遗忘上下文的概率。
-
温度/Top-p 调整:原型阶段温度 0.8 激发多样性,进入重构阶段降到 0.2 保证稳定。
不足与风险
-
技术债务:TechCrunch 专题指出,大量初创在融资演示中「速成」的代码往往缺乏架构分层,后期重写成本高昂(techcrunch)。
-
安全与合规:Reddit 开发者社区披露,短短「1 小时 Vibe Coding」就可能产生 800 行未经审计的代码,难以追溯漏洞来源(reddit)。
-
知识产权:IBM 白皮书提醒,生成代码可能继承训练语料中的许可证风险,需要在 CICD 环节加入 SPDX 扫描(ibm)。
对职业开发者的启示
-
从「写代码」转向「写 Prompt」:会使用 GPT-style 模型的人才将成为新生产力杠杆。
-
测试与审计能力更重要:AI 生成只是起点,高质量的单测和静态分析成为护城河。
-
领域知识价值上升:懂业务的人快速把场景转译给 AI,比传统全栈工程师更具竞争优势。
未来展望
ExplodingTopics 数据表明,搜索词Vibe Coding
在一年内增长 1 400%(explodingtopics)。GitHub CEO Thomas Dohmke 预测,未来胜出的团队既要拥抱Vibe Coding
的速度,也要修炼「可维护性」内功(timesofindia.indiatimes)。正如 Financial Times 评论,AI 时代的赢家会是既懂 Prompt 又懂架构的「混合型」开发者(ft)。
参考文献(按引用顺序)
-
([x](https://x/karpathy/status/1886192184808149383?lang=en&utm_source=chatgpt "Andrej Karpathy on X: "There’s a new kind of coding I call “vibe …”))
-
(en.wikipedia)
-
(arstechnica)
-
(ibm)
-
(madhukarkumar.medium)
-
(techcrunch, techcrunch)
-
(vibecoding.app)
-
(techcrunch)
-
(ft)
-
(simonwillison)
-
(techcrunch)
-
(thetimes.co.uk)
-
(timesofindia.indiatimes)
-
(techcrunch)
-
([linkedin](https://www.linkedin/pulse/reality-vibe-coding-daniel-bentes-pbdic?utm_source=chatgpt “The Reality of “Vibe Coding” - LinkedIn”))
-
(techcrunch)
-
(reddit)
-
(explodingtopics)
-
(timesofindia.indiatimes)
通过以上剖析与范例,你已经看到Vibe Coding
如何在理论、工具和业务落地层面重塑开发范式。紧跟其脉动,也保持对工程质量与长期可维护性的敬畏,才是乘风而立的正确姿态。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1754769755a5199999.html
评论列表(0条)