web-access 是一个用于 AI 代理的联网操作技能,旨在统一处理所有需要访问网络的场景。根据技能说明,所有联网操作都应通过此技能处理,包括搜索、网页抓取、登录后操作、动态页面交互等。触发场景涵盖用户要求搜索信息、查看网页内容、访问需要登录的网站、操作网页界面、抓取社交媒体内容(如小红书、微博、推特等)、读取动态渲染页面,以及任何需要真实浏览器环境的网络任务。
用途与设计哲学
该技能强调“像人一样浏览,不像机器人一样执行程序”。人类浏览网页时不会在开始前列出完整步骤,而是带着目标进入,边看边判断,遇到阻碍就解决,发现内容不够就深入。技能行为遵循三个核心判断:第一,明确需要什么信息,选择最轻且能直达目标的方式;第二,判断信息是否足够完成任务,不过度采集;第三,遇到阻碍(如弹窗、登录墙、广告、加载失败)时,在层内解决,不退回轻量工具,不打扰用户,除非确认无法自行解决。
主要能力
技能提供三种信息获取通道,根据目标信息性质选择:
- WebSearch:用于只需搜索摘要或关键词结果,或需要发现信息来源的场景。
- WebFetch:用于 URL 已知的静态公开页面。请求时加 header
Accept: text/markdown, text/html,支持该协议的网站可直接返回 Markdown,节省约 80% token。失败时(空内容 / 403 / JS 渲染)升级到浏览器层。 - 浏览器 CDP:用于社交媒体、内容平台(微信公众号、微博、小红书、X/Twitter 等)、需要动态内容、登录态、交互操作,或需要像人一样在浏览器内自由导航探索的场景。CDP 不要求 URL 已知,可从任意入口出发,通过页面内搜索、点击、跳转等方式找到目标内容。进入浏览器层后,区分操作型任务(用 accessibility tree 感知界面,无法识别时才截图辅助)和内容型任务(用 accessibility tree 读文字结构,同时判断图片是否承载核心信息,是则提取图片 URL 定向读取)。
技能禁止降级:进入更重的通道后,不得回头用轻量工具完成同一目标。唯一例外是浏览器操作中衍生的新子目标,可重新选择通道。
使用方式
首次安装时,需运行环境探测脚本 bash ~/.claude/skills/web-access/scripts/check-deps.sh,AI 根据输出处理缺失依赖,缺什么装什么,Chrome 缺失时提示用户手动下载(无法自动安装)。安装完成后,用户直接说明联网需求即可,技能会自动选择最合适的方式。Windows 用户需要 Git Bash 环境(安装 Git for Windows 即可)。
浏览器 CDP 模式通过 agent-browser CLI 控制。启动脚本 bash ~/.claude/skills/web-access/scripts/ensure-browser.sh,根据输出判断浏览器状态:返回 Browser ready on port 9222 表示脚本自己启动的,状态可信,任务结束后关闭;返回 already running 表示检测到残留进程,状态不可信,必须验证:运行 agent-browser --cdp 9222 open about:blank,成功则可用,失败则执行 close 后重新 ensure(任务结束后不关闭);返回 ERROR 或 agent-browser 无响应,执行 bash ~/.claude/skills/web-access/scripts/close-browser.sh 后重新运行。严禁切换到其他浏览器工具,因为 Playwright MCP 底层能力等效但 profile 路径不同,切换会丢失已有登录态。
常用命令包括:
agent-browser --cdp 9222 open <url>打开页面agent-browser --cdp 9222 snapshot -i可交互元素(操作用)agent-browser --cdp 9222 snapshot完整无障碍树(读文字用)agent-browser --cdp 9222 click @ref-123点击元素agent-browser --cdp 9222 fill @ref-123 "内容"填写输入框agent-browser --cdp 9222 wait load networkidle仅用于 click/fill 触发导航后;open 已内置等待,勿在 open 后使用agent-browser --cdp 9222 scroll down 3000触发懒加载agent-browser --cdp 9222 screenshot /tmp/x.pngagent-browser --cdp 9222 screenshot --annotatesnapshot -i ref 失效时的升级方案agent-browser --cdp 9222 eval "<js>"执行 JS,用于提取 DOM 信息
图片提取时,判断内容在图片里,用 eval 从 DOM 直接拿图片 URL,再定向打开截图读取。需注意懒加载:未进入视口的图片 naturalWidth 为 0,eval 前先 scroll 到底。过滤噪声:naturalWidth > 200 排除图标和头像。示例命令:
agent-browser --cdp 9222 scroll down 3000
agent-browser --cdp 9222 eval "JSON.stringify(Array.from(document.querySelectorAll('img')).map((img,i)=>({i,src:img.src,w:img.naturalWidth,h:img.naturalHeight})).filter(x=>x.w>200))"
agent-browser --cdp 9222 open <img_url>
agent-browser --cdp 9222 screenshot /tmp/img_n.png
视频内容获取:CDP headed 模式下浏览器真实渲染,截图可捕获当前视频帧。可 seek 到任意时间点截图,离散采样分析。示例:
agent-browser --cdp 9222 eval "document.querySelector('video').duration"
agent-browser --cdp 9222 eval "var v=document.querySelector('video'); v.currentTime=60; v.play()"
sleep 2
agent-browser --cdp 9222 screenshot /tmp/frame.png
agent-browser --cdp 9222 eval "document.querySelector('video').requestFullscreen()"
采帧粒度由任务需求自行判断,无需用户指定。
登录判断:核心问题是目标内容是否拿到。打开页面后先尝试获取目标内容,结合领域知识和页面实际反馈判断。即使页面显示登录提示,只要目标内容已拿到,就不需要打扰用户登录。只有当确认目标内容无法获取时,才推断登录是否能解决,若成立则告知用户具体内容无法获取,请求登录,登录完成后无需重启浏览器,直接继续原任务。
任务结束时,如果 ensure-browser.sh 返回 Browser ready(本次启动),则关闭浏览器,必须用脚本 bash ~/.claude/skills/web-access/scripts/close-browser.sh,勿直接 kill,否则会留下崩溃窗口。
对于核实任务,目标是一手来源,而非更多二手报道。搜索用于定位来源,不用于证明真伪。找到来源后直接访问读取原文。信息类型对应一手来源:政策/法规对应发布机构官网,企业公告对应公司官方新闻页,学术声明对应原始论文/机构官网。找不到官网时,权威媒体的原创报道(非转载)可作为次级依据,但需向用户说明:“未找到官方原文,以下核实来自[媒体名]报道,存在转述误差可能。”
技能还强调工具能力边界理解:对任何工具(MCP、CLI、库)的能力有疑问时,如果没有足够知识把握,先查官方文档,如无足够文档介绍,可考虑查看源码,再作判断,不猜测、不把不确定性转移给用户。
适用场景
适用于需要搜索信息、查看网页内容、访问需要登录的网站、操作网页界面、抓取社交媒体内容(小红书、微博、推特等)、读取动态渲染页面,以及任何需要真实浏览器环境的网络任务。特别适合需要处理动态内容、登录态、交互操作或自由导航探索的场景。
限制
- 首次使用需运行环境探测并安装缺失依赖,Chrome 缺失时无法自动安装,需用户手动下载。
- Windows 用户需要 Git Bash 环境。
- 浏览器 CDP 模式仅支持 agent-browser CLI,严禁切换到其他浏览器工具,切换会丢失已有登录态。
- 进入更重通道后禁止降级回轻量工具。
- 未提供具体收费、价格、平台兼容性等详细信息。
参考资料
不常用命令(drag、storage、pdf 等)参考 references/commands.md;登录流程细节参考 references/login-flow.md。