一、技能概述
该技能用于在 OpenClaw 仓库根目录下运行,以执行对频道消息流行为的端到端验证。它属于 QA Lab 证据体系的一部分,主要关注流式消息(channels.streaming)和运行时投递(runtime.delivery) 两个核心证据维度。
核心原则:该技能不直接操作生产环境,而是通过 QA 场景(scenario)在模拟或真实频道驱动下验证消息传递逻辑的正确性。
二、核心功能
1. QA 场景运行
技能通过 QA Lab 运行一个名为 channel-message-flows 的场景:
OPENCLAW_BUILD_PRIVATE_QA=1 node scripts/run-node.mjs qa suite \
--provider-mode mock-openai \
--scenario channel-message-flows \
--channel-driver qa-channel
2. 双驱动模式
技能支持两种驱动方式,用于验证不同环境下的消息流行为:
| 驱动模式 | 说明 | 命令差异 |
|---|---|---|
| QA Channel | 在模拟的 QA 频道环境中运行 | --channel-driver qa-channel |
| Crabline Telegram | 通过真实 Telegram 插件连接到 Crabline 的本地 provider 服务器运行 | --channel-driver crabline --channel telegram |
两种模式均使用 --provider-mode mock-openai 模拟 OpenAI provider,确保测试的确定性和可重复性。
3. 验证范围
该场景覆盖两大证据类别:
-
channels.streaming —— 流式消息传递的主要证据,验证消息在传输过程中的实时流式行为
-
runtime.delivery —— 运行时投递的次要证据,验证消息最终是否正确送达
4. 相关源码参考
技能涉及以下关键源码文件:
-
qa/scenarios/channels/channel-message-flows.yaml—— 场景定义文件 -
extensions/qa-channel/src/inbound.ts—— QA Channel 入站处理 -
extensions/qa-lab/src/qa-transport.ts—— QA Lab 传输层 -
extensions/qa-lab/src/crabline-transport.ts—— Crabline 传输层 -
extensions/telegram/src/draft-stream.ts—— Telegram 草稿流处理
三、主要用途
-
验证 Telegram 草稿与最终消息的传递时序
确保在 Telegram 频道中,草稿消息与最终消息的发送顺序和内容符合预期。 -
QA Lab 端到端消息流证据采集
在 QA 环境中系统化地采集和验证频道消息流的正确性证据。 -
模拟环境与真实环境双轨验证
通过 QA Channel(模拟)和 Crabline Telegram(真实)两种驱动模式,确保消息流逻辑在两种环境下均表现一致。 -
回归测试与发布前验证
在频道消息流相关代码变更后,运行此 QA 场景以确认未引入回归问题。
四、重要原则
-
行为由传输层原生 QA 流拥有:该技能不独立定义消息流行为,而是验证由传输层实现的已有行为。
-
必须从 OpenClaw 仓库根目录运行:技能的使用前提是在 OpenClaw 仓库的根目录下执行。
-
使用 mock-openai 确保确定性:两种驱动模式均使用
--provider-mode mock-openai,避免真实 AI 模型的不确定性影响测试结果。
总结:Channel Message Flows 是一个专用于 QA Lab 验证的频道消息流测试技能,通过运行预定义的 channel-message-flows 场景,在 QA Channel 或 Crabline Telegram 两种驱动下验证草稿与最终消息传递时序的正确性。它覆盖流式消息传输和运行时投递两大证据维度,是 OpenClaw 频道消息流功能回归测试与发布前验证的核心工具。