减少 AI 返工,我现在一般这么做
减少 AI 返工,我现在一般这么做 原文:Review AI-generated code 与 AI 代码审查实践的综合解读 作者:我(结合个人 AI 编程实践整理) 来源:GitHub、Uber、Cloudflare、Trellis 等公开资料,整理于 2026 年 08 月 26 日 AI 写代码越来越快,但返工并没有因此自动消失。我现在更关心的,不是 AI 一次写了多少,而是错误能不能更早暴露、修改能不能更小、人工判断能不能用在真正重要的地方。 这篇文章记录的,就是我目前用来减少 AI 代码返工的一条实践路径。 一、我以前把 AI 当成“写得更快的人”,后来发现它更像“放大器” 刚开始用 AI 写代码时,我最在意的是它能不能一次生成几百行、能不能把一个需求快速改完。后来真正经历了几轮线上问题、PR 返工和反复讨论,我才意识到:AI 放大的不只是产出速度,也会放大需求里的空白、上下文里的误导和开发者自己的错误判断。代码生成得越快,如果没有同步增加验证能力,Review 只是被动接收更多半成品。 我最近看了一些开发者分享和团队实践,大家的结论其实很接近:不要把“AI 写了多少代码”当成成功指标,而要看它是否减少了无效沟通,是否能在进入人工 Review 前被自动检查,是否让 reviewer 更快理解真正的风险。GitHub 的官方建议也很直接:先检查功能、上下文和意图,再看代码质量、依赖和安全;最终合并责任仍在开发者身上。我现在给自己的目标因此换了一个说法:不是保证 AI 一次写对,而是让错误尽可能早暴露,让每一轮修改尽可能小,让机器能判断的事情不要消耗人工判断,让必须由人判断的事情明确标出来。 二、写之前先做上下文盘点:不要让 AI “自己理解整个仓库” 我遇到过最浪费时间的一类任务,是直接对 Agent 说“先理解一下这个仓库,再实现功能”。小项目这样做问题不大,仓库一大,Agent 往往会先花很多时间猜目录结构,读到相似但已经废弃的实现,最后在错误的上下文上给出一份看起来很合理的方案。社区里有开发者把自己的流程总结成:先画仓库地图,再找相关文件,检查上下文是否足够,最后检查回答是否确实基于这些文件。我照着这个思路调整后,最大的变化不是回答更长,而是少了“改错文件”和“参考旧逻辑”的返工。 我现在会把任务拆成四步: 先定位:让 AI 只列出与任务直接相关的目录、入口、调用方、测试和配置,不要马上改代码。 再确认:让它说明每个文件为什么相关,哪些文件只是相似样例,哪些内容可能已经过期。 再补上下文:补充接口契约、数据库结构、历史 PR、业务规则和失败案例;如果这些信息没有提供,就明确标成未知。 最后锁范围:规定允许修改的文件和不允许顺手做的重构,要求它在动手前复述范围。 我会先使用这样的提示: 先不要写代码。请完成以下任务: 1. 列出本任务涉及的入口、调用链、数据结构、测试和配置; 2. 区分“已从仓库确认的事实”和“你的推测”; 3. 指出还缺少哪些上下文,以及缺失它们会影响什么判断; 4. 给出最小改动计划,列出准备修改和明确不修改的文件; 5. 等我确认计划后再实现。 这里有一个容易被忽略的细节:我不会把所有文档一股脑塞给 AI。上下文太多同样会稀释重点,我更倾向于使用“渐进披露”:先给仓库地图和任务相关文件,遇到具体问题再补充协议、ADR、历史 PR 或业务文档。AI 必须回答“我实际参考了哪些文件”,而不是笼统地说“我已经理解整个项目”。上下文的关键不是多,而是相关、最新、可核对。 如果它引用了过期文档,我会先停下来校正上下文,而不是继续修补错误答案。 ...