跳转至

命令面

命令接口

每个 QA 流程都在 pnpm openclaw qa <subcommand> 下运行。许多流程都有 pnpm qa:* 脚本别名;两种形式均可使用。

命令 用途
qa run 不带 --qa-profile 时执行内置 QA 自检;带 --qa-profile smoke-ci、--qa-profile release 或 --qa-profile all 时作为基于分类法的成熟度画像运行器运行。
qa suite 针对 QA 网关通道运行基于仓库的场景。--runner multipass 使用一次性 Linux 虚拟机而非宿主机。
qa coverage 打印 YAML 场景覆盖清单(--json 用于机器可读输出;--match <query> 用于查找与受影响行为相关的场景;--tools 用于运行时工具夹具覆盖)。
qa parity-report 比较两个 qa-suite-summary.json 文件以进行模型轴对等性门禁检查,或使用 --runtime-axis --token-efficiency 生成 Codex 与 OpenClaw 的运行时对等性和 token 效率报告。
qa confidence-report 根据清单将 QA 证据产物分类,生成零未知项置信度报告。
qa confidence-self-test 写入预置的阴性对照金丝雀测试,以证明置信度门禁能够检测漂移。
qa jsonl-replay 通过运行时对等性回放框架重放精选的 JSONL 转录记录。
qa character-eval 在多个在线模型上运行角色 QA 场景,并生成带评测结果的报告。参见 报告。
qa manual 针对所选提供商/模型通道运行一次性提示。
qa ui 启动 QA 调试器 UI 和本地 QA 总线(别名:pnpm qa:lab:ui)。
qa docker-build-image 构建预置好的 QA Docker 镜像。
qa docker-scaffold 为 QA 仪表盘 + 网关通道编写 docker-compose 脚手架。
qa up 构建 QA 站点,启动基于 Docker 的整套服务,并打印 URL(别名:pnpm qa:lab:up;:fast 变体添加 --use-prebuilt-image --bind-ui-dist --skip-ui-build)。
qa aimock 仅启动 AIMock 提供商服务器。
qa mock-openai 仅启动场景感知的 mock-openai 提供商服务器。
qa credentials doctor / add / list / remove 管理共享的 Convex 凭据池。
qa buzz 针对真实的 Buzz 中继房间运行实时传输通道,使用专用的 driver 和 SUT 身份。
qa discord 针对真实私有 Discord 服务器频道的实时传输通道。
qa matrix 针对一次性 Tuwunel homeserver 运行 QA Lab Matrix 目录场景。参见 Matrix 实时通道。
qa slack 针对真实私有 Slack 频道的实时传输通道。
qa telegram 针对真实私有 Telegram 群组的实时传输通道。
qa whatsapp 针对真实 WhatsApp Web 账户的实时传输通道。
qa mantis 面向实时传输 bug 的前/后验证运行器,附带 Discord status-reactions 证据、Crabbox 桌面/浏览器冒烟测试,以及 Slack-in-VNC 冒烟测试。参见 Mantis 和 Mantis Slack 桌面 Runbook。

基于 Profile 的 qa run

基于 Profile 的 qa run 从 taxonomy.yaml 读取成员关系,然后通过 qa suite 调度解析后的场景。--surface 和 --category 对所选 profile 进行过滤,而不是定义独立的通道。生成的 qa-evidence.json 包含 profile 记分卡摘要,其中包含所选类别的计数和缺失的 coverage ID;各个 evidence 条目仍然是测试、覆盖角色和结果的唯一事实来源。Taxonomy 功能 coverage ID 是精确的证明目标,而非别名:主要场景覆盖满足匹配的 ID,而次要覆盖仅作参考。每个 coverage ID 的格式严格为 taxonomy-surface.feature,使用 taxonomy.yaml 中的短 surface ID。场景中独立的 surface 字段是一个执行/报告标签(例如 channel 或 runtime-tool);它不定义 taxonomy 所有权。显式的 profile coverage ID 会为该 ID 选择所有符合条件的主要所有者,并按场景去重。场景文件和 taxonomy 的顺序不影响成员资格或执行顺序。

scenario.execution.channels 是一个 OR 资格列表:特定于通道的 runner 可以在列出的任一通道上执行该场景。基于 Profile 的执行会将同一列表扩展到所选 driver 支持的每个通道;只有当所有扩展通道的执行均通过时,profile 运行才算通过。这一规则统一适用于每个 taxonomy profile。

Slim evidence 省略每个条目的 execution,并设置 evidenceMode: "slim";smoke-ci 默认使用 slim,--evidence-mode full 可恢复完整条目:

pnpm openclaw qa run \
  --qa-profile smoke-ci \
  --category channels.conversation-routing-and-delivery \
  --provider-mode mock-openai \
  --output-dir .artifacts/qa-e2e/smoke-ci-profile-dispatch

使用 smoke-ci 配合 mock 模型 provider 和 Crabline 本地 provider 服务器,以获得确定性的 profile 证明。使用 release 针对实时通道进行 Stable/LTS 证明。仅在需要显式完整 taxonomy evidence 运行时使用 all;它会选择所有处于激活状态的成熟度类别,并可通过 QA Profile Evidence GitHub Actions 工作流以 qa_profile=all 进行调度。当命令还需要 OpenClaw 根 profile 时,请将根 profile 放在 QA 命令之前:

pnpm openclaw --profile work qa run --qa-profile smoke-ci

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw