OpenClaw 架构:核心组件与交互机制
OpenClaw 采用中心辐射式架构,以中央 Gateway 作为控制平面。这种设计让代理能够与外围设备和 I/O 通道交互。理解 节点(Node)、会话(Session)、通道(Channel) 和 操作员(Operator) 的角色,能帮助中高级开发者快速搭建和使用系统。
节点(Node) 充当伴侣设备,通过 WebSocket 以 role: "node" 连接到 Gateway。它通过 node.invoke 暴露命令接口,包括 canvas.、camera.、device.、notifications.、system.* 和 system.run。
角色与参与者交互
Gateway 管理节点和操作员的连接,协调通道与会话,并处理设备配对。通道集成微信、Telegram、Discord、Slack 和 Signal 等消息应用,将消息路由至会话 → 代理,反之亦然。
| 参与者 | 职责 | 交互方式 |
|-------------|---------------------------------|---------------------------------------|
| Gateway | 控制平面 | 节点/操作员连接,会话/通道管理 |
| 通道 | 消息应用集成 | 消息路由至 Gateway → 会话 → 代理 |
| 节点 | 外围设备 | 以 role: node 连接,node.invoke |
| 操作员 | 管理操作 | 配对、审批、配置 |
| 会话 | 代理上下文 | 历史记录与状态存储 |
| 代理 | AI 运行时 | 会话内工具/节点调用 |
| 用户 | 终端用户 | 通过通道/操作员 |
| 设备 | 连接设备 | 通过 Gateway 配对 |
流程: 用户 → 通道 → Gateway → 会话 → 代理 → 节点/通道。操作员审批配对与操作。
节点类型:
- macOS 菜单栏应用
- iOS/Android 用于相机、GPS、屏幕
- 无头模式(
openclaw node run)用于服务器 - VS Code 扩展
Canvas 与 A2UI 在生态中的作用
Canvas 是代理控制的可视化工作空间。A2UI 是一种动态生成界面的协议。代理调用 canvas.present 或 canvas.a2ui.push 创建 JSON UI 描述,在节点(macOS、iOS、Android、Web)上渲染。
使用场景:
- 动态仪表盘
- 交互式表单
- 数据可视化
- AI 原生应用(CRM、监控)
- 游戏、图库
用户操作通过 WebSocket 实时回传至代理。
实际案例:个人 CRM
问题: 数据散落在 Gmail、微信、Calendar、Notion 中。
用户流程: 微信消息:“查看伊万·伊万诺夫的资料。” 代理打开 Canvas,显示标签页、字段和历史记录。
结果: 统一的 AI 驱动 CRM,支持实时更新。
架构: 通道 → Gateway → 会话 → 代理(Canvas 技能 + A2UI)→ 节点(UI)。操作员处理审批;数据存储在会话中。
实际案例:晨间简报
问题: 手动收集日历、邮件、天气信息(10–15 分钟)。
用户流程: “简报” → 后续如“莫斯科天气”。
结果: Canvas 中的图表摘要。
架构: Gateway 定时任务 → 会话 → 代理(技能:日历/邮件/天气)→ 通道/Canvas。无头节点可选。
实际案例:家庭购物清单
问题: 群聊中一片混乱。
用户流程: 微信群消息 → “显示购物车” → Canvas 列表与按钮。
结果: 移动节点上的实时清单。
架构: 通道(群聊)→ Gateway → 会话 → 代理(解析、Canvas)→ 移动节点。WebSocket 处理操作。
实际案例:多代理编排
问题: 单代理易丢失焦点。
用户流程: “点名” → 任务分配。
结果: 代理团队的最终报告。
架构: Gateway(多会话)→ 领头代理(分配)→ 各代理节点 → 通道。
实际案例:3D 打印农场
问题: Bambu Lab 打印机手动监控。
用户流程: “X1C 状态”、“打印 Benchy”、“显示摄像头”。
结果: 带摄像头流的远程控制。
架构: 通道 → Gateway → 会话 → 代理 → 物理节点(Bambu 集成)→ 打印机。
关键要点
- Gateway 是核心枢纽——没有它一切无法运行。
- 节点 将代理扩展至设备:无头用于服务器,移动用于传感器。
- Canvas/A2UI 将聊天转为完整 UI。
- 会话 隔离上下文并存储记忆。
- 操作员 确保安全配对与审批。
— Editorial Team
暂无评论。