←

笨 AI 解决不了的编程问题,为什么换一种协作方式就解决了?

Why Dumb AI Fails at Coding—And the Collaboration Trick That Finally Solves It
📄 文章 🌐 公开 👁 5 次
📋 列表 ✏️ 编辑 🎨 画布版 📋 复制MD 🌐 复制HTML ☆ 收藏 🔊 TTS 🔗 复制链接

笨 AI 解决不了的编程问题,为什么换一种协作方式就解决了?

你有没有遇到过这种情况?

用 AI 编程,明明只是一个看起来不复杂的 Bug,却反复修不好。

改了一个地方,另一个地方又出问题;增加一个判断,问题暂时消失,过一会儿又复现;修复了五六次,代码越来越复杂,Bug 却依然存在。

最后,你开始怀疑:是不是这个 AI 太笨了?

其实,还有一种方法,可能比不断换模型更有效。

让当前的 AI 描述问题,再把这份描述交给另一个更擅长分析的 AI,让它负责诊断。

一、为什么 AI 会陷入反复修 Bug 的循环?

以我开发 Godot 引擎的自定义 Dock 系统为例。

我给编辑器增加了类似 Qt-ADS 的自动隐藏侧栏功能。侧栏可以固定、取消固定,还需要与原有的编辑器布局协同工作。

开发过程中,陆续出现了几个问题:

  • 菜单图标运行一段时间后消失;
  • 侧栏隐藏后,主界面仍然留有空白;
  • 侧栏按钮被 Dock 区域遮挡;
  • 修复一个状态后,又可能影响另一个状态。

AI 并不是完全不会写代码。它可以修改函数、增加条件、调整布局参数。

但问题在于:这些现象可能并不是独立的 Bug。

它们可能共同来自几个更深层的原因:

  • 节点的父子关系发生了变化;
  • 布局状态与可见状态没有同步;
  • 绘制顺序与实际坐标被混为一谈;
  • 对象销毁后,管理列表没有及时更新。

如果 AI 每次只盯着当前现象,就容易陷入一种循环:

发现症状 → 修改代码 → 暂时改善 → 出现新问题 → 再次修改。

这不是简单地多写几行代码就能解决的。

二、一个关键转变:让 AI 先描述问题,而不是继续改代码

当问题反复出现时,可以改变工作方式。

不再要求当前 AI 立即修复,而是让它先整理一份完整的问题报告,包括:

  1. 项目的整体架构;
  2. 相关组件之间的关系;
  3. Bug 的具体表现;
  4. 已经尝试过的修复;
  5. 每次修复的结果;
  6. 仍然无法解释的现象;
  7. 最值得进一步检查的代码路径。

这样做的意义,是把散落在代码、日志和多轮对话中的信息,变成一份结构化的诊断材料。

尤其重要的是,必须保留失败的修复记录。

如果只告诉第二个 AI“这里有一个 Bug”,它可能重新提出已经失败过的方法。

如果告诉它“这里已经修过八次,哪些方法有效,哪些方法无效”,它就能更有针对性地寻找根因。

三、再让更擅长诊断的 AI 做一次独立分析

把问题报告交给另一个 AI,并明确要求它:

  • 先检查问题之间是否存在共同根因;
  • 区分已确认事实与待验证假设;
  • 不要直接叠加补丁;
  • 优先分析架构、状态转换和对象生命周期;
  • 给出验证方法,再提出最小修复方案。

例如,侧栏被遮挡,不一定是绘制顺序的问题,也可能是布局位置错误。

侧栏隐藏后仍有空白,也不一定是可见性设置失败,还可能是主容器仍然保留了固定偏移。

当 AI 开始区分这些可能性,而不是立即修改代码时,诊断质量就可能出现明显提升。

这里有一个重要区别:

第一个 AI 可能一直在回答“怎样让这个现象消失”,第二个 AI 则可能开始追问“究竟是什么机制导致了这个现象”。

这才是协作真正产生价值的地方。

四、最有效的方式,不一定是让聪明 AI 重写整个项目

更合理的分工可以是:

第一步:执行 AI。

负责理解项目、修改代码、运行测试、记录问题。即使它暂时找不到答案,也可以帮助收集现场信息。

第二步:诊断 AI。

负责独立分析架构、审查历史修复、识别潜在根因,制定排查顺序。

第三步:执行 AI。

根据诊断方案修改代码,再通过编译和测试验证结果。

第四步:必要时再次会诊。

如果验证失败,就把实际结果、日志和新发现补充进问题报告,再让诊断 AI 重新判断。

这相当于建立一个反馈闭环,而不是让两个 AI 各自猜测。

当然,如果执行 AI 本身已经足够强,或者它拥有完整的源码上下文,也可以直接完成全部工作。多模型协作不是越多越好,而是在反复试错成本已经很高时,引入独立诊断。

五、为什么这种方法可能节省成本?

因为复杂 Bug 的成本,不只在于写代码,还在于反复尝试错误的修复方向。

假设一次错误修改需要十分钟,而你连续尝试十次,就可能花掉一百分钟,还留下更多需要维护的代码。

如果先花几分钟整理问题,再通过独立分析排除几个错误方向,即使第二个 AI 不能直接给出答案,也可能减少后续试错。

但这并不意味着第二个 AI 一定正确。更强的模型同样会误判,也可能根据不完整的描述得出错误结论。

因此,真正重要的不是盲目相信更聪明的 AI,而是让它提出可以被源码、日志和测试验证的假设。

诊断提供方向,证据决定方向是否正确。

六、这套方法还可以推广到 AI 编程以外

它其实符合一个更普遍的问题解决规律:

  • 执行者负责收集现场信息;
  • 分析者负责寻找因果关系;
  • 执行者根据方案采取行动;
  • 结果反馈给分析者,修正原来的判断。

在软件开发中,这可以是两个不同模型之间的协作。

在其他领域,也可以是一个人负责实践,另一个人负责审查;或者同一个人先记录事实,再换一个角度独立复盘。

不同视角的价值,不在于它们一定更聪明,而在于它们可能摆脱之前形成的思维惯性。

结语

以后遇到 AI 反复修不好的 Bug,不要只想着换一个模型,也不要急着继续增加补丁。

可以先问它:

“请停止修改代码。把当前架构、问题现象、历史修复、失败原因和待验证假设整理成一份完整报告,让另一个 AI 能够独立诊断。”

然后再让更擅长分析的 AI 审查问题,并要求它先找根因、再给修复方案。

AI 编程的进步,不只是让 AI 更聪明,也包括学会怎样组织 AI 的工作。

当一个 AI 暂时解决不了问题时,它仍然可能有价值:它可以帮你把问题描述清楚,让另一个 AI 更有机会解决问题。

💬 留言 ⋮⋮

加载中…
💡 不登录也可留言(IP 限制:每文/每天各 1/10 条)

加载中…

分 0.00
纸张白
护眼绿
羊皮卷
夜间黑
100%