场景:AI Agent 需要临时共享代码怎么办?Agentgit 用匿名、不可改写的 Git 仓库传递上下文
当多个 AI Agent 分工协作时,代码交接往往比“让它们会写代码”更麻烦:一个 Agent 在沙箱里生成补丁,另一个 Agent 需要审阅;自动化任务又不值得为每个短期工作区创建 GitHub 账号、Token 和仓库权限。把代码直接塞进提示词会丢失提交历史,临时对象存储则还要设计下载、鉴权和清理流程。
Agentgit(站点品牌文案也使用 walgit)提供了一个很特别的答案:把 Git 的 Smart HTTP 作为 Agent 之间的交接协议。默认工作流不要求账号、Token 或 API Key,第一次 push 就能创建一个仓库;但它不是普通的私有 GitHub 替代品,而是“公开、短命、追加式”的共享空间。
它解决的不是哪一个 Git 痛点?
| 需求 | 常见做法 | Agentgit 的取舍 |
|---|---|---|
| Agent 传递一份代码快照 | 上传压缩包或对象存储 | 直接 push,保留 Git 历史 |
| 短期协作 | 创建账号、仓库和权限 | 一个仓库名即可开始 |
| 防止交接后被改写 | 依赖额外审计系统 | refs 追加式,拒绝历史重写和删除 |
| 自动清理 | 自己写 TTL 任务 | 文档声明最后一次 push 后 24 小时自动删除 |
先跑通最小流程
仓库名必须足够随机,因为默认仓库是公开可读的。下面的流程适合把一个 Agent 生成的提交交给另一个 Agent:
NAME=agent-handoff-$(openssl rand -hex 4) git remote add agentgit https://agentgit.co/$NAME.git git push agentgit HEAD:refs/heads/main git clone https://agentgit.co/$NAME.git reviewer-workspace
也可以从空目录初始化:
git init . git add -A git -c user.email=agent@localhost -c user.name=agent commit -m first git push https://agentgit.co/$NAME.git HEAD:refs/heads/main
这里的关键不是命令有多新,而是传输对象仍然是普通 Git 仓库。下游 Agent 可以按提交、分支和 diff 工作,不必把整个工作区重新解释成一段提示词。
追加式历史适合做“证据链”
Agentgit 文档将仓库设计为 append-only:已推送的 refs 不允许删除,历史重写也会被拒绝。这种限制牺牲了日常 Git 的灵活性,却适合自动化流水线中的交接记录:生成、审阅、修订可以形成连续提交,后续 Agent 至少能看见上下文,而不是只拿到最终压缩包。
如果需要确认是谁推送的,文档还提供 SSH 签名 push 和 provenance 查询:
git -c gpg.format=ssh \ -c user.signingkey=$HOME/.ssh/id_ed25519.pub \ push --signed=if-asked \ https://agentgit.co/$NAME.git HEAD:refs/heads/main curl "https://agentgit.co/_walgit/provenance?repo=$NAME"
注意,签名不会把默认仓库变成私有仓库。站点明确提醒:公开仓库不要提交密钥;文档还介绍了 Signer List 和 Reader List,用于限制推送者或读取者。涉及生产凭据时,应先在本地做 secret scanning,再决定是否使用这个服务。
用 MCP 或 watcher 接入 Agent 流程
如果 Agent 通过 MCP 工作,官方文档给出的 HTTP 配置入口是:
claude mcp add --transport http agentgit https://agentgit.co/_walgit/mcp
已文档化的操作包括状态查看、监听变更和 provenance 查询。另一个方向是 watcher:
bunx @zabaca/agentgit watch
watcher 通过出站 WebSocket 接收 push 通知,并可选择只运行一次、输出 JSON、只监听某个 ref,或在工作区干净时自动 fast-forward。这样可以让“代码已准备好”成为下游 Agent 的触发事件,而不是让它循环轮询 Git 仓库。
使用前必须接受的边界
第一,匿名不等于安全。默认仓库世界可读,并允许无凭据 push;仓库名如果可猜,代码就可能泄露。第二,它有明确的资源限制:单次 push 最大 99 MiB,仓库最大 250 MiB,并有客户端每小时的仓库、push 和数据量限制。第三,仓库会在最后一次 push 后 24 小时删除,不能把它当长期备份。第四,服务端本身不是一个已经被验证的企业级 Git 托管替代品;在正式流程中应保留可信远端和本地副本。
结语
Agentgit 的价值在于把 Agent 间的“临时交接”压缩成标准 Git push/clone:无需账号,历史不可改写,还能用签名、MCP 和事件 watcher 扩展自动化。但它的正确定位是公开的短期中转站,而不是私有代码仓库。只要把随机仓库名、敏感信息扫描、来源签名和长期备份补齐,它很适合连接一次性沙箱、审阅 Agent 与后续流水线。
相关链接