web-access
让 AI 编程 Agent 真正联网:通过 CDP 操控真实浏览器,访问任意动态网页内容
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让 AI 编程 Agent 真正联网:通过 CDP 操控真实浏览器,访问任意动态网页内容
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否遇到过这样的困境——让 AI 编程助手去查某篇微信公众号文章的内容,它翻遍了整个互联网却告诉你“页面无法访问”?或者让它在小红书上搜索产品评价,结果只返回一堆不知所云的乱码?这不是 AI 不够聪明,而是它的“手”不够长——原生联网工具根本无法触达那些需要浏览器才能打开的页面。
web-access 正是来解决这个问题的。它是一个专为 AI 编程 Agent(Claude Code、Cursor、Codex CLI、Gemini CLI 等)打造的 Skill 插件,安装之后,AI 就拥有了操控真实浏览器的超能力:不仅可以访问任何网页,还能像真人一样点击按钮、填写表单、提取媒体内容,彻底打破静态爬虫的局限。
AI Agent 的原生联网能力通常只有三板斧:搜索引擎、WebFetch(抓取静态 HTML)、curl 命令。它们工作原理简单直接——把 URL 发过去,服务器返回 HTML,AI 再从中提取文字。问题在于,今天互联网上有大量内容根本不是“服务器直接返回 HTML”能搞定的。
微信公众号文章需要微信客户端打开;小红书笔记有复杂的登录态和动态渲染;B 站视频需要浏览器播放器加载;Bing 搜索在登录状态下的结果与游客状态截然不同;GitHub 的 PR 评论页面有懒加载;LinkedIn 的职业档案需要滚动才完整。这些场景,静态联网工具统统失效。
web-access 引入的 CDP(Chrome DevTools Protocol)模式,正是绕过这一限制的关键。CDP 是 Chrome 浏览器内置的调试接口,开放给外部程序直接操控浏览器实例——包括页面导航、DOM 操作、JavaScript 执行、网络拦截等一切真实浏览器能做的事。web-access 充当 AI Agent 与 CDP 之间的“翻译层”:AI 下达高层指令(“去小红书搜这款耳机的评价”),Skill 转化为 CDP 命令(导航到 xiaohongshu.com → 执行搜索 → 等待动态渲染 → 提取笔记内容)。
web-access 并不是非 CDP 不可的偏执方案。它的设计哲学是“按需升级”——先用轻量工具,失效再升级到重量级工具,避免不必要的资源消耗。
第一层:轻量工具(WebSearch、WebFetch、Jina Reader)。适用于公开信息的简单检索,速度快、消耗低。
第二层:curl 原始 HTML。当你需要未经过滤的 HTML 源码(比如提取 meta 标签、JSON-LD 结构化数据)时,直接 curl 更可靠。
第三层:CDP 浏览器操作。处理所有“静态层无效”的场景——需要登录态的页面、动态渲染、JavaScript 交互、视频截帧等。这一层是 web-access 的核心竞争力所在。
AI Agent 在执行任务时,系统会引导它先评估任务性质,选择最可能直达的起点。一次成功就结束;不成功则自动升级到更根本的获取方式。整个过程由 Skill 内的决策逻辑驱动,用户无需介入。
web-access 的另一个精妙设计在于“直接复用用户已有的浏览器”,而不是另起一个 headless 浏览器实例。这带来了一个巨大的天然优势:用户的登录态、Cookie、书签全部保留。
具体工作方式是:用户在 Chrome 或 Edge 地址栏打开 chrome://inspect/#remote-debugging(或 Edge 的 edge://inspect/#remote-debugging),勾选“Allow remote debugging for this browser instance”。这相当于给浏览器开了一个受控的后门。web-access 的 CDP Proxy(一个 Node.js 脚本)通过 WebSocket 连接到浏览器的调试端口,获取所有已打开 tab 的控制权。
CDP Proxy 提供了一套简洁的 HTTP API:
GET /targets — 列出所有已打开的页面POST /new — 创建新后台 tab 并导航到指定 URLGET /close?target=ID — 关闭指定 tabPOST /navigate?target=ID — 在已有 tab 中导航POST /eval?target=ID — 在页面中执行任意 JavaScriptPOST /screenshot?target=ID — 截取页面截图这些 API 解决了 URL 中含特殊字符(如小红书的 token)的问题——v2.5.3 起,URL 改为通过 POST body 传输,避免了 query string 中的 & 被错误解析导致 token 丢失的 bug。
此外,CDP Proxy 还实现了 Tab 级隔离与自动清理:某个 target 空闲 15 分钟后自动关闭,防止浏览器标签页堆积;Agent 共享同一个 Proxy 实例,Tab 之间互不干扰。
web-access 还有一个值得称道的特性:站点经验积累。Skill 会按域名存储“站点模式”——URL 规律、平台特征、已知陷阱(比如某些站点的反爬策略)。这些经验以文件形式持久化在本地(references/site-patterns/),跨 Session 复用。换句话说,Agent 第一次访问某个平台可能需要“摸索”,第二次就轻车熟路了。
web-access 的安装方式极为简洁,推荐方式是 npx skills add eze-is/web-access,由 skills CLI 自动检测 Agent 环境并安装到正确位置。Claude Code 用户也可以通过 Plugin 方式安装。
唯一的前置依赖是 Node.js 22+(使用原生 WebSocket API),以及一台已开启 remote debugging 的 Chrome 或 Edge 浏览器。整个安装过程不超过 1 分钟。
配置偏好(默认浏览器)保存在 config.env(gitignored,不会意外提交),支持单次 --browser chrome 或 --browser edge 覆盖,不修改配置文件。
web-access 并不是银弹,有几个明显的局限值得提及。
首先,它不是一个独立部署的服务,而是依附于 AI 编程工具的 Skill。这意味着它无法通过 Docker 部署到远程服务器,所有操作都发生在用户本机。
其次,对部分严格反自动化的站点存在封禁风险。网站对浏览器自动化操作有检测手段(无头浏览器特征、鼠标轨迹异常等),web-access 内置了一些防护措施(如复用真实浏览器实例),但无法完全消除风险。用户在使用时需要对此有预期。
第三,没有配套的 Web UI,所有操作都需要通过 AI Agent 发起命令,对最终用户来说“黑箱感”较强。
第四,高度依赖特定工具生态(Claude Code、Cursor 等),对其他 Agent 框架的兼容性取决于它们是否支持 SKILL.md 机制。
web-access 解决的不只是“能不能访问某网页”的小问题,而是 AI Agent 从“信息消费者”升级为“信息操作者”的关键一步。当 AI 能像真人一样操控浏览器,它能做的事情边界就大幅拓宽了:自动化测试、竞品调研、内容聚合、系统操作……这些场景在以前要么需要专门的爬虫系统,要么需要人工介入。
从开源社区的响应来看(6954+ GitHub Stars),这个痛点确实广泛存在。skills CLI 作为 Skill 包管理器的兴起,也预示着 AI Agent 扩展生态正在走向标准化——不只是在模型层卷算力,也在工具层卷生态。对于关注 AI 编程工具发展的开发者和 AI 爱好者而言,web-access 是一个值得深入了解的项目。