Agent Comm Hub
Multi-agent communication hub with real-time messaging, task scheduling, shared memory, trust-based evolution and role-based access control.
التثبيت
خطوات التثبيت موجودة في التوثيق أدناه. التوثيق
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
المحتويات
🤖 Agent Communication Hub
让 AI Agent 不再各自为战
实时消息 · 任务调度 · 共享记忆 · 信任进化 · Web 仪表盘
58 个 MCP 工具 · 零外部服务 · 5 分钟部署
👀 一眼看明白
graph LR
A[Claude Code] <--> H((ACH Hub))
B[WorkBuddy] <--> H
C[OpenClaw] <--> H
D[自定义 Agent] <--> H
H --> DB[(SQLite)]
H --> Web[Web 仪表盘]
style H fill:#4f46e5,color:#fff
style Web fill:#7c3aed,color:#fff
任何 MCP 兼容的 AI Agent → 连接 Hub → 立即获得:消息总线、任务队列、共享记忆、进化引擎。
🚀 5 分钟启动:
docker run -d -p 3100:3100 ghcr.io/liuboacean/agent-comm-hub
💡 为什么需要它?
多个 AI Agent(Claude Code、WorkBuddy、OpenClaw、Hermes 等)天然是信息孤岛:
| 问题 | 传统方案 | 为什么不行 |
|---|---|---|
| ❌ Agent 间无法通信 | Webhook / 共享文件 | 脆弱、不可靠、手动维护 |
| ❌ 无法跨 Agent 调度任务 | 各自为战 | 没人协调,任务丢失 |
| ❌ 无法共享上下文 | 每轮对话都从零开始 | 记不住团队经验 |
| ❌ 无法团队进化 | 每个 Agent 独自踩坑 | 同样的问题反复修 |
Agent Communication Hub(ACH) 是它们的共享神经中枢——一条消息总线 + 任务调度器 + 团队记忆库 + 经验进化引擎。
🚀 三步上手
# 0. 安装 Python SDK(可选)
pip install agent-comm-hub
# 1. 启动 Hub(一行命令)
docker run -d -p 3100:3100 --name ach ghcr.io/liuboacean/agent-comm-hub
# 2. 注册 Agent
python3 -c "
from hub_client import SynergyHubClient
hub = SynergyHubClient('http://localhost:3100')
result = hub.register(invite_code='INVITE-001', name='my-agent')
hub.set_token(result['api_token'])
print(f'✅ Agent 注册成功,ID: {result[\"agent_id\"]}')
"
# 3. 发条消息试试
python3 -c "
from hub_client import SynergyHubClient
hub = SynergyHubClient('http://localhost:3100')
hub.set_token('your-token')
hub.send_message(to='other-agent', content='收到,任务完成。')
print('✅ 消息已发送')
"
🔗 然后打开 **http://localhost:3100/dashboard** 查看实时仪表盘
✨ 核心能力
📊 数据快照
| 指标 | 值 |
|---|---|
| MCP 工具 | 58 个 |
| Python SDK 方法 | 68 个 |
| TypeScript SDK 方法 | 35 个 |
| 单元测试 | 288 个 ✅ |
| 数据库表 | 32 张 |
| client-sdk 运行时依赖 | 0(Python/TS 纯标准库) |
| 服务端运行时依赖 | 5 个轻量依赖(express / better-sqlite3 / zod / eventsource / @modelcontextprotocol/sdk) |
| 消息延迟 | < 50ms |
| 部署方式 | Docker / npm / SkillHub |
🧩 功能矩阵
| 类别 | 工具 | 一句话 |
|---|---|---|
| 🔐 身份认证 | 6 | 注册 / 心跳 / RBAC / 信任评分 |
| 💬 消息通信 | 5 | P2P / 广播 / FTS5 搜索 / 去重 |
| 📋 任务调度 | 8 | 7 状态机 / Pipeline / 并行组 |
| 🧠 共享记忆 | 5 | 三级作用域(私密/团队/全局) |
| 🔀 编排协调 | 11 | 依赖链 / 质检门 / 任务交接 |
| 📈 进化引擎 | 12 | 经验共享 / 策略审批 / 信任闭环 |
| 🛡️ 安全审计 | 6 | 哈希链审计 / 4 级 RBAC / CORS |
| 📎 文件传输 | 3 | 上传 / 下载 / 列表 |
| 🔧 高可用 | 3 | DB 分裂检测 / 自动合并 / 看门狗 |
🖥️ 内置 Web 管理面板
启动 Hub 后打开 **http://localhost:3100/dashboard**,即可实时管理你的 Agent 集群:
| 页面 | 能干什么 |
|---|---|
| 总览仪表盘 | 一眼看清在线 Agent、Pipeline 状态、消息吞吐 |
| Agents | 查看所有 Agent 列表(名称、角色、最后活跃时间、信任分) |
| 消息吞吐 | 5 分钟消息量 + 被限流的 Agent Top |
| 健康检查 | 版本 / 运行时间 / DB 状态 / 备份状态(本地 + 远程) |
| 审计日志 | 全量操作追溯,谁在什么时候做了什么 |
纯静态 HTML(零前端框架),内联 CSS+JS,启动即用。
🏗️ 架构
┌─────────────────────────────────┐
│ Agent Communication Hub │
│ localhost:3100 │
│ │
┌─────────┐ SSE/MCP │ ┌──────┐ ┌──────┐ ┌────────┐ │ SSE/MCP ┌─────────┐
│ Claude │◄─────────►│ │Auth │ │Msg │ │Memory │ │◄─────────►│WorkBuddy│
│ Code │ │ │RBAC │ │Bus │ │FTS5 │ │ │ │
└─────────┘ │ └──────┘ └──────┘ └────────┘ │ └─────────┘
│ ┌──────┐ ┌──────┐ ┌────────┐ │
┌─────────┐ │ │Task │ │Orch │ │Evol │ │ ┌─────────┐
│OpenClaw │◄─────────►│ │Sched │ │Str │ │Engine │ │◄─────────►│ Hermes │
└─────────┘ │ └──────┘ └──────┘ └────────┘ │ └─────────┘
└────────────┬────────────────────┘
│
┌──────▼──────┐ ┌─────────────┐
│ SQLite │ │ Web Panel │
│ (WAL 模式) │ │ /dashboard │
└─────────────┘ └─────────────┘
🔧 SDK 快速上手
Python — 零外部依赖
from hub_client import SynergyHubClient
hub = SynergyHubClient(hub_url="http://localhost:3100", agent_id="my-agent")
hub.set_token("your-api-token")
hub.send_message(to="other-agent", content="任务完成,交接。") # 发消息
hub.store_memory(content="用户偏好 JSON", scope="collective") # 存记忆
task = hub.create_task(title="评审 PR #42", assignee="claude-code") # 派任务
hub.share_experience(title="修复方案", content="...", category="debug") # 分享经验
hub.on_message = lambda msg: print(f"收到: {msg}")
hub.connect_sse() # 实时监听
TypeScript — 零外部依赖
import { AgentClient } from "./client-sdk/agent-client.js";
const client = new AgentClient({
agentId: "my-agent",
hubUrl: "http://localhost:3100",
token: "your-api-token",
onMessage: async (msg) => { /* 处理消息 */ },
onTaskAssigned: async (task) => { /* 处理任务 */ },
});
await client.start();
await client.sendMessage({ to: "other-agent", content: "搞定了!" });
🆚 对比其他方案
| 特性 | ACH | 自建 Webhook | 共享数据库 | 消息队列(RabbitMQ) |
|---|---|---|---|---|
| 5 分钟部署 | ✅ | ❌ | ❌ | ❌ |
| MCP 原生支持 | ✅ | ❌ | ❌ | ❌ |
| 共享记忆 + FTS5 搜索 | ✅ | ❌ | ❌ | ❌ |
| 任务调度 + Pipeline | ✅ | ❌ | ❌ | ❌ |
| 进化引擎(经验复用) | ✅ | ❌ | ❌ | ❌ |
| 内置 Web 面板 | ✅ | ❌ | ❌ | ❌ |
| 审计哈希链 | ✅ | ❌ | ❌ | ❌ |
| 零外部服务 | ✅ | ✅ | ✅ | ❌ |
| Python + TS SDK | ✅ | ❌ | ❌ | ❌ |
📦 部署方式
🐳 Docker(推荐,一键启动)
docker run -d -p 3100:3100 --name ach ghcr.io/liuboacean/agent-comm-hub
📦 Docker Compose(含 Prometheus + Grafana 监控)
cd deploy/
docker compose up -d
# Hub: http://localhost:3100 | Grafana: http://localhost:3000 (admin/admin)
🔧 源码安装
git clone https://github.com/liuboacean/agent-comm-hub.git
cd agent-comm-hub
npm install && npm run build
npm start # 生产模式
# 或 npm run dev # 开发模式
🎯 作为 Skill 安装
# ClawHub
claw install agent-comm-hub
# SkillHub(30+ 平台)
skillhub install agent-comm-hub
⚠️ Node 版本要求(重要)
本项目依赖原生模块 better-sqlite3,它是按 Node 22(NODE_MODULE_VERSION 127)编译的。因此:
- 🔒 运行 Hub(
dist/src/server.js或dist/src/stdio.js)必须用 Node 22 启动。若使用 Node 24(或更高),会因 ABI 不匹配立即抛出ERR_DLOPEN_FAILED崩溃,无法启动。 - 🧪 CI 中的 Node 24 仅用于跑单元测试(且涉及 stdio 启动的冒烟用例已条件化
skip)。运行环境必须 Node 22(<23,better-sqlite3 原生 ABINODE_MODULE_VERSION 127要求),package.json的engines.node即声明为">=22 <23"。不要用 Node 24 跑服务,否则better-sqlite3会因 ABI 不匹配报ERR_DLOPEN_FAILED启动崩溃。 - ✅ 推荐做法:用版本管理器固定 Node 22(如
nvm use 22),或在启动脚本/hub 配置中显式写死 Node 22 二进制绝对路径。
🔌 给 Agent 配置 MCP
Stdio(推荐)
{
"mcpServers": {
"agent-comm-hub": {
"command": "/path/to/node22/bin/node",
"args": ["dist/src/stdio.js"],
"env": { "HUB_AUTH_TOKEN": "your-key", "DB_PATH": "./comm_hub.db" }
}
}
}
⚠️ 必须用 Node 22 二进制启动(例如绝对路径
/path/to/node22/bin/node),不要用 Node 24。本项目原生模块better-sqlite3是按 Node 22(NODE_MODULE_VERSION 127)编译的,使用 Node 24 启动dist/src/stdio.js或dist/src/server.js会立即ERR_DLOPEN_FAILEDABI 崩溃。
HTTP + SSE
{
"mcpServers": {
"agent-comm-hub": { "url": "http://localhost:3100/mcp" }
}
}
🛡️ 安全体系
| 层级 | 措施 |
|---|---|
| 认证 | Token + SHA-256 哈希存储,原始 Token 不落盘 |
| 授权 | 4 级 RBAC:public → member → group_admin → admin |
| 审计 | 区块链式哈希链 prev_hash → record_hash,DB 触发器保障 |
| 信任 | 自动评分,0-100 分影响策略审批等级 |
| 网络 | CORS 白名单制 / X-Frame-Options / CSP / HSTS |
📁 项目结构
agent-comm-hub/
├── web/dist/index.html # Web 管理面板(零前端框架)
├── src/ # 核心源码(TypeScript)
│ ├── server.ts # Express + SSE + MCP 入口
│ ├── db.ts # SQLite WAL 数据库
│ ├── backup.ts # 自动备份模块
│ ├── identity.ts # 注册 / 心跳 / RBAC
│ ├── memory.ts # 三级记忆 + FTS5 搜索
│ ├── orchestrator.ts # 依赖链 / Pipeline
│ ├── evolution.ts # 经验共享 / 策略审批
│ └── security.ts # Token / 审计 / CORS
├── client-sdk/
│ ├── hub_client.py # Python SDK(68 方法,零依赖)
│ └── agent-client.ts # TypeScript SDK(35 方法)
├── deploy/ # Docker Compose + 监控
├── tests/ # 288 个测试
└── docs/ # 完整文档
📚 文档导航
| 文档 | 适合谁 |
|---|---|
| API 参考 | 开发者(HTTP/SSE/MCP 端点 + Bearer 鉴权) |
| 编排指南 | 搭 Pipeline 高级玩家 |
| 进化引擎指南 | 实验性,欢迎 PR(计划从 A 层 evolution-guide.md 同步) |
| Hermes 集成指南 | 实验性,欢迎 PR(计划从 A 层 hermes-integration-guide.md 同步) |
| DB 三层防护 | 运维/稳定性保障 |
| Agent 协调时序图 | 想看清「任务从 A 到 B 全自动流转、哪里卡 HITL」的人 |
| English README | English speakers |
📌 文档同步说明(B 层为权威源):服务端仓库(
agent-comm-hub-src)是文档的单一权威来源。当前package.json的docs:sync脚本依赖scripts/sync-docs.ts,该文件尚未提供,因此 A 层 Skill 分发包(~/.workbuddy/skills/agent-comm-hub/)需手动同步:将本仓库的docs/、SKILL.md、README.md复制到 A 层对应位置。后续若补充scripts/sync-docs.ts,可用npm run docs:sync自动同步。
🆕 更新历史
v3.0.24 (2026-08-14) — 宿主执行器闭环收口(HostExecutor 注入)
- ⚡ 真实宿主执行器(HostExecutor) — 新增
client-sdk/adapters/host-executor.ts,提供LlmHostExecutor/HttpHostExecutor参考实现,defaultHostExecutor()按环境变量自动选择;AbstractHostTaskBridge新增可注入executor字段 - 🔧 消灭 setTimeout 占位 — WorkBuddy / Hermes 桥
runTask()委托this.executor.execute(),任务到达即触发宿主真实能力,自主执行闭环真正打通 - 📝 文档 —
docs/HOST_INTEGRATION.md§4 重写,含 HostExecutor 注入模型与自定义执行器示例
v3.0.23 (2026-08-14) — Agent 自主执行闭环 + 人在环授权
- 🤖 Feature A:Agent 自主执行闭环 — 新增
AgentRuntime(client-sdk/runtime.ts),自动驱动in_progress → execute() → completed/failed,含 inFlight 去重 / 崩溃恢复 / loopGuard,消灭人工「传话」 - 🔐 Feature B:人在环授权队列 — 新增操作级授权(
auth_requests表 +request_authorization/resolve_authorization工具,deny-by-default,TTL 10min)+ WebAuthQueue面板,敏感操作一键批准/拒绝 - 🧹 清理陈旧产物 — 移除
client-sdk/下 3 个 5 月旧编译.js(agent-client.js/hermes-integration.js/workbuddy-integration.js)及其.map,修正client-sdk/package.json入口引用
v3.0.22 (2026-07-23) — 在线状态 / 审计归档 / 备份路径
- 🟢 在线状态统一判定 — 新增
isAgentOnline()=(存在 SSE 实时连接)或(心跳 90s 内);get_online_agents、派单候选排序、/health/detailed、/api/agents、指标全部改用统一判定,SSE 连着即在线、可派单 - 💓 心跳监控不再误杀 SSE 在线 Agent — 仍有 SSE 连接的 Agent 不因心跳陈旧误标离线、不再广播离线通知;SSE 连接建立即同步
agents.status - 🗂️
audit_log行数上限自动归档 — 超AUDIT_LOG_MAX_ROWS(默认 3000,env 可调)自动将最旧溢出行镜像到audit_log_archive(WORM 安全,不删源表);新增启动即跑 + 每小时维护调度器 - 📦 备份路径稳定化 —
backup.ts的BACKUP_DIR由process.cwd()/backups(易失 workspace)改为~/agent-comm-hub/backups,与 launchd 备份脚本同目录,支持BACKUP_DIR覆盖
v3.0.21 (2026-07-23) — 安全加固(稳定性 / 安全 / 质量)
- 🔌 P1-1 SSE 重连竞态 —
registerClient/removeClient增连接级connId校验,旧 socket 的close不再误删当前实时连接,重连后消息/任务不再静默丢失 - 💾 P1-2 并发写
SQLITE_BUSY—busy_timeout=5000+foreign_keys+ WAL 自动检查点,消除并发写静默丢数据 - 🛡️ P1-3 限流绕过 — 认证前置单 IP / 全局限流(防令牌爆破与未认证
/mcp耗尽资源);/mcp增并发在途上限(默认 50)防 DoS - 🔍 P1-4/5 FTS 值碰撞 —
memories_fts增memory_id精确关联键(启动迁移旧表),内容相同的两条记忆不再互相串台 - 🔐 P2 质量 — 信任分按
target列计吊销(管理员不再误扣);受保护端点仅接受Bearer,移除?token=与x-api-key令牌泄漏面
v3.0.20 (2026-07-23) — 构建产物固化
- 🏗️ 构建产物固化 —
dist/package.json生成写入build脚本与启动脚本,消除「安装即崩溃」(version.ts启动依赖../package.json)
v3.0.19 (2026-07-21) — 文档与版本一致性修复
- 📝 文档工具数统一为 58 — 与
src/security.ts的TOOL_PERMISSIONS矩阵一致,修正 README/SKILL.md 残留的 56/53 - 📚 新建
docs/API_REFERENCE.md— 准确的 HTTP/SSE/MCP 端点速查(含 Bearer 鉴权与 SSELast-Event-ID断线重连);修正 README 三处死链 - 🏷️ SKILL.md 文件传输工具名更正 —
send_file/receive_file→upload_file/download_file
v3.0.18 (2026-07-14) — 安全加固集(ClawScan 67 findings + IDOR)
- 🔒 修复 ClawScan 审计 67 findings — fail-closed 权限矩阵 + stdio 强制认证
- 🛡️ IDOR 对象级授权加固 —
assertOwns+HUB_2004防越权访问 - 🧩 版本单一真相源 — 抽离
src/version.ts;/health收敛
v3.0.12 (2026-07-08) — README 同步 + 测试卫生
- 📄 同步中英文 README — 对齐 v2.5.1(Node 22 约束锁定 + 测试计数)
- 🧹 测试卫生 — 修复 unit 测试在仓库根生成
undefined*游离文件
v2.5.1 (2026-07-08) — 稳定性修复 + Node 22 约束锁定
- 🐛
get_db_stats修复 — ESM 模块误用require("fs")导致require is not defined,改import * as fs - 🔄 DB 路径容错 —
resolveDbPath新增空库自动回退,修复误连空库导致的记忆库/进化引擎"数据归零"假象 - 🔒 Node 22 锁定 — 启动脚本固定 Node 22,匹配 better-sqlite3 原生模块(Node 24 会 ABI 崩溃)
- 🧪 防护测试 — 新增 stdio/Hub 必须用 Node 22 的契约测试,防止被误改回 Node 24
- 🧹 测试卫生 — 修复 unit 测试在仓库根生成
undefined*游离文件(isValidDbPath守卫)
v2.5.0 (2026-07-07) — Web 管理面板 + 备份模块
- 🖥️ Web 管理面板 — 纯静态 HTML 仪表盘,6 个实时页面
- 🔄 在线状态改进 — 二元标签 → 最后活跃时间,不再跳变
- 📦 备份模块 — 本地 + 远程 rsync 备份状态展示
- ⏱️ 持久化运行时间 — 重启不归零
- 📊 新增 API —
GET /api/agents - 🔧
.gitignore清理 — 移除已跟踪的编译产物
v2.4.7 (2026-06-09) — 标签分词修复 + 全链路日志
- 🔍 FTS5 标签分词修复(空格拼接替代 JSON)
- 📊 12 处静默吞异常 → logError 全链路可观测
- 🔐
authed()统一认证中间件重构
v2.4.6 (2026-06-09) — FTS5 索引守护 + 外部化路径
- 🔒 FTS5 索引每次存储后自动校验
- 🛣️ 支持
HUB_ROOT环境变量 - 📨 新增
generate_invite邀请码工具 - 🧪 新增 19 个测试用例
🤝 参与贡献
- 🐛 发现 bug → 提 Issue
- ✨ 有新想法 → Feature Request
- 📖 改进文档 → PR 欢迎
- 🔧 贡献代码 → Fork + PR
📄 许可证
MIT — 可自由用于个人和商业项目。
基于 MCP 协议 + SSE · 零外部服务 · 零厂商锁定
让每一个 AI Agent 都拥有团队协作能力 🤖✨
الأسئلة الشائعة
ما هو Agent Comm Hub؟
Multi-agent communication hub with real-time messaging, task scheduling, shared memory, trust-based evolution and role-based access control.
كيف أثبّت Agent Comm Hub؟
اتبع خطوات التثبيت في توثيقه المعروض في هذه الصفحة وفي مستودعه.
هل Agent Comm Hub مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص MIT.
من يصون Agent Comm Hub؟
ينشره liuboacean. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من القوائم المجتمعية awesome-mcp-servers ومستودع المشروع على GitHub. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.