让另一个 AI 来挑刺:Zeroshot 如何解决 AI 编程工具”自己审自己”的困局
用 Claude Code 写完代码,再让同一个 Claude Code 说”没问题可以合并”——这件事,从逻辑上就不太对。但大多数 AI 编程工作流就是这么干的。写代码的是一个 Agent,验收的还是同一个 Agent,它看到的上下文一模一样,根本没有能力”独立审查”。
Zeroshot 解决的就是这个问题。它不是一个新的 AI 编程工具,它是一个多 Agent 编排引擎:让一个 Agent 写代码,让另一个从未见过这段代码怎么写出来的独立 Agent 来审查它。两个 Agent 之间完全隔离,审查 Agent 只能看到最终产物,看不到过程。没有自我确认的余地。
这个思路不新鲜,工程界早就知道”谁写谁测”是软件质量的大敌。但把它做成一个可配置的 CLI 工具,让 Claude Code、Codex、Gemini CLI、OpenCode 都能插进来跑这个循环——这个实现值得认真看一下。
它到底怎么跑?
安装很简单:
npm install -g @the-open-engine/zeroshot
需要 Node ≥ 18,以及至少一个编程 Agent 的 CLI(Claude Code、Codex、Gemini CLI 或 OpenCode)。Linux/macOS 均支持,Windows 暂时不在支持范围内。
跑起来更简单,三种方式任选:
zeroshot run 123 # 读取一个 GitHub Issue
zeroshot run feature.md # 读一个 Markdown 需求文档
zeroshot run "给这个 API 加上缓存" # 直接命令行描述任务
背后跑的是一套 executor-verifier loop:
- Conductor(指挥)评估任务复杂度,决定需要多少资源
- Executor(执行者)在隔离环境里写代码——可以是 git worktree,也可以是 Docker 容器
- Independent Verifier(独立审查者)出现。它从未见过这个任务的执行上下文,只能看到最终产物,然后给出
APPROVED或REJECTED + 可复现的失败信息 - 不通过就打回重做,循环继续,直到验证通过,或者得到一个明确”这个需求无法完成”的理由
整个过程写入 SQLite 账本,断了可以 zeroshot resume <id> 接着跑,不用担心跑了一半丢失状态。
它和普通的 AI 编程 Agent 有什么区别?
| 单个 AI 编程 Agent | Zeroshot | |
|---|---|---|
| 谁来判断代码对了? | 写代码的同一个 Agent | 一个没看过过程的独立 Agent |
| 代码真的跑了吗? | 通常只是声称没问题 | 跑你的真实测试 |
| 失败了会怎样? | “我检查过了,没问题” | 一个可以复现的失败记录 |
| 什么时候停? | Agent 觉得差不多了 | 验证通过,或者明确证明做不到 |
它适合什么场景,不适合什么场景?
README 里说得很清楚,Zeroshot 擅长的是有明确验收标准的任务:
- 给 API 加上限流(滑动窗口、per-IP、429 响应)—— ✅
- 重构认证模块,改用 JWT —— ✅
- 修一个具体的 Bug —— ✅
- “让应用跑得更快一点” —— ❌(需要先探索)
- “改善代码质量” —— ❌(目标模糊)
这是个很重要的边界说明。用 Zeroshot 跑一个模糊需求,它要么跑很久打不出结果,要么给你一个”无法验证”的结论。这不是它的缺点——这是它诚实的地方。
适合用 Zeroshot 的人:
- 有真实测试套件的项目(Verifier 靠跑测试来判断对错,没有测试就没法玩)
- 需要自动化代码审查流程的小团队(让它跑在 CI 里,先过机器关,再过人关)
- 对 AI 生成代码质量有要求、但不想雇更多人做机械审查的工程师
不适合 Zeroshot 的人:
- 测试覆盖率极低的项目(Verifier 没有测试可跑,作用大打折扣)
- 需求本身就模糊、探索性质强的早期项目
- Windows 环境(暂时不支持)
技术细节:它的后端是怎么接的?
Zeroshot 本身不持有 API Key,它通过 shell 调用现有的 Agent CLI:
| Provider | 安装命令 |
|---|---|
| Claude Code | npm i -g @anthropic-ai/claude-code |
| OpenAI Codex | npm i -g @openai/codex |
| Gemini CLI | npm i -g @google/gemini-cli |
| OpenCode | 见 opencode.ai |
问题追踪后台自动识别 git remote:GitHub、GitLab、Jira、Azure DevOps 都行。接 Jira 的工单、接 GitHub Issue、接 GitLab Issue——直接贴 URL 或者工单号,它自己认出来。
隔离模式有三级:
- 默认:只改文件,不提交不推送,你人工 review
- –worktree:用 git worktree 隔离分支,轻量
- –docker:完整容器隔离,适合风险操作和并行跑
版本状态和坑
README 里写得很坦率:pre-1.0,接口在版本之间还会变。建议锁定版本。另外目前没有 TUI,监控靠 zeroshot logs <id> -f 和 zeroshot status <id>。
这是当前状态,不是大问题——CLI 工具本来就不需要花哨界面。但如果你期待开箱即用的 GUI,会失望。
说个真实的数字
作者给过一个 demo 示例:90 分钟,5 次迭代,跑了 100 倍速,最终验证通过。不是所有任务都这么快,但这个量级说明它在真实任务上是可用的,不是玩具。
下一步建议
如果你的项目满足以下条件,强烈建议花 20 分钟跑一下:
# 第一步:安装
npm install -g @the-open-engine/zeroshot
# 第二步:装一个 Agent CLI(以 Claude Code 为例)
npm i -g @anthropic-ai/claude-code
# 第三步:跑一个简单任务试试
zeroshot run "给这个 README 加上目录结构" --worktree
试完之后问自己一个问题:审查结果里,有没有出现”这个结果我自己没想到”的内容?如果有,说明它真的在独立审查;如果全是废话,任务本身可能就太简单了。
参考链接
评论区
登录后可评论。