10.1 编程范式转移

软件开发正在经历一场由智能体驱动的范式转变。工具的角色从“代码补全”演进到“端到端交付的协作者”,开发者也从“写代码的人”逐步转型为“编排 AI 的人”。

10.1.1 什么是 Vibe Coding

Vibe Coding 用来描述一种“以自然语言驱动、快速迭代”的编程风格:

完全沉浸在“氛围”中,拥抱快速迭代,暂时忘掉代码细节。

核心理念

下图对比了传统编程与 Vibe Coding 的区别:

spinner

Vibe Coding 的特点

特点
描述
典型场景

自然语言驱动

用口语化的方式描述需求

"帮我写一个登录页面"

快速原型

分钟级别生成可运行代码

黑客马拉松、概念验证

迭代对话

通过对话不断调整优化

"把按钮改成蓝色"

低门槛

非程序员也能"编程"

产品经理生成原型

Vibe Coding 的局限

尽管 Vibe Coding 降低了编程门槛,但它也存在明显的局限性:

  1. 技术债务累积:AI 生成的代码可能包含隐藏的设计缺陷

  2. 调试困难:当 AI 生成的代码出错时,不理解代码的用户难以定位问题

  3. 安全风险:未经审查的 AI 代码可能包含安全漏洞

  4. 幻觉污染:AI 可能编造不存在的 API 或逻辑,导致难以排查的隐蔽 Bug

  5. 可维护性差:缺乏系统设计的代码难以长期维护

[!WARNING] Vibe Coding 适合原型验证,但生产级系统需要更系统化的方法。

10.1.2 什么是 Agentic Coding

Agentic Coding 是 Vibe Coding 的进化版:AI 不仅仅生成代码,而是作为一个自主智能体,通过“执行-观察-修正”的反馈闭环,能够:

  1. 理解:深度分析整个代码库的结构和上下文

  2. 规划:制定实现方案并分解为可执行任务

  3. 执行:自主编写、修改、重构代码

  4. 验证:运行测试、分析错误、修复 Bug

  5. 迭代:根据反馈自我改进

spinner

图 10-1:传统开发与 Agentic Coding 的工作流演进对比

Agentic Coding 的关键特征

特征
Vibe Coding
Agentic Coding

代码库理解

单文件/片段

全项目索引

任务分解

用户手动分解

智能体自主分解

错误修复

用户描述问题

智能体自主发现和修复

测试

用户请求生成

智能体主动验证

上下文管理

用户手动提供

智能体动态检索

多文件操作

逐文件进行

跨文件协调

真实案例:API 迁移任务

假设需要将一个 Flask API 迁移到 FastAPI:

Vibe Coding 方式

Agentic Coding 方式

10.1.3 编程范式演进历程

编程范式随着抽象层级的提升不断演进,先后经历了机器码、结构化编程、面向对象编程、敏捷与 IDE、AI 辅助编程、AI 原生编辑器、Agentic Coding 等阶段。

spinner

图 10-2:编程范式演进时间线

编程范式转移的驱动力主要来自如下几个方面:

  1. 模型能力进步:更强的代码理解、规划与生成能力。

  2. 工具使用能力:模型能调用 shell、编辑器、测试框架等工具形成闭环。

  3. 工程化基础设施:可观测性、权限控制、沙箱与评测体系逐步成熟。

  4. 标准化与可移植性:工具描述、上下文传递、轨迹事件等逐步走向标准化。

组织级演进与效能陷阱

在企业级落地过程中,单纯推广 AI 编程工具往往会遭遇 “AI 提效陷阱”

用 AI 开发工具 ≠ 个人提效 ≠ 组织提效。实践中常见的现象是:个人编码环节变快了,但如果需求澄清、评审、测试、发布与治理不升级,组织整体交付速度不一定同步提升。为此,可以用一个简化的“研发成熟度模型”来描述演进路线:

等级
模式
特征
协作方式

L1

AI 辅助

个人主导

AI 在编码环节提供片段辅助,流程基本不变。

L2

AI 协同

人机协同

任务拆解为多个环节,AI 参与设计/编码/测试,人负责审查。

L3

AI 自主

AI 主导

人定义需求,AI 端到端推进交付,人做关键把关与验收。

这一演进路径说明:真正的增益来自“流程 + 治理”的升级,而不只是“更强的代码生成”。

10.1.4 开发者角色的转变

从"写代码"到"编排 AI"

随着编程范式的转移,开发者的角色也发生了根本性的变化。下面从技能栈的转变、新型开发者画像以及职业发展三个方面进行探讨。

spinner

图 10-3:开发者技能栈的转变

新型开发者画像

能力维度
传统开发者
智能体时代开发者

核心竞争力

编码速度和技巧

问题定义和系统思维

日常工作

写代码、调试

需求拆解、审查 AI 输出

学习重点

新框架、新语言

提示词工程、上下文工程

质量保证

代码审查、单元测试

AI 输出验证、护栏设计

团队协作

人-人协作

人-AI-人协作

职业发展影响

[!IMPORTANT] 智能体编程不会取代开发者,而是改变开发者的工作方式。 重复性编码工作将被自动化,但以下能力将更加重要:

  • 理解业务需求并转化为技术方案

  • 设计可维护、可扩展的系统架构

  • 审查 AI 生成代码的质量和安全性

  • 处理 AI 无法解决的复杂边缘情况

10.1.5 Agentic Coding 的工程挑战

尽管前景广阔,Agentic Coding 在工程实践中仍面临挑战:

确定性与可重复性

智能体的行为具有一定的随机性,同样的输入可能产生不同的输出。

应对策略

  • 使用低温度(temperature)参数

  • 建立测试套件验证输出

  • 版本控制智能体配置

上下文管理

大型代码库可能超出上下文窗口限制。

应对策略

  • 动态上下文检索

  • 代码库索引和语义搜索

  • 分层上下文注入

安全性

智能体可能执行危险操作或生成不安全代码。

应对策略

  • 沙箱执行环境

  • 敏感操作审批机制

  • 代码安全扫描

调试困难

当智能体的输出不符合预期时,很难追踪问题根源。

应对策略

  • 详细的执行日志

  • 思维链可视化

  • 分步执行模式


下一节: 10.2 智能体编程原理

Last updated