Astra for Coding: Why Are We Doing This Again?
451 points • 3 days agoArticle Link

当前 AI 工程越来越呈现内卷化倾向:系统要求投入更多努力、产出更高竞争性成果,却并未真正提升价值或生产力。虽然像 GPT 6 Astra 这样的新模型在处理计算机操作、图像理解和复杂任务方面能力突出,但它们给实际的软件工程带来了显著挑战。模型似乎缺乏明确的约束或惩罚机制来抑制低质量代码的生成,因而对长期任务完成的过度关注反而催生出大量不可用或不可维护的产出。

为测试这些能力的极限,一项为期周末的自管理软件工厂实验暴露出令人担忧的模式。模型在被赋予完全自治权以管理上下文和子智能体时,于 35 小时内生成了 75,000 行代码,消耗了约十亿个 tokens(词元)。尽管活动量巨大,产出却几乎毫无价值。代码表现出许多怪异行为:在编辑 C 代码时依赖复杂的 Python 字符串拼接,用 Python 去执行简单的 shell 命令(本可直接调用),以及各种古怪难读、完全违背既有最佳实践的编码风格。

问题的根源似乎在于这些模型的训练目标。它们因词元效率和任务完成而被大量奖励,常采用在临时工具调用中可行但用于持久代码库时灾难性的"代码高尔夫"技巧。这导致可读性明显退化:模型优先选择紧凑、对机器高效的方案,而非便于人类理解的逻辑。在无人看管的情况下,这些智能体会呈现出递归、螺旋式的行为,生成越来越晦涩的任务结构,并将随机常量或任意逻辑混入生产级代码中。

这一趋势对 AI 在软件开发方向上的走向提出了根本性疑问。尽管模型快速演进,但其发展轨迹似乎与以人为中心的工程流程相悖。运行这些智能体的成本——无论是高昂的财务开销,还是需要的大量人类监督——都使其在专业软件工作中的合理性受质疑。看起来这些工具更像是在为其他领域(如 3D rendering 或通用计算自动化)进行优化,反而让专业开发者面临一个越来越难以审计与信任的产品。

归根结底,智能体被优化出来的产物与人类工程师所需之间的脱节在扩大。如果代码最终只成为其他智能体读写的媒介,负责长期维护的人类程序员就可能丧失对其的实用价值。只要这些模型把"完成任务"的原始得分置于连贯性与可维护性之上,它们很可能更多地成为生产"糟粕"的新奇工具,而非严肃软件工程中的可靠伙伴。

336 comments • Comments Link

- 在复杂的代码库中,进展常常停滞,因为自动编码代理生成的代码难以维护且质量低下,随着这些代码的累积,重构和调试变得越来越困难。

- 虽然支持者宣称这些工具能提高生产力,但"代理化"方法往往把成本转移到团队里的真实成员身上,产生一种不可避免会崩溃的"新手运气"期,从而积累出难以治理的技术债务。

- 有经验的开发者发现,在缺乏严格人工监督的情况下依赖大型语言模型(LLM)写代码,会削弱开发者对系统的理解,最终拖慢长期开发进度。

- 最新的前沿模型在完成任务时常表现出"盲目热情":它们倾向于生成复杂、难读或冗余的脚本来修改文件,而不是用标准的、可审查的工具。

- 模型训练中的奖励机制似乎更看重长周期任务的完成,而非代码的可读性或可维护性,这使得代理更像"白痴学者(idiot savants)"而非可靠的协作成员。

- 开发工作流已转向密集的提示工程和对代理的"培养",这些工作往往与手动编码一样耗时,但结果却更不确定。

- 关于"AGI"或"革命性"能力的市场宣传常与核心软件工程任务中 token 成本上升、模型性能下降的现实发生冲突。

- 让 AI 代理生成未经人工审查的代码会导致一种"内卷"现象:不断加大的投入与资源消耗并未换来相应的业务价值增长。

- 当这些工具被限定在既有代码库中具体且定义明确的任务时,其战略性价值最大;相反,对新特性进行一次性或完全自主的生成,往往只会产生过度工程化的"淤泥(slop)"。

- 支持者常用的"编译器"类比有其局限:编译器是确定性的、以机器层面的输出为准,而 LLM 生成的是需要开发者维护和理解的、面向人的源代码。

总的来说,这场讨论反映出 AI 编码工具在带来快速初始效用的同时,也在专业软件工程实践中造成越来越多的摩擦。各方虽然普遍承认这些模型在特定任务和探索场景中很有用,但对于它们在无需大量人工投入下,能否产出可维护且高质量的生产级软件仍持深刻怀疑。许多开发者注意到,模型越来越"古怪"、难以协作,它们更注重完成任务而非维护架构完整性和透明度。归根结底,行业对耗费大量 token 的代理式工作流的狂热,与对可读性和可维护性忽视的现实形成了悖论:工程组织不得不投入更多资源来管理日益复杂且脆弱的自动化产出。