从零开始:在腾讯云服务器上部署 OpenClaw AI 助手(2)—— 浏览器自动化功能配置

让 AI 助手拥有"眼睛"和"双手",实现网页自动化操控

前言

上一篇博客中,我们成功在腾讯云服务器上部署了 OpenClaw AI 助手,实现了基本的对话功能。但那时的 AI 就像一个"只会说话的大脑"——能理解你的问题,却无法真正操作电脑。

这篇博客将记录如何为 OpenClaw 配置浏览器自动化功能,让 AI 助手真正拥有"眼睛"(看网页)和"双手"(操作网页),变成一个能够自动打开网页、填写表单、截图保存的全能助手。

为什么需要浏览器功能?

对于我们科研牛马来说,这个功能简直是福音:

场景 传统方式 AI 助手方式
批量下载论文 手动一个个点击下载 “帮我把这个会议的所有论文下载下来”
监控实验结果 定时手动刷新页面截图 “每小时截图一次训练曲线”
填写报销表单 对着 Excel 一个个复制粘贴 “把这个表格的数据填到报销系统”
抢课选课 疯狂 F5 刷新 “课程有空位就帮我选上”

环境说明

接续上一篇博客的环境:

配置项 参数
操作系统 Ubuntu 24.04 LTS
OpenClaw 版本 2026.1.29
Node.js v22.22.0
AI 模型 阿里云 DashScope qwen-flash

第一步:检查浏览器服务状态

首先,让我们看看 OpenClaw 的浏览器服务是否正常:

openclaw browser --browser-profile openclaw status

如果你看到类似这样的输出:

profile: openclaw
enabled: true
running: false
cdpReady: false
detectedBrowser: Chromium
detectedPath: /usr/bin/chromium-browser

这说明浏览器服务已启用,但检测到的是 /usr/bin/chromium-browser

🚨 问题:Ubuntu 24.04 的 Chromium 是 Snap 版本

这里有一个巨大的坑:Ubuntu 24.04 默认的 /usr/bin/chromium-browser 实际上是一个 Snap stub(存根),而不是真正的浏览器可执行文件。

我们可以验证一下:

file /usr/bin/chromium-browser

输出可能是:

/usr/bin/chromium-browser: POSIX shell script, ASCII text executable

看到了吗?它只是一个 shell 脚本,用于启动 Snap 容器中的 Chromium。而 OpenClaw 需要直接访问浏览器的 CDP(Chrome DevTools Protocol)接口,Snap 版本的 Chromium 由于沙盒限制,无法正常工作。

症状表现:在 TUI 中让 AI 打开网页,会收到这样的错误:

我无法访问浏览器控制服务。请先启动 OpenClaw 网关...

查看 Gateway 日志虽然显示 Browser control service ready,但实际启动浏览器时会失败。

第二步:安装 Google Chrome

解决方案是安装官方的 Google Chrome,而不是 Snap 版本的 Chromium。

下载安装包

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

命令解释

  • wget:命令行下载工具
  • 这个 URL 会自动下载最新稳定版的 Google Chrome

安装 Chrome

sudo dpkg -i google-chrome-stable_current_amd64.deb

命令解释

  • dpkg -i:安装 .deb 格式的软件包
  • sudo:以管理员权限运行

大概率会遇到依赖问题:

dpkg: dependency problems prevent configuration of google-chrome-stable:
 google-chrome-stable depends on fonts-liberation; however:
  Package fonts-liberation is not installed.
 google-chrome-stable depends on libgtk-3-0 (>= 3.9.10) | libgtk-4-1; however:
  ...

安装缺失的依赖

sudo apt --fix-broken install -y

命令解释

  • apt --fix-broken install:自动检测并安装所有缺失的依赖包
  • -y:自动确认安装,无需手动输入 yes

这个命令会自动安装一大堆依赖(约 93 个包,184MB),包括:

  • fonts-liberation:字体库
  • libgtk-3-0:GTK 图形库
  • libvulkan1:图形渲染库
  • xdg-utils:桌面集成工具
  • 等等…

验证安装

which google-chrome-stable
# 输出:/usr/bin/google-chrome-stable

google-chrome-stable --version
# 输出:Google Chrome 144.0.7559.132

第三步:安装中文字体

这是一个容易被忽略但非常重要的步骤。

服务器默认没有中文字体,如果直接截图中文网页,所有中文都会显示为 □□□□(方块乱码):
在这里插入图片描述

安装中文字体:

sudo apt install -y fonts-noto-cjk fonts-wqy-zenhei

命令解释

  • fonts-noto-cjk:Google 的 Noto 字体,支持中日韩文字,字体质量高
  • fonts-wqy-zenhei:文泉驿正黑,经典的开源中文字体

为什么需要两个字体包?

  • Noto CJK 覆盖面广,但某些生僻字可能缺失
  • 文泉驿 作为补充,确保中文显示完整

安装后无需重启系统,但需要重启浏览器服务才能生效。

第四步:配置 OpenClaw 浏览器设置

编辑 OpenClaw 配置文件:

nano ~/.openclaw/openclaw.json

找到或添加 browser 配置段:

{
  "browser": {
    "enabled": true,
    "executablePath": "/usr/bin/google-chrome-stable",
    "headless": true,
    "noSandbox": true,
    "defaultProfile": "openclaw"
  }
}

配置项详解

配置项 说明
enabled true 启用浏览器功能
executablePath /usr/bin/google-chrome-stable 指定 Chrome 可执行文件路径,避免使用 Snap 版
headless true 无头模式,服务器没有显示器,必须开启
noSandbox true 禁用 Chrome 沙盒,在容器/服务器环境中需要
defaultProfile "openclaw" 使用 OpenClaw 托管的独立浏览器配置文件

关于 Headless 模式

什么是无头浏览器?

“无头”(Headless)指的是没有图形界面的浏览器。它是完整的浏览器引擎,可以:

  • ✅ 加载网页、执行 JavaScript
  • ✅ 渲染页面、截图
  • ✅ 填写表单、点击按钮
  • ❌ 但不会在屏幕上显示窗口

这正是服务器环境需要的——我们不需要"看到"浏览器窗口,只需要它在后台默默工作。

关于 noSandbox

Chrome 默认会启用沙盒机制来隔离渲染进程,提高安全性。但在服务器环境(尤其是 Docker 容器或某些 VPS)中,沙盒可能因为权限问题无法正常工作。

设置 noSandbox: true 会禁用这个沙盒。注意:这会降低一定的安全性,但对于自己控制的服务器来说是可以接受的。

关于 Browser Profile

OpenClaw 支持两种浏览器模式:

Profile 说明 使用场景
chrome 通过 Chrome 扩展连接你的本地浏览器 需要使用已登录的账号
openclaw OpenClaw 托管的独立浏览器实例 服务器环境,自动化任务

我们选择 openclaw 模式,因为:

  1. 服务器没有图形界面,无法运行带扩展的 Chrome
  2. 独立实例更安全,不会影响个人浏览数据
  3. 可以完全由 OpenClaw 控制生命周期

第五步:重启服务并测试

重启 Gateway

openclaw gateway restart

命令解释

  • 重启 OpenClaw 的核心服务,使新配置生效
  • Gateway 会重新加载浏览器配置

检查浏览器状态

openclaw browser --browser-profile openclaw status

命令解释

  • openclaw browser:浏览器控制子命令
  • --browser-profile openclaw:指定使用 openclaw 配置文件(托管模式),而不是 chrome(扩展模式)
  • status:查看当前浏览器服务的运行状态

正确的输出应该是:

profile: openclaw
enabled: true
running: false
cdpPort: 18800
cdpUrl: http://127.0.0.1:18800
browser: unknown
detectedBrowser: custom
detectedPath: /usr/bin/google-chrome-stable
profileColor: #FF4500

关键是 detectedPath 现在指向了我们安装的 Google Chrome。

启动浏览器

openclaw browser --browser-profile openclaw start

成功输出:

🦞 browser [openclaw] running: true

测试打开网页

openclaw browser --browser-profile openclaw open https://www.baidu.com

测试截图

openclaw browser --browser-profile openclaw screenshot

输出:

MEDIA:~/.openclaw/media/browser/c46a073a-69b4-431d-915c-cede9ad355eb.png

可以用 scp 把截图下载到本地查看,确认中文显示正常。

第六步:在 TUI 中通过对话控制浏览器

现在让我们测试最激动人心的功能——用自然语言控制浏览器

重置会话(重要!)

openclaw sessions reset main

为什么需要重置会话?

OpenClaw 的 AI 在会话开始时会加载可用工具列表。如果之前的会话是在浏览器配置完成前创建的,AI 可能没有正确识别到浏览器工具。重置会话可以让 AI 重新加载最新的工具配置。

进入 TUI 对话界面

openclaw tui

测试对话

输入:

用浏览器打开百度的首页,然后截个图,并把图片存储在 /home/ubuntu/screenshots/ 路径中

AI 的回复:

I've successfully completed your request:

1. Opened the Baidu homepage in the browser
2. Took a screenshot of the page
3. Saved the screenshot to /home/ubuntu/screenshots/baidu_homepage.png

The image has been stored in the specified directory as requested.

🎉 成功! AI 助手现在可以理解自然语言指令,自动操作浏览器了!

完整配置文件参考

以下是包含浏览器配置的完整 ~/.openclaw/openclaw.json 示例:

{
  "gateway": {
    "mode": "local",
    "auth": {
      "mode": "token",
      "token": "your-token-here"
    },
    "port": 18789,
    "bind": "loopback"
  },
  "browser": {
    "enabled": true,
    "executablePath": "/usr/bin/google-chrome-stable",
    "headless": true,
    "noSandbox": true,
    "defaultProfile": "openclaw"
  },
  "models": {
    "providers": {
      "dashscope": {
        "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
        "apiKey": "your-api-key",
        "api": "openai-completions",
        "models": [
          {
            "id": "qwen-flash",
            "name": "Qwen Flash",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0.15,
              "output": 1.5
            },
            "contextWindow": 1000000,
            "maxTokens": 32768
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "dashscope/qwen-flash"
      }
    }
  }
}

常用命令速查

命令 作用
openclaw browser --browser-profile openclaw status 查看浏览器状态
openclaw browser --browser-profile openclaw start 启动浏览器
openclaw browser --browser-profile openclaw stop 停止浏览器
openclaw browser --browser-profile openclaw open <URL> 打开网页
openclaw browser --browser-profile openclaw screenshot 截图
openclaw browser --browser-profile openclaw snapshot 获取页面结构(用于自动化操作)
openclaw browser --browser-profile openclaw tabs 列出所有标签页
openclaw sessions reset main 重置会话(修改配置后执行)

踩坑记录

坑 1:Ubuntu 24.04 的 Snap Chromium 无法使用

现象:Gateway 日志显示 Browser control service ready,但实际启动浏览器时失败。

原因:Ubuntu 24.04 的 /usr/bin/chromium-browser 是 Snap stub,不是真正的可执行文件。Snap 版本由于沙盒隔离,无法暴露 CDP 端口。

解决:安装官方 Google Chrome,并在配置中指定 executablePath

坑 2:配置文件中使用了不存在的字段

现象openclaw gateway restart 时报错:

Invalid config: browser: Unrecognized key: "mode"

原因:盲目添加了 "mode": "managed" 字段,但 OpenClaw 的配置 schema 中没有这个字段。

解决:查阅官方文档,使用正确的配置字段。可以用 openclaw doctor --fix 自动移除无效字段。

坑 3:中文显示为方块

现象:截图中所有中文都显示为 □□□□。

原因:服务器没有安装中文字体。

解决:安装 fonts-noto-cjkfonts-wqy-zenhei

坑 4:修改配置后 AI 仍然无法使用浏览器

现象:配置正确,CLI 测试正常,但 TUI 对话中 AI 说"无法访问浏览器"。

原因:会话缓存了旧的工具列表。

解决:执行 openclaw sessions reset main 重置会话。

坑 5:Chrome 依赖缺失

现象dpkg -i 安装 Chrome 时报依赖错误。

原因:Ubuntu Server 精简版默认没有安装 GUI 相关库。

解决:执行 sudo apt --fix-broken install -y 自动安装所有依赖。

应用场景:科研牛马的福音

配置好浏览器功能后,你可以让 AI 助手帮你完成这些繁琐的工作:

1. 自动化数据采集

帮我打开 arXiv,搜索 "large language model",把前 10 篇论文的标题和链接保存到文件

2. 定时监控与截图

结合 OpenClaw 的 cron 功能:

每小时截图一次我的 TensorBoard 训练曲线页面

3. 批量表单填写

读取这个 Excel 文件,把每一行的数据填写到报销系统的表单中

4. 网页内容提取

打开这个网页,提取所有表格数据并保存为 CSV

5. 自动化测试

打开我们的 Web 应用,依次测试登录、创建项目、删除项目功能,截图记录每一步

总结

经过这次配置实践,我们为 OpenClaw AI 助手添加了强大的浏览器自动化能力:

能力 说明
🌐 网页浏览 打开任意网页,支持 JavaScript 渲染
📸 截图保存 全页面或指定元素截图
🖱️ 自动操作 点击、输入、滚动、拖拽
📋 内容提取 获取页面文本、表格、链接
🗣️ 自然语言控制 用对话的方式指挥浏览器

关键收获

  1. 理解了 Snap 应用与原生应用的区别
  2. 学会了在无头服务器环境配置浏览器
  3. 掌握了 OpenClaw 浏览器配置的各个参数含义
  4. 体验了 AI + 浏览器自动化的强大能力

下一篇博客计划配置 Telegram 频道,实现手机随时随地与 AI 助手对话,敬请期待!


本文记录于 2026 年 2 月 5 日,基于 OpenClaw v2026.1.29 版本

系列文章


如果这篇文章对你有帮助,欢迎点赞、收藏、关注!有问题可以在评论区交流。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐