AI 编程 Agent 能把 Bug 修掉之后,我反而开始担心另一件事

5 阅读5分钟

AI 编程 Agent 能把 Bug 修掉之后,我反而开始担心另一件事

最近一直在折腾 AI 编程 Agent。

刚开始用的时候,我跟大多数开发者一样,最关心的无非就是几个问题:Bug 能不能找到,代码能不能改对,项目能不能跑起来,速度到底比我自己写快多少。

但用得越多,我现在越来越觉得,这些可能都只是第一阶段的问题。

真正把 Agent 放进一个稍微复杂一点的项目以后,我开始在意另一件事:

它说“改好了”,我凭什么相信它?

这个问题不是说我不相信模型能力,而是正常开发流程里,本来就不存在一句“改好了”直接结束的情况。

同事给我提 PR,我都会看 Diff;改了核心逻辑,我会问为什么这么改;涉及数据库、权限、事务,我可能还要顺着调用链再看一遍。

结果轮到 AI,很多时候反而变成:

已完成修改,共修复 3 个问题。

然后就没了。

说实话,这种交付我是不太敢直接合的。

我现在看 Agent,会先看它能不能把过程留下来

最近看到一次 XunOPC 和 WorkBuddy 的同模型实测,我觉得里面有一个点挺值得聊。

不是谁多修了一个 Bug,也不是谁快了几十秒,而是“可追溯”。

比如 Agent 改完代码以后,我至少希望看到:

  • 到底动了哪些文件;
  • 每个文件具体改了哪几行;
  • 为什么选择这个方案;
  • 中间查过哪些代码、调用过什么工具;
  • 如果判断错了,能不能直接撤回。

这其实和我们平时做 Code Review 没什么区别。

区别只是以前 Review 的是人写的代码,现在 Review 的是 Agent 写的代码。

我甚至觉得,以后 Agent 越强,这部分反而越重要。

因为一个只能改十几行代码的 Agent,出了问题你自己扫一眼就知道了。以后它一次改几十个文件、跨几个模块,甚至自己连续执行几个小时,你再让人从结果倒推它中间干了什么,成本会非常高。

Diff 可能会变成 AI 编程里最重要的界面之一

以前我觉得 AI 编程产品最重要的是聊天框。

现在我反而觉得,Diff 很可能比聊天框更重要。

聊天框解决的是“我要它干什么”,Diff 解决的是“它到底干了什么”。

这两件事完全不是一个层级。

尤其是 Agent 开始自己读项目、找问题、修改多个文件之后,我最怕的已经不是它漏改,而是它顺手改了一些我根本不知道的东西。

所以我现在看到那种可以按文件展开 Diff、逐行看修改前后、发现有问题直接撤销的设计,会觉得比再多一个“自动修复”按钮有意义得多。

因为这才符合真正的软件开发流程。

AI 可以写,AI 可以改,但最后代码要不要进去,决定权还是应该在人手里。

还有一个我以前没太在意的东西:执行回放

Diff 能告诉我“改了什么”,但有时候还不够。

比如一个事务 Bug,最后代码可能就改了十几行。

真正有价值的是:Agent 为什么没有选另一个更简单的方案?它先看了什么?排除了什么?最后为什么做这个判断?

如果这些过程完全消失了,Review 的时候其实还是只能猜。

所以我现在越来越喜欢“执行过程可以回放”这个思路。

它不只是给开发者看的。

以后 Agent 真正进企业,这东西还会涉及审批、审计、责任边界。

出了问题之后,总不能大家围着一句“这是 AI 自动生成的”研究半天。

谁让它执行的、它看了什么、调用了什么、改了什么、最后谁确认的,都应该留痕。

我现在反而不太追求 Agent“全自动”

前两年大家都喜欢讲一句话:以后 AI 可以自己把整个项目做完。

现在真用了以后,我对“全自动”这三个字越来越谨慎。

不是做不到,而是软件开发本来就不应该只看最终结果。

代码能跑,只能证明一部分东西。

尤其权限、支付、审批、数据库、生产环境这些地方,我宁愿 Agent 多给我一些证据,也不希望它很自信地告诉我:

“放心,已经处理好了。”

所以我现在判断一个 AI 编程 Agent 好不好用,标准已经慢慢从:

它能不能替我写代码

变成了:

它做完以后,我敢不敢 Review,敢不敢合,出了问题能不能查。

能写代码的模型会越来越多,能修 Bug 的 Agent 也一定会越来越多。

但如果 AI 真要从“编程辅助工具”变成一个可以接任务的工程角色,我觉得最后拼的可能不是谁更会写。

而是谁能让人放心地把事情交给它。

这可能才是 AI Agent 真正进入工程团队之后,要补的那一课。