> 不写代码,当指挥官。让 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 兵力,只是它们从来没一起干过活。*
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐