kerikoの行星观察笔记
返回文章列表
1506 字8 分钟

VibeCoding 实战:从 AI 实习生到 AI 善后工程师

AI思考#AI / VibeCoding / 编程思考

重新定义 AI 的角色

用了 AI 写代码一年多,我越来越觉得:把 AI 当作「代码生成器」是错误的定位。它更像一个 超级实习生 —— 能快速完成大部分工作,但总有一些边缘情况需要你去「善后」。

这就是 VibeCoding 的核心理念:

AI 是超级实习生,我们是善后工程师。

这不是贬低 AI,也不是抬高自己。而是承认一个事实:AI 能处理 70%-95% 的常规工作,但最后那 5%-30% 的边缘情况,必须有人去把关、修正、兜底。


黄金闭环:Prompt → 体验 → 修正

VibeCoding 提出一个「黄金闭环」的工作流:

Prompt → AI 生成 → 人工体验 → 发现问题 → 修正 Prompt → ...

这不是一次性闭环,而是持续迭代:

  1. Prompt: 给 AI 一个清晰的指令
  2. 生成: AI 输出代码/文档/方案
  3. 体验: 实际运行、测试、使用
  4. 修正: 发现问题,改进 Prompt 或直接改代码
  5. 闭环: 把修正后的经验沉淀,下次 Prompt 更精准

这个闭环的关键是:不要期望 AI 第一次就完美。接受不完美,快速迭代,才是正确的使用方式。


四维把控法

当 AI 给你一段代码时,不要只看「能不能跑」。要从四个维度检查:

1. 元素(Elements)

代码的基本组成部分是否正确?

- 变量命名是否清晰?
- 函数签名是否合理?
- 数据结构是否合适?
- 是否有遗漏的 import?

2. 关系(Relations)

元素之间的连接是否正确?

- 函数调用参数是否匹配?
- 数据流是否合理?
- 错误处理是否覆盖?
- 模块边界是否清晰?

3. 逻辑(Logic)

业务逻辑是否正确?

- 是否符合需求?
- 是否有隐藏的 bug?
- 是否考虑了边界情况?
- 是否有安全漏洞?

4. 状态(State)

运行时的状态管理是否正确?

- 并发是否安全?
- 资源是否正确释放?
- 状态切换是否完整?
- 是否有内存泄漏风险?

这四维不是孤立的,要综合来看。比如一段代码「元素」都对了,但「逻辑」可能有问题;「状态」看起来没问题,但「关系」可能漏了错误处理。


70-95 定律

VibeCoding 还有一个「70-95 定律」:

AI 能完成 70%-95% 的常规工作,剩下 5%-30% 需要人工介入。

这个比例不是固定值,取决于:

  • 任务的复杂度: 简单任务 AI 覆盖率高,复杂任务覆盖率低
  • 你的 Prompt 质量: Prompt 越精准,AI 覆盖率越高
  • 你的经验: 你越熟悉领域,越能发现 AI 漏掉的部分
  • AI 的能力边界: 有些领域 AI 天生不擅长

实际应用

前 70%:让 AI 做

这部分是「确定性工作」:

- 写基础 CRUD
- 生成模板代码
- 补充文档注释
- 格式化代码
- 写单元测试用例(常规情况)

放心让 AI 做,节省时间。

后 25%:边缘情况

这部分是「不确定性工作」,AI 可能漏掉:

- 错误处理:空指针、超时、边界值
- 并发问题:死锁、竞态条件
- 安全问题:注入、权限校验
- 性能问题:N+1 查询、大循环
- 兼容问题:版本差异、环境差异

AI 会给你「看起来正确」的代码,但边缘情况需要你主动检查。

最后 5%:必须手写

这部分是「核心决策」:

- 架构设计:选什么方案
- 业务逻辑:怎么理解需求
- 代码品味:命名、抽象、风格
- 最终兜底:上线前的最后一眼

这些不能交给 AI,因为它们需要「人的判断」。


我的实战经验

案例 1:LLM 性能测试框架

我用 AI 生成了一个 pytest 框架的骨架。AI 给了我:

  • ✅ 基础测试结构
  • ✅ pytest fixture 定义
  • ✅ 常规测试用例模板
  • ❌ 漏掉了:测试结果采集到数据库的逻辑
  • ❌ 漏掉了:多平台兼容性处理(Ascend/CUDA)
  • ❌ 漏掉了:测试阶段的划分(单元/冒烟/回归)

我补上了这些边缘情况,最终框架才好用。

案例 2:KV Cache 计算器

AI 生成了核心计算逻辑:

  • ✅ MLA/GQA/Hybrid 的公式
  • ✅ 基础 UI 框架
  • ❌ 漏掉了:不同精度的影响(FP16/FP32/INT8)
  • ❌ 漏掉了:多卡场景的计算
  • ❌ 漏掉了:实际内存和显存的换算

这些需要我自己补充,因为 AI 不知道实际生产环境的复杂性。


成为更好的「善后工程师」

接受 AI 是超级实习生后,我们要做的不是「对抗 AI」,而是「成为更好的善后工程师」:

1. 提升领域知识

你越懂领域,越能发现 AI 漏掉的部分。

  • LLM 推理:了解 KV Cache、显存计算、推理延迟
  • 容器部署:了解镜像分层、Registry API、多架构
  • 性能测试:了解 pytest 架构、测试阶段划分、结果采集

2. 建立检查清单

每次 AI 给代码后,按「四维把控法」检查:

元素: 有遗漏吗?
关系: 连接正确吗?
逻辑: 有 bug 吗?
状态: 并发安全吗?

3. 沉淀 Prompt

把「修正后的经验」沉淀到 Prompt:

# 修正前
"写一个 pytest 测试框架"
# 修正后(更精准)
"写一个 pytest 测试框架,支持:
- 多测试阶段:单元、冒烟、回归、版本
- 多平台兼容:Ascend NPU 和 CUDA GPU
- 结果采集:自动导出到数据库
- 错误处理:超时、空指针、边界值"

Prompt 越精准,AI 覆盖率越高。


结语

VibeCoding 不是一种「方法论」,更像一种「心态」:

  • 不要神话 AI:它不是万能代码生成器
  • 不要对抗 AI:它是高效的超级实习生
  • 要善后:边缘情况、核心决策,必须有人兜底

当我们从「AI 写代码」变成「人机协作」,效率和质量才能真正提升。

愿我们都是好的「善后工程师」,在 AI 时代找到自己的位置。

评论