配置
创建 ./agent-browser.json 可以设置持久化的项目默认值,而不必在每条命令上重复指定标志。
配置文件位置¶
agent-browser 会检查两个位置,并按优先级顺序合并:
| 优先级 | 位置 | 作用范围 |
|---|---|---|
| 1(最低) | ~/.agent-browser/config.json | 用户级默认配置 |
| 2 | ./agent-browser.json | 允许列表项目默认配置 |
| 3 | AGENT_BROWSER_* 环境变量 | 覆盖配置值 |
| 4(最高) | CLI 标志 | 覆盖一切 |
允许的项目级配置值会覆盖用户级配置值。环境变量会覆盖两者。CLI 标志始终优先。自动发现的 ./agent-browser.json 仅接受 headed、json、debug、userAgent、hideScrollbars、annotate、colorScheme、maxOutput、screenshotQuality、screenshotFormat 和 idleTimeout。其他运行时键(包括 extensions、initScripts、state、trust、policy、session、connection 和 path 设置)会被忽略并给出警告。$schema 元数据键会被静默忽略。请将高级设置放在 ~/.agent-browser/config.json 中,或使用 --config 或 AGENT_BROWSER_CONFIG 加载受信任的文件。
使用 --config <path> 或 AGENT_BROWSER_CONFIG 环境变量可以仅加载某个特定的受信任配置文件,以取代默认的发现机制。环境变量和 CLI 标志仍然会覆盖其中的值:
agent-browser --config ./ci-config.json open example.com
AGENT_BROWSER_CONFIG=./ci-config.json agent-browser open example.com
配置示例¶
{
"headed": true,
"userAgent": "my-agent/1.0",
"hideScrollbars": false,
"colorScheme": "dark",
"maxOutput": 50000,
"screenshotQuality": 80,
"screenshotFormat": "png",
"idleTimeout": "30m"
}
可用的 JSON Schema 可用于 IDE 自动补全和校验。在配置文件中添加 $schema 键即可启用:
所有选项¶
全局选项可以使用其 camelCase 等价名称在受信任的配置文件中设置。命令级标志(例如 screenshot --full)仍然是命令参数。自动发现的项目配置仅接受上面列出的键。
| 配置键 | CLI 标志 | 类型 |
|---|---|---|
headed | --headed | 布尔值 |
json | --json | 布尔值 |
debug | --debug | 布尔值 |
session | --session | 字符串 |
restore | --restore | 字符串 |
restoreSave | --restore-save | 字符串 |
restoreCheckUrl | --restore-check-url | 字符串 |
restoreCheckText | --restore-check-text | 字符串 |
restoreCheckFn | --restore-check-fn | 字符串 |
namespace | --namespace | 字符串 |
sessionName | --session-name | 字符串,旧版 restore 键 |
executablePath | --executable-path | 字符串 |
extensions | --extension | 字符串数组 |
initScripts | --init-script | 字符串数组 |
enable | --enable | 字符串数组 |
profile | --profile | 字符串 |
state | --state | 字符串 |
proxy | --proxy | 字符串 |
proxyBypass | --proxy-bypass | 字符串 |
args | --args | 字符串 |
userAgent | --user-agent | 字符串 |
provider | -p, --provider | 字符串 |
device | --device | 字符串 |
hideScrollbars | --hide-scrollbars | 布尔值 |
webgpu | --webgpu | 布尔值 |
noWebmcp | --no-webmcp 或 AGENT_BROWSER_NO_WEBMCP | 布尔值 |
ignoreHttpsErrors | --ignore-https-errors | 布尔值 |
caCert | --ca-cert | 字符串 |
clearCaCert | --no-ca-cert | 布尔值 |
useSystemCa | --use-system-ca | 布尔值 |
allowFileAccess | --allow-file-access | 布尔值 |
cdp | --cdp | 字符串 |
autoConnect | --auto-connect | 布尔值 |
pinTab | --pin-tab | 布尔值 |
annotate | --annotate | 布尔值 |
colorScheme | --color-scheme | 字符串(dark、light、no-preference) |
downloadPath | --download-path | 字符串 |
contentBoundaries | --content-boundaries | 布尔值 |
maxOutput | --max-output | 数字 |
allowedDomains | --allowed-domains | 字符串数组;同时还会在受支持的 Chromium 会话中禁用 WebRTC,并要求一个全新的可控浏览器上下文,且不能包含 profile/session 启动参数、restore/state 重放或 direct-page 提供方插件 |
actionPolicy | --action-policy | 字符串 |
confirmActions | --confirm-actions | 字符串 |
confirmInteractive | --confirm-interactive | 布尔值 |
engine | --engine | 字符串(chrome、lightpanda、obscura) |
screenshotDir | --screenshot-dir | 字符串 |
screenshotQuality | --screenshot-quality | 数字(0-100) |
screenshotFormat | --screenshot-format | 字符串(png、jpeg) |
idleTimeout | --idle-timeout | 字符串(10s、3m、1h 或原始毫秒值);默认为 1h,而 0 会禁用空闲关闭 |
noAutoDialog | --no-auto-dialog | 布尔值 |
model | --model | 字符串 |
headers | --headers | 字符串(JSON) |
plugins | (仅配置) | 插件配置数组 |
过大而无法转换为毫秒的值会产生警告并被忽略。
常见配置¶
以下示例使用了项目配置允许列表之外的设置。请将它们保存在 ~/.agent-browser/config.json 中,或使用 --config 显式加载文件。
本地开发¶
在代理之后¶
{
"proxy": "http://proxy.corp.example.com:8080",
"proxyBypass": "localhost,*.internal.com",
"caCert": "/etc/ssl/certs/proxy-ca.crt"
}
caCert 会将提供的 CA 证书或 PEM 捆绑包导入到 Linux 上本地启动的 Chromium 的独立 NSS 数据库中。主机名、有效期限以及无关 CA 的验证仍然保持启用。当后续命令省略该 CA 时,它仍然保持生效。设置不同的证书内容或 clearCaCert: true 将重新启动 Chromium,而无需重启守护进程。agent-browser install --with-deps 会安装所需的 certutil;否则请在 Debian/Ubuntu 上安装 libnss3-tools,或在 RPM Linux 上安装 nss-tools。浏览器信任不支持 Chrome 配置文件、CDP 附加、提供方、Lightpanda、macOS 或 Windows。
caCert 和 useSystemCa 同样适用于 CLI 自身在所有平台上的 HTTPS 请求。read、install、upgrade 和 doctor 会发起自己的 HTTPS 请求,并默认信任内置的 Mozilla 根证书。在所有平台上,--ca-cert 会将这些请求中的 CA 添加进去,而 --use-system-ca 会将其切换到操作系统信任存储,该存储中已包含由 MDM 或企业镜像部署的 CA。SSL_CERT_FILE 用作回退的 CA 文件,在不可用时会产生警告并被忽略。这两个选项都不会禁用证书或主机名验证。对于 read,在命令行上给出的设置在该会话期间持续生效,直到 close 为止,包括跨守护进程重启;--no-ca-cert 或 --use-system-ca false 可将其关闭。read 绝不会因为这些选项而启动或重新启动浏览器。这些选项目前还不会改变 agent-browser 通过 --cdp、--auto-connect 或提供方连接到远程浏览器的方式。
如果手头没有 CA 证书,可以退而求其次,忽略所有证书错误,但这种做法安全性较低:
{
"proxy": "http://proxy.corp.example.com:8080",
"proxyBypass": "localhost,*.internal.com",
"ignoreHttpsErrors": true
}
CI / 开发容器¶
将这些设置放在 ~/.agent-browser/config.json 或通过 --config 加载的文件中;自动发现的 ./agent-browser.json 会忽略 args 并产生警告。
iOS 测试¶
AI 智能体安全¶
{
"contentBoundaries": true,
"maxOutput": 50000,
"allowedDomains": ["your-app.com", "*.your-app.com"],
"actionPolicy": "./policy.json"
}
覆盖布尔选项¶
布尔标志接受可选的 true/false 值来覆盖配置设置:
不带值的标志等同于传入 true:
agent-browser --headed open example.com # same as --headed true
agent-browser --headed true open example.com # explicit
这适用于布尔标志,例如 --headed、--debug、--json、--ignore-https-errors、--allow-file-access、--hide-scrollbars、--auto-connect、--annotate、--content-boundaries、--confirm-interactive 和 --no-auto-dialog。
扩展¶
自动发现的项目配置会忽略 extensions 并产生警告。请将扩展路径放在用户配置或显式加载的配置中,或者设置 AGENT_BROWSER_EXTENSIONS,或传入 --extension。
插件¶
使用用户配置或通过 --config 加载的文件中的 plugins 数组来配置外部插件:
有关插件作者协议和实现示例,请参阅插件。使用 agent-browser plugin add <ref> 可自动创建此配置;默认情况下它会写入 ~/.agent-browser/config.json,而 --project 会写入 ./agent-browser.json(仅在 --config 下使用)。
{
"plugins": [
{
"name": "vault",
"command": "agent-browser-plugin-vault",
"args": [],
"capabilities": ["credential.read"]
},
{
"name": "cloud-browser",
"command": "agent-browser-plugin-cloud-browser",
"capabilities": ["browser.provider"]
},
{
"name": "stealth",
"command": "agent-browser-plugin-stealth",
"capabilities": ["launch.mutate"]
},
{
"name": "captcha",
"command": "agent-browser-plugin-captcha",
"capabilities": ["command.run", "captcha.solve"]
}
]
}
自动发现的 ./agent-browser.json 会忽略 plugins 并产生警告。若要使用项目文件中的插件条目,请通过 --config 加载该文件;该文件会替代默认的配置发现机制。AGENT_BROWSER_PLUGINS 可以使用形状相同的 JSON 数组来替代配置发现。
不要将 vault 令牌或密码放入插件命令参数中。请使用 vault 供应商自身的登录/会话机制,或使用 agent-browser 配置之外的环境。
agent-browser plugin list
agent-browser auth login my-app --credential-provider vault --item "My App"
agent-browser --provider cloud-browser open https://example.com
agent-browser plugin run captcha captcha.solve --payload '{"siteKey":"...","url":"https://example.com"}'
plugin run 用于 command.run 和自定义能力。核心能力和协议请求类型使用各自的专用命令路径。
环境变量¶
以下环境变量用于配置额外的守护进程和运行时行为:
| 变量 | 描述 | 默认值 |
|---|---|---|
AGENT_BROWSER_CONFIG | 指向显式配置文件的路径。 | (默认发现) |
AGENT_BROWSER_SESSION | 隔离的浏览器会话名称。 | default |
AGENT_BROWSER_AUTO_CONNECT | 自动发现并连接到正在运行的 Chrome 实例。 | (已禁用) |
AGENT_BROWSER_ALLOW_FILE_ACCESS | 允许 file:// URL 访问本地文件。 | (已禁用) |
AGENT_BROWSER_EXECUTABLE_PATH | 自定义浏览器可执行文件路径。 | (自动发现) |
AGENT_BROWSER_PROFILE | Chrome 配置文件名称或持久化配置目录。 | (无) |
AGENT_BROWSER_STATE | 启动时加载的存储状态文件。 | (无) |
AGENT_BROWSER_PROXY | 代理 URL。优先于标准代理变量。 | (无) |
AGENT_BROWSER_PROXY_BYPASS | 代理绕过主机列表。 | (无) |
AGENT_BROWSER_PROXY_USERNAME | 当凭据单独提供时的代理用户名。 | (无) |
AGENT_BROWSER_PROXY_PASSWORD | 当凭据单独提供时的代理密码。 | (无) |
HTTP_PROXY / HTTPS_PROXY / ALL_PROXY | 标准代理回退变量。 | (无) |
NO_PROXY | 标准代理绕过回退。 | (无) |
AGENT_BROWSER_ARGS | 浏览器启动参数,以换行符或在另一个标志之前的逗号分隔。值内部的逗号会保留。 | (无) |
AGENT_BROWSER_USER_AGENT | 自定义 User-Agent 字符串。 | (浏览器默认) |
AGENT_BROWSER_PROVIDER | 浏览器提供方,例如 ios、browserbase、kernel、browseruse、browserless、agentcore 或已配置的 browser.provider 插件名称。 | (本地浏览器) |
AGENT_BROWSER_HIDE_SCROLLBARS | 在无头 Chromium 截图中隐藏原生滚动条。 | true |
AGENT_BROWSER_COLOR_SCHEME | 配色方案偏好(dark、light、no-preference)。 | (无) |
AGENT_BROWSER_DOWNLOAD_PATH | 浏览器下载的默认目录。 | (临时目录) |
AGENT_BROWSER_DEFAULT_TIMEOUT | 默认超时时间(毫秒)。请保持在 30000 以下以避免 IPC 超时。 | 25000 |
AGENT_BROWSER_NAMESPACE | 守护进程套接字和状态恢复目录的命名空间。 | (无) |
AGENT_BROWSER_RESTORE | 自动保存/加载状态持久化密钥。 | (无) |
AGENT_BROWSER_RESTORE_SAVE | 恢复保存策略:auto、always 或 never。 | auto |
AGENT_BROWSER_AUTOSAVE_INTERVAL_MS | 浏览器打开期间,周期性会话自动保存之间的最小毫秒数。0 表示仅在关闭时保存。 | 30000 |
AGENT_BROWSER_RESTORE_CHECK_URL | 恢复的状态必须匹配的 URL 模式。 | (无) |
AGENT_BROWSER_RESTORE_CHECK_TEXT | 恢复的状态必须包含的页面文本。 | (无) |
AGENT_BROWSER_RESTORE_CHECK_FN | 恢复的状态必须满足的 JavaScript 表达式。 | (无) |
AGENT_BROWSER_SESSION_NAME | 旧版自动保存/加载状态持久化名称。 | (无) |
AGENT_BROWSER_STATE_EXPIRE_DAYS | 自动删除超过 N 天的已保存会话状态。 | 30 |
AGENT_BROWSER_ENCRYPTION_KEY | 用于 AES-256-GCM 会话加密的 64 字符十六进制密钥。 | (无) |
AGENT_BROWSER_EXTENSIONS | 逗号分隔的浏览器扩展路径。扩展在有头和无头模式下均可工作。 | (无) |
AGENT_BROWSER_INIT_SCRIPTS | 逗号分隔的页面初始化脚本路径。 | (无) |
AGENT_BROWSER_ENABLE | 逗号分隔的内置初始化脚本功能,例如 react-devtools。 | (无) |
AGENT_BROWSER_HEADED | 显示浏览器窗口而不是以无头模式运行(1 启用)。 | (已禁用) |
AGENT_BROWSER_WEBGPU | 启用 WebGPU;在 Linux 上使用 SwiftShader 软件 Vulkan,无需 GPU(1 启用)。 | (已禁用) |
AGENT_BROWSER_NO_XVFB | 在没有显示器的 Linux 主机上,为有头模式禁用自动 Xvfb 虚拟显示(1 禁用)。 | (自动 Xvfb 已启用) |
AGENT_BROWSER_NO_VERSION_CHECK | 跳过过时 Chrome 检查;该检查在每个会话中为每个浏览器版本获取一次 Chrome Releases 博客(1 禁用)。 | (检查已启用) |
AGENT_BROWSER_CLEAR_CA_CERT | 清除运行中的浏览器会话保留的 CA 信任。 | (已禁用) |
AGENT_BROWSER_USE_SYSTEM_CA | 为 CLI 自身的 HTTPS 请求使用操作系统信任存储(1 启用)。 | (已禁用) |
AGENT_BROWSER_JSON | 默认使用 JSON 输出。 | (已禁用) |
AGENT_BROWSER_ANNOTATE | 默认启用带标注的截图。 | (已禁用) |
AGENT_BROWSER_CDP | 将守护进程连接到 CDP 端口或 WebSocket URL。 | (无) |
AGENT_BROWSER_CDP_HEADERSAuthorization。<tr><td><code>AGENT_BROWSER_STREAM_PORT</code></td><td>覆盖 WebSocket 流式传输端口。默认使用操作系统分配的端口。设置此项可绑定到特定端口(例如 <code>9223</code>)。</td><td>由操作系统分配</td></tr>
<tr><td><code>AGENT_BROWSER_DASHBOARD_ALLOWED_ORIGINS</code></td><td>允许通过反向代理访问仪表盘的精确 HTTPS 来源(以逗号分隔)。每个条目都必须有效,否则仪表盘启动失败。未设置此项时,仅接受回环来源。回环访问不需要外部仪表盘令牌。</td><td>(无)</td></tr>
<tr><td><code>AGENT_BROWSER_STREAM_QUALITY</code></td><td>流式传输帧的 JPEG 质量,范围 0 到 100。较低的值可减少带宽:在繁忙页面上,质量 20 消耗的字节数约为默认值的一半。</td><td><code>80</code></td></tr>
<tr><td><code>AGENT_BROWSER_STREAM_MAX_WIDTH</code></td><td>限制编码帧的像素宽度。仅限制帧,不影响页面大小,因此指针坐标不受影响。</td><td>视口</td></tr>
<tr><td><code>AGENT_BROWSER_STREAM_MAX_HEIGHT</code></td><td>限制编码帧的像素高度。</td><td>视口</td></tr>
<tr><td><code>AGENT_BROWSER_IDLE_TIMEOUT_MS</code></td><td>在没有命令或仪表盘输入的情况下经过 N 毫秒后自动关闭守护进程。设置为 <code>0</code> 可禁用。有头浏览器、Safari 和 iOS WebDriver 会话以及用户附加的浏览器不受默认值限制。提供商拥有的云浏览器可被清理,显式设置的值适用于所有浏览器。</td><td><code>3600000</code>(1 小时)</td></tr>
<tr><td><code>AGENT_BROWSER_IOS_DEVICE</code></td><td><code>ios</code> 提供程序的默认 iOS 设备名称。</td><td>(无)</td></tr>
<tr><td><code>AGENT_BROWSER_IOS_UDID</code></td><td><code>ios</code> 提供程序的默认 iOS 设备 UDID。</td><td>(无)</td></tr>
<tr><td><code>AGENT_BROWSER_DEBUG</code></td><td>启用调试输出(设置为 <code>1</code> 启用)。</td><td>(禁用)</td></tr>
<tr><td><code>AGENT_BROWSER_CONTENT_BOUNDARIES</code></td><td>为了 LLM 安全,将页面输出包裹在边界标记中。</td><td>(禁用)</td></tr>
<tr><td><code>AGENT_BROWSER_MAX_OUTPUT</code></td><td>页面输出的最大字符数(超出限制部分将被截断)。</td><td>(无限制)</td></tr>
<tr><td><code>AGENT_BROWSER_ALLOWED_DOMAINS</code></td><td>以逗号分隔的允许域名模式(例如 <code>example.com,*.example.com</code>)。这需要全新的可控制浏览器上下文,且不包含配置文件/会话启动参数、恢复/状态重放或直接页面提供程序插件。</td><td>(不受限制)</td></tr>
<tr><td><code>AGENT_BROWSER_ACTION_POLICY</code></td><td>操作策略 JSON 文件的路径。</td><td>(无)</td></tr>
<tr><td><code>AGENT_BROWSER_CONFIRM_ACTIONS</code></td><td>需要确认的以逗号分隔的操作类别。</td><td>(无)</td></tr>
<tr><td><code>AGENT_BROWSER_CONFIRM_INTERACTIVE</code></td><td>启用交互式确认提示(如果标准输入不是 TTY,则自动拒绝)。</td><td>(禁用)</td></tr>
<tr><td><code>AGENT_BROWSER_ENGINE</code></td><td>要使用的浏览器引擎:<code>chrome</code>(默认)、<code>lightpanda</code>、<code>obscura</code>(实验性)。</td><td><code>chrome</code></td></tr>
<tr><td><code>AGENT_BROWSER_NO_AUTO_DIALOG</code></td><td>禁用 <code>alert</code>/<code>beforeunload</code> 对话框的自动关闭。</td><td>(禁用)</td></tr>
<tr><td><code>AGENT_BROWSER_PLUGINS</code></td><td>JSON 插件注册表覆盖。</td><td>(配置发现)</td></tr>
<tr><td><code>AGENT_BROWSER_SCREENSHOT_DIR</code></td><td>默认截图输出目录。</td><td>(临时目录)</td></tr>
<tr><td><code>AGENT_BROWSER_SCREENSHOT_QUALITY</code></td><td>JPEG 截图质量,范围 0 到 100。</td><td>(格式默认值)</td></tr>
<tr><td><code>AGENT_BROWSER_SCREENSHOT_FORMAT</code></td><td>截图格式:<code>png</code> 或 <code>jpeg</code>。</td><td><code>png</code></td></tr>
<tr><td><code>AGENT_BROWSER_SOCKET_DIR</code></td><td>守护进程套接字文件的高级覆盖设置。</td><td>运行时目录或 <code>~/.agent-browser</code></td></tr>
<tr><td><code>AGENT_BROWSER_SKILLS_DIR</code></td><td>覆盖 <code>agent-browser skills</code> 使用的目录。</td><td>内置技能</td></tr>
<tr><td><code>AGENT_BROWSER_COLOR</code></td><td>当值为真时启用彩色 CLI 输出。</td><td>(禁用)</td></tr>
<tr><td><code>NO_COLOR</code></td><td>存在时禁用彩色输出。</td><td>(未设置)</td></tr>
<tr><td><code>AI_GATEWAY_URL</code></td><td>Vercel AI Gateway 的基础 URL。</td><td><code>https://ai-gateway.vercel.sh</code></td></tr>
<tr><td><code>AI_GATEWAY_API_KEY</code></td><td>用于 Vercel AI Gateway 的 API 密钥。启用 AI 聊天所必需。</td><td>(无)</td></tr>
<tr><td><code>AI_GATEWAY_MODEL</code></td><td>仪表盘聊天的默认 AI 模型。</td><td><code>anthropic/claude-sonnet-4.6</code></td></tr>
无效的 --max-output 和 AGENT_BROWSER_MAX_OUTPUT 值会发出警告,并保持现有输出限制不变。
错误处理¶
- 自动发现的配置文件(
~/.agent-browser/config.json、./agent-browser.json)如果缺失,会被静默忽略。 --config <path>如果文件缺失或格式错误,则退出并报错。- 自动发现文件中的格式错误的 JSON 会向 stderr 打印警告,并忽略该文件继续运行。
- 自动发现的项目配置中的不支持的键会被忽略,并发出警告。
- 用户配置或显式加载的配置中的未知键会被静默忽略,以保持向前兼容。
使用高级键的现有项目配置必须将这些设置移动到用户配置中,或使用 --config 显式加载。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 agen/agent-browser