antithesis-agent-browser – 浏览器自动化测试 Skill

3周前更新 8 0 0 0

antithesis-agent-browser 是用于驱动浏览器执行自动化操作与网页交互的 Skill,适合 AI Agent 完成页面导航、元素点击、表单填写和信息提取等任务。

Skill 安装

多 Agent 安装
npx skills add https://github.com/antithesishq/antithesis-skills --skill antithesis-agent-browser

使用 npx skills 快速安装,支持将 Skill 添加到多个兼容的 AI Agent。

Skill 调研报告

Skill 详细介绍

antithesishq/antithesis-skills#antithesis-agent-browser 是 Antithesis 官方 Skills 仓库(antithesishq/antithesis-skills)中提供的一个 Agent Skill,名称可识别为 antithesis-agent-browser。

Antithesis 是一家提供确定性仿真测试(deterministic simulation testing)平台的厂商,其核心产品用于在可控的模拟环境中对分布式系统、数据库和并发程序进行故障注入与验证。antithesis-agent-browser 正是围绕这一测试场景设计的 Skill,用于让 AI Agent 具备在 Antithesis 测试环境中驱动浏览器、观察被测系统行为的能力。

它本身不是一个独立运行的软件,也不是一个 npm 或 pip 可安装的库。它是一套面向 AI Agent 的指令与工作流定义(SKILL.md 形式的 Skill),安装后由 Agent 在需要时加载和调用。

核心用途

– 让 Agent 能够在 Antithesis 的仿真测试环境中打开、操作浏览器,并观察系统在浏览器侧的行为表现
– 配合 Antithesis 的测试运行,把浏览器交互作为验证被测系统正确性的一种手段
– 帮助用户通过自然语言描述测试意图,由 Agent 转化为具体的浏览器操作与检查步骤

它不是什么

– 不是通用浏览器自动化框架(例如 Playwright、Puppeteer 的替代品)
– 不是通用的网页抓取或爬虫工具
– 不是 Antithesis 平台本身的替代品,它依赖 Antithesis 的测试环境
– 不是无需任何外部服务即可独立完成端到端测试的独立工具

典型任务

– 在 Antithesis 测试运行期间,驱动浏览器访问被测系统的 Web 界面
– 检查页面在特定并发/故障条件下的渲染与响应是否符合预期
– 模拟用户交互路径,辅助发现前端与后端协作中的问题
– 将浏览器侧观察结果作为测试断言的一部分反馈给测试流程

适合哪些用户

– 已经在使用 Antithesis 平台做仿真测试的团队
– 需要对带 Web 界面的分布式系统做端到端验证的工程团队
– 希望把浏览器行为纳入 Antithesis 测试覆盖范围的使用者

不适合哪些需求

– 只想做普通网页抓取、数据采集的用户
– 不使用 Antithesis、只想要通用浏览器自动化的用户
– 希望找一个零依赖、独立运行的浏览器控制工具的用户

由于该类 Skill 的完整行为定义以仓库中对应路径的 SKILL.md 为准,具体支持的指令、可调用的动作与限制条件,请以 Antithesis 官方仓库中该 Skill 的当前说明为准。

Skill 安全评估

总体判断:这是一个来源相对可信、但会涉及浏览器控制与外部测试环境的 Skill。它本身不包含可疑的凭证收集或隐蔽网络行为,但由于它面向测试环境驱动浏览器,使用时需要关注权限范围与环境隔离。

来源可信度

– 来自 Antithesis 官方组织仓库 antithesishq/antithesis-skills,属于一手来源,可信度较高
– 属于厂商自家为自家平台配套的 Skill,通常与官方测试产品配合使用,动机明确

主要安全关注点

1. 浏览器控制权限
Skill 需要让 Agent 驱动浏览器进行操作。这意味着 Agent 可能在浏览器中执行点击、输入、导航等动作。如果浏览器连接受测系统的真实环境(而非隔离的仿真环境),操作可能产生真实副作用。

2. 测试环境隔离
Antithesis 的核心价值在于确定性仿真环境。如果 Skill 被用于指向非隔离环境,浏览器操作的后果会外溢。建议始终将其绑定到隔离的测试/仿真环境中。

3. 网络访问
浏览器访问需要网络。这本身是该 Skill 的正常用途,但需要确认访问目标是被测系统,而非任意第三方站点。

4. 凭证与登录态
如果被测系统需要登录,浏览器可能携带 Cookie 或凭据。不要在 Skill 使用的浏览器会话中混入与测试无关的敏感账号。

降低风险的建议

– 仅在隔离的 Antithesis 仿真环境中使用该 Skill,不要让它指向生产环境
– 使用专门为测试准备的账号,避免复用个人或管理员主账号
– 如果只需要生成测试步骤而不需要自动执行,可在 Agent 层关闭自动执行,由人工确认后再运行
– 关注官方仓库的变更,Skill 更新后重新确认其行为范围

该 Skill 不属于“绝对安全”或“已全面审计”的类型,应结合自身测试环境边界使用。

Skill 使用要求

一、Agent / 客户端

该 Skill 属于 Antithesis 官方 Skills 仓库,采用通用的 Agent Skill 形式。官方没有公布完整的第三方 Agent 兼容列表。从 Agent Skill 的加载方式看,在支持 Skills 或自定义 Skill 加载机制的 Agent 中通常可以尝试使用,例如 Claude Code、Codex、Cursor、Trae、OpenClaw、WorkBuddy 等。不同 Agent 的装载方式和兼容程度可能不同,具体以对应 Agent 当前版本为准。

由于它面向 Antithesis 平台,实际使用效果与你是否能访问该平台环境强相关,与使用哪个 Agent 关系较小。

二、运行环境 / 依赖

| 项目 | 要求 |
|—|—|
| Agent | 支持 Skills 或自定义 Skill 加载的 Agent |
| Antithesis 环境 | 需要,Skill 面向 Antithesis 测试环境 |
| 浏览器 | 需要,用于驱动浏览器操作 |
| 网络 | 需要,浏览器需访问被测系统 |
| Node.js / Python | 官方未将其作为该 Skill 本身的硬性前提,具体以官方说明为准 |

上述依赖中,Node.js、Python 等运行时是否为必需,取决于 Skill 底层调用方式,当前官方资料未明确说明,请以官方仓库为准。

三、权限

– 浏览器控制:必需,这是该 Skill 的核心能力
– 网络访问:必需,浏览器需要访问被测系统
– 文件读取:视具体操作而定,可能用于读取测试配置或断言
– 文件写入:不是核心必需项
– Shell 执行:不是该 Skill 的核心必需项,除非具体任务流程需要
– Docker / GitHub:与 Skill 本身无关

四、账号 / API Key

– Skill 本身是否需要账号或 API Key:官方资料未明确说明,通常与 Agent 和 Antithesis 平台的接入方式相关
– Antithesis 平台账号:使用该 Skill 的实际场景通常需要 Antithesis 账号与可用的测试环境
– 被测系统凭证:如果被测系统需要登录,则可能需要测试账号

需要区分:Skill 本身的凭证需求,与它操作的测试环境所需凭证是两回事。

最小使用条件

1. 一个支持 Skill 加载的 AI Agent
2. 一个可访问的 Antithesis 测试环境
3. 可用的浏览器与网络访问
4. (如被测系统需要)测试账号

Skill 安装、使用与卸载教程

一、安装

可以直接复制本页面提供的 Skill 安装指令,粘贴到对应 Agent 或终端执行。

如果不清楚自己的 Agent 如何安装,可以直接向当前 Agent 提问:

如何安装 antithesishq/antithesis-skills#antithesis-agent-browser?

如何在 Claude Code 中安装 antithesishq/antithesis-skills#antithesis-agent-browser?

如何在 Codex 中安装 antithesishq/antithesis-skills#antithesis-agent-browser?

如何在 Cursor 中安装 antithesishq/antithesis-skills#antithesis-agent-browser?

让当前 Agent 根据自己的 Skill 加载 / 管理机制为你完成安装。如果该 Skill 存在特殊官方安装条件,请以官方仓库中的说明为准。

二、安装后如何使用

安装后,当你的任务涉及在 Antithesis 测试环境中驱动浏览器、观察被测系统 Web 行为时,Agent 会自动或在你的指令下加载该 Skill。

适合交给它的任务类型:

– 在 Antithesis 仿真环境中通过浏览器验证系统行为
– 描述一段浏览器交互路径,用于测试断言
– 排查被测系统在浏览器侧的表现问题

向 Agent 描述需求时,尽量说清:测试环境、被测目标、期望的浏览器操作与验证点。例如:

使用 antithesis-agent-browser,在当前的 Antithesis 测试环境里打开被测系统的登录页,验证并发登录时界面是否正常响应。

使用 antithesis-agent-browser,帮我模拟用户下单流程的浏览器操作,并把关键页面的状态记录下来作为测试断言。

使用 antithesis-agent-browser,检查这个 Web 界面在故障注入期间的错误提示是否符合预期。

三、卸载

不同 Agent 的 Skill 安装位置和管理方式可能不同。通常可以:

– 使用对应 Agent 或 Skill 管理器提供的删除方式移除该 Skill
– 或者直接询问当前 Agent:

如何卸载 antithesishq/antithesis-skills#antithesis-agent-browser?

如果没有统一的卸载命令,直接询问当前 Agent 如何移除该 Skill 通常更稳妥。

常见问题

安装后 Agent 没有识别到这个 Skill,怎么办?
先确认 Skill 已放入对应 Agent 的 Skill 目录或被管理器正确登记。不同 Agent 的加载路径不同,可以询问当前 Agent“如何确认 antithesishq/antithesis-skills#antithesis-agent-browser 已经加载”。如果仍不识别,注意 Skill 名称与路径是否写错。

不使用 Antithesis 平台,这个 Skill 还有用吗?
它的设计场景与 Antithesis 测试环境绑定。如果没有该环境,它的核心价值难以体现。只想要通用浏览器自动化,应选择浏览器自动化类工具。

它和普通浏览器自动化 Skill 有什么区别?
普通浏览器自动化侧重通用网页操作。antithesis-agent-browser 侧重在 Antithesis 的仿真测试框架内做浏览器侧验证,服务于测试断言与故障场景,而非通用网页操作或抓取。

可以同时安装到多个 Agent 吗?
通常可以,只要各 Agent 都支持 Skill 加载。但同一份 Skill 在不同 Agent 中的行为可能略有差异,建议以实际测试为准。

Skill 更新后需要重新安装吗?
这取决于你的 Agent 是否支持自动拉取更新。如果不支持,通常需要重新获取仓库中该 Skill 的最新版本并覆盖安装。

中国大陆使用有网络要求吗?
该 Skill 本身面向 Antithesis 测试环境,能否使用主要取决于你是否能访问 Antithesis 平台以及被测系统。这属于平台接入问题,不是该 Skill 特有的网络限制。

它会不会修改我已有的项目代码?
该 Skill 的核心是对浏览器进行操作与观察,不属于代码修改类 Skill。是否会写入文件取决于具体任务,官方资料未列出默认的文件写入行为。

Skill 更新日志

版本列表
无版本号
更新 PR #204 的技能版本
无版本号
更新 PR #198 的技能版本
无版本号
更新 PR #201 的技能版本
无版本号
更新 PR #200 的技能版本
无版本号
更新 PR #195 的技能版本
无版本号
更新 PR #199 的技能版本
无版本号
更新 PR #194 的技能版本
无版本号
更新 PR #191 的技能版本
无版本号
更新 PR #189 的技能版本
无版本号
更新 PR #188 的技能版本
无版本号
修复 agent browser 技能中不正确的命令格式 (#185)
无版本号
更新 PR #184 的技能版本
无版本号
chore: 为 PR #182 回填 changelog 条目并提升技能版本 (#183) * 更新 PR #182 的 changelog 回填:PR #182 合并时没有 changelog 标签,因此 pr-merge-changelog 工作流短路,未添加任何条目。 通过运行 `.ci-scripts/changelog.py add-entry` 复现, 使用 `find_merged_pr.py` 本应输出的条目文本。 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_018gQyXJukB6xdZzEieUvMTu * 更新 PR #182 的技能版本 回填:同样的短路跳过了版本提升。通过 运行 `.ci-scripts/update_skill_versions.py update --sha 5b6aeb5` 复现, 使用工作流本应传入的 #182 合并提交 SHA。 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_018gQyXJukB6xdZzEieUvMTu --------- Co-authored-by: Carl Sverre Co-authored-by: Claude Opus 5 (1M context)
无版本号
更新 PR #180 的技能版本
无版本号
更新 PR #179 的技能版本
无版本号
更新 PR #178 的技能版本
无版本号
更新 PR #177 的技能版本
无版本号
更新 PR #176 的技能版本
无版本号
更新 PR #169 的技能版本
无版本号
更新 PR #165 的技能版本
无版本号
triage: 依赖 snouty 原生日志注解 + 属性过滤器,移除捆绑的日志脚本 (#165) * triage: 依赖 snouty 原生日志注解 + 属性过滤器,移除捆绑的日志脚本 移除 triage 技能捆绑的日志辅助工具(download-logs.sh、download-logs-chunked.py、process-logs.py),并直接基于 snouty 驱动 triage,snouty 现在原生注解日志(active_faults + ANSI 剥离)并支持 --name/--group 属性过滤器。重写 references/logs.md 以适配 NDJSON 流式工作流,更新 properties.md 和 run-discovery.md,并修复指向已移除脚本的 Makefile/CI/文档及跨技能引用。 Co-Authored-By: Claude * debug: 将最低 snouty 版本提升至 0.6.0 0.6.0 提升(83f0ef0)早于 #162,后者为 debug setup-session 引用新增了 snouty>=0.5.0 门槛。将其提升至 0.6.0 以与套件其余部分保持一致;snouty debug --run-id(该技能首选的启动路径)无论如何都需要它。 Co-Authored-By: Claude --------- Co-authored-by: Claude
无版本号
更新 PR #162 的技能版本
无版本号
debug: 直接从 run_id 启动 MVD 会话 (#162)
无版本号
更新 PR #168 的技能版本
无版本号
更新 PR #161 的技能版本
无版本号
更新 PR #167 的技能版本
无版本号
fix: 在用户确认后才进行 agent-browser 交互式认证 (#167) 当共享会话未认证时,该技能会无条件运行 --headed 登录流程。在远程/无头机器上,浏览器会在无人能看到的地方打开,认证检查会无限循环——它只是在徒劳挣扎。 在 setup-auth.md 中添加预检门槛:尽力检测 Linux 上缺失的显示(DISPLAY/WAYLAND_DISPLAY),并在所有情况下先告知即将打开的窗口,等待用户确认他们在场后再打开它,提醒他们如果没有窗口出现就报告,以便我们停止而不是循环。 fixes #166 Co-authored-by: Claude
无版本号
更新 PR #164 的技能版本
无版本号
更新 PR #160 的技能版本
无版本号
更新 PR #158 的技能版本

暂无评论

none
暂无评论...