命令面
命令接口¶
每个 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 命令之前:
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw