2026年6月15日 1 分钟阅读

Commensa Audit 实战:追踪 AI 编程 Agent 的无用功,终结「越修越乱」循环

tinyash 0 条评论

团队用 AI Agent 高速交付时,合并速度看起来飞快——但有多少 PR 是在修正 Agent 自己之前留下的问题?Commensa Audit 是一个开源 CLI 工具,通过分析 Git 历史回答这个核心问题。本文带你从安装到解读报告,完整上手。

你需要知道的问题

一个 AI Agent 团队在 13 天内合入了 162 个 PR——然后一查,27% 是 Agent 在修正自己之前的工作。不是新增功能,不是优化性能,只是「修自己挖的坑」。

这就是 Rework Tax(返工税)——在 Agent 编程时代,速度数字掩盖了一个关键事实:你看到的「输出量」中,有多少是真正的前进,多少是自己擦自己的屁股?

Commensa Audit 是一个 Python CLI 工具,不依赖任何第三方平台,直接读你的 GitHub 仓库 Git 历史,输出一份 HTML 报告,告诉你:

  • 你的 AI Agent 有多少比例的时间在修正自己
  • 哪些模块是重灾区
  • 有多少行合入的代码最终被废弃或重写

安装

只需要一个干净的 Python 环境:

pip install commensa-audit

或者直接从源码装:

pip install git+https://github.com/commensa-ai/commensa-audit

依赖极简:Python 标准库 + requests + jinja2。不需要 Docker、不需要数据库、不需要 MCP 服务器。

还需要一个 GitHub Personal Access Token(只读权限即可——repo scope 用于私有仓库,public_repo 用于公开仓库)。

首次运行

对一个公开仓库做审计,一条命令就够了:

commensa-audit --repo commensa-ai/commensa-audit --token $GH_TOKEN

输出文件:

  • report_.html —— 可分享的自包含 HTML 报告,直接浏览器打开
  • audit_.json —— 原始数值的 JSON
  • units.csv —— 每个 PR 的逐条数据

如果仓库超过 500 个 PR,默认只分析最新的 500 条(有提示告诉你怎么放宽限制)。

理解报告中的核心指标

Rework Tax(返工税)

报告中最醒目的数字。这表示「修正性工作」占全部 PR 和变更行数的比例。

  • 20% 以下:你的 Agent 协作状态良好
  • 20-35%:中等,需要关注高频返工的模式
  • 35% 以上:Agent 的很大一部分工作是在绕圈走

Superseded Work(被取代的工作)

有一类 PR 更隐蔽——输出被完全推翻和重写了,而不是被后续 PR 修正。这种在纯合并指标中完全不可见:PR A 合并了,但从最终代码看,它的输出一行都没活下来。

Abandoned Attempts(废弃的尝试)

那些创建了但从未合并的 PR。原始数据中,合并率本身也是一个重要指标——大量 PR 创建后不合并,说明 Agent 在实验性方向上浪费了提交。

Churn Clusters(搅拌集群)

“一个暗色模式改了 15 个 PR”——Churn Cluster 就是这种模式的自动检测。当一系列 PR 在互相覆盖时,它们被标记为一个 cluster。这比单个 PR 的返工更能反映系统性低效。

Line Survival(代码存活率)

在分析窗口结束时,还有多少已合并的代码仍然活跃。新仓库的这种指标天然偏高,但结合 Rework Tax 一起看,能发现「产出多但存活的少」的隐匿浪费。

Hotspots(热点模块)

按模块(目录)聚合的返工率,与仓库整体返工率进行对比。如果一个模块的返工率显著高于平均水平,说明该区域的结构可能存在问题——或者是复杂度太高、或者是 Agent 对该模块的理解不够。

重要:分类方法及其局限

Commensa Audit 使用一个透明的信号级联进行 PR 分类:

  1. 显式修正标题 —— 标题含 “fix”、”revert”、”correct” 等关键词
  2. 自我修正 —— PR 撤销了近期自己添加的行
  3. Churn Cluster 归属 —— 属于搅拌集群中的 PR
  4. 标记为新内容 —— 不命中以上任何条件的

每一条分类结果都附带触发信号和详细的 “why”。阈值的配置集中在一个代码块里——你可以调整它并用 --reuse 重新运行,成本极低。

已知限制(报告页脚也会打印):

  • 分类是启发式的,不是绝对真理
  • Squash merge 会把多条提交揉在一起,影响归属准确性
  • 代码存活期短的仓库偏向乐观(代码还没来得及被覆盖)
  • Agent 标记的统计(Co-Authored-By 信息等)是下限估计——没有标记不证明是人类写的

在团队 CI 中集成

你可以把 Commensa Audit 作为定期检查纳入 CI 流程:

commensa-audit --repo your-team/your-repo --since 2026-01-01 --max-prs 0

配合 --reuse 参数可以复用上次抓取的 PR 数据,只重新分类,降低运行时 API 调用:

commensa-audit --repo your-team/your-repo --reuse

什么时候特别有用

  • 团队刚开始用 AI Agent 写代码时:建立基准线,知道当前的返工率是多少
  • 更换 Agent 工具或提示词策略后:对比返工率变化,量化改进效果
  • 核心模块重构期间:用 Hotspots 找出哪些模块需要人工介入优化
  • 管理层问「AI 产出质量如何」时:用数据而不是感觉回答

总结

Commensa Audit 解决了一个在 AI 编程时代越来越突出的问题——我们太关注「输出了多少」而忽视了「多少是白费劲」。它不是一个完美的工具(作者自己也坦诚列出了局限),但它是目前用 Git 历史衡量 Agent 效率的最直接方式。

不是所有合并都是进步。Rework Tax 让你知道,你的 Agent 有多少时间是在原地踏步。

项目地址:https://github.com/commensa-ai/commensa-audit

License:MIT

技术栈:Python,纯 CLI,本地优先,无遥测

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。