AI - driven software development
搜索文档
1500 个 PR、0 人写代码:Codex 驱动的百万行级内部产品实践
AI前线· 2026-03-01 13:33
文章核心观点 - 公司团队成功挑战在五个月内,完全使用Codex AI Agent(基于GPT-5)开发并发布了一款内部测试产品,实现了从应用逻辑到基础设施、文档等所有代码的自动化生成,据估算开发效率提升至手动开发的10% [2] - 该实验的核心模式是“人类掌舵,Agent执行”,工程师角色从编写代码转变为设计环境、定义意图和构建反馈循环,以最大化利用人类的时间与注意力 [3] - 通过构建高度结构化、可被Agent直接理解和操作的环境与工具链,公司实现了AI Agent在软件开发中的高度自主化,能够端到端驱动新特性开发、修复Bug并管理代码库质量 [34][37] 开发模式与效率 - 项目从一个空仓库开始,初始脚手架由Codex CLI调用GPT-5生成,五个月后仓库代码量达到约100万行 [5][6] - 仅由3名工程师驱动Codex开启并合并了约1500个PR,平均每人每天产出3.5个PR,团队扩大至7人后人均产出率进一步提升 [6] - 人类工程师完全不直接编写代码,工作重心转向系统设计、脚手架搭建和赋能Agent,通过提示词与系统交互,驱动Agent完成任务并开启Pull Request [7][8] 环境与工具链构建 - 瓶颈从代码产出转向人类QA能力,因此致力于提升应用对Agent的“可读性”,例如让每个Git工作树独立启动应用,并将Chrome DevTools Protocol接入Agent运行时,使其能直接复现Bug和验证UI行为 [11] - 将可观测性工具(日志、指标、链路追踪)通过本地临时栈暴露给Codex,Agent可使用LogQL和PromQL进行查询,使得基于性能指标的提示词变得可操作 [14] - 单次Codex运行可持续处理一个任务超过6小时,常在非工作时间自动进行 [15] 知识管理与上下文优化 - 将代码库知识库结构化,以docs/目录作为唯一事实来源,用简短的AGENTS.md(约100行)作为目录和地图,实现信息的渐进式披露,避免用海量信息淹没Agent [17][18] - 通过专门的Linter、CI任务和一个循环运行的“文档园丁”Agent,机械化地验证和更新知识库,确保文档与代码行为一致 [19] - 系统设计以“Agent可读性”为目标,所有对Agent可见的上下文都必须推入仓库并版本化,存储在外部或人脑中的知识被视为“不可读” [19][21] 架构约束与质量保障 - 通过强制执行架构“不变量”而非微观管理,来保持代码库的连贯性,例如围绕一套僵化的分层架构模型构建应用,每个业务领域有固定的依赖方向和有限的连接点 [23] - 使用自定义Linter(由Codex生成)和结构化测试机械化执行架构规则、命名规范、文件大小限制等“审美不变量” [26] - 明确区分需要中央强制执行的边界和允许Agent自由发挥的内部空间,类似于平台组织的管理哲学 [26] 工作流与合并哲学的变革 - 由于Agent吞吐量极高,传统的工程规范被调整,例如PR生命周期非常短,对测试偶发失败通常通过后续运行解决而非阻塞合并,因为在这种系统中纠错成本低而等待成本高 [29][30] - Agent能够直接使用标准开发工具,获取评审反馈、进行行内回复、推送更新,并通常自主压缩(Squash)和合并自己的PR [32] 自主化与系统演进 - 随着开发环路被编码进系统,Codex已能端到端驱动新特性开发,仅凭一段提示词即可完成从验证状态、复现Bug、实现修复、验证结果到开启并合并PR的全流程,仅在需要人类判断时才上报 [34] - 完全的Agent自主权带来了架构偏离和“AI废料”问题,公司最初用20%的工作时间手动清理,后改为将“金科玉律”写入仓库并建立周期性清理机制,由Codex后台任务扫描偏离、更新质量评分并开启重构PR,大部分PR可在一分钟内自动合并 [36][37] - 该系统行为高度依赖其特定的结构和工具链,其能力目前不能直接泛化到其他环境 [34] 挑战与未来展望 - 在完全由Agent生成的系统中,长达数年的架构连贯性如何演进、人类判断力的最佳杠杆点在哪里,以及如何将判断力转化为可沉淀的规则,仍是需要探索的领域 [39] - 构建软件所需的严谨纪律从代码编写转移到了“脚手架”的搭建上,工具链、抽象层和反馈循环对于保持代码库连贯性变得至关重要 [39] - 当前最艰巨的挑战在于如何设计环境、反馈循环和控制系统,以帮助Agent大规模地构建并维护复杂可靠的软件 [39]