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

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

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

前言

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

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

为什么需要浏览器功能?

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

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

环境说明

接续上一篇博客的环境:

配置项参数
操作系统Ubuntu 24.04 LTS
OpenClaw 版本2026.1.29
Node.jsv22.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: ... 

安装缺失的依赖

sudoapt --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

第三步:安装中文字体

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

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

在这里插入图片描述

安装中文字体:

sudoaptinstall -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"}}

配置项详解

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

关于 Headless 模式

什么是无头浏览器?

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

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

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

关于 noSandbox

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

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

关于 Browser Profile

OpenClaw 支持两种浏览器模式:

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

我们选择 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 版本

系列文章


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

Read more

AI生成图片R18提示词:新手入门指南与最佳实践

快速体验 在开始今天关于 AI生成图片R18提示词:新手入门指南与最佳实践 的探讨之前,我想先分享一个最近让我觉得很有意思的全栈技术挑战。 我们常说 AI 是未来,但作为开发者,如何将大模型(LLM)真正落地为一个低延迟、可交互的实时系统,而不仅仅是调个 API? 这里有一个非常硬核的动手实验:基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。 从0到1构建生产级别应用,脱离Demo,点击打开 从0打造个人豆包实时通话AI动手实验 AI生成图片R18提示词:新手入门指南与最佳实践 背景与痛点 对于刚接触AI生成图片的新手来说,使用R18提示词往往会遇到几个典型问题: 1. 内容合规性把控困难:多数平台对生成内容有严格限制,容易触发审核机制导致生成失败 2. 提示词效果不稳定:相同的提示词在不同模型或参数下可能产生差异巨大的结果

By Ne0inhk
蓝耘平台介绍:算力赋能AI创新的智算云平台

蓝耘平台介绍:算力赋能AI创新的智算云平台

一、蓝耘平台是什么 蓝耘智算云(LY Cloud)是蓝耘科技打造的现代化GPU算力云服务平台,深度整合自研DS满血版大模型技术与分布式算力调度能力,形成"模型+算力"双轮驱动的技术生态。平台核心优势如下: 平台定位与技术架构 核心目标:为工程师、科研人员及企业提供高效、低成本的算力支持,加速AIGC产业创新。 技术架构:基于Kubernetes设计,支持大规模GPU加速工作负载,算力速度较传统云服务商提升35%,成本降低30%。采用自研分布式计算框架支持DS满血版模型的高效运行,技术创新包括: 混合精度训练:通过FP16/FP8混合计算,节省40%显存占用 动态资源分配:基于实时负载的算力弹性调度算法,资源利用率达92% 上下文扩展技术:支持128k tokens长文本处理,集成滑动窗口注意力与记忆压缩算法 基础设施: 硬件资源:配备丰富的英伟达GPU系列(支持高并发训练与推理),接入中国T3+数据中心,保障稳定性与低时延。 存储与网络:分布式容错存储(三重复制机制),支持按需扩展;

By Ne0inhk
LangChain实战:工具调用+结构化输出,让AI从“聊天“变“干活“

LangChain实战:工具调用+结构化输出,让AI从“聊天“变“干活“

文章目录 * 工具调用(Tool Calling) * 1.Tool创建的三种方式 * 1.1. **直接用 `@tool` 装饰函数** * 1.2. **用 `@tool` + 自定义参数结构(Pydantic)** * 1.3. **继承 `BaseTool` 写类** * 2. 本地自定义工具 * 2.1 定义工具 * 2.2 绑定工具到模型 * 2.3 工具调用流程 * 2.4 AI 响应结构解析 * 3. 第三方工具集成(Tavily搜索([https://www.tavily.com/](https://www.tavily.com/))) * 3.1

By Ne0inhk
【AI】学习大语言模型原理必看的 10 篇论文

【AI】学习大语言模型原理必看的 10 篇论文

🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人等方向学习者 ❄️个人专栏:《AI》 ✨ 永远相信美好的事情即将发生 文章目录 * 前言 * 一、Transformer * 二、GPT-3 * 三、InstructGPT * 四、Sparrow * 五、RLHF * 六、TATAMER * 七、PPO * 八、In-Context Learning * 8.1 Why Can GPT Learn In-Context * 8.2 What learning algorithm is in-context learning * 九、Prompt * 总结 前言 从 Transformer

By Ne0inhk