Skill 安装
多 Agent 安装npx skills add https://github.com/browserbase/skills --skill browser-trace
使用 npx skills 快速安装,支持将 Skill 添加到多个兼容的 AI Agent。
Skill 调研报告
browserbase/skills#browser-trace
Skill 更新日志
版本列表
无版本号
更新技能以使用经过验证的 Browserbase 会话 (#106)
无版本号
docs: 将 bb/browse-cli 引用重命名为统一的 browse CLI (#111)
* docs: 将 bb/browse-cli 引用重命名为统一的 browse CLI
`@browserbasehq/cli` (bb) 和 `@browserbasehq/browse-cli` 包
已合并为单一的 `browse` 包(`npm install -g browse`)。
更新所有技能文档、脚本和示例以使用新的命令
接口:
- `bb fetch|search|sessions|projects|contexts|extensions` → `browse cloud ...`
- `bb functions ...` → `browse functions ...`
- `bb templates ...` → `browse templates ...`
- `bb skills install` → `browse skills install`
- `bb browse ` → 顶层 `browse ` (open, get, click, …)
- `pnpm bb dev|publish` → `browse functions dev|publish`
- `# bb call N/TOTAL` 强制注释 → `# browse call N/TOTAL`
- extract_page.mjs 中的 `bbFetch`/`bbBrowseMarkdown` 辅助函数已重命名并
重构为调用新的 `browse cloud fetch` / `browse get markdown`
接口。
- bb-capture.mjs / bb-finalize.mjs 通过 shell 调用 `browse cloud sessions ...`
SDK 变量名(`const bb = new Browserbase()`)和
`x-bb-api-key` HTTP 头保持不变。
Co-Authored-By: Claude Opus 4.7 (1M context)
* fix: 使 browse 命令示例与 0.6 保持一致
* docs: 注明已弃用的 context 上传刷新
* docs: 阐明 trace 示例中 cdp 标志的用法
* docs: 在 trace 示例中依赖 cdp 守护进程持久化
* docs(browser-trace): 在后续命令中去掉多余的 target 标志
browse 守护进程在第一条命令后会缓存 target,因此
在 `browse open --cdp 9222`(或 `--remote --session "$SID"`)之后的命令
无需重复 target 标志。回应 PR #111 审查意见中
关于 EXAMPLES.md 中 `--cdp` 重复的问题。
Co-Authored-By: Claude Opus 4.7 (1M context)
* docs: 阐明 cdp 守护进程行为
* fix(extract_page): 在 `browse get` 上去掉多余的 --local --headless
browse 守护进程在 `browse open --local --headless` 后会缓存 target,
因此后续的 `browse get markdown` 调用不应重复模式标志。
与 skills/browser/SKILL.md 的约定一致(“将 --local、--remote、
--auto-connect 或 --cdp 放在第一条浏览器命令上”),也与 Shrey
在 5468e0e 中对 browser-trace 应用的相同修复一致。
回应 PR #111 上的 Cursor Bugbot 发现。
Co-Authored-By: Claude Opus 4.7 (1M context)
* docs: 对齐 browse 生命周期示例
* docs: 移除过时的 fill 标志引用
* docs: 收紧 browse 技能迁移措辞
* docs: 阐明 browse stop 模式切换
* docs: 验证 browse 命令注意事项
---------
Co-authored-by: Claude Opus 4.7 (1M context)
Co-authored-by: Shrey Pandya
无版本号
添加 browser-trace 技能 (#83)
* 添加 browser-observability 技能
在任何浏览器自动化(browse、Stagehand、Playwright、Puppeteer
——任何支持 CDP 的工具)旁边捕获完整的 CDP 数据流以及定期截图和 DOM 转储,
然后将流按顶级导航切分为每页可搜索的桶。
该技能纯粹是观察性的:它添加第二个 CDP 客户端,
启用只读域(Network、Console、Runtime、Log、Page),
并且从不发送操作命令,因此它可以附加到正在进行的自动化
而不干扰它。
在 .o11y// 下生成的布局:
manifest.json, index.jsonl
cdp/raw.ndjson 完整数据流,NDJSON
cdp/summary.json {sessionId, duration, totalEvents, pages[]}
cdp//... 会话范围的桶
cdp/pages// 每页切片,由 Page.frameNavigated 索引
summary.json, raw.jsonl, network/, console/, page/, ...
screenshots/.png, dom/.html
browserbase/ 在远程运行时由 bb-finalize.sh 添加
脚本(纯 bash + jq,除现有 browse CLI 外无 Python/Node 依赖):
start-capture.sh / stop-capture.sh / snapshot-loop.sh
bisect-cdp.sh — 将 raw.ndjson 拆分为会话范围和每页桶,
写入结构化 summary.json
query.sh — 下钻辅助工具:list、page [bucket]、errors、
hosts、host 、timeline、summary
bb-capture.sh / bb-finalize.sh — Browserbase 包装器;bb-capture 处理
--keep-alive + connectUrl 解析 + 使用
会话 id、区域和实时调试器 URL 标记 manifest;bb-finalize
写入 browserbase/{session.json, logs.json, downloads.zip}
并可选择释放会话
CDP 数据流通过 `browse cdp ` 获取,它以 NDJSON 流式传输
DevTools 协议事件。该命令需要
@browserbasehq/browse-cli alpha 或包含
browserbase/stagehand#1905 的版本;生命周期事件特别需要
browserbase/stagehand#2056。
Co-Authored-By: Claude Opus 4.7 (1M context)
* 将 browser-observability 脚本从 bash 转换为 .mjs
镜像 cookie-sync 技能的模式:每个脚本变为 Node ESM
模块,使用共享的 scripts/lib.mjs 存放通用辅助函数,以及一个最小的
package.json(无依赖——纯 Node 标准库,因此无需 `npm install`
步骤)。
scripts/lib.mjs 共享辅助函数、BUCKETS 表、isTopNav
scripts/start-capture.mjs 启动分离的 `browse cdp` + 采样器
scripts/snapshot-loop.mjs 截图+DOM+url 轮询循环(内部)
scripts/stop-capture.mjs SIGTERM+宽限+SIGKILL,清理 .partials
scripts/bisect-cdp.mjs 页面感知的切分 + 结构化 summary.json
scripts/query.mjs 下钻:list/page/errors/hosts/host/timeline
scripts/bb-capture.mjs Browserbase 包装器(--new 或按 id 附加)
scripts/bb-finalize.mjs 拉取 session.json/logs.json/downloads.zip
输出布局、每页切分逻辑、summary.json 结构以及
query.mjs 子命令与 bash 版本完全相同。SKILL.md、
REFERENCE.md 和 EXAMPLES.md 已更新为调用 `node scripts/foo.mjs`
而不是 `bash scripts/foo.sh`。
已针对 Browserbase 会话和保存的
/Users/d/Desktop/browserbase/o11y-demo-1 运行进行了端到端自测——页面切分、
持续时间、错误归因、主机计数均与 bash 输出匹配。
Co-Authored-By: Claude Opus 4.7 (1M context)
* 将 browser-observability 重命名为 browser-trace
更短、更面向动作的名称,作为斜杠命令读起来更清晰,
并与 autobrowse 技能自然搭配(后者可以将 trace
输出用作其循环的结构化“刚刚发生了什么”数据)。
重命名:
- skills/browser-observability/ → skills/browser-trace/
- SKILL.md frontmatter `name`、文档 H1、package.json name
- marketplace.json 插件条目(name、skills 路径、description、keywords)
- README.md 技能表行
- 全文将“observer”改为“tracer”以与新名称保持一致
无行为变更——所有脚本接口、输出布局、summary.json
结构以及 query.mjs 子命令均未改变。
Co-Authored-By: Claude Opus 4.7 (1M context)
* 回应 browser-trace 上的 Cursor Bugbot 审查
修复 PR #83 上标记的三个问题:
- query.mjs cmdTimeline:之前会先打印每个导航,然后打印每个
生命周期事件,因此所有 `[NAV …]` 行都挤在任何
`[init]`/`[load]` 行之前。现在直接读取 cdp/raw.ndjson,并按实际流顺序
输出顶级 frameNavigated 和生命周期事件。
- query.mjs cmdHost:之前使用 `url.startsWith('https://' + hostname)`,
当用户请求 `api.example.com` 时,会匹配 `https://api.example.com.evil.tld/...`。
已通过一个小型 `hostMatches` 辅助函数切换为精确的
`new URL(url).hostname` 比较。
- query.mjs:移除了未使用的 `emitJsonl` 辅助函数(已定义但从未
调用——与 Bugbot 针对 bash 版本 `cat_bucket_across` 提出的
同类死代码问题)。
Bugbot 还标记了 bash bb-capture.sh 的 `| grep ... || true`,它会
静默吞掉 start-capture 失败。.mjs 版本已通过
`if (start.status !== 0) process.exit(...)` 正确处理此问题,
因此那里无需更改。
Co-Authored-By: Claude Opus 4.7 (1M context)
* 修复 Console 域桶 + 对齐 hosts/host 端口处理
来自 PR #83 上 Cursor Bugbot 的另外两个问题:
1. Console 错误和警告被静默地从
每页摘要中丢弃。computePageSummary 通过
`method.split('.')[0]` 对每个事件分类,这会将 Runtime.consoleAPICalled 事件
放入 `Runtime` 桶——但这些事件中的错误/警告
被记录在键 `Console` 下。输出循环遍历
`counts.entries()` 并按该域键查找错误/警告,
因此 Console 错误/警告从未进入汇总。
添加了一个 `domainFor(method)` 辅助函数,对于
`Runtime.consoleAPICalled` 返回 'Console',否则返回标准的
`method.split('.')[0]`。现在与 SKILL.md 中记录的
模式匹配。
2. cmdHosts 按 `URL.host`(包含端口)分组,但 cmdHost 与
`URL.hostname`(去除端口)比较,因此当存在端口时,`hosts` 输出
无法管道传入 `host`。已将
`hostMatches` 切换为 `URL.host` 以保持一致。冒名保护
(对 `example.com` 查询拒绝 `example.com.evil.tld`)
通过精确相等检查得以保留。
已针对 /Users/d/Desktop/browserbase/o11y-demo-1 验证:每个页面
现在都显示 Console + Runtime 作为不同的域块;第 4 页
(httpbin/418) 正确地将 418 状态归因于 Log 错误。
Co-Authored-By: Claude Opus 4.7 (1M context)
---------
Co-authored-by: Claude Opus 4.7 (1M context)
暂无评论...