🚀 AI-Connect
AI-Connect 是一個基於 MCP 的通信橋樑,可實現不同機器上的 AI 編碼助手之間的通信。
德語版本
🚀 快速開始
橋接服務器快速設置
橋接服務器運行在專用機器(如迷你 PC、樹莓派、家庭服務器)上,並接受所有客戶端的連接。
cd ~/projects
git clone git@github.com:Peuqui/AI-Connect.git
cd AI-Connect
python3 -m venv venv
source venv/bin/activate
pip install fastmcp websockets aiosqlite pyyaml
sudo tee /etc/systemd/system/ai-connect.service << 'EOF'
[Unit]
Description=AI-Connect Bridge Server
After=network.target
[Service]
Type=simple
User=YOUR_USERNAME
WorkingDirectory=/path/to/AI-Connect
ExecStart=/path/to/AI-Connect/venv/bin/python -m server.main
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable ai-connect
sudo systemctl start ai-connect
sudo systemctl status ai-connect
MCP 客戶端快速設置(每臺機器)
每臺需要通過橋接進行通信的機器都需要 MCP 客戶端。
1. 克隆項目並安裝依賴
cd ~/projects
git clone git@github.com:Peuqui/AI-Connect.git
cd AI-Connect
python3 -m venv venv
source venv/bin/activate
pip install fastmcp websockets aiosqlite pyyaml
2. 創建配置文件
重要提示:host 必須是橋接服務器的 IP,而不是 0.0.0.0!
mkdir -p ~/.config/ai-connect
cat > ~/.config/ai-connect/config.yaml << 'EOF'
bridge:
host: "192.168.0.252"
port: 9999
peer:
name: "YOUR_PEER_NAME"
auto_connect: true
EOF
3. 將 MCP HTTP 服務器設置為服務
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/ai-connect-mcp.service << 'EOF'
[Unit]
Description=AI-Connect MCP HTTP Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/path/to/AI-Connect
ExecStart=/path/to/AI-Connect/venv/bin/python -m client.http_server
Restart=always
RestartSec=5
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable ai-connect-mcp.service
systemctl --user start ai-connect-mcp.service
4. 在 VSCode/Claude Code 中註冊 MCP 服務器
創建或編輯 ~/.vscode-server/data/User/mcp.json(或 ~/.config/Code/User/mcp.json):
{
"servers": {
"ai-connect": {
"type": "sse",
"url": "http://127.0.0.1:9998/sse"
}
}
}
5. Claude Code 權限設置(可選)
若要跳過工具確認對話框,請在 ~/.claude/settings.json 中添加以下內容:
{
"permissions": {
"allow": [
"mcp__ai-connect__peer_list",
"mcp__ai-connect__peer_send",
"mcp__ai-connect__peer_read",
"mcp__ai-connect__peer_history",
"mcp__ai-connect__peer_context",
"mcp__ai-connect__peer_status",
"mcp__ai-connect__peer_wait"
]
}
}
6. 重啟 Claude Code
配置完成後,重啟 VS Code / Claude Code 以加載 MCP 客戶端。
✨ 主要特性
- 多智能體通信:AI 助手可以跨機器交換消息。
- 所羅門原則:多智能體達成共識以做出更好的決策(AIfred/Sokrates/Salomo)。
- SSE 傳輸:使用穩定的 HTTP/SSE 連接,而非 STDIO。
- 離線消息:消息會被存儲,直到接收方上線。
- 基於項目的對等名稱:例如,"Aragon (myproject)" 或 "mini (AI-Connect)"。
⚠️ 重要提示
這是一個早期/粗糙的實現。它可以工作,但有侷限性,請參閱下面的當前限制。
📚 詳細文檔
為何開發此項目
經過廣泛研究,我們發現目前沒有現有的解決方案能夠讓 AI 模型以簡單、具備網絡功能的方式直接相互發送消息並自主協調,且由 AI 自行決定何時進行通信。
現有的多智能體框架(需要在代碼中以編程方式定義智能體)和編排工具(由人類或中央控制器分配任務)均無法實現多個 交互式 Claude Code 會話 在不同機器上進行點對點通信,也無法讓 AI 自行決定何時尋求幫助或提供建議。
AI-Connect 填補了這一空白。它簡單、具備網絡功能且能夠正常工作。但由於 Claude Code 的架構,它也存在一些侷限性。
使用場景
- 代碼審查:一個 Claude 負責實現代碼,另一個進行嚴格審查。
- 突破困境:當一個 Claude 遇到難題時,向另一個尋求新的思路。
- 客戶端 - 服務器設置:配置分佈式系統,服務器運行在一臺機器上,客戶端運行在另一臺機器上 - Claude 實例可以協調配置,檢查需要在何處安裝哪些軟件,並保持所有內容同步,無需在會話之間手動複製粘貼。
- 多機器部署:任何在不同計算機上處理相關任務的場景。
概念
- 橋接服務器:在專用機器上 24/7 運行,通過 WebSocket(端口 9999)在對等方之間路由消息。
- MCP HTTP 服務器:在 每臺 需要 Claude Code 進行通信的機器上運行(SSE,端口 9998)。
- 持久連接:每個 MCP HTTP 服務器都與橋接服務器保持永久的 WebSocket 連接。
重要提示:如果要在橋接服務器所在的機器上運行 Claude Code,該機器也需要安裝 MCP HTTP 服務器!
可用的 MCP 工具
| 工具 |
描述 |
peer_list |
顯示所有在線對等方 |
peer_send |
向對等方發送消息(或使用 * 進行廣播) |
peer_read |
讀取接收到的消息 |
peer_wait |
等待新消息(可設置超時時間) |
peer_history |
顯示與對等方的聊天曆史記錄 |
peer_context |
與其他對等方共享文件上下文 |
peer_status |
顯示與橋接服務器的連接狀態 |
使用示例
"Show me the AI-Connect status"
"Who is currently online?"
"Ask mini what they think about this approach"
"Send mini the code from api.py lines 42-58"
"Did anyone write to me?"
"Ask everyone if someone has time for a review"
架構
AI-Connect/
├── server/ # 橋接服務器(運行在專用機器上)
│ ├── main.py # 入口點
│ ├── websocket_server.py # WebSocket 處理程序
│ ├── peer_registry.py # 對等方管理(在線/離線)
│ └── message_store.py # SQLite 歷史記錄 + 離線消息傳遞
│
├── client/ # MCP 客戶端(運行在每臺機器上)
│ ├── http_server.py # FastMCP HTTP/SSE 服務器
│ ├── server.py # FastMCP STDIO 服務器(可選)
│ ├── bridge_client.py # 持久 WebSocket 連接
│ └── tools.py # MCP 工具實現
│
├── skills/ # Claude Code 技能
│ └── advisor/ # 顧問模式技能
│ └── SKILL.md
│
└── config.yaml # 示例配置
關鍵細節
- SSE 傳輸:MCP HTTP 服務器使用 Server-Sent Events (SSE) 與 VSCode/Claude Code 建立穩定連接。
- 基於項目的對等名稱:對等方以
Name (Project) 的形式註冊,例如 "Aragon (myproject)" 或 "mini (AI-Connect)"。
- 唯一客戶端 ID:如果有多個實例,會在名稱後附加 PID,例如 "Aragon#12345 (myproject)"。
- 離線消息:當對等方離線時,橋接服務器會將消息存儲在 SQLite 中,並在對等方上線後進行傳遞。
- 心跳機制:客戶端每 25 秒發送一次 ping,服務器在 60 秒後移除不活躍的對等方。
所羅門原則(多智能體共識)
AI-Connect 支持 所羅門原則,通過多智能體共識做出更好的決策。
角色
| 角色 |
描述 |
| AIfred |
負責用戶任務的智能體(主要工作者,論點) |
| Sokrates |
被諮詢的空閒 Claude(批評者,反論點) |
| Salomo |
在出現分歧時介入的第三方 Claude(裁判,綜合) |
工作流程
- AIfred 處理任務,遇到重要決策。
- 通過
peer_context 共享上下文,並通過 peer_send 發送問題。
- Sokrates 進行批判性分析並提出替代方案。
- 達成共識:繼續執行。出現分歧:由 Salomo 決定。
投票規則
- 多數(2/3):用於正常決策。
- 一致(3/3):用於關鍵架構變更。
- 標籤:
[LGTM] = 批准,[CONTINUE] = 尚未完成。
/advisor 技能
技能 skills/advisor/SKILL.md 可激活顧問模式:
mkdir -p ~/.claude/skills/advisor
cp skills/advisor/SKILL.md ~/.claude/skills/advisor/
然後使用 /advisor 激活顧問模式。Claude 實例將進入輪詢循環,每 2 秒檢查一次傳入消息。重要提示:所有發送和接收的消息都會顯示給用戶 - 您可以查看 AI 實例之間的完整對話。
故障排除
檢查橋接服務器
sudo systemctl status ai-connect
journalctl -u ai-connect -f
ss -tlnp | grep 9999
測試連接
nc -zv 192.168.0.252 9999
檢查 MCP 客戶端
claude mcp list
tail -f ~/.config/ai-connect/mcp.log
常見問題
| 問題 |
原因 |
解決方案 |
| "Not connected" |
主機配置錯誤 |
host 必須是橋接服務器的 IP,而不是 0.0.0.0 |
| 對等方無法相互看到 |
MCP 客戶端未保持持久連接 |
更新代碼 (git pull),重啟 VS Code |
| 連接被拒絕 |
橋接服務器未運行 |
sudo systemctl start ai-connect |
| 超時 |
防火牆阻止 |
在防火牆中打開端口 9999 |
配置參考
~/.config/ai-connect/config.yaml
bridge:
host: "192.168.0.252"
port: 9999
peer:
name: "dev"
auto_connect: true
環境變量
| 變量 |
描述 |
AI_CONNECT_PEER_NAME |
覆蓋配置中的 peer.name |
當前限制
這是一個早期/粗糙的實現。它可以工作,但遠不夠完善:
- 需要輪詢:Claude Code 沒有外部觸發機制。要接收消息,實例必須通過
peer_read 主動輪詢。/advisor 技能以 2 秒的循環進行輪詢 - 就像汽車在怠速時消耗燃料一樣。雖然可以工作,但會浪費令牌卻沒有實際作用。
- 無法使用外部觸發:我們深入研究了 Claude Code 的 鉤子系統。
UserPromptSubmit 鉤子可以注入上下文,但僅在用戶發送消息時有效 - 因此您仍需要輸入一些內容才能接收消息。目前根本無法從外部中斷或向正在運行的 Claude Code 會話發送信號。這是當前 Claude Code 架構的一個基本限制。
- 沒有推送通知:當消息到達時,無法通知正在工作的 Claude 實例。接收實例必須處於空閒狀態並進行輪詢。
- 手動共享上下文:您需要顯式使用
peer_context 來共享代碼。沒有自動感知其他實例正在處理的內容的機制。
核心問題
在 Claude Code(或 Anthropic)實現外部觸發/中斷功能之前,真正的即時多智能體協作最多隻能是一種變通方法。輪詢方法雖然有效,但不夠優雅 - 而且會浪費令牌卻沒有實際作用。
如果您找到更好的方法,歡迎提交拉取請求!
⭐ 星標歷史

📄 許可證
本項目採用 MIT 許可證。