创见博客
AI Coding的四大范式
七崽爱吃小饼干2026/04/09阅读 2

一、Tab 补全(传统 AI 补全)

定位:AI 只是高级输入法

  • 你写一行,AI 猜下一行
  • 只看局部上下文(几十行)
  • 输出:单行/短句补全
  • 触发:按 Tab 接受

典型: Copilot 早期、IntelliCode、Tabnine

人: 主导逻辑、架构、流程、命名、结构 AI: 只补全语法、重复模式、模板代码

一句话:AI 帮你打字,不帮你思考。


二、Vibe Coding(氛围编程)

定位:自然语言撸代码,随性、快速、不严谨 Andrej Karpathy 2025 年提出的概念,现在 Cursor、Claude 主流模式

特点:

  • 不用写详细需求,用自然语言描述“感觉”
  • AI 直接生成整函数、整文件、整页面
  • 人不断口头调整:
    • “这里改一改”
    • “样式好看点”
    • “逻辑顺一点”
  • 没有严格规范、没有文档、没有SPEC

工作流: 自然语言描述 → AI 生成 → 人看一眼 → 口头修改 → 接受

人: 指挥、审美、判断对错 AI: 写大部分代码

一句话:像跟助手聊天一样写代码,快但混乱。


三、SPEC Coding(规范编程)

定位:先写清晰规范,再让AI严格按规范编码 是企业级、工程化、可维护的AI编码方式

核心:先 SPEC,后 CODE

SPEC 包括:

  • 接口定义
  • 入参出参格式
  • 错误码
  • 数据结构
  • 边界条件
  • 测试用例
  • 命名规范、风格规范

AI 严格按照 SPEC 生成代码,不自由发挥,不脑补。

工作流: 写 SPEC → AI 生成代码 → 自动校验是否符合 SPEC → 不一致则重生成

人: 写规范、设计结构、定规则 AI: 机械但准确地实现 SPEC

一句话:AI 是严格执行规范的工人,不允许自由创作。


四、Agentic Coding(智能体编程)

定位:AI 变成独立软件工程师,自主完成整个任务 代表:Devin、OpenClaw、Claude Code Agent、豆包专业版Agent

完全颠覆前面所有模式:

AI 可以:

  1. 自主理解需求
  2. 拆解任务(拆成子任务)
  3. 自主查文档、读代码
  4. 写代码、建文件、改文件
  5. 运行、测试、报错、自己调试
  6. 重构、优化、注释
  7. 自主汇报进度
  8. 直到任务完全完成

人只做:

  • 提最终需求
  • 验收结果
  • 偶尔纠正方向

AI 拥有:

  • 记忆
  • 计划能力
  • 工具调用(shell、git、编辑器)
  • 自我修正
  • 长期任务执行

一句话:AI 自己从头到尾做完一个开发任务,人只是老板。


五、对比表

模式核心人做什么AI做什么控制程度工程适合度代表工具
Tab 补全打字辅助全逻辑+全结构补全下一行人完全控制极高Copilot早期
Vibe 氛围编程自然语言快速撸码指挥+调整写整块代码人松散控制低(适合快速原型)Cursor、ChatGPT
SPEC 规范编程按规范精准生成写SPEC+定规则严格实现SPEC规则完全控制极高(企业生产)企业级AI Coding
Agent 智能体编程自主完成整个任务提需求+验收全流程自主完成AI自主决策中高(未来主流)Devin、OpenClaw、Claude Agent

六、例子

用同一个真实需求:用户登录接口(Node.js + Express + MySQL) 逐一对标四种模式:Tab补全、Vibe、SPEC、Agent

统一需求

实现 POST /login 接收 username、password 查询数据库 user 表 密码正确返回 { code:0, token } 错误返回 { code:-1, msg:'用户名或密码错误' }


1)Tab 补全(传统AI)

AI 只补全下一行/小段,不写完整逻辑 你必须一行行写,AI 只猜接下来该打什么。

你的输入(手动写)

javascript
app.post('/login', async (req, res) => {
  const { username, password } = req.body;
  const [rows] = await db.query('SELECT * FROM user WHERE username = ?', [username]);
  if (rows.length === 0) {

AI 按 Tab 补全(只补一句)

javascript
    return res.json({ code: -1, msg: '用户名或密码错误' });

特点

  • AI 只补全语法、不理解业务
  • 无整体逻辑
  • 你写90%,AI补10%
  • 只输出代码片段,不碰工程

2)Vibe Coding(氛围编程 · 现在主流:Cursor/Claude)

你自然语言随便说,AI直接写整块代码,自由发挥 不看规范、不看结构、不校验。

你的输入(自然语言,很随意)

写一个登录接口,express mysql,判断用户名密码,返回token

AI 直接输出完整函数(自由发挥)

javascript
app.post('/login', async (req, res) => {
  const { username, password } = req.body;
  const [user] = await db.query('SELECT * FROM user WHERE username=?', [username]);
  if (!user) return res.json({ code: -1, msg: '登录失败' });

  const isValid = user[0].password === password;
  if (!isValid) return res.json({ code: -1, msg: '错误' });

  const token = jwt.sign({ id: user[0].id }, 'secret', { expiresIn: '7d' });
  return res.json({ code: 0, token });
});

工作流

自然语言 → AI生成 → 你肉眼看 → 口头改

“提示词更标准一点” “错误信息改准确” “加JWT”

特点

  • 快、随性、自由
  • 可能不规范、变量名随意、无校验
  • AI写80%,你改20%
  • 仍然只输出代码文本,不运行、不调试

3)SPEC Coding(规范编程 · 企业级)

你先写严格规范(SPEC),AI 必须严格遵守,不能自由发挥 这是生产环境可用的AI编码。

你先写 SPEC(人写)

接口:POST /login
请求:{ username:string, password:string }
数据库表:user(id, username, password)
返回码:
  0: 成功
  -1: 用户名不存在
  -2: 密码错误
密码明文比较(演示用)
token 使用 jwt,密钥 process.env.JWT_SECRET,有效期 2h
必须返回固定结构:{ code, msg, token? }

AI 严格按 SPEC 生成(不自由发挥)

javascript
app.post('/login', async (req, res) => {
  const { username, password } = req.body;

  const [rows] = await db.query('SELECT * FROM user WHERE username = ?', [username]);
  if (rows.length === 0) {
    return res.json({ code: -1, msg: '用户名不存在' });
  }

  const user = rows[0];
  if (user.password !== password) {
    return res.json({ code: -2, msg: '密码错误' });
  }

  const token = jwt.sign(
    { userId: user.id },
    process.env.JWT_SECRET,
    { expiresIn: '2h' }
  );

  return res.json({
    code: 0,
    msg: '登录成功',
    token
  });
});

特点

  • 无幻觉、完全可控、可工程化
  • AI 100%遵守规范
  • 人:定规范、定结构
  • AI:只做机械实现
  • 仍然不运行、不调试

4)Agentic Coding(智能体编程 · 下一代)

AI 不再只是写代码,而是直接完成整个开发任务 它有手、眼、计划、工具。

你只说一句话(终极极简)

实现一个安全的登录接口,Express + MySQL,JWT,错误码规范,能直接运行。

Agent 自动做全套(你完全不用动手)

  1. 分析需求
  2. 检查项目结构
  3. 创建 routes/login.js
  4. 写接口、JWT、错误处理
  5. 运行代码
  6. 看报错(比如缺少依赖 jsonwebtoken)
  7. 自动 npm install jsonwebtoken
  8. 再运行、自测、修复
  9. 告诉你:完成

Agent 最终产出(不仅仅是代码,是可运行功能)

javascript
// routes/login.js
const express = require('express');
const jwt = require('jsonwebtoken');
const router = express.Router();
const db = require('../db');

router.post('/', async (req, res) => {
  try {
    const { username, password } = req.body;
    const [users] = await db.query('SELECT * FROM user WHERE username = ?', [username]);
    if (!users.length) return res.json({ code: -1, msg: '用户不存在' });

    const user = users[0];
    if (password !== user.password) return res.json({ code: -2, msg: '密码错误' });

    const token = jwt.sign(
      { id: user.id },
      process.env.JWT_SECRET,
      { expiresIn: '2h' }
    );
    return res.json({ code: 0, token, msg: 'ok' });
  } catch (err) {
    return res.json({ code: -99, msg: '服务器异常' });
  }
});

module.exports = router;

Agent 还会:

  • 自动在 app.js 引入路由
  • 自动处理异常
  • 自动补依赖
  • 自动测试接口
  • 自动修复bug
  • 给你汇报结果

真正区别

Agent 之前:AI 只输出字符串 Agent 之后:AI 完成可交付功能

评论
0/100