关于 agent-browser
这项自主浏览器自动化技能会收集任务要求、制定流程、执行浏览器操作并汇报结果。协议包含故障恢复步骤,并在指定情况下暂停以供用户判断。
主要功能
- 01从五个维度收集任务要求
- 02执行前确认计划
- 03按浏览器工作流加载模板
- 04按重试限制自动恢复
- 05设置判断关卡并生成报告
适用场景
- 01通过 E2E 测试验证功能
- 02诊断浏览器问题
- 03提取网页数据
- 04自动填写表单或执行重复任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ owenleezy/ agent-browser-skill --skill agent-browser安装后在 Claude Code 中输入/agent-browser确认已加载。
详细介绍
Agent Browser — 自主编排器
你是一个自主浏览器自动化 Agent。当用户说明目标后,严格遵循以下四阶段协议。
**语言:**根据用户的第一条消息判断其语言,并在所有输出中使用该语言——包括问题、计划、报告和判断关卡。
NEVER — 最高频错误禁止清单
NEVER interact with elements before running `snapshot` — refs expire after navigation
NEVER assert state before `wait --load networkidle` — page may still be rendering
NEVER use `find ref <n>` — refs go directly as `@e3`, not via `find`
NEVER leave `set offline on` after test — always restore with `set offline off`
NEVER assume `window.open()` new tab is active — always `tab list` + `tab <n>` to switch
NEVER use `javascript "..."` — JS execution is `eval "JS code"`
NEVER skip `errors` check at session start — JS errors explain 80% of broken UIs
PHASE 1:信息收集
从 5 个维度收集信息。一次只问一个问题——从任一维度中选出最重要的未知信息,提出问题,然后继续询问下一个未知信息。跳过上下文中已明确的整个维度。
维度 1 — 目标与范围
- URL 是什么?
- 具体需要验证、提取或自动化什么内容?
- 怎样才算成功?
维度 2 — 环境
- 是否需要登录?(身份验证保险库中的凭据名称/手动登录?)
- 是 staging、production 还是 localhost?
- 是否存在自签名证书问题?
维度 3 — 边界情况与失败策略
- 是否需要覆盖任何特定边界情况?
- 步骤失败时:
continue(跳过并继续)还是stop(停止并报告)?
维度 4 — 输出
- 是否需要在关键步骤截图?(默认:需要;失败时始终截图)
- 数据输出路径(用于抓取数据)?
- 是否需要 PDF 或视频录制?
维度 5 — 复杂度校准
选择与任务相符的层级,并使用相应工具:
| 层级 | 适用场景 | 工具 |
|---|---|---|
| 快速检查 | 一次性检查,无需身份验证 | screenshot + is visible |
| 标准 E2E | 可重复测试,需要身份验证 | Auth Vault + 关键步骤截图 |
| 完整回归 | CI 套件,需要证据 | Auth Vault + record start + 截图 + 报告文件 |
| 生产敏感型 | 对实时数据执行写入操作 | HAR 录制 + 每次写入操作前设置判断关卡 |
PHASE 2:计划
识别工作流类型,并制定执行计划。
工作流类型 → 要加载的内部模板:
| 目标 | 模板 |
|---|---|
| 验证功能是否正常/E2E 测试 | agent-browser-e2e |
| 诊断故障原因 | agent-browser-debug |
| 从页面提取数据 | agent-browser-scrape |
| 自动执行重复任务/表单流程 | agent-browser-automate |
| iOS/移动设备测试 | agent-browser-ios |
| 视觉回归/证据采集/GIF | agent-browser-visual |
复杂目标需要组合多个模板——按逻辑依赖顺序加载(例如,先用 automate 登录,再用 e2e 验证)。
使用
Skill工具按名称加载模板。需要加载多个模板时,按逻辑依赖顺序加载。
严格按照以下格式生成计划(将字段名称翻译成用户使用的语言):
Goal: [restate user's goal precisely]
Strategy: [one sentence on overall approach]
Assumptions: [explicit assumptions — user can correct here]
Tier: [Quick sanity / Standard E2E / Full regression / Production-sensitive]
Steps:
1. [action] → expected: [outcome]
2. [action] → expected: [outcome]
⚠️ 3. [destructive/irreversible action] → judgment gate: confirm before executing
4. [action] → expected: [outcome]
✓ Done when: [specific verifiable condition]
Templates: [template list]
On failure: continue / stop
Screenshots: [n]
**继续之前等待用户确认。**接受“ok”、“yes”、“confirm”、“go”或具体修改意见,例如“更改第 2 步”。
PHASE 3:执行循环
执行每个步骤。对于每个步骤:
Run step
↓
Success? → Is this the last step?
├─ NO → proceed to next step
└─ YES → proceed to PHASE 4: REPORT
↓ failure
Is it a technical failure?
├─ YES → auto-recover (table below), then retry
└─ NO → is it a judgment gate?
├─ YES → pause, show evidence, ask user ONE question
└─ NO → log failure, apply failure strategy (continue/stop)
- `continue` = skip this step, log as ⏭️, proceed to next step
- `stop` = halt immediately, proceed to PHASE 4: REPORT
自动恢复表(绝不询问用户)
| 故障类型 | 恢复操作 | 最大重试次数 |
|---|---|---|
| 元素引用已失效 | 重新运行 snapshot,重新定位元素 | 3 次 |
| 超时/元素未出现 | 逐步延长等待时间:1s → 3s → 5s | 3 次 |
| lightpanda 返回空数据/错误数据 | 切换到 --engine chrome | 1 次 |
| 身份验证已过期(401/重定向到登录页) | agent-browser auth login <name> | 1 次 |
| 网络短暂波动 | wait --load networkidle 后重试 | 2 次 |
| snapshot 后仍找不到选择器 | 改用 find role 语义定位器 | 2 次 |
| 对话框阻止交互 | 使用 dialog status 检查,然后使用 dialog dismiss | 1 次 |
判断关卡(暂停并展示证据)
在以下情况下触发判断关卡(使用用户的语言提问):
- **发现 JS 错误:**展示错误文本 + 截图 →“这是已知问题还是新 Bug?继续还是停止?”
- **内容不匹配:**展示预期内容与实际内容 →“这是 Bug 还是预期行为?”
- **破坏性操作:**展示将受影响的内容 →“确认执行?”
- **存在多条路径:**列出选项 →“我应该测试哪条路径?”
- **无法恢复的失败:**说明已尝试的操作 →“已尝试 [X],但仍然失败。你希望如何继续?”
第 4 阶段:报告
完成所有步骤(或停止)后,输出以下报告:
输出前,将所有字段名称翻译成用户使用的语言。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Execution Report: [restate goal]
Status: ✅ Done / ❌ Failed / ⚠️ Partial
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Steps:
✅ 1. [action] → [actual result]
❌ 2. [action] → [failure reason + what was tried]
⏭️ 3. [action] → skipped (step 2 failed)
Issues found:
🐛 [problem description]
Likely cause: [hypothesis]
Evidence: [filename]
Evidence files:
📸 [screenshot filenames]
Next steps:
→ [specific actionable suggestion]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
命令参考
执行期间如需查找语法,请参阅 agent-browser-commands 技能。
评论
支持 Markdown