乐于分享
好东西不私藏

为什么你让AI写的代码总是不对?根本原因在这里

为什么你让AI写的代码总是不对?根本原因在这里

用AI写代码总返工?因为你少了这个步骤

我在百度的时候,负责过每天1000亿条数据量的风控平台。

现在团队在推 vibe coding,AI帮我们写代码,我负责把关质量。

说实话,这套模式跑了一段时间,最大的坑不是AI能力不够,而是:AI写出来的东西,经常不是我想要的那个东西。

你有没有这种感觉?

把需求说给AI,它唰唰写出来一堆代码,你一看,逻辑上没毛病,功能上也实现了,但就是感觉哪里不对,越看越别扭,最后还是得推翻重来。

反复了几次之后我才意识到一件事:

问题不出在AI,问题出在我们开口说话之前,根本没有对齐过”要做什么”。


你以为AI没听懂,其实是你没说清

这不是AI的问题,是沟通的结构性问题。

你脑子里的”做一个用户管理模块”,和AI理解的”用户管理模块”,从一开始就是两个东西。

你没有告诉它边界在哪里,接口长什么样,哪些数据要校验,哪些情况要报错。

AI只能按它对”用户管理”这四个字的理解去写,写出来当然和你想的不一样。

这就是返工的根本原因,不是模型不行,是你们从来没有真正对齐过”要建什么”

这个问题我在推团队 vibe coding 实践的时候踩过很多次,后来接触了 openspec,才算真正理清楚了。

先说 opencode,再说 openspec 解决什么

opencode 是一个跑在终端里的 AI 编程工具。

不需要开 IDE,不需要装插件,直接在命令行里调 AI 帮你读代码、改代码、跑命令,多模型支持,想用 Claude 还是 GPT 或者本地模型都行。

它的定位有点像 Claude Code,但完全开源,开发者自己搭,数据不出去,团队用起来更放心。

omo 是 oh my opencode 的简称,类比 oh my zsh 对 zsh 做的事,它是 opencode 的插件生态系统。

装了 omo,opencode 就变成了一个可以按需扩展的平台。你可以按自己的场景,选装不同的插件。

openspec 就是跑在这套体系上的一个插件。

它解决的那个核心问题,就是我上面说的那个:在写代码之前,先让 AI 和人达成”要构建什么”的共识。

openspec 具体是怎么工作的

流程很清楚,三步:

第一步,你描述你要做什么。

不是直接说”帮我写一个用户管理模块”,而是把这个功能的边界、约束、核心逻辑说清楚。你可以用自然语言,不需要写技术文档。

第二步,openspec 帮你生成一份结构化的 spec 文档。

这份文档会把功能需求、接口设计、数据结构、边界条件整理成清晰的规格说明。你来确认,这就是你想要的,还是哪里还没对上。

第三步,对齐了,AI 按 spec 写代码。

重点是第二步,那个确认的动作。

那一刻,你和 AI 终于在同一张图纸上看同一个东西。之后 AI 写出来的代码,大概率就是你要的那个东西。

这就是规范驱动开发,Spec-Driven Development,核心逻辑只有一句话:

先对齐,再执行。顺序变了,结果就完全不一样。

我用这套组合跑了一个功能模块之后

以前的做法:把需求口头说给 AI,AI 开始写,写了一半发现方向不对,推翻重来,来来回回改三四轮,最后还是有地方没对上,只能将就用。

现在的做法:先让 openspec 帮我把”要做什么”梳理成 spec,我对着 spec 逐条确认,确认完了 opencode 按 spec 写代码。

整个过程,没有一次返工。

你会发现,不是 AI 变强了,是我们对话的起点变了。

之前我们是在用 AI 猜你的意图,现在我们是用 AI 执行你们共同确认过的方案。这两个,根本不是一回事。

哪些人最值得试这套组合

不是所有场景都需要。

如果你只是偶尔让 AI 改个小函数、写个正则,不需要。

但如果你在做这几件事,就值得认真看一眼:

一,用 AI 做一个完整的功能模块或独立项目。需求越复杂,openspec 的价值越大,因为复杂需求里最大的成本就是对齐成本。

二,在团队里推 vibe coding 实践。多人参与的项目,每个人理解的”需求”都不一样,spec 就是让所有人站在同一张图纸上的那个东西。

三,接外包项目的技术人。甲方说的和你理解的从来不是同一件事,有了 openspec 的流程,你可以在动手之前先把双方的理解拉齐,后期扯皮的概率大幅下降。

你会发现,需求越模糊、参与人越多、项目越复杂,这套组合的价值就越明显。

因为这类项目最难搞的不是代码,是那个”大家到底在做同一件事吗”的问题。

从哪里开始

先装 opencode,再用 omo 装 openspec 插件。

下次接到一个需求,先不要让 AI 写代码,先让 openspec 帮你生成 spec,和 AI 把”要做什么”对齐清楚,然后再开始写。

走一遍这个流程,你就明白之前少了什么。

AI 写代码最大的坑,不是它能力不够,是我们给它的起点错了。

起点对了,剩下的事情,它比你想象的要做得好。

如果你也在团队里推 vibe coding,或者在用 AI 接项目、做开发,评论区聊聊,说不定你踩过的坑我也走过。


📝 本文约1600字,预计朗读7分钟