OpenClaw 可以執行一個由代理程式控制的專用 Chrome/Brave/Edge/Chromium 設定檔。 它與你的個人瀏覽器隔離,並透過 Gateway 內部的小型本機 控制服務管理(僅限 loopback)。 初學者視角:Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- 可以把它想成一個獨立、僅供代理程式使用的瀏覽器。
openclaw設定檔不會碰觸你的個人瀏覽器設定檔。- 代理程式可以在安全通道中開啟分頁、讀取頁面、點擊和輸入。
- 內建的
user設定檔會透過 Chrome MCP 附加到你實際已登入的 Chrome 工作階段。
你會得到什麼
- 一個名為 openclaw 的獨立瀏覽器設定檔(預設為橘色強調色)。
- 確定性的分頁控制(列出/開啟/聚焦/關閉)。
- 代理程式動作(點擊/輸入/拖曳/選取)、快照、螢幕截圖、PDF。
- 隨附的
browser-automationskill,會在瀏覽器 Plugin 啟用時,教導代理程式快照、穩定分頁、過期參照,以及手動阻礙復原迴圈。 - 選用的多設定檔支援(
openclaw、work、remote、…)。
快速開始
openclaw browser 完全不存在,或代理程式表示瀏覽器工具
無法使用,請跳到缺少瀏覽器命令或工具。
Plugin 控制
預設的browser 工具是隨附的 Plugin。停用它即可用另一個註冊相同 browser 工具名稱的 Plugin 取代:
plugins.entries.browser.enabled 以及 browser.enabled=true。只停用 Plugin 會把 openclaw browser CLI、browser.request gateway 方法、代理程式工具,以及控制服務作為一個單位移除;你的 browser.* 設定會保持不變,以供替代實作使用。
瀏覽器設定變更需要重新啟動 Gateway,讓 Plugin 重新註冊其服務。
代理程式指引
工具設定檔注意事項:tools.profile: "coding" 包含 web_search 和
web_fetch,但不包含完整的 browser 工具。如果代理程式或
衍生的子代理程式應使用瀏覽器自動化,請在設定檔階段加入 browser:
agents.list[].tools.alsoAllow: ["browser"]。
只有 tools.subagents.tools.allow: ["browser"] 還不夠,因為子代理程式
政策是在設定檔篩選後才套用。
瀏覽器 Plugin 隨附兩個層級的代理程式指引:
browser工具描述包含精簡且永遠啟用的契約:選擇 正確的設定檔、將參照維持在同一個分頁、使用tabId/標籤進行分頁 目標指定,並在多步驟工作中載入瀏覽器 skill。- 隨附的
browser-automationskill 包含較長的操作迴圈: 先檢查狀態/分頁、標記工作分頁、動作前擷取快照、UI 變更後重新擷取快照、 對過期參照復原一次,並將登入/2FA/captcha 或 攝影機/麥克風阻礙回報為需要手動動作,而不是猜測。
缺少瀏覽器命令或工具
如果升級後openclaw browser 未知、browser.request 不存在,或代理程式回報瀏覽器工具不可用,常見原因是 plugins.allow 清單省略了 browser,且沒有根層級的 browser 設定區塊。加入它:
browser 區塊,例如 browser.enabled=true 或 browser.profiles.<name>,會即使在限制性的 plugins.allow 下也啟用隨附的瀏覽器 Plugin,與通道設定行為一致。plugins.entries.browser.enabled=true 和 tools.alsoAllow: ["browser"] 本身不能取代允許清單成員資格。完全移除 plugins.allow 也會恢復預設值。
設定檔:openclaw 與 user
openclaw:受管理、隔離的瀏覽器(不需要擴充功能)。user:內建的 Chrome MCP 附加設定檔,用於你的實際已登入 Chrome 工作階段。
- 預設:使用隔離的
openclaw瀏覽器。 - 當現有已登入工作階段很重要,且使用者在電腦前可點擊/核准任何附加提示時,
偏好
profile="user"。 - 當你需要特定瀏覽器模式時,
profile是明確覆寫。
browser.defaultProfile: "openclaw"。
設定
瀏覽器設定位於~/.openclaw/openclaw.json。
連接埠與可達性
連接埠與可達性
- 控制服務會繫結到 loopback 上由
gateway.port衍生的連接埠(預設18791= gateway + 2)。覆寫gateway.port或OPENCLAW_GATEWAY_PORT會讓同一家族中的衍生連接埠一起位移。 - 本機
openclaw設定檔會自動指派cdpPort/cdpUrl;只應為遠端 CDP 設定這些值。未設定時,cdpUrl預設為受管理的本機 CDP 連接埠。 remoteCdpTimeoutMs適用於遠端與attachOnlyCDP HTTP 可達性 檢查,以及開啟分頁的 HTTP 請求;remoteCdpHandshakeTimeoutMs適用於 其 CDP WebSocket 交握。localLaunchTimeoutMs是本機啟動且受管理的 Chrome 程序公開其 CDP HTTP 端點的預算。localCdpReadyTimeoutMs是 程序被發現後,CDP websocket 就緒性的後續預算。 在 Raspberry Pi、低階 VPS,或 Chromium 啟動較慢的舊硬體上提高這些值。值必須是最高120000ms 的正整數;無效 設定值會被拒絕。- 重複的受管理 Chrome 啟動/就緒失敗會依 設定檔觸發斷路器。連續失敗數次後,OpenClaw 會短暫暫停新的啟動 嘗試,而不是在每次瀏覽器工具呼叫時都產生 Chromium。修正 啟動問題、在不需要瀏覽器時停用它,或在修復後重新啟動 Gateway。
- 當呼叫端未傳入
timeoutMs時,actionTimeoutMs是瀏覽器act請求的預設預算。用戶端傳輸會加入一個小的寬限視窗,讓長時間等待可以完成,而不是在 HTTP 邊界逾時。 tabCleanup是對主要代理程式瀏覽器工作階段開啟的分頁進行最佳努力清理。子代理程式、cron 和 ACP 生命週期清理仍會在工作階段結束時關閉其明確追蹤的分頁;主要工作階段會保留作用中分頁可重複使用,然後在背景關閉閒置或超量的已追蹤分頁。
SSRF 政策
SSRF 政策
- 瀏覽器導覽與開啟分頁會在導覽前受到 SSRF 防護,並在之後對最終
http(s)URL 進行最佳努力重新檢查。 - 在嚴格 SSRF 模式下,也會檢查遠端 CDP 端點探索和
/json/version探測(cdpUrl)。 - Gateway/提供者的
HTTP_PROXY、HTTPS_PROXY、ALL_PROXY和NO_PROXY環境變數不會自動代理 OpenClaw 管理的瀏覽器。受管理的 Chrome 預設會直接啟動,因此提供者代理設定不會削弱瀏覽器 SSRF 檢查。 - 若要代理受管理的瀏覽器本身,請透過
browser.extraArgs傳入明確的 Chrome 代理旗標,例如--proxy-server=...或--proxy-pac-url=...。嚴格 SSRF 模式會封鎖明確的瀏覽器代理路由,除非已刻意啟用私有網路瀏覽器存取。 browser.ssrfPolicy.dangerouslyAllowPrivateNetwork預設為關閉;只有在刻意信任私有網路瀏覽器存取時才啟用。browser.ssrfPolicy.allowPrivateNetwork仍支援作為舊版別名。
設定檔行為
設定檔行為
attachOnly: true表示永遠不要啟動本機瀏覽器;只有在已有瀏覽器執行時才附加。headless可以全域設定,也可以針對每個本機受管理設定檔設定。每個設定檔的值會覆寫browser.headless,因此一個本機啟動的設定檔可以保持無頭模式,而另一個仍然可見。POST /start?headless=true和openclaw browser start --headless會要求針對本機受管理設定檔進行 一次性的無頭啟動,而不重寫browser.headless或設定檔配置。現有工作階段、僅附加,以及 遠端 CDP 設定檔會拒絕此覆寫,因為 OpenClaw 不會啟動那些 瀏覽器程序。- 在沒有
DISPLAY或WAYLAND_DISPLAY的 Linux 主機上,若環境或設定檔/全域 配置都未明確選擇有頭模式,本機受管理設定檔會 自動預設為無頭模式。openclaw browser status --json會將headlessSource回報為env、profile、config、request、linux-display-fallback或default。 OPENCLAW_BROWSER_HEADLESS=1會強制目前程序的本機受管理啟動使用無頭模式。OPENCLAW_BROWSER_HEADLESS=0會強制一般 啟動使用有頭模式,並在沒有顯示伺服器的 Linux 主機上傳回可操作的錯誤; 明確的start --headless要求仍會在該次啟動中優先生效。executablePath可以全域設定,也可以針對每個本機受管理設定檔設定。每個設定檔的值會覆寫browser.executablePath,因此不同的受管理設定檔可以啟動不同的 Chromium 系瀏覽器。兩種形式都接受~表示你的作業系統家目錄。color(頂層和每個設定檔)會為瀏覽器 UI 著色,讓你可以看出目前啟用的是哪個設定檔。- 預設設定檔是
openclaw(受管理的獨立設定檔)。使用defaultProfile: "user"可選擇使用已登入的使用者瀏覽器。 - 自動偵測順序:如果系統預設瀏覽器是 Chromium 系,則使用它;否則依序為 Chrome → Brave → Edge → Chromium → Chrome Canary。
driver: "existing-session"使用 Chrome DevTools MCP,而不是原始 CDP。不要為該驅動程式設定cdpUrl。- 當現有工作階段設定檔應附加到非預設 Chromium 使用者設定檔(Brave、Edge 等)時,請設定
browser.profiles.<name>.userDataDir。此路徑也接受~表示你的作業系統家目錄。
使用 Brave 或其他 Chromium 系瀏覽器
如果你的系統預設瀏覽器是 Chromium 系(Chrome/Brave/Edge 等), OpenClaw 會自動使用它。設定browser.executablePath 可覆寫
自動偵測。頂層和每個設定檔的 executablePath 值都接受 ~
表示你的作業系統家目錄:
- macOS
- Windows
- Linux
executablePath 只會影響 OpenClaw
啟動的本機受管理設定檔。existing-session 設定檔會改為附加到已在執行的瀏覽器,
而遠端 CDP 設定檔會使用 cdpUrl 後方的瀏覽器。
本機與遠端控制
- 本機控制(預設): Gateway 會啟動 loopback 控制服務,並且可以啟動本機瀏覽器。
- 遠端控制(Node 主機): 在有瀏覽器的機器上執行 Node 主機;Gateway 會將瀏覽器操作代理給它。
- 遠端 CDP: 設定
browser.profiles.<name>.cdpUrl(或browser.cdpUrl)以 附加到遠端 Chromium 系瀏覽器。在此情況下,OpenClaw 不會啟動本機瀏覽器。 - 對於 loopback 上由外部管理的 CDP 服務(例如在
Docker 中發布到
127.0.0.1的 Browserless),也請設定attachOnly: true。沒有attachOnly的 loopback CDP 會被視為本機 OpenClaw 管理的瀏覽器設定檔。 headless只會影響 OpenClaw 啟動的本機受管理設定檔。它不會重新啟動或變更現有工作階段或遠端 CDP 瀏覽器。executablePath遵循相同的本機受管理設定檔規則。在 執行中的本機受管理設定檔上變更它,會將該設定檔標記為需要重新啟動/協調,使 下次啟動使用新的二進位檔。
- 本機受管理設定檔:
openclaw browser stop會停止 OpenClaw 啟動的瀏覽器程序 - 僅附加和遠端 CDP 設定檔:
openclaw browser stop會關閉作用中的 控制工作階段,並釋放 Playwright/CDP 模擬覆寫(viewport、 色彩配置、地區設定、時區、離線模式,以及類似狀態),即使 OpenClaw 並未啟動任何瀏覽器程序
- 查詢權杖(例如
https://provider.example?token=<token>) - HTTP Basic 驗證(例如
https://user:pass@provider.example)
/json/* 端點以及連線到
CDP WebSocket 時會保留驗證資訊。建議使用環境變數或祕密管理工具保存
權杖,而不是將它們提交到配置檔。
Node 瀏覽器代理(零配置預設)
如果你在有瀏覽器的機器上執行 Node 主機,OpenClaw 可以 自動將瀏覽器工具呼叫路由到該 Node,而不需要任何額外的瀏覽器配置。 這是遠端 Gateway 的預設路徑。 注意事項:- Node 主機會透過代理命令公開其本機瀏覽器控制伺服器。
- 設定檔來自 Node 自己的
browser.profiles配置(與本機相同)。 nodeHost.browserProxy.allowProfiles是選用的。將它留空可使用舊版/預設行為:所有已配置的設定檔都可透過代理存取,包括設定檔建立/刪除路由。- 如果你設定
nodeHost.browserProxy.allowProfiles,OpenClaw 會將它視為最低權限邊界:只能以允許清單中的設定檔為目標,且代理介面上的持久設定檔建立/刪除路由會被封鎖。 - 如果你不想使用它,請停用:
- 在 Node 上:
nodeHost.browserProxy.enabled=false - 在 Gateway 上:
gateway.nodes.browser.mode="off"
- 在 Node 上:
Browserless(託管遠端 CDP)
Browserless 是一項託管 Chromium 服務,會透過 HTTPS 和 WebSocket 公開 CDP 連線 URL。OpenClaw 可以使用任一形式,但 對於遠端瀏覽器設定檔,最簡單的選項是使用 Browserless 連線文件中的直接 WebSocket URL。 範例:- 將
<BROWSERLESS_API_KEY>替換為你真正的 Browserless 權杖。 - 選擇與你的 Browserless 帳戶相符的區域端點(請參閱其文件)。
- 如果 Browserless 提供 HTTPS 基底 URL,你可以將它轉換為
wss://以進行直接 CDP 連線,或保留 HTTPS URL,讓 OpenClaw 探索/json/version。
同一主機上的 Browserless Docker
當 Browserless 以 Docker 自架,且 OpenClaw 在主機上執行時,請將 Browserless 視為由外部管理的 CDP 服務:browser.profiles.browserless.cdpUrl 中的位址必須能從
OpenClaw 程序連線。Browserless 也必須宣告相符且可連線的端點;
將 Browserless EXTERNAL 設為同一個 OpenClaw 可公開存取的 WebSocket 基底,例如
ws://127.0.0.1:3000、ws://browserless:3000,或穩定的私有 Docker
網路位址。如果 /json/version 傳回的 webSocketDebuggerUrl 指向
OpenClaw 無法連線的位址,CDP HTTP 可能看起來正常,但 WebSocket
附加仍會失敗。
不要讓 loopback Browserless 設定檔的 attachOnly 保持未設定。沒有
attachOnly 時,OpenClaw 會將 loopback 連接埠視為本機受管理的瀏覽器
設定檔,並可能回報該連接埠正在使用中,但不屬於 OpenClaw。
直接 WebSocket CDP 提供者
有些託管瀏覽器服務會公開直接 WebSocket 端點,而不是 標準的 HTTP 式 CDP 探索(/json/version)。OpenClaw 接受三種
CDP URL 形態,並會自動選擇正確的連線策略:
- HTTP(S) 探索 -
http://host[:port]或https://host[:port]。 OpenClaw 會呼叫/json/version來探索 WebSocket 偵錯工具 URL,然後 連線。沒有 WebSocket 後援。 - 直接 WebSocket 端點 -
ws://host[:port]/devtools/<kind>/<id>或 帶有/devtools/browser|page|worker|shared_worker|service_worker/<id>路徑的wss://...。OpenClaw 會直接透過 WebSocket 交握連線,並完全略過/json/version。 - 裸 WebSocket 根目錄 -
ws://host[:port]或wss://host[:port],且沒有/devtools/...路徑(例如 Browserless、 Browserbase)。OpenClaw 會先嘗試 HTTP/json/version探索(將配置正規化為http/https); 如果探索傳回webSocketDebuggerUrl,就會使用它,否則 OpenClaw 會後援到裸根目錄上的直接 WebSocket 交握。如果宣告的 WebSocket 端點拒絕 CDP 交握,但已配置的裸根目錄 接受它,OpenClaw 也會後援到該根目錄。這讓指向本機 Chrome 的裸ws://仍可連線,因為 Chrome 只接受/json/version中特定每目標路徑上的 WebSocket 升級;同時託管提供者在其探索 端點宣告不適合 Playwright CDP 的短效 URL 時,仍可使用其根 WebSocket 端點。
Browserbase
Browserbase 是一個雲端平台,可執行 內建 CAPTCHA 解決、隱身模式和住宅代理的無頭瀏覽器。- 註冊,並從 Overview dashboard 複製你的 API Key。
- 將
<BROWSERBASE_API_KEY>替換為你真正的 Browserbase API 金鑰。 - Browserbase 會在 WebSocket 連線時自動建立瀏覽器工作階段,因此不需要 手動建立工作階段。
- 免費方案允許一個並行工作階段,以及每月一個瀏覽器小時。 付費方案限制請參閱定價。
- 完整 API 參考、SDK 指南和整合範例請參閱 Browserbase 文件。
安全性
關鍵概念:- 瀏覽器控制僅限迴路;存取流程會經過 Gateway 的驗證或節點配對。
- 獨立的迴路瀏覽器 HTTP API 僅使用共享密鑰驗證:
gateway 權杖 bearer 驗證、
x-openclaw-password,或使用已設定 gateway 密碼的 HTTP Basic 驗證。 - Tailscale Serve 身分標頭和
gateway.auth.mode: "trusted-proxy"不會驗證這個獨立迴路瀏覽器 API。 - 如果已啟用瀏覽器控制,但未設定共享密鑰驗證,OpenClaw
會為該次啟動產生僅限執行階段的 gateway 權杖。如果用戶端需要跨重新啟動保持穩定的密鑰,請明確設定
gateway.auth.token、gateway.auth.password、OPENCLAW_GATEWAY_TOKEN或OPENCLAW_GATEWAY_PASSWORD。 - 當
gateway.auth.mode已經是password、none或trusted-proxy時,OpenClaw 不會自動產生該權杖。 - 將 Gateway 和任何節點主機保留在私人網路(Tailscale)上;避免公開暴露。
- 將遠端 CDP URL/權杖視為機密;優先使用環境變數或機密管理工具。
- 盡可能優先使用加密端點(HTTPS 或 WSS)和短效權杖。
- 避免直接在設定檔中嵌入長效權杖。
設定檔(多瀏覽器)
OpenClaw 支援多個具名設定檔(路由設定)。設定檔可以是:- openclaw-managed:專用的 Chromium 系瀏覽器執行個體,具有自己的使用者資料目錄 + CDP 連接埠
- remote:明確的 CDP URL(在其他位置執行的 Chromium 系瀏覽器)
- existing session:透過 Chrome DevTools MCP 自動連線使用你現有的 Chrome 設定檔
- 如果缺少,會自動建立
openclaw設定檔。 user設定檔是內建的,用於 Chrome MCP 現有工作階段附加。- 除了
user之外,現有工作階段設定檔需要選擇啟用;請使用--driver existing-session建立。 - 本機 CDP 連接埠預設從 18800-18899 分配。
- 刪除設定檔會將其本機資料目錄移到垃圾桶。
?profile=<name>;CLI 使用 --browser-profile。
透過 Chrome DevTools MCP 使用現有工作階段
OpenClaw 也可以透過官方 Chrome DevTools MCP 伺服器附加到正在執行的 Chromium 系瀏覽器設定檔。這會重複使用該瀏覽器設定檔中已開啟的分頁和登入狀態。 官方背景與設定參考: 內建設定檔:user
- 內建的
user設定檔使用 Chrome MCP 自動連線,目標是預設的本機 Google Chrome 設定檔。
userDataDir。
~ 會展開為你的作業系統家目錄:
- 開啟該瀏覽器用於遠端偵錯的檢查頁面。
- 啟用遠端偵錯。
- 保持瀏覽器執行,並在 OpenClaw 附加時核准連線提示。
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
status顯示driver: existing-sessionstatus顯示transport: chrome-mcpstatus顯示running: truetabs列出你已開啟的瀏覽器分頁snapshot從選取的即時分頁傳回 refs
- 目標 Chromium 系瀏覽器版本為
144+ - 已在該瀏覽器的檢查頁面啟用遠端偵錯
- 瀏覽器已顯示附加同意提示,且你已接受
openclaw doctor會遷移舊的 extension-based 瀏覽器設定,並檢查預設自動連線設定檔所需的 Chrome 是否已安裝在本機,但它無法替你啟用瀏覽器端遠端偵錯
- 當你需要使用者已登入的瀏覽器狀態時,使用
profile="user"。 - 如果使用自訂現有工作階段設定檔,請傳入該明確的設定檔名稱。
- 只有在使用者位於電腦前、可以核准附加提示時,才選擇此模式。
- Gateway 或節點主機可以產生
npx chrome-devtools-mcp@latest --autoConnect
- 這條路徑的風險高於隔離的
openclaw設定檔,因為它可以在你已登入的瀏覽器工作階段中操作。 - OpenClaw 不會為這個驅動程式啟動瀏覽器;它只會附加。
- OpenClaw 在此使用官方 Chrome DevTools MCP
--autoConnect流程。如果已設定userDataDir,它會被傳遞以鎖定該使用者資料目錄。 - 現有工作階段可以在選取的主機上附加,或透過已連線的瀏覽器節點附加。如果 Chrome 位於其他位置且未連線任何瀏覽器節點,請改用遠端 CDP 或節點主機。
自訂 Chrome MCP 啟動
當預設的npx chrome-devtools-mcp@latest 流程不符合需求時(離線主機、釘選版本、隨附二進位檔),可為每個設定檔覆寫產生的 Chrome DevTools MCP 伺服器:
| 欄位 | 功能 |
|---|---|
mcpCommand | 要產生的可執行檔,而不是 npx。會原樣解析;支援絕對路徑。 |
mcpArgs | 逐字傳遞給 mcpCommand 的引數陣列。取代預設的 chrome-devtools-mcp@latest --autoConnect 引數。 |
cdpUrl 時,OpenClaw 會略過
--autoConnect,並自動將端點轉送給 Chrome MCP:
http(s)://...→--browserUrl <url>(DevTools HTTP 探索端點)。ws(s)://...→--wsEndpoint <url>(直接 CDP WebSocket)。
userDataDir 不能合併使用:設定 cdpUrl 時,Chrome MCP 啟動會忽略 userDataDir,因為 Chrome MCP 會附加到端點後方正在執行的瀏覽器,而不是開啟設定檔目錄。
現有工作階段功能限制
現有工作階段功能限制
與受管理的
openclaw 設定檔相比,現有工作階段驅動程式限制更多:- 螢幕截圖 - 頁面擷取和
--ref元素擷取可用;CSS--element選取器不可用。--full-page不能與--ref或--element合併使用。頁面或基於 ref 的元素螢幕截圖不需要 Playwright。 - 動作 -
click、type、hover、scrollIntoView、drag和select需要快照 refs(沒有 CSS 選取器)。click-coords點擊可見 viewport 座標,且不需要快照 ref。click僅限左鍵。type不支援slowly=true;請使用fill或press。press不支援delayMs。type、hover、scrollIntoView、drag、select、fill和evaluate不支援每次呼叫逾時。select接受單一值。 - 等待 / 上傳 / 對話方塊 -
wait --url支援精確、子字串和 glob 模式;不支援wait --load networkidle。上傳掛鉤需要ref或inputRef,一次一個檔案,沒有 CSSelement。對話方塊掛鉤不支援逾時覆寫。 - 僅限受管理功能 - 批次動作、PDF 匯出、下載攔截和
responsebody仍需要受管理瀏覽器路徑。
隔離保證
- 專用使用者資料目錄:絕不觸碰你的個人瀏覽器設定檔。
- 專用連接埠:避免使用
9222,以防與開發工作流程衝突。 - 確定性的分頁控制:
tabs會先傳回suggestedTargetId,接著是穩定的tabId控制代碼,例如t1、可選標籤,以及原始targetId。代理程式應重複使用suggestedTargetId;原始 ID 仍可用於偵錯和相容性。
瀏覽器選擇
在本機啟動時,OpenClaw 會選擇第一個可用項目:- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath 覆寫。
平台:
- macOS:檢查
/Applications和~/Applications。 - Linux:檢查
/usr/bin、/snap/bin、/opt/google、/opt/brave.com、/usr/lib/chromium和/usr/lib/chromium-browser底下常見的 Chrome/Brave/Edge/Chromium 位置,另加PLAYWRIGHT_BROWSERS_PATH或~/.cache/ms-playwright底下由 Playwright 管理的 Chromium。 - Windows:檢查常見安裝位置。
控制 API(可選)
為了指令碼和偵錯,Gateway 會公開一個小型僅限迴路的 HTTP 控制 API,以及對應的openclaw browser CLI(快照、refs、等待強化功能、JSON 輸出、偵錯工作流程)。完整參考請參閱
瀏覽器控制 API。
疑難排解
針對 Linux 特定問題(尤其是 snap Chromium),請參閱 瀏覽器疑難排解。 針對 WSL2 Gateway + Windows Chrome 分離主機設定,請參閱 WSL2 + Windows + 遠端 Chrome CDP 疑難排解。CDP 啟動失敗與導覽 SSRF 封鎖
這些是不同的失敗類別,且指向不同的程式碼路徑。- CDP 啟動或就緒失敗表示 OpenClaw 無法確認瀏覽器控制平面正常。
- 導覽 SSRF 封鎖表示瀏覽器控制平面正常,但頁面導覽目標被政策拒絕。
- CDP 啟動或就緒失敗:
Chrome CDP websocket for profile "openclaw" is not reachable after startRemote CDP for profile "<name>" is not reachable at <cdpUrl>- 當已設定迴路外部 CDP 服務但未設定
attachOnly: true時,Port <port> is in use for profile "<name>" but not by openclaw
- 導覽 SSRF 封鎖:
open、navigate、快照或分頁開啟流程在start和tabs仍可運作時,因瀏覽器/網路政策錯誤而失敗
- 如果
start失敗並顯示not reachable after start,請先疑難排解 CDP 就緒狀態。 - 如果
start成功但tabs失敗,控制平面仍然不正常。請將其視為 CDP 可達性問題,而不是頁面導覽問題。 - 如果
start和tabs成功但open或navigate失敗,瀏覽器控制平面已啟動,失敗位於導覽政策或目標頁面。 - 如果
start、tabs和open全部成功,基本受管理瀏覽器控制路徑正常。
- 即使你沒有設定
browser.ssrfPolicy,瀏覽器設定也會預設為 fail-closed SSRF 政策物件。 - 對於本機迴路
openclaw受管理設定檔,CDP 健康檢查會刻意略過 OpenClaw 自己本機控制平面的瀏覽器 SSRF 可達性強制執行。 - 導覽保護是分開的。成功的
start或tabs結果不代表之後的open或navigate目標被允許。
- 預設不要放寬瀏覽器 SSRF 政策。
- 優先使用狹義主機例外,例如
hostnameAllowlist或allowedHostnames,而不是廣泛的私有網路存取。 - 只有在刻意受信任、需要且已審查私有網路瀏覽器存取的環境中,才使用
dangerouslyAllowPrivateNetwork: true。
代理工具 + 控制的運作方式
代理會取得一個工具用於瀏覽器自動化:browser- doctor/status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
browser snapshot會傳回穩定的 UI 樹(AI 或 ARIA)。browser act會使用快照refID 來點擊/輸入/拖曳/選取。browser screenshot會擷取像素(整頁、元素或已標記的 refs)。browser doctor會檢查 Gateway、Plugin、設定檔、瀏覽器與分頁是否就緒。browser接受:profile用於選擇具名瀏覽器設定檔(openclaw、chrome 或遠端 CDP)。target(sandbox|host|node)用於選擇瀏覽器所在位置。- 在沙箱化工作階段中,
target: "host"需要agents.defaults.sandbox.browser.allowHostControl=true。 - 如果省略
target:沙箱化工作階段預設為sandbox,非沙箱工作階段預設為host。 - 如果已連線支援瀏覽器的 Node,除非你固定使用
target="host"或target="node",否則工具可能會自動路由到該 Node。