一种简单的代理网络访问模式:搜索、获取、浏览,但将原始页面保留在主上下文之外
摘要
本文提出了一种更简洁的 Agent 网页访问模式,通过将功能拆分为三个独立的通道——搜索(search)、抓取(fetch)和浏览器(browser),并借助一个阅读器子代理(reader subagent)避免原始页面进入主上下文,从而显著降低 Token 消耗和上下文污染。
我见过的大多数代理网络访问设置将三个不同的任务合并为一个模糊的“网络工具”。通常演变成:
- 搜索内容
- 获取页面
- 将页面倾倒入主代理上下文
- 希望代理提取有用部分
这种方法可行,但很浪费。问题不仅在于 token 成本,还在于上下文污染。原始页面包含导航栏、Cookie 横幅、脚本、页眉、页脚、分析工具、重复布局以及大量代理无需继续携带的文本。
更清晰的模式是将网络访问分为三个通道:
1. **搜索**
搜索应仅查找候选 URL,不应负责读取完整页面。
良好行为:返回 URL、返回标题/摘要、缓存重复查询、除非必要避免昂贵的扇出。
搜索解答:“我应该看哪里?”它不应将五个完整页面倾倒入主上下文。
2. **获取**
获取应读取已知 URL 并在模型看到之前将其转换为干净的 Markdown。
这是节省上下文最大的地方。在一次测试中,同一页面:
- 原始 HTML:9,541 token
- 干净 Markdown:1,678 token
在未更改提示或模型的情况下减少了 82%。
规则:除非有特定原因,否则不要将原始 HTML 交给主代理。
获取解答:“这个页面说了什么?”
3. **浏览器**
浏览器自动化应保留给有状态交互。仅在任务确实需要时使用:点击、滚动、登录、填写表单、处理动态 UI、与实时应用交互。
不要仅仅为了阅读普通文档页面而使用浏览器。
浏览器解答:“当我与这个网站交互时会发生什么?”
### 主要界限
最重要的部分不是工具选择,而是读取发生的位置。不要让主代理直接摄取获取的页面,而是在一个封闭的读取器/子代理中运行页面读取。读取器/子代理获取嘈杂的内容,主代理仅获取提炼后的结果:
- 答案
- 相关摘录
- 引用/来源 URL
- 没有完整页面转储
因此流程变为:
```text
主代理 → 搜索 URL → 获取 URL 为 Markdown → 读取器子代理提取相关片段 → 主代理仅接收干净结果
```
相似文章
大多数智能体框架忽略的网页读取原语,以及我为它构建的开源版本
一名开发者构建了一个大多数智能体框架忽略的开源网页读取原语,弥补了智能体工具中缺失的一项能力。
迈向代理优先的Web:为AI代理重新设计互联网
本文提出对万维网进行原则性重新设计,以适应AI代理作为主要中介,涉及访问权限、速率限制和标准化代理标识,从而超越以人为中心的假设。
你需要理解的关键点:计算机使用代理与浏览器使用代理的区别
本文解释了计算机使用代理(通过像素截图操作完整桌面界面)与浏览器使用代理(可利用DOM隐藏结构)之间的关键区别,前者是更难的技术问题。
我构建了 barebrowse:为本地模型代理提供浏览器,无需 Playwright — 使用精简的 ARIA 快照替代原始 HTML(大幅减少 token 消耗)
barebrowse 是一款从网页生成精简 ARIA 快照的工具,通过去除样板内容和广告来降低本地 AI 模型的 token 消耗,并可复用现有浏览器 cookies。
我们如何构建安全、可扩展的代理沙箱基础设施(8分钟阅读)
Browser Use 描述了隔离执行代码的 AI 代理的两种模式:隔离工具与隔离代理。他们使用 AWS 上的 Unikraft 微虚拟机实现了代理隔离模式,获得了安全、可扩展且一次性的沙箱。