为什么一次封闭式 AI 开发实验,测不出真正的上限
为什么一次封闭式 AI 开发实验,测不出真正的上限
最近我听到一种很典型、也很有代表性的想法:找一个规模不大的软件,把需求、操作说明和测试方法先定义得足够清楚,然后把开发和测试尽量交给 AI 连续跑几天,看看它最终能做成什么样,花多少钱,踩多少坑。
我觉得这个想法并不差。恰恰相反,它是一个很自然的起点。因为只要一个团队认真思考 AI 研发,迟早都会走到这一步:先找一个边界可控的样本,做一次尽可能完整的实验。
但问题在于,很多人会把这个实验的结果,误当成“AI 研发上限”的答案。
这就不对了。
一次封闭式 AI 开发实验,最多只能测到某一类能力的上限;它测不出真正的研发上限。因为软件研发真正困难的部分,从来不只是“把代码写出来”,而是如何在长周期、不完整信息和持续变化中,把事情持续做对。
1. 这种实验到底在测什么
如果我们把任务压缩成下面这种形式:
- 选一个小型项目
- 预先写清需求
- 预先写清操作文档
- 预先写清测试方法
- 把完整任务交给 AI 执行
- 最后按结果验收
那么它主要测到的是三件事:
第一,模型的代码生成能力
AI 能不能快速补齐 CRUD、页面逻辑、数据流转、脚手架、测试样例、配置文件。
第二,任务说明的完备程度
需求写得越清楚,AI 的成功率通常越高。很多所谓“模型不行”,本质上是输入根本没定义清楚。
第三,单轮自治的可行性
也就是在一个相对封闭、变化较少的任务里,AI 能不能不被频繁打断,连续推进一段时间。
这三件事都很重要。但它们仍然只是研发能力里的一个切片。
它更接近“AI 能否完成一个项目包”,而不是“AI 能否成为稳定的研发能力”。
2. 真正的上限,卡在代码之外
一个软件项目只要稍微拉长一点,就会出现几个立刻把单次实验打穿的问题。
2.1 需求不是一次性交付物,而是持续重写的东西
很多管理者天然会想:
先把任务书写完整,再交给 AI 执行。
这当然没错,但真实研发里几乎不存在“写完就不变”的任务书。
开发过程中你会不断发现:
- 原来的边界条件没定义全
- 某个交互看起来可行,但用起来不对
- 某个测试口径和业务口径并不一致
- 某个旧约束会和新需求冲突
- 客户真正要解决的问题,和最初提的需求不是一回事
所以软件研发不是“任务定义完毕 -> 开发开始”,而更像是:
需求澄清 -> 实现 -> 发现歧义 -> 回写需求 -> 调整实现 -> 更新测试 -> 再次验收
这是一个循环,不是一个投递动作。
如果实验设计默认需求是静态的,那么它天然测不到这个循环中的大量摩擦。
2.2 测试不是写几条 case,而是建立可信的反馈系统
很多 AI 开发实验都会写测试,但“有测试”不等于“有反馈闭环”。
真正关键的是:
- 测试覆盖的是不是核心风险点
- 测试是不是会被 AI 用来“迎合”而不是验证
- 回归测试能不能在需求变化后持续成立
- 失败时能不能定位到真正原因
- 测试结论能不能被人信任
如果这些条件不满足,那么测试只是在制造一种“看起来像工程化”的安全感。
AI 很容易学会把测试跑绿,却不一定学会真正守住系统边界。
2.3 项目一旦变长,上下文就会成为主要矛盾
短任务里,AI 的上下文看起来够用。长任务里,问题会立刻出现:
- 前面说过的话后面忘了
- 之前定过的约束被悄悄改写
- 旧决定没有沉淀,新决定又重复推翻
- 修一个点时没意识到另一个模块已经依赖了旧行为
- 相同问题被多次重新讨论
这不是某一个模型独有的问题,而是长程研发任务的结构性问题。
软件越复杂,决定成败的越不是“当前窗口里写得对不对”,而是“过去的决策有没有被保存、组织、继承和调用”。
3. 为什么很多人会误以为这就已经接近上限
因为这种实验很容易给人一种“已经非常接近真实研发”的错觉。
它有需求文档,有实现,有测试,有验收,甚至还有预算统计。看起来已经很完整了。
但它仍然和真实研发之间隔着几道很厚的墙。
3.1 它默认了知识已经存在于任务书里
现实里最稀缺的不是代码,而是上下文:
- 这个模块为什么这样设计
- 以前类似问题踩过什么坑
- 哪些方案被讨论过又否掉了
- 哪些约束是技术性的,哪些是业务性的
- 哪些看似合理的改动会引发跨模块副作用
这些东西通常不在任务书里,而散落在:
- 老员工脑子里
- issue 评论里
- 提测记录里
- 代码历史里
- 各种群聊和会议里
当实验把这些全部压缩成一份“清晰任务书”时,它其实偷偷把最难的那部分工作先做掉了。
3.2 它默认了验收标准不会漂移
真实团队里,验收不是绝对静态的。随着产品理解加深,大家会调整对“完成”的定义。
这也是为什么一个功能常常会出现这种情况:
- 第一轮觉得能用
- 第二轮发现边界不清
- 第三轮发现扩展性不足
- 第四轮发现测试方法本身有问题
所以真正的研发能力,不只是把一份静态标准做到位,而是在标准不断被修正时仍然能稳定推进。
3.3 它默认了失败是局部的,而不是系统性的
单次实验里,失败常常被理解成:
- 这段代码写错了
- 这个测试没补到
- 这个需求理解偏了
但很多研发失败并不是局部错误,而是系统结构有问题:
- 任务分解方式不对
- 知识没有沉淀
- 审批点设置太少
- 工具链断裂
- 测试口径与业务目标脱节
这类失败不是换一个更强模型就能解决的。
4. 真正该验证的,不是“写了多少代码”,而是“形成了什么闭环”
如果一个团队真想摸清 AI 研发的上限,我认为指标不该围绕“产量”设计,而应该围绕“闭环”设计。
比起下面这些问题:
- AI 连续跑了几天?
- AI 写了多少行代码?
- 一次生成通过率多高?
- 最后交付了多少功能?
我更关心这些问题:
4.1 需求闭环是否成立
- 需求歧义是在什么时候暴露出来的?
- 暴露后有没有被结构化回写?
- 后续任务有没有继承这次修正?
4.2 测试闭环是否可信
- 测试是否真的覆盖核心风险?
- 回归是否能挡住历史上已经踩过的坑?
- 测试失败后,AI 能否区分“测试错了”还是“实现错了”?
4.3 知识闭环是否形成
- 本次开发学到的教训有没有沉淀?
- 下一个任务是否还能复用这些知识?
- 被否决的方案有没有被记下来,避免来回重提?
4.4 管理闭环是否可控
- 人类在什么节点介入最有效?
- 哪些环节可以放权,哪些环节必须审批?
- 失败发生时,能否快速止损、回滚、重规划?
这些指标才决定了 AI 是在“完成一次活”,还是在“形成一种可复制的研发能力”。
5. 我为什么越来越不相信“单 Agent 就能测出终局”
我并不怀疑单个强模型、强 Agent 可以在局部任务上表现惊艳。事实上,现在已经有很多任务可以做到非常好。
但只要任务进入下面这些状态,单 Agent 模式就会迅速暴露极限:
- 任务跨度跨天、跨周
- 需求会在中途变化
- 需要多种工具配合
- 需要追溯历史决策
- 需要维护长期知识
- 需要多个子任务并行推进
- 需要把失败经验沉淀到下一轮
这时决定成败的已经不是“这个 Agent 强不强”,而是有没有一个更高层的系统来负责:
- 记忆
- 状态
- 任务分发
- 工具编排
- 测试反馈
- 人机边界
换句话说:
单 Agent 擅长完成动作,研发中枢负责维持秩序。
真正的上限,不在“一个 AI 能连续做多久”,而在“一个系统能否让多个 AI 环节长期协同且不失真”。
6. 这也是为什么我会走向 JARVIS
我后来越来越明确一件事:
软件公司的 AI 研发,真正要解决的不是“怎么让 AI 多写一点代码”,而是“怎么让 AI 在研发过程中不反复失忆、不反复踩坑、不反复回到零”。
这就要求你有一个研发中枢,而不是一个会写代码的黑盒。
这个中枢至少要能处理几件事:
- 记住产品历史,而不是每次从头问一遍
- 区分已交付能力、当前 backlog、未来判断,而不是全部混成一锅
- 把历史 bug、设计决策、被否决需求变成可检索、可调用的记忆
- 让测试不只是“跑绿”,而是真正成为边界守卫
- 在多个任务和多个 Agent 之间维持统一状态
我把这类东西叫做 JARVIS。它不是一个更酷的名字,也不是一个更大的 prompt,而是一个研发系统层面的答案。
7. 所以这类实验还有没有价值?当然有
我并不是在否定“小范围 AI 开发实验”。
相反,我认为它依然非常值得做,只是不要把它误读成终局验证。
它最适合验证的是:
- 哪类任务最适合交给 AI
- 需求清晰度对成功率的影响有多大
- 测试前置能带来多大收益
- 人工介入点应该放在哪里
- 当前模型在本团队工具链里的真实表现如何
它是一个很好的局部压测手段,也是很好的组织教育工具。团队做完一次,就会更清楚:AI 的强项在哪里,弱项在哪里,组织真正的瓶颈在哪里。
但一旦你想把 AI 从一次性实验,升级成持续性的研发能力,你就必须进入下一个问题:
不是 AI 能不能做完这个任务,而是组织能不能把 AI 放进一个稳定闭环里。
8. 结语
一次封闭式 AI 开发实验,测得出模型能力、任务设计能力和局部自治能力;但它测不出软件研发真正的上限。
真正的上限,取决于一家公司能否把需求、实现、测试、验收、知识沉淀和组织记忆连接成一个持续运转的系统。
如果没有这个系统,AI 最多只是一个偶尔惊艳的开发者。
如果有这个系统,AI 才有可能变成稳定的研发力量。
而这两者之间,差的不是几万行代码,差的是一整套闭环能力。
延伸阅读:如果说本文讨论的是“为什么一次实验不足以说明问题”,那么下一步真正要讨论的,就是从 AI 写代码到 AI 驱动研发,中间到底差了什么。
