浏览器工具概述
OpenClaw 内置了浏览器工具(Browser Tool),可以让智能体控制一个真实的 Chromium 浏览器实例。这不是简单的 HTTP 请求——智能体能像人一样操作网页:打开页面、点击按钮、填写表单、截图分析、提取文本。 浏览器工具的核心能力: - 导航:打开任意 URL,等待页面加载完成 - 交互:点击元素、输入文本、选择下拉框 - 截图:对整个页面或指定区域截图 - 提取:获取页面文本内容、DOM 结构 - Cookie 管理:保持登录状态,跨会话复用启用浏览器工具
浏览器工具默认是禁用的,需要在配置中显式启用。方法一:配置文件
编辑~/.openclaw/openclaw.json:
``json
{
"tools": {
"allow": ["browser"]
}
}
`
方法二:使用工具组
如果你想启用包含浏览器在内的一组 Web 工具:
`json
{
"tools": {
"allow": ["group:web"]
}
}
`
group:web 包含 browser、web_search、web_fetch 等网络相关工具。
方法三:按智能体配置
如果你运行多个智能体,可以只给特定智能体启用浏览器:
`json
{
"agents": {
"list": [
{
"id": "web-agent",
"tools": {
"allow": ["browser"]
}
},
{
"id": "code-agent",
"tools": {
"deny": ["browser"]
}
}
]
}
}
`
基本操作
导航 — 打开网页
让智能体打开一个网页:
`
请打开 https://example.com 并告诉我页面上有什么内容
`
智能体会使用浏览器工具:
1. 启动 Chromium 实例(如果尚未启动)
2. 导航到目标 URL
3. 等待页面加载完成
4. 提取页面内容或截图
点击 — 交互操作
智能体可以通过 CSS 选择器或文本内容定位并点击元素:
`
打开 https://example.com,点击"登录"按钮
`
浏览器工具支持多种定位方式:
- 文本内容:点击包含特定文本的元素
- CSS 选择器:通过 class、id 等精确定位
- 坐标:点击页面上的特定位置
输入 — 填写表单
智能体可以在输入框中输入文本:
`
在搜索框中输入"OpenClaw 教程",然后点击搜索按钮
`
截图 — 页面分析
截图是浏览器工具最常用的功能之一。智能体可以截取页面截图,然后通过视觉分析理解页面内容:
`
打开 https://example.com 并截图,分析页面的布局结构
`
截图的用途:
- 分析页面 UI 布局
- 检查样式是否正确
- 验证部署后的页面效果
- 捕获错误页面用于排查
提取文本 — 获取内容
智能体可以提取页面上的文本内容:
`
打开这个网页,提取所有文章标题和链接
`
这对于网页抓取、数据采集非常有用。
登录保持
很多网站需要登录才能访问内容。OpenClaw 提供了 browser-login 功能来保持登录状态。
使用 browser-login
`bash
openclaw browser-login
`
这个命令会:
1. 打开一个可见的 Chromium 窗口
2. 你手动登录目标网站
3. 登录完成后,Cookie 会被保存
4. 后续智能体使用浏览器工具时会自动携带这些 Cookie
保存 Cookie
Cookie 保存在 OpenClaw 的数据目录中:
`
~/.openclaw/browser/cookies.json
`
多站点登录
你可以为多个网站保存登录状态:
`bash
登录 GitHub
openclaw browser-login --url https://github.com
登录其他网站
openclaw browser-login --url https://example.com
`
注意事项
- Cookie 有过期时间,过期后需要重新登录
- 不要在共享环境中使用 browser-login,Cookie 包含敏感信息
- 某些网站的反爬机制可能会检测自动化浏览器
Linux 服务器环境排查
在 Linux 服务器上使用浏览器工具,最常见的问题是缺少 Chromium 依赖。
安装 Chromium
Ubuntu/Debian:
`bash
sudo apt update
sudo apt install -y chromium-browser
或者安装 Google Chrome
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt -f install
`
CentOS/RHEL:
`bash
sudo yum install -y chromium
`
安装依赖库
Chromium 需要一些系统库才能运行。如果遇到启动失败,安装以下依赖:
`bash
sudo apt install -y \
libnss3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libdrm2 \
libxkbcommon0 \
libxcomposite1 \
libxdamage1 \
libxrandr2 \
libgbm1 \
libpango-1.0-0 \
libcairo2 \
libasound2
`
无头模式
服务器通常没有图形界面,需要使用无头模式(Headless)。OpenClaw 默认在无头模式下运行浏览器,无需额外配置。
如果遇到问题,可以在配置中显式指定:
`json
{
"browser": {
"headless": true
}
}
`
常见错误排查
错误:Failed to launch the browser process
`bash
检查 Chromium 是否安装
which chromium-browser || which google-chrome
检查依赖是否完整
ldd $(which chromium-browser) | grep "not found"
尝试手动启动
chromium-browser --headless --no-sandbox --dump-dom https://example.com
`
错误:No usable sandbox
在 Docker 容器或某些受限环境中,需要禁用沙箱:
`json
{
"browser": {
"args": ["--no-sandbox", "--disable-setuid-sandbox"]
}
}
`
⚠️ 禁用沙箱会降低安全性,仅在受信任的环境中使用。
WSL2/Windows 远程 CDP 配置
如果你在 WSL2 中运行 OpenClaw,但想使用 Windows 上的 Chrome 浏览器,可以通过 Chrome DevTools Protocol(CDP)远程连接。
步骤一:在 Windows 上启动 Chrome 调试模式
在 Windows 的命令提示符或 PowerShell 中运行:
`powershell
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
`
步骤二:在 WSL2 中配置 OpenClaw
编辑 ~/.openclaw/openclaw.json:
`json
{
"browser": {
"cdpUrl": "ws://host.docker.internal:9222"
}
}
`
如果 host.docker.internal 不可用,使用 Windows 主机的 IP 地址:
`bash
在 WSL2 中获取 Windows 主机 IP
cat /etc/resolv.conf | grep nameserver | awk '{print $2}'
`
然后配置:
`json
{
"browser": {
"cdpUrl": "ws://172.x.x.x:9222"
}
}
`
步骤三:验证连接
`bash
测试 CDP 连接
curl http://172.x.x.x:9222/json/version
`
如果返回 Chrome 版本信息,说明连接成功。
常见使用场景
场景一:网页抓取
让智能体抓取网页数据:
`
请打开 https://news.ycombinator.com,提取首页所有文章的标题和链接,
整理成 Markdown 表格
`
场景二:表单填写
自动化填写重复性表单:
`
打开后台管理页面 https://admin.example.com,
在"新建用户"表单中填写以下信息:
- 用户名:testuser
- 邮箱:test@example.com
- 角色:管理员
然后点击提交
`
场景三:截图分析
检查网页的视觉效果:
`
打开 https://my-site.com,分别在桌面端和移动端视口下截图,
对比两个版本的布局差异
`
场景四:Web 测试
简单的端到端测试:
`
打开 https://my-app.com/login,
输入用户名 admin 和密码 test123,
点击登录按钮,
验证是否跳转到了仪表板页面
`
场景五:竞品分析
分析竞品网站的功能和设计:
`
打开以下三个网站,分别截图并分析它们的首页设计:
1. https://site-a.com
2. https://site-b.com
3. https://site-c.com
对比它们的导航结构、配色方案和 CTA 按钮设计
`
安全注意事项
使用浏览器工具时需要注意以下安全问题:
Cookie 安全
- 不要在共享服务器上保存敏感网站的 Cookie
- 定期清理不再需要的 Cookie
- 使用沙箱模式隔离浏览器环境
访问控制
- 通过 tools.allow / tools.deny 精确控制哪些智能体可以使用浏览器
- 不受信任的技能不应该有浏览器访问权限
- 考虑使用沙箱模式运行浏览器
网站规则
- 遵守目标网站的 robots.txt 和使用条款
- 控制请求频率,避免被封禁
- 不要用浏览器工具进行恶意操作
数据安全
- 浏览器截图可能包含敏感信息
- 提取的页面内容会进入智能体的上下文
- 注意不要将敏感页面内容泄露到日志中
性能优化
复用浏览器实例
OpenClaw 默认会复用浏览器实例,避免每次操作都启动新的 Chromium 进程。如果你发现浏览器占用过多内存,可以配置自动关闭:
`json
{
"browser": {
"idleTimeout": 300
}
}
`
这会在浏览器空闲 5 分钟后自动关闭。
禁用不必要的功能
在服务器环境中,可以禁用一些不需要的浏览器功能来节省资源:
`json
{
"browser": {
"args": [
"--disable-gpu",
"--disable-dev-shm-usage",
"--disable-extensions",
"--no-first-run"
]
}
}
`
小结
浏览器工具让 OpenClaw 智能体具备了"看见"和"操作"网页的能力:
- 通过 tools.allow 启用浏览器工具
- 支持导航、点击、输入、截图、文本提取等操作
- 使用 browser-login` 保持登录状态
- Linux 服务器需要安装 Chromium 和依赖库
- WSL2 可以通过 CDP 连接 Windows 上的 Chrome
- 注意安全:控制访问权限、保护 Cookie、遵守网站规则
#浏览器自动化 #网页操作 #Chromium控制 #截图分析 #龙虾技能库