0
0

Hermes 搜索与浏览器能力配置指南

2026-07-02
AI
Hermes 搜索与浏览器能力配置指南

服务器环境:Ubuntu 24.04 LTS,2C2G

Hermes版本:v0.18.0

时间:2026-07-02

浏览器搜索功能对 AI Agent 来说是非常重要的功能,Hermes 本身提供了良好的搜索支持,但官方文档和市面上的资料对于这部分的介绍还是太过简略了,于是我打算通过查阅源码+自行实践的方式,给出一份针对非付费用户的浏览器功能配置解决方案,在免费的同时为我们的hermes agent提供强大而完善的搜索能力(对于个人使用场景而言100%够用了)。

这份指南整理 Hermes 里 webbrowser 两类能力的关系,并给出一套实用的配置方案:Web 侧使用 Hermes 原生 web toolset,后端选择 Tavily / Firecrawl / Brave Search;浏览器侧保留本地 Chromium via agent-browser 与 Camofox,两者按需要切换。

注意: 本博客中的hermes命令都是默认情况下的命令,如更改了地址或使用了其他profile,请将命令进行相应替换。

1. 先建立清晰认知

1.1 Hermes 支持的方案

Hermes 要用“浏览器”和“搜索”能力,大体有 3 类方案

  1. 用 Hermes 内置 Web 工具
  • web_searchweb_extract
  • 后端可选:Firecrawl、Parallel、Tavily、Exa
  • 适合:搜索网页、抽取网页内容、部分爬取任务
  • 配置入口:config.yamlhermes tools
  1. 用 Hermes 内置浏览器自动化
  • Browserbase 云浏览器
  • Browser Use 云浏览器
  • Firecrawl 云模式
  • Camofox 本地反检测浏览
  • 本地 Chrome via CDP,使用 /browser connect
  • 本地 Chromium via agent-browser
  • 适合:打开网页、点击、填表、登录后操作、截图、视觉分析、页面交互
  1. 通过 MCP 接第三方工具
  • Hermes 可以通过 MCP 连接外部工具服务器,例如浏览器栈、搜索 API、内部爬虫、Playwright 服务等。
  • 适合:你已有现成工具,或者想把搜索/浏览能力做成独立服务给 Hermes 调用。

其中,方案1就是hermes toolsets里的 web方案2就是 browser ,可以用 hermes tools list 命令查看。

然后,如果方案1后端用的是Tavily / Firecrawl 这类服务,可能就有小伙伴会疑惑,这些服务本身不也提供 MCP server吗,跟方案3有区别吗?实际上还是有区别的,存在两条路:

Hermes 内置 web toolset -> Tavily / Firecrawl API
Hermes MCP -> Tavily / Firecrawl MCP server -> Tavily / Firecrawl API

内置的 web 相当于把不同 provider 抽象成同一套工具,配置短的同时换 provider 也比较方便,比如 tavilyfirecrawl ;但缺点是只能用 Hermes 内置抽象暴露出来的能力,如果 Tavily / Firecrawl 有一些高级特性,Hermes 内置工具未必全覆盖。

如果你只是想让 Hermes 会“搜索网页、读网页”,用内置 web 就够了,而且更推荐 ;如果你需要 Tavily / Firecrawl 的某些 MCP 专属能力,或者你想把同一个搜索 MCP server 复用给多个 Agent 客户端,再考虑 MCP。这里对我而言,使用内置的 web 已经绰绰有余了,就不再重复配置相关MCP了。

1.2 webbrowser 不是同一类工具

Hermes 里的 web 更像“搜索与网页内容抽取 API”,主要工具是:

  • web_search:搜索互联网,返回结构化搜索结果。
  • web_extract:给 URL,抽取网页正文或可读内容。

它适合:

  • 查资料、找文档、搜报错。
  • 总结多个网页。
  • 快速获取网页正文。
  • 需要来源链接、结构化搜索结果的任务。

browser 更像“真实浏览器自动化接口”(常见工具见后文),它适合:

  • 打开网页并点击按钮。
  • 填表、登录、翻页。
  • 操作动态页面。
  • 看截图、读页面可访问性树。
  • 处理需要真实浏览器环境的网站。

一句话:

web     = 搜索 / 抽取网页内容
browser = 操作网页 / 真实浏览器自动化

普通信息检索优先用 web,需要交互时再用 browser (信息检索之类的用 browser 当然也能胜任,但可能会涉及更多次的工具调用,以及更费token)。

1.3 web 配置关键字段解析

Hermes 的 web 支持一个总默认值,也支持按能力拆分:

web:
  backend: tavily
  search_backend: ""
  extract_backend: ""

理解成:

search_backend  优先用于 web_search
extract_backend 优先用于 web_extract
backend         作为二者的共享 fallback

所以 search_backendextract_backend 留空时,通常会回退到 backend

例如:

web:
  backend: tavily

表示搜索和抽取都用 Tavily。

而:

web:
  search_backend: brave-free
  extract_backend: firecrawl

表示搜索用 Brave Search,网页正文抽取用 Firecrawl。

注意:Brave Search 在 Hermes 里的 backend 名是 brave-free,并且它是 search-only,不能单独承担 web_extract

1.4 Browser 的“统一接口,后端可替换”模型

Hermes 暴露给 Agent 的是一组统一的 browser_* 工具:

browser_navigate
browser_snapshot
browser_click
browser_type
browser_press
browser_scroll
browser_back
browser_console
browser_get_images
browser_vision

背后可以接不同浏览器后端:

browser_* tools
      ↓
Hermes browser dispatcher
      ↓
agent-browser / Camofox / CDP / Browserbase / Browser Use / Firecrawl ...

同一个 profile 同一时刻通常只有一个主要 browser backend 在实际工作。你可以都安装,但不是每次 browser_click 都让 Agent 同时在多个后端之间自由选择。

可以把它理解成“接口稳定,底层实现可换”。

1.5 本文关注的三种浏览器方案

agent-browser:本地 Chromium 默认方案

agent-browser 是 Hermes 的本地浏览器自动化路线。它会驱动本地 Playwright Chromium / headless Chromium。

**优点:**配置简单;成本低;适合普通网页自动化;和 Hermes 默认工具链贴合。

**缺点:**反检测能力弱;容易被一些网站识别为自动化或 headless;默认不提供完整 browser_cdp 能力。

适合作为普通默认方案

Camofox:本地反检测浏览器方案

Camofox 是一个本地服务,背后是 Camoufox,一个带指纹伪装的 Firefox fork。Hermes 通过 CAMOFOX_URL 调用它。

**优点:**本地运行,不依赖云浏览器;反检测能力比普通 headless Chromium 更强;可以配 VNC 观察浏览器运行;可以配置持久化 profile,保留 cookie / 登录状态。

**缺点:**多一个服务要维护;它是 Firefox / Camoufox 路线,不是 Chromium(一些特性的支持可能不如chromium丝滑);不是完整 CDP 后端。

适合作为反爬优先方案

CDP:连接自己启动的 Chrome / Chromium

CDP 是 Chrome DevTools Protocol,不是一种浏览器本身。你需要自己启动 Chrome / Chromium,并开放 remote debugging port。

服务器没有桌面 App 也可以用 CDP,只要有一个 headless Chromium 进程:

chromium \
  --headless=new \
  --remote-debugging-address=127.0.0.1 \
  --remote-debugging-port=9222

CDP 优点是控制力强,适合 DevTools 级调试、cookie、storage、network、iframe、JS runtime 等高级操作。

但它不是反检测方案,而且需要额外维护浏览器进程。由于我暂时用不上它的这些特殊能力,故当前这套配置暂时不把 CDP 作为主力,只在后面简单留一个可选配置。

2. Web配置方案

本文只写三类 Web provider(都提供按月刷新的免费额度,好用!):

  • Tavily:搜索 + 抽取。
  • Firecrawl:搜索 + 抽取 + 部分爬取能力。
  • Brave Search:搜索-only,需要搭配 Firecrawl 或 Tavily 做 extract。

首先,我们要配置相应服务商的API key(注册及申请key的过程非常简单,这里不做介绍)。这里提供两种配置方式(hermes交互+编辑配置文件,可以用交互进行配置,然后看配置文件进行验证)

方式一:交互式配置

运行命令:

hermes tools

选择Reconfigure an existing tool's provider or API key,进入 Web Search & Scraping,按提示选择 provider 并填写 key即可。

方式二:手动编辑 .env

vim 编辑:

vim ~/.hermes/.env

按你需要的 provider 写入对应 key:

# Tavily: search + extract
TAVILY_API_KEY=tvly-your-key-here

# Firecrawl: search + extract + crawl
FIRECRAWL_API_KEY=fc-your-key-here

# Brave Search: search-only
BRAVE_SEARCH_API_KEY=your-brave-search-key-here

如果使用自托管 Firecrawl(就是让 AI Agent 连接你自己部署的 Firecrawl 服务,而不是官方提供的云服务),也可以配置:

FIRECRAWL_API_URL=http://localhost:3002

配置好API key后,接下来配置实际请求的后端

配置1:Tavily 作为默认 Web 后端

适合想简单、省心地让 web_searchweb_extract 都走 Tavily。依旧有两种配置方式。

  1. 命令方式:
hermes tools

选择:

Web Search & Extract -> Tavily
  1. 手动配置:
vim ~/.hermes/config.yaml

写入:

web:
  backend: tavily
  use_gateway: false

这表示:

web_search  -> Tavily
web_extract -> Tavily 

配置示例2:Brave Search + Firecrawl

Brave Search 在 Hermes 里叫 brave-free,它只能搜索,不能抽取网页正文。所以推荐搭配 Firecrawl:

web_search  -> Brave Search
web_extract -> Firecrawl

命令方式:

hermes tools

如果交互 UI 支持 per-capability 配置,就在 Web Search & Extract 里选择:

Search backend  -> Brave Search / brave-free
Extract backend -> Firecrawl

手动配置:

vim ~/.hermes/config.yaml

写入:

web:
  search_backend: brave-free
  extract_backend: firecrawl
  use_gateway: false

也可以把 extract 换成 Tavily:

web:
  search_backend: brave-free
  extract_backend: tavily
  use_gateway: false

3. Browser 配置方案

本文只写两套主力方案(依旧提供命令交互+修改配置文件两种方式):

  • 本地 Chromium via agent-browser
  • Camofox 本地反检测浏览器

CDP 暂时不用,只在末尾保留说明。

3.1 启用 browser toolset

命令方式:

hermes tools enable browser
hermes tools list

看到类似:

✓ enabled  browser  🌐 Browser Automation

就说明浏览器工具集已经启用。

也可以运行:

hermes tools

进入 Browser Automation,选择对应 provider / 后端。

3.2 本地 Chromium via agent-browser

这是普通默认方案。

命令方式

先启用 browser:

hermes tools enable browser

安装 / 初始化 agent-browser:

hermes tools post-setup agent_browser

如果想手动安装,也可以:

npm install -g agent-browser
agent-browser install

在 Linux 服务器上如果缺系统依赖,可用:

agent-browser install --with-deps

手动配置方式

编辑环境变量:

vim ~/.hermes/.env

确保没有启用 Camofox / CDP:

# 不要设置 CAMOFOX_URL
# 不要设置 BROWSER_CDP_URL

编辑配置:

vim ~/.hermes/config.yaml

推荐显式写:

browser:
  cloud_provider: local
  inactivity_timeout: 120
  command_timeout: 30

cloud_provider: local 的意义是强制不用 Browserbase / Browser Use / Firecrawl 这类云浏览器 provider,走本地浏览器路线。

3.3 Camofox 本地反检测浏览器

Camofox 适合被普通 Chromium 自动化拦住的场景。

命令方式

启用 browser:

hermes tools enable browser

运行 Camofox 后置安装:

hermes tools post-setup camofox

也可以用交互式:

hermes tools

选择:

Browser Automation -> Camofox

手动安装 Camofox server

Docker 方式:

git clone https://github.com/jo-inc/camofox-browser
cd camofox-browser
make up

如果想开 VNC 观察浏览器:

make down
make build
mkdir -p ~/.camofox-docker
docker run -d \
  --name camofox-browser \
  --restart unless-stopped \
  -p 9377:9377 \
  -p 6080:6080 \
  -p 5901:5900 \
  -e CAMOFOX_PORT=9377 \
  -e ENABLE_VNC=1 \
  -e VNC_BIND=0.0.0.0 \
  -e VNC_RESOLUTION=1920x1080 \
  -e MAX_OLD_SPACE_SIZE=2048 \
  -v ~/.camofox-docker:/root/.camofox \
  camofox-browser:135.0.1-aarch64

注意:上面的镜像 tag 里的架构要按服务器实际情况调整,例如 x86_64 服务器不要直接照抄 aarch64。

手动配置 Hermes 使用 Camofox

编辑:

vim ~/.hermes/.env

写入:

CAMOFOX_URL=http://localhost:9377

只要 CAMOFOX_URL 存在,Hermes 的 browser_* 工具就会优先走 Camofox,而不是默认 agent-browser

编辑:

vim ~/.hermes/config.yaml

推荐配置:

browser:
  cloud_provider: local
  inactivity_timeout: 120
  command_timeout: 30
  camofox:
    managed_persistence: true
    user_id: ""
    session_key: ""
    adopt_existing_tab: false

managed_persistence: true 表示让 Hermes 给 Camofox 使用稳定身份,便于 Camofox 侧复用 profile,从而保留 cookie / 登录态。实际是否持久化,还要看 Camofox server 是否正确支持基于 userId 的持久 profile。

如果 Camofox 跑在 Docker 里,并且需要访问宿主机上的本地服务,例如 http://127.0.0.1:3000,加上:

browser:
  camofox:
    rewrite_loopback_urls: true
    loopback_host_alias: host.docker.internal

完整一点可以写成:

browser:
  cloud_provider: local
  inactivity_timeout: 120
  command_timeout: 30
  camofox:
    managed_persistence: true
    user_id: ""
    session_key: ""
    adopt_existing_tab: false
    rewrite_loopback_urls: true
    loopback_host_alias: host.docker.internal

如果 Camofox 不是 Docker,而是直接跑在宿主机上,一般不需要 rewrite_loopback_urls

3.4 agent-browser 与 Camofox 怎么切换

使用 agent-browser

vim ~/.hermes/.env

删除或注释:

CAMOFOX_URL=http://localhost:9377

确保没有:

BROWSER_CDP_URL=...

然后重启 Hermes。

使用 Camofox:

vim ~/.hermes/.env

写入:

CAMOFOX_URL=http://localhost:9377

然后确保 Camofox server 正在运行,再重启 Hermes。

理解优先级:

如果显式连接了 CDP / 设置了 BROWSER_CDP_URL
  -> 走 CDP
否则如果设置了 CAMOFOX_URL
  -> 走 Camofox
否则
  -> 走 agent-browser 本地 Chromium

3.5 CDP 暂时不用,但以后可以这样配

如果以后需要 DevTools 级能力,可以在服务器上启动 headless Chromium:

chromium \
  --headless=new \
  --remote-debugging-address=127.0.0.1 \
  --remote-debugging-port=9222 \
  --no-sandbox

然后配置:

vim ~/.hermes/config.yaml

写入:

browser:
  cdp_url: "http://127.0.0.1:9222"

或者在 Hermes 会话里使用:

/browser connect http://127.0.0.1:9222

不要把 CDP 端口暴露到公网。CDP 基本等于远程控制浏览器,安全风险很高。

4. 推荐组合

如果只想要一套日常配置:

web:
  backend: tavily
  use_gateway: false

browser:
  cloud_provider: local
  inactivity_timeout: 120
  command_timeout: 30

如果日常经常遇到反爬:

web:
  search_backend: brave-free
  extract_backend: firecrawl
  use_gateway: false

browser:
  cloud_provider: local
  inactivity_timeout: 120
  command_timeout: 30
  camofox:
    managed_persistence: true

对应 .env

BRAVE_SEARCH_API_KEY=your-brave-search-key-here
FIRECRAWL_API_KEY=fc-your-key-here
CAMOFOX_URL=http://localhost:9377

5. 验证

查看 toolset 状态:

hermes tools list

检查整体配置状态:

hermes setup

进入 Hermes 后可以测试:

用 web_search 搜索 Hermes Agent Camofox 配置,并给我来源链接。

再测试浏览器:

打开 https://example.com,告诉我页面标题。

如果使用 Camofox,可以同时检查 Camofox server:

curl http://localhost:9377/health

若开启了 VNC,可以访问:

http://localhost:6080

6. 最后的取舍

建议把思路保持简单:

搜索资料 / 抽取网页正文 -> web
操作网页 / 登录 / 点击   -> browser
普通浏览器自动化         -> agent-browser
反爬优先                 -> Camofox
DevTools 级调试          -> CDP

本文的主力推荐是:

web:     原生 web toolset + Tavily / Firecrawl / Brave Search
browser: agent-browser 作为普通方案,Camofox 作为反爬方案
CDP:     先不用,后续有高级调试需求再开

评论