如何在 Coding Agent 中使用 agent-browser
关于 agent-browser 工具,可以先看看 AI 是如何介绍的:
agent-browser 是一个面向 AI Agent 的浏览器自动化 CLI 工具,让大模型能够像人一样操作网页:打开页面、读取内容、点击按钮、填写表单、截图、处理登录状态等。
不像传统 Playwright/Selenium 经常需要解析庞大的 DOM,它通过
snapshot输出精简的无障碍树,并给元素分配引用,例如@e1、@e2,Agent 可以直接操作这些引用,减少上下文消耗。
简单地说,就是一个操作浏览器访问网站的工具,最大的特点是节省 Token。
由于我的系统软件,包括 agent-browser 和 Chrome 在内,都是使用 Scoop 安装的,在配置 agent-browser 时就会碰到一些坑。
缺少 skills 文档
Scoop 安装的 agent-browser 没有携带 skills 文档。用 agent-browser skills path 命令返回错误提示:
✗ Skills directory not found. Set AGENT_BROWSER_SKILLS_DIR or reinstall via npm.文档获取很简单,直接从官方 GitHub 仓库下载项目中的 skills 和 skill-data 两个文件夹就行。问题是放在哪里比较好呢?放在和 agent-browser.exe 相同的路径下是没有问题,但是一旦下一次升级就需要重新添加 skill 数据了。
通过源代码可以得知,agent-browser 可以通过环境变量 AGENT_BROWSER_SKILLS_DIR 指定路径;如果没有设置这个环境变量,会从当前可执行文件路径以及递归向上级目录查找。对于 Scoop 安装的 agent-browser,如果把 skills 文档存放在 apps\agent-browser 下,好过放在 apps\agent-browser\current 下——这样可以避免每次升级后重新添加文档的麻烦。
假设 Scoop 安装路径即 C:\scoop,则最终目录结构如下:
C:\scoop\apps\agent-browser
├─0.33.2
├─current
├─skill-data
└─skills不过这个方案也有个问题,就是执行 scoop clean agent-browser 命令后,skill 文件夹会被删除。 索性我让 AI 重写了 Scoop 官方的 agent-browser manifest,并上传到自己私有的 Scoop 仓库。主要是加入了一个 post_install 脚本,在安装完毕后下载 vercel-labs/agent-browser 仓库里的文档。
json{
"version": "0.33.2",
"description": "Browser automation CLI for AI agents.",
"homepage": "https://agent-browser.dev",
"license": "Apache-2.0",
"architecture": {
"64bit": {
"url": "https://github.com/vercel-labs/agent-browser/releases/download/v0.33.2/agent-browser-win32-x64.exe#/agent-browser.exe",
"hash": "291f0c33c2fbcbf159b5868065ab412dfd8722d6299821e010cf0715964f2cba"
}
},
"bin": "agent-browser.exe",
"post_install": [
"$zipUrl = \"https://github.com/vercel-labs/agent-browser/archive/refs/tags/v$version.zip\"",
"$tempDir = \"$env:TEMP\\agent-browser-skills\"",
"New-Item -ItemType Directory -Path $tempDir -Force | Out-Null",
"Invoke-WebRequest -Uri $zipUrl -OutFile \"$tempDir\\repo.zip\"",
"Expand-Archive -Path \"$tempDir\\repo.zip\" -DestinationPath $tempDir -Force",
"$root = Get-ChildItem -Path $tempDir -Directory | Select-Object -First 1",
"Copy-Item -Path \"$($root.FullName)\\skills\" -Destination \"$dir\\skills\" -Recurse -Force",
"Copy-Item -Path \"$($root.FullName)\\skill-data\" -Destination \"$dir\\skill-data\" -Recurse -Force",
"Remove-Item -Path $tempDir -Recurse -Force -ErrorAction SilentlyContinue"
],
"checkver": {
"github": "https://github.com/vercel-labs/agent-browser"
},
"autoupdate": {
"architecture": {
"64bit": {
"url": "https://github.com/vercel-labs/agent-browser/releases/download/v$version/agent-browser-win32-x64.exe#/agent-browser.exe"
}
}
}
}找不到 Chrome
由于 Chrome 也是通过 Scoop 安装的,agent-browser 无法找到它,需要在配置文件里指定路径。配置文件的路径为 %USERPROFILE%\.agent-browser\config.json。
json{
"$schema": "https://agent-browser.dev/schema.json",
"executablePath": "C:\\scoop\\apps\\googlechrome\\current\\chrome.exe",
"profile": "C:\\scoop\\persist\\googlechrome\\User Data"
}Profile 路径可以按照实际情况设置。此处我的 Chrome 用户数据并没有放在默认的 %LOCALAPPDATA% 路径下。不过通过 Scoop 新安装的 Chrome 用户数据是存放在默认路径的。具体原因可以参考之前的文章《Scoop 安装 Chrome 浏览器的用户数据问题》。
顺便一提,agent-browser doctor 命令存在一个恶心的问题——即便配置文件指定了 Chrome 路径,它仍然会报错提示 No Chrome binary found。
当然,你完全可以通过 agent-browser install 命令安装一个全新的 Chrome,就是会额外占用 400 多兆的系统盘空间。