> ## 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, модульных/интеграционных наборов тестов и сценариев Docker см.
[Тестирование](https://docs2.openclaw.ai/ru/help/testing.md). На этой странице описаны **живые** тесты (с обращением к сети):
матрица моделей, серверные части CLI, ACP, поставщики мультимедиа и обработка учетных данных.

## Живые тесты: локальные команды быстрой проверки

Перед разовыми живыми проверками экспортируйте необходимый ключ поставщика
в окружение процесса.

Безопасная быстрая проверка мультимедиа:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm openclaw infer tts convert --local --json \
  --text "Живая быстрая проверка OpenClaw." \
  --output /tmp/openclaw-live-smoke.mp3
```

Безопасная быстрая проверка готовности голосовых вызовов:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm openclaw voicecall setup --json
pnpm openclaw voicecall smoke --to "+15555550123"
```

`voicecall smoke` выполняется в тестовом режиме, если также не указан `--yes`; используйте `--yes` только
если намерены совершить реальный вызов. Для Twilio, Telnyx и Plivo
успешная проверка готовности требует общедоступного URL-адреса Webhook — локальные/частные
URL-адреса обратной петли отклоняются, поскольку эти поставщики не могут к ним подключиться.

## Живые тесты: проверка возможностей Android Node

* Тест: `src/gateway/android-node.capabilities.live.test.ts`
* Скрипт: `pnpm android:test:integration`
* Цель: вызвать **каждую команду, объявленную в настоящее время** подключенным Android Node, и проверить поведение контракта команд.
* Область:
  * Предварительная/ручная настройка (набор тестов не устанавливает, не запускает и не сопрягает приложение).
  * Покомандная проверка gateway `node.invoke` для выбранного Android Node.
* Необходимая предварительная настройка:
  * Приложение Android уже подключено и сопряжено с gateway.
  * Приложение остается на переднем плане.
  * Предоставлены разрешения/согласие на захват для возможностей, которые должны пройти проверку.
* Необязательные переопределения целевого объекта:
  * `OPENCLAW_ANDROID_NODE_ID` или `OPENCLAW_ANDROID_NODE_NAME`.
  * `OPENCLAW_ANDROID_GATEWAY_URL` / `OPENCLAW_ANDROID_GATEWAY_TOKEN` / `OPENCLAW_ANDROID_GATEWAY_PASSWORD`.
* Полные сведения о настройке Android: [Приложение Android](https://docs2.openclaw.ai/ru/platforms/android.md)

## Живые тесты: быстрая проверка моделей (ключи профилей)

Живые тесты моделей разделены на два уровня, чтобы изолировать сбои:

* «Прямая модель» показывает, способен ли поставщик/модель вообще ответить с указанным ключом.
* «Быстрая проверка Gateway» показывает, работает ли для этой модели полный конвейер Gateway и агента (сеансы, история, инструменты, политика песочницы и т. д.).

Приведенные ниже подготовленные списки моделей находятся в `src/agents/live-model-filter.ts` и
со временем изменяются; источником истины следует считать массивы в этом файле, а не эту
страницу.

MiniMax M3 по умолчанию использует `minimax/MiniMax-M3` в качестве ссылки на поставщика/модель.

### Уровень 1: прямое завершение модели (без Gateway)

* Тест: `src/agents/models.profiles.live.test.ts`
* Цель:
  * Перечислить обнаруженные модели
  * Использовать `getApiKeyForModel` для выбора моделей, к которым у вас есть учетные данные
  * Выполнить небольшое завершение для каждой модели (и целевые регрессионные проверки, где необходимо)
* Как включить:
  * `pnpm test:live` (или `OPENCLAW_LIVE_TEST=1` при непосредственном вызове Vitest)
  * Укажите `OPENCLAW_LIVE_MODELS=modern`, `small` или `all` (псевдоним для `modern`), чтобы фактически запустить этот набор; иначе он будет пропущен, поэтому сам по себе `pnpm test:live` остается ориентированным на быструю проверку Gateway.
* Как выбрать модели:
  * `OPENCLAW_LIVE_MODELS=modern` запускает подготовленный приоритетный список наиболее показательных моделей (см. [Живые тесты: матрица моделей](#live-model-matrix-what-we-cover))
  * `OPENCLAW_LIVE_MODELS=small` запускает подготовленный приоритетный список малых моделей
  * `OPENCLAW_LIVE_MODELS=all` является псевдонимом для `modern`
  * или `OPENCLAW_LIVE_MODELS="openai/gpt-5.6-luna,anthropic/claude-opus-4-6,..."` (список разрешений через запятую)
  * Для локальных запусков малых моделей Ollama по умолчанию используется `http://127.0.0.1:11434`; задавайте `OPENCLAW_LIVE_OLLAMA_BASE_URL` только для локальной сети, пользовательских конечных точек или конечных точек Ollama Cloud.
  * Для современных/всех моделей и малых моделей ограничение по умолчанию равно длине соответствующего подготовленного списка; задайте `OPENCLAW_LIVE_MAX_MODELS=0` для исчерпывающей проверки выбранного профиля или положительное число для меньшего ограничения.
  * Для исчерпывающих проверок `OPENCLAW_LIVE_TEST_TIMEOUT_MS` определяет время ожидания всего теста прямых моделей. По умолчанию: 60 минут.
  * По умолчанию проверки прямых моделей выполняются с параллелизмом 20; задайте `OPENCLAW_LIVE_MODEL_CONCURRENCY`, чтобы переопределить это значение.
* Как выбрать поставщиков:
  * `OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"` (список разрешений через запятую)
* Откуда берутся ключи:
  * По умолчанию: хранилище профилей и резервные значения из окружения
  * Задайте `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, чтобы разрешить использование только **хранилища профилей**
* Зачем это нужно:
  * Отделяет ситуацию «API поставщика не работает / ключ недействителен» от ситуации «конвейер агента Gateway не работает»
  * Содержит небольшие изолированные регрессионные проверки (пример: воспроизведение рассуждений OpenAI Responses/Codex Responses и потоки вызова инструментов)

### Уровень 2: быстрая проверка Gateway и агента разработки (что на самом деле делает «@openclaw»)

* Тест: `src/gateway/gateway-models.profiles.live.test.ts`
* Цель:
  * Запустить внутрипроцессный Gateway
  * Создать/изменить сеанс `agent:dev:*` (переопределение модели для каждого запуска)
  * Перебрать модели с ключами и проверить:
    * «содержательный» ответ (без инструментов)
    * работоспособность реального вызова инструмента (проверка чтения)
    * необязательные дополнительные проверки инструментов (проверка выполнения и чтения)
    * регрессионные пути OpenAI (только вызов инструмента -> последующий запрос) продолжают работать
* Сведения о проверках (чтобы можно было быстро объяснить сбои):
  * Проверка `read`: тест записывает файл с одноразовым значением в рабочую область и просит агента выполнить для него `read`, а затем вернуть это значение.
  * Проверка `exec+read`: тест просит агента выполнить `exec` для записи одноразового значения во временный файл, а затем выполнить `read` для его обратного чтения.
  * Проверка изображения: тест прикрепляет сгенерированный PNG (кот + случайный код) и ожидает, что модель вернет `cat <CODE>`.
  * Справочная реализация: `src/gateway/gateway-models.profiles.live.test.ts` и `test/helpers/live-image-probe.ts`.
* Как включить:
  * `pnpm test:live` (или `OPENCLAW_LIVE_TEST=1` при непосредственном вызове Vitest)
* Как выбрать модели:
  * По умолчанию: подготовленный приоритетный список наиболее показательных моделей (`modern`)
  * `OPENCLAW_LIVE_GATEWAY_MODELS=small` запускает подготовленный список малых моделей через полный конвейер Gateway и агента
  * `OPENCLAW_LIVE_GATEWAY_MODELS=all` является псевдонимом для `modern`
  * Или задайте `OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"` (либо список через запятую), чтобы сузить выбор
  * Для проверок современных/всех и малых моделей через Gateway ограничение по умолчанию равно длине соответствующего подготовленного списка; задайте `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0` для исчерпывающей выбранной проверки или положительное число для меньшего ограничения.
* Как выбрать поставщиков (избегая «всего через OpenRouter»):
  * `OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"` (список разрешений через запятую)
* Проверки инструментов и изображений всегда включены в этом живом тесте:
  * Проверка `read` и проверка `exec+read` (нагрузка на инструменты)
  * проверка изображения выполняется, когда модель объявляет поддержку ввода изображений
  * Поток (в общих чертах):
    * Тест создает небольшой PNG с надписью «CAT» и случайным кодом (`test/helpers/live-image-probe.ts`)
    * Отправляет его через `agent` `attachments: [{ mimeType: "image/png", content: "<base64>" }]`
    * Gateway преобразует вложения в `images[]` (`src/gateway/server-methods/agent.ts` + `src/gateway/chat-attachments.ts`)
    * Встроенный агент пересылает модели мультимодальное сообщение пользователя
    * Проверка: ответ содержит `cat` и код (допуск OCR: разрешены незначительные ошибки)

> [!TIP]
>
> Чтобы узнать, что можно протестировать на вашем компьютере (и точные идентификаторы `provider/model`), выполните:
>
> ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
> openclaw models list
> openclaw models list --json
> ```

## Живые тесты: быстрая проверка серверной части CLI (Claude, Gemini или другие локальные CLI)

* Тест: `src/gateway/gateway-cli-backend.live.test.ts`
* Цель: проверить конвейер Gateway и агента с помощью локальной серверной части CLI, не затрагивая конфигурацию по умолчанию.
* Значения быстрой проверки по умолчанию для конкретных серверных частей находятся в определении `cli-backend.ts` соответствующего плагина-владельца.
* Включение:
  * `pnpm test:live` (или `OPENCLAW_LIVE_TEST=1` при непосредственном вызове Vitest)
  * `OPENCLAW_LIVE_CLI_BACKEND=1`
* Значения по умолчанию:
  * Поставщик/модель по умолчанию: `claude-cli/claude-sonnet-4-6`
  * Поведение команд, аргументов и изображений определяется метаданными соответствующего плагина серверной части CLI.
* Переопределения (необязательно):
  * `OPENCLAW_LIVE_CLI_BACKEND_MODEL="claude-cli/claude-sonnet-4-6"`
  * `OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/claude"`
  * `OPENCLAW_LIVE_CLI_BACKEND_ARGS='["-p","--output-format","json"]'`
  * `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1` для отправки реального вложения-изображения (пути внедряются в запрос). По умолчанию отключено в рецептах Docker.
  * `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"` для передачи путей к файлам изображений как аргументов CLI вместо внедрения в запрос.
  * `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"` (или `"list"`) для управления передачей аргументов изображений, когда задан `IMAGE_ARG`.
  * `OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1` для отправки второго запроса и проверки потока возобновления.
  * `OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1` для включения проверки непрерывности Claude Sonnet -> Opus в рамках одного сеанса, когда выбранная модель поддерживает целевой объект переключения. По умолчанию отключено, в том числе в рецептах Docker.
  * `OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1` для включения проверки замкнутого цикла MCP/инструментов. По умолчанию отключено в рецептах Docker.

Пример:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
  OPENCLAW_LIVE_CLI_BACKEND=1 \
  OPENCLAW_LIVE_CLI_BACKEND_MODEL="claude-cli/claude-sonnet-4-6" \
  pnpm test:live src/gateway/gateway-cli-backend.live.test.ts
```

Быстрая и недорогая проверка конфигурации Gemini MCP:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
OPENCLAW_LIVE_TEST=1 \
  pnpm test:live src/agents/cli-runner/bundle-mcp.gemini.live.test.ts
```

Она не просит Gemini сгенерировать ответ. Она записывает те же системные
настройки, которые OpenClaw передает Gemini, а затем запускает `gemini --debug mcp list`, чтобы подтвердить,
что сохраненный сервер `transport: "streamable-http"` нормализуется в HTTP-формат MCP
Gemini и может подключиться к локальному потоковому HTTP-серверу MCP.

Рецепт Docker:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm test:docker:live-cli-backend
```

Рецепты Docker для отдельных поставщиков:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm test:docker:live-cli-backend:claude
pnpm test:docker:live-cli-backend:claude-subscription
pnpm test:docker:live-cli-backend:gemini
```

Примечания:

* Средство запуска Docker находится в `scripts/test-live-cli-backend-docker.sh`.
* Оно выполняет живую быструю проверку серверной части CLI внутри Docker-образа репозитория от имени непривилегированного пользователя `node`.
* Оно получает метаданные быстрой проверки CLI из соответствующего плагина-владельца, а затем устанавливает подходящий пакет CLI для Linux (`@anthropic-ai/claude-code` или `@google/gemini-cli`) в кэшируемый доступный для записи префикс по адресу `OPENCLAW_DOCKER_CLI_TOOLS_DIR` (по умолчанию: `~/.cache/openclaw/docker-cli-tools`).
* `codex-cli` больше не является встроенной серверной частью CLI; вместо нее используйте `openai/*` со средой выполнения сервера приложений Codex (см. [Живые тесты: быстрая проверка стенда сервера приложений Codex](#live-codex-app-server-harness-smoke)).
* `pnpm test:docker:live-cli-backend:claude-subscription` требует переносимой авторизации OAuth по подписке Claude Code через `~/.claude/.credentials.json` с `claudeAiOauth.subscriptionType` либо через `CLAUDE_CODE_OAUTH_TOKEN` из `claude setup-token`. Сначала выполняется прямая проверка `claude -p` в Docker, затем два запроса к серверной части CLI через Gateway без сохранения переменных окружения с ключом API Anthropic. В этой ветке подписки проверки MCP/инструментов и изображений Claude по умолчанию отключены, поскольку они расходуют лимиты использования авторизованной подписки, а Anthropic может изменить порядок тарификации и ограничения частоты запросов Claude Agent SDK / `claude -p` без выпуска новой версии OpenClaw.
* Claude и Gemini поддерживают одинаковый набор проверок (текстовый запрос, классификация изображений, вызов инструмента MCP `cron`, непрерывность при переключении модели) через указанные выше флаги, но ни одна из этих проверок не выполняется по умолчанию — включайте каждую необходимую проверку соответствующим флагом.

## Живые тесты: доступность прокси APNs по HTTP/2

* Тест: `src/infra/push-apns-http2.live.test.ts`
* Цель: создать туннель через локальный HTTP-прокси CONNECT к конечной точке песочницы APNs Apple, отправить проверочный HTTP/2-запрос APNs и убедиться, что реальный ответ Apple `403 InvalidProviderToken` возвращается через прокси.
* Включение:
  * `OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_APNS_REACHABILITY=1 pnpm test:live src/infra/push-apns-http2.live.test.ts`
* Необязательный тайм-аут:
  * `OPENCLAW_LIVE_APNS_TIMEOUT_MS=30000`

## Интерактивная проверка: быстрый тест привязки ACP (`/acp spawn ... --bind here`)

* Тест: `src/gateway/gateway-acp-bind.live.test.ts`
* Цель: проверить реальный поток привязки беседы ACP с действующим агентом ACP:
  * отправить `/acp spawn <agent> --bind here`
  * привязать синтетическую беседу канала сообщений на месте
  * отправить обычное последующее сообщение в той же беседе
  * убедиться, что последующее сообщение попало в протокол привязанного сеанса ACP
* Включение:
  * `pnpm test:live src/gateway/gateway-acp-bind.live.test.ts`
  * `OPENCLAW_LIVE_ACP_BIND=1`
* Значения по умолчанию:
  * Агенты ACP в Docker: `claude,codex,gemini`
  * Агент ACP для прямого `pnpm test:live ...`: `claude`
  * Синтетический канал: контекст беседы в стиле личных сообщений Slack
  * Бэкенд ACP: `acpx`
* Переопределения:
  * `OPENCLAW_LIVE_ACP_BIND_AGENT=claude`
  * `OPENCLAW_LIVE_ACP_BIND_AGENT=codex`
  * `OPENCLAW_LIVE_ACP_BIND_AGENT=droid`
  * `OPENCLAW_LIVE_ACP_BIND_AGENT=gemini`
  * `OPENCLAW_LIVE_ACP_BIND_AGENT=opencode`
  * `OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,codex,gemini`
  * `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND='npx -y @agentclientprotocol/claude-agent-acp@<version>'`
  * `OPENCLAW_LIVE_ACP_BIND_CODEX_MODEL=gpt-5.6-luna`
  * `OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL=opencode/kimi-k2.6`
  * `OPENCLAW_LIVE_ACP_BIND_IMAGE_PROBE=1` (или `on`/`true`/`yes`), чтобы принудительно включить проверку изображения; любое другое значение принудительно отключает её. По умолчанию выполняется для каждого агента, кроме `opencode`.
  * `OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1`
  * `OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.6-luna`
* Примечания:
  * Этот сценарий использует поверхность Gateway `chat.send` с доступными только администраторам синтетическими полями исходного маршрута, чтобы тесты могли присоединять контекст канала сообщений, не имитируя внешнюю доставку.
  * Если `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND` не задана, тест использует встроенный реестр агентов плагина `acpx` для выбранного агента тестового стенда ACP.
  * Создание Cron MCP для привязанного сеанса по умолчанию выполняется без гарантии успеха, поскольку внешние тестовые стенды ACP могут отменять вызовы MCP после успешной проверки привязки и изображения; задайте `OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1`, чтобы сделать эту проверку Cron после привязки строгой.

Пример:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
OPENCLAW_LIVE_ACP_BIND=1 \
  OPENCLAW_LIVE_ACP_BIND_AGENT=claude \
  pnpm test:live src/gateway/gateway-acp-bind.live.test.ts
```

Команда для Docker:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm test:docker:live-acp-bind
```

Команды Docker для отдельных агентов:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm test:docker:live-acp-bind:claude
pnpm test:docker:live-acp-bind:codex
pnpm test:docker:live-acp-bind:droid
pnpm test:docker:live-acp-bind:gemini
pnpm test:docker:live-acp-bind:opencode
```

Примечания по Docker:

* Средство запуска Docker находится в `scripts/test-live-acp-bind-docker.sh`.
* По умолчанию оно последовательно запускает быстрый тест привязки ACP для совокупности действующих агентов CLI: `claude`, `codex`, затем `gemini`.
* Используйте `OPENCLAW_LIVE_ACP_BIND_AGENTS=claude`, `OPENCLAW_LIVE_ACP_BIND_AGENTS=codex`, `OPENCLAW_LIVE_ACP_BIND_AGENTS=droid`, `OPENCLAW_LIVE_ACP_BIND_AGENTS=gemini` или `OPENCLAW_LIVE_ACP_BIND_AGENTS=opencode`, чтобы сузить матрицу.
* Оно помещает соответствующие аутентификационные данные CLI в контейнер, а затем при отсутствии устанавливает запрошенный действующий CLI (`@anthropic-ai/claude-code`, `@openai/codex`, Factory Droid через `https://app.factory.ai/cli`, `@google/gemini-cli` или `opencode-ai`). Сам бэкенд ACP — это встроенный пакет `acpx/runtime` из официального плагина `acpx`.
* Вариант Docker для Droid помещает `~/.factory` для настроек, передаёт `FACTORY_API_KEY` и требует этот ключ API, поскольку локальную аутентификацию Factory через OAuth или связку ключей невозможно перенести в контейнер. Он использует встроенную запись реестра ACPX `droid exec --output-format acp`.
* Вариант Docker для OpenCode — строгий регрессионный сценарий с одним агентом. Он записывает временную модель по умолчанию `OPENCODE_CONFIG_CONTENT` из `OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL` (по умолчанию `opencode/kimi-k2.6`).
* Прямые вызовы CLI `acpx` предназначены только для ручного использования или обходного пути при сравнении поведения вне Gateway. Быстрый тест привязки ACP в Docker проверяет встроенный бэкенд среды выполнения `acpx` OpenClaw.

## Интерактивная проверка: быстрый тест стенда сервера приложений Codex

* Цель: проверить принадлежащий плагину тестовый стенд Codex через обычный метод Gateway
  `agent`:
  * загрузить встроенный плагин `codex`
  * выбрать модель OpenAI через `/model <ref> --runtime codex`
  * отправить первый ход агента через Gateway с запрошенным уровнем рассуждений
  * отправить второй ход в тот же сеанс OpenClaw и убедиться, что поток сервера приложений
    можно возобновить
  * запустить `/codex status` и `/codex models` через тот же путь команд
    Gateway
  * при необходимости выполнить две проверенные Guardian команды оболочки с повышенными правами: одну безопасную
    команду, которая должна быть одобрена, и одну попытку отправки фиктивного секрета, которая должна быть
    отклонена, чтобы агент запросил подтверждение
* Тест: `src/gateway/gateway-codex-harness.live.test.ts`
* Включение: `OPENCLAW_LIVE_CODEX_HARNESS=1`
* Базовая модель тестового стенда: `openai/gpt-5.6-luna`
* Выбор по умолчанию для нового ключа API OpenAI: `openai/gpt-5.6`
* Рассуждения по умолчанию: `low`
* Переопределение модели: `OPENCLAW_LIVE_CODEX_HARNESS_MODEL=openai/<model>`
* Переопределение рассуждений: `OPENCLAW_LIVE_CODEX_HARNESS_THINKING=<level>`
* Переопределение матрицы: `OPENCLAW_LIVE_CODEX_HARNESS_TARGETS=<model>=<thinking>,...`
* Режим аутентификации: `OPENCLAW_LIVE_CODEX_HARNESS_AUTH=codex-auth` (по умолчанию) использует
  скопированные данные входа Codex; `api-key` использует `OPENAI_API_KEY` через сервер приложений Codex.
* Необязательная проверка изображения: `OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1`
* Необязательная проверка MCP/инструмента: `OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1`
* Необязательная проверка Guardian: `OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1`
* Быстрый тест принудительно задаёт поставщика и модель `agentRuntime.id: "codex"`, чтобы неисправный тестовый стенд Codex
  не мог пройти проверку за счёт незаметного отката к OpenClaw.
* Аутентификация: аутентификация сервера приложений Codex из локального входа в подписку Codex или
  `OPENAI_API_KEY`, когда `OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key`. Для запусков с подпиской Docker может
  скопировать `~/.codex/auth.json` и `~/.codex/config.toml`.

Команда для локального запуска:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
OPENCLAW_LIVE_CODEX_HARNESS=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_MODEL=openai/gpt-5.6-luna \
  pnpm test:live -- src/gateway/gateway-codex-harness.live.test.ts
```

Команда для Docker:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm test:docker:live-codex-harness
```

Матрица GPT-5.6 для нативного Codex:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key \
  OPENCLAW_LIVE_CODEX_HARNESS_TARGETS='openai/gpt-5.6-sol=ultra,openai/gpt-5.6-terra=ultra,openai/gpt-5.6-luna=max' \
  pnpm test:docker:live-codex-harness
```

Значение по умолчанию для нового ключа API OpenAI:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
OPENCLAW_LIVE_GATEWAY_OPENAI_API_DEFAULT=1 \
  OPENCLAW_LIVE_GATEWAY_PROVIDERS=openai \
  OPENCLAW_LIVE_GATEWAY_THINKING=off \
  pnpm test:live -- src/gateway/gateway-models.profiles.live.test.ts
```

При этой проверке `OPENCLAW_LIVE_GATEWAY_MODELS` остаётся незаданной, модель определяется через
новый механизм выбора вывода при первоначальной настройке, проверяется `openai/gpt-5.6`, после чего
выполняется реальный ход через Gateway с определённой моделью.

Матрица GPT-5.6 для встроенного OpenClaw:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
OPENCLAW_LIVE_GATEWAY_THINKING=ultra \
  OPENCLAW_LIVE_GATEWAY_PROVIDERS=openai \
  OPENCLAW_LIVE_GATEWAY_MODELS='openai/gpt-5.6-sol,openai/gpt-5.6-terra,openai/gpt-5.6-luna' \
  pnpm test:live -- src/gateway/gateway-models.profiles.live.test.ts
```

Примечания по Docker:

* Средство запуска Docker находится в `scripts/test-live-codex-harness-docker.sh`.
* Оно передаёт `OPENAI_API_KEY`, копирует файлы аутентификации Codex CLI при их наличии, устанавливает
  `@openai/codex` в доступный для записи подключённый префикс
  npm, помещает дерево исходного кода, а затем запускает только интерактивный тест стенда Codex.
* Docker по умолчанию включает проверки изображения, MCP/инструмента и Guardian. Задайте
  `OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0`,
  `OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0` или
  `OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0`, если требуется более узкий
  отладочный запуск.
* Docker использует ту же явно заданную конфигурацию среды выполнения Codex, поэтому устаревшие псевдонимы или откат к OpenClaw
  не могут скрыть регрессию тестового стенда Codex.
* Целевые элементы матрицы выполняются последовательно в одном контейнере. Скрипт Docker масштабирует
  стандартный 35-минутный тайм-аут по числу целевых элементов; любой внешний тайм-аут оболочки или CI должен
  допускать такое же общее время. Канонический CI размещает каждый целевой элемент GPT-5.6 в отдельном сегменте.

### Рекомендуемые команды для интерактивной проверки

Узкие, явно заданные списки разрешённых элементов работают быстрее всего и наименее подвержены нестабильности:

* Одна модель, напрямую (без Gateway):
  * `OPENCLAW_LIVE_MODELS="openai/gpt-5.6-luna" pnpm test:live src/agents/models.profiles.live.test.ts`

* Прямой профиль малой модели:
  * `OPENCLAW_LIVE_MODELS=small pnpm test:live src/agents/models.profiles.live.test.ts`

* Профиль малой модели через Gateway:
  * `OPENCLAW_LIVE_GATEWAY_MODELS=small pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`

* Быстрый тест API Ollama Cloud:
  * `OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 OPENCLAW_LIVE_OLLAMA_BASE_URL=https://ollama.com OPENCLAW_LIVE_OLLAMA_MODEL=glm-5.1:cloud OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=0 pnpm test:live -- extensions/ollama/ollama.live.test.ts`

* Одна модель, быстрый тест Gateway:
  * `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.6-luna" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`

* Вызов инструментов у нескольких поставщиков:
  * `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.6-luna,anthropic/claude-opus-4-6,google/gemini-3.5-flash,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M3" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`

* Прямой быстрый тест GLM-5.2 в Z.AI Coding Plan:
  * `ZAI_CODING_LIVE_TEST=1 pnpm test:live src/agents/zai.live.test.ts`

* Проверки Google (ключ API Gemini и Antigravity):
  * Gemini (ключ API): `OPENCLAW_LIVE_GATEWAY_MODELS="google/gemini-3.5-flash" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`
  * Antigravity (OAuth): `OPENCLAW_LIVE_GATEWAY_MODELS="google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-pro-high" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`

* Быстрый тест адаптивных рассуждений Google (`qa manual` из закрытого QA CLI — требуются `OPENCLAW_ENABLE_PRIVATE_QA_CLI=1` и рабочая копия исходного кода; см. [обзор QA](https://docs2.openclaw.ai/ru/concepts/qa-e2e-automation.md)):
  * Динамическое значение по умолчанию Gemini 3: `OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-3.1-pro-preview --alt-model google/gemini-3.1-pro-preview --message '/think adaptive Reply exactly: GEMINI_ADAPTIVE_OK' --timeout-ms 180000`
  * Динамический бюджет Gemini 2.5: `OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-2.5-flash --alt-model google/gemini-2.5-flash --message '/think adaptive Reply exactly: GEMINI25_ADAPTIVE_OK' --timeout-ms 180000`

Примечания:

* `google/...` использует API Gemini (ключ API).
* `google-antigravity/...` использует мост OAuth Antigravity (конечную точку агента в стиле Cloud Code Assist).
* `google-gemini-cli/...` использует локальный Gemini CLI на вашем компьютере (отдельная аутентификация и особенности инструментов).
* API Gemini и Gemini CLI:
  * API: OpenClaw вызывает размещённый у Google API Gemini по HTTP (ключ API или аутентификация профиля); именно это большинство пользователей подразумевает под «Gemini».
  * CLI: OpenClaw запускает локальный двоичный файл `gemini` через оболочку; у него собственная аутентификация, и его поведение может отличаться (потоковая передача, поддержка инструментов и расхождение версий).

## Интерактивная проверка: матрица моделей (что охватывается)

Интерактивная проверка включается по запросу, поэтому фиксированного «списка моделей CI» нет. `OPENCLAW_LIVE_MODELS=modern` / `OPENCLAW_LIVE_GATEWAY_MODELS=modern` (и их псевдоним `all`) запускают отобранный приоритетный список из `HIGH_SIGNAL_LIVE_MODEL_PRIORITY` в `src/agents/live-model-filter.ts` в следующем порядке приоритета:

| Провайдер/модель | Примечания |
| - | - |
| `anthropic/claude-opus-4-8` | |
| `anthropic/claude-sonnet-5` | |
| `anthropic/claude-sonnet-4-6` | |
| `anthropic/claude-opus-4-7` | |
| `google/gemini-3.1-pro-preview` | Gemini API |
| `google/gemini-3.5-flash` | Gemini API |
| `cohere/command-a-plus-05-2026` | |
| `moonshot/kimi-k2.7-code` | |
| `anthropic/claude-opus-4-6` | |
| `deepseek/deepseek-v4-flash` | |
| `deepseek/deepseek-v4-pro` | |
| `minimax/MiniMax-M3` | |
| `openai/gpt-5.5` | |
| `openrouter/openai/gpt-5.2-chat` | |
| `openrouter/minimax/minimax-m2.7` | |
| `opencode-go/glm-5` | |
| `openrouter/ai21/jamba-large-1.7` | |
| `xai/grok-4.5` | |
| `xai/grok-4.20-0309-reasoning` | |
| `zai/glm-5.1` | |
| `fireworks/accounts/fireworks/models/glm-5p1` | |
| `minimax-portal/minimax-m3` | |

Подобранный список **малых моделей** (`OPENCLAW_LIVE_MODELS=small` / `OPENCLAW_LIVE_GATEWAY_MODELS=small`) из `SMALL_LIVE_MODEL_PRIORITY`:

| Провайдер/модель |
| - |
| `lmstudio/qwen/qwen3.5-9b` |
| `vllm/qwen/qwen3-8b` |
| `sglang/qwen/qwen3-8b` |
| `ollama/gemma3:4b` |
| `openrouter/qwen/qwen3.5-9b` |
| `openrouter/z-ai/glm-5.1` |
| `openrouter/z-ai/glm-5` |
| `zai/glm-5.1` |

Примечания к современному списку:

* Провайдеры `codex` и `codex-cli` исключены из стандартного прогона современных моделей (они охватывают поведение бэкенда CLI/ACP, которое тестируется отдельно выше). Сам `openai/gpt-5.5` по умолчанию маршрутизируется через тестовую обвязку сервера приложений Codex; см. [Live: быстрый тест тестовой обвязки сервера приложений Codex](#live-codex-app-server-harness-smoke).
* `fireworks`, `google`, `openrouter` и `xai` в прогоне современных моделей запускают только явно подобранные идентификаторы моделей (без автоматического расширения до «всех моделей этого провайдера»).
* Включите в `OPENCLAW_LIVE_GATEWAY_MODELS` хотя бы одну модель с поддержкой изображений (варианты Claude/Gemini/семейства OpenAI с компьютерным зрением и т. п.), чтобы выполнить проверку изображений.

Запустите быстрый тест Gateway с инструментами и изображением на вручную подобранном наборе разных провайдеров:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.6-luna,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3.5-flash,google-antigravity/claude-opus-4-6-thinking,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M3" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
```

Необязательное дополнительное покрытие за пределами подобранных списков (желательно выбрать включённую у вас модель с поддержкой инструментов):

* Mistral: `mistral/...`
* Cerebras: `cerebras/...` (если у вас есть доступ)
* LM Studio: `lmstudio/...` (локально; вызов инструментов зависит от режима API)

### Агрегаторы / альтернативные шлюзы

Если у вас настроены ключи, также можно протестировать через:

* OpenRouter: `openrouter/...` (сотни моделей; используйте `openclaw models scan`, чтобы найти варианты с поддержкой инструментов и изображений)
* OpenCode: `opencode/...` для Zen и `opencode-go/...` для Go (аутентификация через `OPENCODE_API_KEY` / `OPENCODE_ZEN_API_KEY`)

Другие провайдеры, которые можно включить в матрицу live-тестов (при наличии учётных данных/конфигурации):

* Встроенные: `anthropic`, `cerebras`, `github-copilot`, `google`, `google-antigravity`, `google-gemini-cli`, `google-vertex`, `groq`, `mistral`, `openai`, `openrouter`, `opencode`, `opencode-go`, `xai`, `zai`
* Через `models.providers` (пользовательские конечные точки): `minimax` (облако/API), а также любой прокси, совместимый с OpenAI/Anthropic (LM Studio, vLLM, LiteLLM и т. п.)

> [!TIP]
>
> Не указывайте жёстко «все модели» в документации. Авторитетным является список, который `discoverModels(...)` возвращает на вашем компьютере с учётом доступных ключей.

## Учётные данные (никогда не добавляйте в коммиты)

Live-тесты обнаруживают учётные данные так же, как CLI. Практические следствия:

* Если CLI работает, live-тесты должны найти те же ключи.

* Если live-тест сообщает «нет учётных данных», выполняйте отладку так же, как при отладке `openclaw models list` / выбора модели.

* Профили аутентификации для отдельных агентов: `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (именно это означает «ключи профилей» в live-тестах)

* Конфигурация: `~/.openclaw/openclaw.json` (или `OPENCLAW_CONFIG_PATH`)

* Каталог устаревшего OAuth: `~/.openclaw/credentials/` (при наличии копируется в подготовленный домашний каталог live-тестов, но не является основным хранилищем ключей профилей)

* Локальные live-запуски копируют активную конфигурацию (исключая переопределения `agents.*.workspace` / `agentDir`) и файл `auth-profiles.json` каждого агента, но не остальные данные из каталога агента, поэтому данные `workspace/` и `sandboxes/` никогда не попадают в подготовленный домашний каталог; кроме того, во временный домашний каталог для тестирования копируются устаревший каталог `credentials/` и поддерживаемые файлы/каталоги аутентификации внешних CLI (`.claude.json`, `.claude/.credentials.json`, `.claude/settings*.json`, `.claude/backups`, `.codex/auth.json`, `.codex/config.toml`, `.gemini`, `.minimax`).

Если вы хотите использовать ключи из переменных окружения, экспортируйте их перед локальными тестами или используйте
приведённые ниже средства запуска Docker с явно заданным `OPENCLAW_PROFILE_FILE`.

## Live-тест Deepgram (транскрибирование аудио)

* Тест: `extensions/deepgram/audio.live.test.ts`
* Включение: `DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts`

## Live-тест плана программирования BytePlus

* Тест: `extensions/byteplus/live.test.ts`
* Включение: `BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts`
* Необязательное переопределение модели: `BYTEPLUS_CODING_MODEL=ark-code-latest`

## Live-тест медиафайлов рабочего процесса ComfyUI

* Тест: `extensions/comfy/comfy.live.test.ts`
* Включение: `OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts`
* Область:
  * Проверяет встроенные пути comfy для изображений, видео и `music_generate`
  * Пропускает каждую возможность, если не настроен `plugins.entries.comfy.config.<capability>`
  * Полезен после изменения отправки рабочих процессов comfy, опроса состояния, загрузок или регистрации плагинов

## Live-тест генерации изображений

* Тест: `test/image-generation.runtime.live.test.ts`
* Команда: `pnpm test:live test/image-generation.runtime.live.test.ts`
* Тестовая обвязка: `pnpm test:live:media image`
* Область:
  * Перечисляет все зарегистрированные плагины провайдеров генерации изображений
  * Перед проверкой использует уже экспортированные переменные окружения провайдера
  * По умолчанию предпочитает ключи API из live-конфигурации/окружения сохранённым профилям аутентификации, поэтому устаревшие тестовые ключи в `auth-profiles.json` не скрывают реальные учётные данные оболочки
  * Пропускает провайдеров без пригодной аутентификации, профиля или модели
  * Запускает каждого настроенного провайдера через общую среду выполнения генерации изображений:
    * `<provider>:generate`
    * `<provider>:edit`, если провайдер заявляет поддержку редактирования
* Охватываемые в настоящее время встроенные провайдеры:
  * `deepinfra`
  * `fal`
  * `google`
  * `minimax`
  * `openai`
  * `openrouter`
  * `vydra`
  * `xai`
* Необязательное сужение области:
  * `OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="openai,google,openrouter,xai"`
  * `OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="deepinfra"`
  * `OPENCLAW_LIVE_IMAGE_GENERATION_MODELS="openai/gpt-image-2,google/gemini-3.1-flash-image-preview,openrouter/google/gemini-3.1-flash-image-preview,xai/grok-imagine-image"`
  * `OPENCLAW_LIVE_IMAGE_GENERATION_CASES="google:flash-generate,google:pro-edit,openrouter:generate,xai:default-generate,xai:default-edit"`
* Необязательное поведение аутентификации:
  * `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, чтобы принудительно использовать аутентификацию из хранилища профилей и игнорировать переопределения, заданные только через окружение

Для поставляемого пути CLI после успешного прохождения live-теста провайдера/среды выполнения
добавьте быстрый тест `infer`:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_INFER_CLI_TEST=1 pnpm test:live -- test/image-generation.infer-cli.live.test.ts
openclaw infer image providers --json
openclaw infer image generate \
  --model google/gemini-3.1-flash-image-preview \
  --prompt "Минималистичное плоское тестовое изображение: один синий квадрат на белом фоне, без текста." \
  --output ./openclaw-infer-image-smoke.png \
  --json
```

Это охватывает разбор аргументов CLI, разрешение конфигурации/агента по умолчанию, активацию встроенного
плагина, общую среду выполнения генерации изображений и live-запрос к провайдеру.
Ожидается, что зависимости плагина присутствуют до загрузки среды выполнения.

## Live-тест генерации музыки

* Тест: `extensions/music-generation-providers.live.test.ts`
* Включение: `OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts`
* Тестовая обвязка: `pnpm test:live:media music`
* Область:
  * Проверяет общий путь встроенного провайдера генерации музыки
  * В настоящее время охватывает `fal`, `google`, `minimax` и `openrouter`
  * Перед проверкой использует уже экспортированные переменные окружения провайдера
  * По умолчанию предпочитает ключи API из live-конфигурации/окружения сохранённым профилям аутентификации, поэтому устаревшие тестовые ключи в `auth-profiles.json` не скрывают реальные учётные данные оболочки
  * Пропускает провайдеров без пригодной аутентификации, профиля или модели
  * Запускает оба заявленных режима среды выполнения, когда они доступны:
    * `generate` с входными данными только в виде запроса
    * `edit`, если провайдер заявляет `capabilities.edit.enabled`
  * Для `comfy` предусмотрен отдельный файл live-теста, он не входит в этот общий прогон
* Необязательное сужение области:
  * `OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"`
  * `OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.6"`
* Необязательное поведение аутентификации:
  * `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, чтобы принудительно использовать аутентификацию из хранилища профилей и игнорировать переопределения, заданные только через окружение

## Live-тест генерации видео

* Тест: `extensions/video-generation-providers.live.test.ts`
* Включение: `OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts`
* Среда тестирования: `pnpm test:live:media video`
* Область:
  * Проверяет общий путь встроенного провайдера генерации видео для `alibaba`, `byteplus`, `deepinfra`, `fal`, `google`, `minimax`, `openai`, `openrouter`, `pixverse`, `qwen`, `runway`, `together`, `vydra`, `xai`
  * По умолчанию использует безопасный для выпуска путь дымового тестирования: один запрос преобразования текста в видео на провайдера, секундный промпт с лобстером и ограничение количества операций для каждого провайдера из `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS` (по умолчанию `180000`)
  * По умолчанию пропускает FAL, поскольку задержка очереди на стороне провайдера может занять большую часть времени выпуска; передайте `OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"` (или очистите список пропуска), чтобы запустить его явно
  * Перед проверкой использует уже экспортированные переменные окружения провайдера
  * По умолчанию отдает приоритет действующим ключам API из переменных окружения перед сохраненными профилями аутентификации, чтобы устаревшие тестовые ключи в `auth-profiles.json` не скрывали реальные учетные данные оболочки
  * Пропускает провайдеров без пригодных данных аутентификации, профиля или модели
  * По умолчанию запускает только `generate`
  * Задайте `OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1`, чтобы также запускать заявленные режимы преобразования, когда они доступны:
    * `imageToVideo`, когда провайдер заявляет `capabilities.imageToVideo.enabled`, а выбранные провайдер и модель принимают в общем прогоне локальное изображение из буфера
    * `videoToVideo`, когда провайдер заявляет `capabilities.videoToVideo.enabled`, а выбранные провайдер и модель принимают в общем прогоне локальное видео из буфера
  * Текущий заявленный, но пропускаемый провайдер `imageToVideo` в общем прогоне:
    * `vydra` (локальный ввод изображения из буфера не поддерживается в этом сценарии)
  * Покрытие, специфичное для провайдера Vydra:
    * `OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts`
    * Этот файл запускает `veo3` для преобразования текста в видео, а также сценарий `kling` для преобразования изображения в видео, который по умолчанию использует фикстуру с удаленным URL изображения (`OPENCLAW_LIVE_VYDRA_KLING_IMAGE_URL` для переопределения).
  * Покрытие, специфичное для провайдера xAI:
    * `OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_XAI_VIDEO=1 pnpm test:live -- extensions/xai/xai.live.test.ts -t "classic Grok Imagine"`
    * Классический сценарий сначала создает квадратный локальный первый кадр в формате PNG, не задает геометрию, запрашивает секундный клип преобразования изображения в видео, опрашивает состояние до завершения и проверяет загруженный буфер.
    * `OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_XAI_VIDEO=1 pnpm test:live -- extensions/xai/xai.live.test.ts -t "Grok Imagine Video 1.5"`
    * Сценарий 1.5 создает локальный первый кадр в формате PNG, запрашивает секундный клип преобразования изображения в видео с разрешением 1080P, опрашивает состояние до завершения и проверяет загруженный буфер.
  * Текущее тестовое покрытие `videoToVideo` с реальным сервисом:
    * `runway` только когда выбранная модель разрешается в `gen4_aleph`
  * Текущие заявленные, но пропускаемые провайдеры `videoToVideo` в общем прогоне:
    * `alibaba`, `google`, `openai`, `qwen`, `xai`, поскольку этим путям сейчас требуются удаленные URL-адреса ссылок `http(s)`, а не локальный ввод из буфера
* Необязательное сужение:
  * `OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="deepinfra,google,openai,runway"`
  * `OPENCLAW_LIVE_VIDEO_GENERATION_MODELS="google/veo-3.1-fast-generate-preview,openai/sora-2,runway/gen4_aleph"`
  * `OPENCLAW_LIVE_VIDEO_GENERATION_SKIP_PROVIDERS=""`, чтобы включить в прогон по умолчанию всех провайдеров, включая FAL
  * `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000`, чтобы уменьшить ограничение количества операций каждого провайдера для интенсивного дымового тестирования
* Необязательное поведение аутентификации:
  * `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, чтобы принудительно использовать аутентификацию из хранилища профилей и игнорировать переопределения, заданные только через переменные окружения

## Среда тестирования с реальными медиасервисами

* Команда: `pnpm test:live:media`
* Точка входа: `test/e2e/qa-lab/media/hosted-media-provider-live.ts`, которая запускает `pnpm test:live -- <suite-test-file>` для каждого выбранного набора, чтобы поведение Heartbeat и тихого режима оставалось согласованным с другими запусками `pnpm test:live`.
* Назначение:
  * Запускает общие наборы тестов изображений, музыки и видео с реальными сервисами через единую нативную для репозитория точку входа
  * Автоматически загружает отсутствующие переменные окружения провайдера из `~/.profile`
  * По умолчанию автоматически ограничивает каждый набор провайдерами, для которых сейчас доступны пригодные данные аутентификации
* Флаги:
  * `--providers <csv>` — глобальный фильтр провайдеров; `--image-providers` / `--music-providers` / `--video-providers` ограничивают фильтр одним набором
  * `--all-providers` отключает автоматическую фильтрацию по данным аутентификации
  * `--allow-empty` завершает работу с кодом `0`, если после фильтрации не остается доступных для запуска провайдеров
  * `--quiet` / `--no-quiet` передаются в `test:live`
* Примеры:
  * `pnpm test:live:media`
  * `pnpm test:live:media image video --providers openai,google,minimax`
  * `pnpm test:live:media video --video-providers openai,runway --all-providers`
  * `pnpm test:live:media music --quiet`

## Связанные материалы

* [Тестирование](https://docs2.openclaw.ai/ru/help/testing.md) — модульные, интеграционные, QA- и Docker-наборы тестов
