OpenClaw 可以运行一个由智能体控制的专用 Chrome/Brave/Edge/Chromium 配置文件。 它与你的个人浏览器隔离,通过 Gateway 网关内部的小型本地控制服务进行管理(仅限 loopback)。
新手视角:
openclaw 配置文件不会触及你的个人浏览器配置文件。chrome 配置文件通过扩展中继使用系统默认的 Chromium 浏览器;切换到 openclaw 可使用隔离的托管浏览器。openclaw、work、remote 等)。此浏览器不是你的日常浏览器。它是一个安全、隔离的界面,用于智能体自动化和验证。
openclaw browser --browser-profile openclaw status
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw snapshot
如果出现"Browser disabled",请在配置中启用它(见下文)并重启 Gateway 网关。
openclaw 与 chromeopenclaw:托管的隔离浏览器(无需扩展)。chrome:到你系统浏览器的扩展中继(需要将 OpenClaw 扩展附加到标签页)。如果你希望默认使用托管模式,请设置 browser.defaultProfile: "openclaw"。
浏览器设置位于 ~/.openclaw/openclaw.json。
{
browser: {
enabled: true, // default: true
// cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override
remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms)
remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms)
defaultProfile: "chrome",
color: "#FF4500",
headless: false,
noSandbox: false,
attachOnly: false,
executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",
profiles: {
openclaw: { cdpPort: 18800, color: "#FF4500" },
work: { cdpPort: 18801, color: "#0066CC" },
remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" },
},
},
}
注意事项:
gateway.port 派生(默认:18791,即 gateway + 2)。中继使用下一个端口(18792)。gateway.port 或 OPENCLAW_GATEWAY_PORT),派生的浏览器端口会相应调整以保持在同一"系列"中。cdpUrl 默认为中继端口。remoteCdpTimeoutMs 适用于远程(非 loopback)CDP 可达性检查。remoteCdpHandshakeTimeoutMs 适用于远程 CDP WebSocket 可达性检查。attachOnly: true 表示"永不启动本地浏览器;仅在浏览器已运行时附加"。color + 每个配置文件的 color 为浏览器 UI 着色,以便你能看到哪个配置文件处于活动状态。chrome(扩展中继)。使用 defaultProfile: "openclaw" 来使用托管浏览器。openclaw 配置文件会自动分配 cdpPort/cdpUrl — 仅为远程 CDP 设置这些。如果你的系统默认浏览器是基于 Chromium 的(Chrome/Brave/Edge 等),OpenClaw 会自动使用它。设置 browser.executablePath 可覆盖自动检测:
CLI 示例:
openclaw config set browser.executablePath "/usr/bin/google-chrome"
// macOS
{
browser: {
executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
}
}
// Windows
{
browser: {
executablePath: "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"
}
}
// Linux
{
browser: {
executablePath: "/usr/bin/brave-browser"
}
}
browser.profiles.<name>.cdpUrl(或 browser.cdpUrl)以附加到远程的基于 Chromium 的浏览器。在这种情况下,OpenClaw 不会启动本地浏览器。远程 CDP URL 可以包含认证信息:
https://provider.example?token=<token>)https://user:pass@provider.example)OpenClaw 在调用 /json/* 端点和连接 CDP WebSocket 时会保留认证信息。建议使用环境变量或密钥管理器存储令牌,而不是将其提交到配置文件中。
如果你在有浏览器的机器上运行节点主机,OpenClaw 可以自动将浏览器工具调用路由到该节点,无需任何额外的浏览器配置。这是远程 Gateway 网关的默认路径。
注意事项:
browser.profiles 配置(与本地相同)。nodeHost.browserProxy.enabled=falsegateway.nodes.browser.mode="off"Browserless 是一个托管的 Chromium 服务,通过 HTTPS 暴露 CDP 端点。你可以将 OpenClaw 浏览器配置文件指向 Browserless 区域端点,并使用你的 API 密钥进行认证。
示例:
{
browser: {
enabled: true,
defaultProfile: "browserless",
remoteCdpTimeoutMs: 2000,
remoteCdpHandshakeTimeoutMs: 4000,
profiles: {
browserless: {
cdpUrl: "https://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>",
color: "#00AA00",
},
},
},
}
注意事项:
<BROWSERLESS_API_KEY> 替换为你真实的 Browserless 令牌。核心理念:
远程 CDP 提示:
OpenClaw 支持多个命名配置文件(路由配置)。配置文件可以是:
默认值:
openclaw 配置文件,会自动创建。chrome 配置文件是内置的,用于 Chrome 扩展中继(默认指向 http://127.0.0.1:18792)。所有控制端点接受 ?profile=<name>;CLI 使用 --browser-profile。
OpenClaw 还可以通过本地 CDP 中继 + Chrome 扩展驱动你现有的 Chrome 标签页(无需单独的"openclaw"Chrome 实例)。
完整指南:Chrome 扩展
流程:
cdpUrl 上监听(默认:http://127.0.0.1:18792)。browser 工具控制该标签页。如果 Gateway 网关在其他地方运行,请在浏览器所在机器上运行节点主机,以便 Gateway 网关可以代理浏览器操作。
如果智能体会话是沙箱隔离的,browser 工具可能默认为 target="sandbox"(沙箱浏览器)。
Chrome 扩展中继接管需要主机浏览器控制,因此要么:
agents.defaults.sandbox.browser.allowHostControl: true 并在调用工具时使用 target="host"。openclaw browser extension install
chrome://extensions → 启用"开发者模式"openclaw browser extension path 打印的目录ON)。openclaw browser --browser-profile chrome tabsbrowser 配合 profile="chrome"可选:如果你想要不同的名称或中继端口,创建你自己的配置文件:
openclaw browser create-profile \
--name my-chrome \
--driver extension \
--cdp-url http://127.0.0.1:18792 \
--color "#00AA00"
注意事项:
9222 以防止与开发工作流冲突。targetId 定位标签页,而非"最后一个标签页"。本地启动时,OpenClaw 选择第一个可用的:
你可以使用 browser.executablePath 覆盖。
平台:
/Applications 和 ~/Applications。google-chrome、brave、microsoft-edge、chromium 等。仅用于本地集成,Gateway 网关暴露一个小型的 loopback HTTP API:
GET /、POST /start、POST /stopGET /tabs、POST /tabs/open、POST /tabs/focus、DELETE /tabs/:targetIdGET /snapshot、POST /screenshotPOST /navigate、POST /actPOST /hooks/file-chooser、POST /hooks/dialogPOST /download、POST /wait/downloadGET /console、POST /pdfGET /errors、GET /requests、POST /trace/start、POST /trace/stop、POST /highlightPOST /response/bodyGET /cookies、POST /cookies/set、POST /cookies/clearGET /storage/:kind、POST /storage/:kind/set、POST /storage/:kind/clearPOST /set/offline、POST /set/headers、POST /set/credentials、POST /set/geolocation、POST /set/media、POST /set/timezone、POST /set/locale、POST /set/device所有端点接受 ?profile=<name>。
某些功能(navigate/act/AI 快照/角色快照、元素截图、PDF)需要 Playwright。如果未安装 Playwright,这些端点会返回明确的 501 错误。ARIA 快照和基本截图对于 openclaw 托管的 Chrome 仍然有效。对于 Chrome 扩展中继驱动程序,ARIA 快照和截图需要 Playwright。
如果你看到 Playwright is not available in this gateway build,请安装完整的 Playwright 包(不是 playwright-core)并重启 Gateway 网关,或者重新安装带浏览器支持的 OpenClaw。
如果你的 Gateway 网关在 Docker 中运行,避免使用 npx playwright(npm 覆盖冲突)。改用捆绑的 CLI:
docker compose run --rm openclaw-cli \
node /app/node_modules/playwright-core/cli.js install chromium
要持久化浏览器下载,设置 PLAYWRIGHT_BROWSERS_PATH(例如 /home/node/.cache/ms-playwright)并确保 /home/node 通过 OPENCLAW_HOME_VOLUME 或绑定挂载持久化。参见 Docker。
高层流程:
这种设计使智能体保持在稳定、确定性的接口上,同时让你可以切换本地/远程浏览器和配置文件。
所有命令接受 --browser-profile <name> 以定位特定配置文件。
所有命令也接受 --json 以获得机器可读的输出(稳定的负载)。
基础操作:
openclaw browser statusopenclaw browser startopenclaw browser stopopenclaw browser tabsopenclaw browser tabopenclaw browser tab newopenclaw browser tab select 2openclaw browser tab close 2openclaw browser open https://example.comopenclaw browser focus abcd1234openclaw browser close abcd1234检查:
openclaw browser screenshotopenclaw browser screenshot --full-pageopenclaw browser screenshot --ref 12openclaw browser screenshot --ref e12openclaw browser snapshotopenclaw browser snapshot --format aria --limit 200openclaw browser snapshot --interactive --compact --depth 6openclaw browser snapshot --efficientopenclaw browser snapshot --labelsopenclaw browser snapshot --selector "#main" --interactiveopenclaw browser snapshot --frame "iframe#main" --interactiveopenclaw browser console --level erroropenclaw browser errors --clearopenclaw browser requests --filter api --clearopenclaw browser pdfopenclaw browser responsebody "**/api" --max-chars 5000操作:
openclaw browser navigate https://example.comopenclaw browser resize 1280 720openclaw browser click 12 --doubleopenclaw browser click e12 --doubleopenclaw browser type 23 "hello" --submitopenclaw browser press Enteropenclaw browser hover 44openclaw browser scrollintoview e12openclaw browser drag 10 11openclaw browser select 9 OptionA OptionBopenclaw browser download e12 /tmp/report.pdfopenclaw browser waitfordownload /tmp/report.pdfopenclaw browser upload /tmp/file.pdfopenclaw browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'openclaw browser dialog --acceptopenclaw browser wait --text "Done"openclaw browser wait "#main" --url "**/dash" --load networkidle --fn "window.ready===true"openclaw browser evaluate --fn '(el) => el.textContent' --ref 7openclaw browser highlight e12openclaw browser trace startopenclaw browser trace stop状态:
openclaw browser cookiesopenclaw browser cookies set session abc123 --url "https://example.com"openclaw browser cookies clearopenclaw browser storage local getopenclaw browser storage local set theme darkopenclaw browser storage session clearopenclaw browser set offline onopenclaw browser set headers --json '{"X-Debug":"1"}'openclaw browser set credentials user passopenclaw browser set credentials --clearopenclaw browser set geo 37.7749 -122.4194 --origin "https://example.com"openclaw browser set geo --clearopenclaw browser set media darkopenclaw browser set timezone America/New_Yorkopenclaw browser set locale en-USopenclaw browser set device "iPhone 14"注意事项:
upload 和 dialog 是预备调用;在触发选择器/对话框的点击/按键之前运行它们。upload 也可以通过 --input-ref 或 --element 直接设置文件输入。snapshot:--format ai(安装 Playwright 时的默认值):返回带有数字 ref 的 AI 快照(aria-ref="<n>")。--format aria:返回无障碍树(无 ref;仅供检查)。--efficient(或 --mode efficient):紧凑角色快照预设(interactive + compact + depth + 较低的 maxChars)。browser.snapshotDefaults.mode: "efficient" 以在调用者未传递模式时使用高效快照(参见 Gateway 网关配置)。--interactive、--compact、--depth、--selector)强制使用带有 ref=e12 等 ref 的基于角色的快照。--frame "<iframe selector>" 将角色快照范围限定到 iframe(与 e12 等角色 ref 配合使用)。--interactive 输出一个扁平的、易于选择的交互元素列表(最适合驱动操作)。--labels 添加一个带有叠加 ref 标签的视口截图(打印 MEDIA:<path>)。click/type 等需要来自 snapshot 的 ref(数字 12 或角色 ref e12)。
操作故意不支持 CSS 选择器。OpenClaw 支持两种"快照"风格:
AI 快照(数字 ref):openclaw browser snapshot(默认;--format ai)
openclaw browser click 12、openclaw browser type 23 "hello"。aria-ref 解析 ref。角色快照(角色 ref 如 e12):openclaw browser snapshot --interactive(或 --compact、--depth、--selector、--frame)
[ref=e12](和可选的 [nth=1])的基于角色的列表/树。openclaw browser click e12、openclaw browser highlight e12。getByRole(...)(加上重复项的 nth())解析 ref。--labels 可包含带有叠加 e12 标签的视口截图。ref 行为:
snapshot 并使用新的 ref。--frame 拍摄的,角色 ref 将限定在该 iframe 内,直到下一次角色快照。你可以等待的不仅仅是时间/文本:
openclaw browser wait --url "**/dash"openclaw browser wait --load networkidleopenclaw browser wait --fn "window.ready===true"openclaw browser wait "#main"这些可以组合使用:
openclaw browser wait "#main" \
--url "**/dash" \
--load networkidle \
--fn "window.ready===true" \
--timeout-ms 15000
当操作失败时(例如"not visible"、"strict mode violation"、"covered"):
openclaw browser snapshot --interactiveclick <ref> / type <ref>(在交互模式下优先使用角色 ref)openclaw browser highlight <ref> 查看 Playwright 定位的目标openclaw browser errors --clearopenclaw browser requests --filter api --clearopenclaw browser trace startopenclaw browser trace stop(打印 TRACE:<path>)--json 用于脚本和结构化工具。
示例:
openclaw browser status --json
openclaw browser snapshot --interactive --json
openclaw browser requests --filter api --json
openclaw browser cookies --json
JSON 格式的角色快照包含 refs 加上一个小的 stats 块(lines/chars/refs/interactive),以便工具可以推断负载大小和密度。
这些对于"让网站表现得像 X"的工作流很有用:
cookies、cookies set、cookies clearstorage local|session get|set|clearset offline on|offset headers --json '{"X-Debug":"1"}'(或 --clear)set credentials user pass(或 --clear)set geo <lat> <lon> --origin "https://example.com"(或 --clear)set media dark|light|no-preference|noneset timezone ...、set locale ...set device "iPhone 14"(Playwright 设备预设)set viewport 1280 720browser act kind=evaluate / openclaw browser evaluate 和 wait --fn 在页面上下文中执行任意 JavaScript。提示注入可能会操纵它。如果不需要,请使用 browser.evaluateEnabled=false 禁用它。有关 Linux 特定问题(特别是 snap Chromium),请参阅浏览器故障排除。
智能体获得一个工具用于浏览器自动化:
browser — status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act映射方式:
browser snapshot 返回稳定的 UI 树(AI 或 ARIA)。browser act 使用快照 ref ID 来点击/输入/拖动/选择。browser screenshot 捕获像素(整页或元素)。browser 接受:profile 来选择命名的浏览器配置文件(openclaw、chrome 或远程 CDP)。target(sandbox | host | node)来选择浏览器所在位置。target: "host" 需要 agents.defaults.sandbox.browser.allowHostControl=true。target:沙箱会话默认为 sandbox,非沙箱会话默认为 host。target="host" 或 target="node"。这使智能体保持确定性并避免脆弱的选择器。