当AI开始“自我编程”:一个真实发生的自举型编码代理故事
正在加载视频...
视频章节
这不是科幻设想,而是Augment Code团队的真实经历:一个AI编码代理在人的监督下,写下了自己90%以上的代码。Colin Flaherty分享了这个自举型Agent从集成工具、写测试到给自己做性能优化的全过程,以及他们在实践中踩过的坑与形成的方法论。
当AI开始“自我编程”:一个真实发生的自举型编码代理故事
这不是科幻设想,而是Augment Code团队的真实经历:一个AI编码代理在人的监督下,写下了自己90%以上的代码。Colin Flaherty分享了这个自举型Agent从集成工具、写测试到给自己做性能优化的全过程,以及他们在实践中踩过的坑与形成的方法论。
从自动补全到智能代理:软件工程范式正在切换
为什么这个故事重要?因为它标志着AI在软件工程中的角色,正在发生一次质变。Colin Flaherty在开场就回顾了一个清晰的演进路径:2023年,大家谈论的是GitHub Copilot这样的自动补全模型;2024年,对话式模型开始真正进入工程团队;而到了2025年,他判断“AI agents are going to dominate the conversation about how software engineering is changing”。
Agent和之前的工具最大不同在于“完整任务意识”。它不只是补全一行代码,而是像一个初级工程师一样,理解目标、调用工具、修改代码、运行测试、根据结果再调整。正是基于这个判断,Augment Code在几个月前开始构建自己的AI编码代理。
Colin强调,他们并不是为了做一个炫技Demo,而是想验证一个现实问题:如果Agent真的要像软件工程师一样工作,它是否能在真实、复杂的代码库中持续产出价值?答案出乎他们自己意料,也直接引出了后面那个最震撼的数字。
90%的代码由Agent完成:一次真正的“自举”实验
真正让现场安静下来的,是Colin抛出的那组数字:“We have about 20,000 lines of code in our agent codebase, and over 90% of that was written by our agent, with human supervision.” 这不是指生成草稿,而是进入主干、长期维护的真实代码。
所谓“Agent写自己”,并不是魔法,而是从最基础的工程需求开始。第一步是第三方集成:Slack、Linear、Jira、Notion、Google Search,以及在用户代码库中检索和编辑文件。团队最初手写了前几个集成作为示例,随后直接给Agent下达指令,比如“add a Google search integration”。
Agent的行为路径非常工程化:它会先在代码库中定位合适的文件,理解已有接口规范,再补充实现。一个有趣的插曲是Linear集成——基础模型并不“记得”Linear的API文档,于是Agent调用了它之前亲手实现的Google Search集成,在线查文档,再据此完成集成。这个闭环,让团队第一次确信:这不是脚本拼接,而是具备工具组合能力的系统。
同样的流程也出现在测试上。当被要求“add unit tests for the Google search integration”时,Agent能够自动补齐测试文件,并运行验证。这些看似平凡的工程动作,最终堆叠成了一个可以持续自我扩展的系统。
最意外的一幕:Agent给自己做性能剖析和优化
如果说写功能、写测试已经在社交媒体上见过,那么接下来的场景,连Colin都承认“还没见过一个令人信服的例子”。他们发现Agent整体运行偏慢,但原因不明,于是直接让Agent“profile itself”。
Agent使用已有的工具链,往自己的代码里加打印语句,运行多个“子实例”,收集输出并分析瓶颈。最终它定位到一个具体问题:系统在同步加载并哈希用户仓库中的所有文件。这一步完全是串行执行,成本极高。
解决方案也完全由Agent给出——引入进程池并行处理,同时补充了压力测试来验证优化效果。整个过程,从发现问题到修改架构再到验证结果,没有人类工程师直接写实现代码。这个案例之所以重要,在于它证明Agent不仅能“照着需求写”,还能基于运行反馈进行结构性改进。
到这一阶段,代码规模来到约2万行,而“over 90%”这个比例再次被Colin强调。这不只是效率问题,而是能力边界的变化。
血泪教训:构建编码Agent时最容易掉进的坑
在分享成果之后,Colin很快转向了反思。他明确指出,构建Agent时,人们常常带着一些危险的假设。比如,以为只要给模型足够多的工具,它就会自然学会如何使用;或者认为Agent可以安全地在用户环境中随意运行命令。
现实恰恰相反。为了让Agent稳定工作,团队不得不给它一整套“过程管理”能力:运行子进程、监控执行状态、防止测试进入无限循环、读取并解析输出。这些听起来不性感,却决定了Agent是否能在真实环境中存活。
另一个关键经验,是工具的可组合性。Colin提到,很多能力并不需要复杂设计,“just having access to one of those”合适的工具,就足以让Agent跨越原本的能力边界。Linear集成用Google Search反向补全知识,就是最好的例子。
这些教训共同指向一个结论:Agent不是一个模型,而是一个系统。忽略工程约束,只谈模型能力,最终只会得到不稳定的演示品。
在Agent世界里,软件工程意味着什么?
在结尾,Colin抛出了一个更宏观的问题:当Agent成为常态,软件工程会变成什么样?他的一个判断颇具挑衅性——“agents didn’t work last year”,但今天它们之所以开始奏效,并不是模型突然变聪明,而是工程方法成熟了。
测试、权限控制、可回滚的修改、明确的工具边界,这些传统软件工程原则,在Agent时代反而变得更重要。只有当Agent被放进一个高度结构化、可验证的环境中,人类才可能逐步建立信任。
这也重新定义了工程师的角色:从主要写代码,转向设计任务、约束系统、审核结果。Agent写得越多,人类越需要清楚“什么是对的,什么是安全的”。这不是取代,而是一种重分工。
总结
这个视频最有价值的地方,并不在于“90%代码由AI完成”这个 headline,而在于它展示了一条可复现的路径:通过工具、约束和工程纪律,让Agent逐步承担真实的软件工作。对于工程团队来说,问题已经不再是“要不要用Agent”,而是“你是否准备好一个能让Agent不失控的系统”。
关键词: AI Agent, 编码代理, 软件工程, Augment Code, 代码生成
事实核查备注: Colin Flaherty:Augment Code的AI研究员;代码规模:约20,000行;Agent编写比例:超过90%;第三方集成示例:Google Search、Slack、Linear、Jira、Notion;关键判断:2023自动补全,2024对话模型,2025 Agent主导;性能优化案例:同步文件哈希改为进程池并行处理