OpenClaw 的 Nodes(节点)系统让 AI 助手不再局限于文字交互—— 手机摄像头、电脑屏幕、GPS 位置、系统通知,都能成为 AI 的「眼睛和耳朵」。
Node 是什么?
Node 的核心概念很简单:
Node = 连接到 Gateway 的外设设备
= 为 AI 提供「本地能力」的延伸
≠ 独立的 Gateway(Node 不处理 AI 对话)
架构关系:
Telegram/WhatsApp 消息
↓
OpenClaw Gateway(AI 思考)
↓ 需要截图/拍照/位置?
Node 设备(执行本地操作)
↓ 返回结果
Gateway(继续对话)
支持的节点类型
| 节点类型 | 可用能力 |
|---|---|
| macOS 应用 | 截图、摄像头、Canvas 渲染、语音唤醒、系统命令 |
| iOS App | 前后摄像头、GPS 位置、系统通知列表、屏幕录制 |
| Android App | 摄像头、GPS、短信列表、通知、设备信息 |
| 无头服务器 | 远程 Bash 命令执行(system.run) |
| 树莓派等 Linux | 摄像头(v4l2)、GPIO 操作、远程命令 |
节点配对流程
节点连接 Gateway 时需要审批,保障安全:
bash
# 1. 节点设备(如手机 App)连接 Gateway 后,在 Gateway 侧查看待审批请求
openclaw devices list
# 输出:
# ID: req_abc123 Device: iPhone 15 Role: node Status: pending
# 2. 审批节点
openclaw devices approve req_abc123
# 3. 拒绝节点
openclaw devices reject req_abc123
# 4. 查看已配对节点状态
openclaw nodes status
# 输出节点列表:名称、IP、在线状态、上次活跃时间配对后,Gateway 可以通过名称调用节点的能力:
bash
# 给节点命名(方便后续调用)
openclaw nodes describe --node req_abc123 --name "my-iphone"节点能力详解
截图(所有桌面节点)
你:截一下现在的屏幕
AI 内部:调用 nodes.screen_record 或 canvas.snapshot
→ 节点截图 → 返回图片
→ AI 分析图片内容
你:截图看看我这个报错是什么问题
AI:[截图分析] 我看到控制台报错信息是:TypeError: Cannot read...
原因是第 23 行的变量 user 在赋值前就被使用了...
摄像头(iOS/Android/macOS)
你:用摄像头看看我桌上这本书的标题
AI 内部:调用 nodes.camera_snap facing=back
→ 手机拍照 → 返回图片
→ AI 识别书名
你:现在几点了?用前置摄像头看看我的表情判断我的状态
AI:[调用前置摄像头] 你看起来有些疲惫,眼睛微眯。建议休息一下。
GPS 位置(iOS/Android)
你:我现在在哪里?周边有推荐的咖啡店吗?
AI 内部:调用 nodes.location_get
→ 返回 GPS 坐标
→ 结合 AI 判断位置和推荐
AI:根据 GPS,你在上海市静安区南京西路附近。
推荐:
- Manner Coffee(步行 2 分钟)
- Seesaw(步行 5 分钟)
Android 短信(Android)
你:看看最近有没有快递到货通知
AI:调用 Android SMS 读取最近 20 条短信,
找到 2 条快递通知:
- 申通快递:您的包裹 xxx 已到达...
- 顺丰速运:运单 xxx 正在派送...
远程命令执行(Headless Node)
无头节点(如树莓派、远程服务器)主要用于远程执行命令:
bash
# 配置 exec 绑定到特定节点
{
"agents": {
"default": {
"exec": {
"node": "my-raspberry-pi"
}
}
}
}你:检查树莓派的 CPU 温度和内存使用
AI:[在树莓派上执行命令]
CPU 温度:52°C(正常)
内存使用:342MB / 1024MB(33%)
运行时间:15 天 6 小时
无头节点主机(Headless Node Host)
在没有 GUI 的服务器上启动 Node Host,让远程服务器成为执行节点:
bash
# 在远程服务器上启动节点主机(前台运行)
openclaw node-host --gateway ws://your-gateway:18789 --token YOUR_TOKEN
# 或作为后台服务
openclaw node-host --daemonjson
{
"nodeHost": {
"gatewayUrl": "ws://gateway.internal:18789",
"token": "node-token",
"name": "prod-server-1",
"capabilities": ["system.run"]
}
}多节点架构示例
Gateway(VPS)
├── Node: MacBook(截图、Canvas、语音唤醒)
├── Node: iPhone(摄像头、位置、通知)
├── Node: Raspberry Pi(摄像头、GPIO 控制)
└── Node: 内网服务器(命令执行)
AI 根据任务类型自动选择合适的节点:
- 需要截屏 → MacBook
- 需要拍照 → iPhone/树莓派
- 需要执行服务器命令 → 内网服务器
配置多节点默认选择:
json
{
"agents": {
"default": {
"preferredNodes": {
"camera": "my-iphone",
"exec": "prod-server",
"screenshot": "my-macbook"
}
}
}
}A2UI:让 AI 控制 Canvas 界面
macOS 节点支持 A2UI(Articulated to UI), 让 AI 用自然语言描述界面,直接在 Canvas 中渲染:
你:在 Canvas 里展示今天的任务看板,
三列:待办、进行中、完成
AI:[调用 Canvas 工具,在 macOS 菜单栏 App 的 Canvas 中]
渲染出一个 Kanban 看板...
来源:OpenClaw 官方文档 - docs.openclaw.ai/nodes