Skip to content

浏览器自动化

Hermes Agent 提供完整的浏览器自动化工具集,支持多种后端选项,让你能够自动化网页交互、提取信息和执行各种浏览器操作。

Hermes 的浏览器自动化支持多种运行模式:

  • Browserbase 云端模式 - 通过 Browserbase 使用托管云浏览器和反爬虫工具
  • Browser Use 云端模式 - 通过 Browser Use 作为替代云浏览器提供商
  • Firecrawl 云端模式 - 通过 Firecrawl 使用内置爬虫功能的云浏览器
  • Camofox 本地模式 - 通过 Camofox 实现本地反检测浏览(基于 Firefox 的指纹伪装)
  • 本地 Chromium CDP 模式 - 使用 /browser connect 连接到你自己的 Chrome、Brave、Chromium 或 Edge 实例
  • 本地浏览器模式 - 通过 agent-browser CLI 和本地 Chromium 安装

在所有模式下,Agent 都可以导航网站、与页面元素交互、填写表单和提取信息。

  • 多提供商云端执行 - Browserbase、Browser Use 或 Firecrawl - 无需本地浏览器
  • 本地 Chromium 集成 - 通过 CDP 连接到你正在运行的 Chrome、Brave、Chromium 或 Edge 浏览器
  • 内置隐身功能 - 随机指纹、验证码解决、住宅代理(Browserbase)
  • 会话隔离 - 每个任务获得独立的浏览器会话
  • 自动清理 - 不活跃会话在超时后自动关闭
  • 视觉分析 - 截图 + AI 分析实现视觉理解

页面以可访问性树(基于文本的快照)形式呈现,非常适合 LLM Agent。交互元素获得引用 ID(如 @e1@e2),Agent 使用这些 ID 进行点击和输入操作。

如果你拥有付费的 Nous Portal 订阅,可以通过 Tool Gateway 使用浏览器自动化,无需单独的 API 密钥。新安装用户可以运行 hermes setup --portal 登录并一次性启用所有网关工具;现有安装可以通过 hermes modelhermes tools 选择 Nous Subscription 作为浏览器提供商。

要使用 Browserbase 托管的云浏览器,添加以下配置:

Terminal window
# 添加到 ~/.hermes/.env
BROWSERBASE_API_KEY=***
BROWSERBASE_PROJECT_ID=your-project-id-here

browserbase.com 获取你的凭证。

要使用 Browser Use 作为云浏览器提供商,添加:

Terminal window
# 添加到 ~/.hermes/.env
BROWSER_USE_API_KEY=***

browser-use.com 获取你的 API 密钥。如果同时设置了 Browserbase 和 Browser Use 的凭证,Browserbase 优先。

要使用 Firecrawl 作为云浏览器提供商,添加:

Terminal window
# 添加到 ~/.hermes/.env
FIRECRAWL_API_KEY=fc-***

firecrawl.dev 获取你的 API 密钥。然后选择 Firecrawl 作为浏览器提供商:

Terminal window
hermes setup tools
# → Browser Automation → Firecrawl

可选设置:

Terminal window
# 自托管 Firecrawl 实例(默认:https://api.firecrawl.dev)
FIRECRAWL_API_URL=http://localhost:3002
# 会话 TTL(秒)(默认:300)
FIRECRAWL_BROWSER_TTL=600

混合路由:云端处理公网 URL,本地处理局域网/本地主机

Section titled “混合路由:云端处理公网 URL,本地处理局域网/本地主机”

当配置了云提供商时,Hermes 会自动为解析到私有/回环/局域网地址的 URL 启动本地 Chromium 侧车

  • 私有地址:localhost127.0.0.1192.168.x.x10.x.x.x172.16-31.x.x
  • 本地域名:*.local*.lan*.internal
  • IPv6 回环:::1
  • 链路本地:169.254.x.x

公网 URL 继续使用云提供商。这解决了”我在本地开发但使用 Browserbase”的常见工作流程。

此功能默认启用。要禁用它:

~/.hermes/config.yaml
browser:
cloud_provider: browserbase
auto_local_for_private_urls: false

Camofox 是一个自托管的 Node.js 服务器,包装了 Camoufox(一个带有 C++ 指纹伪装的 Firefox 分支)。

Terminal window
# 首先克隆 Camofox 浏览器服务器
git clone https://github.com/jo-inc/camofox-browser
cd camofox-browser
# 使用 Docker 构建并启动(自动检测架构)
make up
# 停止并移除默认容器
make down
# 强制重新构建
make reset

然后在 ~/.hermes/.env 中设置:

Terminal window
CAMOFOX_URL=http://localhost:9377

或通过 hermes tools → Browser Automation → Camofox 进行配置。

默认情况下,每个 Camofox 会话获得随机身份 - Cookie 和登录状态不会在 Agent 重启后保留。要启用持久化浏览器会话,在 ~/.hermes/config.yaml 中添加:

browser:
camofox:
managed_persistence: true

注意:配置路径必须是 browser.camofox.managed_persistence,而不是顶层。

本地 Chromium CDP 连接 (/browser connect)

Section titled “本地 Chromium CDP 连接 (/browser connect)”

你可以通过 Chrome DevTools Protocol (CDP) 将 Hermes 浏览器工具连接到你自己的 Chrome、Brave、Chromium 或 Edge 实例。

注意/browser connect交互式 CLI 斜杠命令 - 不在网关中调度。在 WebUI、Telegram、Discord 或其他网关聊天中运行它时,消息将作为纯文本发送给 Agent,命令不会执行。从终端启动 Hermes(hermeshermes chat)并在那里执行 /browser connect

在 CLI 中使用:

Terminal window
/browser connect # 自动启动/连接到本地的 Chromium 浏览器 http://127.0.0.1:9222
/browser connect ws://host:port # 连接到特定的 CDP 端点
/browser status # 检查当前连接
/browser disconnect # 断开连接并返回云端/本地模式

如果浏览器尚未以远程调试模式运行,Hermes 会尝试自动启动支持的 Chromium 浏览器并启用 --remote-debugging-port=9222

手动启动 Chromium 浏览器

Terminal window
# Linux - Brave
brave-browser \
--remote-debugging-port=9222 \
--user-data-dir=$HOME/.hermes/chrome-debug \
--no-first-run \
--no-default-browser-check &
# Linux - Google Chrome
google-chrome \
--remote-debugging-port=9222 \
--user-data-dir=$HOME/.hermes/chrome-debug \
--no-first-run \
--no-default-browser-check &
# macOS - Brave
"/Applications/Brave Browser.app/Contents/MacOS/Brave Browser" \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/.hermes/chrome-debug" \
--no-first-run \
--no-default-browser-check &
导航到 https://github.com/NousResearch/hermes-agent 并总结页面内容。
打开 https://example.com/contact,填写联系表单,姓名填"张三",邮箱填"zhangsan@example.com",消息填"你好,我对你们的产品感兴趣"。
访问 https://news.ycombinator.com,提取前 10 条新闻的标题和链接。
导航到 https://example.com/dashboard,截图并分析页面布局。
1. 访问 https://github.com/login
2. 点击登录按钮
3. 输入用户名和密码
4. 导航到我的仓库页面
5. 创建一个新 issue,标题为"功能请求:添加浏览器自动化文档"
场景推荐后端原因
快速原型开发Browserbase无需配置,即开即用
反检测需求Camofox内置指纹伪装
本地开发测试CDP 连接使用你的真实浏览器会话
大规模爬取Firecrawl内置爬虫功能
敏感操作本地 Chromium数据不离开本地机器
  1. 不要在公共仓库中提交 API 密钥 - 始终使用 ~/.hermes/.env 文件
  2. 使用专用浏览器配置文件 - 为自动化任务创建独立的浏览器用户数据目录
  3. 限制云提供商访问 - 为 Browserbase 等项目使用受限的 API 密钥
  4. 注意混合路由 - 了解哪些 URL 走云端,哪些走本地
  1. 合理设置超时 - 根据目标网站的响应速度调整 FIRECRAWL_BROWSER_TTL
  2. 使用会话持久化 - 对于需要登录的任务,启用 managed_persistence
  3. 关闭不必要的标签页 - 减少浏览器内存占用
  4. 批量操作 - 将多个小任务合并为一个浏览器会话
问题可能原因解决方案
无法连接到本地浏览器调试端口未开启确保使用 --remote-debugging-port=9222 启动
云浏览器访问本地 URL 失败SSRF 保护启用 auto_local_for_private_urls 或使用本地模式
Camofox 会话不持久配置路径错误确保使用 browser.camofox.managed_persistence
验证码无法通过指纹检测切换到 Camofox 或使用 Browserbase 的反爬虫功能

WSL2 用户:当 Hermes 在 WSL2 中运行而浏览器在 Windows 上时,使用 MCP 桥接:

Terminal window
hermes mcp add chrome-devtools-win --command cmd.exe --args /c npx -y chrome-devtools-mcp@latest --autoConnect --no-usage-statistics

Docker 用户:确保容器可以访问主机的调试端口:

Terminal window
docker run --network host ...

远程服务器:使用 SSH 端口转发访问本地浏览器:

Terminal window
ssh -N -L 9222:127.0.0.1:9222 user@remote