界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

agent-browser

agent-browser

【效率与协作】兜底/隔离浏览器技能:用 agent-browser CLI 操控内置独立 Chrome(自带 profile,与用户本机 Chrome 隔离)。做单步离散操作——打开网页、点击/填表、读取内容、截图、跑一小段 JS。snapshot 输出极省 token(~300 vs 全 DOM 的 ~4000)。三档浏览器技能里排第二:日常交互优先 use-browser(复用本机真实登录态);需要循环/条件/多页聚合的复杂脚本用 dev-browser。仅在 use-browser 不可用(未装扩展/server 不在本机)、需要隔离 profile、或做简单独立操作时用本技能。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: agent-browser trigger: "agent-browser|独立浏览器|隔离浏览器|无痕浏览器|独立 profile|干净 profile|扩展没装|扩展没连|扩展不可用|兜底浏览器|抓取网页|爬网页|scrape|automate web|自动登录网站|登录网站" description: "兜底/隔离浏览器技能:用 agent-browser CLI 操控内置独立 Chrome(自带 profile,与用户本机 Chrome 隔离)。做单步离散操作——打开网页、点击/填表、读取内容、截图、跑一小段 JS。snapshot 输出极省 token(~300 vs 全 DOM 的 ~4000)。三档浏览器技能里排第二:日常交互优先 use-browser(复用本机真实登录态);需要循环/条件/多页聚合的复杂脚本用 dev-browser。仅在 use-browser 不可用(未装扩展/server 不在本机)、需要隔离 profile、或做简单独立操作时用本技能。" metadata: requires: bins: ["agent-browser"]

agent-browser

定位:兜底浏览器技能。日常浏览器操作(点击、填表、截图、接管当前 tab)优先用 use-browser——它能复用用户本机 Chrome 的真实 cookie 和登录态。只有以下情况才用本技能:

  • 本机没装 Ethan Browser 扩展 / 扩展没连上
  • server 不在本机(远程跑、没法连本机扩展)
  • 需要一个隔离的独立 profile(不想动用户日常 Chrome、或要测干净登录流程)
  • 简单的独立操作(开页面、点一下、读内容、截图)在隔离环境里跑

需要循环 / 条件判断 / 遍历多页 / 聚合结构化结果("一个脚本跑完多步")时,用 dev-browser——它给你完整 Playwright API,比逐条 CLI 命令更合适。本技能专注单步离散操作。

用 agent-browser 这个原生 CLI 操控内置独立 Chrome。守护进程在命令之间常驻,所以多条命令会复用同一个浏览器会话。

前置检查(第一次用先做)

agent-browser --version
  • 能输出版本号 → 直接往下用。
  • command not found → 装 CLI(任选其一):
    brew install agent-browser      # macOS 首选
    npm install -g agent-browser    # 跨平台
    
  • 报找不到浏览器 / 第一次用 → 下载内置 Chrome(只需一次):
    agent-browser install
    

装好后告诉用户「浏览器能力已就绪」,再继续。

核心套路(AI 必须按这个来)

不要凭空猜选择器。先 snapshot 拿 @ref,再用 @ref 操作:

agent-browser open example.com          # 1. 打开
agent-browser snapshot -i               # 2. 拿可交互元素的 @e1 @e2 ... 引用
agent-browser fill @e3 "user@x.com"     # 3. 用引用填表/点击
agent-browser click @e5
agent-browser get text                  # 4. 读页面文字
agent-browser close                     # 5. 用完关掉

snapshot -i 只输出可交互元素,最省 token;要读正文用 agent-browser get text。

命令速查

用途命令
打开/导航open <url>、back、forward、reload
看页面结构snapshot -i(仅交互元素)、snapshot -c(精简)、snapshot -d <n>(限深度)
点击click <@ref|css>、dblclick、hover
输入fill <sel> <text>(清空再填)、type <sel> <text>、press <key>(如 Enter、Control+a)
选择/勾选select <sel> <val>、check <sel>、uncheck <sel>
按语义找元素find role button click --name 提交、find text "登录" click
读取信息get text [sel]、get html [sel]、get value <sel>、get url、get title、get attr <name> <sel>
判断状态is visible <sel>、is enabled <sel>、is checked <sel>
等待wait <sel>、wait <ms>、wait --load networkidle(慢页面)
滚动scroll down [px]、scrollintoview <sel>
截图screenshot [path]、screenshot --full、screenshot --annotate(带编号标注,给视觉模型看)
导出 PDFpdf <path>
跑 JSeval "<js>"
上传/下载upload <sel> <files...>、download <sel> <path>
控制台/报错console、errors
关闭close

复用登录态(很重要)

默认每次是干净的无痕会话。要让网站记住登录,用持久 profile 或命名会话:

# 持久 profile:cookies / IndexedDB / 缓存都留着,下次还在
agent-browser --profile ~/.ethan/browser-profiles/default open mail.example.com

# 命名会话:自动存取 cookies + localStorage
agent-browser --session-name gmail open mail.example.com

# 复用用户已经开着的 Chrome(连它现成的登录态)
agent-browser --auto-connect snapshot

首次登录后,同一个 --profile / --session-name 后续都免登录。建议把需要登录的站点固定用一个 profile 路径。

命令链式调用(省往返)

守护进程常驻,可以在一条 shell 里用 && 串起来:

agent-browser open example.com && agent-browser wait --load networkidle && agent-browser snapshot -i

常见整活

搜索并读结果:

agent-browser open "https://www.google.com/search?q=关键词" && agent-browser wait --load networkidle && agent-browser get text

登录某网站(先看表单长啥样):

agent-browser --session-name mysite open https://mysite.com/login && agent-browser snapshot -i
# 看到 @ref 后:
agent-browser fill @e1 "用户名" && agent-browser fill @e2 "密码" && agent-browser click @e3

给页面截图给用户看:

agent-browser open <url> && agent-browser wait --load networkidle && agent-browser screenshot /tmp/page.png --full
# 然后用 Read 工具打开 /tmp/page.png 看

注意

  • 页面没加载完就 snapshot 会拿不到元素 → 加一句 wait --load networkidle。
  • 涉及账号密码时,优先 --session-name 复用已登录态,避免反复输密码;密码别明文打印到回复里。
  • 任务做完记得 agent-browser close,除非用户还要继续在同一会话上操作。
我的收藏