AI-Workshop 文献分享 #19 — Hermes 联网搜索机制:Web 工具与 Browser 工具的分层设计
分享人:qyr | 日期:2026-08-22
主题:Hermes-Agent 联网能力拆解 —— Web 工具负责信息获取,Browser 工具负责网页交互
本期主题:通过拆解 Hermes-Agent 的联网工具,理解 Agent 如何借助互联网基础设施完成信息检索、网页内容提取与浏览器交互。
核心观点:联网能力并不等于“让模型直接操作互联网”。Hermes 将网络访问拆分为不同层次:一类工具负责高效获取信息,另一类工具负责真实操作网页。
1. 为什么 Agent 需要联网?
联网搜索是 Agent 获取外部知识、完成实时任务的重要能力。借助互联网已有的内容生产、存储与检索基础设施,Agent 可以将网络视为一个规模庞大的外部知识库。
不过,联网并不是简单地发送一个 HTTP 请求。一个完整的联网系统至少需要解决以下问题:
- 信息发现:如何在海量网页中定位与任务相关的内容?
- 内容提取:如何从网页 HTML、脚本和广告中提取可读正文?
- 结果压缩:如何在不超出上下文窗口的情况下保留关键信息?
- 页面交互:如何完成点击、输入、滚动、登录等浏览器操作?
- 资源控制:如何避免搜索、渲染和爬取带来过高的计算与网络开销?
Hermes 的设计提供了一个清晰的分析框架:
- 使用 Web 工具获取和处理网页信息;
- 使用 Browser 工具操作真实网页;
- 根据任务需求选择合适的工具,避免不必要地启动浏览器或执行复杂渲染。
2. 联网搜索所依赖的互联网基础设施
理解 Agent 的联网机制,需要先区分网页、搜索引擎和浏览器各自承担的职责。
2.1 网页与服务器
网页内容存储在不同组织或平台的服务器中。例如,视频平台、问答社区和内容网站通常都拥有自己的服务器,用于保存和提供网页、文本、图片及其他资源。
用户的设备通常不会保存整个互联网的内容,而是在需要时向目标服务器请求特定资源。
2.2 搜索引擎:在网页中定位信息
互联网中的网页数量巨大,直接逐个访问并查找内容在效率上不可行。因此,搜索引擎承担了网页发现与排序的职责。
搜索引擎通常包含以下基础设施:
- 爬虫集群:持续抓取新网页和网页更新内容;
- 大规模存储与计算系统:保存和处理海量网页数据;
- 倒排索引:建立词项与网页之间的映射,以加速关键词检索;
- 排序算法:根据相关性、质量等因素对结果排序,例如 BM25 等方法。
当用户提交查询时,搜索引擎并不是从零开始访问所有网页,而是利用已有索引快速返回候选结果。
2.3 浏览器与网络基础服务
浏览器通常负责:
- 向搜索引擎或目标网站发起请求;
- 获取 HTML、CSS、JavaScript 和其他资源;
- 在本地渲染网页;
- 将最终页面呈现给用户;
- 响应点击、输入和滚动等交互。
此外,DNS 等基础服务负责将域名解析为 IP 地址,路由系统则负责在网络中传输数据。这些组件共同支撑了网页访问过程。
关键区分:搜索引擎主要解决“去哪里找、哪些内容相关”;浏览器主要解决“如何加载、渲染和操作网页”。
3. Hermes Web 工具:面向信息获取
Hermes 的 Web 工具依赖搜索引擎或其他网络服务提供的 API,重点是发现网页、提取正文和递归获取相关页面,不负责直接操作网页界面。
3.1 web_search:发现相关网页
典型调用形式为:
web_search(query="xxx", limit=5)
该工具通过搜索服务 API,根据查询词查找相关网页,并返回候选结果列表,例如:
[
{
"url": "网页地址",
"title": "网页标题",
"snippet": "网页摘要"
}
]
其基本流程为:
- Hermes 将用户问题转换为搜索查询;
- 搜索服务返回若干候选网页;
- Hermes 根据标题、摘要和 URL 判断哪些网页值得进一步访问;
- 必要时调用
web_extract获取网页正文。
从网络通信角度看,web_search 类似于使用 curl 或 Python requests 发送 API 请求。Hermes 通常访问的是搜索服务的接口,而不是直接访问每个候选网页。
3.2 web_extract:提取网页正文
典型调用形式为:
web_extract(urls=["https://example.com/article"])
该工具用于获取一个或多个网页的正文内容。根据讲义所描述的架构,Hermes 将 URL 提交给搜索服务的提取 API,由远端服务完成网页处理。
远端提取流程通常包括:
- 获取 URL 对应的网页内容;
- 执行必要的 JavaScript 渲染;
- 解析 HTML 结构;
- 识别正文区域;
- 过滤广告、导航栏等低价值内容;
- 将结果转换为 Markdown 或其他适合模型处理的文本格式。
如果正文过长,Hermes 会先对其进行压缩,再将结果注入上下文,而不是直接将完整网页内容交给模型。
因此,Hermes 本地侧主要负责提供 URL 和接收结果;反爬虫处理、JavaScript 渲染及正文抽取等复杂工作由远端服务承担。
3.3 web_crawl:递归获取相关页面
web_crawl 与 web_extract 类似,但会继续访问目标页面中的相关链接,从而递归获取一组页面。
通常可以设置以下限制:
- 爬取深度;
- 最大页面数量;
- 允许访问的域名或 URL 范围。
该能力适合需要阅读文档集合、专题页面或多页资料的任务,但会带来更多网络请求与内容处理开销,因此需要控制爬取范围。
3.4 Web 工具的能力边界
| 能力 | Web 工具是否擅长 |
|---|---|
| 搜索相关网页 | 是,使用 web_search |
| 提取网页正文 | 是,使用 web_extract |
| 递归获取多个页面 | 是,使用 web_crawl |
| 点击网页按钮 | 否 |
| 在输入框填写内容 | 否 |
| 完成需要浏览器状态的登录流程 | 否 |
| 操作动态网页界面 | 通常不适合 |
总结:Web 工具适合“读网页”,不适合“操作网页”。
4. Hermes Browser 工具:面向网页交互
当任务需要点击按钮、填写表单、滚动页面或维持浏览器状态时,仅依赖搜索 API 无法完成,此时需要 Browser 工具。
4.1 Browser 工具的技术基础
Hermes Browser 工具基于:
- CDP(Chrome DevTools Protocol):Chrome DevTools 协议,规定浏览器调试与控制命令的数据格式;
- WebSocket:提供客户端与浏览器之间的双向长连接。
CDP 可以理解为一组结构化的 JSON 命令约定,例如导航、点击、读取页面状态等操作。WebSocket 则负责在本机工具与浏览器之间持续传输这些命令和事件。
与一次请求、一次响应的 HTTP 相比,WebSocket 支持双向通信:
- 工具可以向浏览器发送操作指令;
- 浏览器可以主动返回页面变化、事件或执行结果。
4.2 常见 Browser 工具
browser_navigate(url) # 打开 URL
browser_snapshot() # 获取无障碍树快照,并生成元素引用
browser_click(ref="@e3") # 点击指定元素
browser_type(ref="@e5", text="xxx") # 在输入框中输入文本
browser_scroll(direction) # 滚动页面
browser_press(key="Enter") # 发送键盘按键
browser_back() # 返回上一页
browser_vision() # 截图并交给多模态模型分析
browser_get_images() # 获取页面中的图片列表
browser_console() # 读取 JavaScript 控制台日志
browser_cdp() # 可选:直接发送原始 CDP 指令
这些工具直接作用于浏览器页面,因此可以实现:
- 页面导航;
- 元素定位;
- 点击和输入;
- 滚动与键盘操作;
- 图片和控制台信息获取;
- 必要时执行更底层的 CDP 操作。
Browser 工具依赖本机运行的 Chrome 或其他兼容浏览器服务,相比 Web 工具更重,因此通常不默认启动,而是在任务确实需要交互时使用。
5. Accessibility Tree:浏览器交互的结构化接口
5.1 DOM 与 AX Tree
要理解 Browser 工具为何可以使用元素引用进行交互,需要先区分 DOM 与 Accessibility Tree。
DOM(Document Object Model,文档对象模型)是浏览器解析 HTML 后构建的结构化对象。它保留了网页的标签、层级、属性和文本等信息。
Accessibility Tree(无障碍树,简称 AX Tree)是在 DOM 基础上进一步抽取得到的结构。它主要保留页面中对交互和语义理解有用的信息,例如:
- 元素角色(role);
- 可访问名称(name);
- 元素状态;
- 可执行的交互操作。
样式、装饰性节点和许多与任务无关的细节通常会被过滤掉。
5.2 示例
原始 DOM 可能包含大量布局和装饰信息:
<div class="layout-box">
<div class="decor"></div>
<button>提交</button>
</div>
转换为 AX Tree 后,可以简化为:
role: button
name: "提交"
Browser 工具可以使用类似 @e3 的元素引用定位 AX Tree 中的交互元素,并进一步执行点击或输入操作。
5.3 AX Tree 的价值
AX Tree 最初是为了辅助视障用户理解和使用网页而设计的。对于 Agent 而言,它还具有两个重要价值:
- 降低上下文开销:过滤布局、样式和装饰信息,只保留与任务相关的结构化内容;
- 提高操作可靠性:通过元素角色和名称定位按钮、输入框等交互对象,避免仅依赖屏幕坐标或像素匹配。
因此,AX Tree 可以视为连接网页结构与语言模型操作能力的中间表示。
可以将其理解为:Agent 不必阅读网页的全部视觉细节,而是先读取一份压缩后的“可交互页面目录”,再根据元素引用执行操作。
6. 总结:两类工具的协作边界
Hermes 将联网能力拆分为两个互补的工具体系:
| 工具体系 | 主要任务 | 是否需要本地浏览器 |
|---|---|---|
| Web 系列 | 搜索、正文提取、递归爬取 | 通常不需要 |
| Browser 系列 | 导航、点击、输入、滚动和动态网页交互 | 需要 |
可以用一句话概括:
- Web 工具负责获取信息;
- Browser 工具负责操作网页;
- AX Tree 为 Browser 工具提供结构化的页面交互信息。
这种分层设计使 Hermes 可以根据任务选择合适的网络能力:简单的信息检索优先使用轻量的 Web 工具;只有在需要页面交互或浏览器状态时,才启动 Browser 工具,从而在功能、成本和可控性之间取得平衡。