chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-02 01:47:18 +00:00
parent c0f2654569
commit 95d12c9c21
3 changed files with 524 additions and 522 deletions

View File

@ -1,62 +1,62 @@
---
read_when:
- Вам потрібен довідник із налаштування моделей для кожного провайдера
- Вам потрібен довідник із налаштування моделей за провайдерами
- Вам потрібні приклади конфігурацій або команди CLI для початкового налаштування постачальників моделей
sidebarTitle: Model providers
summary: Огляд провайдера моделей із прикладами конфігурацій + CLI-сценаріями
summary: Огляд постачальників моделей із прикладами конфігурацій + сценаріями CLI
title: Постачальники моделей
x-i18n:
generated_at: "2026-04-29T16:29:15Z"
generated_at: "2026-05-02T01:45:19Z"
model: gpt-5.5
provider: openai
source_hash: 3902194674d6d4e17a8477c28addb39b8e04c3b498eb6a0305e82c2f1b5d737e
source_hash: 8bec3029270ea475bfeb45d87a84ec01b52d461bceecc3ab4ec9ca1f62ac6cc5
source_path: concepts/model-providers.md
workflow: 16
---
Довідник для **провайдерів LLM/моделей** (не каналів чату, як-от WhatsApp/Telegram). Правила вибору моделей див. у [Моделі](/uk/concepts/models).
Довідник для **постачальників LLM/моделей** (не каналів чату, як-от WhatsApp/Telegram). Правила вибору моделей див. у [Моделі](/uk/concepts/models).
## Швидкі правила
<AccordionGroup>
<Accordion title="Посилання на моделі та помічники CLI">
- Посилання на моделі використовують `provider/model` (приклад: `opencode/claude-opus-4-6`).
- `agents.defaults.models` діє як список дозволених значень, коли його задано.
- `agents.defaults.models` діє як список дозволених значень, якщо його задано.
- Помічники CLI: `openclaw onboard`, `openclaw models list`, `openclaw models set <provider/model>`.
- `models.providers.*.contextWindow` / `contextTokens` / `maxTokens` задають типові значення на рівні провайдера; `models.providers.*.models[].contextWindow` / `contextTokens` / `maxTokens` перевизначають їх для окремої моделі.
- Правила резервного перемикання, проби після періоду охолодження та збереження перевизначень сеансу: [Резервне перемикання моделей](/uk/concepts/model-failover).
- `models.providers.*.contextWindow` / `contextTokens` / `maxTokens` задають типові значення на рівні постачальника; `models.providers.*.models[].contextWindow` / `contextTokens` / `maxTokens` перевизначають їх для окремої моделі.
- Правила резервного перемикання, перевірки після cooldown і збереження перевизначень сеансу: [Резервне перемикання моделей](/uk/concepts/model-failover).
</Accordion>
<Accordion title="Розділення провайдера й runtime OpenAI">
<Accordion title="Розділення постачальника/середовища виконання OpenAI">
Маршрути сімейства OpenAI залежать від префікса:
- `openai/<model>` використовує прямого провайдера OpenAI з API-ключем у PI.
- `openai/<model>` використовує прямого постачальника OpenAI з API-ключем у PI.
- `openai-codex/<model>` використовує Codex OAuth у PI.
- `openai/<model>` разом із `agents.defaults.agentRuntime.id: "codex"` використовує нативний harness сервера застосунку Codex.
- `openai/<model>` разом із `agents.defaults.agentRuntime.id: "codex"` використовує нативний серверний каркас застосунку Codex.
Див. [OpenAI](/uk/providers/openai) і [harness Codex](/uk/plugins/codex-harness). Якщо розділення провайдера й runtime незрозуміле, спершу прочитайте [Runtime агентів](/uk/concepts/agent-runtimes).
Див. [OpenAI](/uk/providers/openai) і [каркас Codex](/uk/plugins/codex-harness). Якщо розділення постачальника/середовища виконання незрозуміле, спочатку прочитайте [Середовища виконання агентів](/uk/concepts/agent-runtimes).
Автоматичне ввімкнення Plugin дотримується тієї самої межі: `openai-codex/<model>` належить до Plugin OpenAI, тоді як Plugin Codex вмикається через `agentRuntime.id: "codex"` або застарілі посилання `codex/<model>`.
Автоматичне ввімкнення Plugin дотримується тієї самої межі: `openai-codex/<model>` належить до OpenAI plugin, тоді як Codex plugin вмикається через `agentRuntime.id: "codex"` або застарілі посилання `codex/<model>`.
GPT-5.5 доступний через `openai/gpt-5.5` для прямого трафіку з API-ключем, `openai-codex/gpt-5.5` у PI для Codex OAuth, а також через нативний harness сервера застосунку Codex, коли задано `agentRuntime.id: "codex"`.
GPT-5.5 доступна через `openai/gpt-5.5` для прямого трафіку з API-ключем, `openai-codex/gpt-5.5` у PI для Codex OAuth і нативний серверний каркас застосунку Codex, коли задано `agentRuntime.id: "codex"`.
</Accordion>
<Accordion title="CLI runtime">
CLI runtime використовують те саме розділення: виберіть канонічні посилання на моделі, як-от `anthropic/claude-*`, `google/gemini-*` або `openai/gpt-*`, а потім задайте `agents.defaults.agentRuntime.id` як `claude-cli`, `google-gemini-cli` або `codex-cli`, коли потрібен локальний CLI бекенд.
<Accordion title="Середовища виконання CLI">
Середовища виконання CLI використовують те саме розділення: виберіть канонічні посилання на моделі, як-от `anthropic/claude-*`, `google/gemini-*` або `openai/gpt-*`, а потім задайте `agents.defaults.agentRuntime.id` як `claude-cli`, `google-gemini-cli` або `codex-cli`, коли потрібен локальний бекенд CLI.
Застарілі посилання `claude-cli/*`, `google-gemini-cli/*` і `codex-cli/*` мігрують назад до канонічних посилань провайдера, а runtime записується окремо.
Застарілі посилання `claude-cli/*`, `google-gemini-cli/*` і `codex-cli/*` мігрують назад до канонічних посилань постачальників із середовищем виконання, записаним окремо.
</Accordion>
</AccordionGroup>
## Поведінка провайдера, якою володіє Plugin
## Поведінка постачальника, якою володіє Plugin
Більшість специфічної для провайдерів логіки міститься в Plugin провайдерів (`registerProvider(...)`), тоді як OpenClaw зберігає загальний цикл inference. Plugin відповідають за onboarding, каталоги моделей, зіставлення змінних середовища для автентифікації, нормалізацію транспорту/конфігурації, очищення схем інструментів, класифікацію резервного перемикання, оновлення OAuth, звітування про використання, профілі мислення/reasoning тощо.
Більшість специфічної для постачальника логіки живе в provider plugins (`registerProvider(...)`), тоді як OpenClaw зберігає загальний цикл inference. Plugins відповідають за onboarding, каталоги моделей, зіставлення змінних середовища для автентифікації, нормалізацію транспорту/конфігурації, очищення схем інструментів, класифікацію failover, оновлення OAuth, звітування про використання, профілі thinking/reasoning тощо.
Повний список хуків provider-SDK і прикладів вбудованих Plugin наведено в [Plugin провайдерів](/uk/plugins/sdk-provider-plugins). Провайдер, якому потрібен повністю власний виконавець запитів, є окремою, глибшою поверхнею розширення.
Повний список хуків provider-SDK і прикладів bundled-plugin наведено в [Provider plugins](/uk/plugins/sdk-provider-plugins). Постачальник, якому потрібен повністю власний виконавець запитів, є окремою, глибшою поверхнею розширення.
<Note>
Поведінка runner, якою володіє провайдер, живе в явних хуках провайдера, як-от політика replay, нормалізація схем інструментів, обгортання stream і помічники транспорту/запитів. Застарілий статичний пакет `ProviderPlugin.capabilities` призначений лише для сумісності й більше не читається спільною логікою runner.
Поведінка runner, якою володіє постачальник, живе в явних хуках постачальника, таких як політика replay, нормалізація схем інструментів, обгортання stream і помічники транспорту/запитів. Застарілий статичний контейнер `ProviderPlugin.capabilities` призначений лише для сумісності й більше не читається спільною логікою runner.
</Note>
## Ротація API-ключів
@ -68,40 +68,40 @@ x-i18n:
- `OPENCLAW_LIVE_<PROVIDER>_KEY` (одне live-перевизначення, найвищий пріоритет)
- `<PROVIDER>_API_KEYS` (список через кому або крапку з комою)
- `<PROVIDER>_API_KEY` (основний ключ)
- `<PROVIDER>_API_KEY_*` (нумерований список, напр. `<PROVIDER>_API_KEY_1`)
- `<PROVIDER>_API_KEY_*` (нумерований список, наприклад `<PROVIDER>_API_KEY_1`)
Для провайдерів Google `GOOGLE_API_KEY` також включено як fallback. Порядок вибору ключів зберігає пріоритет і усуває дублікати значень.
Для постачальників Google `GOOGLE_API_KEY` також включено як fallback. Порядок вибору ключів зберігає пріоритет і усуває дублікати значень.
</Accordion>
<Accordion title="Коли запускається ротація">
- Запити повторюються з наступним ключем лише для відповідей про обмеження швидкості (наприклад, `429`, `rate_limit`, `quota`, `resource exhausted`, `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` або періодичні повідомлення про ліміт використання).
- Збої, не пов’язані з обмеженням швидкості, одразу завершуються помилкою; ротація ключів не виконується.
- Коли всі кандидатні ключі зазнають невдачі, повертається фінальна помилка з останньої спроби.
- Запити повторюються з наступним ключем лише для відповідей про rate limit (наприклад `429`, `rate_limit`, `quota`, `resource exhausted`, `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` або періодичні повідомлення про ліміт використання).
- Помилки, не пов’язані з rate limit, завершуються негайно; ротація ключів не виконується.
- Коли всі ключі-кандидати зазнають невдачі, фінальна помилка повертається з останньої спроби.
</Accordion>
</AccordionGroup>
## Вбудовані провайдери (каталог pi-ai)
## Вбудовані постачальники (каталог pi-ai)
OpenClaw постачається з каталогом piai. Ці провайдери **не** потребують конфігурації `models.providers`; просто задайте автентифікацію й виберіть модель.
OpenClaw постачається з каталогом piai. Ці постачальники **не** потребують конфігурації `models.providers`; просто задайте автентифікацію й виберіть модель.
### OpenAI
- Постачальник: `openai`
- Провайдер: `openai`
- Автентифікація: `OPENAI_API_KEY`
- Необов’язкова ротація: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`, плюс `OPENCLAW_LIVE_OPENAI_KEY` (одноразове перевизначення)
- Необов’язкова ротація: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`, плюс `OPENCLAW_LIVE_OPENAI_KEY` (одне перевизначення)
- Приклади моделей: `openai/gpt-5.5`, `openai/gpt-5.4-mini`
- Перевірте доступність облікового запису/моделі за допомогою `openclaw models list --provider openai`, якщо конкретне встановлення або API-ключ поводиться інакше.
- Перевірте доступність облікового запису/моделі за допомогою `openclaw models list --provider openai`, якщо конкретне встановлення або ключ API поводиться інакше.
- CLI: `openclaw onboard --auth-choice openai-api-key`
- Типовий транспорт — `auto` (спочатку WebSocket, резервно SSE)
- Перевизначення для кожної моделі через `agents.defaults.models["openai/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
- Прогрівання WebSocket для OpenAI Responses типово ввімкнене через `params.openaiWsWarmup` (`true`/`false`)
- Транспорт за замовчуванням — `auto` (спершу WebSocket, резервний SSE)
- Перевизначайте для окремої моделі через `agents.defaults.models["openai/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
- Прогрівання OpenAI Responses WebSocket за замовчуванням увімкнене через `params.openaiWsWarmup` (`true`/`false`)
- Пріоритетну обробку OpenAI можна ввімкнути через `agents.defaults.models["openai/<model>"].params.serviceTier`
- `/fast` і `params.fastMode` зіставляють прямі запити Responses `openai/*` із `service_tier=priority` на `api.openai.com`
- Використовуйте `params.serviceTier`, коли потрібен явний рівень замість спільного перемикача `/fast`
- Приховані заголовки атрибуції OpenClaw (`originator`, `version`, `User-Agent`) застосовуються лише до нативного трафіку OpenAI на `api.openai.com`, а не до загальних OpenAI-сумісних проксі
- Приховані заголовки атрибуції OpenClaw (`originator`, `version`, `User-Agent`) застосовуються лише до нативного трафіку OpenAI до `api.openai.com`, а не до загальних OpenAI-сумісних проксі
- Нативні маршрути OpenAI також зберігають Responses `store`, підказки prompt-cache і формування payload для сумісності з reasoning OpenAI; проксі-маршрути цього не роблять
- `openai/gpt-5.3-codex-spark` навмисно приховано в OpenClaw, оскільки live-запити OpenAI API його відхиляють, а поточний каталог Codex його не надає
- `openai/gpt-5.3-codex-spark` навмисно пригнічено в OpenClaw, оскільки живі запити OpenAI API його відхиляють, а поточний каталог Codex його не надає
```json5
{
@ -111,16 +111,16 @@ OpenClaw постачається з каталогом piai. Ці прова
### Anthropic
- Постачальник: `anthropic`
- Провайдер: `anthropic`
- Автентифікація: `ANTHROPIC_API_KEY`
- Необов’язкова ротація: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2`, плюс `OPENCLAW_LIVE_ANTHROPIC_KEY` (одноразове перевизначення)
- Необов’язкова ротація: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2`, плюс `OPENCLAW_LIVE_ANTHROPIC_KEY` (одне перевизначення)
- Приклад моделі: `anthropic/claude-opus-4-6`
- CLI: `openclaw onboard --auth-choice apiKey`
- Прямі публічні запити Anthropic підтримують спільний перемикач `/fast` і `params.fastMode`, включно з трафіком з API-ключем та OAuth-автентифікацією, надісланим до `api.anthropic.com`; OpenClaw зіставляє це з Anthropic `service_tier` (`auto` проти `standard_only`)
- Бажана конфігурація Claude CLI зберігає посилання на модель канонічним і вибирає бекенд CLI окремо: `anthropic/claude-opus-4-7` з `agents.defaults.agentRuntime.id: "claude-cli"`. Застарілі посилання `claude-cli/claude-opus-4-7` і далі працюють для сумісності.
- Прямі публічні запити Anthropic підтримують спільний перемикач `/fast` і `params.fastMode`, зокрема трафік із ключем API та автентифікацією OAuth, надісланий до `api.anthropic.com`; OpenClaw зіставляє це з Anthropic `service_tier` (`auto` проти `standard_only`)
- Бажана конфігурація Claude CLI зберігає канонічне посилання на модель і вибирає бекенд CLI окремо: `anthropic/claude-opus-4-7` з `agents.defaults.agentRuntime.id: "claude-cli"`. Застарілі посилання `claude-cli/claude-opus-4-7` досі працюють для сумісності.
<Note>
Працівники Anthropic повідомили нам, що використання Claude CLI у стилі OpenClaw знову дозволене, тому OpenClaw розглядає повторне використання Claude CLI і використання `claude -p` як санкціоновані для цієї інтеграції, доки Anthropic не опублікує нову політику. Токен налаштування Anthropic залишається доступним як підтримуваний шлях токена OpenClaw, але тепер OpenClaw віддає перевагу повторному використанню Claude CLI і `claude -p`, коли вони доступні.
Співробітники Anthropic повідомили нам, що використання Claude CLI у стилі OpenClaw знову дозволене, тому OpenClaw вважає повторне використання Claude CLI та використання `claude -p` санкціонованими для цієї інтеграції, доки Anthropic не опублікує нову політику. Anthropic setup-token залишається доступним як підтримуваний шлях токена OpenClaw, але тепер OpenClaw надає перевагу повторному використанню Claude CLI та `claude -p`, коли вони доступні.
</Note>
```json5
@ -131,22 +131,22 @@ OpenClaw постачається з каталогом piai. Ці прова
### OpenAI Codex OAuth
- Постачальник: `openai-codex`
- Провайдер: `openai-codex`
- Автентифікація: OAuth (ChatGPT)
- Посилання на модель PI: `openai-codex/gpt-5.5`
- Посилання на нативний harness app-server Codex: `openai/gpt-5.5` з `agents.defaults.agentRuntime.id: "codex"`
- Документація нативного harness app-server Codex: [harness Codex](/uk/plugins/codex-harness)
- Посилання на нативну обв’язку сервера застосунку Codex: `openai/gpt-5.5` з `agents.defaults.agentRuntime.id: "codex"`
- Документація нативної обв’язки сервера застосунку Codex: [Обв’язка Codex](/uk/plugins/codex-harness)
- Застарілі посилання на моделі: `codex/gpt-*`
- Межа Plugin: `openai-codex/*` завантажує Plugin OpenAI; нативний Plugin app-server Codex вибирається лише runtime harness Codex або застарілими посиланнями `codex/*`.
- Межа Plugin: `openai-codex/*` завантажує Plugin OpenAI; нативний Plugin сервера застосунку Codex вибирається лише середовищем виконання обв’язки Codex або застарілими посиланнями `codex/*`.
- CLI: `openclaw onboard --auth-choice openai-codex` або `openclaw models auth login --provider openai-codex`
- Типовий транспорт — `auto` (спочатку WebSocket, резервно SSE)
- Перевизначення для кожної моделі PI через `agents.defaults.models["openai-codex/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
- `params.serviceTier` також пересилається в нативних запитах Codex Responses (`chatgpt.com/backend-api`)
- Приховані заголовки атрибуції OpenClaw (`originator`, `version`, `User-Agent`) додаються лише до нативного трафіку Codex на `chatgpt.com/backend-api`, а не до загальних OpenAI-сумісних проксі
- Транспорт за замовчуванням — `auto` (спершу WebSocket, резервний SSE)
- Перевизначайте для окремої моделі PI через `agents.defaults.models["openai-codex/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
- `params.serviceTier` також пересилається у нативних запитах Codex Responses (`chatgpt.com/backend-api`)
- Приховані заголовки атрибуції OpenClaw (`originator`, `version`, `User-Agent`) додаються лише до нативного трафіку Codex до `chatgpt.com/backend-api`, а не до загальних OpenAI-сумісних проксі
- Має ту саму конфігурацію спільного перемикача `/fast` і `params.fastMode`, що й прямі `openai/*`; OpenClaw зіставляє це з `service_tier=priority`
- `openai-codex/gpt-5.5` використовує нативні для каталогу Codex `contextWindow = 400000` і типовий runtime `contextTokens = 272000`; перевизначте обмеження runtime за допомогою `models.providers.openai-codex.models[].contextTokens`
- `openai-codex/gpt-5.5` використовує нативне для каталогу Codex `contextWindow = 400000` і стандартне для середовища виконання `contextTokens = 272000`; перевизначайте обмеження середовища виконання за допомогою `models.providers.openai-codex.models[].contextTokens`
- Примітка щодо політики: OpenAI Codex OAuth явно підтримується для зовнішніх інструментів/робочих процесів на кшталт OpenClaw.
- Використовуйте `openai-codex/gpt-5.5`, коли потрібен маршрут Codex OAuth/підписки; використовуйте `openai/gpt-5.5`, коли ваше налаштування API-ключа і локальний каталог надають публічний маршрут API.
- Використовуйте `openai-codex/gpt-5.5`, коли потрібен маршрут Codex OAuth/підписки; використовуйте `openai/gpt-5.5`, коли ваше налаштування ключа API та локальний каталог надають публічний маршрут API.
```json5
{
@ -166,25 +166,25 @@ OpenClaw постачається з каталогом piai. Ці прова
}
```
### Інші розміщені варіанти в стилі підписки
### Інші розміщені варіанти у стилі підписки
<CardGroup cols={3}>
<Card title="Моделі GLM" href="/uk/providers/glm">
Coding Plan Z.AI або загальні кінцеві точки API.
Z.AI Coding Plan або загальні кінцеві точки API.
</Card>
<Card title="MiniMax" href="/uk/providers/minimax">
Доступ через OAuth MiniMax Coding Plan або API-ключ.
MiniMax Coding Plan OAuth або доступ за ключем API.
</Card>
<Card title="Qwen Cloud" href="/uk/providers/qwen">
Поверхня постачальника Qwen Cloud плюс зіставлення кінцевих точок Alibaba DashScope і Coding Plan.
Поверхня провайдера Qwen Cloud плюс зіставлення кінцевих точок Alibaba DashScope і Coding Plan.
</Card>
</CardGroup>
### OpenCode
- Автентифікація: `OPENCODE_API_KEY` (або `OPENCODE_ZEN_API_KEY`)
- Постачальник runtime Zen: `opencode`
- Постачальник runtime Go: `opencode-go`
- Провайдер середовища виконання Zen: `opencode`
- Провайдер середовища виконання Go: `opencode-go`
- Приклади моделей: `opencode/claude-opus-4-6`, `opencode-go/kimi-k2.6`
- CLI: `openclaw onboard --auth-choice opencode-zen` або `openclaw onboard --auth-choice opencode-go`
@ -194,28 +194,28 @@ OpenClaw постачається з каталогом piai. Ці прова
}
```
### Google Gemini (API-ключ)
### Google Gemini (ключ API)
- Постачальник: `google`
- Провайдер: `google`
- Автентифікація: `GEMINI_API_KEY`
- Необов’язкова ротація: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, резервний `GOOGLE_API_KEY` і `OPENCLAW_LIVE_GEMINI_KEY` (одноразове перевизначення)
- Необов’язкова ротація: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, резервний `GOOGLE_API_KEY` і `OPENCLAW_LIVE_GEMINI_KEY` (одне перевизначення)
- Приклади моделей: `google/gemini-3.1-pro-preview`, `google/gemini-3-flash-preview`
- Сумісність: застаріла конфігурація OpenClaw, що використовує `google/gemini-3.1-flash-preview`, нормалізується до `google/gemini-3-flash-preview`
- Псевдонім: `google/gemini-3.1-pro` приймається і нормалізується до live-ідентифікатора Gemini API від Google, `google/gemini-3.1-pro-preview`
- Сумісність: застаріла конфігурація OpenClaw з `google/gemini-3.1-flash-preview` нормалізується до `google/gemini-3-flash-preview`
- Псевдонім: `google/gemini-3.1-pro` приймається й нормалізується до живого ідентифікатора Gemini API від Google, `google/gemini-3.1-pro-preview`
- CLI: `openclaw onboard --auth-choice gemini-api-key`
- Мислення: `/think adaptive` використовує динамічне мислення Google. Gemini 3/3.1 пропускають фіксований `thinkingLevel`; Gemini 2.5 надсилає `thinkingBudget: -1`.
- Прямі запуски Gemini також приймають `agents.defaults.models["google/<model>"].params.cachedContent` (або застаріле `cached_content`) для пересилання нативного для постачальника дескриптора `cachedContents/...`; влучання кешу Gemini відображаються як OpenClaw `cacheRead`
- Прямі запуски Gemini також приймають `agents.defaults.models["google/<model>"].params.cachedContent` (або застарілий `cached_content`) для пересилання нативного для провайдера дескриптора `cachedContents/...`; влучання кешу Gemini відображаються як OpenClaw `cacheRead`
### Google Vertex і Gemini CLI
- Постачальники: `google-vertex`, `google-gemini-cli`
- Автентифікація: Vertex використовує gcloud ADC; Gemini CLI використовує свій OAuth-потік
- Провайдери: `google-vertex`, `google-gemini-cli`
- Автентифікація: Vertex використовує gcloud ADC; Gemini CLI використовує власний потік OAuth
<Warning>
Gemini CLI OAuth в OpenClaw є неофіційною інтеграцією. Деякі користувачі повідомляли про обмеження облікових записів Google після використання сторонніх клієнтів. Ознайомтеся з умовами Google і використовуйте некритичний обліковий запис, якщо вирішите продовжити.
Gemini CLI OAuth в OpenClaw є неофіційною інтеграцією. Деякі користувачі повідомляли про обмеження облікових записів Google після використання сторонніх клієнтів. Перегляньте умови Google і використовуйте некритичний обліковий запис, якщо вирішите продовжити.
</Warning>
Gemini CLI OAuth постачається як частина пакетного Plugin `google`.
Gemini CLI OAuth постачається як частина bundled Plugin `google`.
<Steps>
<Step title="Установіть Gemini CLI">
@ -245,12 +245,12 @@ Gemini CLI OAuth постачається як частина пакетного
Модель за замовчуванням: `google-gemini-cli/gemini-3-flash-preview`. Ви **не** вставляєте client id або secret у `openclaw.json`. Потік входу CLI зберігає токени в профілях автентифікації на хості gateway.
</Step>
<Step title="Налаштувати проєкт (за потреби)">
Якщо запити не проходять після входу, задайте `GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості gateway.
<Step title="Set project (if needed)">
Якщо запити після входу не виконуються, задайте `GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості gateway.
</Step>
</Steps>
JSON-відповіді Gemini CLI аналізуються з `response`; використання має fallback до `stats`, а `stats.cached` нормалізується в OpenClaw `cacheRead`.
JSON-відповіді Gemini CLI розбираються з `response`; дані про використання повертаються до `stats`, а `stats.cached` нормалізується в OpenClaw `cacheRead`.
### Z.AI (GLM)
@ -259,7 +259,7 @@ JSON-відповіді Gemini CLI аналізуються з `response`; ви
- Приклад моделі: `zai/glm-5.1`
- CLI: `openclaw onboard --auth-choice zai-api-key`
- Псевдоніми: `z.ai/*` і `z-ai/*` нормалізуються до `zai/*`
- `zai-api-key` автоматично визначає відповідний endpoint Z.AI; `zai-coding-global`, `zai-coding-cn`, `zai-global` і `zai-cn` примусово вибирають конкретну поверхню
- `zai-api-key` автоматично визначає відповідну кінцеву точку Z.AI; `zai-coding-global`, `zai-coding-cn`, `zai-global` і `zai-cn` примусово задають конкретну поверхню
### Vercel AI Gateway
@ -275,74 +275,74 @@ JSON-відповіді Gemini CLI аналізуються з `response`; ви
- Приклад моделі: `kilocode/kilo/auto`
- CLI: `openclaw onboard --auth-choice kilocode-api-key`
- Базова URL-адреса: `https://api.kilo.ai/api/gateway/`
- Статичний fallback-каталог постачається з `kilocode/kilo/auto`; live-виявлення `https://api.kilo.ai/api/gateway/models` може додатково розширити runtime-каталог.
- Точна upstream-маршрутизація за `kilocode/kilo/auto` належить Kilo Gateway, а не жорстко закодована в OpenClaw.
- Статичний резервний каталог постачається з `kilocode/kilo/auto`; live-виявлення `https://api.kilo.ai/api/gateway/models` може додатково розширити runtime-каталог.
- Точна upstream-маршрутизація за `kilocode/kilo/auto` належить Kilo Gateway, а не жорстко задана в OpenClaw.
Див. [/providers/kilocode](/uk/providers/kilocode) для деталей налаштування.
Див. [/providers/kilocode](/uk/providers/kilocode), щоб дізнатися подробиці налаштування.
### Інші вбудовані плагіни постачальників
### Інші вбудовані provider plugins
| Постачальник | Id | Env автентифікації | Приклад моделі |
| ---------------------- | -------------------------------- | ------------------------------------------------------------ | --------------------------------------------- |
| BytePlus | `byteplus` / `byteplus-plan` | `BYTEPLUS_API_KEY` | `byteplus-plan/ark-code-latest` |
| Cerebras | `cerebras` | `CEREBRAS_API_KEY` | `cerebras/zai-glm-4.7` |
| Cloudflare AI Gateway | `cloudflare-ai-gateway` | `CLOUDFLARE_AI_GATEWAY_API_KEY` | — |
| DeepInfra | `deepinfra` | `DEEPINFRA_API_KEY` | `deepinfra/deepseek-ai/DeepSeek-V3.2` |
| DeepSeek | `deepseek` | `DEEPSEEK_API_KEY` | `deepseek/deepseek-v4-flash` |
| GitHub Copilot | `github-copilot` | `COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN` | — |
| Groq | `groq` | `GROQ_API_KEY` | — |
| Hugging Face Inference | `huggingface` | `HUGGINGFACE_HUB_TOKEN` або `HF_TOKEN` | `huggingface/deepseek-ai/DeepSeek-R1` |
| Kilo Gateway | `kilocode` | `KILOCODE_API_KEY` | `kilocode/kilo/auto` |
| Kimi Coding | `kimi` | `KIMI_API_KEY` або `KIMICODE_API_KEY` | `kimi/kimi-code` |
| MiniMax | `minimax` / `minimax-portal` | `MINIMAX_API_KEY` / `MINIMAX_OAUTH_TOKEN` | `minimax/MiniMax-M2.7` |
| Mistral | `mistral` | `MISTRAL_API_KEY` | `mistral/mistral-large-latest` |
| Moonshot | `moonshot` | `MOONSHOT_API_KEY` | `moonshot/kimi-k2.6` |
| NVIDIA | `nvidia` | `NVIDIA_API_KEY` | `nvidia/nvidia/nemotron-3-super-120b-a12b` |
| OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | `openrouter/auto` |
| Qianfan | `qianfan` | `QIANFAN_API_KEY` | `qianfan/deepseek-v3.2` |
| Qwen Cloud | `qwen` | `QWEN_API_KEY` / `MODELSTUDIO_API_KEY` / `DASHSCOPE_API_KEY` | `qwen/qwen3.5-plus` |
| StepFun | `stepfun` / `stepfun-plan` | `STEPFUN_API_KEY` | `stepfun/step-3.5-flash` |
| Together | `together` | `TOGETHER_API_KEY` | `together/moonshotai/Kimi-K2.5` |
| Venice | `venice` | `VENICE_API_KEY` | — |
| Vercel AI Gateway | `vercel-ai-gateway` | `AI_GATEWAY_API_KEY` | `vercel-ai-gateway/anthropic/claude-opus-4.6` |
| Volcano Engine (Doubao) | `volcengine` / `volcengine-plan` | `VOLCANO_ENGINE_API_KEY` | `volcengine-plan/ark-code-latest` |
| xAI | `xai` | `XAI_API_KEY` | `xai/grok-4` |
| Xiaomi | `xiaomi` | `XIAOMI_API_KEY` | `xiaomi/mimo-v2-flash` |
| Постачальник | Id | Змінна середовища автентифікації | Приклад моделі |
| ---------------------- | -------------------------------- | ------------------------------------------------------------- | --------------------------------------------- |
| BytePlus | `byteplus` / `byteplus-plan` | `BYTEPLUS_API_KEY` | `byteplus-plan/ark-code-latest` |
| Cerebras | `cerebras` | `CEREBRAS_API_KEY` | `cerebras/zai-glm-4.7` |
| Cloudflare AI Gateway | `cloudflare-ai-gateway` | `CLOUDFLARE_AI_GATEWAY_API_KEY` | — |
| DeepInfra | `deepinfra` | `DEEPINFRA_API_KEY` | `deepinfra/deepseek-ai/DeepSeek-V3.2` |
| DeepSeek | `deepseek` | `DEEPSEEK_API_KEY` | `deepseek/deepseek-v4-flash` |
| GitHub Copilot | `github-copilot` | `COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN` | — |
| Groq | `groq` | `GROQ_API_KEY` | — |
| Hugging Face Inference | `huggingface` | `HUGGINGFACE_HUB_TOKEN` або `HF_TOKEN` | `huggingface/deepseek-ai/DeepSeek-R1` |
| Kilo Gateway | `kilocode` | `KILOCODE_API_KEY` | `kilocode/kilo/auto` |
| Kimi Coding | `kimi` | `KIMI_API_KEY` або `KIMICODE_API_KEY` | `kimi/kimi-code` |
| MiniMax | `minimax` / `minimax-portal` | `MINIMAX_API_KEY` / `MINIMAX_OAUTH_TOKEN` | `minimax/MiniMax-M2.7` |
| Mistral | `mistral` | `MISTRAL_API_KEY` | `mistral/mistral-large-latest` |
| Moonshot | `moonshot` | `MOONSHOT_API_KEY` | `moonshot/kimi-k2.6` |
| NVIDIA | `nvidia` | `NVIDIA_API_KEY` | `nvidia/nvidia/nemotron-3-super-120b-a12b` |
| OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | `openrouter/auto` |
| Qianfan | `qianfan` | `QIANFAN_API_KEY` | `qianfan/deepseek-v3.2` |
| Qwen Cloud | `qwen` | `QWEN_API_KEY` / `MODELSTUDIO_API_KEY` / `DASHSCOPE_API_KEY` | `qwen/qwen3.5-plus` |
| StepFun | `stepfun` / `stepfun-plan` | `STEPFUN_API_KEY` | `stepfun/step-3.5-flash` |
| Together | `together` | `TOGETHER_API_KEY` | `together/moonshotai/Kimi-K2.5` |
| Venice | `venice` | `VENICE_API_KEY` | — |
| Vercel AI Gateway | `vercel-ai-gateway` | `AI_GATEWAY_API_KEY` | `vercel-ai-gateway/anthropic/claude-opus-4.6` |
| Volcano Engine (Doubao) | `volcengine` / `volcengine-plan` | `VOLCANO_ENGINE_API_KEY` | `volcengine-plan/ark-code-latest` |
| xAI | `xai` | `XAI_API_KEY` | `xai/grok-4.3` |
| Xiaomi | `xiaomi` | `XIAOMI_API_KEY` | `xiaomi/mimo-v2-flash` |
#### Особливості, які варто знати
<AccordionGroup>
<Accordion title="OpenRouter">
Застосовує свої заголовки атрибуції застосунку та маркери Anthropic `cache_control` лише на перевірених маршрутах `openrouter.ai`. Посилання DeepSeek, Moonshot і ZAI придатні для cache-TTL у керованому OpenRouter кешуванні prompt, але не отримують кеш-маркерів Anthropic. Як proxy-style OpenAI-сумісний шлях, він пропускає формування лише для native-OpenAI (`serviceTier`, Responses `store`, підказки prompt-cache, OpenAI reasoning-compat). Посилання на базі Gemini зберігають лише proxy-Gemini очищення thought-signature.
Застосовує свої заголовки app-attribution і маркери Anthropic `cache_control` лише на перевірених маршрутах `openrouter.ai`. Посилання DeepSeek, Moonshot і ZAI придатні для cache-TTL у керованому OpenRouter кешуванні промптів, але не отримують маркерів кешу Anthropic. Як proxy-style OpenAI-compatible шлях, він пропускає shaping, призначений лише для native-OpenAI (`serviceTier`, Responses `store`, підказки prompt-cache, OpenAI reasoning-compat). Посилання на базі Gemini зберігають лише proxy-Gemini очищення thought-signature.
</Accordion>
<Accordion title="Kilo Gateway">
Посилання на базі Gemini проходять той самий шлях очищення proxy-Gemini; `kilocode/kilo/auto` та інші посилання proxy-reasoning-unsupported пропускають інʼєкцію proxy reasoning.
Посилання на базі Gemini використовують той самий шлях proxy-Gemini очищення; `kilocode/kilo/auto` та інші посилання proxy-reasoning-unsupported пропускають proxy reasoning injection.
</Accordion>
<Accordion title="MiniMax">
Onboarding через API-ключ записує явні text-only визначення chat-моделей M2.7; розуміння зображень залишається на media provider `MiniMax-VL-01`, яким володіє плагін.
Онбординг за API-ключем записує явні визначення чат-моделей M2.7 лише для тексту; розуміння зображень залишається в media provider `MiniMax-VL-01`, що належить Plugin.
</Accordion>
<Accordion title="NVIDIA">
Ідентифікатори моделей використовують простір імен `nvidia/<vendor>/<model>` (наприклад, `nvidia/nvidia/nemotron-...` поряд із `nvidia/moonshotai/kimi-k2.5`); засоби вибору зберігають буквальну композицію `<provider>/<model-id>`, тоді як канонічний ключ, що надсилається до API, залишається з одним префіксом.
Ідентифікатори моделей використовують простір імен `nvidia/<vendor>/<model>` (наприклад, `nvidia/nvidia/nemotron-...` поруч із `nvidia/moonshotai/kimi-k2.5`); засоби вибору зберігають буквальну композицію `<provider>/<model-id>`, тоді як канонічний ключ, що надсилається до API, лишається з одним префіксом.
</Accordion>
<Accordion title="xAI">
Використовує шлях xAI Responses. `/fast` або `params.fastMode: true` переписує `grok-3`, `grok-3-mini`, `grok-4` і `grok-4-0709` на їхні варіанти `*-fast`. `tool_stream` увімкнено за замовчуванням; вимкніть через `agents.defaults.models["xai/<model>"].params.tool_stream=false`.
Використовує шлях xAI Responses. `grok-4.3` є вбудованою чат-моделлю за замовчуванням. `/fast` або `params.fastMode: true` переписує `grok-3`, `grok-3-mini`, `grok-4` і `grok-4-0709` на їхні варіанти `*-fast`. `tool_stream` увімкнено за замовчуванням; вимикайте через `agents.defaults.models["xai/<model>"].params.tool_stream=false`.
</Accordion>
<Accordion title="Cerebras">
Постачається як вбудований плагін постачальника `cerebras`. GLM використовує `zai-glm-4.7`; OpenAI-сумісна базова URL-адреса — `https://api.cerebras.ai/v1`.
Постачається як вбудований provider plugin `cerebras`. GLM використовує `zai-glm-4.7`; OpenAI-compatible базова URL-адреса: `https://api.cerebras.ai/v1`.
</Accordion>
</AccordionGroup>
## Постачальники через `models.providers` (власна/базова URL-адреса)
Використовуйте `models.providers` (або `models.json`), щоб додати **власних** постачальників або OpenAI/Anthropicсумісні проксі.
Використовуйте `models.providers` (або `models.json`), щоб додавати **власних** постачальників або OpenAI/Anthropiccompatible проксі.
Багато вбудованих плагінів постачальників нижче вже публікують стандартний каталог. Використовуйте явні записи `models.providers.<id>` лише тоді, коли потрібно перевизначити стандартну базову URL-адресу, заголовки або список моделей.
Багато наведених нижче вбудованих provider plugins уже публікують каталог за замовчуванням. Використовуйте явні записи `models.providers.<id>` лише тоді, коли потрібно перевизначити базову URL-адресу, заголовки або список моделей.
Перевірки можливостей моделей Gateway також читають явні метадані `models.providers.<id>.models[]`. Якщо власна або проксі-модель приймає зображення, задайте `input: ["text", "image"]` для цієї моделі, щоб шляхи WebChat і вкладень з node-origin передавали зображення як native model inputs, а не як text-only media refs.
Перевірки можливостей моделей Gateway також читають явні метадані `models.providers.<id>.models[]`. Якщо власна або proxy-модель приймає зображення, задайте `input: ["text", "image"]` для цієї моделі, щоб WebChat і шляхи вкладень з node-origin передавали зображення як нативні вхідні дані моделі, а не як text-only media refs.
### Moonshot AI (Kimi)
Moonshot постачається як вбудований плагін постачальника. За замовчуванням використовуйте вбудованого постачальника й додавайте явний запис `models.providers.moonshot` лише тоді, коли потрібно перевизначити базову URL-адресу або метадані моделі:
Moonshot постачається як вбудований provider plugin. За замовчуванням використовуйте вбудованого постачальника й додавайте явний запис `models.providers.moonshot` лише тоді, коли потрібно перевизначити базову URL-адресу або метадані моделі:
- Постачальник: `moonshot`
- Автентифікація: `MOONSHOT_API_KEY`
@ -380,9 +380,9 @@ Moonshot постачається як вбудований плагін пос
}
```
### Програмування з Kimi
### Kimi для кодування
Kimi Coding використовує Anthropic-сумісну кінцеву точку Moonshot AI:
Kimi Coding використовує сумісну з Anthropic кінцеву точку Moonshot AI:
- Провайдер: `kimi`
- Автентифікація: `KIMI_API_KEY`
@ -397,13 +397,13 @@ Kimi Coding використовує Anthropic-сумісну кінцеву т
}
```
Застарілий `kimi/k2p5` і надалі приймається як ідентифікатор моделі для сумісності.
Застарілий `kimi/k2p5` і далі приймається як ідентифікатор моделі для сумісності.
### Volcano Engine (Doubao)
Volcano Engine (火山引擎) надає доступ до Doubao та інших моделей у Китаї.
- Провайдер: `volcengine` (для програмування: `volcengine-plan`)
- Провайдер: `volcengine` (кодування: `volcengine-plan`)
- Автентифікація: `VOLCANO_ENGINE_API_KEY`
- Приклад моделі: `volcengine-plan/ark-code-latest`
- CLI: `openclaw onboard --auth-choice volcengine-api-key`
@ -416,12 +416,12 @@ Volcano Engine (火山引擎) надає доступ до Doubao та інши
}
```
Onboarding за замовчуванням використовує поверхню для програмування, але загальний каталог `volcengine/*` реєструється одночасно.
Під час онбордингу за замовчуванням використовується поверхня для кодування, але загальний каталог `volcengine/*` реєструється одночасно.
У засобах вибору моделі під час onboarding/configure варіант автентифікації Volcengine віддає перевагу рядкам як `volcengine/*`, так і `volcengine-plan/*`. Якщо ці моделі ще не завантажено, OpenClaw повертається до нефільтрованого каталогу замість показу порожнього засобу вибору, обмеженого провайдером.
У засобах вибору моделі під час онбордингу або налаштування вибір автентифікації Volcengine надає перевагу рядкам `volcengine/*` і `volcengine-plan/*`. Якщо ці моделі ще не завантажені, OpenClaw натомість повертається до нефільтрованого каталогу, а не показує порожній засіб вибору, обмежений провайдером.
<Tabs>
<Tab title="Стандартні моделі">
<Tab title="Standard models">
- `volcengine/doubao-seed-1-8-251228` (Doubao Seed 1.8)
- `volcengine/doubao-seed-code-preview-251028`
- `volcengine/kimi-k2-5-260127` (Kimi K2.5)
@ -429,7 +429,7 @@ Onboarding за замовчуванням використовує поверх
- `volcengine/deepseek-v3-2-251201` (DeepSeek V3.2 128K)
</Tab>
<Tab title="Моделі для програмування (volcengine-plan)">
<Tab title="Coding models (volcengine-plan)">
- `volcengine-plan/ark-code-latest`
- `volcengine-plan/doubao-seed-code`
- `volcengine-plan/kimi-k2.5`
@ -443,7 +443,7 @@ Onboarding за замовчуванням використовує поверх
BytePlus ARK надає міжнародним користувачам доступ до тих самих моделей, що й Volcano Engine.
- Провайдер: `byteplus` (для програмування: `byteplus-plan`)
- Провайдер: `byteplus` (кодування: `byteplus-plan`)
- Автентифікація: `BYTEPLUS_API_KEY`
- Приклад моделі: `byteplus-plan/ark-code-latest`
- CLI: `openclaw onboard --auth-choice byteplus-api-key`
@ -456,18 +456,18 @@ BytePlus ARK надає міжнародним користувачам дост
}
```
Onboarding за замовчуванням використовує поверхню для програмування, але загальний каталог `byteplus/*` реєструється одночасно.
Onboarding за замовчуванням використовує поверхню для кодування, але загальний каталог `byteplus/*` реєструється одночасно.
У засобах вибору моделі під час onboarding/configure вибір автентифікації BytePlus надає перевагу рядкам і `byteplus/*`, і `byteplus-plan/*`. Якщо ці моделі ще не завантажені, OpenClaw повертається до нефільтрованого каталогу замість показу порожнього засобу вибору, обмеженого провайдером.
У засобах вибору моделей під час onboarding/configure варіант автентифікації BytePlus надає перевагу рядкам `byteplus/*` і `byteplus-plan/*`. Якщо ці моделі ще не завантажено, OpenClaw повертається до нефільтрованого каталогу замість показу порожнього засобу вибору, обмеженого провайдером.
<Tabs>
<Tab title="Стандартні моделі">
<Tab title="Standard models">
- `byteplus/seed-1-8-251228` (Seed 1.8)
- `byteplus/kimi-k2-5-260127` (Kimi K2.5)
- `byteplus/glm-4-7-251222` (GLM 4.7)
</Tab>
<Tab title="Моделі для програмування (byteplus-plan)">
<Tab title="Coding models (byteplus-plan)">
- `byteplus-plan/ark-code-latest`
- `byteplus-plan/doubao-seed-code`
- `byteplus-plan/kimi-k2.5`
@ -515,18 +515,18 @@ MiniMax налаштовується через `models.providers`, оскіль
- MiniMax API key (CN): `--auth-choice minimax-cn-api`
- Автентифікація: `MINIMAX_API_KEY` для `minimax`; `MINIMAX_OAUTH_TOKEN` або `MINIMAX_API_KEY` для `minimax-portal`
Докладні відомості про налаштування, варіанти моделей і фрагменти конфігурації див. у [/providers/minimax](/uk/providers/minimax).
Див. [/providers/minimax](/uk/providers/minimax), щоб отримати деталі налаштування, варіанти моделей і фрагменти конфігурації.
<Note>
На Anthropic-сумісному потоковому шляху MiniMax OpenClaw типово вимикає мислення, якщо ви явно його не задасте, а `/fast on` переписує `MiniMax-M2.7` на `MiniMax-M2.7-highspeed`.
На Anthropic-сумісному шляху streaming MiniMax OpenClaw за замовчуванням вимикає thinking, якщо ви не задасте його явно, а `/fast on` переписує `MiniMax-M2.7` на `MiniMax-M2.7-highspeed`.
</Note>
Поділ можливостей, що належать Plugin:
Розділення можливостей, якими володіє Plugin:
- Типові значення для тексту/чату залишаються на `minimax/MiniMax-M2.7`
- Генерація зображень — це `minimax/image-01` або `minimax-portal/image-01`
- Розуміння зображень належить Plugin `MiniMax-VL-01` на обох шляхах автентифікації MiniMax
- Вебпошук залишається на id провайдера `minimax`
- Генерація зображень: `minimax/image-01` або `minimax-portal/image-01`
- Розуміння зображень належить Plugin: `MiniMax-VL-01` на обох шляхах автентифікації MiniMax
- Web search залишається на ідентифікаторі провайдера `minimax`
### LM Studio
@ -534,7 +534,7 @@ LM Studio постачається як вбудований Plugin провай
- Провайдер: `lmstudio`
- Автентифікація: `LM_API_TOKEN`
- Типова базова URL-адреса для inference: `http://localhost:1234/v1`
- Типовий базовий URL для inference: `http://localhost:1234/v1`
Потім задайте модель (замініть на один з ідентифікаторів, повернених `http://localhost:1234/api/v1/models`):
@ -546,7 +546,7 @@ LM Studio постачається як вбудований Plugin провай
}
```
OpenClaw використовує нативні `/api/v1/models` і `/api/v1/models/load` LM Studio для виявлення й автоматичного завантаження, а `/v1/chat/completions` типово для inference. Налаштування й усунення неполадок див. у [/providers/lmstudio](/uk/providers/lmstudio).
OpenClaw використовує нативні `/api/v1/models` і `/api/v1/models/load` LM Studio для виявлення й автоматичного завантаження, а для inference за замовчуванням використовує `/v1/chat/completions`. Див. [/providers/lmstudio](/uk/providers/lmstudio) для налаштування й усунення несправностей.
### Ollama
@ -570,7 +570,7 @@ ollama pull llama3.3
}
```
Ollama виявляється локально на `http://127.0.0.1:11434`, коли ви погоджуєтеся через `OLLAMA_API_KEY`, а вбудований Plugin провайдера додає Ollama безпосередньо до `openclaw onboard` і засобу вибору моделі. Onboarding, хмарний/локальний режим і власне налаштування див. у [/providers/ollama](/uk/providers/ollama).
Ollama виявляється локально за адресою `http://127.0.0.1:11434`, коли ви вмикаєте її через `OLLAMA_API_KEY`, а вбудований Plugin провайдера додає Ollama безпосередньо до `openclaw onboard` і засобу вибору моделей. Див. [/providers/ollama](/uk/providers/ollama) для onboarding, хмарного/локального режиму та власної конфігурації.
### vLLM
@ -578,9 +578,9 @@ vLLM постачається як вбудований Plugin провайде
- Провайдер: `vllm`
- Автентифікація: необов’язкова (залежить від вашого сервера)
- Типова базова URL-адреса: `http://127.0.0.1:8000/v1`
- Типовий базовий URL: `http://127.0.0.1:8000/v1`
Щоб увімкнути локальне автовиявлення (підійде будь-яке значення, якщо ваш сервер не застосовує автентифікацію):
Щоб увімкнути локальне автоматичне виявлення (підійде будь-яке значення, якщо ваш сервер не вимагає автентифікації):
```bash
export VLLM_API_KEY="vllm-local"
@ -596,7 +596,7 @@ export VLLM_API_KEY="vllm-local"
}
```
Докладніше див. у [/providers/vllm](/uk/providers/vllm).
Див. [/providers/vllm](/uk/providers/vllm) для деталей.
### SGLang
@ -604,9 +604,9 @@ SGLang постачається як вбудований Plugin провайд
- Провайдер: `sglang`
- Автентифікація: необов’язкова (залежить від вашого сервера)
- Типова базова URL-адреса: `http://127.0.0.1:30000/v1`
- Типовий базовий URL: `http://127.0.0.1:30000/v1`
Щоб увімкнути локальне автовиявлення (підійде будь-яке значення, якщо ваш сервер не застосовує автентифікацію):
Щоб увімкнути локальне автоматичне виявлення (підійде будь-яке значення, якщо ваш сервер не вимагає автентифікації):
```bash
export SGLANG_API_KEY="sglang-local"
@ -622,7 +622,7 @@ export SGLANG_API_KEY="sglang-local"
}
```
Докладніше див. у [/providers/sglang](/uk/providers/sglang).
Див. [/providers/sglang](/uk/providers/sglang) для деталей.
### Локальні проксі (LM Studio, vLLM, LiteLLM тощо)
@ -661,8 +661,8 @@ export SGLANG_API_KEY="sglang-local"
```
<AccordionGroup>
<Accordion title="Типові необов’язкові поля">
Для власних провайдерів `reasoning`, `input`, `cost`, `contextWindow` і `maxTokens` є необов’язковими. Якщо їх пропущено, OpenClaw типово використовує:
<Accordion title="Default optional fields">
Для власних провайдерів `reasoning`, `input`, `cost`, `contextWindow` і `maxTokens` є необов’язковими. Якщо їх пропущено, OpenClaw за замовчуванням використовує:
- `reasoning: false`
- `input: ["text"]`
@ -673,15 +673,15 @@ export SGLANG_API_KEY="sglang-local"
Рекомендовано: задайте явні значення, що відповідають обмеженням вашого проксі/моделі.
</Accordion>
<Accordion title="Правила формування маршруту проксі">
- Для `api: "openai-completions"` на ненативних кінцевих точках (будь-який непорожній `baseUrl`, хост якого не є `api.openai.com`) OpenClaw примусово задає `compat.supportsDeveloperRole: false`, щоб уникнути помилок 400 від провайдера для непідтримуваних ролей `developer`.
- Проксі-маршрути у стилі OpenAI-сумісності також пропускають нативне формування запитів, призначене лише для OpenAI: без `service_tier`, без Responses `store`, без Completions `store`, без підказок кешу prompt, без формування OpenAI reasoning-compat payload і без прихованих заголовків атрибуції OpenClaw.
- Для OpenAI-сумісних проксі Completions, яким потрібні специфічні для постачальника поля, задайте `agents.defaults.models["provider/model"].params.extra_body` (або `extraBody`), щоб об’єднати додатковий JSON з тілом вихідного запиту.
- Для керування chat-template vLLM задайте `agents.defaults.models["provider/model"].params.chat_template_kwargs`. Вбудований Plugin vLLM автоматично надсилає `enable_thinking: false` і `force_nonempty_content: true` для `vllm/nemotron-3-*`, коли рівень мислення сеансу вимкнено.
- Для повільних локальних моделей або віддалених хостів LAN/tailnet задайте `models.providers.<id>.timeoutSeconds`. Це розширює обробку HTTP-запитів моделі провайдера, зокрема connect, headers, потокове передавання body і загальне переривання guarded-fetch, не збільшуючи загальний timeout runtime агента.
- Якщо `baseUrl` порожній або пропущений, OpenClaw зберігає типову поведінку OpenAI (яка розв’язується до `api.openai.com`).
<Accordion title="Proxy-route shaping rules">
- Для `api: "openai-completions"` на ненативних кінцевих точках (будь-який непорожній `baseUrl`, хост якого не є `api.openai.com`) OpenClaw примусово задає `compat.supportsDeveloperRole: false`, щоб уникнути помилок провайдера 400 для непідтримуваних ролей `developer`.
- OpenAI-сумісні маршрути у стилі проксі також пропускають нативне формування запитів, призначене лише для OpenAI: без `service_tier`, без `store` для Responses, без `store` для Completions, без підказок prompt-cache, без формування payload для сумісності OpenAI reasoning і без прихованих заголовків атрибуції OpenClaw.
- Для OpenAI-сумісних проксі Completions, яким потрібні поля, специфічні для постачальника, задайте `agents.defaults.models["provider/model"].params.extra_body` (або `extraBody`), щоб об’єднати додатковий JSON з тілом вихідного запиту.
- Для елементів керування chat-template vLLM задайте `agents.defaults.models["provider/model"].params.chat_template_kwargs`. Вбудований Plugin vLLM автоматично надсилає `enable_thinking: false` і `force_nonempty_content: true` для `vllm/nemotron-3-*`, коли рівень thinking у сесії вимкнено.
- Для повільних локальних моделей або віддалених хостів LAN/tailnet задайте `models.providers.<id>.timeoutSeconds`. Це розширює обробку HTTP-запитів моделі провайдера, включно з підключенням, заголовками, streaming тіла та загальним перериванням guarded-fetch, не збільшуючи timeout усього runtime агента.
- Якщо `baseUrl` порожній або пропущений, OpenClaw зберігає типову поведінку OpenAI (яка резолвиться в `api.openai.com`).
- З міркувань безпеки явне `compat.supportsDeveloperRole: true` все одно перевизначається на ненативних кінцевих точках `openai-completions`.
- Для `api: "anthropic-messages"` на непрямих кінцевих точках (будь-який провайдер, крім канонічного `anthropic`, або власний `models.providers.anthropic.baseUrl`, хост якого не є публічною кінцевою точкою `api.anthropic.com`) OpenClaw пригнічує неявні бета-заголовки Anthropic, як-от `claude-code-20250219`, `interleaved-thinking-2025-05-14` і маркери OAuth, щоб власні Anthropic-сумісні проксі не відхиляли непідтримувані бета-прапорці. Явно задайте `models.providers.<id>.headers["anthropic-beta"]`, якщо вашому проксі потрібні певні бета-функції.
- Для `api: "anthropic-messages"` на непрямих кінцевих точках (будь-який провайдер, окрім канонічного `anthropic`, або власний `models.providers.anthropic.baseUrl`, хост якого не є публічною кінцевою точкою `api.anthropic.com`) OpenClaw пригнічує неявні beta-заголовки Anthropic, як-от `claude-code-20250219`, `interleaved-thinking-2025-05-14` і маркери OAuth, щоб власні Anthropic-сумісні проксі не відхиляли непідтримувані beta-прапорці. Явно задайте `models.providers.<id>.headers["anthropic-beta"]`, якщо вашому проксі потрібні конкретні beta-функції.
</Accordion>
</AccordionGroup>
@ -694,11 +694,11 @@ openclaw models set opencode/claude-opus-4-6
openclaw models list
```
Також див.: [Конфігурація](/uk/gateway/configuration) для повних прикладів конфігурації.
Див. також: [Конфігурація](/uk/gateway/configuration) для повних прикладів конфігурації.
## Пов’язане
- [Довідник конфігурації](/uk/gateway/config-agents#agent-defaults) — ключі конфігурації моделі
- [Відпрацювання відмови моделі](/uk/concepts/model-failover) — ланцюги fallback і поведінка повторних спроб
- [Довідник конфігурації](/uk/gateway/config-agents#agent-defaults) — ключі конфігурації моделей
- [Відмовостійкість моделей](/uk/concepts/model-failover) — ланцюжки резервного переходу та поведінка повторних спроб
- [Моделі](/uk/concepts/models) — конфігурація моделей і псевдоніми
- [Провайдери](/uk/providers) — посібники з налаштування для кожного провайдера

View File

@ -4,26 +4,26 @@ read_when:
- Налагодження визначення облікових даних для тестів у реальному середовищі
- Додавання нового тесту в реальному середовищі для конкретного провайдера
sidebarTitle: Live tests
summary: 'Тести в реальному середовищі (із мережевими зверненнями): матриця моделей, бекенди CLI, ACP, медіапровайдери, облікові дані'
title: 'Тестування: живі набори тестів'
summary: 'Живі тести (з мережевими зверненнями): матриця моделей, бекенди CLI, ACP, постачальники медіа, облікові дані'
title: 'Тестування: набори тестів у реальному середовищі'
x-i18n:
generated_at: "2026-05-01T20:38:06Z"
generated_at: "2026-05-02T01:45:28Z"
model: gpt-5.5
provider: openai
source_hash: 908ce317d5a8d45c8fa8dba4225dadf1bbbf530b5ff47272cd734739a57dbc6e
source_hash: ce8bd75ee7837b48e6ba1d888d281ee053fc13bdcf0907baddeb78ebcbbef31c
source_path: help/testing-live.md
workflow: 16
---
Для швидкого старту, QA-запускачів, unit/integration наборів і Docker-потоків див.
[Тестування](/uk/help/testing). Ця сторінка охоплює **живі** (що торкаються мережі) тестові
набори: матрицю моделей, CLI-бекенди, ACP і живі тести медіапровайдерів, а також
Для швидкого старту, QA-запускачів, модульних/інтеграційних наборів і Docker-потоків див.
[Тестування](/uk/help/testing). Ця сторінка описує **live** (із взаємодією з мережею) тестові
набори: матрицю моделей, CLI-бекенди, ACP і live-тести медіапровайдерів, а також
обробку облікових даних.
## Живі: локальні smoke-команди профілю
## Live: локальні команди smoke для профілю
Підключіть `~/.profile` перед спеціальними живими перевірками, щоб ключі провайдера й локальні шляхи
інструментів збігалися з вашою shell-оболонкою:
Перед ad hoc live-перевірками виконайте source для `~/.profile`, щоб ключі провайдерів і локальні шляхи
інструментів відповідали вашій оболонці:
```bash
source ~/.profile
@ -37,105 +37,105 @@ pnpm openclaw infer tts convert --local --json \
--output /tmp/openclaw-live-smoke.mp3
```
Безпечний smoke готовності голосового виклику:
Безпечний smoke готовності голосових викликів:
```bash
pnpm openclaw voicecall setup --json
pnpm openclaw voicecall smoke --to "+15555550123"
```
`voicecall smoke` є сухим запуском, якщо також не вказано `--yes`. Використовуйте `--yes` лише
тоді, коли навмисно хочете здійснити реальний сповіщувальний дзвінок. Для Twilio, Telnyx і
Plivo успішна перевірка готовності потребує публічної URL-адреси Webhook; локальні-only
loopback/приватні резервні варіанти відхиляються за задумом.
`voicecall smoke` є пробним запуском, якщо також не вказано `--yes`. Використовуйте `--yes` лише
тоді, коли ви навмисно хочете здійснити справжній сповіщувальний дзвінок. Для Twilio, Telnyx і
Plivo успішна перевірка готовності потребує публічної URL-адреси Webhook; резервні варіанти лише для
local loopback/приватні резервні варіанти відхиляються за задумом.
## Живі: перевірка можливостей Android Node
## Live: перевірка можливостей Android Node
- Тест: `src/gateway/android-node.capabilities.live.test.ts`
- Скрипт: `pnpm android:test:integration`
- Мета: викликати **кожну команду, яку зараз оголошує** підключений Android Node, і перевірити поведінку контракту команди.
- Мета: викликати **кожну команду, яку зараз рекламує** підключений Android Node, і перевірити поведінку контракту команди.
- Обсяг:
- Попередньо підготовлене/ручне налаштування (набір не встановлює/запускає/сполучає застосунок).
- Покомандна валідація Gateway `node.invoke` для вибраного Android Node.
- Обов’язкове попереднє налаштування:
- Android-застосунок уже підключений і сполучений із Gateway.
- Застосунок утримується на передньому плані.
- Дозволи/згода на захоплення надані для можливостей, які ви очікуєте успішними.
- Попередньо підготовлене/ручне налаштування (набір не встановлює/не запускає/не сполучає застосунок).
- Валідація 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-застосунок](/uk/platforms/android)
## Живі: smoke моделей (ключі профілю)
## Live: model smoke (ключі профілю)
Живі тести розділено на два шари, щоб можна було ізолювати збої:
Live-тести поділено на два шари, щоб ми могли ізолювати збої:
- “Пряма модель” показує, чи провайдер/модель узагалі може відповісти з наданим ключем.
- “Gateway smoke” показує, чи повний конвеєр gateway+agent працює для цієї моделі (сесії, історія, інструменти, політика sandbox тощо).
- «Пряма модель» показує, чи провайдер/модель узагалі може відповісти з наданим ключем.
- «Gateway smoke» показує, чи весь конвеєр gateway+agent працює для цієї моделі (сеанси, історія, інструменти, політика sandbox тощо).
### Шар 1: пряме завершення моделі (без gateway)
### Шар 1: Пряме завершення моделі (без Gateway)
- Тест: `src/agents/models.profiles.live.test.ts`
- Мета:
- Перелічити виявлені моделі
- Використати `getApiKeyForModel`, щоб вибрати моделі, для яких у вас є облікові дані
- Запустити невелике завершення для кожної моделі (і цільові регресійні перевірки, де потрібно)
- Запустити невелике завершення для кожної моделі (і цільові регресії за потреби)
- Як увімкнути:
- `pnpm test:live` (або `OPENCLAW_LIVE_TEST=1`, якщо викликаєте Vitest напряму)
- Установіть `OPENCLAW_LIVE_MODELS=modern` (або `all`, псевдонім для modern), щоб фактично запустити цей набір; інакше він пропускається, щоб `pnpm test:live` був зосереджений на gateway smoke
- Як вибирати моделі:
- `OPENCLAW_LIVE_MODELS=modern`, щоб запустити сучасний allowlist (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4)
- Установіть `OPENCLAW_LIVE_MODELS=modern` (або `all`, псевдонім для modern), щоб фактично запустити цей набір; інакше він пропускається, щоб `pnpm test:live` залишався зосередженим на gateway smoke
- Як вибрати моделі:
- `OPENCLAW_LIVE_MODELS=modern`, щоб запустити сучасний allowlist (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4.3)
- `OPENCLAW_LIVE_MODELS=all` є псевдонімом для сучасного allowlist
- або `OPENCLAW_LIVE_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,..."` (allowlist через кому)
- Сучасні/all перевірки за замовчуванням мають кероване високосигнальне обмеження; установіть `OPENCLAW_LIVE_MAX_MODELS=0` для вичерпної сучасної перевірки або додатне число для меншого обмеження.
- Вичерпні перевірки використовують `OPENCLAW_LIVE_TEST_TIMEOUT_MS` для тайм-ауту всього тесту direct-model. Типово: 60 хвилин.
- Проби direct-model за замовчуванням виконуються з паралельністю 20; установіть `OPENCLAW_LIVE_MODEL_CONCURRENCY`, щоб перевизначити.
- Як вибирати провайдерів:
- Перевірки modern/all за замовчуванням використовують кураторський високосигнальний ліміт; установіть `OPENCLAW_LIVE_MAX_MODELS=0` для вичерпної modern-перевірки або додатне число для меншого ліміту.
- Вичерпні перевірки використовують `OPENCLAW_LIVE_TEST_TIMEOUT_MS` як таймаут усього тесту прямої моделі. За замовчуванням: 60 хвилин.
- Проби прямої моделі за замовчуванням виконуються з паралелізмом 20; установіть `OPENCLAW_LIVE_MODEL_CONCURRENCY`, щоб перевизначити.
- Як вибрати провайдерів:
- `OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"` (allowlist через кому)
- Звідки беруться ключі:
- За замовчуванням: сховище профілю та резервні env-значення
- Установіть `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати лише **сховище профілю**
- За замовчуванням: сховище профілів і резервні варіанти env
- Установіть `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати лише **сховище профілів**
- Навіщо це існує:
- Відокремлює “API провайдера зламане / ключ недійсний” від “конвеєр агента gateway зламаний”
- Містить невеликі ізольовані регресійні перевірки (приклад: OpenAI Responses/Codex Responses reasoning replay + потоки tool-call)
- Відокремлює «API провайдера зламано / ключ недійсний» від «конвеєр gateway agent зламано»
- Містить невеликі, ізольовані регресії (приклад: reasoning replay OpenAI Responses/Codex Responses + потоки tool-call)
### Шар 2: Gateway + smoke dev-агента (що насправді робить "@openclaw")
### Шар 2: Gateway + dev agent smoke (що насправді робить "@openclaw")
- Тест: `src/gateway/gateway-models.profiles.live.test.ts`
- Мета:
- Запустити gateway в процесі
- Створити/виправити сесію `agent:dev:*` (перевизначення моделі для кожного запуску)
- Ітерувати моделі з ключами й перевірити:
- “змістовну” відповідь (без інструментів)
- працює реальний виклик інструмента (проба читання)
- необов’язкові додаткові проби інструментів (проба exec+read)
- регресійні шляхи OpenAI (tool-call-only → follow-up) продовжують працювати
- Запустити внутрішньопроцесний Gateway
- Створити/змінити сеанс `agent:dev:*` (перевизначення моделі для кожного запуску)
- Перебрати моделі з ключами й перевірити:
- «змістовну» відповідь (без інструментів)
- працює справжній виклик інструмента (read-проба)
- необов’язкові додаткові проби інструментів (exec+read-проба)
- регресійні шляхи OpenAI (лише tool-call → follow-up) продовжують працювати
- Деталі проб (щоб можна було швидко пояснити збої):
- проба `read`: тест записує nonce-файл у workspace і просить агента `read` його та повернути nonce.
- проба `exec+read`: тест просить агента через `exec` записати nonce у тимчасовий файл, а потім `read` його назад.
- проба зображення: тест додає згенерований PNG (cat + рандомізований код) і очікує, що модель поверне `cat <CODE>`.
- `read`-проба: тест записує nonce-файл у робочій області й просить агента `read` його та повернути nonce.
- `exec+read`-проба: тест просить агента через `exec` записати nonce у тимчасовий файл, а потім через `read` прочитати його назад.
- проба зображення: тест долучає згенерований PNG (cat + рандомізований код) і очікує, що модель поверне `cat <CODE>`.
- Посилання на реалізацію: `src/gateway/gateway-models.profiles.live.test.ts` і `src/gateway/live-image-probe.ts`.
- Як увімкнути:
- `pnpm test:live` (або `OPENCLAW_LIVE_TEST=1`, якщо викликаєте Vitest напряму)
- Як вибирати моделі:
- Типово: сучасний allowlist (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4)
- Як вибрати моделі:
- За замовчуванням: сучасний allowlist (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4.3)
- `OPENCLAW_LIVE_GATEWAY_MODELS=all` є псевдонімом для сучасного allowlist
- Або встановіть `OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"` (або список через кому), щоб звузити вибір
- Сучасні/all gateway-перевірки за замовчуванням мають кероване високосигнальне обмеження; установіть `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0` для вичерпної сучасної перевірки або додатне число для меншого обмеження.
- Як вибирати провайдерів (уникати “усе через OpenRouter”):
- Або встановіть `OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"` (або список через кому), щоб звузити
- Gateway-перевірки modern/all за замовчуванням використовують кураторський високосигнальний ліміт; установіть `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0` для вичерпної modern-перевірки або додатне число для меншого ліміту.
- Як вибрати провайдерів (уникайте «усе з OpenRouter»):
- `OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"` (allowlist через кому)
- Проби інструментів і зображень завжди ввімкнені в цьому живому тесті:
- проба `read` + проба `exec+read` (навантаження інструментів)
- проба зображення запускається, коли модель оголошує підтримку вводу зображень
- Проби інструментів + зображень у цьому live-тесті завжди ввімкнені:
- `read`-проба + `exec+read`-проба (навантаження інструментів)
- проба зображення виконується, коли модель оголошує підтримку введення зображень
- Потік (на високому рівні):
- Тест генерує крихітний PNG із “CAT” + випадковим кодом (`src/gateway/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: допускаються незначні помилки)
- Твердження: відповідь містить `cat` + код (толерантність OCR: незначні помилки дозволені)
<Tip>
Щоб побачити, що можна протестувати на вашій машині (і точні ids `provider/model`), запустіть:
Щоб побачити, що можна тестувати на вашій машині (і точні ідентифікатори `provider/model`), запустіть:
```bash
openclaw models list
@ -144,27 +144,27 @@ openclaw models list --json
</Tip>
## Живі: smoke CLI-бекенда (Claude, Codex, Gemini або інші локальні CLI)
## Live: CLI backend smoke (Claude, Codex, Gemini або інші локальні CLI)
- Тест: `src/gateway/gateway-cli-backend.live.test.ts`
- Мета: перевірити конвеєр Gateway + agent за допомогою локального CLI-бекенда, не торкаючись вашої типової конфігурації.
- Специфічні для бекенда smoke-типові значення містяться у визначенні `cli-backend.ts` власницького plugin.
- Специфічні для бекенда smoke-налаштування за замовчуванням живуть у визначенні `cli-backend.ts` відповідного Plugin.
- Увімкнення:
- `pnpm test:live` (або `OPENCLAW_LIVE_TEST=1`, якщо викликаєте Vitest напряму)
- `OPENCLAW_LIVE_CLI_BACKEND=1`
- Типові значення:
- Типовий провайдер/модель: `claude-cli/claude-sonnet-4-6`
- Поведінка команд/аргументів/зображень надходить із metadata власницького CLI backend plugin.
- Поведінка команди/аргументів/зображень береться з метаданих відповідного CLI backend plugin.
- Перевизначення (необов’язково):
- `OPENCLAW_LIVE_CLI_BACKEND_MODEL="codex-cli/gpt-5.5"`
- `OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/codex"`
- `OPENCLAW_LIVE_CLI_BACKEND_ARGS='["exec","--json","--color","never","--sandbox","read-only","--skip-git-repo-check"]'`
- `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1`, щоб надіслати реальне вкладення-зображення (шляхи ін’єктуються в prompt). Docker-рецепти за замовчуванням вимикають це, якщо явно не запитано.
- `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1`, щоб надіслати справжнє зображення-вкладення (шляхи ін’єктуються в prompt). Docker-рецепти за замовчуванням вимикають це, якщо явно не запитано.
- `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"`, щоб передавати шляхи до файлів зображень як CLI-аргументи замість ін’єкції в prompt.
- `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"` (або `"list"`), щоб керувати тим, як передаються аргументи зображень, коли встановлено `IMAGE_ARG`.
- `OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1`, щоб надіслати другий хід і перевірити потік resume.
- `OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1`, щоб увімкнути пробу безперервності тієї самої сесії Claude Sonnet -> Opus, коли вибрана модель підтримує ціль перемикання. Docker-рецепти за замовчуванням вимикають це для сукупної надійності.
- `OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1`, щоб увімкнути MCP/tool loopback пробу. Docker-рецепти за замовчуванням вимикають це, якщо явно не запитано.
- `OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1`, щоб увімкнути пробу безперервності Claude Sonnet -> Opus у тому самому сеансі, коли вибрана модель підтримує ціль перемикання. Docker-рецепти за замовчуванням вимикають це для сукупної надійності.
- `OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1`, щоб увімкнути пробу MCP/інструментального loopback. Docker-рецепти за замовчуванням вимикають це, якщо явно не запитано.
Приклад:
@ -174,7 +174,7 @@ OPENCLAW_LIVE_CLI_BACKEND=1 \
pnpm test:live src/gateway/gateway-cli-backend.live.test.ts
```
Дешевий smoke конфігурації Gemini MCP:
Дешева smoke-перевірка конфігурації Gemini MCP:
```bash
OPENCLAW_LIVE_TEST=1 \
@ -183,8 +183,8 @@ OPENCLAW_LIVE_TEST=1 \
Це не просить Gemini згенерувати відповідь. Воно записує ті самі системні
налаштування, які OpenClaw надає Gemini, а потім запускає `gemini --debug mcp list`, щоб довести, що
збережений сервер `transport: "streamable-http"` нормалізується до HTTP MCP
форми Gemini й може підключитися до локального streamable-HTTP MCP сервера.
збережений сервер `transport: "streamable-http"` нормалізується до HTTP MCP-форми Gemini
і може підключитися до локального streamable-HTTP MCP-сервера.
Docker-рецепт:
@ -201,31 +201,31 @@ pnpm test:docker:live-cli-backend:codex
pnpm test:docker:live-cli-backend:gemini
```
Примітки:
Нотатки:
- Docker runner розташований у `scripts/test-live-cli-backend-docker.sh`.
- Він запускає live CLI-backend smoke всередині Docker-образу репозиторію як non-root користувач `node`.
- Він визначає CLI smoke metadata з власницького plugin, потім встановлює відповідний Linux CLI пакет (`@anthropic-ai/claude-code`, `@openai/codex` або `@google/gemini-cli`) у кешований записуваний префікс за `OPENCLAW_DOCKER_CLI_TOOLS_DIR` (типово: `~/.cache/openclaw/docker-cli-tools`).
- `pnpm test:docker:live-cli-backend:claude-subscription` потребує переносного Claude Code subscription OAuth через `~/.claude/.credentials.json` із `claudeAiOauth.subscriptionType` або `CLAUDE_CODE_OAUTH_TOKEN` з `claude setup-token`. Спершу він доводить прямий `claude -p` у Docker, потім запускає два Gateway CLI-backend ходи без збереження env vars ключів Anthropic API. Ця subscription lane вимикає Claude MCP/tool і проби зображень за замовчуванням, бо Claude наразі маршрутизує використання сторонніх застосунків через billing додаткового використання замість звичайних лімітів subscription plan.
- Живий CLI-backend smoke тепер перевіряє той самий наскрізний потік для Claude, Codex і Gemini: текстовий хід, хід класифікації зображення, потім виклик інструмента MCP `cron`, перевірений через gateway CLI.
- Типовий smoke Claude також виправляє сесію із Sonnet на Opus і перевіряє, що відновлена сесія все ще пам’ятає попередню нотатку.
- Docker-запускач розташований у `scripts/test-live-cli-backend-docker.sh`.
- Він запускає live CLI-backend smoke всередині Docker-образу репозиторію як некореневий користувач `node`.
- Він визначає CLI smoke-метадані з відповідного Plugin, а потім встановлює відповідний Linux CLI-пакет (`@anthropic-ai/claude-code`, `@openai/codex` або `@google/gemini-cli`) у кешований записуваний префікс за `OPENCLAW_DOCKER_CLI_TOOLS_DIR` (за замовчуванням: `~/.cache/openclaw/docker-cli-tools`).
- `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, а потім запускає два Gateway CLI-backend ходи без збереження env vars ключа Anthropic API. Ця subscription-смуга за замовчуванням вимикає Claude MCP/інструментальну пробу та пробу зображення, бо Claude зараз маршрутизує використання сторонніх застосунків через billing додаткового використання замість звичайних лімітів плану підписки.
- Live CLI-backend smoke тепер перевіряє той самий end-to-end потік для Claude, Codex і Gemini: текстовий хід, хід класифікації зображення, а потім виклик інструмента MCP `cron`, перевірений через gateway CLI.
- Типовий smoke Claude також змінює сеанс із Sonnet на Opus і перевіряє, що відновлений сеанс усе ще пам’ятає попередню нотатку.
## Живі: ACP bind smoke (`/acp spawn ... --bind here`)
## Live: ACP bind smoke (`/acp spawn ... --bind here`)
- Тест: `src/gateway/gateway-acp-bind.live.test.ts`
- Мета: перевірити реальний потік прив’язування розмови ACP із live ACP-агентом:
- Мета: перевірити справжній потік прив’язування розмови ACP із живим агентом ACP:
- надіслати `/acp spawn <agent> --bind here`
- прив’язати синтетичну розмову message-channel на місці
- прив’язати синтетичну розмову каналу повідомлень на місці
- надіслати звичайне подальше повідомлення в тій самій розмові
- перевірити, що подальше повідомлення потрапляє в transcript прив’язаного сеансу ACP
- перевірити, що подальше повідомлення потрапляє до транскрипта прив’язаної сесії 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 DM
- ACP-бекенд: `acpx`
- Типові значення:
- агенти ACP у Docker: `claude,codex,gemini`
- агент ACP для прямого `pnpm test:live ...`: `claude`
- синтетичний канал: контекст розмови у стилі Slack DM
- бекенд ACP: `acpx`
- Перевизначення:
- `OPENCLAW_LIVE_ACP_BIND_AGENT=claude`
- `OPENCLAW_LIVE_ACP_BIND_AGENT=codex`
@ -240,9 +240,9 @@ pnpm test:docker:live-cli-backend:gemini
- `OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1`
- `OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.5`
- Примітки:
- Ця лінія використовує поверхню gateway `chat.send` з admin-only синтетичними полями originating-route, щоб тести могли приєднувати контекст message-channel без імітації зовнішньої доставки.
- Коли `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND` не задано, тест використовує вбудований реєстр агентів embedded `acpx` plugin для вибраного агента ACP harness.
- Створення bound-session cron MCP за замовчуванням виконується best-effort, оскільки зовнішні ACP harnesses можуть скасувати MCP-виклики після того, як bind/image proof уже пройшов; задайте `OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1`, щоб зробити цей post-bind cron probe суворим.
- Ця лінія використовує поверхню Gateway `chat.send` з адміністративними полями синтетичного вихідного маршруту, щоб тести могли приєднувати контекст каналу повідомлень без удавання зовнішньої доставки.
- Коли `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND` не задано, тест використовує вбудований реєстр агентів вбудованого Plugin `acpx` для вибраного агента ACP harness.
- Створення Cron MCP для прив’язаної сесії типово виконується за принципом best-effort, бо зовнішні ACP harness можуть скасовувати виклики MCP після проходження перевірки прив’язування/зображення; задайте `OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1`, щоб зробити цю перевірку Cron після прив’язування суворою.
Приклад:
@ -270,39 +270,38 @@ pnpm test:docker:live-acp-bind:opencode
Примітки Docker:
- Docker runner розташований у `scripts/test-live-acp-bind-docker.sh`.
- За замовчуванням він послідовно запускає ACP bind smoke проти агрегованих live CLI-агентів: `claude`, `codex`, потім `gemini`.
- Runner Docker розташований у `scripts/test-live-acp-bind-docker.sh`.
- Типово він послідовно запускає smoke ACP bind для сукупних живих агентів 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`, щоб звузити матрицю.
- Він завантажує `~/.profile`, підготовлює відповідні матеріали CLI auth у контейнері, а потім встановлює запитаний live CLI (`@anthropic-ai/claude-code`, `@openai/codex`, Factory Droid через `https://app.factory.ai/cli`, `@google/gemini-cli` або `opencode-ai`), якщо його бракує. Сам ACP-бекенд — це bundled embedded пакет `acpx/runtime` з plugin `acpx`.
- Варіант Droid Docker підготовлює `~/.factory` для налаштувань, передає `FACTORY_API_KEY` і потребує цей API-ключ, оскільки локальна Factory OAuth/keyring auth не є переносимою в контейнер. Він використовує вбудований запис реєстру ACPX `droid exec --output-format acp`.
- Варіант OpenCode Docker — це сувора single-agent regression lane. Він записує тимчасову модель за замовчуванням `OPENCODE_CONFIG_CONTENT` з `OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL` (за замовчуванням `opencode/kimi-k2.6`) після завантаження `~/.profile`, а `pnpm test:docker:live-acp-bind:opencode` вимагає transcript прив’язаного assistant замість прийняття загального post-bind skip.
- Прямі виклики `acpx` CLI — лише ручний/обхідний шлях для порівняння поведінки поза Gateway. Docker ACP bind smoke перевіряє embedded `acpx` runtime backend OpenClaw.
- Він підключає `~/.profile`, розміщує відповідні матеріали автентифікації CLI в контейнері, а потім, якщо бракує, встановлює запитаний живий CLI (`@anthropic-ai/claude-code`, `@openai/codex`, Factory Droid через `https://app.factory.ai/cli`, `@google/gemini-cli` або `opencode-ai`). Сам бекенд ACP є вбудованим пакетом `acpx/runtime` із Plugin `acpx`.
- Варіант Docker для Droid розміщує `~/.factory` для налаштувань, передає `FACTORY_API_KEY` і вимагає цей API-ключ, бо локальна автентифікація Factory через OAuth/keyring не переноситься в контейнер. Він використовує вбудований запис реєстру ACPX `droid exec --output-format acp`.
- Варіант Docker для OpenCode є суворою регресійною лінією з одним агентом. Він записує тимчасову типову модель `OPENCODE_CONFIG_CONTENT` з `OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL` (типово `opencode/kimi-k2.6`) після підключення `~/.profile`, а `pnpm test:docker:live-acp-bind:opencode` вимагає прив’язаний транскрипт асистента замість прийняття загального пропуску після прив’язування.
- Прямі виклики CLI `acpx` є лише ручним/обхідним шляхом для порівняння поведінки поза Gateway. Docker smoke ACP bind перевіряє вбудований бекенд runtime `acpx` OpenClaw.
## Live: Codex app-server harness smoke
## Live: smoke app-server harness Codex
- Мета: перевірити Codex harness, що належить plugin, через звичайний gateway
метод `agent`:
- завантажити bundled plugin `codex`
- Мета: перевірити Codex harness, що належить Plugin, через звичайний метод gateway
`agent`:
- завантажити вбудований Plugin `codex`
- вибрати `OPENCLAW_AGENT_RUNTIME=codex`
- надіслати перший gateway agent turn до `openai/gpt-5.5` із примусово заданим Codex harness
- надіслати другий turn до того самого сеансу OpenClaw і перевірити, що app-server
thread може відновитися
- виконати `/codex status` і `/codex models` через той самий gateway command
path
- опційно запустити два Guardian-reviewed escalated shell probes: одну нешкідливу
команду, яку слід схвалити, і одне фейкове завантаження секрету, яке слід
відхилити, щоб агент перепитав
- надіслати перший хід агента gateway до `openai/gpt-5.5` із примусово заданим Codex harness
- надіслати другий хід до тієї самої сесії OpenClaw і перевірити, що потік app-server
може відновитися
- виконати `/codex status` і `/codex models` через той самий шлях команди gateway
- необов’язково виконати дві перевірені Guardian підвищені shell-перевірки: одну нешкідливу
команду, яку має бути схвалено, і одне фальшиве завантаження секрету, яке має бути
відхилено, щоб агент поставив запитання у відповідь
- Тест: `src/gateway/gateway-codex-harness.live.test.ts`
- Увімкнення: `OPENCLAW_LIVE_CODEX_HARNESS=1`
- Модель за замовчуванням: `openai/gpt-5.5`
- Опційний image probe: `OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1`
- Опційний MCP/tool probe: `OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1`
- Опційний Guardian probe: `OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1`
- Smoke задає `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб зламаний Codex
harness не міг пройти, тихо повернувшись до PI.
- Auth: Codex app-server auth з локального входу Codex subscription. Docker
smokes також можуть надавати `OPENAI_API_KEY` для non-Codex probes, коли застосовно,
плюс опційно скопійовані `~/.codex/auth.json` і `~/.codex/config.toml`.
- Типова модель: `openai/gpt-5.5`
- Необов’язкова перевірка зображення: `OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1`
- Необов’язкова перевірка MCP/інструмента: `OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1`
- Необов’язкова перевірка Guardian: `OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1`
- Smoke задає `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб несправний Codex
harness не міг пройти через мовчазний fallback до PI.
- Автентифікація: автентифікація app-server Codex з локального входу в підписку Codex. Docker
smokes також можуть надавати `OPENAI_API_KEY` для перевірок не-Codex, коли застосовно,
плюс необов’язково скопійовані `~/.codex/auth.json` і `~/.codex/config.toml`.
Локальний рецепт:
@ -325,22 +324,21 @@ pnpm test:docker:live-codex-harness
Примітки Docker:
- Docker runner розташований у `scripts/test-live-codex-harness-docker.sh`.
- Він завантажує змонтований `~/.profile`, передає `OPENAI_API_KEY`, копіює файли Codex CLI
auth, якщо вони наявні, встановлює `@openai/codex` у доступний для запису змонтований npm
prefix, підготовлює дерево вихідного коду, а потім запускає лише live-тест Codex-harness.
- Docker за замовчуванням вмикає image, MCP/tool і Guardian probes. Задайте
`OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0` або
`OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0` або
`OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0`, коли потрібен вужчий debug
run.
- Docker також експортує `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, відповідно до live
test config, щоб legacy aliases або PI fallback не могли приховати регресію
Codex harness.
- Runner Docker розташований у `scripts/test-live-codex-harness-docker.sh`.
- Він підключає змонтований `~/.profile`, передає `OPENAI_API_KEY`, копіює файли автентифікації Codex CLI
за наявності, встановлює `@openai/codex` у доступний для запису змонтований префікс npm,
розміщує дерево вихідного коду, а потім запускає лише живий тест Codex-harness.
- 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 також експортує `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, відповідно до конфігурації живого
тесту, щоб застарілі псевдоніми або fallback PI не могли приховати регресію Codex harness.
### Рекомендовані live recipes
### Рекомендовані живі рецепти
Вузькі, явні allowlists — найшвидші й найменш flaky:
Вузькі, явні списки дозволеного найшвидші й найменш нестабільні:
- Одна модель, напряму (без gateway):
- `OPENCLAW_LIVE_MODELS="openai/gpt-5.5" pnpm test:live src/agents/models.profiles.live.test.ts`
@ -348,36 +346,36 @@ pnpm test:docker:live-codex-harness
- Одна модель, gateway smoke:
- `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`
- Tool calling у кількох providers:
- Виклики інструментів у кількох провайдерів:
- `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`
- Фокус на Google (Gemini API key + Antigravity):
- Gemini (API key): `OPENCLAW_LIVE_GATEWAY_MODELS="google/gemini-3-flash-preview" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`
- Фокус Google (API-ключ Gemini + Antigravity):
- Gemini (API-ключ): `OPENCLAW_LIVE_GATEWAY_MODELS="google/gemini-3-flash-preview" 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 adaptive thinking smoke:
- Якщо локальні ключі зберігаються в shell profile: `source ~/.profile`
- Gemini 3 dynamic default: `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 dynamic budget: `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`
- Якщо локальні ключі зберігаються в профілі shell: `source ~/.profile`
- Динамічне типове значення Gemini 3: `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: `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/...` використовує Gemini API (API key).
- `google-antigravity/...` використовує Antigravity OAuth bridge (endpoint агента у стилі Cloud Code Assist).
- `google-gemini-cli/...` використовує локальний Gemini CLI на вашій машині (окрема auth + особливості tooling).
- Gemini API vs Gemini CLI:
- API: OpenClaw викликає розміщений Google Gemini API через HTTP (API key / profile auth); це те, що більшість користувачів мають на увазі під “Gemini”.
- CLI: OpenClaw запускає локальний бінарник `gemini`; він має власну auth і може поводитися інакше (streaming/tool support/version skew).
- `google/...` використовує Gemini API (API-ключ).
- `google-antigravity/...` використовує міст Antigravity OAuth (endpoint агента в стилі Cloud Code Assist).
- `google-gemini-cli/...` використовує локальний Gemini CLI на вашій машині (окрема автентифікація + особливості інструментів).
- Gemini API проти Gemini CLI:
- API: OpenClaw викликає розміщений Google Gemini API через HTTP (API-ключ / автентифікація профілю); саме це більшість користувачів має на увазі під “Gemini”.
- CLI: OpenClaw запускає локальний бінарний файл `gemini` через shell; він має власну автентифікацію й може поводитися інакше (streaming/підтримка інструментів/розбіжність версій).
## Live: model matrix (що ми покриваємо)
## Live: матриця моделей (що ми покриваємо)
Немає фіксованого “CI model list” (live є opt-in), але це **рекомендовані** моделі для регулярного покриття на dev-машині з ключами.
Фіксованого “списку моделей CI” немає (live вмикається явно), але це **рекомендовані** моделі для регулярного покриття на машині розробника з ключами.
### Сучасний smoke set (tool calling + image)
### Сучасний smoke-набір (виклик інструментів + зображення)
Це запуск “common models”, який ми очікуємо підтримувати робочим:
Це запуск “поширених моделей”, який ми очікуємо підтримувати в робочому стані:
- OpenAI (non-Codex): `openai/gpt-5.5`
- OpenAI (не-Codex): `openai/gpt-5.5`
- OpenAI Codex OAuth: `openai-codex/gpt-5.5`
- Anthropic: `anthropic/claude-opus-4-6` (або `anthropic/claude-sonnet-4-6`)
- Google (Gemini API): `google/gemini-3.1-pro-preview` і `google/gemini-3-flash-preview` (уникайте старіших моделей Gemini 2.x)
@ -386,12 +384,12 @@ pnpm test:docker:live-codex-harness
- Z.AI (GLM): `zai/glm-5.1`
- MiniMax: `minimax/MiniMax-M2.7`
Запустіть gateway smoke з tools + image:
Запустіть gateway smoke з інструментами + зображенням:
`OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3-flash-preview,google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-flash,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`
### Базовий рівень: tool calling (Read + опційний Exec)
### Базовий рівень: виклик інструментів (Read + необов’язковий Exec)
Виберіть щонайменше одну на provider family:
Виберіть принаймні одну модель для кожної родини провайдерів:
- OpenAI: `openai/gpt-5.5`
- Anthropic: `anthropic/claude-opus-4-6` (або `anthropic/claude-sonnet-4-6`)
@ -400,46 +398,46 @@ pnpm test:docker:live-codex-harness
- Z.AI (GLM): `zai/glm-5.1`
- MiniMax: `minimax/MiniMax-M2.7`
Опційне додаткове покриття (добре мати):
Необов’язкове додаткове покриття (бажано мати):
- xAI: `xai/grok-4` (або найновіша доступна)
- Mistral: `mistral/`… (виберіть одну модель із підтримкою “tools”, яку ви маєте ввімкненою)
- xAI: `xai/grok-4.3` (або остання доступна)
- Mistral: `mistral/`… (виберіть одну модель із підтримкою “tools”, яку у вас увімкнено)
- Cerebras: `cerebras/`… (якщо маєте доступ)
- LM Studio: `lmstudio/`… (локально; tool calling залежить від API mode)
- LM Studio: `lmstudio/`… (локально; виклик інструментів залежить від режиму API)
### Vision: image send (attachment → multimodal message)
### Vision: надсилання зображення (вкладення → мультимодальне повідомлення)
Додайте щонайменше одну image-capable model до `OPENCLAW_LIVE_GATEWAY_MODELS` (Claude/Gemini/OpenAI vision-capable variants тощо), щоб перевірити image probe.
Додайте принаймні одну модель із підтримкою зображень до `OPENCLAW_LIVE_GATEWAY_MODELS` (варіанти Claude/Gemini/OpenAI з підтримкою vision тощо), щоб виконати перевірку зображення.
### Aggregators / alternate gateways
### Агрегатори / альтернативні gateway
Якщо у вас увімкнені ключі, ми також підтримуємо тестування через:
Якщо у вас увімкнено ключі, ми також підтримуємо тестування через:
- OpenRouter: `openrouter/...` (сотні моделей; використовуйте `openclaw models scan`, щоб знайти кандидатів із підтримкою tool+image)
- OpenCode: `opencode/...` для Zen і `opencode-go/...` для Go (auth через `OPENCODE_API_KEY` / `OPENCODE_ZEN_API_KEY`)
- OpenRouter: `openrouter/...` (сотні моделей; використовуйте `openclaw models scan`, щоб знайти кандидатів із підтримкою інструментів+зображень)
- OpenCode: `opencode/...` для Zen і `opencode-go/...` для Go (автентифікація через `OPENCODE_API_KEY` / `OPENCODE_ZEN_API_KEY`)
Інші providers, які можна включити до live matrix (якщо маєте creds/config):
Додаткові провайдери, яких можна включити в live-матрицю (якщо маєте облікові дані/конфігурацію):
- Built-in: `openai`, `openai-codex`, `anthropic`, `google`, `google-vertex`, `google-antigravity`, `google-gemini-cli`, `zai`, `openrouter`, `opencode`, `opencode-go`, `xai`, `groq`, `cerebras`, `mistral`, `github-copilot`
- Через `models.providers` (custom endpoints): `minimax` (cloud/API), плюс будь-який OpenAI/Anthropic-compatible proxy (LM Studio, vLLM, LiteLLM тощо)
- Вбудовані: `openai`, `openai-codex`, `anthropic`, `google`, `google-vertex`, `google-antigravity`, `google-gemini-cli`, `zai`, `openrouter`, `opencode`, `opencode-go`, `xai`, `groq`, `cerebras`, `mistral`, `github-copilot`
- Через `models.providers` (власні endpoints): `minimax` (хмара/API), плюс будь-який проксі, сумісний з OpenAI/Anthropic (LM Studio, vLLM, LiteLLM тощо)
<Tip>
Не hardcode "all models" у docs. Авторитетний список — це те, що `discoverModels(...)` повертає на вашій машині, плюс доступні ключі.
Не хардкодьте "all models" у документації. Авторитетний список — це те, що `discoverModels(...)` повертає на вашій машині, плюс доступні ключі.
</Tip>
## Облікові дані (ніколи не commit)
## Облікові дані (ніколи не комітьте)
Live tests знаходять облікові дані так само, як це робить CLI. Практичні наслідки:
Живі тести знаходять облікові дані так само, як це робить CLI. Практичні наслідки:
- Якщо CLI працює, live-тести мають знаходити ті самі ключі.
- Якщо live-тест повідомляє «no creds», налагоджуйте це так само, як налагоджували б `openclaw models list` / вибір моделі.
- Якщо live-тест повідомляє «no creds», налагоджуйте так само, як налагоджували б `openclaw models list` / вибір моделі.
- Профілі автентифікації для окремих агентів: `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (саме це означає “profile keys” у live-тестах)
- Профілі автентифікації для кожного агента: `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (саме це означає “profile keys” у live-тестах)
- Конфігурація: `~/.openclaw/openclaw.json` (або `OPENCLAW_CONFIG_PATH`)
- Каталог застарілого стану: `~/.openclaw/credentials/` (копіюється у підготовлений live-домашній каталог, коли наявний, але не є основним сховищем ключів профілів)
- Локальні live-запуски типово копіюють активну конфігурацію, файли `auth-profiles.json` для окремих агентів, застарілий каталог `credentials/` і підтримувані каталоги автентифікації зовнішніх CLI у тимчасовий тестовий домашній каталог; підготовлені live-домашні каталоги пропускають `workspace/` і `sandboxes/`, а перевизначення шляхів `agents.*.workspace` / `agentDir` вилучаються, щоб проби не зверталися до вашого реального робочого простору на хості.
- Каталог застарілого стану: `~/.openclaw/credentials/` (копіюється до проміжного live-домашнього каталогу, якщо присутній, але не є основним сховищем profile-key)
- Локальні live-запуски за замовчуванням копіюють активну конфігурацію, файли `auth-profiles.json` для кожного агента, застарілий каталог `credentials/` і підтримувані зовнішні каталоги автентифікації CLI до тимчасового тестового домашнього каталогу; проміжні live-домашні каталоги пропускають `workspace/` і `sandboxes/`, а перевизначення шляхів `agents.*.workspace` / `agentDir` вилучаються, щоб зондування не потрапляли у ваш реальний робочий простір хоста.
Якщо ви хочете покладатися на ключі середовища (наприклад, експортовані у вашому `~/.profile`), запускайте локальні тести після `source ~/.profile` або використовуйте наведені нижче Docker-запускачі (вони можуть монтувати `~/.profile` у контейнер).
Якщо ви хочете покладатися на env-ключі (наприклад, експортовані у вашому `~/.profile`), запускайте локальні тести після `source ~/.profile` або використовуйте Docker-ранери нижче (вони можуть монтувати `~/.profile` у контейнер).
## Deepgram live (транскрибування аудіо)
@ -459,19 +457,19 @@ Live tests знаходять облікові дані так само, як ц
- Обсяг:
- Перевіряє вбудовані шляхи comfy для зображень, відео та `music_generate`
- Пропускає кожну можливість, якщо `plugins.entries.comfy.config.<capability>` не налаштовано
- Корисно після змін у надсиланні workflow comfy, опитуванні, завантаженнях або реєстрації plugin
- Корисно після зміни надсилання workflow comfy, polling, завантажень або реєстрації plugin
## Image generation live
- Тест: `test/image-generation.runtime.live.test.ts`
- Команда: `pnpm test:live test/image-generation.runtime.live.test.ts`
- Обв’язка: `pnpm test:live:media image`
- Harness: `pnpm test:live:media image`
- Обсяг:
- Перелічує кожен зареєстрований provider plugin для генерації зображень
- Завантажує відсутні змінні середовища провайдера з вашого login shell (`~/.profile`) перед пробою
- Типово використовує live/API-ключі із середовища перед збереженими профілями автентифікації, тому застарілі тестові ключі в `auth-profiles.json` не маскують реальні облікові дані shell
- Перелічує кожен зареєстрований plugin провайдера генерації зображень
- Завантажує відсутні env-змінні провайдера з вашої login shell (`~/.profile`) перед зондуванням
- За замовчуванням використовує live/env API-ключі перед збереженими профілями автентифікації, щоб застарілі тестові ключі в `auth-profiles.json` не маскували реальні облікові дані shell
- Пропускає провайдерів без придатної автентифікації/профілю/моделі
- Запускає кожного налаштованого провайдера через спільний runtime генерації зображень:
- Проганяє кожного налаштованого провайдера через спільний runtime генерації зображень:
- `<provider>:generate`
- `<provider>:edit`, коли провайдер заявляє підтримку редагування
- Поточні охоплені вбудовані провайдери:
@ -489,7 +487,7 @@ Live tests знаходять облікові дані так само, як ц
- `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`, щоб примусово використовувати автентифікацію зі сховища профілів та ігнорувати перевизначення лише із середовища
- `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати автентифікацію зі сховища профілів та ігнорувати перевизначення лише через env
Для поставленого CLI-шляху додайте smoke `infer` після успішного проходження live-тесту провайдера/runtime:
@ -503,23 +501,23 @@ openclaw infer image generate \
--json
```
Це охоплює розбір аргументів CLI, визначення конфігурації/типового агента, активацію вбудованих plugin, спільний runtime генерації зображень і live-запит до провайдера. Очікується, що залежності plugin будуть наявні перед завантаженням runtime.
Це охоплює розбір аргументів CLI, визначення конфігурації/default-agent, активацію вбудованого plugin, спільний runtime генерації зображень і live-запит до провайдера. Очікується, що залежності Plugin будуть наявні до завантаження runtime.
## Music generation 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`
- Harness: `pnpm test:live:media music`
- Обсяг:
- Перевіряє спільний шлях вбудованого провайдера генерації музики
- Перевіряє спільний вбудований шлях провайдера генерації музики
- Наразі охоплює Google і MiniMax
- Завантажує змінні середовища провайдера з вашого login shell (`~/.profile`) перед пробою
- Типово використовує live/API-ключі із середовища перед збереженими профілями автентифікації, тому застарілі тестові ключі в `auth-profiles.json` не маскують реальні облікові дані shell
- Завантажує env-змінні провайдера з вашої login shell (`~/.profile`) перед зондуванням
- За замовчуванням використовує live/env API-ключі перед збереженими профілями автентифікації, щоб застарілі тестові ключі в `auth-profiles.json` не маскували реальні облікові дані shell
- Пропускає провайдерів без придатної автентифікації/профілю/моделі
- Запускає обидва заявлені режими runtime, коли вони доступні:
- Запускає обидва заявлені режими runtime, коли доступні:
- `generate` із введенням лише prompt
- `edit`, коли провайдер заявляє `capabilities.edit.enabled`
- Поточне покриття спільної lane:
- Поточне охоплення shared-lane:
- `google`: `generate`, `edit`
- `minimax`: `generate`
- `comfy`: окремий Comfy live-файл, не цей спільний sweep
@ -527,51 +525,51 @@ openclaw infer image generate \
- `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`, щоб примусово використовувати автентифікацію зі сховища профілів та ігнорувати перевизначення лише із середовища
- `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати автентифікацію зі сховища профілів та ігнорувати перевизначення лише через env
## Video generation 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`
- Harness: `pnpm test:live:media video`
- Обсяг:
- Перевіряє спільний шлях вбудованого провайдера генерації відео
- Типово використовує release-safe smoke-шлях: не-FAL провайдери, один запит text-to-video на провайдера, односекундний prompt з омаром і обмеження операції для кожного провайдера з `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS` (`180000` типово)
- Типово пропускає FAL, бо затримка черги на боці провайдера може домінувати час релізу; передайте `--video-providers fal` або `OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"`, щоб запустити його явно
- Завантажує змінні середовища провайдера з вашого login shell (`~/.profile`) перед пробою
- Типово використовує live/API-ключі із середовища перед збереженими профілями автентифікації, тому застарілі тестові ключі в `auth-profiles.json` не маскують реальні облікові дані shell
- Перевіряє спільний вбудований шлях провайдера генерації відео
- За замовчуванням використовує release-safe smoke-шлях: провайдери не FAL, один text-to-video-запит на провайдера, односекундний lobster prompt і ліміт операцій на провайдера з `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS` (`180000` за замовчуванням)
- За замовчуванням пропускає FAL, бо затримка черги на боці провайдера може домінувати в часі релізу; передайте `--video-providers fal` або `OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"`, щоб запустити його явно
- Завантажує env-змінні провайдера з вашої login shell (`~/.profile`) перед зондуванням
- За замовчуванням використовує live/env API-ключі перед збереженими профілями автентифікації, щоб застарілі тестові ключі в `auth-profiles.json` не маскували реальні облікові дані shell
- Пропускає провайдерів без придатної автентифікації/профілю/моделі
- Типово запускає лише `generate`
- Встановіть `OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1`, щоб також запускати заявлені режими transform, коли вони доступні:
- `imageToVideo`, коли провайдер заявляє `capabilities.imageToVideo.enabled`, а вибраний провайдер/модель приймає локальне зображення з buffer-backed input у спільному sweep
- `videoToVideo`, коли провайдер заявляє `capabilities.videoToVideo.enabled`, а вибраний провайдер/модель приймає локальне відео з buffer-backed input у спільному sweep
- За замовчуванням запускає лише `generate`
- Установіть `OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1`, щоб також запускати заявлені режими transform, коли доступні:
- `imageToVideo`, коли провайдер заявляє `capabilities.imageToVideo.enabled` і вибраний провайдер/модель приймає buffer-backed локальне зображення у спільному sweep
- `videoToVideo`, коли провайдер заявляє `capabilities.videoToVideo.enabled` і вибраний провайдер/модель приймає buffer-backed локальне відео у спільному sweep
- Поточні заявлені, але пропущені провайдери `imageToVideo` у спільному sweep:
- `vydra`, бо вбудований `veo3` є лише text-only, а вбудований `kling` потребує віддаленого URL зображення
- Покриття Vydra, специфічне для провайдера:
- `vydra`, бо вбудований `veo3` підтримує лише text-only, а вбудований `kling` потребує віддаленого URL зображення
- Специфічне для провайдера охоплення Vydra:
- `OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts`
- цей файл запускає `veo3` text-to-video плюс lane `kling`, яка типово використовує fixture із віддаленим URL зображення
- Поточне live-покриття `videoToVideo`:
- цей файл запускає `veo3` text-to-video плюс lane `kling`, який за замовчуванням використовує fixture віддаленого URL зображення
- Поточне live-охоплення `videoToVideo`:
- лише `runway`, коли вибрана модель — `runway/gen4_aleph`
- Поточні заявлені, але пропущені провайдери `videoToVideo` у спільному sweep:
- `alibaba`, `qwen`, `xai`, бо ці шляхи наразі потребують віддалених `http(s)` / MP4 reference URL
- `google`, бо поточна спільна lane Gemini/Veo використовує локальне buffer-backed input, і цей шлях не приймається у спільному sweep
- `openai`, бо поточній спільній lane бракує гарантій доступу до video inpaint/remix, специфічних для org
- `google`, бо поточний спільний lane Gemini/Veo використовує локальне buffer-backed введення, і цей шлях не приймається у спільному sweep
- `openai`, бо поточний спільний lane не має гарантій доступу до org-specific video inpaint/remix
- Необов’язкове звуження:
- `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=""`, щоб включити кожного провайдера в типовий sweep, зокрема FAL
- `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000`, щоб зменшити обмеження кожної операції провайдера для агресивного smoke-запуску
- `OPENCLAW_LIVE_VIDEO_GENERATION_SKIP_PROVIDERS=""`, щоб включити кожного провайдера в default sweep, включно з FAL
- `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000`, щоб зменшити ліміт операції кожного провайдера для агресивного smoke-запуску
- Необов’язкова поведінка автентифікації:
- `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати автентифікацію зі сховища профілів та ігнорувати перевизначення лише із середовища
- `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати автентифікацію зі сховища профілів та ігнорувати перевизначення лише через env
## Media live harness
- Команда: `pnpm test:live:media`
- Призначення:
- Запускає спільні live-набори для зображень, музики та відео через одну repo-native entrypoint
- Автоматично завантажує відсутні змінні середовища провайдера з `~/.profile`
- Типово автоматично звужує кожен набір до провайдерів, які наразі мають придатну автентифікацію
- Повторно використовує `scripts/test-live.mjs`, тому поведінка Heartbeat і quiet-mode лишається узгодженою
- Запускає спільні image, music і video live-набори через одну repo-native точку входу
- Автоматично завантажує відсутні env-змінні провайдера з `~/.profile`
- За замовчуванням автоматично звужує кожен набір до провайдерів, які наразі мають придатну автентифікацію
- Повторно використовує `scripts/test-live.mjs`, тож поведінка Heartbeat і quiet-mode лишається узгодженою
- Приклади:
- `pnpm test:live:media`
- `pnpm test:live:media image video --providers openai,google,minimax`
@ -580,4 +578,4 @@ openclaw infer image generate \
## Пов’язане
- [Тестування](/uk/help/testing) — unit-, інтеграційні, QA- та Docker-набори
- [Тестування](/uk/help/testing) — unit, integration, QA та Docker-набори

View File

@ -5,34 +5,34 @@ read_when:
summary: Використовуйте моделі xAI Grok в OpenClaw
title: xAI
x-i18n:
generated_at: "2026-04-25T17:33:41Z"
model: gpt-5.4
generated_at: "2026-05-02T01:45:06Z"
model: gpt-5.5
provider: openai
source_hash: 420f60d5e80964b926e50cf74cf414d11de1c30d3a4aa8917f1861e0d56ef5b9
source_hash: 9366d6a053fb515d843bbb984ee0fce2eb342a022a6d9aa60df983fc0f8d5745
source_path: providers/xai.md
workflow: 15
workflow: 16
---
OpenClaw постачається з вбудованим Plugin провайдера `xai` для моделей Grok.
OpenClaw постачається з вбудованим плагіном провайдера `xai` для моделей Grok.
## Початок роботи
<Steps>
<Step title="Створіть ключ API">
Створіть ключ API у [консолі xAI](https://console.x.ai/).
<Step title="Create an API key">
Створіть API-ключ у [консолі xAI](https://console.x.ai/).
</Step>
<Step title="Установіть ключ API">
Установіть `XAI_API_KEY` або виконайте:
<Step title="Set your API key">
Задайте `XAI_API_KEY` або виконайте:
```bash
openclaw onboard --auth-choice xai-api-key
```
</Step>
<Step title="Виберіть модель">
<Step title="Pick a model">
```json5
{
agents: { defaults: { model: { primary: "xai/grok-4" } } },
agents: { defaults: { model: { primary: "xai/grok-4.3" } } },
}
```
</Step>
@ -40,92 +40,93 @@ OpenClaw постачається з вбудованим Plugin провайд
<Note>
OpenClaw використовує xAI Responses API як вбудований транспорт xAI. Той самий
`XAI_API_KEY` також може використовуватися для Grok-backed `web_search`, first-class `x_search`
та віддаленого `code_execution`.
Якщо ви зберігаєте ключ xAI в `plugins.entries.xai.config.webSearch.apiKey`,
вбудований провайдер моделей xAI також повторно використовує цей ключ як резервний варіант.
Налаштування `code_execution` розміщується в `plugins.entries.xai.config.codeExecution`.
`XAI_API_KEY` також може забезпечувати `web_search` на базі Grok, першокласний
`x_search` і віддалене `code_execution`.
Якщо ви зберігаєте ключ xAI у `plugins.entries.xai.config.webSearch.apiKey`,
вбудований провайдер моделей xAI також повторно використовує цей ключ як резервний.
Налаштування `code_execution` розміщено в `plugins.entries.xai.config.codeExecution`.
</Note>
## Вбудований каталог
OpenClaw включає ці сімейства моделей xAI із коробки:
OpenClaw одразу містить такі сімейства моделей xAI:
| Сімейство | Ідентифікатори моделей |
| Сімейство | Ідентифікатори моделей |
| -------------- | ------------------------------------------------------------------------ |
| Grok 3 | `grok-3`, `grok-3-fast`, `grok-3-mini`, `grok-3-mini-fast` |
| Grok 4.3 | `grok-4.3` |
| Grok 4 | `grok-4`, `grok-4-0709` |
| Grok 4 Fast | `grok-4-fast`, `grok-4-fast-non-reasoning` |
| Grok 4.1 Fast | `grok-4-1-fast`, `grok-4-1-fast-non-reasoning` |
| Grok 4.20 Beta | `grok-4.20-beta-latest-reasoning`, `grok-4.20-beta-latest-non-reasoning` |
| Grok Code | `grok-code-fast-1` |
Plugin також виконує forward-resolve новіших ідентифікаторів `grok-4*` і `grok-code-fast*`, коли
вони дотримуються тієї самої форми API.
Плагін також перенаправляє новіші ідентифікатори `grok-4*` і `grok-code-fast*`,
коли вони мають таку саму форму API.
<Tip>
`grok-4-fast`, `grok-4-1-fast` і варіанти `grok-4.20-beta-*` — це
поточні посилання Grok із підтримкою зображень у вбудованому каталозі.
`grok-4.3`, `grok-4-fast`, `grok-4-1-fast` і варіанти `grok-4.20-beta-*`
є поточними посиланнями Grok із підтримкою зображень у вбудованому каталозі.
</Tip>
## Покриття можливостей OpenClaw
## Покриття функцій OpenClaw
Вбудований Plugin зіставляє поточну публічну поверхню API xAI зі спільними
контрактами провайдера та інструментів OpenClaw. Можливості, які не вписуються у спільний контракт
(наприклад, потоковий TTS і voice у реальному часі), не відкриваються — див. таблицю
нижче.
Вбудований плагін відображає поточну публічну поверхню API xAI на спільні
контракти провайдерів та інструментів OpenClaw. Можливості, які не вписуються
у спільний контракт (наприклад, потоковий TTS і голос у реальному часі), не
експонуються — див. таблицю нижче.
| Можливість xAI | Поверхня OpenClaw | Статус |
| -------------------------- | ---------------------------------------- | ------------------------------------------------------------------- |
| Чат / Responses | провайдер моделей `xai/<model>` | Так |
| Вебпошук на стороні сервера| провайдер `web_search` `grok` | Так |
| Пошук X на стороні сервера | інструмент `x_search` | Так |
| Виконання коду на стороні сервера | інструмент `code_execution` | Так |
| Зображення | `image_generate` | Так |
| Відео | `video_generate` | Так |
| Пакетне перетворення тексту на мовлення | `messages.tts.provider: "xai"` / `tts` | Так |
| Потоковий TTS | — | Не відкрито; контракт TTS OpenClaw повертає завершені аудіобуфери |
| Пакетне перетворення мовлення на текст | `tools.media.audio` / розуміння медіа | Так |
| Потокове перетворення мовлення на текст | Voice Call `streaming.provider: "xai"` | Так |
| Мовлення в реальному часі | — | Ще не відкрито; інший контракт сеансу/WebSocket |
| Файли / пакети | Лише сумісність із Generic model API | Не є first-class інструментом OpenClaw |
| Можливість xAI | Поверхня OpenClaw | Стан |
| -------------------------- | ----------------------------------------- | ------------------------------------------------------------------- |
| Chat / Responses | провайдер моделей `xai/<model>` | Так |
| Серверний вебпошук | провайдер `web_search` `grok` | Так |
| Серверний пошук X | інструмент `x_search` | Так |
| Серверне виконання коду | інструмент `code_execution` | Так |
| Зображення | `image_generate` | Так |
| Відео | `video_generate` | Так |
| Пакетний text-to-speech | `messages.tts.provider: "xai"` / `tts` | Так |
| Потоковий TTS | — | Не експонується; контракт TTS OpenClaw повертає повні аудіобуфери |
| Пакетний speech-to-text | `tools.media.audio` / розуміння медіа | Так |
| Потоковий speech-to-text | Voice Call `streaming.provider: "xai"` | Так |
| Голос у реальному часі | — | Ще не експонується; інший контракт сеансу/WebSocket |
| Файли / пакети | Лише сумісність із загальним API моделей | Не першокласний інструмент OpenClaw |
<Note>
OpenClaw використовує REST API xAI для зображень/відео/TTS/STT для генерації медіа,
мовлення та пакетної транскрипції, потоковий WebSocket STT xAI для живої
транскрипції голосових дзвінків, а також Responses API для моделей, пошуку та
інструментів виконання коду. Можливості, яким потрібні інші контракти OpenClaw, такі як
сеанси Realtime voice, документуються тут як можливості upstream, а не як
прихована поведінка Plugin.
OpenClaw використовує REST API xAI для зображень/відео/TTS/STT для генерації
медіа, мовлення та пакетної транскрипції, потоковий WebSocket STT xAI для живої
транскрипції голосових викликів і Responses API для моделей, пошуку та
інструментів виконання коду. Функції, яким потрібні інші контракти OpenClaw,
як-от сеанси голосу в реальному часі, задокументовано тут як можливості upstream,
а не як приховану поведінку плагіна.
</Note>
### Зіставлення швидкого режиму
### Зіставлення Fast-режиму
`/fast on` або `agents.defaults.models["xai/<model>"].params.fastMode: true`
перезаписує нативні запити xAI так:
переписує нативні запити xAI так:
| Вихідна модель | Ціль швидкого режиму |
| -------------- | -------------------- |
| `grok-3` | `grok-3-fast` |
| `grok-3-mini` | `grok-3-mini-fast` |
| `grok-4` | `grok-4-fast` |
| `grok-4-0709` | `grok-4-fast` |
| Початкова модель | Ціль Fast-режиму |
| ---------------- | ----------------- |
| `grok-3` | `grok-3-fast` |
| `grok-3-mini` | `grok-3-mini-fast` |
| `grok-4` | `grok-4-fast` |
| `grok-4-0709` | `grok-4-fast` |
### Застарілі псевдоніми сумісності
Застарілі псевдоніми все ще нормалізуються до канонічних вбудованих ідентифікаторів:
Застарілі псевдоніми й надалі нормалізуються до канонічних вбудованих ідентифікаторів:
| Застарілий псевдонім | Канонічний ідентифікатор |
| Застарілий псевдонім | Канонічний ідентифікатор |
| ------------------------- | ------------------------------------- |
| `grok-4-fast-reasoning` | `grok-4-fast` |
| `grok-4-1-fast-reasoning` | `grok-4-1-fast` |
| `grok-4.20-reasoning` | `grok-4.20-beta-latest-reasoning` |
| `grok-4.20-non-reasoning` | `grok-4.20-beta-latest-non-reasoning` |
## Можливості
## Функції
<AccordionGroup>
<Accordion title="Вебпошук">
<Accordion title="Web search">
Вбудований провайдер вебпошуку `grok` також використовує `XAI_API_KEY`:
```bash
@ -134,27 +135,28 @@ OpenClaw використовує REST API xAI для зображень/від
</Accordion>
<Accordion title="Генерація відео">
Вбудований Plugin `xai` реєструє генерацію відео через спільний
<Accordion title="Video generation">
Вбудований плагін `xai` реєструє генерацію відео через спільний
інструмент `video_generate`.
- Типова модель відео: `xai/grok-imagine-video`
- Стандартна модель відео: `xai/grok-imagine-video`
- Режими: text-to-video, image-to-video, генерація reference-image, віддалене
редагування відео та віддалене розширення відео
- Співвідношення сторін: `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3`
- Роздільні здатності: `480P`, `720P`
- Тривалість: 1-15 секунд для generation/image-to-video, 1-10 секунд при
використанні ролей `reference_image`, 2-10 секунд для розширення
- Генерація reference-image: установіть `imageRoles` у `reference_image` для
- Тривалість: 1-15 секунд для генерації/image-to-video, 1-10 секунд під час
використання ролей `reference_image`, 2-10 секунд для розширення
- Генерація reference-image: задайте `imageRoles` як `reference_image` для
кожного наданого зображення; xAI приймає до 7 таких зображень
<Warning>
Локальні відеобуфери не приймаються. Використовуйте віддалені URL `http(s)` для
входів редагування/розширення відео. image-to-video приймає локальні буфери зображень, оскільки
OpenClaw може кодувати їх як URL даних для xAI.
Локальні відеобуфери не приймаються. Використовуйте віддалені URL `http(s)`
для вхідних даних редагування/розширення відео. Image-to-video приймає
локальні буфери зображень, оскільки OpenClaw може закодувати їх як data URL
для xAI.
</Warning>
Щоб використовувати xAI як типового провайдера відео:
Щоб використовувати xAI як стандартного постачальника відео:
```json5
{
@ -169,30 +171,30 @@ OpenClaw використовує REST API xAI для зображень/від
```
<Note>
Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента,
вибір провайдера та поведінку резервного перемикання.
Див. [Генерація відео](/uk/tools/video-generation) щодо спільних параметрів інструмента,
вибору постачальника та поведінки перемикання в разі відмови.
</Note>
</Accordion>
<Accordion title="Генерація зображень">
Вбудований Plugin `xai` реєструє генерацію зображень через спільний
Вбудований `xai` plugin реєструє генерацію зображень через спільний
інструмент `image_generate`.
- Типова модель зображень: `xai/grok-imagine-image`
- Стандартна модель зображень: `xai/grok-imagine-image`
- Додаткова модель: `xai/grok-imagine-image-pro`
- Режими: text-to-image і редагування reference-image
- Вхідні reference: одне `image` або до п’яти `images`
- Режими: текст-у-зображення та редагування за референсним зображенням
- Референсні вхідні дані: одне `image` або до п’яти `images`
- Співвідношення сторін: `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `2:3`, `3:2`
- Роздільні здатності: `1K`, `2K`
- Роздільності: `1K`, `2K`
- Кількість: до 4 зображень
OpenClaw запитує в xAI відповіді зображень `b64_json`, щоб згенеровані медіа могли
зберігатися та доставлятися через звичайний шлях вкладень каналу. Локальні
reference-зображення перетворюються на URL даних; віддалені reference `http(s)`
OpenClaw запитує в xAI відповіді зображень у форматі `b64_json`, щоб згенеровані медіа можна було
зберігати й доставляти через звичайний шлях вкладень каналу. Локальні
референсні зображення перетворюються на data URLs; віддалені посилання `http(s)`
передаються без змін.
Щоб використовувати xAI як типового провайдера зображень:
Щоб використовувати xAI як стандартного постачальника зображень:
```json5
{
@ -207,26 +209,26 @@ OpenClaw використовує REST API xAI для зображень/від
```
<Note>
xAI також документує `quality`, `mask`, `user` і додаткові нативні співвідношення
сторін, такі як `1:2`, `2:1`, `9:20` і `20:9`. OpenClaw сьогодні передає лише
спільні міжпровайдерні елементи керування зображеннями; непідтримувані нативні параметри
навмисно не відкриваються через `image_generate`.
xAI також документує `quality`, `mask`, `user` і додаткові нативні співвідношення,
такі як `1:2`, `2:1`, `9:20` і `20:9`. Наразі OpenClaw передає лише
спільні міжпостачальницькі елементи керування зображеннями; непідтримувані параметри,
притаманні лише нативному інтерфейсу, навмисно не експонуються через `image_generate`.
</Note>
</Accordion>
<Accordion title="Перетворення тексту на мовлення">
Вбудований Plugin `xai` реєструє перетворення тексту на мовлення через спільну
поверхню провайдера `tts`.
<Accordion title="Текст-у-мовлення">
Вбудований `xai` plugin реєструє текст-у-мовлення через спільну поверхню
постачальника `tts`.
- Голоси: `eve`, `ara`, `rex`, `sal`, `leo`, `una`
- Типовий голос: `eve`
- Стандартний голос: `eve`
- Формати: `mp3`, `wav`, `pcm`, `mulaw`, `alaw`
- Мова: код BCP-47 або `auto`
- Швидкість: нативне перевизначення швидкості провайдера
- Швидкість: нативне перевизначення швидкості постачальника
- Нативний формат голосових нотаток Opus не підтримується
Щоб використовувати xAI як типового провайдера TTS:
Щоб використовувати xAI як стандартного постачальника TTS:
```json5
{
@ -244,25 +246,25 @@ OpenClaw використовує REST API xAI для зображень/від
```
<Note>
OpenClaw використовує пакетний ендпоінт xAI `/v1/tts`. xAI також пропонує потоковий TTS
через WebSocket, але контракт провайдера мовлення OpenClaw наразі очікує
OpenClaw використовує пакетний endpoint xAI `/v1/tts`. xAI також пропонує потоковий TTS
через WebSocket, але контракт постачальника мовлення OpenClaw наразі очікує
повний аудіобуфер перед доставленням відповіді.
</Note>
</Accordion>
<Accordion title="Перетворення мовлення на текст">
Вбудований Plugin `xai` реєструє пакетне перетворення мовлення на текст через
поверхню транскрипції для розуміння медіа в OpenClaw.
<Accordion title="Мовлення-у-текст">
Вбудований `xai` plugin реєструє пакетне мовлення-у-текст через поверхню
транскрибування для розуміння медіа OpenClaw.
- Типова модель: `grok-stt`
- Ендпоінт: xAI REST `/v1/stt`
- Шлях введення: multipart-завантаження аудіофайлу
- Підтримується в OpenClaw всюди, де транскрипція вхідного аудіо використовує
`tools.media.audio`, включно з сегментами голосових каналів Discord і
- Стандартна модель: `grok-stt`
- Endpoint: xAI REST `/v1/stt`
- Шлях введення: завантаження аудіофайлу multipart
- Підтримується OpenClaw усюди, де транскрибування вхідного аудіо використовує
`tools.media.audio`, включно із сегментами голосових каналів Discord і
аудіовкладеннями каналів
Щоб примусово використовувати xAI для транскрипції вхідного аудіо:
Щоб примусово використовувати xAI для транскрибування вхідного аудіо:
```json5
{
@ -282,25 +284,25 @@ OpenClaw використовує REST API xAI для зображень/від
}
```
Мову можна передавати через спільну конфігурацію аудіомедіа або в запиті
транскрипції для окремого виклику. Підказки prompt приймаються спільною поверхнею OpenClaw,
але інтеграція xAI REST STT передає лише файл, модель і
мову, оскільки саме вони чисто зіставляються з поточним публічним ендпоінтом xAI.
Мову можна надати через спільну конфігурацію аудіомедіа або через запит
транскрибування для окремого виклику. Підказки prompt приймаються спільною поверхнею
OpenClaw, але інтеграція xAI REST STT передає лише файл, модель і
мову, оскільки вони чітко відповідають поточному публічному endpoint xAI.
</Accordion>
<Accordion title="Потокове перетворення мовлення на текст">
Вбудований Plugin `xai` також реєструє провайдера транскрипції в реальному часі
для аудіо живих voice call.
<Accordion title="Потокове мовлення-у-текст">
Вбудований `xai` plugin також реєструє постачальника транскрибування в реальному часі
для аудіо живих голосових викликів.
- Ендпоінт: xAI WebSocket `wss://api.x.ai/v1/stt`
- Типове кодування: `mulaw`
- Типова частота дискретизації: `8000`
- Типове визначення кінця фрази: `800ms`
- Проміжні транскрипти: увімкнено типово
- Endpoint: xAI WebSocket `wss://api.x.ai/v1/stt`
- Стандартне кодування: `mulaw`
- Стандартна частота дискретизації: `8000`
- Стандартне визначення завершення: `800ms`
- Проміжні транскрипти: увімкнено за замовчуванням
Медіапотік Twilio у Voice Call надсилає аудіокадри G.711 µ-law, тому
провайдер xAI може пересилати ці кадри напряму без транскодування:
постачальник xAI може передавати ці кадри напряму без перекодування:
```json5
{
@ -326,29 +328,29 @@ OpenClaw використовує REST API xAI для зображень/від
}
```
Конфігурація, що належить провайдеру, розміщується в
Конфігурація, що належить постачальнику, розміщується в
`plugins.entries.voice-call.config.streaming.providers.xai`. Підтримувані
ключі: `apiKey`, `baseUrl`, `sampleRate`, `encoding` (`pcm`, `mulaw` або
`alaw`), `interimResults`, `endpointingMs` і `language`.
<Note>
Цей потоковий провайдер призначений для шляху транскрипції в реальному часі у Voice Call.
Голосові канали Discord наразі записують короткі сегменти й замість цього використовують пакетний
Цей потоковий провайдер призначений для шляху транскрипції в реальному часі Voice Call.
Голос Discord наразі записує короткі сегменти й натомість використовує пакетний
шлях транскрипції `tools.media.audio`.
</Note>
</Accordion>
<Accordion title="Налаштування x_search">
Вбудований Plugin xAI надає `x_search` як інструмент OpenClaw для пошуку
контенту в X (раніше Twitter) через Grok.
<Accordion title="Конфігурація x_search">
Вбудований xAI Plugin надає `x_search` як інструмент OpenClaw для пошуку
вмісту X (раніше Twitter) через Grok.
Шлях конфігурації: `plugins.entries.xai.config.xSearch`
| Ключ | Тип | Типове значення | Опис |
| Ключ | Тип | Типове значення | Опис |
| ------------------ | ------- | ------------------ | ------------------------------------ |
| `enabled` | boolean | — | Увімкнути або вимкнути x_search |
| `model` | string | `grok-4-1-fast` | Модель для запитів x_search |
| `model` | string | `grok-4-1-fast` | Модель, що використовується для запитів x_search |
| `inlineCitations` | boolean | — | Додавати вбудовані цитати в результати |
| `maxTurns` | number | — | Максимальна кількість ходів розмови |
| `timeoutSeconds` | number | — | Тайм-аут запиту в секундах |
@ -374,21 +376,21 @@ OpenClaw використовує REST API xAI для зображень/від
</Accordion>
<Accordion title="Налаштування виконання коду">
Вбудований Plugin xAI надає `code_execution` як інструмент OpenClaw для
віддаленого виконання коду в середовищі sandbox xAI.
<Accordion title="Конфігурація виконання коду">
Вбудований xAI Plugin надає `code_execution` як інструмент OpenClaw для
віддаленого виконання коду в пісочниці xAI.
Шлях конфігурації: `plugins.entries.xai.config.codeExecution`
| Ключ | Тип | Типове значення | Опис |
| ----------------- | ------- | ------------------------- | ---------------------------------------- |
| Ключ | Тип | Типове значення | Опис |
| ----------------- | ------- | ------------------------- | --------------------------------- |
| `enabled` | boolean | `true` (якщо ключ доступний) | Увімкнути або вимкнути виконання коду |
| `model` | string | `grok-4-1-fast` | Модель для запитів виконання коду |
| `maxTurns` | number | — | Максимальна кількість ходів розмови |
| `timeoutSeconds` | number | — | Тайм-аут запиту в секундах |
| `model` | string | `grok-4-1-fast` | Модель, що використовується для запитів виконання коду |
| `maxTurns` | number | — | Максимальна кількість ходів розмови |
| `timeoutSeconds` | number | — | Тайм-аут запиту в секундах |
<Note>
Це віддалене виконання в sandbox xAI, а не локальний [`exec`](/uk/tools/exec).
Це віддалене виконання в пісочниці xAI, а не локальний [`exec`](/uk/tools/exec).
</Note>
```json5
@ -411,39 +413,41 @@ OpenClaw використовує REST API xAI для зображень/від
</Accordion>
<Accordion title="Відомі обмеження">
- Наразі автентифікація підтримує лише API-ключі. У OpenClaw поки що немає xAI OAuth або device-code flow.
- Сьогодні автентифікація доступна лише за API-ключем. В OpenClaw ще немає
потоку xAI OAuth або device-code.
- `grok-4.20-multi-agent-experimental-beta-0304` не підтримується на
звичайному шляху провайдера xAI, оскільки вимагає іншої поверхні upstream API, ніж стандартний транспорт xAI в OpenClaw.
- Realtime voice xAI ще не зареєстровано як провайдер OpenClaw. Для нього
потрібен інший двонапрямний контракт голосового сеансу, ніж для пакетного STT або
звичайному шляху провайдера xAI, оскільки він потребує іншої поверхні
upstream API, ніж стандартний транспорт xAI в OpenClaw.
- Голос xAI Realtime ще не зареєстрований як провайдер OpenClaw. Для нього
потрібен інший контракт двонапрямної голосової сесії, ніж для пакетного STT або
потокової транскрипції.
- `quality`, `mask` і додаткові нативні співвідношення сторін для зображень xAI
не відкриваються, доки спільний інструмент `image_generate` не отримає відповідні
міжпровайдерні елементи керування.
- `quality` зображення xAI, `mask` зображення та додаткові власні співвідношення сторін
не надаються, доки спільний інструмент `image_generate` не матиме відповідних
міжпровайдерних елементів керування.
</Accordion>
<Accordion title="Розширені примітки">
- OpenClaw автоматично застосовує специфічні для xAI виправлення сумісності
схем інструментів і викликів інструментів на спільному шляху виконавця.
- Нативні запити xAI типово використовують `tool_stream: true`. Установіть
`agents.defaults.models["xai/<model>"].params.tool_stream` у `false`, щоб
схем інструментів і викликів інструментів на спільному шляху runner.
- Власні запити xAI типово використовують `tool_stream: true`. Установіть
`agents.defaults.models["xai/<model>"].params.tool_stream` на `false`, щоб
вимкнути це.
- Вбудована обгортка xAI прибирає непідтримувані прапорці strict tool-schema і
ключі payload reasoning перед надсиланням нативних запитів xAI.
- Вбудована обгортка xAI вилучає непідтримувані суворі прапорці схем інструментів і
ключі payload reasoning перед надсиланням власних запитів xAI.
- `web_search`, `x_search` і `code_execution` надаються як інструменти OpenClaw.
OpenClaw вмикає конкретний вбудований інструмент xAI, який потрібен, усередині кожного запиту
інструмента замість того, щоб додавати всі нативні інструменти до кожного ходу чату.
- `x_search` і `code_execution` належать вбудованому Plugin xAI, а не
жорстко закодовані в основне runtime моделей.
- `code_execution` — це віддалене виконання в sandbox xAI, а не локальний
OpenClaw вмикає конкретний вбудований інструмент xAI, потрібний у кожному запиті
інструмента, замість прикріплення всіх власних інструментів до кожного ходу чату.
- `x_search` і `code_execution` належать вбудованому xAI Plugin, а не жорстко
закодовані в базовому runtime моделі.
- `code_execution` — це віддалене виконання в пісочниці xAI, а не локальний
[`exec`](/uk/tools/exec).
</Accordion>
</AccordionGroup>
## Живе тестування
## Live testing
Шляхи медіа xAI покриваються модульними тестами та opt-in живими наборами. Живі
команди завантажують секрети з вашої login shell, включно з `~/.profile`, перед
Медійні шляхи xAI покриті модульними тестами та opt-in live-наборами. Live
команди завантажують секрети з вашої login shell, зокрема `~/.profile`, перед
перевіркою `XAI_API_KEY`.
```bash
@ -452,25 +456,25 @@ OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_TEST_QUIET=1 pnpm test:live -- extensions/xai
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_TEST_QUIET=1 OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS=xai pnpm test:live -- test/image-generation.runtime.live.test.ts
```
Специфічний для провайдера live-файл синтезує звичайний TTS, придатний для телефонії PCM
TTS, транскрибує аудіо через пакетний STT xAI, потоково передає той самий PCM через
realtime STT xAI, генерує результат text-to-image і редагує reference-image. Спільний
live-файл для зображень перевіряє того самого провайдера xAI через
вибір під час виконання в OpenClaw, резервне перемикання, нормалізацію та шлях вкладення медіа.
Специфічний для провайдера live-файл синтезує звичайний TTS, дружній до телефонії PCM
TTS, транскрибує аудіо через пакетний STT xAI, передає той самий PCM потоком через
xAI realtime STT, генерує результат text-to-image і редагує еталонне зображення. Спільний
live-файл зображень перевіряє той самий провайдер xAI через шлях вибору runtime,
fallback, нормалізації та медійних вкладень OpenClaw.
## Пов’язане
<CardGroup cols={2}>
<Card title="Вибір моделі" href="/uk/concepts/model-providers" icon="layers">
Вибір провайдерів, посилань на моделі та поведінки резервного перемикання.
Вибір провайдерів, посилань на моделі та поведінки failover.
</Card>
<Card title="Генерація відео" href="/uk/tools/video-generation" icon="video">
Спільні параметри інструмента відео та вибір провайдера.
Спільні параметри відеоінструмента та вибір провайдера.
</Card>
<Card title="Усі провайдери" href="/uk/providers/index" icon="grid-2">
Ширший огляд провайдерів.
</Card>
<Card title="Усунення несправностей" href="/uk/help/troubleshooting" icon="wrench">
Поширені проблеми та способи їх усунення.
<Card title="Усунення неполадок" href="/uk/help/troubleshooting" icon="wrench">
Поширені проблеми та виправлення.
</Card>
</CardGroup>