代理Web界面
一个用于浏览器自动化的MCP服务器,它公开了针对LLM代理优化的语义、令牌高效的页面表示。
______________________________________________________________________
动机
基于LLM的代理在严格的上下文窗口和令牌约束下运行。 然而,大多数浏览器自动化工具都会向模型公开整个DOM或完整的可访问性树。
这导致:
- 代币迅速耗尽
- 更高的推理成本
- 由于相关信号被埋在噪声中,可靠性降低
在实践中,代理人会花费更多的精力 _发现_ 正确的信息比推理更重要。
Agent Web界面的存在是为了更改向模型公开的信息单位。
______________________________________________________________________
核心思想:语义页面快照
Agent Web Interface不公开原始DOM结构或完整的可访问性树,而是生成 语义页面快照.
这些快照是:
- 结构紧凑
- 专注于用户可见意图
- 专为LLM召回和推理而设计,而不是DOM完整性
- 在布局变化和DOM变动中保持稳定
目标不是镜像浏览器,而是以与语言模型推理界面的方式一致的形式呈现页面。
______________________________________________________________________
运作原理
在高层次上:
- 浏览器通过Puppeteer和CDP进行控制
- 页面被缩减为语义区域和可操作元素
- 生成结构化快照并将其发送到LLM
- 操作是针对稳定的语义标识符而不是脆弱的选择器来解决的
这种分离保持了:
- 浏览器生命周期管理隔离
- 快照确定性和低熵
- 代理推理可预测且高效
______________________________________________________________________
基准测试
与剧作家MCP的早期基准测试显示:
- 消耗的代币减少约19%
- 任务完成速度提高约33%
- 常见导航任务的成功率相同或更高
使用Claude Code在代表性的现实世界任务上运行基准测试。 结果取决于任务,应该被视为有方向性的,而不是绝对的。
______________________________________________________________________
代理Web界面是什么(不是什么)
代理Web界面为:
- 浏览器和LLM代理之间的语义接口
- 专注于可靠性和效率的MCP服务器
- 专为代理工作流程而非测试自动化而设计
代理Web界面不是:
- 通用浏览器
- 可视化测试或屏幕截图框架
- Puppeter的替代品
木偶仍然是执行层;Agent Web界面侧重于表示和推理。
______________________________________________________________________
用法
代理Web界面实现了 模型上下文协议(MCP) 并与以下人员合作:
- 克劳德代码
- 克劳德桌面
- 光标
- VS代码
- 任何兼容MCP的客户端
示例工作流包括:
- 浏览复杂的web应用程序
- 处理登录和同意流程
- 以较低的令牌使用率执行多步骤UI交互
______________________________________________________________________
克劳德代码
# Default: connects to your running Chrome, falls back to launching a new browser
claude mcp add agent-web-interface -- npx agent-web-interface@latest
# Explicit mode: always connect to your Chrome (no fallback)
claude mcp add agent-web-interface -e AWI_BROWSER_MODE=user -- npx agent-web-interface@latest
# Explicit mode: always launch a persistent browser
claude mcp add agent-web-interface -e AWI_BROWSER_MODE=persistent -- npx agent-web-interface@latest______________________________________________________________________
CLI参数
服务器只接受传输级别参数。浏览器配置是通过以下方式按会话进行的 navigate 工具。
| 参数 | 描述 | 默认值 |
|---|---|---|
--transport | 运输方式: stdio 或 http | stdio |
--port | HTTP传输端口 | 3000 |
浏览器会话模式
浏览器初始化在第一次工具调用时自动进行。集 AWI_BROWSER_MODE 要控制浏览器的启动方式:
| 模式 | 行为 | 配置文件 |
|---|---|---|
| _(未设置)_ | 自动:尝试 user → persistent → isolated | 取决于回退 |
user | 连接到正在运行的Chrome | Chrome的默认配置文件 |
persistent | 使用专用的持久配置文件启动Chrome | ~/.cache/agent-web-interface/chrome-profile |
isolated | 使用临时配置文件启动Chrome(全新) | 无(关闭时删除) |
示例:
# Auto mode (default) — connects to Chrome if running, else launches
npx agent-web-interface
# Always connect to your Chrome (fails if Chrome isn't running)
AWI_BROWSER_MODE=user npx agent-web-interface
# Always launch with persistent profile
AWI_BROWSER_MODE=persistent npx agent-web-interface
# Headless isolated browser
AWI_BROWSER_MODE=isolated AWI_HEADLESS=true npx agent-web-interface
# HTTP transport mode
npx agent-web-interface --transport http --port 8080______________________________________________________________________
使用现有的Chrome(Chrome 144+)
要连接书签、扩展名和登录会话,请执行以下操作:
- 导航至
chrome://inspect/#remote-debugging在Chrome浏览器中 - 启用远程调试并允许连接
- 集
AWI_BROWSER_MODE=user(或在自动模式下保持未设置)
{
"mcpServers": {
"agent-web-interface": {
"command": "npx",
"args": ["agent-web-interface@latest"],
"env": {
"AWI_BROWSER_MODE": "user"
}
}
}
}______________________________________________________________________
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
AWI_BROWSER_MODE | 浏览器模式: user, persistent,或 isolated | _(未设置:自动回退)_ |
AWI_HEADLESS | 无头运行浏览器(true/false) | false |
AWI_CDP_URL | 显式CDP端点(覆盖模式) | - |
AWI_TRIM_REGIONS | 设置为 false 全局禁用区域修剪 | true |
TRANSPORT | 运输模式超控(http) | - |
HTTP_HOST | HTTP传输主机 | 127.0.0.1 |
HTTP_PORT | HTTP传输端口 | 3000 |
LOG_LEVEL | 日志记录级别 | info |
CEF_BRIDGE_HOST | 用于CEF网桥连接的CDP主机 | 127.0.0.1 |
CEF_BRIDGE_PORT | 用于CEF网桥连接的CDP端口 | 9223 |
BRING_TO_FRONT | 设置为 true 在每次操作之前聚焦Chrome选项卡 | false |
CHROME_PATH | Chrome可执行文件路径(多租户) | - |
______________________________________________________________________
安装
git clone https://github.com/lespaceman/agent-web-interface
cd agent-web-interface
npm install
npm run build根据MCP集成说明在客户端中配置MCP服务器。
______________________________________________________________________
架构概述
Agent Web界面将关注点分为三层:
- 浏览器生命周期 --页面创建、导航、拆卸
- 语义快照生成 --区域、元素、标识符
- 行动决议 --将代理意图映射到浏览器操作
这种分离允许每一层独立进化,同时保持代理可见行为的稳定。
______________________________________________________________________
状态
Agent Web界面正在积极开发中。 API和快照格式可能会随着真实世界的代理使用情况的变化而演变。
特别欢迎建筑代理系统从业者的反馈。
______________________________________________________________________
许可证
麻省理工学院
