Hermes 浏览器自动化大换血:一个 browser_exec 顶掉 12 个工具,Token 省一半

你让 Hermes 去网页上办一件稍微复杂点的事——登录后台、点开报表、把关键数字抄回来——然后看着它开始漫长的一来一回:截图、看一眼、点一下、再截图、再看一眼。每一步都要消耗 token,一趟多步操作下来,光“看”就烧掉大半预算。这个痛点在 2026 年 8 月有了新解:Hermes 合并了 Browser Use CLI 3.0 模式(PR #81958),把浏览器操作从“截图+点击”的循环,换成了“直接在浏览器里跑 Python 代码”的单一工具,官方基准测试里总 token 消耗直接砍半。
什么是 Browser Use CLI 3.0 模式
Browser Use 是一个开源的浏览器自动化框架,CLI 3.0 允许你写一段 Python 代码,在真实的浏览器(通过 CDP 协议连接)里执行任意操作。Hermes 的这次更新把 browser.backend 配成 browser-use 后,模型看到的不再是 12 个零散的 browser_navigate、browser_click、browser_type 之类的小工具,而是一个 browser_exec 工具——它把你想做的操作写成代码交出去,一次调用完成多步动作。
官方的说法很直接:12 个工具换 1 个工具,靠的是把“动作序列”从模型逐字生成变成“可执行代码”整体生成。动作一多,这个差别就被放大——基准测试跑了 4 组共 204 次,多步网页任务的总 token 消耗下降 48% 到 66%,准确率持平。
怎么开启
在 config.yaml 的 browser: 段加一行:
browser:
backend: browser-use # "" = 内置工具;browser-use = Browser Use CLI 3.0 模式
改完后需要重启 Hermes 会话。首次使用前,确保本机装好了 Browser Use CLI:
# 二选一
uv tool install browser-use
pipx install browser-use
# 验证安装
browser-use --doctor
如果本机没有装,Hermes 也会尝试通过 uvx 零安装调用;实在不行会在报错里提示你去装。
在会话里怎么用
开启模式后,browser_exec 只收一个必填参数 code——一段 Python 代码,代码里可以用一组预置的辅助函数(helpers)。它们不需要 import,直接可用:
| 辅助函数 | 作用 |
|---|---|
new_tab(url) |
打开新标签页(第一次导航用这个) |
goto_url(url) |
在当前标签页跳转 |
wait_for_load() |
等页面加载完成 |
page_info() |
返回当前页面状态摘要 |
js(expr) |
执行 JS 表达式并返回值,如 js('document.title') |
fill_input(selector, text) |
向输入框填入文字 |
click_at_xy(x, y) |
按视口坐标点击 |
capture_screenshot() |
截图并打印路径 |
cdp('Domain.method', **kwargs) |
直接调原始 CDP 协议 |
ensure_real_tab() |
从失效/内部标签页恢复 |
一段典型的代码长这样:
new_tab("https://example.com/login")
wait_for_load()
fill_input("#username", "demo")
fill_input("#password", "secret")
js("document.querySelector('button[type=submit]').click()")
wait_for_load()
print(page_info())
模型会一次性生成整段代码并交给 browser_exec 执行,而不是逐步截图试探。需要给任务起个稳定名字时,还可以传 session 参数(1-64 位字母、数字、下划线或连字符),例如 browser_exec(code=..., session="r7k2")。
和现有浏览器后端怎么配合
这是这次更新最有意思的部分:browser_exec 不是一个孤立的新浏览器,它只是换了一个“司机”,车还是原来的车。CDP 端点的解析走的是和内置工具完全相同的链路——BU_* 环境变量覆盖 → /browser connect 手动指定 → 配置的云服务商。也就是说,本地 Chrome、Nous Portal 云浏览器、Browserbase、Firecrawl 这些后端全都照常工作,你只是换了个驾驶方式。
三个细节值得注意:
- 旧的 Browser Use 云配置自动迁移:以前用
cloud_provider: browser-use+BROWSER_USE_API_KEY的老配置,现在会自动识别为 Browser Use 模式,不需要手动改。 - Camofox 用户不受影响:Camofox 是 Firefox 内核、没有 CDP 接口,所以即使你写了
backend: browser-use,Camofox 场景会自动回退到内置工具集,不会悄悄切换。 - 终端隔离:
browser_exec本质是执行任意 Python 代码,所以凡是不含terminal工具集的会话,它在工具定义阶段就会被直接移除——你不用担心低权限会话拿到这个能力。
安全上有什么要注意的
能跑任意 Python 代码的工具,天然是安全审查的重点。browser_exec 保留了内置浏览器的 URL 安全检查:代码里出现的 http(s):// 字面量会先过一遍 browser_navigate 的拦截策略,危险地址直接报错。另外登录墙这类场景,官方建议明确写进代码逻辑里:遇到需要账号密码的页面就停下来问用户,绝不让模型猜凭据。
从我们的测试体验看,这个模式最适合“步骤明确、反复执行”的网页任务——填表、抓数、批量操作;而需要大量视觉判断的场景(比如判断页面长什么样),配合截图仍然有用武之地。想了解 Hermes 浏览器能力的其他玩法,可以看看我们之前写的桌面端预览浏览器指南,或者隐藏技巧合集。如果你还没装 Hermes,安装指南可以帮你五分钟跑起来。