每个用AI写代码的人都说”我变快了”。但快了多少?上限又是什么决定的?
这个问题没有单一答案,但我们可以精确描述决定因素。
效率的两个维度
这个倍数其实有两个维度:
- 开发效率——写代码、调试、让功能跑通的速度
- SDLC效率——工程师在整个软件开发生命周期中的效率,包括on-call、流水线维护、工单处理、监控审查等非编码工作
答案取决于AI能在这两个维度上自主执行多少环节。下面介绍一个四层成熟度模型,从开发效率的提升,转到全面SDLC的提升。
模型总览

L1——复制粘贴(Chat时代)
你问AI一个问题。它给你代码。你复制到编辑器里。跑一下。失败了。把报错贴回去。循环往复。
人是I/O层——手动在AI和开发环境之间搬运上下文。
效率提升:微乎其微。受限于复制粘贴速度和上下文窗口管理。
L2——规格驱动(引导式开发)
AI可以访问你的代码库(通过IDE集成或CLI agent)。你描述需求;它直接写文件。你review、跑测试、接受或拒绝。
这是大多数团队目前的状态。
瓶颈在验证-修复循环。 每次修改仍然需要人来看输出,验证改得对不对。
这产生了一个公式(简化模型,具体倍数因项目而异):
1 | DevTime = (CodingTime + VerifyTime) × Iterations |
在L2,AI把CodingTime压缩得很低(例如1分钟)。Iterations可以通过良好组织的文档来降低。瓶颈就到了VerifyTime。
假设人类开发1小时,验证30分钟,那么一次迭代就是90分钟。使用AI,开发1分钟,验证30分钟,那么一次迭代就是31分钟,大约3倍的提升。
L3——反馈循环(自主开发)
关键洞察:如果AI能跑测试并读取结果,它就能验证自己的工作。
在L3,AI生成代码、执行验证(构建+测试)、解读结果、自我修正——全程无需人工干预。人只需要review最终产出。
1 | DevTime = CodingTime + VerifyTime |
降低VerifyTime就是3倍变10倍的关键。瓶颈从”人验证多快”转移到”测试套件跑多快”。同样的例子,VerifyTime如果只需要1分钟,那么一次迭代就只需2分钟,相比L2的31分钟,又获得了约15倍的提升。
L3的前提:测试基础设施
流水线上的集成测试是我们想在本地复现的目标:它覆盖真实行为,是全流程部署的守门员,但跑一次要30分钟。L3的目标是把同等覆盖率的测试压缩到秒级。
L3要求测试:
- 本地可运行(越快越好)
- 确定性(不能有flakiness)
- 覆盖真实行为(不只是mock)
没有这些,AI就无法闭合循环——它没有可靠的信号来迭代。
L3实践:进程内本地集成测试
以我们的一个后端服务为例,在L2中AI已经能快速写好代码,但验证周期仍然约30分钟:编译 → 构建Docker镜像 → 启动远程开发环境 → 启动服务 → 设置SSH隧道 → 运行集成测试。每次迭代的瓶颈就在这30分钟的验证上。
我们构建了一个进程内本地集成测试框架将VerifyTime压缩到30秒以内:
- 本地代理 不去部署服务,而是直接通过方法调用真实的业务逻辑类(无HTTP、无部署)
- 真实下游服务 通过SSH隧道连接测试环境
- Record/Replay 模式录制下游响应,支持离线迭代
- 多环境验证 自动管理凭证和隧道
工作流:AI识别未覆盖的API → 写测试 → 运行 → 失败 → 修复 → 重跑 → 通过。端到端约10分钟写好一个API的集成测试,运行E2E的一个API集成测试所需时间不到30秒。
关键定位:把本地集成测试视为开发工具而非测试工具。它的首要价值是赋能AI反馈循环,而不仅仅是抓回归。
良性循环:
- AI写集成测试
- 测试成为未来代码修改的反馈信号
- 代码修改导致的测试失败在同一个循环里自动修复
- 遇到新模式 → 经验更新 → 下一次测试更容易
选择你的依赖策略
调用真实下游服务只是频谱上的一个点。选择取决于服务的读写特征:
- Replay模式(无下游调用)——最安全、最快、可离线。适合有写操作或敏感副作用的服务
- 只读调用测试环境——在测试不修改状态时是安全的。提供最高保真度的信号
- 写调用共享测试环境——有风险(状态污染、通知触发)。需要谨慎
原则是相同的:快速、确定性的反馈,让AI可以迭代。
L4——Agent循环(自主SDLC)
L3加速的是编码阶段。但编码只是开发者工作的一部分。L4将自主运行扩展到整个软件开发生命周期。
指导原则:控制熵
软件系统自然趋向混乱(熵增):依赖变旧、测试变flaky、配置漂移、文档过时、流水线腐化。这些是重要的工作,但从来不会被优先排期——因为不紧急。
L4的核心定位:让agent持续产出代码变更来对抗软件熵。人审阅并批准。
需要注意的是:不是所有熵都需要清除。有些技术债是有意识的权衡。Agent选择”修什么、不修什么”本身需要人来校准。
L4的设计原则
- Agent要么产出代码变更,要么产出backlog。 如果搞不定,就写一个待办事项,后续由人类驱动AI来解决。
- 生产环境只读。 Agent永远不部署、不修改生产环境。
- 信噪比。 Agent不能用误报或低优先级修复淹没reviewer。
- 并行性。 多个领域专用agent并发运行。
- 透明性。 Agent的运行历史、状态、待处理事项对人类可见,随时可以查看当前状态。
L4的覆盖范围
- 流水线与构建——修复阻塞的流水线、解决依赖更新导致的构建失败
- 测试稳定性——修flaky test、为关键路径补测试
- 依赖管理——安全补丁升级、废弃API迁移、检测未使用依赖
- 配置漂移——实际状态vs声明代码的漂移、跨Region配置不一致
- 代码健康——死代码检测移除、日志格式标准化
- 监控与可观测性——检测无告警的API、Dashboard异常检测
- 文档同步——代码变更后保持文档同步
- 合规与安全——IAM最小权限收紧、安全风险修复
- 主动学习——扫描公开故障报告产出预防性修复
L4实践:流水线熵控制
我们有一个agent按工作日定时运行,扫描团队所有流水线,自动修复故障:
1 | 定时任务 (工作日晚9点) |
护栏: Agent永远不会merge。代码变更必须通过本地构建+静态分析后才会发布。修不了的问题生成诊断报告写入backlog。
实测(一周): 15个代码变更提交,12个包修复,88条流水线监控。人只需review:约5分钟/个。
局限性: 集成测试失败目前只能诊断不能自动修复;跨团队上游包的构建失败需要人跟进;偶尔会被拒(选择了错误的升级路径)。
L4中人的角色
人从执行者转变为审阅者和系统架构师:
- Review代码变更——生产代码的最终责任
- 驱动Backlog——解决AI还无法自主解决的问题
- 改进Agent循环——元工作:让agent变得更好
- 决定做什么——战略、用户同理心、权衡取舍
- 跨团队协商——社交动态、组织上下文
最高杠杆的活动是”改进agent循环”——因为每一次改进都会在所有未来任务中复利式累积。
改进Agent循环的两种路径
路径一:人类驱动改进。 人处理agent搞不定的backlog时,顺便把解决方法固化。下次agent就能自己处理了。每一次backlog的消化都在扩大agent的能力边界。
路径二:AI自主迭代(早期探索)。 Agent在运行过程中发现自身的不足,自主将经验写成新的规则文件,提交供人review。这个能力仍在早期阶段,产出质量参差不齐,需要人来把关。但方向是明确的:agent的知识库能随使用自动增长。
这两条路径形成正反馈:人处理backlog → agent能力增长 → backlog减少 → 人有更多时间改进agent → agent能力进一步增长。
各层是递进依赖的
每一层都依赖下面一层。跳级不是不可能,但效果会大幅打折。
1 | L4 依赖 L3 -- 没有自动验证,agent产出需要人逐一验证 |
为什么不建议跳过L3直接做L4: 一个修流水线或处理工单的agent,其可靠性取决于它验证自身工作的能力。没有快速反馈循环,agent的每个产出都需要人完整验证。
我们观察到一个有趣的对比:同一个agent修构建失败时,依赖本地构建作为验证(L3),所以能自动闭环,变更通过率很高。而对于集成测试失败,缺乏快速的本地集成测试环境,只能产出诊断报告而无法自动修复。同一个agent,有L3的场景能自动闭环,没有L3的场景只能半自动。
如何到达下一层
L1 → L2:让AI访问你的代码。 使用IDE集成工具而非聊天窗口。让它读文件、写文件、跑命令。提供良好的上下文文档。
L2 → L3:构建反馈循环。 识别你的验证瓶颈,让它尽快跑完,让结果机器可读,消除flakiness。对于后端服务,进程内调用+Record/Replay是一个已验证的模板。前端可以用headless浏览器+快照比对,数据管道可以用本地执行+样本数据集。
L3 → L4:将运维知识固化。 先用AI一起解决一次,提取模式,写成机器可读指令,让agent自己跑,人review输出。这是一个迭代过程,每个规则初始都不完美,在使用中不断优化。
乘数效应
模型的各层不只关乎个人速度——它们在团队层面复合增长:
- L1:微弱提升,无团队乘数
- L2:数倍(编码速度),微弱团队乘数——每个人仍需自己验证
- L3:数倍~数十倍(编码速度),中等团队乘数——测试框架是共享基础设施,一次投入全团队受益
- L4:解放非编码时间(SDLC效率),高团队乘数——规则写一次,所有使用该agent的工程师立即获益,可跨团队复用
L3和L4提升的是不同维度:L3压缩编码任务的周转时间,L4释放原本花在运维/工单/流水线上的时间。两者叠加才是整体效率的提升。
一些思考
为什么新项目比老项目提升更大? 因为新项目可以从第一天就设计反馈循环。老项目的集成测试在流水线里跑20分钟,加装快速反馈循环可以做到但需要刻意投入。如果你正在启动新项目,花时间设计L3反馈循环不是额外开销,而是单笔ROI最高的基础设施投资。
为什么快速本地集成测试现在才开始流行? 两个原因。第一,以前测试不是瓶颈——编码花几个小时,验证才30分钟,占比不大。L2普及后CodingTime趋近于零,VerifyTime才成为主导项。第二,搭建框架以前成本太高——打通服务间的网络和凭证,以前是几周的工作。有了AI之后几天就能搞定。受益于反馈循环的AI,同时也让反馈循环的建设成本大幅降低。
没有L3直接做L4行不行? 效果很随机。我们观察到:同一个agent,有本地构建验证的场景能自动闭环,没有的场景只能产出诊断报告。feedback loop是让agent可靠自我修正的基础,没有它你得到的是一个昂贵的建议引擎而不是一个自主运维者。
写在最后
从3倍到10倍的路径不在于更好的模型,而在于闭合反馈循环让AI能自主迭代。从10倍编码到10倍SDLC的路径则是教会AI做那些实际消耗工程师大部分时间的非编码工作。
2018年我写过《未来的软件开发什么样》,当时觉得AI和程序员”合作”还只是萌芽。没想到不到八年,我们已经走到了让AI自主运维服务的阶段。那篇文章里的”合作”和”创新”两个预测基本应验了,但演进的速度远超当时的想象。
这个模型还在演进中。也许未来还会有L5——AI自主决定做什么,而不只是执行人类定义的任务。不过那是另一个话题了。