🏗️ Gateway · Node · Channel 三层架构
OpenClaw 采用 Gateway-Node-Channel 三层架构,以 WebSocket 为通信总线,将控制平面、设备执行与消息渠道解耦。
📱 Channel
20+ 消息渠道
→
🌐 Gateway
中央控制平面
→
💻 Node
设备端执行
| 层级 | 职责 | 关键细节 |
|---|---|---|
| Gateway | 中央控制平面,维护 WebSocket 服务、管理 Session、调度 Agent | 默认绑定 ws://127.0.0.1:18789,每台主机一个实例 |
| Node | 设备端执行节点,负责本地操作 | camera(摄像头)、screen recording(录屏)、system.run(系统命令)等 |
| Channel | 消息渠道接入层,连接 20+ 即时通讯平台 | WhatsApp、Telegram、Discord、Slack、飞书、钉钉等 |
🔒 Loopback-First 设计
Security by Default
Gateway 默认只绑定 localhost(127.0.0.1),所有流量在本地回环。这意味着:
- 不开放任何外网端口,天然安全
- 同一台机器上的 Node 直接通过 WebSocket 连接 Gateway
- 需要远程访问时,通过 Tailscale Serve/Funnel 暴露,不直接暴露端口
💡 核心建议
每台主机只运行一个 Gateway 实例。这是因为 WhatsApp Web 等渠道需要独占会话,多实例会导致登录冲突。
📊 代码规模与性能
| 指标 | 数值 |
|---|---|
| 代码规模 | 约 43 万行 TypeScript |
| 内存占用 | 约 1GB(运行时) |
| 启动时间 | 3-5 秒 |
| 扩展数量 | 40+ 个官方扩展 |
| 内置技能 | 55 个 |
| 社区技能 | 13,729 个(ClawHub 注册) |