> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# QA-канал

`qa-channel` — це вбудований синтетичний транспорт повідомлень для автоматизованого QA OpenClaw. Це не production-канал - він існує, щоб перевіряти ту саму межу Plugin каналу, яку використовують реальні транспорти, зберігаючи стан детермінованим і повністю доступним для інспекції.

## Що він робить

* Граматика цілей класу Slack:
  * `dm:<user>`
  * `channel:<room>`
  * `group:<room>`
  * `thread:<room>/<thread>`
* Спільні розмови `channel:` і `group:` передаються агентам як ходи кімнати групи/каналу, тож вони перевіряють ту саму політику видимих відповідей і маршрутизації message-tool, яку використовують Discord, Slack, Telegram та подібні транспорти.
* Синтетична шина на базі HTTP для ін’єкції вхідних повідомлень, захоплення вихідного транскрипту, створення тредів, реакцій, редагувань, видалень і дій пошуку/читання.
* Хостовий runner самоперевірки, який записує Markdown-звіт у `.artifacts/qa-e2e/`.

## Конфігурація

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "channels": {
    "qa-channel": {
      "baseUrl": "http://127.0.0.1:43123",
      "botUserId": "openclaw",
      "botDisplayName": "OpenClaw QA",
      "allowFrom": ["*"],
      "pollTimeoutMs": 1000
    }
  }
}
```

Ключі облікового запису:

* `enabled` - головний перемикач для цього облікового запису.
* `name` - необов’язкова мітка відображення.
* `baseUrl` - URL синтетичної шини.
* `botUserId` - ідентифікатор користувача бота у стилі Matrix, який використовується в граматиці цілей.
* `botDisplayName` - ім’я відображення для вихідних повідомлень.
* `pollTimeoutMs` - вікно очікування long-poll. Ціле число від 100 до 30000.
* `allowFrom` - allowlist відправників (ідентифікатори користувачів або `"*"`). Прямі повідомлення та
  allowlisted політика груп обидві використовують ці синтетичні ідентифікатори відправників.
* `groupPolicy` - політика спільної кімнати: `"open"` (типово), `"allowlist"` або
  `"disabled"`.
* `groupAllowFrom` - необов’язковий allowlist відправників спільної кімнати. Якщо його пропущено під
  `"allowlist"`, QA Channel повертається до `allowFrom`.
* `groups.<room>.requireMention` - вимагати згадку бота перед відповіддю в
  конкретній кімнаті групи/каналу. `groups."*"` задає типове значення.
* `defaultTo` - резервна ціль, коли жодну не вказано.
* `actions.messages` / `actions.reactions` / `actions.search` / `actions.threads` - gating інструментів для кожної дії.

Ключі кількох облікових записів на верхньому рівні:

* `accounts` - запис іменованих перевизначень для кожного облікового запису, індексований за ідентифікатором облікового запису.
* `defaultAccount` - бажаний ідентифікатор облікового запису, коли налаштовано кілька.

## Runners

Хостова самоперевірка (записує Markdown-звіт у `.artifacts/qa-e2e/`):

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm qa:e2e
```

Це маршрутизується через `qa-lab`, запускає QA-шину всередині репозиторію, завантажує вбудований runtime-зріз `qa-channel` і виконує детерміновану самоперевірку.

Повний набір сценаріїв на базі репозиторію:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm openclaw qa suite
```

Запускає сценарії паралельно проти QA lane Gateway. Див. [Огляд QA](/uk/concepts/qa-e2e-automation) щодо сценаріїв, профілів і режимів провайдерів.

QA-сайт на базі Docker (Gateway + UI налагоджувача QA Lab в одному стеку):

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm qa:lab:up
```

Збирає QA-сайт, запускає Gateway на базі Docker + стек QA Lab і виводить URL QA Lab. Звідти можна вибирати сценарії, обирати lane моделі, запускати окремі прогони та переглядати результати наживо. Налагоджувач QA Lab окремий від поставленого bundle Control UI.

## Пов’язане

* [Огляд QA](/uk/concepts/qa-e2e-automation) - загальний стек, адаптери транспорту, створення сценаріїв
* [Matrix QA](/uk/concepts/qa-matrix) - приклад runner для живого транспорту, який керує реальним каналом
* [Pairing](/uk/channels/pairing)
* [Groups](/uk/channels/groups)
* [Огляд каналів](/uk/channels)
