Skip to main content

浏览器自动化

Hermes Agent 内置了完整的浏览器自动化工具集,支持多种后端选项:

  • Browserbase 云模式:通过 Browserbase 使用托管的云浏览器及反机器人防护功能
  • Browser Use 云模式:作为另一种云浏览器服务,通过 Browser Use 提供能力
  • Firecrawl 云模式:通过 Firecrawl 使用内置爬取功能的云浏览器
  • Camofox 本地模式:通过 Camofox 实现本地反检测浏览(基于 Firefox 的指纹伪装)
  • 本地 Chrome(CDP 方式):通过 /browser connect 连接你自己的 Chrome 实例
  • 本地浏览器模式:通过 agent-browser CLI 和本地 Chromium 安装实现本地浏览器运行

在所有模式下,代理均可实现网页导航、页面元素交互、表单填写以及信息提取。

概览

页面以 可访问性树(基于文本的快照)形式呈现,非常适合大语言模型(LLM)代理使用。交互元素会分配引用 ID(如 @e1, @e2),代理可据此进行点击或输入操作。

核心功能包括:

  • 多云后端执行 —— 支持 Browserbase、Browser Use 和 Firecrawl,无需本地浏览器
  • 本地 Chrome 集成 —— 通过 CDP 连接到正在运行的 Chrome,实现实时浏览
  • 内置隐身能力 —— 随机指纹、验证码破解、住宅代理(Browserbase)
  • 会话隔离 —— 每个任务拥有独立的浏览器会话
  • 自动清理 —— 闲置会话在超时后自动关闭
  • 视觉分析 —— 截图 + AI 分析,实现对视觉内容的理解

设置

Browserbase 云模式

要使用 Browserbase 管理的云浏览器,请添加:

# Add to ~/.hermes/.env
BROWSERBASE_API_KEY=***
BROWSERBASE_PROJECT_ID=your-project-id-here

可在 browserbase.com 获取对应凭证。

Browser Use 云模式

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

# Add to ~/.hermes/.env
BROWSER_USE_API_KEY=***

可在 browser-use.com 获取 API 密钥。Browser Use 通过 REST API 提供云浏览器能力。如果同时设置了 Browserbase 和 Browser Use 的凭证,Hermes 会优先选择 Browserbase。

Firecrawl 云模式

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

# Add to ~/.hermes/.env
FIRECRAWL_API_KEY=fc-***

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

hermes setup tools
# → Browser Automation → Firecrawl

可选设置:

# Self-hosted Firecrawl instance (default: https://api.firecrawl.dev)
FIRECRAWL_API_URL=http://localhost:3002

# Session TTL in seconds (default: 300)
FIRECRAWL_BROWSER_TTL=600

Camofox 本地模式

Camofox 是一个自托管的 Node.js 服务器,封装了 Camoufox(一个带有 C++ 指纹伪装功能的 Firefox 分支),提供无需云依赖的本地反检测浏览。

# Install and run
git clone https://github.com/jo-inc/camofox-browser && cd camofox-browser
npm install && npm start # downloads Camoufox (~300MB) on first run

# Or via Docker
docker run -d --network host -e CAMOFOX_PORT=9377 jo-inc/camofox-browser

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

CAMOFOX_URL=http://localhost:9377

或通过 hermes tools → 浏览器自动化 → Camofox 进行配置。

CAMOFOX_URL 被设置后,所有浏览器工具将自动通过 Camofox 路由,而非 Browserbase 或 agent-browser。

持久化浏览器会话

默认情况下,每个 Camofox 会话都会获得随机身份——Cookie 和登录状态不会在代理重启后保留。如需启用持久化浏览器会话:

# In ~/.hermes/config.yaml
browser:
camofox:
managed_persistence: true

启用后,Hermes 会向 Camofox 发送一个稳定的“配置文件范围”身份标识。Camofox 服务器将此标识映射到一个持久化的浏览器配置文件目录,因此 Cookie、登录状态和 localStorage 可在重启后继续保留。不同 Hermes 配置文件将获得不同的浏览器配置文件(实现配置文件隔离)。

note

为使持久化生效,Camofox 服务器也必须在服务端配置 CAMOFOX_PROFILE_DIR

VNC 实时查看

当 Camofox 以有头模式运行(可见浏览器窗口)时,它的健康检查响应里会暴露一个 VNC 端口。Hermes 会自动发现这个端口,并把 VNC URL 放进导航响应里,这样代理就可以把链接分享给你,用于实时查看浏览器操作。

本地 Chrome(CDP)方式 (/browser connect)

你也可以完全不使用云浏览器,改为通过 Chrome DevTools Protocol(CDP)把 Hermes 连接到本机正在运行的 Chrome。这个模式很适合想实时观察代理操作、需要复用个人 Cookie/登录态,或单纯想避免云浏览器成本的场景。

在 CLI 中使用:

/browser connect              # Connect to Chrome at ws://localhost:9222
/browser connect ws://host:port # Connect to a specific CDP endpoint
/browser status # Check current connection
/browser disconnect # Detach and return to cloud/local mode

如果 Chrome 未以远程调试模式运行,Hermes 将尝试自动启动它并使用 --remote-debugging-port=9222

tip

手动启动 Chrome 并启用 CDP:

# Linux
google-chrome --remote-debugging-port=9222

# macOS
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222

通过 CDP 连接后,所有浏览器工具(browser_navigatebrowser_click 等)均作用于您实际的 Chrome 实例,而非创建云会话。

本地浏览器模式

如果你没有配置任何云端凭据,也没有使用 /browser connect,Hermes 仍然可以借助本地安装的 Chromium 和 agent-browser 来使用浏览器能力。

可选环境变量

# Residential proxies for better CAPTCHA solving (default: "true")
BROWSERBASE_PROXIES=true

# Advanced stealth with custom Chromium — requires Scale Plan (default: "false")
BROWSERBASE_ADVANCED_STEALTH=false

# Session reconnection after disconnects — requires paid plan (default: "true")
BROWSERBASE_KEEP_ALIVE=true

# Custom session timeout in milliseconds (default: project default)
# Examples: 600000 (10min), 1800000 (30min)
BROWSERBASE_SESSION_TIMEOUT=600000

# Inactivity timeout before auto-cleanup in seconds (default: 120)
BROWSER_INACTIVITY_TIMEOUT=120

安装 agent-browser CLI

npm install -g agent-browser
# Or install locally in the repo:
npm install
info

要使用浏览器能力,browser 工具集必须出现在当前配置的 toolsets 列表中。你也可以直接运行 hermes config set toolsets '["hermes-cli", "browser"]' 来启用它。

可用工具

browser_navigate

导航至指定 URL。必须在调用其他浏览器工具前执行。用于初始化 Browserbase 会话。

Navigate to https://github.com/NousResearch
tip

对于简单的信息获取,建议优先使用 web_searchweb_extract —— 它们更快且成本更低。仅当需要 与页面交互(点击按钮、填写表单、处理动态内容)时才使用浏览器工具。

browser_snapshot

获取当前页面的可访问性树文本快照。返回包含 ref ID(如 @e1, @e2)的交互元素,可用于 browser_clickbrowser_type

  • full=false(默认):紧凑视图,仅显示交互元素
  • full=true:完整页面内容

超过 8000 字符的快照将由 LLM 自动摘要。

browser_click

根据快照中的 ref ID 点击某个元素。

Click @e5 to press the "Sign In" button

browser_type

在输入框中输入文本。先清空原内容,再输入新文本。

Type "hermes agent" into the search field @e3

browser_scroll

上下滚动页面以查看更多内容。

Scroll down to see more results

browser_press

按下键盘上的某个键。适用于提交表单或导航操作。

Press Enter to submit the form

支持的按键:Enter, Tab, Escape, ArrowDown, ArrowUp,以及其他更多。

browser_back

返回上一页(浏览器历史记录)。

browser_get_images

列出当前页面的所有图片及其 URL 和替代文本。有助于查找待分析的图片。

browser_vision

截取屏幕快照并使用视觉 AI 进行分析。当文本快照无法捕捉重要视觉信息时使用——尤其适用于验证码、复杂布局或视觉验证挑战。

截图会被持久保存,返回路径也会和 AI 分析结果一起给出。在 Telegram、Discord、Slack、WhatsApp 等消息平台中,你可以要求代理把截图发出来,它会通过 MEDIA: 机制以原生图片附件的形式发送。

What does the chart on this page show?

截图存储在 ~/.hermes/cache/screenshots/,并在 24 小时后自动清理。

browser_console

获取当前页面的浏览器控制台输出(日志/警告/错误信息)及未捕获的 JavaScript 异常。对于检测未在可访问性树中体现的静默 JS 错误至关重要。

Check the browser console for any JavaScript errors

使用 clear=True 可清除控制台,使后续调用仅显示新消息。

实用示例

填写网页表单

User: Sign up for an account on example.com with my email john@example.com

Agent workflow:
1. browser_navigate("https://example.com/signup")
2. browser_snapshot() → sees form fields with refs
3. browser_type(ref="@e3", text="john@example.com")
4. browser_type(ref="@e5", text="SecurePass123")
5. browser_click(ref="@e8") → clicks "Create Account"
6. browser_snapshot() → confirms success

动态内容调研

User: What are the top trending repos on GitHub right now?

Agent workflow:
1. browser_navigate("https://github.com/trending")
2. browser_snapshot(full=true) → reads trending repo list
3. Returns formatted results

会话录制

自动将浏览器会话录制为 WebM 视频文件:

browser:
record_sessions: true # default: false

启用后,录制将在首次调用 browser_navigate 时自动开始,并在会话关闭时保存至 ~/.hermes/browser_recordings/。支持本地和云模式(Browserbase)。超过 72 小时的录制文件将自动清理。

隐身功能

Browserbase 提供一组自动隐身能力:

特性默认状态说明
基础隐身模式永久开启随机指纹、视口随机化、验证码自动破解
住宅代理开启通过住宅 IP 路由,提升访问成功率
高级隐身模式关闭使用自定义 Chromium 构建,需订阅 Scale 计划
保持连接开启网络中断后自动重连会话
note

如果你的套餐不支持这些付费功能,Hermes 会自动降级处理,先禁用 keepAlive,再关闭代理功能,以确保免费套餐下仍然可以正常浏览。

会话管理

  • 每个任务均通过 Browserbase 获得独立的浏览器会话
  • 会话在无操作后自动清理(默认:2分钟)
  • 后台线程每 30 秒检查一次过期会话
  • 程序退出时执行紧急清理,防止会话残留
  • 会话通过 Browserbase API 释放(状态为 REQUEST_RELEASE

限制说明

  • 仅支持文本交互 —— 依赖无障碍树,不基于像素坐标
  • 快照大小限制 —— 大型页面可能被截断,或由 LLM 自动压缩到 8000 字符以内
  • 会话超时 —— 云端会话会按你所选提供商的套餐规则到期
  • 费用成本 —— 云端会话会消耗提供商额度;对话结束或长时间无操作后会自动清理。如需免费本地浏览,可使用 /browser connect
  • 无法下载文件 —— 浏览器中无法执行文件下载操作