SuperAPI AI 工具集

tabbit

智能体与模型

查看项目

更新于 11-07 06:30

技能介绍

用途

Tabbit 用于在任务隔离的 Playwright 工作区中控制 Tabbit 浏览器。其核心约束是:不要在操作过程中切换浏览器后端。每个任务在独立的工作区内运行,工作区只管理自己创建的页面(context.pages()/pages()),并将这些标签页放入同一个分组。

主要能力

  • 支持持久工作区模式:若命令工具返回可复用的进程句柄,并支持通过管道写入 stdin(Windows 上为非 PTY),可运行一次持久进程,这是首选方式。
  • 支持单次命令模式:否则使用 <launcher> nodejs --task NAME 立即执行,并在每条命令中复用完全相同的任务名。
  • 命令帧操作:bootstrap(启动任务并执行首段代码)、run(后续执行,需带 requestId)、inspect(带 waitMs 等待)、tabs(在 bootstrap 前接管已有标签页)、finish(结束会话)。
  • 任务租约机制:命令会续订五分钟租约,过期后保留标签页与分组但停止动画。
  • 标签页接管:发送 {"op":"tabs"} 获取现有标签页,并在 claimTabIds 中带上精确 tabId 进行接管。
  • 结束策略:普通 finish 保留标签页和可恢复分组;{"op":"finish","keep":false} 仅用于显式丢弃或必要清理,且只关闭会话创建的标签页,不关闭已接管或恢复的标签页。

使用方式

  1. 选择启动器:macOS/POSIX 使用 "$HOME/.local/bin/tabbit-cli";Windows PowerShell 使用 & "$env:LOCALAPPDATA\Tabbit\LocalAgent\bin\tabbit-cli.exe"。不要假设 tabbit-cli 已在 PATH 中。
  2. 优先尝试持久模式;否则改用单次命令模式,并复用同一任务名。
  3. 持久模式下发送换行帧并等待响应,不要分离进程或将其放入后台。单次模式在结束时运行 <launcher> finish --task NAME。
  4. 先发送 bootstrap,附带简洁的展示用 taskName。在代码中依次进行导航、操作、用 Playwright expect 校验,然后返回证据。示例: {"op":"bootstrap","taskName":"Save-profile","requestId":"save-01","code":"await page.goto('https://example.test/profile',{waitUntil:'domcontentloaded'}); await page.getByRole('button',{name:'Save'}).click(); await expect(page.getByText('Saved')).toBeVisible(); return {verified: true};"}
  5. 若 bootstrap 返回 queued,使用 {"op":"inspect","requestId":"save-01","waitMs":60000} 等待,不要重复提交。
  6. 仅当返回状态会改变下一步决策时才拆分。后续帧需带路径安全的 requestId,例如: {"op":"run","requestId":"save-02","code":"return await page.title();"}
  7. 在 bootstrap 前发送 {"op":"tabs"} 以接管已有标签页,并在 claimTabIds 中包含其精确 tabId。
  8. 完成前恰好执行一次结束:持久模式发送 {"op":"finish"},单次模式运行 finish 命令。

适用场景

适用于需要在 Tabbit 浏览器中执行隔离的浏览器自动化任务,例如页面导航、点击、表单操作、结果校验与证据采集,以及接管已有标签页继续工作。支持弹窗、iframe、上传下载、canvas、重复操作等 Playwright 常见场景,以及结果提取和失败后的运行时恢复。

限制与注意事项

  • 不得切换浏览器后端。
  • 不得假设 tabbit-cli 位于 PATH。
  • 列表(inventory)不创建任务、页面、标签页或分组;后续帧省略任务标识。
  • 不要预加载平台调用、交互辅助、Playwright 配方、信息提取与运行时恢复等参考文档,仅按需阅读。
  • 在失败、中断的接收或传输/finish 失败后应查阅运行时恢复,不要盲目重试可能产生变更的操作。
  • 具体收费、平台覆盖范围与安装方式暂未提供。