AI反复改代码却修不好,怎样先固定最小失败路径再验证修复?
AI反复改代码却没有解决问题时,先固定能够重复失败的最小输入、启动命令和错误表现,再让它修改明确路径。没有复现依据时,连续换写法容易引入额外变化。
先从这里排查
AI反复改代码却没有解决问题时,先固定能够重复失败的最小输入、启动命令和错误表现,再让它修改明确路径。没有复现依据时,连续换写法容易引入额外变化。修复应同时通过原失败样本和相邻正常样本,并检查差异范围,不能仅凭程序能启动或模型解释合理就认定完成。
把用户操作缩成可重复的失败输入
适用于一次修改暂时无报错,换个输入又失败,或Agent在多份无关文件中来回尝试的情况。先保存工作树状态,区分用户原有改动和本次尝试。记录错误堆栈、请求路径及实际输入,删除私人信息后仍需保留能触发同一失败的关键结构。
确认错误出现位置与实际运行版本
按真实执行链确认入口、依赖版本和失败位置,检查是否运行了旧构建或不同目录的程序。用尽量小的样本复现后,写出预期结果和实际差异。若失败依赖外部服务,应保留错误响应或安全替身,不能仅用一个始终返回成功的假接口宣布问题已被定位。
只修复已定位路径并检查差异
围绕已定位原因做最小修改,每次检查变更文件与行为影响,避免同时升级依赖和重构无关模块。必要时添加能捕捉原错误的断言,并让失败信息显示关键输入。对不确定的原因先做可逆实验,实验无效后保留证据,不要把失败尝试继续堆成最后补丁。
让原失败样本先失败再通过
先确认复现用例在修复前确实失败,再验证修复后满足预期;随后检查相邻边界和原有正常行为。对界面或接口问题还需走实际路径,而不是只运行一个隔离函数。最终报告说明已验证的命令与结果,若外部环境无法访问,应明确剩余范围而非写全部测试通过。
本文没有运行你的项目或虚构某次修复成功,只提供调试组织方法。最小复现不能删掉真正决定错误的条件,复杂并发问题可能需要保留时序记录。测试通过也不能证明所有输入都正确,但能让修复建立在可重复证据上;不要为得到绿色结果直接删掉失败断言。
核对来源
以下资料用于核对概念和方法。文中的示例与测试范围分别注明,实际使用时请核对所用工具的版本。