政安晨【人工智能项目随笔】OpenClaw网关与子节点完整配对指南——从零构建分布式AI助手网络

政安晨【人工智能项目随笔】OpenClaw网关与子节点完整配对指南——从零构建分布式AI助手网络
政安晨的个人主页:政安晨

欢迎 👍点赞✍评论⭐收藏

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

目录

1.前言:从单机助手到分布式AI助手

2. 概念解析:OpenClaw网关与子节点

2.1 网关(Gateway)

2.2 子节点(Node)

2.3 通信机制

2.4 安全模型

3. 架构设计:为什么要使用子节点

3.1 场景驱动:从需求到架构

场景一:计算资源隔离

场景二:物理设备控制

场景三:能力扩展

3.2 拓扑结构

3.3 数据流设计

4. 准备工作:环境与工具清单

4.1 硬件准备

网关设备(已配置)

子节点设备(Robot01)

4.2 软件准备

网关端

节点端

4.3 网络配置

端口要求

防火墙配置

SSH访问

4.4 信息记录

5. 网关配置:主节点设置详解

5.1 Gateway配置文件

5.2 关键配置项解析

5.2.1 bind模式

5.2.2 auth.token

5.2.3 nodes.denyCommands

5.3 查看Gateway状态

5.4 节点管理命令

6. 子节点配置:从设备准备到连接

6.1 节点系统准备

6.2 安装OpenClaw节点

6.3 SSH隧道建立

6.3.1 理解SSH隧道

6.3.2 建立SSH隧道

6.4 启动节点

6.5 作为服务运行(生产环境)

7. 审批与配对:安全机制的深度理解

7.1 配对流程概述

7.2 查看待批准的请求

7.3 批准节点

7.4 拒绝节点

7.5 配对信息的持久化

8. 执行授权:exec-approvals配置完全指南

8.1 为什么需要exec-approvals

8.2 配置文件位置

8.3 配置格式

8.3.1 最简单的配置(允许所有)

8.3.2 白名单模式

8.4 在Robot01上配置

8.5 配置生效

8.6 验证配置

9. 实战演练:Robot01节点完整配对过程

9.1 背景回顾

9.2 步骤一:准备工作检查

9.3 步骤二:创建SSH隧道

9.4 步骤三:启动节点

9.5 步骤四:批准配对

9.6 步骤五:配置自动执行

9.7 步骤六:重启节点使配置生效

9.8 步骤七:验证连接

9.9 步骤八:测试执行

10. 节点操作:通过网关远程控制子节点

10.1 使用nodes工具

10.1.1 查看节点状态

10.1.2 在节点上执行命令

10.1.3 节点文件操作

10.2 通过AI助手交互

11. MCP集成:节点与文件服务器交互

11.1 MCP文件服务器概述

11.2 在节点上配置访问

12. 多节点扩展:未来规划与最佳实践

12.1 扩展路线图

阶段一:单节点验证(已完成)

阶段二:功能扩展(规划中)

阶段三:地理分布(规划中)

12.2 节点命名规范

13. 故障排除:常见问题与解决方案

13.1 节点无法连接

13.2 执行被拒绝

13.3 命令执行失败

14. 深度优化:安全、性能与可维护性

14.1 安全建议

14.2 性能优化

14.3 可维护性

15. 总结与展望


1.前言:从单机助手到分布式AI助手

在我过去的博客文章中,让我们见证了单个AI助手的强大能力——它可以对话、推理、生成语音、识别图像,甚至可以控制浏览器执行复杂任务。

然而,随着使用场景的不断深入,我们不可避免地会遇到一个瓶颈:单机处理能力的局限

想象以下场景:

  • 场景一:你正在让主电脑运行GPT-SoVITS进行语音合成,同时还要处理大量的文档分析任务,此时再让它执行浏览器自动化操作,会发现系统响应变得迟缓。
  • 场景二:你希望在不同地点的设备上都能使用AI助手,但每个设备都独立运行一个完整的OpenClaw实例,导致数据不同步,体验碎片化。
  • 场景三:你希望让AI助手控制家中的多台设备(如智能摄像头、NAS存储、远程服务器),但这些设备本身无法运行完整的OpenClaw。

面对这些挑战,OpenClaw提供了子节点(Node)机制,允许我们将多台设备组织成一个分布式AI助手网络。在这个网络中:

  • 网关(Gateway) 是中央大脑,负责接收指令、协调任务、分发工作
  • 子节点(Node) 是分布式执行单元,各自承担特定功能

这种架构带来了诸多优势:

  1. 算力扩展:通过增加节点来分担计算负载
  2. 功能分布:不同节点可以专注于不同能力(如浏览器、文件系统、硬件控制)
  3. 地理分布:节点可以部署在不同地点,通过网络连接
  4. 容错备份:某个节点故障不影响整体系统运行
  5. 统一管理:所有节点通过单一网关进行协调

本文将详细记录我为OpenClaw网关添加第一个子节点(Robot01)的完整过程,包括架构设计思路、配置步骤、常见问题以及优化经验。无论你是希望扩展现有AI助手能力,还是构建更复杂的自动化系统,本文都将提供详尽的操作指南。


2. 概念解析:OpenClaw网关与子节点

2.1 网关(Gateway)

在OpenClaw的架构中,网关(Gateway)是整个系统的核心组件。它不仅仅是一个WebSocket服务器,更是整个AI助手网络的大脑和协调中心。

网关的核心职责包括:

  1. 消息路由:接收来自各个渠道(WebChat、Telegram、飞书等)的用户消息,理解意图,并分发给相应的处理模块
  2. 任务编排:将复杂任务分解为子任务,分发给合适的执行单元
  3. 状态管理:维护整个网络的拓扑结构、节点状态、对话上下文
  4. 安全控制:验证身份、执行权限检查、管理节点配对
  5. 资源调度:协调各节点的计算资源,优化任务分配

在我的部署中,网关运行在以下环境:

  • 主机:Ubuntu 22.04 / 24.04
  • IP地址:172.23.1.13
  • 端口:18789(默认WebSocket端口)
  • 绑定模式:loopback(本地绑定)
  • 版本:v2026.2.13

2.2 子节点(Node)

子节点是连接到网关的外部设备,它们可以是:

  • 树莓派:适合轻量级任务,如传感器数据采集、简单自动化
  • 旧电脑/服务器:可以承担中等负载,如文件处理、小规模推理
  • 高性能工作站:可以运行复杂的AI任务,如图像生成、大模型推理
  • 移动设备:iOS/Android设备,通过配套应用连接

每个子节点可以暴露不同的能力(Capabilities),常见包括:

  • browser:浏览器控制能力,可以执行网页自动化
  • system:系统执行能力,可以在节点上运行shell命令
  • camera:摄像头捕获能力
  • canvas:画布截取能力
  • screen:屏幕录制能力

在我的网络中,Robot01节点具备以下能力:

nodeId: xxxxxxx displayName: Robot01 platform: linux version: 2026.2.14 caps: ["browser", "system"]

2.3 通信机制

网关与子节点之间的通信基于WebSocket协议。当节点连接到网关时,会建立一个持久的双向通信通道,用于:

  • 心跳检测:节点定期发送心跳包,报告自身状态
  • 任务分发:网关向节点发送执行指令
  • 结果回传:节点将执行结果返回给网关
  • 事件推送:节点主动向网关推送事件(如检测到移动物体)

这种设计确保了:

  • 低延迟:相比HTTP轮询,WebSocket提供更低的通信延迟
  • 双向通信:节点不仅可以响应请求,还能主动推送信息
  • 连接保持:避免了频繁建立/断开连接的开销

2.4 安全模型

OpenClaw采用了多层安全模型来保护整个系统:

  1. 身份认证:节点连接时需要提供有效的Gateway Token
  2. 配对审批:新节点需要经过网关管理员审批才能加入
  3. 命令过滤:某些敏感命令(如camera.snap)被默认禁止
  4. 执行审批:节点上的命令执行可以被配置为需要审批

这种安全模型在提供便利性(自动执行)和安全性(防止恶意控制)之间取得了平衡。


3. 架构设计:为什么要使用子节点

3.1 场景驱动:从需求到架构

在深入技术细节之前,让我们先理解为什么需要子节点架构。以下是我在实际使用中遇到的具体场景:

场景一:计算资源隔离

GPT-SoVITS是一个计算密集型应用,需要大量的GPU显存。当我使用GPT-SoVITS进行语音合成时,GPU几乎满负荷运行。此时,如果再让OpenClaw执行其他AI任务(如浏览器自动化),系统响应会变得非常缓慢。

通过将GPT-SoVITS部署在独立的子节点上,我们可以:

  • 将计算密集型任务与IO密集型任务分离
  • 避免单点瓶颈,提高整体系统响应速度
  • 允许不同任务独立扩展
场景二:物理设备控制

我希望在不同地点都能控制家中的智能设备。这些设备包括:

  • NAS存储:用于存放和同步文件
  • 智能摄像头:用于家庭安防监控
  • 远程服务器:用于后台数据处理

传统方式是在每台设备上安装完整的OpenClaw,但这会导致:

  • 配置不一致,每个实例需要单独配置
  • 数据不同步,对话历史、记忆无法共享
  • 管理复杂,维护多个独立系统

通过子节点架构,我们可以:

  • 保持单一的网关作为控制平面
  • 将具体的设备控制委托给各子节点
  • 统一数据存储和上下文管理
场景三:能力扩展

不同的子节点可以暴露不同的硬件能力:

  • 带有摄像头的设备:可以执行视觉识别任务
  • 配备麦克风的设备:可以接收语音输入
  • 连接显示器的设备:可以展示图像和视频

这种模块化设计使得系统可以灵活地适应各种使用场景。

3.2 拓扑结构

基于上述需求,我设计了一个分层分布式架构

 ┌─────────────────────────────────────────┐ │ OpenClaw Gateway │ │ (172.23.1.13:18789) │ │ │ │ • 消息路由 │ │ • 任务编排 │ │ • 状态管理 │ │ • 安全控制 │ └────────────────┬────────────────────────┘ │ ┌──────────────────────┼──────────────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Robot01 │ │ (未来节点2) │ │ (未来节点3) │ │ 172.23.1.27 │ │ IP: TBD │ │ IP: TBD │ │ │ │ │ │ │ │ • browser │ │ • system │ │ • camera │ │ • system │ │ • 文件处理 │ │ • 视觉识别 │ │ │ │ │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘

在这个架构中:

  • Gateway 是唯一的入口点,处理所有外部通信
  • Robot01 节点目前承担浏览器自动化和系统命令执行
  • 未来的节点将被添加到网络中,各自承担特定功能
  • 所有节点通过内网连接,保证低延迟和安全性

3.3 数据流设计

让我们追踪一个典型的任务执行流程:

  1. 用户发起请求:用户通过WebChat发送消息:"让Robot01执行 uname -a"
  2. 网关接收:Gateway的WebSocket服务器接收消息
  3. 意图理解:AI模型解析请求,识别需要远程执行
  4. 节点选择:根据请求中的节点标识(Robot01)选择目标节点
  5. 命令封装:将请求封装为节点可执行的指令格式
  6. 指令发送:通过WebSocket将指令发送给Robot01节点
  7. 本地执行:Robot01收到指令,在本地操作系统上执行
  8. 结果回传:执行结果通过WebSocket返回给Gateway
  9. 结果处理:Gateway将结果格式化,返回给用户

整个过程对用户是透明的,用户只需要在消息中指定目标节点即可。


4. 准备工作:环境与工具清单

4.1 硬件准备

网关设备(已配置)
  • 主机:台式机/服务器
  • 操作系统:Ubuntu 22.04 或更高版本
  • 网络:连接到局域网(我的是 172.23.1.13)
  • OpenClaw版本:v2026.2.13
子节点设备(Robot01)
  • 主机:PC主机(华硕主板)
  • 操作系统:Ubuntu 24.04
  • IP地址:172.23.1.27
  • 网络:与网关同一局域网
  • OpenClaw版本:v2026.2.14

4.2 软件准备

网关端

确保Gateway上已安装OpenClaw:

# 检查OpenClaw版本 openclaw --version # 查看网关状态 openclaw gateway status # 查看节点状态 openclaw nodes status
节点端

在子节点上需要安装:

  1. Node.js:OpenClaw基于Node.js运行
  2. OpenClaw CLI:用于启动节点
  3. 基础工具:curl, wget, git等
# 检查Node.js版本 node --version # 检查npm版本 npm --version # 安装OpenClaw(如果未安装) npm install -g openclaw

4.3 网络配置

端口要求
端口用途说明
18789Gateway WebSocket节点连接网关使用
18790隧道转发端口SSH隧道本地端口
防火墙配置

确保以下端口在局域网内可访问:

# 检查端口状态 sudo ufw status # 如果需要,开放端口 sudo ufw allow 18789/tcp sudo ufw allow 18790/tcp
SSH访问

节点需要能通过SSH连接到网关(用于建立反向隧道):

# 在节点上测试SSH连接 ssh -p 22 [email protected]

4.4 信息记录

在开始配置之前,建议记录以下信息:

项目网关节点
主机名xxx-System-Product-Namerobot01-All-Series
IP地址172.23.1.13172.23.1.27
用户名xxxrobot01
Gateway Tokenxxxx-
SSH端口2222

5. 网关配置:主节点设置详解

5.1 Gateway配置文件

OpenClaw的配置文件位于 ~/.openclaw/openclaw.json。以下是与我网络配置相关的关键部分:

{ "gateway": { "port": 18789, "mode": "local", "bind": "loopback", "auth": { "mode": "token", "token": "xxxxxxx" }, "tailscale": { "mode": "off" }, "nodes": { "denyCommands": [ "camera.snap", "camera.clip", "screen.record", "calendar.add", "contacts.add", "reminders.add" ] } }, "tools": { "exec": { "host": "sandbox" } } }

5.2 关键配置项解析

5.2.1 bind模式
"bind": "loopback"
  • loopback:只绑定127.0.0.1,只能本地连接
  • lan:绑定0.0.0.0,允许局域网连接
  • 其他值:可以绑定特定网卡

重要:当设置为 loopback 时(默认模式),外部节点无法直接连接。这是因为WebSocket服务器只在本地回环接口上监听。此时需要使用SSH隧道来解决连接问题。

5.2.2 auth.token
"token": "xxxxx"

这是节点连接时需要提供的认证令牌。它相当于网关的"密码",确保只有授权的设备才能加入网络。

安全建议

  • 使用足够长的随机字符串
  • 定期更换token
  • 不要将token分享给不信任的人
5.2.3 nodes.denyCommands
"denyCommands": [ "camera.snap", "camera.clip", "screen.record", "calendar.add", "contacts.add", "reminders.add" ]

这些命令在任何节点上都被禁止执行,即使节点已经获得执行权限。这是一个额外的安全层,防止恶意软件利用节点进行隐私侵犯。

5.3 查看Gateway状态

配置完成后,可以查看Gateway的运行状态:

# 启动Gateway(如果未运行) openclaw gateway start # 查看Gateway状态 openclaw gateway status # 查看已连接的节点 openclaw nodes status

输出示例:

Gateway: running on http://127.0.0.1:18789 Version: v2026.2.13 Nodes: - Robot01 (connected) Platform: linux Caps: browser, system Connected: 2026-02-15T17:54:28Z

5.4 节点管理命令

OpenClaw提供了丰富的节点管理命令:

# 查看所有节点(包括未连接的) openclaw nodes list # 查看待批准的节点请求 openclaw nodes pending # 批准节点配对 openclaw nodes approve <requestId> # 拒绝节点配对 openclaw nodes reject <requestId> # 查看节点详细信息 openclaw nodes describe --node Robot01

6. 子节点配置:从设备准备到连接

6.1 节点系统准备

在Robot01上,我们首先确保系统满足基本要求:

# 检查操作系统 uname -a # 输出: Linux robot01-All-Series 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux # 检查网络连接 hostname -I # 输出: 172.23.1.27

6.2 安装OpenClaw节点

在节点设备上安装OpenClaw:

# 全局安装OpenClaw npm install -g openclaw # 检查安装 openclaw --version

6.3 SSH隧道建立

由于Gateway使用loopback绑定模式,节点需要通过SSH隧道连接到网关。

6.3.1 理解SSH隧道

SSH隧道的工作原理如下:

节点 (172.23.1.27) 网关 (172.23.1.13) | | | 1. SSH连接到网关 | | ─────────────────────────────────────> | | | | 2. 建立本地端口转发 | | 18790 -> 127.0.0.1:18789 | | | | 3. 节点连接到本地18790 | | (实际通过隧道到达网关18789) | | ─────────────────────────────────────> | | |
6.3.2 建立SSH隧道

在节点设备上执行:

# 建立SSH反向隧道(后台运行) ssh -N -L 18790:127.0.0.1:18789 [email protected] & # 验证隧道是否建立 netstat -tln | grep 18790

或者使用更简单的方式,节点直接连接(如果网络允许):

# 直接连接到网关(如果网关绑定到lan模式) ssh -N -R 18789:127.0.0.1:18789 [email protected] &

6.4 启动节点

SSH隧道建立后,可以启动OpenClaw节点:

# 设置Gateway Token环境变量 export OPENCLAW_GATEWAY_TOKEN="xxx" # 启动节点(前台运行测试) openclaw node run --host 127.0.0.1 --port 18790 --display-name "Robot01"

启动成功的输出类似:

🔗 Node connecting to ws://127.0.0.1:18790... ✅ Node connected and awaiting approval

6.5 作为服务运行(生产环境)

生产环境中,建议将节点作为系统服务运行,以便在系统启动时自动启动:

# 安装为系统服务 sudo openclaw node install --host 127.0.0.1 --port 18790 --display-name "Robot01" # 启动服务 sudo openclaw node start # 查看服务状态 sudo openclaw node status # 查看日志 sudo openclaw node logs

7. 审批与配对:安全机制的深度理解

7.1 配对流程概述

OpenClaw的节点配对是一个两阶段过程:

  1. 节点连接阶段:节点尝试连接到网关,提供身份信息
  2. 网关审批阶段:网关管理员批准或拒绝节点加入

这种设计确保了:

  • 未经授权的设备无法加入网络
  • 管理员可以控制网络的规模
  • 可以在批准前验证节点的身份

7.2 查看待批准的请求

在网关上,可以查看等待批准的节点请求:

openclaw nodes pending

输出示例:

Pending nodes: - requestId: abcxxx (Robot01) Platform: linux Version: 2026.2.14 Caps: browser, system Connection: 2026-02-15T17:54:28Z

7.3 批准节点

批准节点非常简单:

# 批准节点 openclaw nodes approve abcxxx

或者使用完整ID:

openclaw nodes approve xxx

批准后,节点状态会变为"已配对":

Nodes: - Robot01 (connected) Platform: linux Caps: browser, system Paired: true Connected: 2026-02-15T17:54:28Z

7.4 拒绝节点

如果发现可疑的节点请求,可以拒绝:

# 拒绝节点 openclaw nodes reject <requestId>

拒绝后,节点会收到连接被拒绝的消息,并在一段时间内无法再次请求连接。

7.5 配对信息的持久化

批准节点后,配对信息会持久化到网关的配置中。即使网关重启,已配对的节点可以重新连接,无需再次审批。


8. 执行授权:exec-approvals配置完全指南

8.1 为什么需要exec-approvals

当节点连接到网关后,默认情况下,节点上的命令执行需要审批。这是OpenClaw的安全特性之一,防止AI模型在没有用户同意的情况下在节点上执行任意命令。

然而,在实际使用中,频繁的审批请求会严重影响使用体验。特别是对于自动化任务,每次执行都需要人工批准是不现实的。

exec-approvals机制允许我们配置自动执行的策略,在安全性和便利性之间取得平衡。

8.2 配置文件位置

exec-approvals配置文件位于节点的home目录下:

~/.openclaw/exec-approvals.json

注意:这个文件必须在节点设备上创建,不是在网关上。

8.3 配置格式

8.3.1 最简单的配置(允许所有)

如果你完全信任AI助手,可以配置为允许所有执行:

{ "version": 1, "defaults": { "security": "full", "ask": "off" } }

配置项说明:

  • security
    • deny:拒绝所有执行
    • allowlist:仅允许白名单中的命令
    • full:允许所有执行
  • ask
    • off:从不询问,直接执行
    • on-miss:当命令不在白名单时询问
    • always:每次执行都询问
8.3.2 白名单模式

如果你希望更安全,可以只允许特定命令:

{ "version": 1, "defaults": { "security": "allowlist", "ask": "on-miss", "askFallback": "deny" }, "allowlist": [ { "id": "1", "pattern": "curl*" }, { "id": "2", "pattern": "wget*" }, { "id": "3", "pattern": "ls*" } ] }

8.4 在Robot01上配置

在Robot01节点上执行:

# 创建配置目录 mkdir -p ~/.openclaw # 创建配置文件 cat > ~/.openclaw/exec-approvals.json << 'EOF' { "version": 1, "defaults": { "security": "full", "ask": "off" } } EOF # 验证配置 cat ~/.openclaw/exec-approvals.json

8.5 配置生效

配置修改后,需要重启节点才能生效:

# 停止当前运行的节点 pkill -f "openclaw node" # 重新启动节点 export OPENCLAW_GATEWAY_TOKEN="xxxxxx" openclaw node run --host 127.0.0.1 --port 18790 --display-name "Robot01"

8.6 验证配置

配置生效后,可以尝试在网关上执行节点命令:

openclaw nodes run --node Robot01 uname -a

9. 实战演练:Robot01节点完整配对过程

9.1 背景回顾

本次配对的背景是:

  • 网关:运行在 Ubuntu 22.04 主机上,IP 172.23.1.13
  • 节点:Robot01,运行在 Ubuntu 24.04 主机上,IP 172.23.1.27
  • 目标:让Robot01能够执行浏览器自动化和系统命令

9.2 步骤一:准备工作检查

首先确认网络连通性:

# 从节点测试到网关的连接 ping -c 3 172.23.1.13 # 测试SSH端口 nc -zv 172.23.1.13 22

9.3 步骤二:创建SSH隧道

在Robot01上执行:

# 建立SSH反向隧道 # 这里使用的是从节点主动连接到网关的方式 # 注意:需要网关有SSH账号 ssh -N -R 18789:127.0.0.1:18789 [email protected] &

9.4 步骤三:启动节点

在Robot01上执行:

# 设置Token export OPENCLAW_GATEWAY_TOKEN="xxxxxx" # 启动节点 openclaw node run --host 127.0.0.1 --port 18790 --display-name "Robot01"

9.5 步骤四:批准配对

在网关上执行:

# 查看待批准列表 openclaw nodes pending # 批准节点(使用实际获得的requestId) openclaw nodes approve xxxxxx

9.6 步骤五:配置自动执行

在Robot01上执行:

# 创建exec-approvals配置 mkdir -p ~/.openclaw cat > ~/.openclaw/exec-approvals.json << 'EOF' { "version": 1, "defaults": { "security": "full", "ask": "off" } } EOF

9.7 步骤六:重启节点使配置生效

在Robot01上执行:

# 停止节点 pkill -f "openclaw node" # 重新启动 export OPENCLAW_GATEWAY_TOKEN="xxxxx" openclaw node run --host 127.0.0.1 --port 18790 --display-name "Robot01"

9.8 步骤七:验证连接

在网关上执行:

# 查看节点状态 openclaw nodes status

输出:

Nodes: - Robot01 Platform: linux Version: 2026.2.14 Caps: ["browser", "system"] Paired: true Connected: true ConnectedAt: 2026-02-15T17:54:28Z

9.9 步骤八:测试执行

在网关上测试节点命令执行:

# 测试基本命令 openclaw nodes run --node Robot01 uname -a

输出:

Linux robot01-All-Series 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux

10. 节点操作:通过网关远程控制子节点

10.1 使用nodes工具

OpenClaw提供了 nodes 工具来管理子节点。以下是常用操作:

10.1.1 查看节点状态
# 查看所有节点状态 openclaw nodes status # 查看特定节点详情 openclaw nodes describe --node Robot01
10.1.2 在节点上执行命令
# 在节点上执行单个命令 openclaw nodes run --node Robot01 ls -la # 在节点上执行多个命令 openclaw nodes run --node Robot01 "uname -a && hostname"
10.1.3 节点文件操作
# 从节点下载文件 openclaw nodes download --node Robot01 /path/to/remote/file /local/path # 上传文件到节点 openclaw nodes upload --node Robot01 /local/file /path/to/remote

10.2 通过AI助手交互

最自然的交互方式是直接告诉AI助手你想在节点上执行什么:

用户:让Robot01执行 curl --version 助手:(自动调用节点接口,返回结果)

AI助手会理解你的意图,自动选择合适的节点,并执行相应的命令。


11. MCP集成:节点与文件服务器交互

11.1 MCP文件服务器概述

除了节点控制,我还部署了一个MCP文件服务器用于文件存储和共享。这个服务器提供了:

  • MCP协议接口:xxxx
  • REST API接口
  • 认证方式:Bearer Token

11.2 在节点上配置访问

为了让Robot01能够访问MCP服务器,我在文件服务器上为Robot01创建了专属目录,并上传了访问指南。


12. 多节点扩展:未来规划与最佳实践

12.1 扩展路线图

阶段一:单节点验证(已完成)
  • ✅ Robot01节点配置完成
  • ✅ 基本的执行和文件传输功能
  • ✅ MCP服务器集成
阶段二:功能扩展(规划中)
  • 添加第二个Linux节点,承担文件处理任务
  • 添加摄像头节点,实现家庭安防监控
  • 集成更多MCP服务
阶段三:地理分布(规划中)
  • 在远程服务器上部署节点
  • 配置Tailscale实现跨互联网连接
  • 实现多地域容灾

12.2 节点命名规范

节点名类型功能位置
Robot01Linux PCbrowser, system本地机房
Robot02Linux Server文件处理本地机房
Robot-Cam01Raspberry Picamera客厅
Robot-RemoteVPS远程接入云端

13. 故障排除:常见问题与解决方案

13.1 节点无法连接

问题原因解决方案
连接被拒绝SSH隧道未建立检查SSH隧道状态
超时网络不通检查防火墙和路由
认证失败Token错误核对Gateway Token

13.2 执行被拒绝

问题原因解决方案
审批超时exec-approvals未配置配置自动执行策略
权限不足安全级别设置过低调整为full模式

13.3 命令执行失败

问题原因解决方案
命令不存在路径问题使用完整路径
权限被拒文件权限检查文件权限

14. 深度优化:安全、性能与可维护性

14.1 安全建议

  1. 定期更换Token:每隔一段时间更换Gateway Token
  2. 限制SSH访问:使用密钥认证,禁用密码登录
  3. 网络隔离:将节点放在独立的VLAN中
  4. 监控日志:定期审查节点执行日志

14.2 性能优化

  1. 减少延迟:使用有线网络连接节点
  2. 批量操作:将多个命令合并执行
  3. 缓存结果:对于频繁访问的数据使用缓存

14.3 可维护性

  1. 标准化配置:使用配置模板
  2. 文档记录:记录每个节点的功能和配置
  3. 自动化部署:使用Ansible等工具批量部署

15. 总结与展望

本文详细记录了为OpenClaw网关添加第一个子节点(Robot01)的完整过程。通过这个过程,我们:

  1. 理解了分布式架构:从单机助手扩展为分布式AI网络
  2. 掌握了配置技能:学会了Gateway和Node的配置方法
  3. 建立了安全意识:深入理解了认证、审批、执行授权机制
  4. 实践了集成能力:实现了节点与MCP文件服务器的交互

展望未来,我计划:

  1. 添加更多子节点,扩展网络规模
  2. 集成更多MCP服务,丰富功能生态
  3. 实现跨互联网连接,支持远程访问
  4. 探索更复杂的自动化场景

Read more

PaddleOCR-VL-WEB核心优势解析|附高精度表格与公式提取实践

PaddleOCR-VL-WEB核心优势解析|附高精度表格与公式提取实践 1. 引言:文档智能解析的新范式 在数字化转型加速的今天,企业、科研机构和教育领域每天都在处理海量的非结构化文档——PDF 报告、扫描件、手写笔记、学术论文等。传统 OCR 技术虽能实现基础文字识别,但在面对复杂版式、多语言混合、数学公式和嵌套表格时往往力不从心。链式处理流程(检测→分割→识别→结构化)不仅效率低下,还容易因误差累积导致最终结果失真。 PaddleOCR-VL-WEB 的出现标志着文档理解进入“端到端视觉-语言联合建模”时代。作为百度开源的 OCR 大模型镜像,它集成了 PaddleOCR-VL-0.9B 这一紧凑高效的视觉-语言模型(VLM),实现了对文本、表格、公式、图表等元素的一体化精准解析。更重要的是,该模型支持 109 种语言,具备极强的跨语种泛化能力,适用于全球化业务场景。 本文将深入剖析 PaddleOCR-VL-WEB

By Ne0inhk
Flutter for OpenHarmony: Flutter 三方库 flutter_cors 应对鸿蒙 Web 与混合开发中的跨域挑战(网络兼容方案)

Flutter for OpenHarmony: Flutter 三方库 flutter_cors 应对鸿蒙 Web 与混合开发中的跨域挑战(网络兼容方案)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 的跨平台开发时,我们不仅开发原生 HAP,有时也会涉及 Flutter Web 或是在鸿蒙端侧运行 Webview 混合应用。这时,一个经典的“拦路虎”就会出现:CORS (跨源资源共享) 限制。当你的 Web 端尝试访问一个未配置跨域头部的后端 API 时,请求会被浏览器拦截,报错信息极其晦涩。 虽然 CORS 主要是后端的工作,但 flutter_cors 提供了一种客户端视角的辅助工具。它通过工具化手段帮助开发者分析、绕过或生成跨域适配规则,是保证鸿蒙跨平台 Web 项目顺利运行的调试利器。 一、跨域访问逻辑模型 CORS 是一种浏览器的安全保护机制,它在请求发出前先进行“预检(Preflight)

By Ne0inhk
WebGIS视角下基孔肯雅热流行风险地区分类实战解析

WebGIS视角下基孔肯雅热流行风险地区分类实战解析

目录 前言 一、关于基孔肯雅热 1、病原学特征 2、流行病学特征 3、疫情处置 4、预防措施 二、流行风险地区空间可视化 1、流行风险地区分类标准 2、空间查询基础 3、Leaflet空间可视化 三、流行风险地区WebGIS展示 1、Ⅰ类地区 2、Ⅱ类地区 3、Ⅲ类地区 4、Ⅳ类地区 四、总结 前言         在全球化与城市化进程不断加速的当下,传染病的传播范围与速度呈现出前所未有的态势,给公共卫生安全带来了严峻挑战。基孔肯雅热作为一种由基孔肯雅病毒引起的急性传染病,近年来在多个地区引发疫情,其传播速度快、感染范围广,且易与其他蚊媒传染病叠加流行,严重威胁着人类健康和社会稳定。准确划分基孔肯雅热流行风险地区,对于制定科学合理的防控策略、优化医疗资源配置以及提高公众防范意识具有至关重要的意义。         本研究旨在通过系统梳理 WebGIS 技术在传染病流行风险评估中的应用现状与优势,结合基孔肯雅热的流行特点和防控需求,构建一套基于

By Ne0inhk
Rust与WebAssembly深度实战——将高性能Rust代码运行在浏览器与Node.js

Rust与WebAssembly深度实战——将高性能Rust代码运行在浏览器与Node.js

Rust与WebAssembly深度实战——将高性能Rust代码运行在浏览器与Node.js 一、学习目标与重点 1.1 学习目标 1. 理解WebAssembly基础:深入掌握WebAssembly(Wasm/Wasmtime)的核心定义、运行机制、与JavaScript的性能对比 2. 掌握Rust到Wasm的编译:熟练使用wasm-pack、cargo-web等工具链,完成Rust代码到Wasm模块的编译、打包、优化 3. 精通Rust与JavaScript交互:实现双向交互(Rust调用JS函数、JS调用Rust函数),处理复杂数据类型(数组、对象、字符串),管理内存(Wasm线性内存的分配与释放) 4. 开发真实Wasm应用:编写浏览器端高性能任务(Canvas图像滤镜、WebGL计算辅助)、Node.js端计算密集型任务(图像处理、加密解密、数据压缩) 5. 优化Wasm模块:使用wasm-opt工具优化Wasm体积,学习代码分割、懒加载、模块缓存

By Ne0inhk