feat: 浏览器自动化 MCP(Playwright)+ browser-automation 技能
- playwright_browser.Browser:单页 Chromium,navigate / snapshot(正文 8000 字截断标记)/ click / fill / evaluate / screenshot(工作区内)/ close;启动参数 --no-sandbox + --disable-dev-shm-usage(runsc + 1003 用户实测必需), 代理显式传给 launch(Chromium 在 Linux 下不稳定地读 env 代理),浏览器路径 PLAYWRIGHT_BROWSERS_PATH=/opt/ms-playwright。 - playwright_mcp:stdio MCP,7 个 browser_* 工具,同一进程 单 Browser 实例;测试用 fake browser / fake factory。 - worker:--playwright-mcp flag,_tenant_dirs 播种两个脚本 + [mcp_servers.playwright],_prepare_tenant 写 env(代理 + 浏览器路径,MCP 子进程不继承 Codex 进程 env,镜像 ENV 在此必须重写,缺了会报 Executable doesn't exist)。 - 技能 browser-automation:JS 页、翻页、表单、截图时用, 静态页优先 web_fetch / web_search;截图须 PIL 读回验证。 - 镜像(层构建,非本 PR):FROM latest + fonts-noto-cjk + playwright + chromium(npmmirror)+ install-deps,3.77GB; runsc + 1003 + docker-codex 条件下 JS 执行、example.com 标题、截图均已实测通过。
This commit is contained in:
1 parent
872b23a296
commit
c9a483282d
5 files changed
+821
-2
No files matched your search
@@ -0,0 +1,37 @@
|
||||
---
|
||||
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_close`(关闭浏览器,可重复调用)。
|
||||
|
||||
浏览器是单页的:一次 navigate,之后 snapshot / click / fill /
|
||||
screenshot 都针对同一页;要换页再 navigate。
|
||||
|
||||
## 规则
|
||||
|
||||
1. 先 navigate,再 snapshot 看实际渲染结果;click / fill 后
|
||||
必须再 snapshot 一次确认变化,不要凭猜测汇报。
|
||||
2. 截图产出后用 shell / PIL 重新打开验证(格式、尺寸、非 0
|
||||
字节)再交给用户;失败时贴出工具报错,不要换一张别的图顶替。
|
||||
3. 网络走 egress 代理:不在 Tinyproxy 白名单里的域名会报
|
||||
代理 403,这时如实说明,不要绕过白名单。
|
||||
4. file:// URL 可用于打开工作区内已写好的测试页(验证 JS
|
||||
执行、表单行为),是比外网更可靠的自测手段。
|
||||
5. 不要用浏览器做静态抓取能做的事;不要用 evaluate 绕过
|
||||
click / fill 的正常路径去改页面状态,除非 snapshot 已证明
|
||||
正常路径走不通。
|
||||
Reference in new issue
Block a user