跳转至

A2C-SMCP 协议概述

版本: 0.2.0 状态: Release Candidate 最后更新: 2026-01

什么是 A2C-SMCP

A2C-SMCP(Agent To Computer SMCP)是一种远程工具调用协议,定义了 Agent 与承载多路 MCP Server 的 Computer 之间的通信机制。该协议运行在 Socket.IO 之上,通过事件驱动的方式组织消息,并通过房间(Room/Office)机制实现安全隔离。

设计目标

A2C-SMCP 旨在解决传统 MCP 协议在复杂 Agent 系统中的以下关键问题:

1. 多 MCP 服务管理问题

在企业级 AI 应用中,一个 Agent 通常需要协调多个 MCP 服务:

传统架构(痛点):
Agent ─┬─→ Excel MCP
       ├─→ 合同生成 MCP
       ├─→ ERP 接口 MCP
       └─→ 爬虫工具 MCP

问题:
• Agent 需单独维护每个 MCP 的生命周期
• 任一 MCP 崩溃导致整体流程失败
• 空闲 MCP 持续占用系统资源

A2C-SMCP 通过引入 Computer 抽象层解决此问题:

SMCP 架构(解决方案):
Agent ──→ Computer ─┬─→ Excel MCP
                    ├─→ 合同生成 MCP
                    ├─→ ERP 接口 MCP
                    └─→ 爬虫工具 MCP

优势:
• 故障隔离:单个 MCP 崩溃不影响 Computer 整体
• 热插拔:动态增删工具无需重启 Agent
• 统一监护:Computer 内部实施服务健康监测

2. 工具权限与安全挑战

安全问题 传统 MCP 缺陷 SMCP 解决方案
硬编码 Token Token 泄露风险 零凭证传播:敏感 Token 仅存在本地 Computer
公网暴露端口 被攻击风险 无公网暴露:Computer 通过长连接主动对接
证书冲突 版权审计问题 设备绑定:许可证与特定 Computer 硬件绑定

3. 网络连接与穿透

  • 通过 Socket.IO 长连接实现内网穿透
  • 无需公网 IP 或端口映射
  • 支持 NAT、防火墙、代理等复杂网络环境

核心概念

三角色模型

┌─────────┐         ┌─────────┐         ┌─────────┐
│  Agent  │ ←─────→ │  Server │ ←─────→ │Computer │
└─────────┘         └─────────┘         └─────────┘
   │                     │                   │
   │  工具调用发起方     │  信令服务器        │  MCP 服务管理者
   │                     │  连接管理          │  工具执行者
   │                     │  消息路由          │
   │                     │  通知广播          │
角色 数量约束 职责
Agent 每个房间最多 1 个 工具调用发起方,通常为智能体、机器人
Server 全局 1 个(逻辑) 信令中枢,管理连接、房间、路由与广播
Computer 每个房间可多个 MCP Server 宿主,统一管理和暴露工具

房间隔离模型

房间(Office)是逻辑隔离单元,用于约束 Agent 与 Computer 的协作范围:

  • 每个房间通过 office_id 唯一标识
  • 一个房间内至多包含 1 个 Agent多个 Computer
  • 跨房间访问被严格禁止

事件分类

所有协议事件通过 Socket.IO 命名空间 /smcp 传输,采用前缀约定:

前缀 方向 说明
client: Agent → Computer 工具操作类事件,由 Server 路由转发
server: 客户端 → Server 房间管理、配置更新类事件
notify: Server → 广播 状态变更通知,广播给房间内成员

协议优势总结

  1. 工具热管理: 动态发现/注册工具,配置热更新
  2. 安全隔离: 基于房间的权限边界,Agent-Computer 绑定
  3. 网络穿透: Socket.IO 长连接,免除公网 IP 依赖
  4. 弹性架构: 多 Computer 支持,分布式工具部署
  5. 标准化接口: 强类型数据结构,明确的事件边界

文档结构

与 MCP 的关系

A2C-SMCP 构建于 MCP 协议之上:

  • MCP Server 开发者: 无需任何改动,现有 MCP Server 可直接被 Computer 管理;MCP Server 还可通过暴露 window:// 资源参与 Desktop 桌面系统,或通过暴露 dpe:// 资源参与 Finder 文档系统,同样无需任何 SMCP 特定改动
  • Agent 开发者: 仅需实现 SMCP 协议接口,无需关心底层 MCP 细节
  • 工具调用: Agent → SMCP → Computer → MCP → 工具
Agent 视角:
┌──────────────────────────────────────────────┐
│                  A2C-SMCP                    │
│  ┌────────┐    ┌────────┐    ┌────────────┐ │
│  │ Agent  │───→│ Server │───→│  Computer  │ │
│  └────────┘    └────────┘    └────────────┘ │
└──────────────────────────────────────────────┘
                               ┌──────┴──────┐
                               ▼             ▼
                          ┌────────┐    ┌────────┐
                          │MCP Srv1│    │MCP Srv2│
                          └────────┘    └────────┘

下一步