浏览器自动化
Hermes Agent 内置了完整的浏览器自动化工具集,支持多种后端选项:
- Browserbase 云模式 通过 Browserbase 使用托管的云浏览器和反机器人防护工具
- Browser Use 云模式 通过 Browser Use 作为替代的云浏览器服务提供商
- Firecrawl 云模式 通过 Firecrawl 使用内置爬取功能的云浏览器
- Camofox 本地模式 通过 Camofox 实现本地反检测浏览(基于 Firefox 的指纹伪装)
- 本地 Chrome 通过 CDP —— 使用
/browser connect连接您自己的 Chrome 实例 - 本地浏览器模式 通过
agent-browserCLI 和本地 Chromium 安装实现
在所有模式下,该代理均可实现网站导航、页面元素交互、表单填写以及信息提取。
概述
页面以 可访问性树(基于文本的快照)形式表示,非常适合 LLM 代理使用。交互元素会分配引用 ID(如 @e1、@e2),代理使用这些 ID 进行点击和输入。
主要功能:
- 多提供商云执行 —— 支持 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 的凭证,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 配置文件将获得不同的浏览器配置文件(配置文件隔离)。
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。
手动启动 Chrome 并启用 CDP:
# Linux
google-chrome --remote-debugging-port=9222
# macOS
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222
通过 CDP 连接后,所有浏览器工具(如 browser_navigate、browser_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
browser 工具集必须包含在您配置的 toolsets 列表中,或通过 hermes config set toolsets '["hermes-cli", "browser"]' 启用。
可用工具
browser_navigate
导航至指定 URL。必须在调用其他任何浏览器工具之前调用。用于初始化 Browserbase 会话。
Navigate to https://github.com/NousResearch
对于简单的信息检索,优先使用 web_search 或 web_extract —— 它们速度更快且成本更低。当需要与页面交互(如点击按钮、填写表单、处理动态内容)时,才使用浏览器工具。
browser_snapshot
获取当前页面的基于文本的可访问性树快照。返回可交互元素及其引用 ID(如 @e1、@e2),可用于 browser_click 和 browser_type。
full=false(默认):紧凑视图,仅显示可交互元素full=true:完整页面内容
超过 8000 个字符的快照将由 LLM 自动摘要。
browser_click
通过快照中提供的引用 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 进行分析。当文本快照无法捕捉重要视觉信息时使用——尤其适用于验证码(CAPTCHA)、复杂布局或视觉验证挑战。
快照将被持久保存,返回文件路径及 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 计划 |
| 保持连接 | 开启 | 网络中断后自动重连 |
如果您的计划未包含付费功能,Hermes 会自动降级处理——首先禁用 keepAlive,然后禁用代理,确保免费计划下仍可正常浏览。
会话管理
- 每个任务通过 Browserbase 获得一个隔离的浏览器会话
- 会话在不活动后自动清理(默认:2 分钟)
- 后台线程每 30 秒检查一次过期会话
- 进程退出时执行紧急清理,防止会话孤儿
- 会话通过 Browserbase API 释放(
REQUEST_RELEASE状态)
限制
- 基于文本的交互 —— 依赖可访问性树,而非像素坐标
- 快照大小 —— 大型页面可能在 8000 字符处被截断或由 LLM 摘要
- 会话超时 —— 云会话根据您的服务提供商计划设置过期
- 成本 —— 云会话消耗服务提供商积分;会话在对话结束或不活动后自动清理。如需免费本地浏览,请使用
/browser connect - 无法下载文件 —— 无法从浏览器下载文件