← 所有文章

AI编码代理需要更小的审查界面

2026年3月,一项关于代理式编码助手的研究发现,随着任务推进,软件工程师的认知参与度会下降;而现有工具对反思、验证和意义建构的支持仍然有限。1

这一发现点出了AI编码代理的瓶颈。难点已经不再是让代理生成代码。真正困难的是:在合并前,让人类保持足够参与,能够理解、验证并承担这项工作的所有权。

2026年4月的一篇软件工程论文从学科层面描述了同样的转变:生成代码会变得充裕,而编排、验证以及结构化的人机协作,将成为软件工程的核心工作。4

太长不读

AI编码代理需要更小的审查界面,因为大型生成差异集会超出真实审查者的注意力预算。团队应当用适合做决策的产物,替代巨大的代理输出:变更路径图、风险分区、声明卡、测试证据、回滚说明和未解决缺口。当界面要求工程师在代理已经完成工作之后再通读一切时,人类监督就会失效。只有当系统把每一次批准都变得小而具体,并且有证据支撑时,人类监督才真正有效。

关键要点

对于工程领导者: - 将审查者注意力视为稀缺的生产资源。 - 衡量代理成功与否时,不只看任务完成,还要看是否可审查。

对于开发者工具构建者: - 围绕决策设计审查界面:批准、拒绝、要求证据、拆分,或退回。 - 在关键位置加入认知强制机制:对高风险变更要求审查者明确判断,而不是被动滚动浏览生成内容。

对于审查者: - 不要批准自己并未实际检查的工作。 - 在阅读完整差异集之前,先要求代理把输出压缩为声明、受影响路径、测试、风险和回滚说明。

为什么AI编码代理会破坏审查注意力?

软件审查依赖注意力,而代理式工作流消耗注意力的速度快于传统开发。

人类编写的pull request自带一些有用的摩擦。作者在写代码时形成变更。审查者看到的范围,通常会反映人类输入速度、时间压力和社会成本。AI编码代理能以低得多的摩擦生成同样可见的产物:更多文件、更多样板代码、更多测试、更多解释,以及更多充满自信的措辞。

审查者收到的是一个更大的对象,却更难确信有人类真正理解它的每一部分。

题为“I’m Not Reading All of That”的CHI 2026研讨会论文研究了工程师使用代理式编码助手的过程,并发现认知参与度会随着任务推进而下降。作者认为,代理式编码工具应当成为支持推理和意义建构的“思考工具”,而不只是自主执行任务的工具。1

这应当改变团队评估代理输出的方式。一个无人能够负责任审查的已完成任务,并没有降低风险。它只是把风险转移到了差异集中无人阅读的部分。

更小的审查界面是什么意思?

更小的审查界面,是审查者为了做出某个具体决策所需的最小产物。

它不是更短的摘要。摘要可能掩盖风险。更小的界面应当缩小决策范围,同时保留证据。

审查界面 糟糕形态 更好形态
差异集 2,000行生成代码 变更路径图加按风险排序的文件
摘要 “完成了认证清理” 声明、受影响调用方、测试和缺口
测试 “所有测试通过” 命令、结果、失败类型、缺失覆盖
风险 “低风险” 涉及的数据、外部调用、回滚路径
批准 一个绿色按钮 批准声明、要求证据、拆分或拒绝
后续事项 松散的TODO 负责人、日期、状态和阻塞情况

审查界面变小,是通过把审查拆成一个个决策来实现的。审查者不应在看见需要判断的重点之前,被迫通读整个生成差异集。界面应当回答:改了什么、为什么改、风险在哪里、已有证据是什么、还有哪些地方需要人类判断。

审查者最先应该看到什么?

审查者应当先看地图,再进入地形。

第一个屏幕应回答5个问题:

  1. 哪些文件发生了变化?
  2. 哪些行为发生了变化?
  3. 代理提出了哪些声明?
  4. 哪些声明已有证据?
  5. 哪些声明仍需要人类判断?

这个初始界面可以是一张表:

路径 变更类型 风险 证据 决策
app/routes/webhooks.py 认证边界 新增缺失签名测试 手动审查
tests/test_webhooks.py 回归测试 修复前失败,修复后通过 检查断言
docs/webhooks.md 公开文档 已链接源行为 文案审查

这张表不能替代差异集。它告诉审查者应当先把注意力放在哪里。

同样的思路也适用于代理解释。有用的代理不会只说:“我修改了webhook流程并更新了测试。”有用的代理会说:

  • 声明:未签名的重试请求现在会在解析正文之前失败。
  • 证据:test_unsigned_retry_rejected_before_json_read在补丁前失败,在补丁后通过。
  • 受影响路径:仅限webhook重试端点。
  • 风险:签名边界情况和格式错误的payload。
  • 剩余缺口:尚未用真实提供方payload在预发布环境中回放验证。

这种形态给了人类一个可决策对象。

为什么人类审查仍然不同?

人类审查者能提供代理无法提供的反馈。

2026年3月,一项针对300个开源GitHub项目中278,790段代码审查对话的实证研究发现,人类审查者提供的反馈不止是缺陷筛查,还包括理解、测试和知识传递。2研究还发现,在审查AI生成代码时,人类审查者的交流轮次比审查人类编写代码多11.8%;并且AI代理建议的采纳率低于人类建议。2

对工具设计而言,最重要的发现是:超过一半未被采纳的AI代理建议要么不正确,要么被开发者用其他修复方式处理。项目采纳AI代理建议时,这些建议带来的代码复杂度和代码规模增长,也高于人类审查者建议。2

这些证据并不支持被动信任。AI审查可以扩展检测能力。人类审查仍然承载上下文、品味、可维护性判断和知识传递。更小的审查界面应当保护这些人类优势,而不是把它们埋在生成输出之下。

代理pull request会在哪里失败?

当生成工作超出团队验证能力时,代理式pull request就会失败。

一篇MSR 2026论文研究了GitHub上33,000个由代理编写的pull request。文档、CI和构建更新任务的合并成功率最高,而性能和缺陷修复任务表现最差。未合并的pull request往往触及更多文件、做出更大变更,并且CI失败。定性拒绝模式包括审查者参与不足、重复PR、不需要的实现,以及代理偏离目标。3

这里的教训不是“代理只能写文档”。教训是审查界面大小会与变更风险相互作用。一个很小的生成文档修复可能很容易检查。一个很大的生成缺陷修复,则可能迫使审查者从头重建代理的推理过程。

团队应当在合并前缩小审查界面:

失败模式 更小界面的应对方式
变更集更大 按行为和提交边界拆分
触及更多文件 按执行环境和数据风险排序文件
CI失败 展示失败任务、原因和修复尝试
审查者参与不足 要求对高风险声明做出明确决策
重复或不需要的工作 附上目标、负责人和验收标准
代理偏离目标 将结果与原始用户结果进行比较

审查者不应在读完每个文件之后,才发现范围、风险和目标漂移。

界面应该强制什么?

好的审查界面会在正确时刻施加摩擦。

它们不应拖慢每一个生成变更。它们应当拖慢涉及用户、安全、数据、资金或架构风险的声明。

风险信号 认知强制机制
认证或权限变更 审查者必须检查受影响路径和测试
数据库迁移 审查者必须确认回滚和数据兼容性
公开内容 审查者必须确认引用和私有边界检查
只有生成测试 审查者必须确认测试在修复前会失败
大型差异集 审查者必须拆分,或明确接受审查负担
代理存在不确定性 审查者必须选择推进、拒绝或要求证据
没有回滚路径 批准保持阻塞

认知强制并不意味着打扰审查者。它意味着在被动点击会制造虚假信心的位置,要求做出真实决策。

关于认知参与的论文建议使用更丰富的交互形式和认知强制机制,以在AI辅助编程中维持更深入的思考。1开发者工具应当认真落实这一建议。它们应当以让思考更容易、让草率批准更困难的方式,呈现工作的状态。

更小的审查界面与审查包有什么关系?

审查包是持久产物。更小的审查界面,是人类使用这一产物的交互入口。

审查包可以包含完整证据:变更文件、命令输出、测试、来源检查、发布证明、决策和未解决缺口。审查界面则应展示人类此刻需要的那一片。

审查包层级 审查界面
完整追踪 重要命令输出
完整差异集 按风险排序的文件
全部发现 需要决策的声明
全部检查 失败、缺失或高风险检查
全部批准 当前审查者决策
全部缺口 阻塞性缺口优先

这种拆分很重要。把审查包直接倾倒进PR,并不能解决注意力问题。审查包给系统提供证据。审查界面给人类提供穿过证据的路径。

AI代码审查需要异议,但只有审查者能看见异议时,异议才有价值。埋在代理报告第4页的少数意见,保护不了项目。作为决策卡路由出来的少数意见,才可能发挥作用。

团队应该先构建什么?

先从审查对象预算开始。

对于每一个由代理编写的pull request,都要求包含:

  1. 一条目标陈述。
  2. 一张变更路径图。
  3. 一张风险表。
  4. 一张证据表。
  5. 一份未解决缺口清单。
  6. 一条回滚说明。
  7. 一份人类决策日志。

然后限制每个对象的大小。如果代理无法把路径图、表格或缺口清单压缩成可读产物,那么这个pull request要么太大,要么结构太差,不适合负责任地审查。

大小限制很重要,因为代理会乐于生成详尽产物,把同样的注意力问题用散文形式重演一遍。应对巨大差异集的答案,不是巨大摘要。答案是适合人类做决策的审查对象。

快速总结

AI编码代理让代码生产成本下降,却让审查成本上升。关于代理式编码助手的研究显示,在代理辅助任务中,认知参与度会下降,而现有工具对反思和验证的支持不足。1代码审查实证研究显示,人类仍然能提供理解、测试判断和知识传递;同时,AI代理建议的采纳率更低,被采纳时还可能增加复杂度。2失败的代理式PR研究则显示,大型、偏离目标、审查薄弱的变更,会以可预测的方式失败。3

更小的审查界面是实际可行的应对方式。让代理把工作压缩成声明、风险、证据、决策和缺口。然后让人类只批准自己实际检查过的内容。

FAQ

什么是AI编码代理的审查界面?

审查界面是代理输出中供人类做决策的那一部分。pull request差异集、声明卡、测试证明表、风险图或回滚说明,都可以是审查界面。优秀工具会让每个界面都小到足以负责任地检查。

为什么更小的审查界面比摘要更好?

摘要可能掩盖风险。更小的审查界面会缩小决策范围,同时保留证据。审查者应当看到声明、受影响路径、证明、风险和未解决缺口,而不只是看到一段流畅地宣称任务已完成的文字。

更小的审查界面会替代完整差异集吗?

不会。完整差异集仍然可用。更小的界面会告诉审查者先看哪里、哪些声明重要、哪些决策仍然未完成。

AI编码代理如何影响人类审查?

AI编码代理生成大型产物的速度,可能快于人类检查它们的速度。关于代理式编码助手的研究发现,认知参与度会随任务推进而下降;代码审查研究也发现,人类审查者仍然能提供代理缺乏的上下文反馈。12

什么情况应当阻止代理编写的PR获得批准?

当PR没有清晰目标、没有变更路径图、主要声明缺乏证据、高风险变更没有回滚路径、存在未解决测试失败、安全或数据边界未经审查,或者包含审查者并未实际检查的生成代码时,都应阻止批准。


参考资料


  1. Carlos Rafael Catalan, Lheane Marie Dizon, Patricia Nicole Monderin, and Emily Kuang, “I’m Not Reading All of That: Understanding Software Engineers’ Level of Cognitive Engagement with Agentic Coding Assistants,” arXiv:2603.14225,2026年3月15日提交,2026年3月18日修订,并在CHI 2026 Workshop on Tools for Thought发表和展示。本文关于认知参与、意义建构、反思、验证和认知强制的论述来源。 

  2. Suzhen Zhong, Shayan Noei, Ying Zou, and Bram Adams, “Human-AI Synergy in Agentic Code Review,” arXiv:2603.15911,2026年3月16日提交。本文关于278,790段审查对话研究、300个项目样本、AI生成代码审查轮次增加11.8%、AI代理建议采纳率更低,以及代码复杂度/规模发现的来源。 

  3. Ramtin Ehsani, Sakshi Pathak, Shriya Rawal, Abdullah Al Mujahid, Mia Mohammad Imran, and Preetha Chatterjee, “Where Do AI Coding Agents Fail? An Empirical Study of Failed Agentic Pull Requests in GitHub,” arXiv:2601.15195,2026年1月21日提交,已被MSR 2026接收。本文关于33,000个代理编写PR研究、合并成功模式、CI和变更规模观察,以及拒绝模式的来源。 

  4. Mamdouh Alenezi, “Rethinking Software Engineering for Agentic AI Systems,” arXiv:2604.10599,2026年4月12日提交。本文关于当生成代码变得更加充裕时,软件工程应围绕编排、验证和结构化人机协作重新组织的论述来源。 

相关文章

AI代码审查需要异议,而不是共识

AI代码审查需要独立代理保留异议、验证发现、将不确定性转交给人类,并在团队合并PR前重新审查修复。

2 分钟阅读

Rust的LLM政策草案划出了正确边界

Rust的LLM使用政策草案允许将AI用于学习、审查和实验,同时禁止在Rust中使用生成的评论、文档以及绕过人工审查的做法。

1 分钟阅读

Ralph循环:我如何在夜间运行自主AI代理

我构建了一个使用停止钩子、生成预算和文件系统记忆的自主代理系统。以下是失败经验以及真正能交付代码的方法。

3 分钟阅读