
Agentic Commits 发布:为 AI 代理提交记录归属信息
来源标题:Agentic Commits
Agentic Commits v0.1 发布,为 AI 代理生成的 git 提交定义归属约定。该规范在 Conventional Commits 基础上扩展,通过 Assisted-by 页脚记录产出提交的代理与模型,仍兼容现有 Conventional Commits 工具链。该页脚由 commit-msg 钩子自动写入,代理只需导出四个环境变量。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
AI agent 提交约定。
v0.1 定义归属:一套小而可执行的约定,用于记录产生某次提交的 agent 和模型——不引入 agent 专用扩展,也不滥用 Co-authored-by:。
Conventional Commits 定义消息结构:<type>[optional scope]: <description>,可选正文,以及遵循 git trailer 语法的 footer。Agentic Commits 是该规范的扩展,而不是替代。它保留 Conventional Commits 的全部规则,并增加 agent 专用要求:
Assisted-by 是合法的 Conventional Commits footer token——footer token 用 - 代替空白——因此 Agentic Commits 消息仍然是合法的 Conventional Commits 消息。对 Conventional Commits 结构的校验仍由现有工具完成;本项目只增加归属层。
原始项目:conventionalcommits.org · conventional-commits/conventionalcommits.org
feat: reject duplicate idempotency keys
Body as usual.
Assisted-by: omp 18.18.0 (opencode-go/deepseek-v4.1-flash)
该 trailer 由 git commit-msg hook 写入,因此只要某个 agent 在运行 git commit 前导出四个环境变量,它就能适用。
规范契约见 SPEC.md。
Co-authored-by: 是给人用的作者 trailer。它需要真实的 Name <email>,GitHub 会将其关联到账号。agent 会为它编造地址;至少有一个这样的地址被无关人员注册,导致提交被错误归属(claude-code#1653)。
现有的 Assisted-by: 用法值不兼容:<tool>、<tool>:<model>、<agent>/<model>、Name <email>。
agent 扩展只覆盖各自的 agent。git hook 覆盖所有 agent,包括尚不存在的 agent。
格式
Assisted-by: <AGENT_NAME> <AGENT_VERSION> (<AGENT_MODEL_PROVIDER_SLUG>/<AGENT_MODEL_SLUG>)
变量 示例 语法 AGENT_NAME omp 小写 dash-case AGENT_VERSION 18.18.0 [0-9A-Za-z][0-9A-Za-z.+-]* AGENT_MODEL_PROVIDER_SLUG opencode-go 小写 dash-case AGENT_MODEL_SLUG deepseek-v4.1-flash 小写 dash-case;版本段中允许点号
关键规则:
git clone <this repo> agentic-commits cd agentic-commits mise install # hk 2.11.1 hk install # register the commit-msg hook
要在现有仓库中采用,把 hk.pkl 和 hooks/ 复制进去(或把 commit-msg hook 合并进你的 hk.pkl),然后运行 hk install。
更喜欢原生 git?该脚本是普通的 commit-msg hook:
ln -s ../../hooks/assisted-by-commit-msg .git/hooks/commit-msg
或者,使用 Git ≥ 2.54,无需改动仓库即可全局安装:
git config --global hook.assisted-by.event commit-msg git config --global hook.assisted-by.command ~/path/to/assisted-by-commit-msg
面向 agent 作者
将这四个变量导出到每个可能运行 git 的工具子进程环境中,并在模型变化时更新它们:
export AGENT_NAME=omp export AGENT_VERSION=18.18.0 export AGENT_MODEL_PROVIDER_SLUG=opencode-go export AGENT_MODEL_SLUG=deepseek-v4.1-flash git commit -m "feat: ..."
未设置这些变量的 agent 仍可通过 adapter 进行归属,但标准本身是环境契约。不要为 agent 添加 Co-authored-by:;不要编造运行时无法提供的值。
git log -1 --format=%B git log -1 --format='%(trailers:key=Assisted-by,valueonly)'
仓库结构
SPEC.md 规范说明 hk.pkl hk commit-msg hook hooks/assisted-by-commit-msg 参考 hook(也可用作 git hook) examples/hk-config.pkl 用户级 hk 配置 tests/run.sh hook 和 hk 集成测试
使用 ./tests/run.sh 运行测试。
草案 0.1.0。trailer key 和变量名已稳定;值语法在 1.0.0 之前仍可能变化。变更遵循 SemVer 版本管理。
先前实践及各项目之间的分歧(Fedora、LLVM、OpenInfra、HyperSpy、Linux kernel、Kubernetes、Apache)总结在 SPEC.md §12。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。