Rust 写的浏览器自动化 CLI:chrome-agent 为 LLM 减负
开发者发布 chrome-agent,一款 3MB 的 Rust 工具,主打用 a11y 树替代 DOM,将页面快照压至…
chrome-agent 是一款专为 LLM 代理设计的浏览器自动化 CLI 工具,作者将其定位为「面向代理的浏览器」,强调一件事:让模型把 token 花在推理上,而不是花在解析网页上。项目与 Google / Chrome 团队无任何关联,是社区独立开发作品。
核心思路:把 token 砍下来
传统的 Playwright 快照一次返回约 2,000 token 的原始 HTML,代理光读懂页面就要消耗大量上下文。chrome-agent 直接读取浏览器的无障碍树并剥离噪声,把单次页面快照压缩到约 50 token,相对 DOM 减少约 96%。
- 元素标识基于 Chrome 的 backendNodeId,在 DOM 节点存在期间保持稳定,无需写 CSS 选择器。
- 所有动作命令支持加
--inspect,一次调用同时执行动作并返回新页面状态,省掉第二轮往返。 - 错误信息自带
hint字段,例如{"ok":false,"error":"...","hint":"run inspect"},让模型直接读懂下一步该做什么。 - 提供
read(类 Firefox 阅读模式)、extract(自动识别列表 / 表格)、network(抓 API 载荷)三套内容提取命令,全程不写选择器。
形态与部署
工具以单一 Rust 二进制形式发布,体积约 3 MB,无需 Node.js、npm 或 Playwright 运行时,Linux 版本走 musl 静态链接,可跨发行版运行。代码量约 8.8K 行,作者刻意与 Vercel 的 agent-browser(4 万行 Rust,含仪表盘、云浏览器、可视化调试等)走相反路线:一个做平台,一个追求极致精简。
安装方式包括:
npx skills add sderosiaux/chrome-agent(同时安装SKILL.md,让代理自动学会调用)npm install -g chrome-agent(预编译包)npx chrome-agent --help(零安装直接试用)cargo install chrome-agent(从源码编译)
反检测与多代理隔离
针对 Cloudflare 等常见的 headless 检测,作者默认内置 7 项 CDP 补丁,其中刻意跳过 Runtime.enable 这一「没人提过的检测向量」。多代理场景下,通过 --browser agent1、--browser agent2 参数即可为不同代理分配独立 Chrome 进程,避免互相抢同一个浏览器实例。
与同类工具的取舍
chrome-agent 与 agent-browser 不是替换关系:前者把代理能完成的事做到最轻,后者把可视化的运营平台做到最全。选择标准取决于 agent 是更需要监控与云浏览器,还是更需要把上下文预算留给推理。chrome-agent 还在快速迭代中,仓库地址为 sderosiaux/chrome-agent。
