【无标题】# AI Bridge:让多个 AI 编程工具在本地协同工作
·
> 不写代码,当指挥官。让 OpenClaw、AtomCode、AgnesCode 等免费 AI 编程工具并行干活,自动故障转移,互相评审,互相讨论。
## 为什么做这个
我的电脑上装了十几个 AI 编程工具:OpenClaw、AtomCode、AgnesCode、Qoder、WorkBuddy、Trae……每个都有免费额度,每个都只会在自己的壳子里干活。它们之间互不通信,互不知道对方存在。
我想的是:**为什么不让我当指挥官,把这些免费兵力的能力最大化?**
于是做了 AI Bridge——一个本机常驻服务,统一调度所有 AI 编程工具。
## 它能做什么
### 1. 并行派发(dispatch)
一个任务同时发给多个 AI 工具,谁干的好用那个:
```
你:写一个 Python 排序函数
↓
AI Bridge 同时调用 OpenClaw + AtomCode
↓
OpenClaw 返回结果→ 差,自动取消
AtomCode 返回结果→ 好,采用
```
如果选中的工具失败了(额度用完、网络断了),自动把半成品代码转给另一个工具接着写(fallback 接力链)。
### 2. 智能路由(7 维评分)
不手动选工具,系统自动算 7 个维度的加权分选最好的:
| 维度 | 权重 | 说明 |
|------|------|------|
| 成功率 | 30% | 贝叶斯平滑,1 次成功不会变成 100% |
| 能力匹配 | 20% | 任务分类(code/review/ops)匹配度 |
| 延迟 | 15% | 历史平均响应时间 |
| Token 成本 | 10% | 历史平均 token 消耗 |
| 新鲜度 | 10% | 14 天半衰期,越近的记录权重越高 |
| 稳定性 | 10% | Wilson 下界,少样本不信任 |
| 置信度 | 5% | 样本量越多越可信 |
失败的工具进入 30 分钟冷却期,分数归零。冷启动有探索加成但不会压倒已验证工具。
**这不是规则引擎,是统计学习。** 跑得越多,选得越准。
### 3. AI 讨论会(discuss)
让多个 AI 对同一话题各抒己见,第二轮互相看到对方观点后补充:
```
话题:Python 里用列表还是 deque 做队列?
第一轮:
atom-code:deque 的核心价值是双端 O(1)...(500 字技术分析)
openclaw:(网络问题,未产出)
第二轮:
atom-code 看到第一轮结果后补充...
讨论结束 → 自动生成共识总结
```
讨论有 token 预算和时长双止损,不会无限烧。过程中你随时可以中断或注入引导信息。
**真机实测**:AtomCode(GLM-5.2)产出了一个包含对比表、数据结构分析、线程安全讨论的结构化技术回答,905 tokens,29 秒完成。
### 4. 交叉评审(review)
A 写完代码,自动选另一个工具评审:
```
atom-code 写了代码 → AI Bridge 自动让 openclaw 评审
openclaw:第 23 行有 SQL 注入风险,建议改用参数化查询
```
评审者必须不同于生产者,结果存入 SQLite,计入声誉系统。
### 5. 流量监控
看到每个 AI 工具和云端聊了什么——完整请求和响应内容,不截断:
- **Bridge 流量**:经过 dispatch 调度的通信,存 SQLite traffic 表
- **AgnesCode 日志**:直接读取 `~/.agnes/state/logs/llm_request.*.jsonl`,聚合流式响应
- **mitmproxy 全局**(可选):系统代理拦截所有 AI API 域名的 HTTPS 流量
Web UI 流量 Tab 按来源/工具/方向筛选,每条记录显示完整内容、模型名、token 用量。
### 6. OpenAI 兼容反代
把 AI 编程工具自带的免费模型统一暴露成 OpenAI API:
| 模型 | 来源 | 方式 |
|------|------|------|
| agnes-2.0-flash | AgnesCode | API 直连 |
| agnes-2.5-flash | AgnesCode | API 直连 |
| auto | AgnesCode | API 直连 |
| glm-5.2 | AtomCode | CLI 转发 |
| deepseek-v4-flash | AtomCode | CLI 转发 |
| qwen3-vl-8b-instruct | AtomCode | CLI 转发 |
```
Base URL: http://127.0.0.1:9800/v1
API Key: 随便填
```
任何支持 OpenAI API 的工具(Cherry Studio、Codely、curl)都能直接用这些免费模型。流量自动记录。
AgnesCode 的 token 从 Windows 凭据管理器自动读取,1 小时缓存。AtomCode 直连 API 被 403 了(有签名校验),改用 CLI 转发绕过。
## 架构
```
用户 / AI 工具
↓ MCP / HTTP
AI Bridge (server.js, 端口 9800)
├── dispatch → routing-score.js (7维评分选工具)
│ → executeTool (CLI spawn / MCP sampling)
│ → fallback 链 (失败接力)
│ → review (交叉评审)
├── discuss → 多轮讨论 + 共识引擎 + 自动止损
├── traffic → SQLite 记录所有通信
├── /v1/* → OpenAI 兼容反代
├── observe → 工具 baseUrl 接管
└── edge-agent → 云端任务领取 (出站 HTTPS)
```
### 技术选型
- **Node.js**,零外部依赖(仅 `ws` 用于 WebSocket)
- **SQLite**(`node:sqlite` 内置模块),6 张表,写穿 + 静默降级
- **JSON 文件**为运行时真源,SQLite 为查询层
- **配置驱动**:新工具 = `tools.json` 加一段 JSON,不改代码
- **进程守护**:`watchdog.js` 自动重启 + 熔断
### 文件结构
```
ai-bridge/
├── server.js # HTTP 服务 (40+ API, ~1200 行)
├── bridge-stdio.js # MCP 桥接 (17 个工具)
├── routing-score.js # 7 维路由评分
├── tool-identity.js # 工具身份归一化
├── observe.js # 工具配置接管
├── edge-agent.js # 云端边缘代理
├── db.js # SQLite 全局库
├── store.js # JSON 持久化
├── watchdog.js # 进程守护
├── adapters/ # CLI / HTTP 传输层
├── tools.json # 工具配置
├── models.json # 模型注册表
├── ui.html # Web UI (7 Tab)
└── mitm-addon.py # 流量捕获
```
## 真机实测
### 测试
| 测试 | 结果 |
|------|------|
| 纯单元测试 | 35/35 ✅ |
| 全链路 E2E | 111/111 ✅ |
### 真实讨论
发起一个 AI 对 AI 的技术讨论,话题"Python 用列表还是 deque 做队列":
- AtomCode(GLM-5.2)29 秒产出 905 tokens 的结构化技术分析
- 包含场景对比表、数据结构原理、线程安全分析
- OpenClaw 因网络问题两次失败
- 讨论正常关闭,摘要已生成
### 反代验证
通过 `POST /v1/chat/completions` 调用 AgnesCode 的 agnes-2.0-flash 模型:
```
请求:{"model":"agnes-2.0-flash","messages":[{"role":"user","content":"1+1=?"}]}
响应:{"choices":[{"message":{"content":"2"}}]}
```
通过 CLI 转发调用 AtomCode 的 GLM-5.2:
```
请求:{"model":"glm-5.2","messages":[{"role":"user","content":"Say hi"}]}
响应:{"choices":[{"message":{"content":"Hello!"}}]}
```
## 配置驱动
新增一个 AI 工具只需要编辑 `tools.json`:
```json
{
"name": "my-tool",
"displayName": "My Tool",
"transport": "cli",
"command": "mytool",
"args": ["--prompt", "{{task}}"],
"inputMode": "arg",
"outputMode": "stdout-text",
"timeout": 120000
}
```
重启服务即可。支持三种传输方式:
- `cli` — spawn 子进程
- `http` — POST 到 API 端点
- `routing-marker` — 虚拟路由标记
## MCP 接入
在 AI 工具的 MCP 配置中注册:
```json
{
"mcpServers": {
"ai-bridge": {
"command": "node",
"args": ["/path/to/ai-bridge/bridge-stdio.js"],
"env": {
"AI_BRIDGE_CLIENT": "my-ai-tool",
"AI_BRIDGE_PORT": "9800"
}
}
}
}
```
AI 工具启动后自动连到 hub,注册身份,通过 MCP 获得 17 个工具(dispatch、discuss、list_tools 等)。
## 和 Buzz 的对比
Block(Jack Dorsey)刚开源了 Buzz——一个基于 Nostr 协议的 AI 协作工作空间。对比:
| | Buzz | AI Bridge |
|---|---|---|
| 定位 | AI 工作空间(Slack 替代) | AI 调度内核 |
| AI 选谁 | 人工 @mention | 自动 7 维评分 |
| 失败处理 | 无 | fallback 接力链 |
| 流量监控 | 无 | 完整通信记录 |
| 模型反代 | 无 | OpenAI 兼容 API |
| 协议 | Nostr(去中心化) | HTTP + MCP(轻量) |
| 语言 | Rust(30 万行) | Node.js(~3000 行) |
**不竞争,互补。** Buzz 做工作空间,AI Bridge 做调度引擎。
## 下一步
1. **让 AI 主动发起对话** — 现在是人发起 dispatch,加 `POST /api/agent/message` 让 AI 之间能自主交流
2. **喂真实数据给路由评分** — 跑 20+ 次真实 dispatch,让贝叶斯评分有真实观测
3. **重启 AgnesCode 验证 MCP 连接** — config.yaml 已配好 bridge-stdio.js
## 开源
代码已开源:
- GitHub: https://github.com/qidiai/QiDi-Agent
- Gitee: https://gitee.com/xuchangming/qidi-agent
Apache 2.0 协议。`ai-bridge/` 目录可以独立使用,不依赖项目其他部分。
```bash
git clone https://github.com/qidiai/QiDi-Agent.git
cd QiDi-Agent/ai-bridge
npm install
node server.js
```
---
*如果你也在同时用多个 AI 编程工具,欢迎试试。你的电脑上可能已经有好几个免费 AI 兵力,只是它们从来没一起干过活。*更多推荐



所有评论(0)