来源笔记

Do AI Coding Agents Log Like Humans? An Empirical Study

AI Coding AgentsSoftware LoggingEmpirical Software EngineeringCode ReviewObservability

本文研究 AI 编码代理在真实开源拉取请求中如何处理软件日志。结果显示,代理改动日志的频率低于人类,经常忽略明确的日志指令,而且很多日志问题在生成后仍由人类修复。

  • 日志是调试和运维软件时的核心可观测性要求,但以往研究没有说明 AI 编码代理在真实仓库里如何处理它。
  • 团队需要知道代理是否遵循人类的日志习惯、是否响应日志指令,以及这会减少还是增加维护工作。
  • 日志不足会让系统更难诊断,日志过多则会带来噪声和开销。
  • 作者分析了 AIDev 数据集中的 4,550 个代理 PR3,276 个人工 PR,覆盖 81 个开源仓库;在排除双方都没有日志变更的仓库后,主分析使用 77 个仓库
  • 他们用按语言区分的正则规则,在 Python、Java 和 JS/TS diff 中检测日志变更,并排除了生成产物以及测试/构建噪声。对 380 个 diff 的人工检查报告了 96% 精确率94% 召回率
  • 他们在每个仓库内比较代理 PR 和人工 PR 的日志出现率、日志密度、消息特征、日志级别和句法位置。
  • 他们从关联 issue、仓库说明文件和 PR 评审评论中收集代理指令,再用 GPT-4o、GLM-4.7 和 DeepSeek-V3.2 的三模型投票方案对日志相关意图进行分类。在 100 个人工标注样本 上,提示词修订达到 Cohen's kappa = 0.83
  • 他们还追踪生成后的日志调整,查看后续日志修复是由人类还是代理完成。
  • 77 个仓库中的 45 个(58.4%) 里,人类比代理更频繁地修改日志。配对差异被报告为具有统计显著性,p = 0.019。中位归一化得分为 0.45,作者将其解释为在典型项目中,代理修改日志的频率比人类低约 16%
  • 在双方都会添加日志的仓库中,代理每 1,000 行修改的 LOC 引入的日志数比人类多 30%,所以代理在跨 PR 的层面上更少改日志,但一旦改日志,密度更高。
  • 明确的日志指令很少:研究到的指令来源中只有 4.7% 包含这类指令。
  • 代理对建设性的日志请求有 67% 的时间未能遵守,而且论文指出,即使指令很具体,这种低遵守率也存在。
  • 人类完成了 72.5% 的生成后日志修复,通常通过后续提交而不是明确的评审评论完成,这说明存在隐性的维护负担。
  • 论文还称,代理在错误日志模式上比在信息上下文日志上更接近人类,但摘录没有给出日志级别或句法上下文的详细数值分解。