用途
Check 用于对应用进行独立的验收验证。使用 vibium check "<claim>" 把一条具体的验收声明交给一个全新的验证器上下文。编码智能体负责构建和修复应用,而 Vibium 的验证器使用受限的浏览器工具调查运行中的行为。你自己的浏览器检查不能替代这次调用。
Run 用于完成浏览器目标,其完成结果不能替代 Check 的判定。Check 从不继承 Run 的对话。
主要能力
- 对实时浏览器中的运行行为进行验收检查。
- 对已保存的录制(Vibium 录制或兼容的 Playwright version 8 trace)进行离线检查。
- 返回结构化结果:
result.status为 passed、failed 或 inconclusive,分别显示为 PASS、FAIL 或 INCONCLUSIVE。 - 支持通过
--json控制标准输出,通过--report verdict.json保存独立的 JSON 判定。 - 支持通过
-o verification.zip自动记录验证过程(在支持时包含视频,Firefox 154+)。 - 支持
--keep-open在独立检查后保留浏览器供进一步检查。
使用方式
环境准备
使用项目配置的 Vibium 二进制文件;否则依次尝试 vibium、./clicker/bin/vibium、./node_modules/.bin/vibium。确认 vibium check --help 可用。本地 Chrome 是实时检查的测试基线。
首次实时设置时,用所选引擎/通道运行 vibium ready browser --json。它只检查浏览器和驱动文件,不启动它们,也不触碰当前浏览器;启动和 BiDi 连通性仍未测试。如有需要,遵循其安装/修复指引。保存输入的检查不需要浏览器,可跳过浏览器就绪检查。
AI 提供方配置:
- OpenAI:导出
VIBIUM_AI_PROVIDER=openai、VIBIUM_AI_MODEL和OPENAI_API_KEY。 - xAI:选择
xai并导出XAI_API_KEY(例如--model grok-4)。 - Anthropic:选择
anthropic并导出ANTHROPIC_API_KEY;Anthropic/Google 请勿设置VIBIUM_AI_REASONING_EFFORT。 - Google:选择
google并导出GOOGLE_API_KEY。 local:使用兼容适配器,默认http://127.0.0.1:8080/v1,无需密钥。- OpenAI 兼容服务:使用
VIBIUM_AI_PROVIDER=openai-compatible和VIBIUM_AI_BASE_URL。
设置一个该提供方可用的模型。Vibium 会为空的 AI 变量加载 ~/.config/vibium/ai.env;非空进程环境变量仍然优先。如果该文件不存在,告知用户运行 vibium config init 并填写该文件——不要自行写入凭据。切勿打印或记录凭据。未经用户指示,不要为绕过缺失配置而选择其他提供方或模型。
加载设置后,在初始设置或提供方配置变更时运行 vibium ready ai --json。退出码 0 且 result.ready: true 表示配置和提供方工具往返通过;退出码 1 包含失败检查和修复建议。它最多发起两次小型模型请求,不启动或更改浏览器,不检查应用,也不替代 Check。在浏览器工作流之前解决报告的设置问题;配置未变时不要每条声明前都重跑。
开发循环
把请求的行为转化为具体、可观察的声明,保持验收条件忠实于请求。例如:“Changing the timezone persists after refresh.” 说明任务所需的边界,例如检查购物车但不进入结账。如果多个独立行为重要,分别检查。
运行应用并通过现有 Vibium CLI 走相关流程。使用 go、map、find、click 和 fill;页面变化后检查新的 refs。在设置和验证过程中复用当前浏览器、页面以及 --session 或 VIBIUM_SESSION。仅在开始新的隔离测试时创建命名会话,验证现有状态时不要创建。
记录流程。如果用户已有录制处于活动状态,保持其活动。否则用 vibium record start 开始一个(默认文件名唯一),并在验证后停止/保存你启动的录制,即使检查失败也要保存。不要停止他人的浏览器或录制。
在同一会话中运行 vibium check --json "<claim>"。该命令启动全新的验证器对话;不要发送构建者转录、源代码或建议的判定。它可能操作页面来测试声明。让它完成后再继续浏览器工作。
读取 JSON 结果并报告实际判定、简明证据和录制路径。Check 组包含验证器驱动的子操作。通过的检查适用于所述声明和观察到的会话。
当检查失败且修复应用属于用户任务时,调查证据、修复原因并重跑原始声明。保留较早的结果。不要弱化声明,也不要重试未变的行为直到某个模型碰巧通过。对于 INCONCLUSIVE,处理缺失的证据或报告限制。当请求的声明通过或出现需要用户输入的具体阻塞时停止。
浏览器清理
Check 保留现有浏览器会话。如果它自己启动浏览器,则在保存任何请求的录制后关闭该浏览器,适用于所有判定和执行错误。当独立检查应保留浏览器供检查或更多工作时,使用 --keep-open。不要仅因为 --output 保存了录制就假设浏览器保持打开。--keep-open 仅适用于实时检查,不能与 --input 组合。
录制和报告标志
-o verification.zip:在没有活动录制时自动记录验证运行。在支持时包含视频(Firefox 154+),在浏览器清理前完成。有活动录制时,它通过 Check 导出整个当前块而不停止或重置它;导出不包含连续视频。选择与活动录制输出不同的新路径。--report verdict.json:保存单独的 JSON 判定;--json仍控制标准输出。- 文件不会被覆盖,即使验证器遇到操作错误,可用的录制证据也会被保存。
验证已保存的证据
当被要求验证已保存的证据时,使用 vibium check -i record.zip "<claim>" 而不是上述实时浏览器步骤。--input 接受 Vibium 录制和兼容的 Playwright version 8 traces。检查较早判定背后的实际证据;不要把嵌入的 PASS 当作证明。报告结果针对的是录制的运行。--input 不能与 --output 组合;使用 --report 保存此判定。--record 和 --trace 不是输入标志。
结果契约
成功执行返回:
{"ok":true,"result":{"status":"passed","claim":"…","summary":"…","evidence":[{"type":"observation","summary":"…"}]}}
result.status 为 passed、failed 或 inconclusive,显示为 PASS、FAIL 或 INCONCLUSIVE。三种判定都有 CLI 退出码零。用于门控完成的脚本必须检查 result.status;仅退出码零不是通过。提供方、配置和浏览器执行失败是错误,不是 FAIL 判定。单独报告它们并保留可用证据。
提供方比较或评估
对于用户请求的提供方比较或评估,每次调用传递 --provider、--model、--ai-base-url 和 --reasoning-effort。把相同的覆盖传递给 vibium ready ai。更改提供方会清除继承的模型、端点和 effort,因此需显式提供模型和任何自定义端点。同一提供方的调用保留未指定的默认值;使用 --ai-base-url "" 或 --reasoning-effort "" 重置它们。凭据保留在运行时环境中。覆盖不会改变后续调用,也不会削弱 Check 的独立性。
适用场景
- 开发流程中的正式验证步骤。
- 验证应用是否满足具体、可观察的验收标准。
- 对已保存的录制或 Playwright trace 进行离线验收检查。
- 需要独立于构建者上下文的验证判定。
限制
- 不要发送构建者转录、源代码或建议的判定给验证器。
- 不要弱化声明或重试未变的行为直到模型碰巧通过。
--keep-open仅适用于实时检查,不能与--input组合。--input不能与--output组合。--record和--trace不是输入标志。- 仅退出码零不是通过,必须检查
result.status。 - 提供方、配置和浏览器执行失败是错误,不是 FAIL 判定。
- 不要自行写入凭据,切勿打印或记录凭据。
- 未经用户指示,不要为绕过缺失配置而选择其他提供方或模型。
- 不要停止他人的浏览器或录制。
- 不要仅因为
--output保存了录制就假设浏览器保持打开。 - 不要把嵌入的 PASS 当作证明。
- 浏览器自动化、探索和录制可使用 browser skill(如已安装);本 skill 可在需要时用
vibium <command> --help独立运行。