AI-Workshop 文献分享 2026-08-22 21:30

AI-Workshop 文献分享 #19 — Hermes 联网搜索机制:Web 工具与 Browser 工具的分层设计

qyr 拆解 Hermes-Agent 的联网工具:从搜索引擎与浏览器各自承担的职责出发,介绍 Web 工具(web_search 发现网页、web_extract 提取正文、web_crawl 递归爬取)与 Browser 工具(基于 CDP + WebSocket 的导航、点击、输入与滚动)的能力边界,并说明 Accessibility Tree 如何作为中间表示为 Agent 提供结构化的页面交互信息。

AI-Workshop 文献分享 Hermes Agent Web工具 Browser工具 Accessibility Tree

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 的设计提供了一个清晰的分析框架:

  1. 使用 Web 工具获取和处理网页信息;
  2. 使用 Browser 工具操作真实网页;
  3. 根据任务需求选择合适的工具,避免不必要地启动浏览器或执行复杂渲染。

2. 联网搜索所依赖的互联网基础设施

理解 Agent 的联网机制,需要先区分网页、搜索引擎和浏览器各自承担的职责。

2.1 网页与服务器

网页内容存储在不同组织或平台的服务器中。例如,视频平台、问答社区和内容网站通常都拥有自己的服务器,用于保存和提供网页、文本、图片及其他资源。

用户的设备通常不会保存整个互联网的内容,而是在需要时向目标服务器请求特定资源。

2.2 搜索引擎:在网页中定位信息

互联网中的网页数量巨大,直接逐个访问并查找内容在效率上不可行。因此,搜索引擎承担了网页发现与排序的职责。

搜索引擎通常包含以下基础设施:

  • 爬虫集群:持续抓取新网页和网页更新内容;
  • 大规模存储与计算系统:保存和处理海量网页数据;
  • 倒排索引:建立词项与网页之间的映射,以加速关键词检索;
  • 排序算法:根据相关性、质量等因素对结果排序,例如 BM25 等方法。

当用户提交查询时,搜索引擎并不是从零开始访问所有网页,而是利用已有索引快速返回候选结果。

2.3 浏览器与网络基础服务

浏览器通常负责:

  • 向搜索引擎或目标网站发起请求;
  • 获取 HTML、CSS、JavaScript 和其他资源;
  • 在本地渲染网页;
  • 将最终页面呈现给用户;
  • 响应点击、输入和滚动等交互。

此外,DNS 等基础服务负责将域名解析为 IP 地址,路由系统则负责在网络中传输数据。这些组件共同支撑了网页访问过程。

关键区分:搜索引擎主要解决“去哪里找、哪些内容相关”;浏览器主要解决“如何加载、渲染和操作网页”。


3. Hermes Web 工具:面向信息获取

Hermes 的 Web 工具依赖搜索引擎或其他网络服务提供的 API,重点是发现网页、提取正文和递归获取相关页面,不负责直接操作网页界面。

典型调用形式为:

web_search(query="xxx", limit=5)

该工具通过搜索服务 API,根据查询词查找相关网页,并返回候选结果列表,例如:

[
    {
        "url": "网页地址",
        "title": "网页标题",
        "snippet": "网页摘要"
    }
]

其基本流程为:

  1. Hermes 将用户问题转换为搜索查询;
  2. 搜索服务返回若干候选网页;
  3. Hermes 根据标题、摘要和 URL 判断哪些网页值得进一步访问;
  4. 必要时调用 web_extract 获取网页正文。

从网络通信角度看,web_search 类似于使用 curl 或 Python requests 发送 API 请求。Hermes 通常访问的是搜索服务的接口,而不是直接访问每个候选网页。

3.2 web_extract:提取网页正文

典型调用形式为:

web_extract(urls=["https://example.com/article"])

该工具用于获取一个或多个网页的正文内容。根据讲义所描述的架构,Hermes 将 URL 提交给搜索服务的提取 API,由远端服务完成网页处理。

远端提取流程通常包括:

  1. 获取 URL 对应的网页内容;
  2. 执行必要的 JavaScript 渲染;
  3. 解析 HTML 结构;
  4. 识别正文区域;
  5. 过滤广告、导航栏等低价值内容;
  6. 将结果转换为 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 工具,从而在功能、成本和可控性之间取得平衡。