如何用Zeroshot实现AI自主编码?executor-verifier循环全解析

如何用Zeroshot实现AI自主编码?executor-verifier循环全解析

【免费下载链接】zeroshotYour autonomous engineering team in a CLI. The agent loop produces senior-level code that you can actually trust in prod because of non-negotiable feedback from independent reviewers. Supports Claude Code, OpenAI Codex, OpenCode, and Gemini CLI with trivial setup.项目地址: https://gitcode.com/gh_mirrors/ze/zeroshot

在AI编程工具日益普及的今天,如何确保AI生成的代码质量可靠、安全可用?Zeroshot提供了一个革命性的解决方案:executor-verifier循环机制。这个多智能体协作框架将代码编写者与代码验证者分离,通过独立的验证循环确保生产级代码质量。本文将深入解析Zeroshot的核心机制,帮助开发者理解如何利用这一工具实现真正可靠的AI自主编码。

什么是Zeroshot的executor-verifier循环?

Zeroshot是一个开源的多智能体编排引擎,其核心创新在于executor-verifier循环。与传统AI编程助手不同,Zeroshot将代码编写过程分为两个独立角色:

  1. 执行者(Executor)- 负责编写代码实现功能
  2. 验证者(Verifier)- 独立审查代码质量,不查看编写过程

这个循环的核心原则是:"编写代码的智能体不应该成为判断代码是否有效的智能体"。通过这种分离,Zeroshot确保了代码审查的客观性和可靠性。

executor-verifier循环的工作流程

1. 任务分类与分配

当接收到新任务时,Zeroshot首先通过**任务分类器(Conductor)**进行分析。分类器基于两个维度评估任务:

  • 复杂度(Complexity):从TRIVIAL到CRITICAL四个等级
  • 任务类型(TaskType):INQUIRY(查询)、TASK(实现)、DEBUG(调试)

分类器位于cluster-templates/conductor-bootstrap.json,根据任务特征选择合适的执行模板。例如,简单的SIMPLE任务使用worker-validator模板,而复杂的CRITICAL任务可能需要多个验证者。

2. 执行阶段:智能体编写代码

执行者智能体根据任务要求编写代码。在Zeroshot中,执行者配置在cluster-templates/base-templates/worker-validator.json中定义:

{ "id": "worker", "role": "implementation", "modelLevel": "{{worker_level}}", "prompt": { "system": "## 🚫 YOU CANNOT ASK QUESTIONS\n\nYou are running non-interactively..." } }

执行者完成工作后,会发布IMPLEMENTATION_READY消息到消息总线,触发验证流程。

3. 验证阶段:独立审查

验证者智能体完全独立于执行者,它看不到执行者的思考过程或中间步骤。验证者的配置同样在worker-validator模板中定义:

{ "id": "validator", "role": "validator", "modelLevel": "{{validator_level}}", "prompt": { "system": "## 🔴 VERIFICATION PROTOCOL (REQUIRED - PREVENTS FALSE CLAIMS)..." } }

验证者遵循严格的验证协议:

  • 首先搜索所有相关文件
  • 仔细阅读实际实现代码
  • 使用Grep查找特定模式
  • 只有在确认问题存在后才报告错误

4. 循环迭代:持续改进

验证结果分为两种:

  • APPROVED- 代码通过验证,任务完成
  • REJECTED- 发现问题,返回具体错误列表

如果被拒绝,执行者会收到详细的错误反馈,修复问题后重新提交。这个循环会持续进行,直到代码通过验证或达到最大迭代次数。

Zeroshot的核心架构组件

消息总线与SQLite账本

Zeroshot使用基于SQLite的持久化消息总线来协调智能体间的通信。所有消息都存储在~/.zeroshot/<id>.db中,确保状态持久化和崩溃恢复能力。

核心消息类型包括:

  • ISSUE_OPENED- 任务开始
  • IMPLEMENTATION_READY- 执行完成
  • VALIDATION_RESULT- 验证结果
  • CLUSTER_COMPLETE- 集群完成

逻辑引擎与触发器系统

src/logic-engine.js提供了JavaScript沙箱环境,智能体可以编写复杂的触发逻辑。例如:

// 验证者只在执行者完成后触发 { "topic": "IMPLEMENTATION_READY", "action": "execute_task" } // 执行者在验证失败后重新触发 { "topic": "VALIDATION_RESULT", "logic": { "engine": "javascript", "script": "return message.content?.data?.approved === false;" }, "action": "execute_task" }

智能体包装器与生命周期管理

src/agent-wrapper.js管理智能体的完整生命周期:

  • 状态机(空闲 → 评估 → 构建上下文 → 执行 → 空闲)
  • 触发器评估
  • 上下文构建
  • 任务执行与监控

实战应用:配置executor-verifier工作流

基本配置示例

要创建一个简单的executor-verifier工作流,可以基于worker-validator模板:

# 运行简单任务 zeroshot run "添加用户认证中间件" --worktree # 运行复杂任务(自动选择更多验证者) zeroshot run "重构支付系统" --pr # 在Docker中运行(完全隔离) zeroshot run "安全审计" --docker

自定义智能体配置

在src/providers/目录中,可以配置不同的AI提供商:

  • Claude Code (claude)
  • OpenAI Codex (codex)
  • Gemini CLI (gemini)
  • OpenCode (opencode)

每个提供商支持不同的模型级别:

  • level1- 基础模型(快速、经济)
  • level2- 标准模型(平衡性能)
  • level3- 高级模型(最高质量)

隔离模式选择

Zeroshot提供三种隔离级别:

模式标志适用场景
无隔离(默认)快速任务,手动审查更改
Git工作树--worktreePR工作流,轻量级分支隔离
Docker容器--docker高风险实验,完全隔离

executor-verifier循环的优势

1. 客观的代码质量保证

验证者看不到执行者的思考过程,避免了"自我验证"的偏见。这种独立性确保了代码审查的客观性。

2. 可重现的失败反馈

当验证失败时,验证者必须提供具体的、可重现的错误信息。这避免了模糊的反馈,帮助执行者快速定位问题。

3. 渐进式改进

循环机制允许代码在多次迭代中逐步改进。每次拒绝都带来具体的改进方向,最终产生高质量的代码。

4. 崩溃安全的设计

所有状态都持久化到SQLite账本中,即使进程崩溃或系统重启,也可以使用zeroshot resume <id>命令恢复运行。

最佳实践与注意事项

1. 明确的任务定义

Zeroshot最适合具有明确验收标准的任务。模糊的需求会导致验证困难。例如:

✅ 明确任务:"实现基于JWT的用户认证,包含刷新令牌机制" ❌ 模糊任务:"让应用更快"

2. 合理的迭代限制

在cluster-templates/base-templates/worker-validator.json中设置适当的max_iterations参数,避免无限循环。

3. 模型级别匹配

根据任务复杂度选择合适的模型级别:

  • SIMPLE任务:执行者level2 + 验证者level3
  • STANDARD任务:可能需要多个验证者
  • CRITICAL任务:高级模型 + 多个验证者

4. 利用质量门控

--pr--ship流程中,Zeroshot使用质量门控确保所有配置的检查都通过后才能继续。这包括代码风格、测试通过率等要求。

常见问题解答

Q: executor-verifier循环会增加多少时间成本?

A: 虽然增加了验证步骤,但减少了人工审查和修复的时间。对于复杂任务,总时间通常更少,因为早期发现问题避免了后续的重大重构。

Q: 验证者会漏掉错误吗?

A: 验证者使用系统化的验证协议,包括文件搜索、代码阅读和模式匹配。虽然不能保证100%完美,但比单一智能体的自我验证更可靠。

Q: 如何自定义验证标准?

A: 可以修改验证者的提示词系统消息,或创建自定义的验证者智能体配置。所有配置都在JSON文件中,易于调整。

Q: Zeroshot支持哪些AI提供商?

A: 目前支持Claude Code、OpenAI Codex、Gemini CLI和OpenCode。每个提供商都有对应的适配器在src/agent-cli-provider/adapters/目录中。

总结

Zeroshot的executor-verifier循环代表了AI辅助编程的新范式。通过将代码编写与验证分离,它解决了AI生成代码的信任问题。这种机制不仅提高了代码质量,还提供了可重现的验证过程,使得AI生成的代码真正适合生产环境。

无论是简单的功能添加还是复杂的安全重构,Zeroshot都能通过智能的循环机制确保代码质量。随着AI编程工具的普及,这种分离关注点的架构将成为确保代码可靠性的关键模式。

要开始使用Zeroshot,只需安装并运行:

npm install -g @the-open-engine/zeroshot zeroshot run "你的第一个任务"

体验真正的AI自主编码,让executor-verifier循环为你把关代码质量!🚀

【免费下载链接】zeroshotYour autonomous engineering team in a CLI. The agent loop produces senior-level code that you can actually trust in prod because of non-negotiable feedback from independent reviewers. Supports Claude Code, OpenAI Codex, OpenCode, and Gemini CLI with trivial setup.项目地址: https://gitcode.com/gh_mirrors/ze/zeroshot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考