openclaw/OPENCLAW_MAC_NODE_COMPLETE_...

127 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# OpenClaw Mac 节点配置与云端控制完全指南
本文档汇总了关于将 Mac 注册为 OpenClaw Gateway 节点的操作指南,以及在云端部署 Gateway 控制本地 Mac 的场景可行性分析。
---
## 1. 核心概念Gateway 与 Node
在 OpenClaw 架构中:
- **Gateway (网关)**: 系统的"大脑"与控制中心。负责运行 AI 智能体、管理会话、连接消息平台(如 WhatsApp/Telegram。它可以部署在任何地方本地 Manjaro、云端 Ubuntu 服务器等)。
- **Node (节点)**: 系统的"手脚"与执行单元。它连接到 Gateway暴露本地设备的能力如屏幕显示、摄像头、执行系统命令。Mac 可以作为一个高权限节点加入网络。
---
## 2. 实操指南:将 Mac 注册到 Gateway
无论 Gateway 运行在本地局域网Manjaro还是云端Ubuntu连接 Mac 的步骤基本一致。
### 方案选择
| 方案 | 适用场景 | 优势 | 劣势 |
| :--- | :--- | :--- | :--- |
| **A. macOS App (Remote 模式)** | **推荐** | ✅ 支持 Canvas (网页显示)<br>✅ 支持摄像头/录屏<br>✅ 完整的权限管理 (TCC)<br>✅ 系统通知 | 需要安装 App |
| **B. 纯 CLI (无头模式)** | 服务器/轻量级 | ✅ 无需 GUI<br>✅ 部署简单 | ❌ 无 Canvas/摄像头/录屏支持 |
### 详细配置步骤
#### 第一步:环境准备
1. **Gateway 端 (Manjaro/Ubuntu)**:
- 确保 Gateway 已启动。
- 获取连接 Token
```bash
openclaw config get gateway.auth.token
# 记录下输出的 Token
```
- 确保网络可达(云端需开放端口或使用 Tailscale/SSH 隧道)。
2. **Mac 端 (节点)**:
- 安装 OpenClaw CLI: `npm install -g openclaw`
- (推荐) 下载并安装 **OpenClaw.app**
#### 第二步:连接 Gateway
**方式 A: 使用 macOS App (推荐)**
1. 打开 OpenClaw.app进入 **Settings** -> **General**
2. **Mode**: 选择 **Remote**
3. **Gateway Host**: 输入 Gateway 的 IP 或域名(如 `1.2.3.4``myserver.tailscale.net`)。
4. **Gateway Port**: 默认为 `18789`
5. **Gateway Token**: 填入第一步获取的 Token。
6. 应用会自动启动本地节点服务并尝试连接。
**方式 B: 使用 CLI**
在 Mac 终端运行:
```bash
# 前台运行测试
openclaw node run --host <gateway-ip> --port 18789 --token <token> --display-name "MyMac"
# 或安装为后台服务
openclaw node install --host <gateway-ip> --port 18789 --token <token> --display-name "MyMac"
openclaw node start
```
#### 第三步:批准连接 (在 Gateway 端)
出于安全考虑,新节点连接需要批准。
```bash
# 在 Gateway 机器上运行
openclaw devices list # 查看待批准请求
openclaw devices approve <request-id>
```
#### 第四步:验证
```bash
# 在 Gateway 机器上运行
openclaw nodes status # 应显示 Mac 节点在线
openclaw nodes describe --node "MyMac"
```
---
## 3. 功能手册Gateway 可控制 Mac 做什么
连接成功后Gateway 上的 AI Agent 可以通过 `node.invoke` 调用 Mac 的能力:
### 基础能力
- **执行命令**: `system.run` (如 `uname -a`, `ls -la`)
- *安全提示*: 需在 Mac 的 `~/.openclaw/exec-approvals.json` 中配置允许列表。
- **系统通知**: `system.notify` (发送弹窗通知到 Mac 桌面)
- **获取位置**: `location.get`
### 多媒体与 UI (需 macOS App)
- **浏览器控制 (Canvas)**:
- 打开网页: `canvas.present --target https://google.com`
- 执行 JS: `canvas.eval --js "document.title"`
- 截图: `canvas.snapshot`
- **摄像头**: `camera.snap` (拍照), `camera.clip` (录短视频)
- **屏幕录制**: `screen.record`
---
## 4. 场景深度分析:云端 Gateway + Mac Node
**问题**: 如果 Gateway 在云端 UbuntuMac 作为节点OpenClaw 能否"像人一样"使用 Mac如写代码、做 PPT
**结论**: **可以做到,但更像是"远程脚本专家",而非"人类操作员"。**
由于网络延迟和架构限制AI 的操作模式与人类不同:
### 场景 A: 修改代码 (Code Modification)
* **人类模式 (不推荐)**: 打开 VS Code GUI点击光标输入字符。
* *AI 限制*: 视觉识别+模拟点击在云端到本地的高延迟下体验极差。
* **OpenClaw 模式 (推荐)**:
1. **Git流**: AI 在云端修改代码 -> Push 到仓库 -> 指挥 Mac 节点 `git pull` -> 指挥 Mac 运行 `npm run dev` 预览。
2. **命令行流**: AI 通过 `system.run` 发送 `sed`/`echo` 命令直接修改 Mac 文件(风险较高,容易改错)。
### 场景 B: 制作 PPT (Presentation)
* **人类模式 (不推荐)**: 打开 Keynote鼠标拖拽文本框调整字体。
* *AI 限制*: 无法精准控制鼠标拖拽,且无法实时"看"到效果。
* **OpenClaw 模式 (推荐 - AppleScript)**:
* Mac 节点支持执行 AppleScript。AI 可以编写脚本直接控制 Keynote/PowerPoint。
* *指令示例*: `tell application "Keynote" to make new slide with title "AI Report"`
* *优势*: 速度极快,精确,无需视觉反馈。
### 关键限制与建议
1. **网络延迟**: 云端控制本地 UI 会有显著延迟。如果需要频繁的"看屏幕-点击"交互,建议将 Gateway 部署在本地。
2. **文件访问**: Gateway 默认无法直接读取 Mac 文件系统(除非通过 `cat` 命令回传)。建议通过 Git 或云同步文件夹共享工作区。
3. **最佳实践**: 让 AI 充当**指挥官**(在云端思考、规划、写脚本),让 Mac 充当**执行器**(运行脚本、渲染 UI、跑测试而不是让 AI 模拟鼠标键盘。