@agentproto/driver-browser

中文文档
0.4.1发布于 2026/11/01Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 5204

浏览器提供者工具包:定义浏览器(manifest + launch),浏览器Instance和浏览器Driver端口,一个提供者注册,一个提供者- kit列表,以及一个打出的能力门(浏览器:不支持).

中文使用文档
文档目录7 节
  1. 盒子里装的是什么
  2. 定义提供者
  3. 能力门
  4. 卫生
  5. 主管
  6. 合规包
  7. 范围

@ agentproto/ 司机浏览器

浏览器提供者工具包. 它给每个浏览器后端( 一个隐形的 Firefox) 在 REST 后方, Playwright 管理的 Chromium, 系统 Chrome, 主机浏览器 一个形状,所以一个主机可以 列表,发射,附加和门 同样的方式.

Spec: BROWSER AIP(职称) BROWSER.md, (中文(简体) ), agentbrowser/v1页:1 活性剂/活性剂#53。 。 。 . AIP号码是临时的,直到编辑指定为止.

盒子里装的是什么

块这是什么
defineBrowser验证一个清单( zod)并返回被冻结的 BrowserProvider。在 createDoctype一样 defineDriver纯粹的建筑,没有I/O.
BrowserProvider显示字段外加 launch(opts, ctx)中,一个同位素保证返回 a BrowserInstance。 。 。 .
BrowserInstanceid, (中文(简体) ), endpoints {rest?, cdp?}, (中文(简体) ), pid?, (中文(简体) ), wasAlreadyRunning, (中文(简体) ), health(), (中文(简体) ), attach(opts), (中文(简体) ), stop()。 。 。 .
BrowserDriver页面和标签控制端口(navigate, valice, 点击, 填充, 截图, 网络, 生 CDP), 其选项和结果形状有zod schemas.
BrowserCapabilities页面级别旗帜( N)canFullPageScreenshot,.)和进程级旗帜(stealth, (中文(简体) ), headless, (中文(简体) ), cdp, (中文(简体) ), downloads, (中文(简体) ), recording(中文(简体) ). 所有默认关闭.
createBrowserRegistry注册、查询和列出提供者。 重复的ID抛出.
makeBrowserProviderLister一个标准 @agentproto/provider-kit 列表在注册处.
assertCapability, (中文(简体) ), BrowserUnsupportedError能力门.

定义提供者

import { defineBrowser } from "@agentproto/driver-browser"

export const camofox = defineBrowser({
  id: "camofox",
  name: "Camoufox (stealth Firefox)",
  description: "Stealth Firefox behind a local REST service.",
  version: "1.0.0",
  transport: "http", // sdk | http | cli
  location: "local", // local | remote (remote = a third party sees session data)
  capabilities: { stealth: true, downloads: true, headless: true, persistentProfile: true },
  async launch(opts, ctx) {
    // Return the running instance if one is healthy: wasAlreadyRunning: true.
    // Otherwise start one.
  },
})

能力门

需要提供商缺乏的能力的呼叫会因打出错误而失败, 非不透明运输故障 :

import { assertToolSupported, isBrowserUnsupportedError } from "@agentproto/driver-browser"

try {
  assertToolSupported(provider.capabilities, "browser.list_requests", provider.id)
} catch (err) {
  if (isBrowserUnsupportedError(err)) {
    err.code // "browser:unsupported" (stable)
    err.capability // "cdp"
    err.message // '"browser.list_requests" needs the "cdp" capability, which is not supported on provider "camofox"'
  }
}

BrowserUnsupportedError 扩展 AIP-14 ToolError这样 toToolResult 设置 code 财务报告和审定财务报表 cause: { capability } 输入标准信封.

卫生

BrowserInstance.health() 返回时 { ok, reason?, lifecycle? }。 。 。 . lifecycle 包含监管主机从服务读取的字段 /health,所有数据 可选( 服务器报告) null 以它尚未确定的地方发誓 bootId, (中文(简体) ), startedAt, (中文(简体) ), browserState (单位:千美元)launching | running | idle | crash-looping, (中文(简体) ), launchedAt, (中文(简体) ), lastLaunchMs, (中文(简体) ), lastRestartReason。 。 。 .

主管

createBrowserSupervisor 在健康环下经营一个供应商。 时间和 进程访问被注入( e)clock, (中文(简体) ), orphanSweep.listProcesses/kill),这样 测试不需要真正的睡眠或过程.

import { createBrowserSupervisor, browserInstanceMarker } from "@agentproto/driver-browser"

const supervisor = createBrowserSupervisor({
  provider,
  launchOptions: { label: "work" },
  healthIntervalMs: 10_000,
  launchBudgetMs: 120_000, // a slow launch inside the budget is not a failure
  crashLoop: { maxFailures: 3, windowMs: 300_000 },
  orphanSweep: { marker: browserInstanceMarker("work") },
  onBackendRestart: ({ previousBootId, bootId }) => {},
})
await supervisor.start()
  • 发射-发射探测器. maxFailures 失败 windowMs (发射完毕) launchBudgetMs 将状态翻转为 crash-looping不再试图发射,由 start() 或由 健康循环,直到明确 restart(),它清除了计数器.
  • 健康环. 读取 BrowserInstance.health()更改 bootId 表示 后端重新启动并起火 onBackendRestart。 。 。 . browserState: "crash-looping" (即使是在503与 ok: false)是国家,主管 报告,不是"下":重启是没有帮助的. launching 不是一个 失败。 一个平地 ok: false 页:1 unhealthyThreshold 连续探测器 引发重启.
  • 孤儿扫地. sweepOrphans 仅指向命令的进程 携带精确的标记符 (--agentproto-browser=<key>),从a 已注入进程列表 。 它从不按进程名匹配,也从不信号 目前的进程。 发射时将标记传递到浏览器的 argv.
  • KeepAlivePolicy。 。 。 . 烂摊子的收割者政策 页:1 keepAlive 和闲置的浏览器下拉闸 (单位:千美元)shouldShutdownIdleBrowser在任何保留Alive会话时拒绝 已存在.

合规包

import { createFakeBrowserProvider, runConformance } from "@agentproto/driver-browser"

const { provider } = createFakeBrowserProvider()
const report = await runConformance(provider, { levels: ["core", "interaction", "network"] })
report.ok // false if any check failed
report.failed // ["core/launch-idempotent", ...]

级别 : core (明显,例状,一能发射,健康, 导航,同位素站,远程提供者报告没有本地的pid), interaction (评价、DOM、截图、点击/填写固定图), network (需求数) cdp, (中文(简体) ), download (需求数) downloads和 profile (需求数) persistentProfile) (中文(简体) ). 提供者不声明其能力的级别 报告为 skipped 输入 browser:unsupported,从来没有作为一个 失败 network 级别仍然检查缺失的能力失败 与 browser:unsupported 而不是一个不透明的错误。 这个 download 职等 只检查申报的能力是否与工具门一致 现在, 因为驱动端口没有下载动词; 添加提供者检查 extraChecks。 。 。 .

对于 location: "remote" 供应商通过 launch: { baseUrl }装具船 startFakeRemoteBrowserServer() (当地http,随机端口)和 createFakeRemoteBrowserProvider() 因此,可以进行远程合规 没有第三方. createFakeBrowserProvider({ faults }) 正在建设 故意被破坏的变体.

范围

这套包装有模型、主管和符合要求的套装. 混凝土提供者和运行时工具接线在其它包中直播.

许可证: Apache -2.0.

版本与发布记录

@agentproto/driver-browser 共发布 8 个版本,首次发布于 2026/09/30;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.1latest2026/11/014 天前
0.4.02026/10/279 天前
0.3.12026/10/1918 天前
0.3.02026/10/1819 天前
0.2.22026/10/1027 天前
0.2.12026/10/0928 天前

关于 @agentproto/driver-browser 的常见问题

@agentproto/driver-browser 是什么?

浏览器提供者工具包:定义浏览器(manifest + launch),浏览器Instance和浏览器Driver端口,一个提供者注册,一个提供者- kit列表,以及一个打出的能力门(浏览器:不支持).

如何安装 @agentproto/driver-browser?

在项目目录运行 npm install @agentproto/driver-browser,或使用 pnpm add / yarn add / bun add。

@agentproto/driver-browser 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@agentproto/driver-browser 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@agentproto/driver-browser 可以商用吗?

@agentproto/driver-browser 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@agentproto/driver-browser 的下载量有多少?

根据 npm 官方下载统计,@agentproto/driver-browser 在 2026/10/05 – 2026/11/03 这 30 天内被下载 5,204 次,日均约 173 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@agentproto/driver-browser 还在维护吗?

最新版本 0.4.1 发布于 2026/11/01(4 天前);至今共发布 8 个版本,其中过去 12 个月发布了 8 个;首次发布于 2026/09/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。