A2A Forge 是一个面向开发者的 A2A (Agent-to-Agent) 协议调试工具。可以理解为 A2A 版的 Postman — 通过 URL 添加任意 Agent,浏览其 Skills,直接发送测试请求,无需写代码。
支持两种运行模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 桌面版 (Tauri) | Rust 后端 + SQLite 存储 + OS 密钥链 | 日常开发调试 |
| Web 版 (浏览器) | localStorage 存储 + CORS 代理 | 云端开发、演示分享 |
/.well-known/agent.json Agent CardCtrl+N 添加 Agent · Ctrl+Enter 运行 · Ctrl+Shift+C 复制 curl无需安装任何依赖,直接在浏览器中使用:
npm run mock-agent & # 启动 Mock Agent(端口 9700)
npm run dev:web # 启动 Web 版(端口 5173)
git clone https://cnb.cool/orange-opensource/a2a-forge.git
cd a2a-forge
npm install
# 终端 1:启动 Mock Agent
npm run mock-agent
# 终端 2:启动 Web 版
npm run dev:web
浏览器打开 http://localhost:5173,添加 http://localhost:9700 作为 Agent。
需要 Rust + Node.js v18+ + Tauri 依赖
git clone https://cnb.cool/orange-opensource/a2a-forge.git
cd a2a-forge
npm install
npm run tauri dev # 开发模式
npm run tauri build # 构建 .dmg / .msi
内置一个零依赖的 Node.js Mock A2A Agent,用于测试和演示:
| Skill | 类型 | 说明 |
|---|---|---|
| Echo | 同步 | 原样返回输入文本 |
| Reverse | 同步 | 返回倒序文本 |
| Image Generate | 异步 (3s) | 模拟文生图,返回 SVG 架构图 |
Mock Agent 同时提供 CORS 代理服务(/proxy?url=<target>),Web 模式下第三方 Agent 的请求会自动通过代理转发。
npm run mock-agent # 默认端口 9700
PORT=8080 npm run mock-agent # 自定义端口
点击 + Add agent card 或按 Ctrl/Cmd+N,输入 Agent 的 URL。A2A Forge 会自动获取 Agent Card 并展示所有可用 Skills。
点击 Agent 名称旁的齿轮图标,设置默认 Headers(如 X-API-Key、Authorization)。桌面版使用 OS 密钥链安全存储,Web 版使用 localStorage。
选择 Skill → 输入内容 → 点击 Run(或 Ctrl/Cmd+Enter)。响应查看器支持智能媒体检测 — 图片内联显示、视频可播放、JSON 语法高亮。
每次执行自动保存到历史记录。常用请求可保存为命名测试用例,一键重跑。支持复制 curl 命令分享给团队。
┌─────────────────────────────────────────────────────────┐ │ Frontend (React + Zustand) │ │ AppShell · TestPanel · ResponseViewer · Stores │ │ bindings.ts (tauri-specta auto-generated) │ ├──────────────────────┬──────────────────────────────────┤ │ Web Mode │ Tauri Mode │ │ web-polyfill.ts │ Rust Backend │ │ web-backend.ts │ commands/ (77 cmds) │ │ localStorage │ SQLite WAL (17 tables) │ │ fetch + CORS proxy │ a2a/client.rs (HTTP + polling) │ └──────────────────────┴──────────────────────────────────┘ │ A2A Protocol (JSON-RPC 2.0) │ ┌────────────┼────────────┐ │ │ │ Mock Agent AIGC Service Any A2A Agent
| 层 | 技术 |
|---|---|
| 运行时 | Tauri 2.x (Rust) / 纯浏览器 |
| 前端 | React 18 + TypeScript |
| 样式 | CSS Variables + Tailwind CSS 4 |
| 状态管理 | Zustand 5 |
| 数据库 | SQLite (桌面) / localStorage (Web) |
| 类型桥接 | tauri-specta |
| 编辑器 | Monaco Editor |
| 云开发 | cnb.cool |
npm run tauri dev # Tauri 桌面开发模式
npm run dev:web # Web 版开发模式(端口 5173)
npm run mock-agent # 启动 Mock A2A Agent(端口 9700)
npm run build:web # 构建 Web 版
npm run tauri build # 构建桌面版
npx tsc --noEmit # TypeScript 类型检查
npx vitest run # 运行测试
cd src-tauri && cargo check # Rust 编译检查
项目包含 .cnb.yml 配置文件,支持:
| 版本 | 状态 | 主要功能 |
|---|---|---|
| v0.1 | ✅ | Agent 管理、Skill 测试、流式响应、历史记录、工作空间 |
| v0.2 | ✅ | 测试套件、7 种断言、CI 集成、HTML/JSON 报告 |
| v0.3 | ✅ | 本地注册代理、请求拦截、流量录制回放 |
| v0.4 | ✅ | Agent 目录、测试套件导入导出、健康检查、收藏夹 |
| v0.5 | ✅ | 工作空间导入导出、环境变量、请求链、响应对比 |
| v0.6 | ✅ | Web 模式、Mock Agent、CORS 代理、cnb.cool 云开发 |
欢迎提交 Issue 和 Pull Request。
MIT — Copyright 2026 Orange Dong