OpenClaw 高级使用指南
OpenClaw 是一款基于开源架构的 AI 智能体平台,核心能力在于强大的多模型调度与容灾切换。它支持 Anthropic、OpenAI、Google 等主流模型的自动故障转移,确保服务高可用。内置的智能记忆检索系统通过 Embedding 模型实现混合搜索,让 Agent 在持续使用中积累经验。其多 Agent 协作机制支持线性流水线、依赖图并行及多 Agent 辩论三种模式,可组建虚拟开发团队,一条指令即可交付生产级代码。
此外,OpenClaw 支持云端与本地设备通过 SSH 反向隧道配对,实现远程操控浏览器、执行命令等跨端能力。以下分享模型容灾配置、记忆检索设置以及云端 Gateway 操控本地 macOS 的详细步骤。
相关资源
- Team Tasks Skill: https://github.com/win4r/team-tasks
模型容灾机制配置
编辑配置文件 /home/ubuntu/.openclaw/openclaw.json,定义主模型与备用模型列表。
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-opus-4-6",
"fallbacks": [
"openai-codex/gpt-5.3-codex",
"google-antigravity/claude-opus-4-6-thinking"
]
}
},
"list": [
{
"id": "main",
"default": true,
"model": {
"primary": "anthropic/claude-opus-4-6",
"fallbacks": [
"openai-codex/gpt-5.3-codex",
"google-antigravity/claude-opus-4-6-thinking"
]
}
}
]
}
}
多认证 Profile + Token 轮换
支持为不同服务商配置多个认证 Profile,并设定轮换顺序。
{
"auth": {
"profiles": {
"openai-codex:default": {
"provider": "openai-codex",
"mode": "oauth"
},
"anthropic:default": {
"provider": "anthropic",
"mode": "token"
},
"anthropic:manual": {
"provider": "anthropic",
"mode": "token"
},
"google-antigravity:[email protected]": {
"provider": "google-antigravity",
"mode": "oauth",
"email": "[email protected]"
},
"google-antigravity:[email protected]": {
"provider": "google-antigravity",
"mode": "oauth"
}
},
"order": {
"anthropic": ["anthropic:default", "anthropic:manual"],
"google-antigravity": ["google-antigravity:[email protected]", "google-antigravity:[email protected]"]
}
}
}
Memory Search 配置
在 openclaw.json 中启用混合搜索(向量 + 文本),并指定 Embedding 模型。
{
"agents": {
"defaults": {
"memorySearch": {
"sources": ["memory", "sessions"],
"experimental": { "sessionMemory": true },
"provider": "gemini",
"remote": {
"apiKey": "AIzaSy***************"
},
"fallback": "gemini",
"model": "gemini-embedding-001",
"query": {
"hybrid": {
"enabled": true,
"vectorWeight": 0.7,
"textWeight": 0.3
}
}
}
}
}
}
云端 OpenClaw 与本地 macOS 通过 Node 配对
架构概览
由于 Mac 通常位于 NAT 内网无公网 IP,无法被 AWS 主动连接。解决方案是 Mac 主动通过 SSH 隧道连到 AWS,在 AWS 本地开启端口转发流量至 Mac 上的 Node 服务。
┌─────────────────────────┐ SSH 反向隧道 ┌─────────────────────────┐
│ 云端 AWS (Ubuntu) │ ◄────────────── │ 本地 macOS (MacBook) │
│ │ │ │
│ 端口 18790 │ │ 端口 18789 (Node) │
│ OpenClaw Gateway │ │ OpenClaw Node │
│ 监听:127.0.0.1:18789 │ │ 连接:localhost:18790 │
│ 公网 IP: xx.xx.xx.xx │ │ NAT 内网(无公网 IP) │
└─────────────────────────┘ └─────────────────────────┘
前置条件
| 项目 | 要求 |
|---|---|
| AWS 服务器 | OpenClaw Gateway 已安装并运行 |
| macOS | Node.js ≥ 22, npm |
| SSH | Mac 能 SSH 到 AWS(公钥已添加到 ~/.ssh/authorized_keys) |
| 网络 | Mac 有互联网访问(不需要公网 IP) |
建立连接
1. 安装 OpenClaw Node
在 Mac 终端全局安装 OpenClaw CLI:
npm install -g openclaw
openclaw --version
2. 获取 Gateway Token
在 AWS 上查看配置文件中的 Gateway Token:
cat ~/.openclaw/openclaw.json | grep -A2 '"auth'
# 或者使用工具命令
openclaw gateway config | grep token
找到 gateway.auth.token 的值,后续步骤需要用到。
3. 建立 SSH 反向隧道
在 Mac 终端执行以下命令,将本地端口 18790 映射到 AWS 的 18789:
ssh -N -L 18790:127.0.0.1:18789 ubuntu@<AWS 公网 IP>
-N: 不执行远程命令,只做端口转发。-L 18790:127.0.0.1:18789: 本地 18790 → AWS 的 127.0.0.1:18789(Gateway)。ubuntu@<IP>: AWS 服务器 SSH 地址。
首次连接需确认 SSH 指纹(输入 yes)。验证隧道是否通:
curl -s http://localhost:18790/health
如果返回内容,说明隧道已通。
4. 启动 Node 服务
在 Mac 另一个终端执行,传入刚才获取的 Token:
OPENCLAW_GATEWAY_TOKEN="<你的 Gateway Token>" \
openclaw node run \
--host 127.0.0.1 \
--port 18790 \
--display-name "Master-Mac"
启动后会看到类似输出:
🔗 Connecting to gateway at ws://127.0.0.1:18790 ...
✅ Connected! Waiting for pairing approval...
5. AWS 端批准配对
在 AWS 终端或通过 OpenClaw Agent 执行以下命令查看待批准的 Node 并批准:
# 查看待批准的 Node
openclaw node pending
# 批准配对(使用 Node ID 或名称)
openclaw node approve <node-id>
或者通过 Agent 工具:
# 查看待配对 nodes
nodes(action="pending")
# 批准
nodes(action="approve", node="Master-Mac")
批准后 Mac 终端会显示:
✅ Paired successfully! Node is now active.
6. 配置执行权限
在 Mac 上设置 Node 的执行权限,允许远程命令执行:
# 推荐方式
openclaw node exec-approvals set defaults.security full
或者手动创建配置文件 ~/.openclaw/exec-approvals.json:
{
"defaults": {
"security": "full"
}
}
⚠️ 关键:defaults.security 必须设为 full,否则即使 allowlist 配了 * 也会拒绝执行命令。
7. 验证连接
从 AWS 的 OpenClaw Agent 测试远程执行:
# 查看 Node 状态
nodes(action="status")
# 在 Mac 上执行命令
nodes(action="run", node="Master-Mac", command=["echo", "Hello from Mac!"])
# 查看 Mac 系统信息
nodes(action="run", node="Master-Mac", command=["sw_vers"])

