From 95d12c9c21fde486d00667f7d150438dc905add2 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Sat, 2 May 2026 01:47:18 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/concepts/model-providers.md | 304 ++++++++++---------- docs/uk/help/testing-live.md | 418 ++++++++++++++-------------- docs/uk/providers/xai.md | 324 ++++++++++----------- 3 files changed, 524 insertions(+), 522 deletions(-) diff --git a/docs/uk/concepts/model-providers.md b/docs/uk/concepts/model-providers.md index 445bdc8d9..d4ac839bf 100644 --- a/docs/uk/concepts/model-providers.md +++ b/docs/uk/concepts/model-providers.md @@ -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). ## Швидкі правила - Посилання на моделі використовують `provider/model` (приклад: `opencode/claude-opus-4-6`). - - `agents.defaults.models` діє як список дозволених значень, коли його задано. + - `agents.defaults.models` діє як список дозволених значень, якщо його задано. - Помічники CLI: `openclaw onboard`, `openclaw models list`, `openclaw models set `. - - `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). - + Маршрути сімейства OpenAI залежать від префікса: - - `openai/` використовує прямого провайдера OpenAI з API-ключем у PI. + - `openai/` використовує прямого постачальника OpenAI з API-ключем у PI. - `openai-codex/` використовує Codex OAuth у PI. - - `openai/` разом із `agents.defaults.agentRuntime.id: "codex"` використовує нативний harness сервера застосунку Codex. + - `openai/` разом із `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/` належить до Plugin OpenAI, тоді як Plugin Codex вмикається через `agentRuntime.id: "codex"` або застарілі посилання `codex/`. + Автоматичне ввімкнення Plugin дотримується тієї самої межі: `openai-codex/` належить до OpenAI plugin, тоді як Codex plugin вмикається через `agentRuntime.id: "codex"` або застарілі посилання `codex/`. - 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"`. - - CLI runtime використовують те саме розділення: виберіть канонічні посилання на моделі, як-от `anthropic/claude-*`, `google/gemini-*` або `openai/gpt-*`, а потім задайте `agents.defaults.agentRuntime.id` як `claude-cli`, `google-gemini-cli` або `codex-cli`, коли потрібен локальний 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/*` мігрують назад до канонічних посилань постачальників із середовищем виконання, записаним окремо. -## Поведінка провайдера, якою володіє 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). Постачальник, якому потрібен повністю власний виконавець запитів, є окремою, глибшою поверхнею розширення. -Поведінка runner, якою володіє провайдер, живе в явних хуках провайдера, як-от політика replay, нормалізація схем інструментів, обгортання stream і помічники транспорту/запитів. Застарілий статичний пакет `ProviderPlugin.capabilities` призначений лише для сумісності й більше не читається спільною логікою runner. +Поведінка runner, якою володіє постачальник, живе в явних хуках постачальника, таких як політика replay, нормалізація схем інструментів, обгортання stream і помічники транспорту/запитів. Застарілий статичний контейнер `ProviderPlugin.capabilities` призначений лише для сумісності й більше не читається спільною логікою runner. ## Ротація API-ключів @@ -68,40 +68,40 @@ x-i18n: - `OPENCLAW_LIVE__KEY` (одне live-перевизначення, найвищий пріоритет) - `_API_KEYS` (список через кому або крапку з комою) - `_API_KEY` (основний ключ) - - `_API_KEY_*` (нумерований список, напр. `_API_KEY_1`) + - `_API_KEY_*` (нумерований список, наприклад `_API_KEY_1`) - Для провайдерів Google `GOOGLE_API_KEY` також включено як fallback. Порядок вибору ключів зберігає пріоритет і усуває дублікати значень. + Для постачальників Google `GOOGLE_API_KEY` також включено як fallback. Порядок вибору ключів зберігає пріоритет і усуває дублікати значень. - - Запити повторюються з наступним ключем лише для відповідей про обмеження швидкості (наприклад, `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, завершуються негайно; ротація ключів не виконується. + - Коли всі ключі-кандидати зазнають невдачі, фінальна помилка повертається з останньої спроби. -## Вбудовані провайдери (каталог pi-ai) +## Вбудовані постачальники (каталог pi-ai) -OpenClaw постачається з каталогом pi‑ai. Ці провайдери **не** потребують конфігурації `models.providers`; просто задайте автентифікацію й виберіть модель. +OpenClaw постачається з каталогом pi‑ai. Ці постачальники **не** потребують конфігурації `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/"].params.transport` (`"sse"`, `"websocket"` або `"auto"`) -- Прогрівання WebSocket для OpenAI Responses типово ввімкнене через `params.openaiWsWarmup` (`true`/`false`) +- Транспорт за замовчуванням — `auto` (спершу WebSocket, резервний SSE) +- Перевизначайте для окремої моделі через `agents.defaults.models["openai/"].params.transport` (`"sse"`, `"websocket"` або `"auto"`) +- Прогрівання OpenAI Responses WebSocket за замовчуванням увімкнене через `params.openaiWsWarmup` (`true`/`false`) - Пріоритетну обробку OpenAI можна ввімкнути через `agents.defaults.models["openai/"].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 постачається з каталогом pi‑ai. Ці прова ### 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` досі працюють для сумісності. -Працівники 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`, коли вони доступні. ```json5 @@ -131,22 +131,22 @@ OpenClaw постачається з каталогом pi‑ai. Ці прова ### 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/"].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/"].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 постачається з каталогом pi‑ai. Ці прова } ``` -### Інші розміщені варіанти в стилі підписки +### Інші розміщені варіанти у стилі підписки - Coding Plan Z.AI або загальні кінцеві точки API. + Z.AI Coding Plan або загальні кінцеві точки API. - Доступ через OAuth MiniMax Coding Plan або API-ключ. + MiniMax Coding Plan OAuth або доступ за ключем API. - Поверхня постачальника Qwen Cloud плюс зіставлення кінцевих точок Alibaba DashScope і Coding Plan. + Поверхня провайдера Qwen Cloud плюс зіставлення кінцевих точок Alibaba DashScope і Coding Plan. ### 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 постачається з каталогом pi‑ai. Ці прова } ``` -### 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/"].params.cachedContent` (або застаріле `cached_content`) для пересилання нативного для постачальника дескриптора `cachedContents/...`; влучання кешу Gemini відображаються як OpenClaw `cacheRead` +- Прямі запуски Gemini також приймають `agents.defaults.models["google/"].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 -Gemini CLI OAuth в OpenClaw є неофіційною інтеграцією. Деякі користувачі повідомляли про обмеження облікових записів Google після використання сторонніх клієнтів. Ознайомтеся з умовами Google і використовуйте некритичний обліковий запис, якщо вирішите продовжити. +Gemini CLI OAuth в OpenClaw є неофіційною інтеграцією. Деякі користувачі повідомляли про обмеження облікових записів Google після використання сторонніх клієнтів. Перегляньте умови Google і використовуйте некритичний обліковий запис, якщо вирішите продовжити. -Gemini CLI OAuth постачається як частина пакетного Plugin `google`. +Gemini CLI OAuth постачається як частина bundled Plugin `google`. @@ -245,12 +245,12 @@ Gemini CLI OAuth постачається як частина пакетного Модель за замовчуванням: `google-gemini-cli/gemini-3-flash-preview`. Ви **не** вставляєте client id або secret у `openclaw.json`. Потік входу CLI зберігає токени в профілях автентифікації на хості gateway. - - Якщо запити не проходять після входу, задайте `GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості gateway. + + Якщо запити після входу не виконуються, задайте `GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості gateway. -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` | #### Особливості, які варто знати - Застосовує свої заголовки атрибуції застосунку та маркери 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. - Посилання на базі Gemini проходять той самий шлях очищення proxy-Gemini; `kilocode/kilo/auto` та інші посилання proxy-reasoning-unsupported пропускають інʼєкцію proxy reasoning. + Посилання на базі Gemini використовують той самий шлях proxy-Gemini очищення; `kilocode/kilo/auto` та інші посилання proxy-reasoning-unsupported пропускають proxy reasoning injection. - Onboarding через API-ключ записує явні text-only визначення chat-моделей M2.7; розуміння зображень залишається на media provider `MiniMax-VL-01`, яким володіє плагін. + Онбординг за API-ключем записує явні визначення чат-моделей M2.7 лише для тексту; розуміння зображень залишається в media provider `MiniMax-VL-01`, що належить Plugin. - Ідентифікатори моделей використовують простір імен `nvidia//` (наприклад, `nvidia/nvidia/nemotron-...` поряд із `nvidia/moonshotai/kimi-k2.5`); засоби вибору зберігають буквальну композицію `/`, тоді як канонічний ключ, що надсилається до API, залишається з одним префіксом. + Ідентифікатори моделей використовують простір імен `nvidia//` (наприклад, `nvidia/nvidia/nemotron-...` поруч із `nvidia/moonshotai/kimi-k2.5`); засоби вибору зберігають буквальну композицію `/`, тоді як канонічний ключ, що надсилається до API, лишається з одним префіксом. - Використовує шлях xAI Responses. `/fast` або `params.fastMode: true` переписує `grok-3`, `grok-3-mini`, `grok-4` і `grok-4-0709` на їхні варіанти `*-fast`. `tool_stream` увімкнено за замовчуванням; вимкніть через `agents.defaults.models["xai/"].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/"].params.tool_stream=false`. - Постачається як вбудований плагін постачальника `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`. ## Постачальники через `models.providers` (власна/базова URL-адреса) -Використовуйте `models.providers` (або `models.json`), щоб додати **власних** постачальників або OpenAI/Anthropic‑сумісні проксі. +Використовуйте `models.providers` (або `models.json`), щоб додавати **власних** постачальників або OpenAI/Anthropic‑compatible проксі. -Багато вбудованих плагінів постачальників нижче вже публікують стандартний каталог. Використовуйте явні записи `models.providers.` лише тоді, коли потрібно перевизначити стандартну базову URL-адресу, заголовки або список моделей. +Багато наведених нижче вбудованих provider plugins уже публікують каталог за замовчуванням. Використовуйте явні записи `models.providers.` лише тоді, коли потрібно перевизначити базову URL-адресу, заголовки або список моделей. -Перевірки можливостей моделей Gateway також читають явні метадані `models.providers..models[]`. Якщо власна або проксі-модель приймає зображення, задайте `input: ["text", "image"]` для цієї моделі, щоб шляхи WebChat і вкладень з node-origin передавали зображення як native model inputs, а не як text-only media refs. +Перевірки можливостей моделей Gateway також читають явні метадані `models.providers..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 натомість повертається до нефільтрованого каталогу, а не показує порожній засіб вибору, обмежений провайдером. - + - `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) - + - `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 повертається до нефільтрованого каталогу замість показу порожнього засобу вибору, обмеженого провайдером. - + - `byteplus/seed-1-8-251228` (Seed 1.8) - `byteplus/kimi-k2-5-260127` (Kimi K2.5) - `byteplus/glm-4-7-251222` (GLM 4.7) - + - `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), щоб отримати деталі налаштування, варіанти моделей і фрагменти конфігурації. -На 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`. -Поділ можливостей, що належать 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" ``` - - Для власних провайдерів `reasoning`, `input`, `cost`, `contextWindow` і `maxTokens` є необов’язковими. Якщо їх пропущено, OpenClaw типово використовує: + + Для власних провайдерів `reasoning`, `input`, `cost`, `contextWindow` і `maxTokens` є необов’язковими. Якщо їх пропущено, OpenClaw за замовчуванням використовує: - `reasoning: false` - `input: ["text"]` @@ -673,15 +673,15 @@ export SGLANG_API_KEY="sglang-local" Рекомендовано: задайте явні значення, що відповідають обмеженням вашого проксі/моделі. - - - Для `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..timeoutSeconds`. Це розширює обробку HTTP-запитів моделі провайдера, зокрема connect, headers, потокове передавання body і загальне переривання guarded-fetch, не збільшуючи загальний timeout runtime агента. - - Якщо `baseUrl` порожній або пропущений, OpenClaw зберігає типову поведінку OpenAI (яка розв’язується до `api.openai.com`). + + - Для `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..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..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..headers["anthropic-beta"]`, якщо вашому проксі потрібні конкретні beta-функції. @@ -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) — посібники з налаштування для кожного провайдера diff --git a/docs/uk/help/testing-live.md b/docs/uk/help/testing-live.md index e2c952a1d..d58a130cf 100644 --- a/docs/uk/help/testing-live.md +++ b/docs/uk/help/testing-live.md @@ -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 `. + - `read`-проба: тест записує nonce-файл у робочій області й просить агента `read` його та повернути nonce. + - `exec+read`-проба: тест просить агента через `exec` записати nonce у тимчасовий файл, а потім через `read` прочитати його назад. + - проба зображення: тест долучає згенерований PNG (cat + рандомізований код) і очікує, що модель поверне `cat `. - Посилання на реалізацію: `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: "" }]` - Gateway розбирає вкладення в `images[]` (`src/gateway/server-methods/agent.ts` + `src/gateway/chat-attachments.ts`) - Вбудований агент пересилає мультимодальне повідомлення користувача до моделі - - Перевірка: відповідь містить `cat` + код (толерантність OCR: допускаються незначні помилки) + - Твердження: відповідь містить `cat` + код (толерантність OCR: незначні помилки дозволені) -Щоб побачити, що можна протестувати на вашій машині (і точні ids `provider/model`), запустіть: +Щоб побачити, що можна тестувати на вашій машині (і точні ідентифікатори `provider/model`), запустіть: ```bash openclaw models list @@ -144,27 +144,27 @@ openclaw models list --json -## Живі: 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 --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 тощо) -Не hardcode "all models" у docs. Авторитетний список — це те, що `discoverModels(...)` повертає на вашій машині, плюс доступні ключі. +Не хардкодьте "all models" у документації. Авторитетний список — це те, що `discoverModels(...)` повертає на вашій машині, плюс доступні ключі. -## Облікові дані (ніколи не commit) +## Облікові дані (ніколи не комітьте) -Live tests знаходять облікові дані так само, як це робить CLI. Практичні наслідки: +Живі тести знаходять облікові дані так само, як це робить CLI. Практичні наслідки: - Якщо CLI працює, live-тести мають знаходити ті самі ключі. -- Якщо live-тест повідомляє «no creds», налагоджуйте це так само, як налагоджували б `openclaw models list` / вибір моделі. +- Якщо live-тест повідомляє «no creds», налагоджуйте так само, як налагоджували б `openclaw models list` / вибір моделі. -- Профілі автентифікації для окремих агентів: `~/.openclaw/agents//agent/auth-profiles.json` (саме це означає “profile keys” у live-тестах) +- Профілі автентифікації для кожного агента: `~/.openclaw/agents//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.` не налаштовано - - Корисно після змін у надсиланні 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 генерації зображень: - `:generate` - `: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-набори diff --git a/docs/uk/providers/xai.md b/docs/uk/providers/xai.md index eb6dd4793..5759266a4 100644 --- a/docs/uk/providers/xai.md +++ b/docs/uk/providers/xai.md @@ -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. ## Початок роботи - - Створіть ключ API у [консолі xAI](https://console.x.ai/). + + Створіть API-ключ у [консолі xAI](https://console.x.ai/). - - Установіть `XAI_API_KEY` або виконайте: + + Задайте `XAI_API_KEY` або виконайте: ```bash openclaw onboard --auth-choice xai-api-key ``` - + ```json5 { - agents: { defaults: { model: { primary: "xai/grok-4" } } }, + agents: { defaults: { model: { primary: "xai/grok-4.3" } } }, } ``` @@ -40,92 +40,93 @@ OpenClaw постачається з вбудованим Plugin провайд 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`. ## Вбудований каталог -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. -`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 із підтримкою зображень у вбудованому каталозі. -## Покриття можливостей OpenClaw +## Покриття функцій OpenClaw -Вбудований Plugin зіставляє поточну публічну поверхню API xAI зі спільними -контрактами провайдера та інструментів OpenClaw. Можливості, які не вписуються у спільний контракт -(наприклад, потоковий TTS і voice у реальному часі), не відкриваються — див. таблицю -нижче. +Вбудований плагін відображає поточну публічну поверхню API xAI на спільні +контракти провайдерів та інструментів OpenClaw. Можливості, які не вписуються +у спільний контракт (наприклад, потоковий TTS і голос у реальному часі), не +експонуються — див. таблицю нижче. -| Можливість xAI | Поверхня OpenClaw | Статус | -| -------------------------- | ---------------------------------------- | ------------------------------------------------------------------- | -| Чат / Responses | провайдер моделей `xai/` | Так | -| Вебпошук на стороні сервера| провайдер `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/` | Так | +| Серверний вебпошук | провайдер `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 | -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, +а не як приховану поведінку плагіна. -### Зіставлення швидкого режиму +### Зіставлення Fast-режиму `/fast on` або `agents.defaults.models["xai/"].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` | -## Можливості +## Функції - + Вбудований провайдер вебпошуку `grok` також використовує `XAI_API_KEY`: ```bash @@ -134,27 +135,28 @@ OpenClaw використовує REST API xAI для зображень/від - - Вбудований Plugin `xai` реєструє генерацію відео через спільний + + Вбудований плагін `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 таких зображень - Локальні відеобуфери не приймаються. Використовуйте віддалені URL `http(s)` для - входів редагування/розширення відео. image-to-video приймає локальні буфери зображень, оскільки - OpenClaw може кодувати їх як URL даних для xAI. + Локальні відеобуфери не приймаються. Використовуйте віддалені URL `http(s)` + для вхідних даних редагування/розширення відео. Image-to-video приймає + локальні буфери зображень, оскільки OpenClaw може закодувати їх як data URL + для xAI. - Щоб використовувати xAI як типового провайдера відео: + Щоб використовувати xAI як стандартного постачальника відео: ```json5 { @@ -169,30 +171,30 @@ OpenClaw використовує REST API xAI для зображень/від ``` - Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента, - вибір провайдера та поведінку резервного перемикання. + Див. [Генерація відео](/uk/tools/video-generation) щодо спільних параметрів інструмента, + вибору постачальника та поведінки перемикання в разі відмови. - Вбудований 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 для зображень/від ``` - 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`. - - Вбудований Plugin `xai` реєструє перетворення тексту на мовлення через спільну - поверхню провайдера `tts`. + + Вбудований `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 для зображень/від ``` - OpenClaw використовує пакетний ендпоінт xAI `/v1/tts`. xAI також пропонує потоковий TTS - через WebSocket, але контракт провайдера мовлення OpenClaw наразі очікує + OpenClaw використовує пакетний endpoint xAI `/v1/tts`. xAI також пропонує потоковий TTS + через WebSocket, але контракт постачальника мовлення OpenClaw наразі очікує повний аудіобуфер перед доставленням відповіді. - - Вбудований Plugin `xai` реєструє пакетне перетворення мовлення на текст через - поверхню транскрипції для розуміння медіа в OpenClaw. + + Вбудований `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. - - Вбудований Plugin `xai` також реєструє провайдера транскрипції в реальному часі - для аудіо живих voice call. + + Вбудований `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`. - Цей потоковий провайдер призначений для шляху транскрипції в реальному часі у Voice Call. - Голосові канали Discord наразі записують короткі сегменти й замість цього використовують пакетний + Цей потоковий провайдер призначений для шляху транскрипції в реальному часі Voice Call. + Голос Discord наразі записує короткі сегменти й натомість використовує пакетний шлях транскрипції `tools.media.audio`. - - Вбудований Plugin xAI надає `x_search` як інструмент OpenClaw для пошуку - контенту в X (раніше Twitter) через Grok. + + Вбудований 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 для зображень/від - - Вбудований Plugin xAI надає `code_execution` як інструмент OpenClaw для - віддаленого виконання коду в середовищі sandbox xAI. + + Вбудований 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 | — | Тайм-аут запиту в секундах | - Це віддалене виконання в sandbox xAI, а не локальний [`exec`](/uk/tools/exec). + Це віддалене виконання в пісочниці xAI, а не локальний [`exec`](/uk/tools/exec). ```json5 @@ -411,39 +413,41 @@ OpenClaw використовує REST API xAI для зображень/від - - Наразі автентифікація підтримує лише 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` не матиме відповідних + міжпровайдерних елементів керування. - OpenClaw автоматично застосовує специфічні для xAI виправлення сумісності - схем інструментів і викликів інструментів на спільному шляху виконавця. - - Нативні запити xAI типово використовують `tool_stream: true`. Установіть - `agents.defaults.models["xai/"].params.tool_stream` у `false`, щоб + схем інструментів і викликів інструментів на спільному шляху runner. + - Власні запити xAI типово використовують `tool_stream: true`. Установіть + `agents.defaults.models["xai/"].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). -## Живе тестування +## 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. ## Пов’язане - Вибір провайдерів, посилань на моделі та поведінки резервного перемикання. + Вибір провайдерів, посилань на моделі та поведінки failover. - Спільні параметри інструмента відео та вибір провайдера. + Спільні параметри відеоінструмента та вибір провайдера. Ширший огляд провайдерів. - - Поширені проблеми та способи їх усунення. + + Поширені проблеми та виправлення.