Vibe Coding v.s Prompt Engineering
摘要 VibeCoding和Prompt Engineering是两种AI辅助编程范式。VibeCoding(如GitHub Copilot)强调AI与开发者实时协作,基于上下文主动生成代码补全或建议,形成流畅的“结对编程”体验;而Prompt Engineering(如ChatGPT)通过精心设计输入提示控制模型输出,适用于一次性任务。二者各有优劣。
1 Vibe Coding
1.1 什么是 Vibe Coding
Vibe Coding 一词最初出现在 2022–2023 年的开发者社区讨论中,用来描述 AI(如 GitHub Copilot、Cursor、Codeium)带来的“跟随氛围写代码”的体验。与传统“提示驱动”(prompt-driven)的方式不同,它强调一种“流畅的开发氛围(coding vibe)”。
整体而言,Vibe Coding 是一种人机协作式编程范式,强调 AI 模型与开发者持续交互,AI 不仅响应明确指令,还会基于上下文、代码风格、项目结构,主动提供代码建议。可以类比为“AI 与程序员结对编程(pair programming)”。
常见的Vibe Coding工具有Github Copilot、Cursor、Codeium、Tabnine、JetBrains AI Assistant等,大致可分为被动型Vibe 和主动型Vibe两类:
被动型Vibe是指 AI 仅在开发者输入时做联想补全,比如 GitHub Copilot 基础功能。
主动型Vibe是指 AI 根据上下文主动提出重构建议、生成文档、发现 bug,比如Cursor 的自动建议。
Vibe Coding的工作流程基本可概括为:
(1) 程序员写代码
(2) AI 模型实时读取上下文,包括文件、项目依赖、甚至整个仓库
(3) AI 自动给出补全/改写建议,不需要程序员下达明确指令
(4) 程序员选择接受、修改或拒绝AI的建议
在整个开发过程中,持续进行以上4个步骤,形成“人+AI”的连续编程过程。
举个例子
假设你在 Python 里输入:
def fetch_data(url):
response =
在 Vibe Coding 工具里,AI 会立即自动补全:
response = requests.get(url)
if response.status_code == 200:
return response.json()
return None
1.2 Vibe Coding的特点和现状
优点:流畅;上下文敏感;类似于结对编程;尤其适用于编写模版代码或一些基础的、常见的代码逻辑。
缺点:一旦AI对项目结构理解错误,就有可能生成错误方向的代码;AI 给出的建议本身有可能带来安全隐患,比如拼接 SQL。
主要研究方向:
(1) 生产力评估: 如测量 Copilot 使用者代码产出效率的提升
(2) 人因研究:研究开发者是否更容易进入心流、是否产生过度依赖
(3) 安全性研究:如 vibe coding 提高了“有漏洞代码被无意识接受”的概率
(4) 可解释性研究:解释补全逻辑
2 Prompt Engineering
2.1 什么是 Prompt Engineering
Prompt Engineering 是一种设计输入提示(prompt)以控制大模型输出的技术。本质是通过精心设计输入语句,使模型生成符合预期的结果。
常见的Prompt Engineering可大致分为:
零样本提示,Zero-shot prompting,只给任务描述;
少样本提示,Few-shot prompting,提供任务描述 + 示例;
链式思维提示,Chain-of-thought prompting,引导模型逐步推理;
上下文学习,In-context learning,通过长提示模拟“训练”;
系统提示 / 模板提示:固定规则。
常见的Prompt Engineering工具有:OpenAI Playground / ChatGPT、LangChain / LlamaIndex、PromptLayer、FlowGPT 等。使用时,AI工具会首先分析目标任务,常见任务有生成、推理、转换等;随后程序员给出初始 prompt,一般包含目标描述、限制条件、示例等;AI给出输出后,程序员对prompt进行改进,直到输出质量满足需求。
举个例子
Prompt:请你写一个 Python 函数,输入一个整数 n,返回前 n 个斐波那契数。
AI收到prompt后,应输出正确的 Fibonacci 函数。
2.2 Prompt Engineering 的特点和现状
优点:灵活,几乎适用于所有大模型任务;迭代快,调整prompt后立刻就能见到效果。
缺点:结果不稳定,很小的改动也可能导致输出差异巨大;依赖程序员的开发经验。
主要研究方向:
提示优化:自动搜索最优 prompt;
少样本学习理论;
安全性:prompt injection 攻击、越权指令研究;
工具化:如 Prompt-as-Code,prompt version control。
3 Vibe Coding vs Prompt Engineering
相同点:都属于人类与AI大模型交互生成代码;依赖上下文影响输出;都存在安全问题。
不同点:Vibe Coding的交互方式为持续协作、实时补全,Prompt Engineering为一次性任务;Vibe Coding的上下文是项目结构、文件内容,Prompt Engineering的上下文是prompt内容本身;Vibe Coding主要用于IDE内写代码,Prompt Engineering则可用于广义任务,如写作、问答等。
目前二者正在被逐渐融合:在 vibe coding 的基础上嵌入 prompt engineering(比如配置、规则、模板),形成“AI 辅助开发流水线”。
更多推荐
所有评论(0)