规格驱动的智能体编程正在悄然削弱我们监督智能体的能力
摘要
作者认为,过度依赖 AI 编程智能体会导致人类开发者逐渐丧失关键的技术直觉和代码审查技能,并提出了诸如强制手动编码日等措施,以维持监督能力。
在一个中型 TypeScript 单体仓库上运行重度依赖智能体的工作流大约六个月了。顶层是编排器,子智能体负责代码生成,人类(主要是我)负责编写规格和审查 diff。宣传卖点显而易见:我坐镇架构师角色,智能体负责敲代码。生产力提高,我的大脑保持在难点上敏锐。事实并非如此。实际上,我以前凭本能完成的工作部分开始退化了。不是大的架构决策。是那些小的。那些让你擅长审查代码的部分。
上个季度的几个具体例子:
- 子智能体写了一个 Drizzle 查询,在遍历用户组织时在循环内做了 N+1 查询。我批准了。它通过了测试,因为测试 fixture 只有两个组织。在预发布环境发现了问题,当该端点的 p95 从 40ms 升到 1.8s。两年前我会看到这种代码形状就心头一紧。我没有。
- 一个智能体在热点路径选了 Zod 做运行时验证,而我们之前刻意使用手写校验逻辑,因为 Zod 的 parse 成本会出现在火焰图上。规格没提之前的决定。我不记得了。智能体无法知道。
- 重构 auth 中间件。diff 400 行,看起来干净,类型检查通过。我像审查了几百个智能体输出那样略读了它。漏掉了它在一条路由上静默遗漏了一个 CSRF 检查。在渗透测试中发现。
这些都不是有趣意义上的智能体失败。它们是监督者的失败,也就是我,这正是模型的重点。
我认为人们没有指出的循环是这样的:
1. 你从写代码转变为写规格和审查 diff。
2. 写规格锻炼的是不同的肌肉。主要是产品和接口推理,而非实现推理。
3. 以智能体速度审查 diff(每天几十个)训练你匹配表面合理性,而不是追踪执行。
4. 让你写出 sharp 规格和 sharp 审查的技能,知道哪些查询昂贵,哪些库有哪些隐患,哪些中间件顺序重要,来自多年亲自编写和调试该代码。
5. 停止编写和调试,几个月后这些技能就会退化。悄悄地。你注意不到,因为智能体在做以前暴露这些技能的工作。
6. 现在你在监督一个你逐渐变得不够资格监督的系统。
我团队的高级人员目前大体还好,因为他们有十年的积累直觉。中级人员是金丝雀。他们从事重度智能体工作约一年,审查评论明显变差。更不具体。更多感觉。“感觉不对”却没有后续说明哪一行及原因。
我不是反智能体。吞吐量是真实的,我不会放弃。但我认为“人类做规格,智能体做代码”的定位是错误的,这种方式需要 12-18 个月才会显现。人类需要继续写代码,包括智能体本可以写的代码,专门以保持监督者敏锐。这和飞行员仍然手动进近一样,尽管自动驾驶平均更好。
我们现在尝试的方法,不声称有效:
- 每周一天关闭智能体。你写代码。包括 bug。
- 轮换“深度审查”任务,一名工程师拿一个智能体生成的 PR,追踪每个调用路径,写下发现。故意慢。
- 规格文档现在必须包含"prior decisions and why"部分,由记得的人类编写,而非重新生成。
好奇是否有其他运行重度智能体工作流超过一年的人看到同样的技能漂移,以及你们做了什么。或者我是否错了机制,中级人员能力退化是别的原因。
相似文章
代理式编程是一个陷阱
本文认为,代理式编程(即 AI 生成代码,人类充当编排者)是一个陷阱,原因包括系统复杂性增加、技能退化以及供应商锁定。文章强调了这种做法对开发者学习和批判性思维的负面影响,并将这一新的抽象层与历史上的编程范式转变进行了对比。
Agentic Code Review(15分钟阅读)
分析AI编码代理如何将瓶颈从编写代码转移到审查代码,数据显示代码变更量增加861%,缺陷率上升,使得代码审查成为软件工程中最具杠杆效应的技能。
编码代理是否暴露了我们规格的糟糕程度?
文章认为,AI编码代理的许多失败源于模糊的规格,而不仅仅是模型弱点。它建议,编写更清晰、更详细的工作包可能是使用编码代理的开发人员的下一个基本技能。
AI编程工具是在让开发者变得更好,还是仅仅加速了糟糕的判断?
一篇观点文章探讨了像Claude Code和Copilot这样的AI编程工具是否真正提升了开发者的技能,还是仅仅加速了有缺陷的决策,并强调了需要新的指标来评估工程中的人机协作。
AI编码助手没有智能问题,它们有的是运行时纪律问题。以下是我如何强制执行它。
一位开发者介绍了agent-rigor,这是一个开源框架,它将运行时纪律和传统SDLC机制强制应用于AI编码助手,以防止常见的代理失败,如范围蔓延和修复-前向循环。