跳转至

配置

创建 ./agent-browser.json 可以设置持久化的项目默认值,而不必在每条命令上重复指定标志。

配置文件位置

agent-browser 会检查两个位置,并按优先级顺序合并:

优先级位置作用范围
1(最低)~/.agent-browser/config.json用户级默认配置
2./agent-browser.json允许列表项目默认配置
3AGENT_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 键即可启用:

{
  "$schema": "https://agent-browser.dev/schema.json",
  "headed": true
}

所有选项

全局选项可以使用其 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 显式加载文件。

本地开发

{
  "headed": true,
  "profile": "./browser-data"
}

在代理之后

{
  "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 / 开发容器

{
  "args": "--no-sandbox,--disable-gpu",
  "ignoreHttpsErrors": true
}

将这些设置放在 ~/.agent-browser/config.json 或通过 --config 加载的文件中;自动发现的 ./agent-browser.json 会忽略 args 并产生警告。

iOS 测试

{
  "provider": "ios",
  "device": "iPhone 16 Pro"
}

AI 智能体安全

{
  "contentBoundaries": true,
  "maxOutput": 50000,
  "allowedDomains": ["your-app.com", "*.your-app.com"],
  "actionPolicy": "./policy.json"
}

覆盖布尔选项

布尔标志接受可选的 true/false 值来覆盖配置设置:

agent-browser --headed false open example.com

不带值的标志等同于传入 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_PROFILEChrome 配置文件名称或持久化配置目录。(无)
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_HEADERS 在 CDP 发现和 WebSocket 握手期间发送的头信息的 JSON 对象,例如 Authorization。 (无)
<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