- browser_click_at(x, y):视口坐标点击(1280x800、左上角 原点),越界与非数字拒绝;live 视图里用户在截图上的 点击落点就走这个工具。 - browser_live_shot:固定文件 browser-live.png + 状态 sidecar browser-live.json(URL/标题/时间戳),watcher 轮询一个稳定路径即可;技能要求每次动作后都调一次, 保持画面最新。 - MCP 新增 browser_click_at / browser_live_shot 两个工具; 技能补 live 视图一节;测试 9 项(含 fake mouse、越界、 live 文件与状态读回)。
50 lines
2.5 KiB
Markdown
50 lines
2.5 KiB
Markdown
---
|
||
name: browser-automation
|
||
description: >
|
||
Use when a task needs a real browser: pages that render with
|
||
JavaScript, clicking through pagination or forms, filling and
|
||
submitting input, or taking a screenshot of what a page
|
||
actually looks like. For a plain static page or a quick fact,
|
||
use web_fetch / web_search first; open the browser only when
|
||
static fetch cannot see the content.
|
||
---
|
||
|
||
## 工具
|
||
|
||
`browser_navigate`(打开 URL,返回最终 URL 与标题)、
|
||
`browser_snapshot`(当前页标题、URL、正文,超 8000 字截断并标记)、
|
||
`browser_click`(按 CSS 选择器或 `text=...` 点击)、
|
||
`browser_fill`(按选择器填表)、
|
||
`browser_evaluate`(在页内跑 JS 表达式,返回字符串,限 4000 字)、
|
||
`browser_screenshot`(把当前页存成工作区内的 PNG,返回绝对路径与字节数)、
|
||
`browser_click_at`(按视口坐标点击,坐标系为 1280x800、原点左上角,
|
||
是 live 视图里用户点击的落点)、
|
||
`browser_live_shot`(把当前画面存成固定文件 browser-live.png,
|
||
附带 browser-live.json 状态:URL、标题、时间戳,供 watcher 轮询)、
|
||
`browser_close`(关闭浏览器,可重复调用)。
|
||
|
||
浏览器是单页的:一次 navigate,之后 snapshot / click / fill /
|
||
screenshot 都针对同一页;要换页再 navigate。
|
||
|
||
## live 视图(第一期)
|
||
|
||
有人在看浏览器时,每次 navigate / click / fill / click_at 之后
|
||
都要调一次 `browser_live_shot`,让 browser-live.png 保持最新;
|
||
不要只在最后截图一次。用户在 live 图上点的坐标会以 x/y 到达
|
||
`browser_click_at`,点完必须再 snapshot 一次确认变化,再调
|
||
`browser_live_shot` 刷新画面。
|
||
|
||
## 规则
|
||
|
||
1. 先 navigate,再 snapshot 看实际渲染结果;click / fill 后
|
||
必须再 snapshot 一次确认变化,不要凭猜测汇报。
|
||
2. 截图产出后用 shell / PIL 重新打开验证(格式、尺寸、非 0
|
||
字节)再交给用户;失败时贴出工具报错,不要换一张别的图顶替。
|
||
3. 网络走 egress 代理:不在 Tinyproxy 白名单里的域名会报
|
||
代理 403,这时如实说明,不要绕过白名单。
|
||
4. file:// URL 可用于打开工作区内已写好的测试页(验证 JS
|
||
执行、表单行为),是比外网更可靠的自测手段。
|
||
5. 不要用浏览器做静态抓取能做的事;不要用 evaluate 绕过
|
||
click / fill 的正常路径去改页面状态,除非 snapshot 已证明
|
||
正常路径走不通。
|