這篇是「可公開」版本:所有可能引起資安疑慮的資訊(token、真實 IP、主機名稱、住處線索、設備暱稱)都已抽掉或改成佔位符。
你會得到:
- 一個能在家用 LAN 運作、也能在外面遠端連回來的 OpenClaw Hub
- 多台已連線的 Worker nodes
- Android 手機/平板以「掛在某台電腦上」的方式當輕度 worker(透過 ADB 自動化)
- Mission Control 看板(選配)
TL;DR
我最後把系統定義成三層:
- Hub(大腦 / 協調者):OpenClaw Gateway — 入口、選模型、分派工作、整合結果
- Workers(手腳 / 可被調度):OpenClaw node hosts — 能跑命令、能跑瀏覽器、也能自己跑推理服務
- Mobile(入口 / 顯示 / 被控裝置):iOS/Android 不硬當 node;Android 走 ADB 被控,iOS 當 client
這樣的設計好處是:穩、能擴充、而且「遠端」不會把 LAN 的穩定性弄壞。
現況驗證:系統真的在跑嗎?
Hub / Gateway 狀態
在 Hub 這台機器上:
openclaw gateway status
你希望看到的重點:
- Gateway 監聽在
0.0.0.0:<GATEWAY_PORT>(代表 LAN 可連) - RPC probe:ok
提醒:是否「遠端可連」還取決於你用的是 Tailscale / VPN / 公網轉發,以及防火牆規則。
Nodes 狀態(聯合運作的關鍵指標)
openclaw nodes status
你希望看到:
- Known >= 2
- Paired >= 2
- Connected >= 2
最終拓樸
Chat / UI(例如 Telegram)
│
▼
Hub / OpenClaw Gateway
LAN <HUB_LAN_IP>:<GATEWAY_PORT>
VPN <HUB_VPN_IP>:<GATEWAY_PORT> (Tailscale/ZeroTier/WireGuard 皆可)
│──────── LAN ────────▶ Worker-1 <NODE1_LAN_IP> (browser+system)
│──────── LAN ────────▶ Worker-2 <NODE2_LAN_IP> (browser+system)
└──────── VPN ────────▶ Remote Worker <NODE_VPN_IP> (browser+system)
Worker-1(USB)
└── ADB ──▶ Android phone + tablet(輕度 worker:由 Worker-1 代理)
Mobile(iOS / iPad)
└── Client:看 dashboard / 下指令 / 收通知(不硬當 node)
為什麼 iOS/Android 不直接當 node?
- 手機 OS 會殺背景,常駐服務不穩,會變成你每天都在「救活它」
- 權限/網路/瀏覽器能力限制多
- 真要自動化手機 UI:Android 用 ADB 比較穩;iOS 多半 client(或捷徑)
節點接入:三個你很可能會踩的坑
坑 1:token mismatch
如果 Gateway 開了 token auth,node 端必須帶同一個 token。
Windows(CMD):
set OPENCLAW_GATEWAY_TOKEN=<YOUR_TOKEN> && openclaw node run --host <HUB_IP> --port <GATEWAY_PORT> --display-name "Worker-1"
macOS(zsh):
export OPENCLAW_GATEWAY_TOKEN="<YOUR_TOKEN>"
openclaw node run --host <HUB_IP> --port <GATEWAY_PORT> --display-name "RemoteWorker"
公開文章不要貼 token;放環境變數也一樣是敏感資訊。
坑 2:pairing required 要走 devices approve
第一次 node 連上去常見:pairing required。
Hub 端要這樣處理:
openclaw devices list
openclaw devices approve <requestId>
很多人會一直看
nodes pending,但 node 配對走的是 devices。
坑 3:PowerShell 執行策略擋 openclaw.ps1
Windows PowerShell 可能會遇到「無法載入 openclaw.ps1」。
解法之一:直接呼叫 openclaw.cmd(路徑依安裝方式不同):
& "$env:APPDATA\npm\openclaw.cmd" node run --host <HUB_LAN_IP> --port <GATEWAY_PORT> --display-name "Worker-2"
模型選型:tool-call 的務實策略
我把模型分成兩種職務:
Router / Tool parser(解析工具參數、結構化輸出乾淨)
- 首選:Qwen Coder 系列(Qwen2.5-Coder / Qwen3-Coder)
- 在 Ollama / LM Studio 都好用
- 相對容易乖乖輸出 JSON / 結構化內容
Thinker(規劃、推理、長文分析)
- 雲端:Groq / Cerebras / 其他(看成本與可用性)
- 本地:DeepSeek R1 distill 類(推理強但不一定守 tool-call 格式)
實務上:Router 追求「格式穩」、Thinker 追求「推理強」。不要用同一顆模型硬幹所有任務。
Android 變成「輕度 worker」
最穩方案:ADB worker(不讓 Android 自己常駐)
Android 掛在某台 worker(Windows/Linux/macOS 都行)上:
- Hub → 該 worker 的
system.run→ 執行adb ... - 可做:點按、輸入、啟動 app、截圖、錄影、抓 log
前置:Worker 必須有 adb(platform-tools)
常見錯誤:
adb不是內部或外部命令
處理方式(官方 platform-tools):
- 下載 Android Platform Tools
- 解壓到固定資料夾(例如
C:\platform-tools\) - 先用完整路徑測:
C:\platform-tools\adb.exe devices -l - 再把
C:\platform-tools\加到 PATH
遠端接入:為什麼選 Tailscale(或任何 VPN)
如果你想「人在外面」也能接回家裡 Hub:
- 最簡單就是 Tailscale / WireGuard / ZeroTier 這類 VPN
- 好處:不用動路由器、不用 port forwarding,也不用把 Gateway 直接暴露在公網
遠端 worker 的概念:
export OPENCLAW_GATEWAY_TOKEN="<YOUR_TOKEN>"
openclaw node run --host <HUB_VPN_IP> --port <GATEWAY_PORT> --display-name "RemoteWorker"
Mission Control(選配):任務看板
定位:
- Mission Control(預設
:3000):看板 / 任務管理 / 問答規劃 / 派工 UI - OpenClaw Gateway(預設
:18789):真正執行 agent、呼叫模型、跑工具
建議部署:直接跑在 Hub
.env.local(公開版用佔位符):
OPENCLAW_GATEWAY_URL=ws://127.0.0.1:<GATEWAY_PORT>
OPENCLAW_GATEWAY_TOKEN=<YOUR_TOKEN>
PORT=3000
遠端要看 Mission Control:
- 透過 VPN 連 Hub:
http://<HUB_VPN_IP>:3000
提醒:如果你要從 VPN 網段打開 3000,記得防火牆要放行(至少 Private/VPN network)。
這套配置能撐到「100 個 agents」嗎?
先把「100 agents」拆成兩種意思:
- 100 個 agents 同時存在(100 個任務/角色/工單都在系統裡):通常可行。
- 100 個 agents 同時高強度輸出(每個都在狂打 LLM、狂吐長文/長程式/開瀏覽器):通常不可行,也不划算。
Claude Code Agent Teams:每台機器的實際天花板
Claude Code 有一個實驗性功能叫 Agent Teams:一個 terminal 開一個 team,由一個 lead 協調多個 teammate,各自獨立 context window、能互相溝通。
關鍵數字:
- 每個 terminal = 1 team
- 每個 team 最多約 16 個 agents(Anthropic 官方壓力測試用 16 個 agent 寫出了十萬行的 C compiler)
- 每個 teammate 都是獨立的 Claude Code instance,token 用量隨人數線性增長
OpenClaw 綁定的 Claude Code 也能用 Agent Teams
答案是可以。OpenClaw 綁定(binding)的 Claude Code 同樣支援 Agent Teams,運作方式是雙層架構:
OpenClaw Agent(channel 層級,收訊息 / 排程)
└─ Claude Code session(作為 subagent 被 spawn)
└─ Agent Team(session 層級,最多 ~16 teammates)
流程:
- OpenClaw 收到訊息 → 呼叫綁定的 Claude Code
- Claude Code 作為 subagent 啟動 → 建立 Agent Team
- Team lead 拆任務、spawn teammates → 多個 Claude Code instance 並行工作
- 結果回傳給 OpenClaw agent → 輸出到你的 chat channel
需要的條件:
| 項目 | 要求 |
|---|---|
| OpenClaw 版本 | dev channel v2026.2.4+(stable channel 初期不支援) |
| 環境變數 | CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 |
| 權限 | teammates 繼承 lead 的 permission settings |
也就是說,你不需要手動開 terminal 來啟動 team — OpenClaw 會自動 spawn Claude Code,Claude Code 再自動建立 Agent Team。每台 node 上的 OpenClaw agent 都能觸發這個流程,所以前面算的每台機器 16 agents 上限同樣適用。
套用到我們的架構:實際算一次
我們的 Hub + Workers 拓樸裡,每台實體機器都可以開一個 Claude Code terminal 跑一個 team:
| 節點 | 類型 | Claude Code Team | Agents |
|---|---|---|---|
| Hub | Gateway + 協調 | 1 team | 最多 16 |
| Worker-1 | LAN node | 1 team | 最多 16 |
| Worker-2 | LAN node | 1 team | 最多 16 |
| Remote Worker | VPN node | 1 team | 最多 16 |
| 本地小計 | 4 teams | 最多 64 |
再加上免費雲端平台跑 OpenClaw node
目前有幾個平台可以免費(或近乎免費)跑 OpenClaw 節點,把它們當成額外的 Worker 加入你的 Gateway:
| 平台 | 免費額度 | 適合當 |
|---|---|---|
| GitHub Codespaces | 免費帳號 60 小時/月、Pro 120 小時/月 | 臨時 worker(ephemeral,關掉會重置) |
| Railway | 一次性 $5 trial + 之後 $1/月 free tier | 輕量常駐 node(free tier 可能不夠跑完整 OpenClaw) |
| Hugging Face Spaces | 免費 CPU tier | 輕量 agent / 推理服務 |
| AMD Developer Cloud | $100 免費額度(MI300X 192GB,約 50 小時) | 短期重度推理(本地大模型) |
| NVIDIA NIM(free-the-claw) | 免費模型 API | 搭配 OpenClaw 當免費推理後端 |
| Fly.io | 免費額度(3 shared VMs) | 常駐 Gateway / node |
保守估計能穩定拿到 2–4 個免費雲端 node,每個也能跑 Claude Code team:
| 節點 | 來源 | Agents |
|---|---|---|
| Codespaces node | GitHub | 最多 16 |
| Fly.io node | Fly.io free tier | 最多 16 |
| HF Space node | Hugging Face | 最多 16(受限 CPU) |
| 雲端小計 | 最多 48(實際看資源) |
加總:理論上限 vs 務實建議
| 理論最大 agents | 務實建議 active agents | |
|---|---|---|
| 本地 4 台機器 | 64 | 24–32 |
| 免費雲端 2–4 nodes | 48 | 8–16 |
| 總計 | 112 | 32–48 同時出手 |
112 個 agents > 100,理論上可行。但實務上要用「任務很多、同時出手有限」的策略。
真正的上限在哪?
這種多代理系統的瓶頸多半不在本機 RAM,而在:
- LLM API rate limit(RPM/TPM/並行連線):Claude Code / Codex / Gemini CLI 這類只要一併發就容易碰 429 / 被降速
- 工具型任務的資源:尤其 browser automation(每台機器同時 1–3 個比較穩)
- 排程策略:有沒有節流(concurrency limit)、有沒有排隊、是否把負載分散到多個 provider
- Token 成本:Agent Teams 的 token 用量隨 teammate 數量線性增長,16 個 agent 的 team 花費是單 session 的 10 倍以上
重點:你可以讓系統「擁有」100+ 個 agents,但要讓其中只有一小部分在任一時刻真正出手(送 API 請求/跑瀏覽器)。
建議的分池策略
一個務實的分池範例:
- Coding 類(Claude Code teams):active 8–12 agents(尖峰上限可抓到 32,但建議先留 buffer、避免 429/重試風暴)
- General LLM(規劃/摘要/分類):active ~25(短輸出/小任務為主)
- Browser / 系統工具:每台 node 同時 1–3 個(超過就容易不穩)
最容易踩到的坑
- 沒做併發控制 → 大量 429 / timeout
- 所有 agents 都打同一家 provider → 同時被限速,整體吞吐反而下降
- Browser 任務過量 → RAM 爆、頁面卡、登入狀態互相污染
- 免費雲端 node 隨時可能被回收(Codespaces ephemeral、HF Spaces 閒置休眠)
結論:這套架構理論上能跑到 100+ agents。務實做法是讓 32–48 個同時出手,其餘排隊等調度。把它當成 100 個可同時排隊與調度的工單/角色,而不是 100 個同時狂輸出的打字員。
下一步 Roadmap
- 先確保 nodes 都能 stable connected(不要手動關 terminal)
- 把 ADB 裝好(Android 才能真當 worker)
- 把 推理服務(Ollama/LM Studio)分佈到各節點,再寫 routing 規則
- 想要任務管理再上 Mission Control
附錄:常用指令速查
查看 node 狀態
openclaw nodes status
配對 node(approve)
openclaw devices list
openclaw devices approve <requestId>
Windows 重新啟動 node
set OPENCLAW_GATEWAY_TOKEN=<YOUR_TOKEN> && openclaw node run --host <HUB_LAN_IP> --port <GATEWAY_PORT> --display-name "Worker"
macOS 重新啟動 node
export OPENCLAW_GATEWAY_TOKEN="<YOUR_TOKEN>"
openclaw node run --host <HUB_VPN_IP> --port <GATEWAY_PORT> --display-name "RemoteWorker"