返回 MCP 目录
public公开dns本地运行

barrhawk_premium_e2e_mcp

BarrHawk是一个用于智能代理验证与编排的操作系统,采用四组件架构实现自动化测试、自学习和实时监控。

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 | 浏览器控制、动态工具锻造 |

工作原理

  1. 向Doctor发送意图:"test the login flow"
  2. Doctor 参考经验,生成计划并选择工具
  3. Igor 逐步执行计划
  4. Frankenstein 控制浏览器并截图
  5. 经验系统 记录成功经验供下次使用

闪电打击(双模式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

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端