OpenClaw 完整安裝指南:
裸金屬 Mac 上從零到生產的 AI Agent 執行環境

若你要在獨享 Apple Silicon 裸金屬上連續數週執行 OpenClaw Gateway,最常卡住的不是輸入 npm install,而是睡眠策略、PATH 衛生、launchd 重載語意,以及日誌是否能回溯。本篇提供可在變更單複製的生產向順序:Node 版本門檻、三欄對照表、兩組各含六步的有序清單(安裝與 launchd)、除錯矩陣與三則技術向補述。硬體與月租資訊以 CALMVPS 定價頁為準。

讀畢後你應能說清楚三件事:節點是否符合上游文件的 Node 下限;如何在確認前景(foreground)穩定後遷至 launchd 並避免埠號幽靈佔用;當監聽埠看似無回應時應先蒐集哪類證據。

01 前置假設與裸金屬上的隱性成本

裸金屬與短期雲端桌面最大的差異,在於你獨佔整機狀態:NVMe 上沒有超賣鄰居,但也沒有供應商替你扛糟糕的電源策略或深夜 OS 更新視窗。若把 Gateway 當一次性指令稿執行,最容易碰到過於激進的睡眠切斷長連線,或是日誌堆在系統卷直到突發批次任務塞滿磁碟。

開始安裝 OpenClaw 前,請將下列項目列為飛行前(preflight)驗收,而非事故後補救備忘錄。

  • 睡眠與排程:確認系統不會暫停長連線;Gateway 需要穩定心跳與可預期的 TCP 生命週期。
  • 磁碟與快取:為全域 npm/pnpm 與 Gateway 日誌劃分路徑,避免與建置產物競爭同一磁區。
  • 網路對外:核對上游防火牆是否放行 HTTPS 出站與 Gateway 監聽埠;多區節點會拉高 DNS 解析與 TLS 往返時間,這類尾延遲不會反映在 CPU 圖表上。
  • 身分與密鑰:分流模型供應商 API Key、通道 OAuth 與本機鑰匙圈策略,避免 launchctl 偵錯輸出洩漏憑證。
  • 可觀測性:預先定義 log stream 篩選條件與落檔位置;否則你只知道行程 PID 仍存在。

容量規畫較少是峰值 CPU 問題,更多的是穩態記憶體用量加上磁碟佇列尾延遲。Apple Silicon 節點提供單租戶可預期的調度品質,但模型預熱時 Node GC 尖峰與多通道扇出仍需要餘裕;對下游對話介面承諾 SLA 之前,至少蒐集一週原始樣本。

僅看平均值的監控儀表板會遮住問題:請同步輸出 TLS 交握與 fsync 的百分位數,才能對網路/儲存團隊提出可被覆核的主張。

資安姿態也跟著位移——你不是待在供應商硬化過的家電映像裡,而是繼承 macOS 預設設定直至另行強化。修補節奏、管理員 SSH 金鑰與 FileVault 政策應與 Gateway 升級路徑寫在同一套維運手冊,避免值班時臨時拼湊。

對資料敏感度較高的團隊,另請紀錄誰擁有主機序列埠/IPMI 等級權限,並對稽核紀錄做不可竄改備份,以對齊內外部稽核抽樣。

裸金屬的回報來自變異數下降:先把會「卡住代理人」的行為移除,再考慮更高時脈晶片。

02 決策矩陣:筆電、裸金屬、分時/共用 Mac 雲

相同的 OpenClaw 指令在不同載具上行為分歧:筆電背負 GUI 連線與睡眠風險;分時/共用 Mac 雲常限制自訂常駐程式;裸金屬隔離乾淨,但常駐化(daemon 化)回到你自己肩上。當有人建議「拿備用筆電就好」,請把下列矩陣放進評審紀錄。

何處承載接近正式環境負載的 OpenClaw Gateway
維度 個人 Mac 筆電 CALMVPS 裸金屬節點 分時或虛擬化 Mac 雲
行程邊界 睡眠與闔蓋風險 單租戶,適合 24/7 依賴 Hypervisor 與超賣策略
常駐化 仍需設定 launchd 必須使用 launchd,無鄰居噪音 部分供應商禁止自訂 LaunchDaemon
磁碟與 I/O 與桌面工作共用空間 可獨立切分日誌與快取磁區 共用儲存拉高尾延遲
網路穩定性 家用/共享線路抖動 資料中心上行適合長連線代理 QoS 與出站策略各家不一
合規與稽核 資產歸屬不易釐清 合約與存取邊界清楚 需確認資料落地與映像來源

目標若是iOS/macOS CI 側車、面向使用者的機器人 Gateway,或全天候代理人控制平面,裸金屬多半是能一次對齊延遲、隔離與稽核軌跡的選項。

需要可重複的冷開機、混合 Node 與原生工作負載的可預期 CPU 排程,以及單一修補負責人時,優先裸金屬。僅在互動式除錯階段使用筆電。若政策禁止實體持有主機,只能接受分時雲,並承擔 I/O 與 daemon 政策的額外變異。

企業 IT 若已有標準映像與組態管理,可把矩陣中的每一列對應到內部 RACI,避免「先用再說」造成後續無法稽核的暗帳;維運同仁亦可在一張圖上對齊「誰擁有伺服器層級的金鑰與防火牆規則」。

03 Node.js 與 OpenClaw 安裝(官方連結)

OpenClaw 透過 Node 生態系發佈;上游會調整執行時下限,複製指令前請重新閱讀 Setup。下列順序描述結構,而非一成不變的配方,並假設你不會把機密寫進可被版本庫追蹤的程式碼片段。

若程式庫或文件遷址,以下網址為準。

https://docs.openclaw.ai/start/setup

https://www.npmjs.com/package/openclaw

  1. 檢查架構:執行 uname -m,預期 arm64;若見 x86_64,確認是否誤跑於 Rosetta。
  2. 安裝 Node:nvm、fnm 或官方 pkg 皆可;對齊文件要求的 major,並讓 nodenpm 來自同一前綴。
  3. 全域 CLI:npm install -g openclaw@latest,再以 which openclawopenclaw --version 驗證。
  4. 初始化工作目錄:在獨立資料夾執行 openclaw init 或文件載明的加入流程,勿放在「下載項目」。
  5. 注入機密:依文件版面放置供應商金鑰與通道權杖;絕不可將明文憑證送入版本庫。
  6. 前景驗證:執行 openclaw gateway start 或等效指令直至流量貫通,再切換 launchd。
VERIFY_NODE.SH
#!/bin/sh
node -v
npm -v
which openclaw
openclaw --version

若 shell 找不到 openclaw,請檢查全域 bin 是否列入非互動 launchd 工作階段的 PATH,以及是否曾用 sudo 造成多 root 分裂安裝。

安裝完成後匯出 npm ls -g --depth=0 結果並連同 OpenClaw 版本字串存檔,以利升級差異比對。

04 Gateway 首次啟動與 launchd 常駐

不要把正式流量懸掛在互動式 SSH:連線關閉即終止整棵行程樹。macOS 上 launchd 是長效監督行程;LaunchAgents 依附登入脈絡,LaunchDaemons 以 root 執行並需更嚴格稽核。下列假設為使用者層級 Agent。

  1. 決定監聽埠:寫入設定前以 lsof -nP -iTCP 確認空閒。
  2. 撰寫 plist:Label 必須唯一;ProgramArguments 使用 which openclaw 取得的絕對路徑;必要時在 EnvironmentVariablesPATH,若遇企業 TLS 檢查再加入 NODE_EXTRA_CA_CERTS
  3. 標準輸出與錯誤:StandardOutPathStandardErrorPath 指向可輪替檔案。
  4. 載入:launchctl load -w ~/Library/LaunchAgents/ai.openclaw.gateway.plist
  5. 安全重載:修改後先 unloadload,避免舊監聽程式霸占同一埠。
  6. 健康檢查:切換真實流量前用 curl 或文件建議的探針。
PLIST.SNIPPET.XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
  <key>Label</key><string>ai.openclaw.gateway</string>
  <key>ProgramArguments</key><array>
    <string>/opt/homebrew/bin/openclaw</string>
    <string>gateway</string><string>start</string>
  </array>
  <key>RunAtLoad</key><true/>
  <key>KeepAlive</key><true/>
</dict></plist>

plist 中的 openclaw 路徑必須與實機一致:Apple Silicon 上的 Homebrew 與 nvm shim 不同,launchd 不會替你猜路徑。

請留存健康實例的 launchctl print 輸出樣本,事故時可比對標籤、結束碼與節流計數。

05 日誌、健康檢查與除錯矩陣

除錯可依三類症狀分桶:找不到行程、行程在跑但無 LISTEN、LISTEN 正常但上游拒絕 TLS/授權。

常見 Gateway 異常與第一個證據
徵兆 優先蒐集的證據 可能根因
重開機後未自動啟動 launchctl list | grep openclaw plist 未載入、路徑錯誤或權限不足
連線被拒(connection refused) lsof -nP -iTCP:PORT -sTCP:LISTEN 僅綁定 loopback 或埠號衝突
TLS 交握失敗 Gateway stderr 與企業 CA bundle 憑證鏈不完整或時鐘偏移
CPU 尖峰 sample 或活動監視器 GC 或模型預熱;調降並行度
  • Node major 門檻:嚴格遵循 Setup;過舊執行時常無友善錯誤即結束。
  • 綁定位址:只聽 127.0.0.1 會讓遠端探測誤判離線;對齊安全性群組規則。
  • 日誌承接:launchd 環境若無檔案型 stdout/stderr,問題會化成黑盒。

若事故反覆,請新增合成檢查:走與使用者相同的 TLS 路徑與權杖範圍,而非只看 TCP 埠是否開啟。

06 六步上線檢核與穩態維運

  1. 鎖版本:在變更紀錄記下 nodeopenclaw 與通道 SDK 版本。
  2. 冷開機演練:於乾淨連線 reboot,確認 launchd 在 SLA 內拉起監聽程式。
  3. 輪替機密:演練模型金鑰與通道權杖更新,避免手改 plist。
  4. 備份與回滾:納入設定樹與憑證;保留最後已知良好的 plist。
  5. 容量取樣:連續七日收集 CPU、記憶體與寫入放大,評估 unified memory 等級。
  6. 文件對齊:每次維護視窗前重讀 Setup 與發行說明。

自組筆電與分時雲最常敗在睡眠、鄰居資源爭搶與 daemon 責任不清。若你需要穩定的 iOS/macOS CI 側車、AI Agent Gateway,以及可稽核的存取路徑,多半會落在CALMVPS Apple Silicon 裸金屬租用:長生命週期行程、磁碟配置與上行特性被包在同一個可預測封套,月租彈性則可直接對照 定價頁