跳到主要內容

瀏覽器自動化

Hermes Agent 內置了完整的瀏覽器自動化工具集,支持多種後端選項:

  • Browserbase 雲模式 通過 Browserbase 使用託管的雲瀏覽器和反機器人防護工具
  • Browser Use 雲模式 通過 Browser Use 作為替代的雲瀏覽器服務提供商
  • Firecrawl 雲模式 通過 Firecrawl 使用內置爬取功能的雲瀏覽器
  • Camofox 本地模式 通過 Camofox 實現本地反檢測瀏覽(基於 Firefox 的指紋偽裝)
  • 本地 Chrome 通過 CDP —— 使用 /browser connect 連接您自己的 Chrome 實例
  • 本地瀏覽器模式 通過 agent-browser CLI 和本地 Chromium 安裝實現

在所有模式下,該 Agent 均可實現網站導航、頁面元素交互、表單填寫以及信息提取。

概述

頁面以 可訪問性樹(基於文本的快照)形式表示,非常適合 LLM Agent 使用。交互元素會分配引用 ID(如 @e1@e2),Agent 使用這些 ID 進行點擊和輸入。

主要功能:

  • 多提供商雲執行 —— 支持 Browserbase、Browser Use 或 Firecrawl —— 無需本地瀏覽器
  • 本地 Chrome 集成 —— 通過 CDP 連接到您正在運行的 Chrome,實現實時瀏覽
  • 內置隱身能力 —— 隨機指紋、驗證碼破解、住宅 Agent(Browserbase)
  • 會話隔離 —— 每個任務擁有獨立的瀏覽器會話
  • 自動清理 —— 會話在超時後自動關閉
  • 視覺分析 —— 截圖 + AI 分析,實現視覺理解

設置

Browserbase 雲模式

要使用 Browserbase 管理的雲瀏覽器,請添加:

# 添加到“0”
BROWSERBASE_API_KEY=***
BROWSERBASE_PROJECT_ID=your-project-id-here

browserbase.com 獲取您的憑證。

Browser Use 雲模式

要將 Browser Use 作為您的雲瀏覽器服務提供商,請添加:

# 添加到“0”
BROWSER_USE_API_KEY=***

browser-use.com 獲取您的 API 密鑰。Browser Use 通過其 REST API 提供雲瀏覽器服務。如果同時設置了 Browserbase 和 Browser Use 的憑證,Browserbase 優先級更高。

Firecrawl 雲模式

要使用 Firecrawl 作為您的雲瀏覽器服務提供商,請添加:

# 添加到“0”
FIRECRAWL_API_KEY=fc-***

firecrawl.dev 獲取您的 API 密鑰。然後選擇 Firecrawl 作為您的瀏覽器提供商:

hermes setup tools
# → 瀏覽器自動化 → Firecrawl

可選設置:

# 自託管“1”實例(默認值:“0”)
FIRECRAWL_API_URL=http://localhost:3002

# Session TTL 以秒為單位(默認值:300)
FIRECRAWL_BROWSER_TTL=600

Camofox 本地模式

Camofox 是一個自託管的 Node.js 服務器,封裝了 Camoufox(一個帶有 C++ 指紋偽裝功能的 Firefox 分支)。它提供無需雲依賴的本地反檢測瀏覽。

# 安裝並運行
git clone https://github.com/jo-inc/camofox-browser && cd camofox-browser
npm install && npm start # 首次運行時下載 Camoufox (~300MB)

# 或通過 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 和登錄信息在 Agent 重啟後不會保留。要啟用持久化瀏覽器會話:

# 在“0”中
browser:
camofox:
managed_persistence: true

啟用後,Hermes 會向 Camofox 發送一個穩定的、作用域於配置文件的身份標識。Camofox 服務器將此標識映射到一個持久化的瀏覽器配置文件目錄,因此 Cookie、登錄信息和 localStorage 可在重啟後保留。不同的 Hermes 配置文件將獲得不同的瀏覽器配置文件(配置文件隔離)。

備註

Camofox 服務器端也必須配置 CAMOFOX_PROFILE_DIR 才能實現持久化。

VNC 實時視圖

當 Camofox 以有頭模式運行(顯示瀏覽器窗口)時,其健康檢查響應中會暴露一個 VNC 端口。Hermes 會自動發現該端口,並將 VNC URL 包含在導航響應中,使 Agent 可以分享鏈接供您實時觀看瀏覽器操作。

本地 Chrome 通過 CDP(/browser connect

您可以不使用雲服務提供商,而是通過 Chrome DevTools Protocol (CDP) 將 Hermes 瀏覽器工具連接到您自己的運行中的 Chrome 實例。這在您希望實時查看 Agent 操作、需要使用自己的 Cookie/會話的頁面,或避免雲瀏覽器成本時非常有用。

在 CLI 中使用:

/browser connect              # 通過 ws://localhost:9222 連接到 Chrome
/browser connect ws://host:port # 連接到特定的 CDP 端點
/browser status # 檢查當前連接
/browser disconnect # 分離並返回cloud/local模式

如果 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_navigatebrowser_click 等)將操作您實際的 Chrome 實例,而不是啟動雲會話。

本地瀏覽器模式

如果您 設置任何雲憑證,也未使用 /browser connect,Hermes 仍可通過本地 Chromium 安裝驅動的 agent-browser 使用瀏覽器工具。

可選環境變量

# 住宅代理可更好地解決“1”問題(默認值:“0”)
BROWSERBASE_PROXIES=true

# 使用自定義 Chromium 進行高級隱形 - 需要規模計劃(默認值:“0”)
BROWSERBASE_ADVANCED_STEALTH=false

# Session 斷開連接後重新連接 — 需要付費計劃(默認值:"true")
BROWSERBASE_KEEP_ALIVE=true

# 自定義session超時以毫秒為單位(默認:項目默認)
# 示例:600000(10 分鐘)、1800000(30 分鐘)
BROWSERBASE_SESSION_TIMEOUT=600000

# 自動清理之前的不活動超時(以秒為單位)(默認值:120)
BROWSER_INACTIVITY_TIMEOUT=120

安裝 agent-browser CLI

npm install -g agent-browser
# 或者在存儲庫中本地安裝:
npm install
信息

browser 工具集必須包含在您配置的 toolsets 列表中,或通過 hermes config set toolsets '["hermes-cli", "browser"]' 啟用。

可用工具

browser_navigate

導航至指定 URL。必須在調用其他任何瀏覽器工具之前調用。用於初始化 Browserbase 會話。

Navigate to https://github.com/NousResearch
提示

對於簡單的信息檢索,優先使用 web_searchweb_extract —— 它們速度更快且成本更低。當需要與頁面交互(如點擊按鈕、填寫表單、處理動態內容)時,才使用瀏覽器工具。

browser_snapshot

獲取當前頁面的基於文本的可訪問性樹快照。返回可交互元素及其引用 ID(如 @e1@e2),可用於 browser_clickbrowser_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

支持的鍵:EnterTabEscapeArrowDownArrowUp 等。

browser_back

返回瀏覽器歷史記錄中的上一頁。

browser_get_images

列出當前頁面上的所有圖片,包含其 URL 和替代文本。適用於查找需分析的圖片。

browser_vision

截取屏幕快照並使用視覺 AI 進行分析。當文本快照無法捕捉重要視覺信息時使用——尤其適用於驗證碼(CAPTCHA)、複雜佈局或視覺驗證挑戰。

快照將被持久保存,返回文件路徑及 AI 分析結果。在消息平臺(Telegram、Discord、Slack、WhatsApp)中,可要求 Agent 分享快照——它將通過 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 # 默認值:假

啟用後,錄製會在首次調用 browser_navigate 時自動開始,並在會話結束時保存至 ~/.hermes/browser_recordings/。支持本地和雲(Browserbase)模式。超過 72 小時的錄製文件將自動清理。

隱蔽功能

Browserbase 提供自動隱蔽能力:

功能默認狀態說明
基礎隱蔽始終開啟隨機指紋、視口隨機化、驗證碼自動求解
住宅 Agent開啟通過住宅 IP 路由,提升訪問成功率
高級隱蔽關閉使用自定義 Chromium 構建,需 Scale 計劃
保持連接開啟網絡中斷後自動重連
備註

如果您的計劃未包含付費功能,Hermes 會自動降級處理——首先禁用 keepAlive,然後禁用 Agent,確保免費計劃下仍可正常瀏覽。

會話管理

  • 每個任務通過 Browserbase 獲得一個隔離的瀏覽器會話
  • 會話在不活動後自動清理(默認:2 分鐘)
  • 後臺線程每 30 秒檢查一次過期會話
  • 進程退出時執行緊急清理,防止會話孤兒
  • 會話通過 Browserbase API 釋放(REQUEST_RELEASE 狀態)

限制

  • 基於文本的交互 —— 依賴可訪問性樹,而非像素座標
  • 快照大小 —— 大型頁面可能在 8000 字符處被截斷或由 LLM 摘要
  • 會話超時 —— 雲會話根據您的服務提供商計劃設置過期
  • 成本 —— 雲會話消耗服務提供商積分;會話在對話結束或不活動後自動清理。如需免費本地瀏覽,請使用 /browser connect
  • 無法下載文件 —— 無法從瀏覽器下載文件