Skip to content

Part 2: 技术架构

整体架构

Architecture Overview

OpenClaw 采用 Gateway-Node-Channel 三层架构,以 WebSocket 为通信总线,将控制平面、设备执行与消息渠道解耦。

三层架构 Gateway · Node · Channel

mermaid
flowchart LR
    Channel["Channel\n20+ 消息渠道"] --> Gateway["Gateway\n中央控制平面"] --> Node["Node\n设备端执行"]
层级职责关键细节
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 等渠道需要独占会话,多实例会导致登录冲突。

通信流程

一条消息从用户发出到 Agent 回复,完整路径如下:

mermaid
flowchart LR
    A["用户发消息"] --> B["Channel 接收"] --> C["Gateway 路由"] --> D["Agent 处理"] --> E["Node 执行"] --> F["回复用户"]

Gateway 作为 24/7 运行的 daemon,持续监听所有已连接的 Channel。它不像 CLI Agent 那样会话结束就丢失上下文,而是长驻运行,积累记忆。

基于 MIT 许可发布 | OpenClaw 入门到精通 | 内容自动更新