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 → 广播 | 状态变更通知,广播给房间内成员 |
协议优势总结¶
- 工具热管理: 动态发现/注册工具,配置热更新
- 安全隔离: 基于房间的权限边界,Agent-Computer 绑定
- 网络穿透: Socket.IO 长连接,免除公网 IP 依赖
- 弹性架构: 多 Computer 支持,分布式工具部署
- 标准化接口: 强类型数据结构,明确的事件边界
文档结构¶
- 架构设计 - 角色关系与通信模型
- 事件定义 - 完整事件列表与规范
- 数据结构 - 请求/响应数据结构定义
- Desktop 桌面系统 - Window URI 规范、桌面组织策略与更新机制
- Finder 文档系统 - DPE 数据模型、dpe:// URI 规范与文档导航工具
- 房间模型 - 房间隔离机制详解
- 错误处理 - 错误码与响应格式
- 安全考虑 - 安全性要求与建议
与 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│
└────────┘ └────────┘