开源工具 Sphinx 是一个面向 agent 辅助开发的 Git hook:在 agent 写的代码推送之前,它会就这段代码实际做了什么向用户提问,答对后推送才会继续。官网称,它想解决的是「可以把思考外包,但不能把理解外包」的问题,这对大量依赖编码 agent 写代码的开发者来说值得关注。
据官网介绍,流程分三步:
官网给出了一个示意对话:Stripe webhook 处理函数现在先保存事件 ID,再调用 charge()。Stripe 超时后重发同一事件,重试时会发生什么?用户第一次回答「会扣两次款」,Sphinx 指出不对:重试时会发现已保存的 ID 并直接返回 200,不再扣款;但该 ID 是在扣款成功之前保存的,如果 charge() 失败,下一次重试又会怎样?用户答「会跳过扣款,客户永远不会被计费」后,页面显示通过并继续推送到 origin/main。示例中的改动为 11 个文件、新增 5,012 行、删除 3,147 行。官网注明,这只是示意对话,真实问题来自用户自己的 diff。
官网称,Sphinx 支持 Codex、Claude Code、Cursor、OpenCode 和 Pi,也可以只配合普通 Git 使用。审阅模型可以使用现有的编码 agent、OpenRouter 或任何兼容 OpenAI 的接口,并设计为以极少的 token 运行。
sphinx install 会连接 Git 与各个编码 agent,并询问由哪个模型来审阅。
官网称,用户的答案不会传给编码 agent,.env 文件和密钥不会被打开。赶时间时,可以用 sphinx yolo 放行推送,每次跳过都会被记录。
安装命令为 npm install -g sphinx-understand,随后运行 sphinx install,之后照常 git push 即可。环境需要 Node 22.19 以上,支持 macOS、Linux 和 WSL。官网标注该工具免费,并链接到 FOSS 仓库 github.com/parthh01/sphinx。