article
README
🚀 BARRHAWK:验证你的VIBECODE
BARRHAWK是用于智能体验证与编排的操作系统,它提供了一套完整的解决方案,可实现自动化测试和验证流程,帮助开发者更高效地进行软件测试和质量保证。
██████╗ █████╗ ██████╗ ██████╗ ██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗
██╔══██╗██╔══██╗██╔══██╗██╔══██╗██║ ██║██╔══██╗██║ ██║██║ ██╔╝
██████╔╝███████║██████╔╝██████╔╝███████║███████║██║ █╗ ██║█████╔╝
██╔══██╗██╔══██║██╔══██╗██╔══██╗██╔══██║██╔══██║██║███╗██║██╔═██╗
██████╔╝██║ ██║██║ ██║██║ ██║██║ ██║██║ ██║╚███╔███╔╝██║ ██╗
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝
v0.5.0 | 三方版本发布
“如果你的智能体无法自我测试,那它只是一场幻觉。”
🚀 快速开始
克隆并安装
git clone git@github.com:barrhawk/barrhawk_premium_e2e_mcp.git
cd barrhawk_premium_e2e_mcp
bun install
启动栈
bun run barrhawk
提交测试
curl -X POST http://localhost:7001/plan \
-H "Content-Type: application/json" \
-d '{"intent":"take a screenshot of the homepage","url":"https://example.com"}'
栈模式
bun run barrhawk # 完整三方栈 (Bridge, Doctor, Igor, Frank)
bun run barrhawk --minimal # 仅 Bridge + Igor (轻量级)
bun run barrhawk --hub # 完整栈 + 测试编排中心
✨ 主要特性
v0.5.0 新特性
- 统一栈:单个命令
bun run barrhawk启动所有服务。 - 集成仪表盘:可在
http://localhost:7000/dashboard进行实时监控。 - 经验系统:跨会话学习的自修复选择器。
- 工具注入:新工具实时广播到运行中的Igor。
- 闪电打击:Igor在遇到困难时自动升级到Claude进行推理。
- 中心模式:使用
--hub标志进行多Igor测试编排。
📚 详细文档
三方架构
四个专门的服务器通过WebSocket进行通信: | 组件 | 端口 | 角色 | |------|------|------| | Bridge | 7000 | 消息总线、断路器、仪表盘 | | Doctor | 7001 | 规划器、意图解析器、经验引擎 | | Igor | 7002 | 执行器,支持闪电打击双模式 | | Frankenstein | 7003 | 浏览器控制、动态工具锻造 |
工作原理
- 你 向Doctor发送意图:
"test the login flow" - Doctor 参考经验,生成计划并选择工具
- Igor 逐步执行计划
- Frankenstein 控制浏览器并截图
- 经验系统 记录成功经验供下次使用
闪电打击(双模式Igor)
Igor从“傻瓜模式”开始 - 基于正则表达式的快速执行。当一个步骤失败3次时,Igor会“打击” - 提升到完整的Claude推理来解决问题,然后再恢复到正常模式。
端点
Doctor(端口7001)
# 提交计划
POST /plan
{"intent": "click the login button", "url": "https://example.com"}
# 检查计划状态
GET /plans
GET /plans/:id
Bridge(端口7000)
# 健康检查
GET /health
# 实时仪表盘
GET /dashboard
Igor(端口7002)
# 状态
GET /status
GET /health
# 当前工具包
GET /toolbag
Frankenstein(端口7003)
# 健康和工具
GET /health
GET /tools
项目结构
/
├── bin/barrhawk.ts # CLI入口点
├── tripartite/ # 核心栈
│ ├── bridge/ # 消息总线 + 仪表盘 (7000)
│ ├── doctor/ # 规划器 + 群体逻辑 (7001)
│ ├── igor/ # 执行器 + 闪电打击 (7002)
│ ├── frankenstein/ # 浏览器 + 工具锻造 (7003)
│ └── shared/ # 通用工具
│ ├── experience.ts # 学习系统
│ ├── tool-registry.ts # 120+ 工具定义
│ └── types.ts # 共享类型
├── hub/ # 测试编排 (--hub模式)
│ ├── index.ts # 中心API (7010)
│ ├── coordinator.ts # 多Igor同步 (7011)
│ └── igor-db.ts # 数据库监控器 (7012)
├── packages/ # 功能模块
│ ├── golden/ # 视觉回归
│ ├── self-heal/ # 选择器策略
│ └── ... # 30+ 包
└── docs/ # 文档
└── specs/ # 组件规格
MCP集成
BarrHawk为Claude Code、Cursor和其他AI助手提供MCP工具。
配置Claude Code
./scripts/generate-mcp-configs.sh
关键工具
// 自然语言自动化
frank_execute({ task: "Log into github.com", url: "https://github.com" })
// 并行测试
frank_swarm_execute({ intent: "Test checkout flow", maxIgors: 4 })
// 操作系统级控制 (扩展、对话框)
frank_os_mouse({ action: "click", x: 100, y: 200 })
frank_os_keyboard({ combo: "ctrl+shift+i" })
// 截图
frank_screenshot({ fullPage: true })
经验系统
BarrHawk从每次测试运行中学习:
- 选择器:哪些CSS选择器适用于哪些元素
- 时间:每个网站上操作通常所需的时间
- 错误:常见错误模式及其修复方法
- 网站:已知网站模式及预映射的选择器
数据存储在 experiencegained/experience.json 中(可通过 EXPERIENCE_DIR 配置)。
💻 使用示例
基础用法
# 克隆并安装项目
git clone git@github.com:barrhawk/barrhawk_premium_e2e_mcp.git
cd barrhawk_premium_e2e_mcp
bun install
# 启动栈
bun run barrhawk
# 提交测试
curl -X POST http://localhost:7001/plan \
-H "Content-Type: application/json" \
-d '{"intent":"take a screenshot of the homepage","url":"https://example.com"}'
高级用法
// 并行测试示例
frank_swarm_execute({ intent: "Test checkout flow", maxIgors: 4 })
🔧 技术细节
开发
# 运行测试
bun test
# 类型检查
bun run typecheck
# 查看日志
tail -f /tmp/tripartite-*.log
📄 许可证
本项目采用MIT许可证。
“信任,但要验证。” — BarrHawk
微信扫一扫