Ach Publish

🤖 多智能体实时通信与任务协同中枢

基于 MCP 协议的多智能体通信中间件,支持 Agent 间实时消息转发、任务协同与上下文共享,延迟 <50ms,本地 SQLite 持久化。

收藏
4.2k
安装
1.6k
版本
3.0.10
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Agent Communication Hub 是一款面向多智能体架构的通信中间件,基于 MCP(Model Context Protocol)协议实现 Agent 间的实时双向通信与上下文同步。采用 stdio + SSE 双通道架构:stdio 承载 MCP 工具调用(JSON-RPC),SSE 负责实时事件推送,端到端延迟控制在 50ms 以内。

典型工作流
1. 接入认证:通过 HUB_KEY 环境变量完成 stdio 模式身份认证

2. 注册上线:调用 register_agent 注册身份,heartbeat 维持在线状态(30秒周期)

3. 消息通信send_message 点对点发送,broadcast_message 广播(需逐条确认)

4. 任务协同assign_task 分配任务,支持 Pipeline 编排、依赖管理、质量门控制

5. 上下文管理store_memory/recall_memory 实现跨会话上下文暂存

系统提供 53 个 MCP 工具,覆盖身份、消息、文件、任务、上下文、运维六大类,支持 4 级权限控制(authenticated → member → group_manager → full)。数据本地持久化于 SQLite(WAL 模式),内置 SHA256 消息去重、指数退避重试、消费水位线等机制。

显著优点

  • 协议标准化:原生 MCP 协议兼容,可直接接入 Claude、Cursor 等 MCP 客户端
  • 极低延迟:stdio 本地管道 + SSE 实时推送,消息往返 <50ms
  • 完整任务生命周期:从 inbox 到 completed/failed 的状态机,支持依赖、并行组、质量门、任务交接
  • 零外部依赖:Python 客户端纯标准库实现,Node.js 服务端依赖成熟生态
  • 数据主权:本地 SQLite 存储,支持归档策略,无云端依赖
  • 健壮性设计:3 次指数退避重试、HubError 统一错误码、降级容错(如 check_consumed 失败返回 consumed=false

潜在缺点与局限性

  • 单点架构:Hub 为中心化设计,无内置集群或高可用机制
  • 存储瓶颈:SQLite 并发写入性能有限,大规模 Agent 集群可能成为瓶颈
  • 权限粒度较粗:4 级 RBAC 对部分场景可能过于简化,缺乏细粒度资源级 ACL
  • 网络依赖:SSE 实时推送需维持长连接,网络不稳定时可能漏收消息(依赖心跳与离线补发)
  • 生态锁定:深度绑定 MCP 协议,非 MCP 生态 Agent 需额外适配层

适合人群

  • 本地/边缘部署的多智能体系统开发者
  • 需要 Agent 间安全隔离但共享上下文的场景(如主副 Agent 协作)
  • 对延迟敏感、偏好数据本地化的 MCP 生态用户
  • 构建 Pipeline 化 AI 工作流的自动化团队

常规风险

| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 认证密钥泄露 | `HUB_KEY` 为 stdio 模式唯一凭证,泄露可导致未授权接入 | 环境变量管理,避免日志打印,定期轮换 |
| 广播误操作 | `broadcast_message` 可能向大量 Agent 发送敏感信息 | 强制逐条确认检查点,权限隔离 |
| 任务状态不一致 | 网络中断导致状态同步延迟 | 幂等设计 + 消费水位线 + 离线补发 |
| 数据泄露 | `scope='group'` 的记忆共享可能越权 | 内容确认检查点 + creator 隔离 |
| 归档数据丢失 | `archive_data` 误操作 | 执行前确认检查点,建议先备份 |

> 版本建议:v2.4.5 为当前稳定版,v2.4.0 已完成功能模块化与测试覆盖,建议升级以获得更好的类型安全与 CI/CD 支持。

Ach Publish 内容

client-sdk文件夹
demo文件夹
deploy文件夹
grafana文件夹
provisioning文件夹
dashboards文件夹
datasources文件夹
docs文件夹
scripts文件夹
src文件夹
repo文件夹
tools文件夹
tests文件夹
unit文件夹
手动下载zip · 493.5 kB
agent-client.d.tstext/plain
请选择文件