AI 快讯AI写了更多代码,却没造出更多软件
开发心得

AI写了更多代码,却没造出更多软件

2026-10-09T23:03:08.845Z
AI写了更多代码,却没造出更多软件

一项最新研究发现,AI 编程 Agent 确实提高了代码生成量,但软件整体产出并没有同步增加。瓶颈从“写代码”转移到了需求拆解、代码审查、测试和合并。

AI写了更多代码,却没造出更多软件

AI 编程 Agent 正在让开发者更快地产生代码,但一项于 2026 年 10 月披露的研究发现,代码提交量的增长并没有转化为更多可交付的软件产出。

研究指出,AI 带来的效率提升,大部分被人工审查、测试验证和后续返工“吸收”了。换句话说,软件开发并不是一个只要提高打字速度,就能等比例提高产出的行业。代码生成只是流水线中的一个环节,当这个环节突然提速,其他环节反而会变成新的瓶颈。

这也是当前 AI 编程工具最值得警惕的误区:代码更多,不等于软件更多;提交更快,也不等于产品交付更快。

一名开发者在代码编辑器中审查 AI 编程 Agent 生成的多个文件,屏幕旁显示代码审查、测试和部署流程

研究发现了什么

AI 编程 Agent 是一种能够理解自然语言任务、修改多个代码文件、运行命令并根据结果继续迭代的软件开发工具。它与传统的代码补全工具不同,后者通常只建议一行或几行代码,而 Agent 可以围绕一个目标自行规划多个步骤。

这类工具通常能够完成以下工作:

  • 阅读代码库并定位相关文件
  • 根据需求生成或修改多个模块
  • 创建测试、执行构建命令
  • 分析报错并尝试修复
  • 生成提交记录或变更说明
  • 在一定权限范围内操作终端和开发环境

研究关注的核心问题不是“AI 能不能写代码”,而是“AI 写得更多之后,团队是否真的交付了更多软件”。结果显示,两者之间存在明显落差:AI 生成的代码量增加了,但经过审查、测试和整合后,能够进入稳定产品的有效产出并没有同步增长。

这里的“软件产出”不是简单统计新增代码行数,而是更接近真实工程结果的指标,包括完成的需求、合并到主分支的有效变更、通过测试的功能、上线版本以及最终解决的问题数量。代码行数本身只是投入或中间过程指标,并不是产品价值指标。

真正的瓶颈从写代码转向审代码

AI 编程 Agent 带来的效率提升,首先体现在生成阶段;但软件团队的总吞吐量,取决于最慢的关键环节。

过去,一个开发者可能需要花半天时间实现一个接口,再花一小时检查和测试。现在,Agent 可能在几分钟内生成接口、数据结构、测试文件和配置修改。但开发者仍然需要确认它是否理解了业务规则,是否破坏了现有兼容性,是否引入安全问题,以及测试是否真的覆盖了关键场景。

当生成速度从每小时几百行代码提高到几千行甚至更多时,人工审查没有同步变快。开发者面对的不是一个更轻松的任务,而是一批需要快速判断的潜在变更。

可以把这看成一条生产线:

| 环节 | AI 带来的变化 | 可能出现的问题 | | --- | --- | --- | | 需求转代码 | 生成速度明显提高 | 需求本身可能含糊,错误会被快速放大 | | 文件修改 | 可同时修改多个文件 | 影响范围扩大,难以逐行掌握 | | 测试生成 | 测试数量增加 | 测试可能只验证实现,不验证真实需求 | | 代码审查 | 变更规模变大 | 人工审查时间成为瓶颈 | | 持续集成 | 修复速度加快 | 失败任务和重复构建增加 | | 发布上线 | 局部功能更快完成 | 集成、回滚和风险评估仍需人工完成 |

研究所谓的“吸收”,指的就是这种现象:AI 在前端节省的时间,被后端新增的验证成本抵消了。开发者不再花大量时间手写样板代码,却开始花更多时间阅读 AI 生成的代码、补充边界测试、处理错误假设,并清理不必要的改动。

为什么代码量不是生产力

代码行数是一种非常容易统计的指标,但它与软件价值之间的关系一直很弱。

一个功能可能只需要修改 20 行代码,却解决了大量用户问题;另一个看似“增加了 1000 行代码”的提交,可能只是重复封装、生成冗余测试,或者引入了未来需要维护的新复杂度。

AI 特别容易放大后者。它倾向于提供完整、显式、看起来合理的实现,常见结果包括:

  • 为简单逻辑创建过多抽象层
  • 重复实现已有工具函数
  • 生成大量低价值测试
  • 对边界情况进行复杂但不必要的处理
  • 修改与当前任务无关的文件
  • 为了让测试通过而改变原有行为
  • 在缺少业务上下文时自行补全需求

这些代码不一定马上报错,却会增加系统的认知负担。开发者需要记住更多模块之间的关系,审查更多潜在影响,未来也要维护更多代码。

因此,AI 编程工具的真正评价标准,不能停留在“每小时生成多少行代码”或“完成多少次补全”,而应该观察以下结果:

  1. 一个需求从开始到上线需要多长时间。
  2. AI 生成的变更有多少次被直接合并。
  3. 代码审查平均耗时是否上升。
  4. 发布后的缺陷、回滚和线上事故是否增加。
  5. 开发者是否有更多时间处理架构、产品和用户问题。
  6. 团队每周完成的有效需求数量是否真正提高。

Agent 的自主性越强,审查成本可能越高

AI Agent 的优势在于它能够连续执行多个步骤,但连续执行也意味着错误可能扩散到整个任务链条。

传统代码补全通常只影响当前光标附近的几行代码。开发者可以快速接受或拒绝建议,错误的影响范围比较小。Agent 则可能先修改数据模型,再修改服务层、前端页面、测试和部署配置。它看起来完成了一项完整任务,但每一个环节都可能建立在错误的前提上。

这带来一个重要区别:局部建议的错误是局部错误,Agent 任务的错误可能是系统性错误。

如果 Agent 把一个字段理解成可选值,而业务实际上要求强制存在,那么错误可能一路传递到数据库迁移、接口校验、前端表单和测试。最终,开发者看到的不是几行错误代码,而是一组相互关联、看起来都能运行的错误变更。

这也是为什么 Agent 的权限、任务边界和验证机制非常重要。实际开发中,更合理的做法通常包括:

  • 让 Agent 一次只处理一个清晰的任务
  • 将需求拆成可单独验证的小步骤
  • 限制 Agent 修改的目录和文件范围
  • 要求先给出计划,再执行批量修改
  • 让测试、构建和静态检查成为强制门槛
  • 对数据库迁移、权限系统和支付逻辑设置人工审批
  • 将生成代码与最终合并权限分开

Agent 不是一个可以被完全放权的初级开发者,也不是一个只负责自动补全的编辑器插件。它更像一个执行速度很快、理解上下文能力不稳定的协作者。协作者越能一次修改更多东西,团队就越需要明确的边界和审查机制。

对开发者而言,最稀缺的能力变了

AI 编程工具普及之后,最稀缺的能力不再只是把代码写出来,而是判断哪些代码值得写、哪些代码应该删掉,以及如何验证它确实解决了问题。

这意味着开发者的工作重心正在发生变化。

过去,经验丰富的工程师往往通过快速实现来拉开差距。他们熟悉框架、记得接口、知道常见模式,因此能够比新人更快完成编码。现在,Agent 可以把很多常规实现压缩到几分钟之内,纯粹的语法和样板代码优势会被削弱。

但以下能力的重要性反而提高:

  • 把模糊需求拆解成可验证的工程任务
  • 判断需求中的隐含约束和异常场景
  • 理解现有系统的边界,而不是只看当前文件
  • 设计能够发现错误的测试
  • 评估变更对性能、安全和可维护性的影响
  • 在多个实现方案中选择长期成本更低的一种
  • 发现 AI 生成代码中“能运行但不应该这样运行”的部分

简单说,AI 降低了生产代码的门槛,却提高了判断代码的要求。

企业不应该只看提交量和节省工时

很多团队在引入 AI 编程工具时,会优先追踪几个容易获得的数据:使用率、生成代码量、接受建议次数、提交数量和节省工时。这些指标可以说明工具被使用了,却不能证明软件团队更有效率。

更合理的评估方式,是把指标分为三层。

第一层:活动指标

活动指标描述工具被使用的频率,例如 Agent 调用次数、生成代码量和接受率。这些数据适合判断采用情况,但不能直接推导业务价值。

第二层:工程指标

工程指标描述代码进入研发流程后的表现,例如合并请求周期、代码审查时间、构建失败率、测试覆盖率、缺陷密度和回滚次数。如果 AI 让生成速度提高,但审查时间和返工次数同步上升,团队就没有获得真正的吞吐量提升。

第三层:产品指标

产品指标才是最终结果,包括按时交付的需求数量、用户问题解决速度、功能使用率、服务稳定性和收入影响。AI 编程工具的价值必须最终反映在这些结果上,而不是停留在编辑器里生成了多少文本。

| 指标类型 | 典型指标 | 能否代表最终价值 | | --- | --- | --- | | 活动指标 | 生成代码量、接受建议次数 | 不能单独代表 | | 工程指标 | 合并周期、缺陷率、回滚次数 | 可以判断效率变化 | | 产品指标 | 上线需求、用户留存、业务结果 | 最接近真实价值 |

这不是 AI 编程失败,而是衡量方式需要升级

这项研究并不意味着 AI 编程 Agent 没有价值。对于样板代码、测试初稿、文档同步、旧代码解释、简单重构和一次性脚本,它们仍然能够显著降低开发成本。

问题在于,工具擅长的是“生成更多候选实现”,而不是自动决定哪些实现符合产品目标。企业如果把 Agent 当成扩大代码产能的机器,很容易得到更多需要维护的代码;如果把它当成缩短反馈循环的工具,收益通常更清晰。

真正有效的团队,可能不会追求每名开发者每天生成更多代码,而是让 Agent 帮助他们更快完成以下闭环:

明确需求 → 生成小范围变更 → 自动验证 → 人工审查 → 快速上线 → 收集反馈

在这个闭环里,Agent 的价值不是替代所有工程判断,而是减少等待和重复劳动,让开发者更快看到结果、更快发现方向错误。

开发者现在应该怎么用

对于个人开发者和小团队,最实用的策略是把 Agent 用在低风险、高反馈的任务上,而不是一开始就让它重写核心系统。

可以优先尝试:

  • 为已有函数补充测试
  • 解释陌生代码和调用关系
  • 生成数据迁移脚本的初稿
  • 编写重复性的适配层和配置文件
  • 根据明确接口实现边界清晰的模块
  • 分析构建错误并提出多个修复方案
  • 生成文档、变更日志和测试数据

同时,应当避免把以下任务完全交给 Agent:

  • 身份认证和权限模型的重大修改
  • 支付、计费和资金相关逻辑
  • 不可逆的数据库迁移
  • 涉及隐私数据的处理流程
  • 核心并发控制和分布式一致性代码
  • 缺少自动化测试的遗留系统重构

最重要的一条原则是:让 Agent 负责加速验证过的方向,而不是替团队决定方向。

结语:软件工程的瓶颈不会消失,只会移动

AI 编程 Agent 正在把“写代码”变成更廉价、更快速的环节,但软件开发的复杂性并没有因此消失。需求理解、系统设计、质量控制、团队协作和上线反馈,仍然决定着一个功能能否真正产生价值。

这项最新研究给行业的提醒很直接:当 AI 让代码生产速度提升之后,团队必须同步建设更快的审查、测试和发布机制,否则效率红利会被流程瓶颈吃掉。

未来衡量 AI 编程工具的关键问题,不应该是“它今天生成了多少代码”,而应该是:它是否让团队更快交付了可靠的软件,并且让开发者把时间用在更重要的判断上。

参考来源

  • Ars Technica,《AI coding agents generate more code, but not more software》:本文关于研究结论、代码生成增长与人工审查瓶颈的主要参考材料。原始报道域名不在本文允许的外链范围内,因此仅保留来源名称。
  • GitHub Copilot 文档:用于核对 AI 编程助手在代码建议、代码库上下文和开发流程中的常见能力边界。
  • Stack Overflow Developer Survey:用于参考开发者工具使用、工程效率与开发者工作方式变化的行业背景数据。

相关推荐

查看全部