Web网页操作
把“联网”拆成发现信息、读取页面和操作浏览器三类能力。先定义成功标准,再选择成本最低且足以完成任务的方式;遇到障碍时根据结果换路,不在同一种方法上机械重试。
多 Agent 兼容约定
本 Skill 不依赖某个 AI 品牌的专属目录或工具名称。
- 将包含本
SKILL.md的目录解析为SKILL_DIR,下文命令中的$SKILL_DIR均指该绝对路径。不要假定环境已提供某个品牌专属的目录变量。 WebSearch、WebFetch、Shell、图像读取和子 Agent 都是能力标签。使用当前 Agent 环境中功能相当的工具;若某项能力不存在,就选择可用路径并说明限制。- CDP 模式需要本地 Node.js 22+、Chrome/Edge/Chromium,以及 Agent 能运行本地命令并访问本机浏览器。云端或无本地浏览器环境中,不得声称已使用 CDP。
- 当前 Agent 不支持子 Agent 时,按优先级串行完成任务;不要因为缺少并行能力而中止普通调研。
在 Shell 中可先设置:
SKILL_DIR="<包含本 SKILL.md 的绝对目录>"
授权与安全边界
- 只访问用户明确要求或完成任务所必需的页面和数据,不因为浏览器已有登录状态就扩大范围。
- 不读取、输出或转存 Cookie、会话令牌、密码及其他认证秘密。
- 发布、发送、提交、购买、删除、改动账号或配置等会产生外部影响的操作,必须得到用户明确授权;目标或最终内容不清楚时,停在执行前确认。
- 不绕过验证码、付费墙、访问控制或网站权限,不规避平台安全机制;遵守适用法律、网站条款和合理访问频率。
- 部分平台会识别自动化或高频操作,可能限流或封禁账号。开始涉及登录账号的浏览器操作前,向用户提示风险。
风险提示可简要写为:
> 部分网站对自动化操作检测严格,可能出现限流或账号风险。建议先从读取和整理等低风险任务开始,重要操作由你确认后再执行。
前置检查
需要使用真实浏览器前,运行:
node "$SKILL_DIR/scripts/check-deps.mjs"
按结果处理:
exit 0:浏览器与 CDP Proxy 已就绪。exit 2:存在可用浏览器但未设置偏好;询问用户选择 Chrome 或 Edge。可用--browser <chrome|edge>临时指定,或在config.env写入WEB_PAGE_OPERATIONS_BROWSER。exit 1:按输出提示处理。可自动解决的环境问题先安全处理;仍需用户开启远程调试或选择浏览器时再询问。
脚本首次运行会尝试从 templates/config-template.txt 创建本地 config.env。若 Skill 目录不可写,改用 --browser 临时指定,或把可写配置路径放入 WEB_PAGE_OPERATIONS_CONFIG 环境变量。
浏览与调研方法
1. 明确目标
先确定用户要取得什么信息、完成什么操作、输出什么结果,以及什么状态才算完成。不要把“打开网页”误当作任务终点。
2. 选择起点
优先使用足够完成任务的轻量方式:
| 场景 | 优先能力 |
|---|---|
| 发现来源、获取搜索摘要 | 当前 Agent 的网页搜索工具 |
| 已知 URL,读取公开静态页面 | 当前 Agent 的网页读取/HTTP 获取工具 |
| 读取 meta、JSON-LD 或原始 HTML | curl 或等效 HTTP 工具 |
| 文章、博客、文档、PDF 的正文预处理 | Jina Reader(可选,注意可能有信息损耗) |
| 动态渲染、需要登录、需要点击滚动或自由导航 | 浏览器 CDP |
搜索引擎和聚合平台用于发现来源。核实事实时优先回到官网、官方平台、原始文档、论文或源码。
Jina Reader 的常用格式为 https://r.jina.ai/http://example.com。它适合正文型页面,不宜依赖它读取数据面板、复杂商品页或需要交互的页面。
3. 根据结果换路
每一步都用结果对照成功标准:
- 搜索没命中,可能是关键词、来源选择或目标本身有问题;不要只换近义词反复搜索。
- 页面报错或内容缺失时,判断是访问方式、登录状态、动态加载还是目标确实不存在。
- 弹窗和登录墙只有在阻断目标时才处理;如果目标内容已在页面结构中,不做无关交互。
- 达到成功标准后及时停止,不为了形式上的“完整”继续访问无关页面。
本地浏览器资源
用户提到本人访问过的页面、忘记地址的内部系统、浏览器书签或历史记录时,可运行:
node "$SKILL_DIR/scripts/find-url.mjs" [关键词...] [--only bookmarks|history] [--browser chrome|edge] [--limit N] [--since 1d|7h|YYYY-MM-DD] [--sort recent|visits]
关键词按空格分词并进行 AND 匹配,检索标题和 URL;默认遍历已安装的 Chromium 系浏览器。仅在用户请求与其浏览器历史、书签或内部系统有关时使用,不主动探查无关浏览记录。
浏览器 CDP 模式
CDP Proxy 连接用户日常使用的 Chrome、Edge 或 Chromium,使用浏览器当前登录状态。默认只操作 Agent 自己新建的后台标签页,不修改或关闭用户原有标签页;任务结束后关闭自己创建的标签页。
启动或检查:
node "$SKILL_DIR/scripts/check-deps.mjs"
常用 API:
# 列出标签页
curl -s http://localhost:3456/targets
# 新建后台标签页,URL 从 POST body 传入
curl -s -X POST --data-raw 'https://example.com' http://localhost:3456/new
# 获取页面信息或后退
curl -s "http://localhost:3456/info?target=ID"
curl -s "http://localhost:3456/back?target=ID"
# 读取页面结构或执行页面内表达式
curl -s -X POST "http://localhost:3456/eval?target=ID" -d 'document.title'
# 点击、真实鼠标事件和上传用户明确指定的文件
curl -s -X POST "http://localhost:3456/click?target=ID" -d 'button.submit'
curl -s -X POST "http://localhost:3456/clickAt?target=ID" -d 'button.upload'
curl -s -X POST "http://localhost:3456/setFiles?target=ID" -d '{"selector":"input[type=file]","files":["/path/to/file.png"]}'
# 滚动、截图、导航和关闭
curl -s "http://localhost:3456/scroll?target=ID&direction=bottom"
curl -s "http://localhost:3456/screenshot?target=ID&file=/tmp/shot.png"
curl -s -X POST --data-raw 'https://example.com' "http://localhost:3456/navigate?target=ID"
curl -s "http://localhost:3456/close?target=ID"
需要详细返回格式、页面提取模式和错误处理时,读取 references/cdp-api.md。
操作原则
- 先读取页面标题、URL和结构,再决定点击、滚动或提取方式。
- 优先使用页面中真实存在的链接和可交互元素,保留站点生成 URL 的完整参数;不要自行拼接未知参数。
- 页面存在 Shadow DOM 或 iframe 时,可用
/eval递归检查结构,但不得进入任务无关区域。 - 提取图片前可适量滚动触发懒加载;需要分析视频时,可在用户授权范围内定位时间点并截图。
- 短时间大量新建标签页可能触发平台风控,控制并发与频率。
- 登录状态不足时,只在确认登录能够解决当前阻碍后,请用户在浏览器中自行登录;不要索要密码或验证码。
并行调研
仅在当前 Agent 支持子 Agent,且目标彼此独立、单个任务量足够大时并行。每个子 Agent 创建并关闭自己的后台标签页,以不同 targetId 隔离操作。
给子 Agent 的任务描述应说明目标、交付物和边界,并要求加载 web-page-operations Skill;不要用“搜索”“抓取”等词预先锁定具体手段。目标有依赖关系或只是简单单页查询时,由主 Agent 串行处理。
信息核实
| 信息类型 | 优先一手来源 |
|---|---|
| 政策、法规 | 发布机构官网 |
| 企业信息 | 企业官网、公告或官方文档 |
| 学术声明 | 原始论文、研究机构官网 |
| 工具能力与用法 | 官方文档、源码 |
只有次级来源时,明确说明尚未找到官方原文及可能存在转述误差。不要把多个转载同一消息的页面当成相互独立的证明。
站点经验
将经用户授权、已经验证且值得复用的站点操作经验保存为 references/site-patterns/<domain>.md。只记录页面结构、有效 URL 模式、操作策略和已知陷阱,不保存账号、Cookie、令牌、个人信息或一次性链接。
站点经验格式:
---
domain: example.com
aliases: [示例, Example]
updated: 2026-08-12
---
## 平台特征
## 有效模式
## 已知陷阱
经验带有时效性;复用失败时回到通用流程,并只用新验证的事实更新文件。Skill 目录不可写时,在当前任务中使用经验,不强行持久化。
来源与许可
本 Skill 由 eze-is/web-access v2.5.3 适配而来,保留原作者一泽 Eze 的 MIT 许可。当前版本将名称改为“Web网页操作”,slug 为 web-page-operations,并移除特定 Agent 的安装元数据与路径依赖。