面向AI代理的浏览器自动化CLI工具。用于网站交互、页面导航、表单填写、按钮点击、截图、数据提取、Web应用测试或自动化任何浏览器任务。技能概述agent-browser 技能是一个强大的浏览器自动化命令行工具专为AI代理设计。它提供了完整的浏览器控制能力包括导航、交互、数据提取和状态管理。该工具支持多种浏览器操作模式包括无头模式、有头模式、移动设备模拟等并提供了丰富的安全特性如域名白名单、操作策略和内容边界保护。下载地址https://github.com/vercel-labs/agent-browser主要功能浏览器导航打开URL、关闭浏览器、页面导航等基础操作页面快照获取页面交互元素的引用标识符支持CSS选择器范围限定元素交互点击、填充、选择、按键、滚动等各种交互操作信息获取获取元素文本、当前URL、页面标题等信息等待机制等待元素出现、网络空闲、URL模式匹配等多种等待策略文件下载触发下载并等待下载完成截图与PDF全页截图、带注释截图、PDF导出差异对比比较页面状态、截图差异、URL对比认证管理保存和使用认证配置文件支持加密存储会话持久化自动保存和恢复cookies及localStorage并行会话支持多个独立的浏览器会话同时运行移动设备模拟支持iOS模拟器和真实设备的Safari自动化安全特性域名白名单、操作策略、内容边界、输出限制性能分析Chrome DevTools性能分析支持视频录制录制浏览器会话用于调试和文档触发条件在以下情况下应该调用此技能用户需要打开网站或导航到网页用户需要填写表单或提交表单用户需要点击按钮或执行点击操作用户需要截图或保存页面截图用户需要从页面抓取数据或提取网页内容用户需要测试Web应用或自动化测试用户需要登录网站或处理认证流程用户需要自动化浏览器操作或浏览器自动化任何需要程序化Web交互的任务核心工作流程标准自动化流程每个浏览器自动化都遵循以下模式导航使用agent-browser open url打开页面快照使用agent-browser snapshot -i获取元素引用如 e1, e2交互使用引用进行点击、填充、选择等操作重新快照在导航或DOM更改后获取新的引用处理过程1. 基础导航与快照打开网页并获取页面元素信息agent-browser open https://example.com/form agent-browser snapshot -i # 输出: e1 [input typeemail], e2 [input typepassword], e3 [button] Submit2. 表单交互使用元素引用进行表单填写和提交agent-browser fill e1 userexample.com agent-browser fill e2 password123 agent-browser click e3 agent-browser wait --load networkidle agent-browser snapshot -i3. 命令链式调用使用链接多个命令提高效率# 链式打开 等待 快照 agent-browser open https://example.com agent-browser wait --load networkidle agent-browser snapshot -i # 链式多步交互 agent-browser fill e1 userexample.com agent-browser fill e2 password123 agent-browser click e34. 认证处理使用认证保险库安全存储和使用凭据# 保存凭据加密存储 echo pass | agent-browser auth save github --url https://github.com/login --username user --password-stdin # 使用保存的配置文件登录LLM不会看到密码 agent-browser auth login github5. 会话持久化自动保存和恢复会话状态# 使用命名会话 agent-browser --session-name myapp open https://app.example.com/login # ... 登录流程 ... agent-browser close # 状态自动保存到 ~/.agent-browser/sessions/ # 下次自动加载状态 agent-browser --session-name myapp open https://app.example.com/dashboard6. 数据提取从页面提取文本和数据agent-browser open https://example.com/products agent-browser snapshot -i agent-browser get text e5 # 获取特定元素文本 agent-browser get text body page.txt # 获取所有页面文本 # JSON输出用于解析 agent-browser snapshot -i --json agent-browser get text e1 --json7. 移动设备模拟在iOS模拟器上测试移动Safari# 列出可用的iOS模拟器 agent-browser device list # 在特定设备上启动Safari agent-browser -p ios --device iPhone 16 Pro open https://example.com # 移动特定手势 agent-browser -p ios tap e1 # 点击 agent-browser -p ios swipe up # 滑动输入要求使用此技能时用户需要提供目标URL要访问的网站地址操作指令具体的浏览器操作点击、填充、截图等认证信息可选如果需要登录提供用户名和密码会话名称可选用于并行会话或状态持久化选择器或引用可选特定元素的CSS选择器或快照引用输出说明技能将提供页面快照包含交互元素及其引用标识符的可访问性树截图文件PNG格式的页面截图可带注释PDF文件页面PDF导出提取的文本页面或元素的文本内容页面信息当前URL、页面标题等差异报告页面状态或截图的对比结果错误信息控制台错误和网络错误使用示例示例1表单提交agent-browser open https://example.com/signupagent-browser snapshot -iagent-browser fill e1 Jane Doeagent-browser fill e2 janeexample.comagent-browser select e3 Californiaagent-browser check e4agent-browser click e5agent-browser wait --load networkidle示例2数据提取agent-browser open https://example.com/productsagent-browser snapshot -iagent-browser get text e5 # 获取特定元素文本agent-browser get text body page.txt # 获取所有页面文本agent-browser snapshot -i --json # JSON格式输出示例3并行会话agent-browser --session site1 open https://site-a.comagent-browser --session site2 open https://site-b.comagent-browser --session site1 snapshot -iagent-browser --session site2 snapshot -iagent-browser session list示例4带注释的截图agent-browser screenshot --annotate # 输出包括图像路径和图例# [1] e1 button Submit# [2] e2 link Home# [3] e3 textbox Emailagent-browser click e2 # 使用注释截图中的引用安全特性内容边界推荐用于AI代理启用内容边界以帮助LLM区分工具输出和不受信任的页面内容export AGENT_BROWSER_CONTENT_BOUNDARIES1agent-browser snapshot # 输出# --- AGENT_BROWSER_PAGE_CONTENT noncehex originhttps://example.com ---# [accessibility tree]# --- END_AGENT_BROWSER_PAGE_CONTENT noncehex ---域名白名单限制导航到受信任的域名export AGENT_BROWSER_ALLOWED_DOMAINSexample.com,*.example.comagent-browser open https://example.com # 允许agent-browser open https://malicious.com # 阻止操作策略使用策略文件限制破坏性操作export AGENT_BROWSER_ACTION_POLICY./policy.json# policy.json 示例{default: deny, allow: [navigate, snapshot, click, scroll, wait, get]}最佳实践引用生命周期管理页面更改后引用会失效必须在导航、表单提交或动态内容加载后重新快照使用链式命令当不需要读取中间命令输出时使用链接命令以提高效率会话命名运行多个代理或自动化时始终使用命名会话以避免冲突认证安全使用认证保险库而非在命令中暴露密码通过stdin传递密码避免shell历史记录等待策略对于慢速页面使用wait --load networkidle而非依赖默认超时注释截图当页面有未标记的图标按钮或需要视觉推理时使用--annotate标志语义定位器当引用不可用或不可靠时使用语义定位器如find text Sign In click会话清理完成后始终关闭浏览器会话以避免进程泄漏控制台检查定期检查浏览器控制台以发现不可见的错误输出限制对于大型页面设置AGENT_BROWSER_MAX_OUTPUT防止上下文溢出配置文件在项目根目录创建agent-browser.json进行持久化设置{ headed: true, proxy: http://localhost:8080, profile: ./browser-data }优先级从低到高~/.agent-browser/config.json./agent-browser.json 环境变量 CLI标志深度文档参考参考文档使用场景references/commands.md完整命令参考及所有选项references/snapshot-refs.md引用生命周期、失效规则、故障排除references/session-management.md并行会话、状态持久化、并发抓取references/authentication.md登录流程、OAuth、2FA处理、状态重用references/video-recording.md录制工作流用于调试和文档references/profiling.mdChrome DevTools性能分析references/proxy-support.md代理配置、地理测试、轮换代理实验性功能原生模式agent-browser有一个实验性的原生Rust守护进程直接通过CDP与Chrome通信完全绕过Node.js和Playwright。这是可选的暂不建议在生产环境中使用。# 通过标志启用 agent-browser --native open example.com # 通过环境变量启用 export AGENT_BROWSER_NATIVE1 agent-browser open example.com