Code-Cleanliness-Agent-Footprint(代码整洁度的 Agent 足迹效应)

定义

Code-Cleanliness-Agent-Footprint 是指代码整洁度不影响 coding agent 能否完成任务,但显著改变其操作成本结构的实证现象:整洁代码使 agent 使用更少 token(−7-8%)并大幅减少文件回访(−34%)。

核心发现

通过率不变,足迹收缩

SonarSource 的 minimal-pair 实验(660 次试验,Claude Sonnet 4.6 + Claude Code)发现:

指标变化幅度解读
任务通过率−0.9pp(不显著)agent 都能做对,与代码质量无关
Input tokens−7.1%agent 拉入更少的代码到上下文
Output tokens−8.5%产出(工具调用+代码+推理)更少
Reasoning chars−11.1%推理过程更精简
File revisitation−34%最大效应:不再反复回去验证
Conversation turns−7.0%对话更短

File Revisitation:最大单一效应

核心机制

Agent 在脏代码上的典型行为是 read → edit → read again——反复回去确认之前的修改是否正确。在干净代码上是 read → edit → move on——读一次就定稿。

这个 34% 的差距在所有 6 个仓库对上都成立(−7% 到 −69%),是最稳健的信号。

类比:在一个标识清晰的网格城市里,你去过的地方不需要再回去确认;在一个没有路标的有机生长区域里,你不断折返验证"刚才走对了没有"。

任务拓扑的调节效应

论文按任务类型拆分为三条轨道:

轨道Token 效应行为差异
Calibration(简单)接近零基线
Boundary-crossing(跨模块)−11.0% input受益最大——跨模块导航时整洁度价值更高
Cognitive-hotspot(高密度区域)~0% inputtoken 不变但读更多文件——重构把复杂度分散到了更多 helper

张力:boundary-crossing 和 cognitive-hotspot 两个轨道拉扯方向相反。Clean 版本在热点任务上把逻辑分散到更多文件(helper extraction),导致 agent 需要读更多文件但每次编辑更少。聚合后 −7.1% 是两种行为平均后的净效应。

Per-task 方差极大

  • 同一任务同一侧 10 次试验,最贵的通常是 2.5 倍最便宜的
  • 27 个真实任务中,16 个在 clean 侧更便宜,11 个在 messy 侧更便宜(60/40 而非聚合数字暗示的压倒性优势)
  • 极端案例:ckan/organization-list-exclude-empty 的 10 次 clean 试验跨度 1.4M–10.6M input tokens

实践含义:单个任务的 ~10% delta 可能是 agent 噪声;只有聚合数百次试验才能提取信号。

评论混淆实验

论文做了关键控制:归一化两侧评论行数后发现——

仓库对原始 input tok ∆归一化后 ∆
sonar-caas-poc+1.2%−18.0%
sonar-sca+1.3%−8.5%
sonarcloud-codedatalake−29.0%−30.6%
genie+5.2%+3.0%

sonar-caas-poc 归一化后方向翻转,说明原始效应中确实有评论量贡献;但 sonar-sca 和 sonarcloud-codedatalake 的效应保持或增强,说明代码结构本身的贡献是真实的。

对 Agentic Engineering 的启示

代码质量是第四类 Token 效率杠杆

Agentic-Workflow-Token-Efficiency 已识别的三类杠杆(模型选择 9x、工具裁剪、上下文管理)之外,本文新增第四类:

杠杆典型幅度改动成本
模型选择~9x切换 API
工具裁剪−8-12KB 上下文修改 MCP 配置
上下文管理−26-54%重构 harness
代码整洁度−7-8%持续代码治理

幅度最小但不需要改 harness——它是唯一"不需要碰 agent 基础设施"的杠杆。

投资回报率翻转

AI 时代代码质量投资的 ROI 论证应新增一行:

"整洁代码不仅降低人类维护成本,还降低 agent 运营成本——每次 agent 交互都少用 7-8% 的 token,在高频率 agent 工作流中年化效果显著。"

关键数据点

指标数据
试验总次数660 (6 pair × 33 tasks × 10 trials)
通过率 (cleaner)0.913
通过率 (messier)0.921 (差距 −0.9pp)
Input tokens ∆−7.1%
Output tokens ∆−8.5%
Reasoning chars ∆−11.1%
File revisitation ∆−34% (最大效应)
Conversation turns ∆−7.0%
最贵/最便宜试验比~2.5x (trial-to-trial variance)
Per-task input token delta 范围−47% to +44%
模型Claude Sonnet 4.6 + Claude Code

前提与局限性

  • 仅 Claude Sonnet 4.6 + Claude Code,未测试其他模型或 harness
  • Haiku 4.5 试验噪声过大无法提取信号
  • 仓库和任务由作者策划,可能存在选择偏差
  • 只检测 hidden test,不检查是否破坏了既有测试
  • 未检测 agent 输出代码的整洁度——整洁度是否自我强化或自我侵蚀未知
  • 效应仅在短程任务(单任务)上测量,长程累积效应未验证

关联概念