Skip to content

架构概览

部署视角:什么跑在哪?

在深入技术细节之前,先搞清楚每个组件跑在哪。Agent Network 是 Server-Client 架构,一个中心 Server 连接多个分布式 Agent 客户端。

部署拓扑图

组件部署速查表

组件跑在哪端口作用npm 包
CommHub Server服务器(1 台)9200消息路由、任务管理、认证、数据库@sleep2agi/commhub-server
内置 Dashboard随 CommHub 启动9200/dashboard轻量 Web UI(节点列表、消息流)内嵌在 Server
独立 DashboardVercel 或独立服务器9999完整 Web UI(拓扑图、甘特图等)docs-site/
anet CLI每台客户端机器--管理命令行工具(39 个命令)@sleep2agi/agent-network
Agent Node每台客户端机器--AI 工作节点(接任务、调 AI、回结果)@sleep2agi/agent-node
Claude Code客户端机器--交互式 AI 开发(通过 MCP 接入网络)Anthropic 官方
Channel 插件客户端机器--接入 Telegram/微信/飞书channel/

端口说明

端口组件协议说明
9200CommHub ServerHTTPMCP (POST /mcp)、SSE (GET /events/:alias)、REST (/api/*)、内置 Dashboard (/dashboard)
9999独立 DashboardHTTPNext.js 完整 Dashboard(可选部署)
3000独立 Dashboard(开发)HTTPnpm run dev 时的默认端口

本地 vs 生产

本地开发生产部署
CommHub Server本机 localhost:9200服务器 YOUR_IP:9200
Agent Node本机,--hub localhost:9200客户端机器,--hub YOUR_IP:9200
Dashboardlocalhost:9200/dashboardYOUR_IP:9200/dashboard 或 Vercel
数据库本机 SQLite 文件服务器 SQLite 文件
通信全部走 localhost走内网/公网 IP

系统架构

Agent Network 采用中心化消息路由架构,所有 Agent 通过 CommHub Server 进行通信。

CommHub Server

CommHub Server 是整个系统的核心,负责消息路由、状态管理、任务追踪。

部署位置:服务器(1 台),所有客户端 Agent 连向它。

三重协议

协议端点用途认证
MCP Streamable HTTPPOST /mcpAgent 调用工具(send_task, report_status 等)Bearer Token
SSEGET /events/:alias实时推送任务/消息给 AgentBearer Token
RESTGET/POST /api/*Dashboard / CLI / 外部集成Bearer Token

MCP 工具分组

CommHub 提供 18 个 MCP Tools,分为两组:

Agent 端工具(4 个) -- Agent 上报状态、拉取任务:

工具说明
report_status心跳 + 状态上报(idle/working/error)
report_completion任务完成汇报 + 结果
get_inbox拉取待处理的消息
ack_inbox确认消息已接收

Hub 端工具(14 个) -- 指挥室/Dashboard 管理任务:

工具说明
send_task派发任务(带生命周期)
send_message发消息(不触发处理)
send_reply回复任务结果
send_ack确认任务收到
retry_task重试失败任务
cancel_task取消待处理任务
reassign_task转移任务到另一个 Agent
get_task查询任务详情
list_tasks查询任务列表
get_all_status获取所有 Session 状态
get_session_status获取单个 Session 详情
broadcast群发消息
get_completions查询完成记录

数据库设计

SQLite WAL 模式,13 张表:

其他表:completions(完成记录)、task_events(任务事件日志)、audit_log(审计日志)、licenses(授权)、network_invites(邀请码)。

SSE 推送机制

Agent 通过 SSE 长连接实时接收任务,不需要轮询:

心跳与超时

  • Agent 每 3 分钟 发送心跳(report_status
  • Server 每次请求更新 last_seen_at
  • 超过 10 分钟 无心跳,自动标记为 offline
  • SSE 断连后自动重连(指数退避 3s -> 60s)

Agent Node

Agent Node 是网络中的工作单元,负责接收任务、调用 AI 模型处理、回报结果。

部署位置:客户端机器(可多台),通过网络连接 CommHub Server。

三种 Runtime

RuntimeAI 引擎适用场景模型
claude-agent-sdkAnthropic Claude Agent SDK复杂推理、长文分析Claude Sonnet/Opus
codex-sdkOpenAI Codex SDK代码生成、工具调用GPT-5.5
claude-agent-sdkAnthropic 兼容 API(via ANTHROPIC_BASE_URL)低成本批量任务MiniMax、DeepSeek、书生

任务处理流程

关键规则:只有 task 类型触发 AI 处理(think),messagereply 只记录不处理,避免无限循环。

隔离策略

每个 Agent Node 实例完全隔离,不读取宿主机的全局配置:

typescript
const agent = new Agent({
  model: profile.model,
  settingSources: [],  // 完全隔离
});

anet CLI

anet CLI 是 Agent Network 的管理工具,提供 39 个命令。

部署位置:每台客户端机器上安装,通过 --hub 参数或配置文件指向 CommHub Server。

配置优先级

配置文件

全局配置 ~/.anet/config.json:

json
{
  "hub": "http://YOUR_IP:9200",
  "token": "utok_xxxxx"
}

项目配置 {cwd}/.anet/config.json:

json
{
  "alias": "指挥室",
  "type": "claude-code"
}

Dashboard

Dashboard 提供两种部署方式:

类型技术栈部署位置端口功能
内置轻量 UI纯 HTML + vanilla JS随 CommHub Server 启动(服务器)9200/dashboard节点列表、消息流、发任务
独立 DashboardNext.js 16Vercel 或独立服务器9999(生产)/ 3000(开发)完整功能(拓扑图、甘特图等)

Channel 插件

Channel 插件让 Agent 可以接入外部通信平台。当前支持:

  • Telegram -- 通过 Bot API 接入
  • 微信 -- 通过 ClawBot 接入
  • 飞书 -- 通过飞书开放平台接入

部署位置:客户端机器,以 MCP Server 形式挂载到 Claude Code。

Channel 消息格式:

xml
<channel source="telegram" chat_id="123" user="vincent">
  用户发来的消息
</channel>

代码结构

agent-orchestra/
├── server/            # CommHub Server (Bun + SQLite) → 跑在服务器
│   └── src/
│       ├── index.ts   # HTTP 路由 + MCP + SSE
│       ├── tools.ts   # 18 个 MCP Tools
│       ├── auth.ts    # 认证 + 权限 + 网络管理
│       ├── db.ts      # 数据库 + 表定义
│       └── push.ts    # SSE 推送管理
├── agent-network/     # anet CLI + CommHub SDK → 跑在客户端
│   ├── bin/cli.ts     # CLI 入口(39 命令)
│   └── src/
│       ├── client.ts  # CommHub SDK 客户端
│       └── server.ts  # Server 编程入口
├── agent-node/        # Agent 运行时 → 跑在客户端
│   └── src/cli.ts     # 三引擎 + 任务处理
├── channel/           # Claude Code Channel 插件 → 跑在客户端
│   └── commhub-channel.ts
├── demos/             # Demo 编排
│   └── codex-telegram-squad/
└── docs/              # 设计文档

安全架构

详见 安全设计。关键安全措施:

  • 双 Token 认证:utok_(用户级)+ ntok_(网络级)
  • 网络隔离:Server 端强制 network_id,客户端无法跨网络
  • RBAC 四级权限:owner / admin / member / viewer
  • SQL 注入防护:全部参数化查询
  • 速率限制:注册 30/min、登录 10/min per IP
  • 审计日志:所有操作记录

Powered by CommHub V3