Get started
Канал QA
qa-channel — локальный для репозитория синтетический транспорт сообщений для автоматизированного QA OpenClaw (extensions/qa-channel, закрытый пакет, исключённый из устанавливаемых сборок). Это не промышленный канал — он предназначен для проверки той же границы плагина канала, которую используют реальные транспорты, при этом сохраняя состояние детерминированным и полностью доступным для проверки.
Что он делает
- Грамматика целей класса Slack:
dm:<user>channel:<room>group:<room>thread:<room>/<thread>
- Общие беседы
channel:иgroup:представляются агентам как ходы групповой беседы или комнаты канала, поэтому они проверяют ту же политику маршрутизации видимых ответов и инструмента сообщений, которая используется Discord, Slack, Telegram и аналогичными транспортами. - Синтетическая шина на базе HTTP для внедрения входящих сообщений, захвата исходящих транскриптов, создания веток, реакций, редактирования, удаления, а также операций поиска и чтения.
- Запускаемый на стороне хоста модуль самопроверки, который записывает отчёт Markdown в
.artifacts/qa-e2e/.
Конфигурация
{ "channels": { "qa-channel": { "baseUrl": "http://127.0.0.1:43123", "botUserId": "openclaw", "botDisplayName": "OpenClaw QA", "allowFrom": ["*"], "pollTimeoutMs": 1000 } }}Ключи учётной записи:
enabled— главный переключатель этой учётной записи.name— необязательная отображаемая метка.baseUrl— URL синтетической шины. После его задания учётная запись считается настроенной.botUserId— идентификатор пользователя синтетического бота, используемый в грамматике целей (по умолчанию:openclaw).botDisplayName— отображаемое имя для исходящих сообщений (по умолчанию:OpenClaw QA).pollTimeoutMs— интервал ожидания длительного опроса. Целое число от 100 до 30000 (по умолчанию: 1000).allowFrom— список разрешённых отправителей (идентификаторы пользователей или"*"; по умолчанию:["*"]). К личным сообщениям всегда применяется политикаopen; групповая политика со списком разрешённых отправителей также использует эти синтетические идентификаторы отправителей.groupPolicy— политика общей комнаты:"open"(по умолчанию),"allowlist"или"disabled".groupAllowFrom— необязательный список разрешённых отправителей общей комнаты. Если он не указан при"allowlist", QA Channel используетallowFrom.groups.<room>.requireMention— требовать упоминания бота перед ответом в определённой комнате группы или канала (по умолчанию: false).groups."*"задаёт значение по умолчанию; параметры отдельных комнатtools/toolsBySenderпереопределяют политику инструментов.defaultTo— резервная цель, если цель не указана.actions.messages/actions.reactions/actions.search/actions.threads— управление доступностью инструментов для отдельных действий.
Ключи нескольких учётных записей верхнего уровня:
accounts— набор именованных переопределений для отдельных учётных записей, индексированный по идентификатору учётной записи.defaultAccount— предпочтительный идентификатор учётной записи, если настроено несколько учётных записей.
Средства запуска
Самопроверка на стороне хоста (записывает отчёт Markdown в каталог .artifacts/qa-e2e/):
pnpm qa:e2eКоманда выполняет маршрутизацию через qa-lab, запускает шину QA из репозитория, загружает срез среды выполнения qa-channel и выполняет детерминированную самопроверку.
Полный набор сценариев на базе репозитория:
pnpm openclaw qa suiteЗапускает сценарии параллельно в линии QA Gateway. Сценарии, профили и режимы провайдеров описаны в обзоре QA.
Сайт QA на базе Docker (Gateway и отладочный интерфейс QA Lab в одном стеке):
pnpm qa:lab:upСобирает сайт QA, запускает стек Gateway и QA Lab на базе Docker и выводит URL QA Lab. В нём можно выбирать сценарии и линию модели, запускать отдельные прогоны и наблюдать за результатами в реальном времени. Отладчик QA Lab не входит в поставляемый пакет Control UI.
Связанные материалы
- Обзор QA — общий стек, адаптеры транспорта, профили Matrix и создание сценариев
- Сопряжение
- Группы
- Обзор каналов