Commit 归属权的争论:是信息披露还是广告投放?
Git commit 历史传统上是技术文档的神圣空间——它是关于为什么做出更改以及如何实现更改的按时间顺序记录。然而,一种新的趋势已经出现:诸如 "Assisted by blabot" 或 "Co-authored-by: Claude" 之类的归属信息尾注(attribution trailers)正在激增。
最初作为披露 AI 工具使用情况的一种方式,现在已演变成开发者社区内的一场激烈辩论。这是一种必要的透明度措施,还是仅仅是在开源项目的源代码中直接嵌入了价值数十亿美元的 AI 公司的免费广告?
反对 "Commit 广告" 的观点
对于许多开发者来说,在 commit 消息中包含 AI 工具名称是一种公然的 "dark pattern"(暗黑模式)。其论点很简单:这些工具通常是基于订阅的服务,并不会为使用它们的开源贡献者带来任何财务回报。通过允许这些工具自动将它们的名称附加到每一个 commit,开发者实际上是在一个永久性的、公开的账本中提供免费的广告位。
除了 commit 日志的美观问题外,还存在更深层次的哲学反对意见。将 LLM 用于 Co-authored-by 被一些人视为对创作过程的根本性误导。正如一位评论者所指出的:
"对于 Claude 或其他工具的情况,这不仅仅是一个广告,它反映了行业正以一种奇怪的方式将 LLM 辅助编程包装成一种 'co-author'(共同作者)关系,而它应该被视为更像是一种 'user-using-a-tool'(用户使用工具)的关系。当你使用 Photoshop 进行设计时……它并不会被称为 'co-designed by Photoshop'(由 Photoshop 共同设计)。"
支持披露的观点
相反,一些人认为,了解代码的出处(provenance)是一个关键的技术信号。在 AI 可以快速生成大量代码的时代,知道某个特定代码块是 AI 辅助的,可以提醒审查者保持警惕。
一些开发者更倾向于这种显式的标记,而不是另一种选择:"shadow AI"(影子 AI),即代码由 LLM 生成并提交,却不进行任何披露。从这个角度来看,Co-authored-by 尾注不是广告,而是一种正式的透明度机制。正如一位用户所指出的,pull request 是瞬时的,且往往会消失在 "sands of time"(时间的流沙)中,而 git 历史是下游消费者在多年后唯一可用的永久记录。
企业指标与 "Trojan Horse"(特洛伊木马)
有趣的是,讨论已经从个人开发者的偏好转向了企业监控。人们越来越怀疑,这些归属标签并非旨在供阅读日志的人类开发者使用,而是为了企业仪表板(dashboards)。
一些公司现在通过扫描 commit 历史中的已知 agent 签名来追踪 "AI adoption"(AI 采用率)。在这种情况下,Co-authored-by 标签变成了一种管理层用来衡量生产力或工具渗透率的指标,而不是为其他开发者提供的有用笔记。
此外,一些人对这些标签的法律影响提出了担忧。由于 AI 生成的代码在许多司法管辖区目前被视为不具备版权保护,在单个 "co-authored" commit 中混合人类和 AI 的贡献,可能会在所产生的代码的知识产权方面造成法律模糊性。
寻找中间地带
如果目标是信息披露,但问题在于广告投放,那么开发者应该如何处理 AI 归属问题?
为了在保持透明度的同时净化 commit 历史,已经提出了几种替代方案:
- 通用披露: 不指明具体产品名称(例如,"Claude" 或 "Copilot"),而是使用通用的标签,如
Generated-by: LLM。 - 技术规范: 遵循 Linux kernel 的方法,通过指定模型和版本而不带企业品牌,例如
AGENT_NAME:MODEL_VERSION。 - Merge Request 披露: 在 merge request 或 pull request 描述中披露 AI 的使用情况,将单个 commit 保持在纯粹的技术更改上。
- 自定义尾注: 使用
git-interpret-trailers来创建自定义的、非品牌化的标签,以满足内部政策,而不推广特定供应商。
最终,这场辩论突显了现代开发中以工具为中心(tool-centric)的性质与保持软件技术历史的整洁、有目的性且不受企业品牌干扰的愿望之间的紧张关系。