如何为git-ai接入新的AI Agent:支持Claude、Cursor、Copilot等10+编码助手
【免费下载链接】git-aiA Git extension for tracking the AI-generated code in your repos项目地址: https://gitcode.com/gh_mirrors/git/git-ai
git-ai是一款 Git 扩展工具,用于追踪仓库中每一行 AI 生成的代码。它会自动为每次提交附加"作者归属"(Authorship Log)元数据,让团队精确统计 Claude Code、Cursor、GitHub Copilot 等 10+ 款 AI 编码助手的代码贡献占比。本文是一份面向新手的完整指南,带你理解 git-ai 如何识别 AI Agent,以及如何为你的新助手接入 git-ai。
已支持的 AI Agent 一览
git-ai 目前覆盖主流编码助手:Claude Code、Cursor、GitHub Copilot(VS Code 插件 / CLI / OTEL)、Gemini CLI、Codex、Windsurf、Continue、Cline、OpenCode、Pi、Amp、Droid、Firebender,以及 JetBrains 与 Visual Studio 生态。
各助手的识别逻辑分别位于:
- 会话记录解析器:src/streams/agents/(如 claude.rs、cursor.rs、copilot.rs)
- 提交前 Hook 事件预设:src/commands/checkpoint_agent/presets/
- Hook 自动安装器:src/mdm/agents/
工作原理:git-ai 如何区分"人写的"与"AI 写的"?
git-ai 不修改提交历史,也不依赖耗时的 Git Hook。当 AI Agent 修改文件时,git-ai 通过git-ai checkpoint命令在关键节点做快照,把工作区改动精确切分为 Human Edits 与 Agent Edits:
最终归属信息通过 Git AI 开放标准 v3.0.0 定义的格式,存入refs/notes/ai命名空间下的 Git Notes,并自动把每一行 AI 代码关联到生成它的提示词(prompt)——这些会话数据会经过脱敏处理后保存在仓库之外,防止密钥与隐私信息泄漏。
接入新 Agent 的 4 个关键步骤
git-ai 的 Agent 接入遵循"三层结构",这也是你为新助手开发支持时应该覆盖的模块:
第 1 步:解析 Hook 事件(Preset 层)
Agent 执行"改文件"、"跑 Bash 命令"等操作时,会向 git-ai 发送 Hook 事件。每个 Agent 对应一个预设(Preset),负责把原始 JSON 解析为统一的 ParsedHookEvent(PreFileEdit、PostBashCall 等)。
以 Cursor 为例,cursor.rs 会校验conversation_id、workspace_roots等必填字段,并识别 Agent 运行环境;你可以参考 2026-04-20-agent-presets-rewrite.md 了解预设体系的重构设计。
第 2 步:实现会话扫描器(Streams 层)
除了实时 Hook,git-ai 的守护进程(daemon)还会定期"扫库"(sweep)各 Agent 本地保存的会话文件(通常是 JSONL/SQLite)。以 Cursor 为例,streams/agents/cursor.rs 每 30 分钟递归扫描~/.cursor/projects下的对话文件,并用 字节偏移水印 记录读取进度,避免重复解析。
💡 提示:如果你的 Agent 会把对话日志存在本地(如~/.claude、~/.codex),只需仿照现有 Agent 的Agenttrait 实现即可。
第 3 步:编写 Hook 安装器(MDM 层)
HookInstaller 接口 定义了check_hooks/install_hooks/uninstall_hooks方法。你的安装器负责检测目标工具是否已安装,并把 git-ai 的 Hook 配置写入 Agent 的配置文件(支持 dry-run 预览)。所有安装器在 get_all_installers() 中统一注册。
第 4 步:补充测试与夹具
每个 Agent 都有对应的集成测试与测试数据,例如 tests/integration/cursor.rs 及其夹具 tests/fixtures/cursor-session-simple.jsonl。接入新 Agent 时,建议同步添加一份最小化会话夹具,保证解析逻辑可回归验证。
官方建议:对接实现,而不是重写标准
如果你想让自研 Agent 兼容 git-ai 格式,官方标准明确建议:直接对接已发布的实现(Hook 协议 + checkpoint 命令),而不是自行实现整套 Git Notes 规范(见 specs/git_ai_standard_v3.0.0.md)。这样做可以自动获得归属日志序列化、脱敏(redaction)、统计与 Blame 等全部能力。
此外,git-ai 还会把内置技能(Skills)安装到 Claude Code、Cursor 等 Agent 的技能目录中,安装逻辑见 src/mdm/skills_installer.rs,技能源文件位于 skills/ 目录。
验证接入效果:stats 与 blame
接入完成后,两条命令即可验证归属链路是否打通:
git ai stats # 统计 AI 代码占比、接受率,并按工具/模型细分 git ai blame <file> # 逐行显示每行代码来自人类还是 AI Agent小结
| 层级 | 目录 | 职责 |
|---|---|---|
| Preset 层 | src/commands/checkpoint_agent/presets/ | 解析 Agent 的实时 Hook 事件 |
| Streams 层 | src/streams/agents/ | 扫描 Agent 本地会话文件 |
| MDM 层 | src/mdm/agents/ | 自动安装/卸载 Hook 配置 |
按照"预设解析 → 会话扫描 → Hook 安装 → 集成测试"四步走,你就能把自己的 AI Agent 顺利接入 git-ai,让团队清晰掌握 AI 代码的真实贡献。🚀
【免费下载链接】git-aiA Git extension for tracking the AI-generated code in your repos项目地址: https://gitcode.com/gh_mirrors/git/git-ai
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考