chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-23 16:59:03 +00:00
parent cfc5072ff8
commit d138656d0a
2 changed files with 428 additions and 474 deletions

View File

@ -1,81 +1,66 @@
---
read_when:
- Ви створюєте Plugin для OpenClaw
- Вам потрібно постачати схему конфігурації Plugin або налагоджувати помилки валідації Plugin
summary: Вимоги до маніфесту Plugin і схеми JSON (сувора валідація конфігурації)
title: Маніфест Plugin
- Ви створюєте plugin для OpenClaw
- Вам потрібно постачати схему конфігурації plugin або налагодити помилки валідації plugin
summary: Вимоги до маніфесту Plugin + JSON schema (сувора валідація конфігурації)
title: маніфест Plugin
x-i18n:
generated_at: "2026-04-23T07:42:09Z"
generated_at: "2026-04-23T16:56:56Z"
model: gpt-5.4
provider: openai
source_hash: d48810f604aa0c3ff8553528cfa4cb735d1d5e7a15b1bbca6152070d6c8f9cce
source_hash: e9e7bca47b076cc49080bd6921ef9d295c840e9a19c5271dbfea83d9882ea404
source_path: plugins/manifest.md
workflow: 15
---
# Маніфест Plugin (`openclaw.plugin.json`)
Ця сторінка стосується лише **власного маніфесту Plugin OpenClaw**.
Ця сторінка стосується лише **нативного маніфесту plugin OpenClaw**.
Сумісні макети пакетів описано в [Пакети Plugin](/uk/plugins/bundles).
Щоб дізнатися про сумісні макети bundle, див. [Plugin bundles](/uk/plugins/bundles).
Сумісні формати пакетів використовують інші файли маніфесту:
Сумісні формати bundle використовують інші файли маніфесту:
- пакет Codex: `.codex-plugin/plugin.json`
- пакет Claude: `.claude-plugin/plugin.json` або стандартний макет компонента Claude
- Codex bundle: `.codex-plugin/plugin.json`
- Claude bundle: `.claude-plugin/plugin.json` або стандартний макет компонента Claude
без маніфесту
- пакет Cursor: `.cursor-plugin/plugin.json`
- Cursor bundle: `.cursor-plugin/plugin.json`
OpenClaw також автоматично визначає ці макети пакетів, але вони не проходять валідацію
OpenClaw також автоматично визначає ці макети bundle, але вони не проходять валідацію
за схемою `openclaw.plugin.json`, описаною тут.
Для сумісних пакетів OpenClaw наразі зчитує метадані пакета разом з оголошеними
коренями Skills, коренями команд Claude, значеннями за замовчуванням `settings.json` у пакеті Claude,
значеннями LSP за замовчуванням у пакеті Claude та підтримуваними наборами хуків, коли макет відповідає
Для сумісних bundle OpenClaw наразі читає метадані bundle разом із оголошеними
коренями skills, коренями команд Claude, типовими значеннями `settings.json` для bundle Claude,
типовими значеннями LSP для bundle Claude та підтримуваними наборами hook, якщо макет відповідає
очікуванням середовища виконання OpenClaw.
Кожен власний Plugin OpenClaw **повинен** містити файл `openclaw.plugin.json` у
**корені Plugin**. OpenClaw використовує цей маніфест для валідації конфігурації
**без виконання коду Plugin**. Відсутні або невалідні маніфести вважаються
помилками Plugin і блокують валідацію конфігурації.
Кожен нативний plugin OpenClaw **повинен** постачатися з файлом `openclaw.plugin.json` у
**корені plugin**. OpenClaw використовує цей маніфест для валідації конфігурації
**без виконання коду plugin**. Відсутні або невалідні маніфести вважаються
помилками plugin і блокують валідацію конфігурації.
Дивіться повний посібник із системи Plugin: [Plugins](/uk/tools/plugin).
Щодо власної моделі можливостей і поточних рекомендацій із зовнішньої сумісності:
[Модель можливостей](/uk/plugins/architecture#public-capability-model).
Див. повний посібник із системи plugin: [Plugins](/uk/tools/plugin).
Щодо нативної моделі можливостей і поточних рекомендацій із зовнішньої сумісності:
[Capability model](/uk/plugins/architecture#public-capability-model).
## Що робить цей файл
`openclaw.plugin.json` — це метадані, які OpenClaw зчитує перед завантаженням коду
вашого Plugin.
`openclaw.plugin.json` — це метадані, які OpenClaw читає **до завантаження коду
вашого plugin**. Усе нижче має бути достатньо легким для перевірки без запуску
середовища виконання plugin.
Використовуйте його для:
**Використовуйте його для:**
- ідентичності Plugin
- валідації конфігурації
- метаданих автентифікації та онбордингу, які мають бути доступні без запуску
середовища виконання Plugin
- недорогих підказок активації, які поверхні control plane можуть перевіряти до
завантаження середовища виконання
- недорогих дескрипторів налаштування, які поверхні налаштування/онбордингу можуть перевіряти до
завантаження середовища виконання
- метаданих псевдонімів і автоувімкнення, які мають визначатися до завантаження середовища виконання Plugin
- метаданих скороченого володіння сімейством моделей, які мають автоматично активувати
Plugin до завантаження середовища виконання
- статичних знімків володіння можливостями, що використовуються для сумісного вбудованого з’єднання та
покриття контрактів
- недорогих метаданих запускальника QA, які спільний хост `openclaw qa` може перевіряти
до завантаження середовища виконання Plugin
- метаданих конфігурації, специфічних для каналу, які мають об’єднуватися в поверхні каталогу та валідації
без завантаження середовища виконання
- підказок UI конфігурації
- ідентичності plugin, валідації конфігурації та підказок UI конфігурації
- метаданих auth, онбордингу та налаштування (псевдонім, автоувімкнення, env vars провайдера, варіанти auth)
- підказок активації для поверхонь control-plane
- скороченого володіння сімействами моделей
- статичних знімків володіння можливостями (`contracts`)
- метаданих QA runner, які може перевіряти спільний хост `openclaw qa`
- метаданих конфігурації, специфічних для channel, які об’єднуються в поверхні каталогу та валідації
Не використовуйте його для:
- реєстрації поведінки під час виконання
- оголошення точок входу коду
- метаданих встановлення npm
Це належить до коду вашого Plugin і `package.json`.
**Не використовуйте його для:** реєстрації поведінки середовища виконання, оголошення
точок входу коду або метаданих встановлення npm. Вони мають бути у коді вашого plugin і в `package.json`.
## Мінімальний приклад
@ -96,7 +81,7 @@ OpenClaw також автоматично визначає ці макети п
{
"id": "openrouter",
"name": "OpenRouter",
"description": "OpenRouter provider plugin",
"description": "Плагін провайдера OpenRouter",
"version": "1.0.0",
"providers": ["openrouter"],
"modelSupport": {
@ -124,19 +109,19 @@ OpenClaw також автоматично визначає ці макети п
"provider": "openrouter",
"method": "api-key",
"choiceId": "openrouter-api-key",
"choiceLabel": "OpenRouter API key",
"choiceLabel": "Ключ API OpenRouter",
"groupId": "openrouter",
"groupLabel": "OpenRouter",
"optionKey": "openrouterApiKey",
"cliFlag": "--openrouter-api-key",
"cliOption": "--openrouter-api-key <key>",
"cliDescription": "OpenRouter API key",
"cliDescription": "Ключ API OpenRouter",
"onboardingScopes": ["text-inference"]
}
],
"uiHints": {
"apiKey": {
"label": "API key",
"label": "Ключ API",
"placeholder": "sk-or-v1-...",
"sensitive": true
}
@ -155,67 +140,67 @@ OpenClaw також автоматично визначає ці макети п
## Довідник полів верхнього рівня
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------------------------------ | ----------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | Так | `string` | Канонічний id Plugin. Це id, який використовується в `plugins.entries.<id>`. |
| `configSchema` | Так | `object` | Вбудована схема JSON для конфігурації цього Plugin. |
| `enabledByDefault` | Ні | `true` | Позначає вбудований Plugin як увімкнений за замовчуванням. Пропустіть це поле або встановіть будь-яке значення, відмінне від `true`, щоб Plugin лишався вимкненим за замовчуванням. |
| `legacyPluginIds` | Ні | `string[]` | Застарілі id, які нормалізуються до цього канонічного id Plugin. |
| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | Id провайдерів, які мають автоматично вмикати цей Plugin, коли автентифікація, конфігурація або посилання на моделі згадують їх. |
| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує ексклюзивний тип Plugin, який використовується `plugins.slots.*`. |
| `channels` | Ні | `string[]` | Id каналів, якими володіє цей Plugin. Використовується для виявлення та валідації конфігурації. |
| `providers` | Ні | `string[]` | Id провайдерів, якими володіє цей Plugin. |
| `modelSupport` | Ні | `object` | Скорочені метадані сімейства моделей, якими володіє маніфест і які використовуються для автоматичного завантаження Plugin до запуску середовища виконання. |
| `providerEndpoints` | Ні | `object[]` | Метадані хостів/`baseUrl` кінцевих точок, якими володіє маніфест, для маршрутів провайдера, які ядро повинно класифікувати до завантаження середовища виконання провайдера. |
| `cliBackends` | Ні | `string[]` | Id backend-ів інференсу CLI, якими володіє цей Plugin. Використовується для автоактивації під час запуску з явних посилань у конфігурації. |
| `syntheticAuthRefs` | Ні | `string[]` | Посилання на провайдери або backend-и CLI, для яких під час холодного виявлення моделей до завантаження середовища виконання слід перевіряти синтетичний хук автентифікації, що належить Plugin. |
| `nonSecretAuthMarkers` | Ні | `string[]` | Значення-заповнювачі API-ключів, що належать вбудованому Plugin і представляють несекретний локальний стан, OAuth або ambient credential state. |
| `commandAliases` | Ні | `object[]` | Імена команд, що належать цьому Plugin і мають видавати діагностику конфігурації та CLI з урахуванням Plugin до завантаження середовища виконання. |
| `providerAuthEnvVars` | Ні | `Record<string, string[]>` | Недорогі метадані env для автентифікації провайдера, які OpenClaw може перевіряти без завантаження коду Plugin. |
| `providerAuthAliases` | Ні | `Record<string, string>` | Id провайдерів, які мають повторно використовувати інший id провайдера для пошуку автентифікації, наприклад провайдер кодування, який спільно використовує API-ключ і профілі автентифікації базового провайдера. |
| `channelEnvVars` | Ні | `Record<string, string[]>` | Недорогі метадані env каналу, які OpenClaw може перевіряти без завантаження коду Plugin. Використовуйте це для керованого env налаштування каналу або поверхонь автентифікації, які мають бачити універсальні допоміжні засоби запуску/конфігурації. |
| `providerAuthChoices` | Ні | `object[]` | Недорогі метадані вибору автентифікації для селекторів онбордингу, визначення пріоритетного провайдера та простого зв’язування прапорців CLI. |
| `activation` | Ні | `object` | Недорогі підказки активації для завантаження, що запускається провайдером, командою, каналом, маршрутом і можливістю. Лише метадані; фактичною поведінкою як і раніше володіє середовище виконання Plugin. |
| `setup` | Ні | `object` | Недорогі дескриптори налаштування/онбордингу, які поверхні виявлення та налаштування можуть перевіряти без завантаження середовища виконання Plugin. |
| `qaRunners` | Ні | `object[]` | Недорогі дескриптори запускальників QA, які використовує спільний хост `openclaw qa` до завантаження середовища виконання Plugin. |
| `contracts` | Ні | `object` | Статичний знімок вбудованих можливостей для зовнішніх хуків автентифікації, мовлення, транскрибування в реальному часі, голосу в реальному часі, розуміння медіа, генерації зображень, генерації музики, генерації відео, web-fetch, web search і володіння інструментами. |
| `mediaUnderstandingProviderMetadata` | Ні | `Record<string, object>` | Недорогі значення за замовчуванням для розуміння медіа для id провайдерів, оголошених у `contracts.mediaUnderstandingProviders`. |
| `channelConfigs` | Ні | `Record<string, object>` | Метадані конфігурації каналу, якими володіє маніфест і які об’єднуються в поверхні виявлення та валідації до завантаження середовища виконання. |
| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня Plugin. |
| `name` | Ні | `string` | Зрозуміла людині назва Plugin. |
| `description` | Ні | `string` | Короткий опис, що показується в поверхнях Plugin. |
| `version` | Ні | `string` | Інформаційна версія Plugin. |
| `uiHints` | Ні | `Record<string, object>` | Мітки UI, заповнювачі та підказки щодо чутливості для полів конфігурації. |
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------------------------------ | ----------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | Так | `string` | Канонічний id plugin. Це id, який використовується в `plugins.entries.<id>`. |
| `configSchema` | Так | `object` | Вбудована JSON Schema для конфігурації цього plugin. |
| `enabledByDefault` | Ні | `true` | Позначає вбудований plugin як увімкнений за замовчуванням. Не вказуйте це поле або задайте будь-яке значення, відмінне від `true`, щоб plugin залишався вимкненим за замовчуванням. |
| `legacyPluginIds` | Ні | `string[]` | Застарілі id, які нормалізуються до цього канонічного id plugin. |
| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | Id провайдерів, які мають автоматично вмикати цей plugin, коли auth, конфігурація або посилання на моделі згадують їх. |
| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує ексклюзивний тип plugin, який використовується `plugins.slots.*`. |
| `channels` | Ні | `string[]` | Id channel, якими володіє цей plugin. Використовується для виявлення та валідації конфігурації. |
| `providers` | Ні | `string[]` | Id провайдерів, якими володіє цей plugin. |
| `modelSupport` | Ні | `object` | Скорочені метадані сімейств моделей, якими володіє маніфест, що використовуються для автоматичного завантаження plugin до запуску середовища виконання. |
| `providerEndpoints` | Ні | `object[]` | Метадані хостів endpoint/baseUrl для маршрутів провайдера, якими володіє маніфест, які ядро має класифікувати до завантаження середовища виконання провайдера. |
| `cliBackends` | Ні | `string[]` | Id backend CLI inference, якими володіє цей plugin. Використовується для автоматичної активації під час запуску з явних посилань у конфігурації. |
| `syntheticAuthRefs` | Ні | `string[]` | Посилання на провайдера або backend CLI, для яких під час холодного виявлення моделей до завантаження середовища виконання потрібно перевіряти синтетичний hook auth, що належить plugin. |
| `nonSecretAuthMarkers` | Ні | `string[]` | Значення-заповнювачі ключів API, що належать вбудованому plugin і представляють несекретний локальний стан, OAuth або стан облікових даних середовища. |
| `commandAliases` | Ні | `object[]` | Імена команд, якими володіє цей plugin і які мають створювати діагностику конфігурації та CLI з урахуванням plugin до завантаження середовища виконання. |
| `providerAuthEnvVars` | Ні | `Record<string, string[]>` | Легкі метадані env для auth провайдера, які OpenClaw може перевіряти без завантаження коду plugin. |
| `providerAuthAliases` | Ні | `Record<string, string>` | Id провайдерів, які мають повторно використовувати id іншого провайдера для пошуку auth, наприклад провайдер для кодування, що використовує спільний ключ API базового провайдера та профілі auth. |
| `channelEnvVars` | Ні | `Record<string, string[]>` | Легкі метадані env для channel, які OpenClaw може перевіряти без завантаження коду plugin. Використовуйте це для налаштування channel через env або поверхонь auth, які мають бачити загальні допоміжні засоби запуску/конфігурації. |
| `providerAuthChoices` | Ні | `object[]` | Легкі метадані варіантів auth для селекторів онбордингу, визначення пріоритетного провайдера та простого зв’язування прапорців CLI. |
| `activation` | Ні | `object` | Легкі підказки активації для завантаження, що ініціюється провайдером, командою, channel, маршрутом і можливостями. Лише метадані; фактичною поведінкою як і раніше володіє середовище виконання plugin. |
| `setup` | Ні | `object` | Легкі дескриптори налаштування/онбордингу, які поверхні виявлення та налаштування можуть перевіряти без завантаження середовища виконання plugin. |
| `qaRunners` | Ні | `object[]` | Легкі дескриптори QA runner, які спільний хост `openclaw qa` використовує до завантаження середовища виконання plugin. |
| `contracts` | Ні | `object` | Статичний знімок можливостей вбудованого plugin для зовнішніх hook auth, speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search і володіння tools. |
| `mediaUnderstandingProviderMetadata` | Ні | `Record<string, object>` | Легкі типові значення media-understanding для id провайдерів, оголошених у `contracts.mediaUnderstandingProviders`. |
| `channelConfigs` | Ні | `Record<string, object>` | Метадані конфігурації channel, якими володіє маніфест і які об’єднуються в поверхні виявлення та валідації до завантаження середовища виконання. |
| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня plugin. |
| `name` | Ні | `string` | Людинозрозуміла назва plugin. |
| `description` | Ні | `string` | Короткий опис, що відображається в поверхнях plugin. |
| `version` | Ні | `string` | Інформаційна версія plugin. |
| `uiHints` | Ні | `Record<string, object>` | Мітки UI, placeholders і підказки щодо чутливості для полів конфігурації. |
## Довідник `providerAuthChoices`
Кожен запис `providerAuthChoices` описує один варіант онбордингу або автентифікації.
OpenClaw зчитує це до завантаження середовища виконання провайдера.
Кожен запис `providerAuthChoices` описує один варіант онбордингу або auth.
OpenClaw читає це до завантаження середовища виконання провайдера.
| Поле | Обов’язкове | Тип | Що воно означає |
| --------------------- | ----------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `provider` | Так | `string` | Id провайдера, до якого належить цей варіант. |
| `method` | Так | `string` | Id методу автентифікації, до якого слід спрямувати. |
| `choiceId` | Так | `string` | Стабільний id варіанта автентифікації, який використовується онбордингом і потоками CLI. |
| `choiceLabel` | Ні | `string` | Мітка для користувача. Якщо пропущено, OpenClaw використовує `choiceId`. |
| `choiceHint` | Ні | `string` | Короткий допоміжний текст для селектора. |
| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних селекторах, керованих асистентом. |
| `assistantVisibility` | Ні | `"visible"` \| `"manual-only"` | Приховує варіант від селекторів асистента, але все ще дозволяє ручний вибір через CLI. |
| `deprecatedChoiceIds` | Ні | `string[]` | Застарілі id варіантів, які мають перенаправляти користувачів на цей варіант-заміну. |
| `groupId` | Ні | `string` | Необов’язковий id групи для групування пов’язаних варіантів. |
| `groupLabel` | Ні | `string` | Мітка цієї групи для користувача. |
| `groupHint` | Ні | `string` | Короткий допоміжний текст для групи. |
| `optionKey` | Ні | `string` | Внутрішній ключ параметра для простих потоків автентифікації з одним прапорцем. |
| `cliFlag` | Ні | `string` | Назва прапорця CLI, наприклад `--openrouter-api-key`. |
| `cliOption` | Ні | `string` | Повна форма параметра CLI, наприклад `--openrouter-api-key <key>`. |
| `cliDescription` | Ні | `string` | Опис, що використовується в довідці CLI. |
| `onboardingScopes` | Ні | `Array<"text-inference" \| "image-generation">` | У яких поверхнях онбордингу має з’являтися цей варіант. Якщо пропущено, за замовчуванням це `["text-inference"]`. |
| Поле | Обов’язкове | Тип | Що воно означає |
| -------------------- | ----------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `provider` | Так | `string` | Id провайдера, якому належить цей варіант. |
| `method` | Так | `string` | Id методу auth, до якого слід маршрутизувати. |
| `choiceId` | Так | `string` | Стабільний id варіанта auth, який використовується потоками онбордингу та CLI. |
| `choiceLabel` | Ні | `string` | Мітка для користувача. Якщо не вказано, OpenClaw використовує `choiceId` як запасний варіант. |
| `choiceHint` | Ні | `string` | Короткий допоміжний текст для селектора. |
| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних селекторах, керованих асистентом. |
| `assistantVisibility`| Ні | `"visible"` \| `"manual-only"` | Приховує цей варіант від селекторів асистента, але все ще дозволяє ручний вибір через CLI. |
| `deprecatedChoiceIds`| Ні | `string[]` | Застарілі id варіантів, які мають перенаправляти користувачів до цього варіанта-замінника. |
| `groupId` | Ні | `string` | Необов’язковий id групи для групування пов’язаних варіантів. |
| `groupLabel` | Ні | `string` | Мітка цієї групи для користувача. |
| `groupHint` | Ні | `string` | Короткий допоміжний текст для групи. |
| `optionKey` | Ні | `string` | Внутрішній ключ опції для простих потоків auth з одним прапорцем. |
| `cliFlag` | Ні | `string` | Назва прапорця CLI, наприклад `--openrouter-api-key`. |
| `cliOption` | Ні | `string` | Повна форма опції CLI, наприклад `--openrouter-api-key <key>`. |
| `cliDescription` | Ні | `string` | Опис, який використовується в довідці CLI. |
| `onboardingScopes` | Ні | `Array<"text-inference" \| "image-generation">` | У яких поверхнях онбордингу має з’являтися цей варіант. Якщо не вказано, типовим є `["text-inference"]`. |
## Довідник `commandAliases`
Використовуйте `commandAliases`, коли Plugin володіє іменем команди середовища виконання, яке користувачі можуть
помилково вказати в `plugins.allow` або спробувати запустити як кореневу команду CLI. OpenClaw
використовує ці метадані для діагностики без імпорту коду середовища виконання Plugin.
Використовуйте `commandAliases`, коли plugin володіє назвою команди середовища виконання, яку користувачі можуть
помилково помістити в `plugins.allow` або спробувати запустити як кореневу команду CLI. OpenClaw
використовує ці метадані для діагностики без імпорту коду середовища виконання plugin.
```json
{
@ -229,45 +214,44 @@ OpenClaw зчитує це до завантаження середовища в
}
```
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------ | ----------- | ----------------- | ---------------------------------------------------------------------------- |
| `name` | Так | `string` | Ім’я команди, яке належить цьому Plugin. |
| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не кореневу команду CLI. |
| `cliCommand` | Ні | `string` | Пов’язана коренева команда CLI, яку слід підказати для операцій CLI, якщо вона існує. |
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------ | ----------- | ----------------- | ------------------------------------------------------------------------- |
| `name` | Так | `string` | Назва команди, яка належить цьому plugin. |
| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не кореневу команду CLI. |
| `cliCommand` | Ні | `string` | Пов’язана коренева команда CLI, яку слід пропонувати для операцій CLI, якщо така існує. |
## Довідник `activation`
Використовуйте `activation`, коли Plugin може недорого оголосити, які події control plane
Використовуйте `activation`, коли plugin може дешево оголосити, які події control-plane
мають активувати його пізніше.
## Довідник `qaRunners`
Використовуйте `qaRunners`, коли Plugin додає один або кілька transport runner-ів під спільним
коренем `openclaw qa`. Зберігайте ці метадані легкими та статичними; середовище виконання Plugin
як і раніше володіє фактичною реєстрацією CLI через легку поверхню
`runtime-api.ts`, яка експортує `qaRunnerCliRegistrations`.
Використовуйте `qaRunners`, коли plugin додає один або більше transport runner під спільним
коренем `openclaw qa`. Зберігайте ці метадані легкими та статичними; фактичною реєстрацією CLI як і раніше
володіє середовище виконання plugin через легку поверхню `runtime-api.ts`, яка експортує `qaRunnerCliRegistrations`.
```json
{
"qaRunners": [
{
"commandName": "matrix",
"description": "Run the Docker-backed Matrix live QA lane against a disposable homeserver"
"description": "Запустити Docker-backed live QA lane Matrix на disposable homeserver"
}
]
}
```
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------- | ----------- | -------- | --------------------------------------------------------------------- |
| `commandName` | Так | `string` | Підкоманда, змонтована під `openclaw qa`, наприклад `matrix`. |
| `description` | Ні | `string` | Резервний текст довідки, що використовується, коли спільному хосту потрібна stub-команда. |
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------- | ----------- | -------- | ------------------------------------------------------------------- |
| `commandName` | Так | `string` | Підкоманда, змонтована під `openclaw qa`, наприклад `matrix`. |
| `description` | Ні | `string` | Запасний текст довідки, який використовується, коли спільному хосту потрібна команда-заглушка. |
Цей блок є лише метаданими. Він не реєструє поведінку під час виконання і не
замінює `register(...)`, `setupEntry` або інші точки входу runtime/Plugin.
Поточні споживачі використовують його як підказку для звуження перед ширшим завантаженням Plugin, тому
відсутність метаданих активації зазвичай лише впливає на продуктивність; вона не має
змінювати коректність, доки все ще існують застарілі резервні механізми володіння маніфестом.
Цей блок — лише метадані. Він не реєструє поведінку середовища виконання і
не замінює `register(...)`, `setupEntry` або інші точки входу середовища виконання/plugin.
Поточні споживачі використовують його як підказку для звуження перед ширшим завантаженням plugin, тож
відсутність метаданих активації зазвичай впливає лише на продуктивність; це не повинно
змінювати коректність, поки ще існують запасні варіанти legacy ownership у маніфесті.
```json
{
@ -281,27 +265,27 @@ OpenClaw зчитує це до завантаження середовища в
}
```
| Поле | Обов’язкове | Тип | Що воно означає |
| ---------------- | ----------- | ---------------------------------------------------- | ----------------------------------------------------------------- |
| `onProviders` | Ні | `string[]` | Id провайдерів, які мають активувати цей Plugin за запитом. |
| `onCommands` | Ні | `string[]` | Id команд, які мають активувати цей Plugin. |
| `onChannels` | Ні | `string[]` | Id каналів, які мають активувати цей Plugin. |
| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей Plugin. |
| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Широкі підказки можливостей, що використовуються плануванням активації control plane. |
| Поле | Обов’язкове | Тип | Що воно означає |
| ---------------- | ----------- | ---------------------------------------------------- | ---------------------------------------------------------------- |
| `onProviders` | Ні | `string[]` | Id провайдерів, які мають активувати цей plugin за запитом. |
| `onCommands` | Ні | `string[]` | Id команд, які мають активувати цей plugin. |
| `onChannels` | Ні | `string[]` | Id channel, які мають активувати цей plugin. |
| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей plugin. |
| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки можливостей, що використовуються в плануванні активації control-plane. |
Поточні живі споживачі:
Поточні активні споживачі:
- планування CLI, що запускається командою, повертається до застарілого
- планування CLI, ініційоване командою, повертається до legacy
`commandAliases[].cliCommand` або `commandAliases[].name`
- планування налаштування/каналу, що запускається каналом, повертається до застарілого володіння
`channels[]`, коли явні метадані активації каналу відсутні
- планування налаштування/runtime, що запускається провайдером, повертається до застарілого
володіння `providers[]` і `cliBackends[]` верхнього рівня, коли явні метадані активації провайдера
відсутні
- планування setup/channel, ініційоване channel, повертається до legacy володіння
`channels[]`, коли явні метадані активації channel відсутні
- планування setup/runtime, ініційоване провайдером, повертається до legacy
володіння `providers[]` і `cliBackends[]` верхнього рівня, коли явні метадані
активації провайдера відсутні
## Довідник `setup`
Використовуйте `setup`, коли поверхням налаштування та онбордингу потрібні легкі метадані Plugin
Використовуйте `setup`, коли поверхням setup та онбордингу потрібні легкі метадані plugin
до завантаження середовища виконання.
```json
@ -321,48 +305,48 @@ OpenClaw зчитує це до завантаження середовища в
}
```
`cliBackends` верхнього рівня залишається валідним і надалі описує backend-и інференсу CLI.
`setup.cliBackends` — це поверхня дескрипторів, специфічна для налаштування, для потоків
control plane/налаштування, які мають залишатися лише на рівні метаданих.
`cliBackends` верхнього рівня залишається валідним і надалі описує
backend CLI inference. `setup.cliBackends` — це поверхня дескрипторів, специфічна для setup,
для потоків control-plane/setup, яка має залишатися лише метаданими.
Якщо присутні `setup.providers` і `setup.cliBackends`, вони є бажаною
поверхнею пошуку setup за принципом descriptor-first для виявлення налаштування. Якщо дескриптор лише
звужує кандидатний Plugin, а налаштуванню все ще потрібні багатші runtime-хуки часу налаштування,
встановіть `requiresRuntime: true` і залиште `setup-api` як
резервний шлях виконання.
За наявності `setup.providers` і `setup.cliBackends` є пріоритетною
поверхнею пошуку на основі дескрипторів для виявлення setup. Якщо дескриптор лише
звужує кандидатний plugin, а setup все ще потребує багатших hook середовища виконання під час setup,
установіть `requiresRuntime: true` і збережіть `setup-api` як
запасний шлях виконання.
Оскільки пошук setup може виконувати код `setup-api`, що належить Plugin,
нормалізовані значення `setup.providers[].id` і `setup.cliBackends[]` мають залишатися
унікальними серед виявлених Plugin. Неоднозначне володіння завершується закритою відмовою замість вибору
Оскільки пошук setup може виконувати код `setup-api`, що належить plugin,
нормалізовані значення `setup.providers[].id` і `setup.cliBackends[]` мають залишатися унікальними
серед виявлених plugin. Неоднозначне володіння призводить до закритої відмови замість вибору
переможця за порядком виявлення.
### Довідник `setup.providers`
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------- | ----------- | ---------- | ----------------------------------------------------------------------------------- |
| `id` | Так | `string` | Id провайдера, що надається під час налаштування або онбордингу. Зберігайте нормалізовані id глобально унікальними. |
| `authMethods` | Ні | `string[]` | Id методів налаштування/автентифікації, які цей провайдер підтримує без завантаження повного середовища виконання. |
| `envVars` | Ні | `string[]` | Env vars, які універсальні поверхні налаштування/статусу можуть перевіряти до завантаження середовища виконання Plugin. |
| `id` | Так | `string` | Id провайдера, що надається під час setup або онбордингу. Зберігайте нормалізовані id глобально унікальними. |
| `authMethods` | Ні | `string[]` | Id методів setup/auth, які цей провайдер підтримує без завантаження повного середовища виконання. |
| `envVars` | Ні | `string[]` | Env vars, які загальні поверхні setup/status можуть перевіряти до завантаження середовища виконання plugin. |
### Поля `setup`
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------------ | ----------- | ---------- | ---------------------------------------------------------------------------------------------------- |
| `providers` | Ні | `object[]` | Дескриптори налаштування провайдера, що надаються під час налаштування та онбордингу. |
| `cliBackends` | Ні | `string[]` | Id backend-ів часу налаштування, що використовуються для пошуку setup за принципом descriptor-first. Зберігайте нормалізовані id глобально унікальними. |
| `configMigrations` | Ні | `string[]` | Id міграцій конфігурації, якими володіє поверхня setup цього Plugin. |
| `requiresRuntime` | Ні | `boolean` | Чи потребує setup виконання `setup-api` навіть після пошуку за дескриптором. |
| `providers` | Ні | `object[]` | Дескриптори setup провайдера, що надаються під час setup та онбордингу. |
| `cliBackends` | Ні | `string[]` | Id backend під час setup, які використовуються для пошуку setup на основі дескрипторів. Зберігайте нормалізовані id глобально унікальними. |
| `configMigrations` | Ні | `string[]` | Id міграцій конфігурації, якими володіє поверхня setup цього plugin. |
| `requiresRuntime` | Ні | `boolean` | Чи потребує setup виконання `setup-api` після пошуку за дескриптором. |
## Довідник `uiHints`
`uiHints` — це мапа від імен полів конфігурації до невеликих підказок рендерингу.
`uiHints` — це мапа від назв полів конфігурації до невеликих підказок рендерингу.
```json
{
"uiHints": {
"apiKey": {
"label": "API key",
"help": "Used for OpenRouter requests",
"help": "Використовується для запитів OpenRouter",
"placeholder": "sk-or-v1-...",
"sensitive": true
}
@ -372,19 +356,19 @@ control plane/налаштування, які мають залишатися
Кожна підказка поля може містити:
| Поле | Тип | Що воно означає |
| ------------- | ---------- | --------------------------------------- |
| `label` | `string` | Мітка поля для користувача. |
| `help` | `string` | Короткий допоміжний текст. |
| `tags` | `string[]` | Необов’язкові теги UI. |
| `advanced` | `boolean` | Позначає поле як розширене. |
| `sensitive` | `boolean` | Позначає поле як секретне або чутливе. |
| `placeholder` | `string` | Текст-заповнювач для полів форми. |
| Поле | Тип | Що воно означає |
| ------------- | ---------- | ----------------------------------------- |
| `label` | `string` | Мітка поля для користувача. |
| `help` | `string` | Короткий допоміжний текст. |
| `tags` | `string[]` | Необов’язкові теги UI. |
| `advanced` | `boolean` | Позначає поле як розширене. |
| `sensitive` | `boolean` | Позначає поле як секретне або чутливе. |
| `placeholder` | `string` | Текст placeholder для полів форми. |
## Довідник `contracts`
Використовуйте `contracts` лише для статичних метаданих володіння можливостями, які OpenClaw може
зчитати без імпорту середовища виконання Plugin.
прочитати без імпорту середовища виконання plugin.
```json
{
@ -406,30 +390,30 @@ control plane/налаштування, які мають залишатися
Кожен список є необов’язковим:
| Поле | Тип | Що воно означає |
| -------------------------------- | ---------- | -------------------------------------------------------------------- |
| `embeddedExtensionFactories` | `string[]` | Id вбудованого runtime, для яких вбудований Plugin може реєструвати фабрики. |
| `externalAuthProviders` | `string[]` | Id провайдерів, чий зовнішній хук профілю автентифікації належить цьому Plugin. |
| `speechProviders` | `string[]` | Id провайдерів мовлення, якими володіє цей Plugin. |
| `realtimeTranscriptionProviders` | `string[]` | Id провайдерів транскрибування в реальному часі, якими володіє цей Plugin. |
| `realtimeVoiceProviders` | `string[]` | Id провайдерів голосу в реальному часі, якими володіє цей Plugin. |
| `mediaUnderstandingProviders` | `string[]` | Id провайдерів розуміння медіа, якими володіє цей Plugin. |
| `imageGenerationProviders` | `string[]` | Id провайдерів генерації зображень, якими володіє цей Plugin. |
| `videoGenerationProviders` | `string[]` | Id провайдерів генерації відео, якими володіє цей Plugin. |
| `webFetchProviders` | `string[]` | Id провайдерів web-fetch, якими володіє цей Plugin. |
| `webSearchProviders` | `string[]` | Id провайдерів web search, якими володіє цей Plugin. |
| `tools` | `string[]` | Імена інструментів агента, якими володіє цей Plugin для перевірок вбудованих контрактів. |
| Поле | Тип | Що воно означає |
| -------------------------------- | ---------- | ----------------------------------------------------------------- |
| `embeddedExtensionFactories` | `string[]` | Id вбудованого середовища виконання, для яких вбудований plugin може реєструвати factories. |
| `externalAuthProviders` | `string[]` | Id провайдерів, hook зовнішнього профілю auth яких належить цьому plugin. |
| `speechProviders` | `string[]` | Id провайдерів speech, якими володіє цей plugin. |
| `realtimeTranscriptionProviders` | `string[]` | Id провайдерів realtime-transcription, якими володіє цей plugin. |
| `realtimeVoiceProviders` | `string[]` | Id провайдерів realtime-voice, якими володіє цей plugin. |
| `mediaUnderstandingProviders` | `string[]` | Id провайдерів media-understanding, якими володіє цей plugin. |
| `imageGenerationProviders` | `string[]` | Id провайдерів image-generation, якими володіє цей plugin. |
| `videoGenerationProviders` | `string[]` | Id провайдерів video-generation, якими володіє цей plugin. |
| `webFetchProviders` | `string[]` | Id провайдерів web-fetch, якими володіє цей plugin. |
| `webSearchProviders` | `string[]` | Id провайдерів web-search, якими володіє цей plugin. |
| `tools` | `string[]` | Назви tools агента, якими володіє цей plugin для перевірок контрактів вбудованих plugin. |
Plugin провайдера, які реалізують `resolveExternalAuthProfiles`, повинні оголошувати
Plugin провайдера, які реалізують `resolveExternalAuthProfiles`, мають оголошувати
`contracts.externalAuthProviders`. Plugin без цього оголошення все ще працюють
через застарілий резервний механізм сумісності, але цей механізм повільніший і
буде видалений після завершення вікна міграції.
через застарілий запасний механізм сумісності, але він повільніший і
буде видалений після вікна міграції.
## Довідник `mediaUnderstandingProviderMetadata`
Використовуйте `mediaUnderstandingProviderMetadata`, коли провайдер розуміння медіа має
моделі за замовчуванням, пріоритет резервного автоавтентифікації або власну підтримку документів, які
універсальним допоміжним засобам ядра потрібні до завантаження runtime. Ключі також мають бути оголошені в
Використовуйте `mediaUnderstandingProviderMetadata`, коли провайдер media-understanding має
типові моделі, пріоритет запасного auto-auth або нативну підтримку документів, які
загальним допоміжним засобам ядра потрібні до завантаження середовища виконання. Ключі також мають бути оголошені в
`contracts.mediaUnderstandingProviders`.
```json
@ -455,17 +439,17 @@ Plugin провайдера, які реалізують `resolveExternalAuthPro
Кожен запис провайдера може містити:
| Поле | Тип | Що воно означає |
| ---------------------- | ----------------------------------- | --------------------------------------------------------------------------- |
| `capabilities` | `("image" \| "audio" \| "video")[]` | Можливості медіа, які надає цей провайдер. |
| `defaultModels` | `Record<string, string>` | Типові значення зіставлення можливостей із моделями, які використовуються, коли конфігурація не задає модель. |
| `autoPriority` | `Record<string, number>` | Менші числа сортуються раніше для автоматичного резервного вибору провайдера на основі облікових даних. |
| `nativeDocumentInputs` | `"pdf"[]` | Власні вхідні дані документів, які підтримує провайдер. |
| Поле | Тип | Що воно означає |
| ---------------------- | ----------------------------------- | ---------------------------------------------------------------------------- |
| `capabilities` | `("image" \| "audio" \| "video")[]` | Медіаможливості, які надає цей провайдер. |
| `defaultModels` | `Record<string, string>` | Типові відповідності можливість-модель, які використовуються, коли конфігурація не задає модель. |
| `autoPriority` | `Record<string, number>` | Менші числа сортуються раніше для автоматичного запасного вибору провайдера на основі облікових даних. |
| `nativeDocumentInputs` | `"pdf"[]` | Нативні входи документів, які підтримує провайдер. |
## Довідник `channelConfigs`
Використовуйте `channelConfigs`, коли Plugin каналу потребує легких метаданих конфігурації до
завантаження runtime.
Використовуйте `channelConfigs`, коли plugin channel потребує легких метаданих конфігурації
до завантаження середовища виконання.
```json
{
@ -480,32 +464,32 @@ Plugin провайдера, які реалізують `resolveExternalAuthPro
},
"uiHints": {
"homeserverUrl": {
"label": "Homeserver URL",
"label": "URL homeserver",
"placeholder": "https://matrix.example.com"
}
},
"label": "Matrix",
"description": "Matrix homeserver connection",
"description": "Підключення до homeserver Matrix",
"preferOver": ["matrix-legacy"]
}
}
}
```
Кожен запис каналу може містити:
Кожен запис channel може містити:
| Поле | Тип | Що воно означає |
| ------------- | ------------------------ | ------------------------------------------------------------------------------- |
| `schema` | `object` | Схема JSON для `channels.<id>`. Обов’язкова для кожного оголошеного запису конфігурації каналу. |
| `uiHints` | `Record<string, object>` | Необов’язкові мітки UI/заповнювачі/підказки чутливості для цього розділу конфігурації каналу. |
| `label` | `string` | Мітка каналу, що об’єднується в поверхні вибору та інспектування, коли метадані runtime ще не готові. |
| `description` | `string` | Короткий опис каналу для поверхонь інспектування та каталогу. |
| `preferOver` | `string[]` | Id застарілих або менш пріоритетних Plugin, які цей канал має перевершувати в поверхнях вибору. |
| ------------- | ------------------------ | -------------------------------------------------------------------------------- |
| `schema` | `object` | JSON Schema для `channels.<id>`. Обов’язкова для кожного оголошеного запису конфігурації channel. |
| `uiHints` | `Record<string, object>` | Необов’язкові мітки UI/placeholders/підказки чутливості для цього розділу конфігурації channel. |
| `label` | `string` | Мітка channel, що об’єднується в поверхні вибору та перевірки, коли метадані середовища виконання ще не готові. |
| `description` | `string` | Короткий опис channel для поверхонь перевірки та каталогу. |
| `preferOver` | `string[]` | Id застарілих plugin або plugin з нижчим пріоритетом, які цей channel має випереджати в поверхнях вибору. |
## Довідник `modelSupport`
Використовуйте `modelSupport`, коли OpenClaw має виводити ваш Plugin провайдера з
скорочених id моделей, таких як `gpt-5.4` або `claude-sonnet-4.6`, до завантаження runtime Plugin.
Використовуйте `modelSupport`, коли OpenClaw має виводити ваш plugin провайдера з
скорочених id моделей, таких як `gpt-5.4` або `claude-sonnet-4.6`, до завантаження середовища виконання plugin.
```json
{
@ -519,16 +503,16 @@ Plugin провайдера, які реалізують `resolveExternalAuthPro
OpenClaw застосовує такий пріоритет:
- явні посилання `provider/model` використовують метадані маніфесту `providers`, що належать власнику
- `modelPatterns` мають вищий пріоритет за `modelPrefixes`
- якщо збігаються один невбудований Plugin і один вбудований Plugin, перемагає невбудований
Plugin
- решта неоднозначностей ігнорується, доки користувач або конфігурація не вкаже провайдера
- `modelPatterns` мають вищий пріоритет, ніж `modelPrefixes`
- якщо збігаються один невбудований plugin і один вбудований plugin, перемагає невбудований
plugin
- решта неоднозначностей ігнорується, доки користувач або конфігурація не вкажуть провайдера
Поля:
| Поле | Тип | Що воно означає |
| --------------- | ---------- | ------------------------------------------------------------------------------ |
| `modelPrefixes` | `string[]` | Префікси, що зіставляються через `startsWith` зі скороченими id моделей. |
| Поле | Тип | Що воно означає |
| --------------- | ---------- | ---------------------------------------------------------------------------- |
| `modelPrefixes` | `string[]` | Префікси, що зіставляються через `startsWith` зі скороченими id моделей. |
| `modelPatterns` | `string[]` | Джерела regex, що зіставляються зі скороченими id моделей після видалення суфікса профілю. |
Застарілі ключі можливостей верхнього рівня застаріли. Використовуйте `openclaw doctor --fix`, щоб
@ -541,77 +525,76 @@ OpenClaw застосовує такий пріоритет:
## Маніфест і `package.json`
Ці два файли виконують різні ролі:
Ці два файли виконують різні завдання:
| Файл | Для чого використовувати |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані вибору автентифікації та підказки UI, які мають існувати до запуску коду Plugin |
| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, який використовується для точок входу, обмеження встановлення, налаштування або метаданих каталогу |
| Файл | Для чого використовувати |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані варіантів auth і підказки UI, які мають існувати до запуску коду plugin |
| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, який використовується для точок входу, обмежень встановлення, setup або метаданих каталогу |
Якщо ви не впевнені, куди належить певний фрагмент метаданих, використовуйте таке правило:
Якщо ви не впевнені, куди має належати певний фрагмент метаданих, використовуйте таке правило:
- якщо OpenClaw має знати це до завантаження коду Plugin, помістіть це в `openclaw.plugin.json`
- якщо OpenClaw має знати це до завантаження коду plugin, помістіть це в `openclaw.plugin.json`
- якщо це стосується пакування, файлів точок входу або поведінки встановлення npm, помістіть це в `package.json`
### Поля `package.json`, які впливають на виявлення
Деякі метадані Plugin до запуску runtime навмисно розміщено в `package.json` у блоці
Деякі метадані plugin до запуску середовища виконання навмисно зберігаються в `package.json` у блоці
`openclaw`, а не в `openclaw.plugin.json`.
Важливі приклади:
| Поле | Що воно означає |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `openclaw.extensions` | Оголошує власні точки входу Plugin. Повинні залишатися всередині каталогу пакета Plugin. |
| `openclaw.runtimeExtensions` | Оголошує точки входу built JavaScript runtime для встановлених пакетів. Повинні залишатися всередині каталогу пакета Plugin. |
| `openclaw.setupEntry` | Легка точка входу лише для setup, яка використовується під час онбордингу, відкладеного запуску каналу та виявлення статусу каналу/SecretRef лише для читання. Повинна залишатися всередині каталогу пакета Plugin. |
| `openclaw.runtimeSetupEntry` | Оголошує built JavaScript точку входу setup для встановлених пакетів. Повинна залишатися всередині каталогу пакета Plugin. |
| `openclaw.channel` | Легкі метадані каталогу каналу, такі як мітки, шляхи до документації, псевдоніми та текст для вибору. |
| `openclaw.channel.configuredState` | Легкі метадані перевірки налаштованого стану, які можуть відповісти на запитання «чи вже існує налаштування лише через env?» без завантаження повного runtime каналу. |
| `openclaw.channel.persistedAuthState` | Легкі метадані перевірки збереженого стану автентифікації, які можуть відповісти на запитання «чи вже виконано вхід кудись?» без завантаження повного runtime каналу. |
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки встановлення/оновлення для вбудованих і зовнішньо опублікованих Plugin. |
| `openclaw.install.defaultChoice` | Бажаний шлях встановлення, коли доступно кілька джерел встановлення. |
| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw, із використанням нижньої межі semver, як-от `>=2026.3.22`. |
| `openclaw.install.expectedIntegrity` | Очікуваний рядок npm dist integrity, наприклад `sha512-...`; потоки встановлення та оновлення звіряють із ним завантажений артефакт. |
| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення перевстановлення вбудованого Plugin, коли конфігурація невалідна. |
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє поверхням каналу лише для setup завантажуватися до повного Plugin каналу під час запуску. |
| `openclaw.extensions` | Оголошує точки входу нативного plugin. Має залишатися в межах каталогу пакета plugin. |
| `openclaw.runtimeExtensions` | Оголошує точки входу зібраного JavaScript runtime для встановлених пакетів. Має залишатися в межах каталогу пакета plugin. |
| `openclaw.setupEntry` | Легка точка входу лише для setup, яка використовується під час онбордингу, відкладеного запуску channel і виявлення status/SecretRef channel у режимі лише читання. Має залишатися в межах каталогу пакета plugin. |
| `openclaw.runtimeSetupEntry` | Оголошує зібрану JavaScript-точку входу setup для встановлених пакетів. Має залишатися в межах каталогу пакета plugin. |
| `openclaw.channel` | Легкі метадані каталогу channel, такі як мітки, шляхи до документації, псевдоніми та текст для вибору. |
| `openclaw.channel.configuredState` | Легкі метадані перевірки налаштованого стану, які можуть відповісти на запитання «чи вже існує налаштування лише через env?» без завантаження повного runtime channel. |
| `openclaw.channel.persistedAuthState` | Легкі метадані перевірки збереженого auth-стану, які можуть відповісти на запитання «чи вже є хоч один вхід у систему?» без завантаження повного runtime channel. |
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки для встановлення/оновлення вбудованих plugin і plugin, опублікованих зовні. |
| `openclaw.install.defaultChoice` | Бажаний шлях встановлення, коли доступно кілька джерел встановлення. |
| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw, із використанням нижньої межі semver, наприклад `>=2026.3.22`. |
| `openclaw.install.expectedIntegrity` | Очікуваний рядок цілісності npm dist, наприклад `sha512-...`; потоки встановлення та оновлення перевіряють завантажений артефакт за ним. |
| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення через перевстановлення вбудованого plugin, коли конфігурація невалідна. |
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє поверхням channel лише для setup завантажуватися під час запуску раніше, ніж повний plugin channel. |
Метадані маніфесту визначають, які варіанти провайдера/каналу/setup з’являються в
Метадані маніфесту визначають, які варіанти провайдера/channel/setup з’являються в
онбордингу до завантаження runtime. `package.json#openclaw.install` повідомляє
онбордингу, як отримати або ввімкнути цей Plugin, коли користувач вибирає один із цих
варіантів. Не переносіть підказки встановлення в `openclaw.plugin.json`.
онбордингу, як отримати або ввімкнути цей plugin, коли користувач вибирає один із цих
варіантів. Не переносіть підказки встановлення до `openclaw.plugin.json`.
`openclaw.install.minHostVersion` застосовується під час встановлення та завантаження
реєстру маніфестів. Невалідні значення відхиляються; новіші, але валідні значення пропускають
Plugin на старіших хостах.
plugin на старіших хостах.
Точне закріплення версії npm уже живе в `npmSpec`, наприклад
`"npmSpec": "@wecom/wecom-openclaw-plugin@1.2.3"`. Поєднуйте це з
`expectedIntegrity`, якщо хочете, щоб потоки оновлення завершувалися закритою відмовою, коли завантажений
`expectedIntegrity`, коли хочете, щоб потоки оновлення завершувалися закритою відмовою, якщо завантажений
артефакт npm більше не відповідає закріпленому релізу. Інтерактивний онбординг
пропонує довірені npm-специфікації реєстру, зокрема прості назви пакетів і dist-tag. Коли
`expectedIntegrity` присутній, потоки встановлення/оновлення застосовують його; коли його
пропущено, дозвіл реєстру записується без закріплення цілісності.
пропонує npm specs довіреного реєстру, включно з просто назвами пакетів і dist-tags.
Коли присутній `expectedIntegrity`, потоки встановлення/оновлення застосовують його; коли
він відсутній, дозвіл реєстру записується без pin цілісності.
Plugin каналу повинні надавати `openclaw.setupEntry`, коли статус, список каналів
Plugin channel мають надавати `openclaw.setupEntry`, коли status, список channel
або сканування SecretRef мають визначати налаштовані облікові записи без завантаження повного
runtime. Точка входу setup має надавати метадані каналу разом із безпечною для setup конфігурацією,
статусом і адаптерами секретів; зберігайте мережеві клієнти, слухачі Gateway і
transport runtime у головній точці входу extension.
runtime. Точка входу setup має надавати метадані channel разом із безпечними для setup адаптерами конфігурації,
status і secrets; зберігайте мережеві клієнти, listeners Gateway і
transport runtimes в основній точці входу extension.
Поля точки входу runtime не перевизначають перевірки меж пакета для полів
точки входу вихідного коду. Наприклад, `openclaw.runtimeExtensions` не може зробити
завантажуваним шлях `openclaw.extensions`, що виходить за межі.
`openclaw.install.allowInvalidConfigRecovery` навмисно вузький. Він не
робить довільні зламані конфігурації встановлюваними. Сьогодні він лише дозволяє потокам встановлення
відновлюватися після певних застарілих збоїв оновлення вбудованого Plugin, таких як
відсутній шлях до вбудованого Plugin або застарілий запис `channels.<id>` для того самого
вбудованого Plugin. Непов’язані помилки конфігурації все одно блокують встановлення і спрямовують операторів
`openclaw.install.allowInvalidConfigRecovery` навмисно вузький. Він
не робить довільно зламані конфігурації придатними до встановлення. Наразі він лише дозволяє потокам встановлення
відновлюватися після певних застарілих збоїв оновлення вбудованого plugin, наприклад
відсутнього шляху до вбудованого plugin або застарілого запису `channels.<id>` для цього ж
вбудованого plugin. Непов’язані помилки конфігурації, як і раніше, блокують встановлення та спрямовують операторів
до `openclaw doctor --fix`.
`openclaw.channel.persistedAuthState` — це метадані пакета для крихітного модуля
перевірки:
`openclaw.channel.persistedAuthState` — це метадані пакета для крихітного модуля перевірки:
```json
{
@ -627,12 +610,12 @@ transport runtime у головній точці входу extension.
}
```
Використовуйте це, коли потокам setup, doctor або configured-state потрібна дешева перевірка
автентифікації «так/ні» до завантаження повного Plugin каналу. Цільовий експорт має бути невеликою
функцією, яка читає лише збережений стан; не спрямовуйте її через повний barrel runtime
каналу.
Використовуйте це, коли потокам setup, doctor або configured-state потрібна дешева перевірка auth
у форматі так/ні до завантаження повного plugin channel. Цільовий експорт має бути невеликою
функцією, яка читає лише збережений стан; не маршрутизуйте це через повний barrel runtime
channel.
`openclaw.channel.configuredState` використовує ту саму форму для дешевих перевірок
`openclaw.channel.configuredState` має таку саму форму для дешевих перевірок
налаштованого стану лише через env:
```json
@ -649,95 +632,67 @@ transport runtime у головній точці входу extension.
}
```
Використовуйте це, коли канал може відповідати про налаштований стан через env або інші малі
входи, не пов’язані з runtime. Якщо перевірка потребує повного розв’язання конфігурації або справжнього
runtime каналу, зберігайте цю логіку натомість у хуку Plugin `config.hasConfiguredState`.
Використовуйте це, коли channel може відповісти про налаштований стан через env або інші маленькі
невиконувані входи. Якщо перевірка потребує повного розв’язання конфігурації або реального
runtime channel, залиште цю логіку в hook plugin `config.hasConfiguredState`.
## Пріоритет виявлення (дублікати id Plugin)
## Пріоритет виявлення (дублікати id plugin)
OpenClaw виявляє Plugin з кількох коренів (вбудовані, глобальне встановлення, workspace, явно вибрані в конфігурації шляхи). Якщо два виявлення мають спільний `id`, зберігається лише маніфест із **найвищим пріоритетом**; дублікати з нижчим пріоритетом відкидаються замість завантаження поруч.
OpenClaw виявляє plugin із кількох коренів (вбудовані, глобальне встановлення, workspace, явно вибрані в конфігурації шляхи). Якщо два виявлені plugin мають однаковий `id`, зберігається лише маніфест із **найвищим пріоритетом**; дублікати з нижчим пріоритетом відкидаються замість завантаження поруч.
Пріоритет, від найвищого до найнижчого:
Пріоритет від найвищого до найнижчого:
1. **Вибраний у конфігурації** — шлях, явно закріплений у `plugins.entries.<id>`
2. **Вбудований**Plugin, що постачаються разом з OpenClaw
3. **Глобальне встановлення**Plugin, встановлені в глобальний корінь Plugin OpenClaw
4. **Workspace**Plugin, виявлені відносно поточного workspace
2. **Вбудований**plugin, що постачаються з OpenClaw
3. **Глобальне встановлення**plugin, встановлені в глобальний корінь plugin OpenClaw
4. **Workspace**plugin, виявлені відносно поточного workspace
Наслідки:
- Розгалужена або застаріла копія вбудованого Plugin, що лежить у workspace, не затьмарить вбудовану збірку.
- Щоб справді перевизначити вбудований Plugin локальним, закріпіть його через `plugins.entries.<id>`, щоб він переміг за пріоритетом, а не покладався на виявлення у workspace.
- Відкидання дублікатів записується в журнал, щоб Doctor і діагностика запуску могли вказати на відкинуту копію.
- Розгалужена або застаріла копія вбудованого plugin, що лежить у workspace, не перекриє вбудовану збірку.
- Щоб справді перевизначити вбудований plugin локальним, закріпіть його через `plugins.entries.<id>`, щоб він переміг за пріоритетом, а не покладайтесь на виявлення у workspace.
- Відкидання дублікатів логуються, щоб Doctor і діагностика запуску могли вказати на відкинуту копію.
## Вимоги до схеми JSON
## Вимоги до JSON Schema
- **Кожен Plugin повинен постачати схему JSON**, навіть якщо він не приймає конфігурацію.
- Порожня схема допустима (наприклад, `{ "type": "object", "additionalProperties": false }`).
- Схеми проходять валідацію під час читання/запису конфігурації, а не під час виконання.
- **Кожен plugin повинен постачатися з JSON Schema**, навіть якщо він не приймає конфігурацію.
- Порожня схема прийнятна (наприклад, `{ "type": "object", "additionalProperties": false }`).
- Схеми проходять валідацію під час читання/запису конфігурації, а не під час runtime.
## Поведінка валідації
- Невідомі ключі `channels.*` є **помилками**, якщо тільки id каналу не оголошено
маніфестом Plugin.
- Невідомі ключі `channels.*` — це **помилки**, якщо тільки id channel не оголошено
в маніфесті plugin.
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` і `plugins.slots.*`
повинні посилатися на id Plugin, які **можна виявити**. Невідомі id є **помилками**.
- Якщо Plugin встановлено, але він має зламаний або відсутній маніфест чи схему,
валідація завершується помилкою, а Doctor повідомляє про помилку Plugin.
- Якщо конфігурація Plugin існує, але Plugin **вимкнено**, конфігурація зберігається і
в Doctor + журналах показується **попередження**.
мають посилатися на **виявлювані** id plugin. Невідомі id — це **помилки**.
- Якщо plugin встановлено, але він має зламаний або відсутній маніфест чи схему,
валідація завершується помилкою, а Doctor повідомляє про помилку plugin.
- Якщо конфігурація plugin існує, але plugin **вимкнено**, конфігурація зберігається, і
в Doctor + логах показується **попередження**.
Повну схему `plugins.*` дивіться в [Довідник конфігурації](/uk/gateway/configuration).
Див. [Configuration reference](/uk/gateway/configuration) для повної схеми `plugins.*`.
## Примітки
- Маніфест **обов’язковий для власних Plugin OpenClaw**, зокрема для локальних завантажень із файлової системи.
- Runtime усе одно завантажує модуль Plugin окремо; маніфест використовується лише для
виявлення + валідації.
- Власні маніфести розбираються через JSON5, тому коментарі, кінцеві коми та
ключі без лапок приймаються, якщо фінальне значення все ще є об’єктом.
- Завантажувач маніфесту читає лише задокументовані поля маніфесту. Уникайте додавання
тут власних ключів верхнього рівня.
- `providerAuthEnvVars` — це шлях дешевих метаданих для перевірок автентифікації, валідації
env-marker та подібних поверхонь автентифікації провайдера, які не повинні запускати runtime Plugin
лише для перевірки імен env.
- `providerAuthAliases` дозволяє варіантам провайдера повторно використовувати env vars
автентифікації, профілі автентифікації, автентифікацію на основі конфігурації та варіант
онбордингу з API-ключем іншого провайдера без жорсткого кодування цього зв’язку в ядрі.
- `providerEndpoints` дозволяє Plugin провайдера володіти простими метаданими
зіставлення хостів/`baseUrl` кінцевих точок. Використовуйте це лише для класів кінцевих точок, які ядро вже підтримує;
поведінкою runtime як і раніше володіє Plugin.
- `syntheticAuthRefs` — це шлях дешевих метаданих для синтетичних
хуків автентифікації, що належать провайдеру, які мають бути видимими для холодного виявлення моделей до того, як реєстр
runtime почне існувати. Вказуйте лише посилання, чий runtime-провайдер або backend CLI справді
реалізує `resolveSyntheticAuth`.
- `nonSecretAuthMarkers` — це шлях дешевих метаданих для значень-заповнювачів API-ключів,
що належать вбудованому Plugin, таких як локальні маркери, OAuth або ambient credential.
Ядро розглядає їх як несекретні для відображення автентифікації та аудитів секретів без
жорсткого кодування провайдера-власника.
- `channelEnvVars` — це шлях дешевих метаданих для резервного використання shell-env, підказок setup
та подібних поверхонь каналів, які не повинні запускати runtime Plugin
лише для перевірки імен env. Імена env — це метадані, а не активація самі по
собі: статус, аудит, перевірка доставки Cron та інші поверхні лише для читання все одно
застосовують довіру до Plugin і політику ефективної активації, перш ніж
розглядати env var як налаштований канал.
- `providerAuthChoices` — це шлях дешевих метаданих для селекторів варіантів автентифікації,
розв’язання `--auth-choice`, зіставлення пріоритетного провайдера та простої
реєстрації прапорців CLI онбордингу до завантаження runtime провайдера. Для метаданих
wizard runtime, які потребують коду провайдера, див.
[Хуки runtime провайдера](/uk/plugins/architecture#provider-runtime-hooks).
- Ексклюзивні типи Plugin вибираються через `plugins.slots.*`.
- `kind: "memory"` вибирається через `plugins.slots.memory`.
- `kind: "context-engine"` вибирається через `plugins.slots.contextEngine`
(типово: вбудований `legacy`).
- `channels`, `providers`, `cliBackends` і `skills` можна не вказувати, коли
Plugin їх не потребує.
- Якщо ваш Plugin залежить від власних модулів, задокументуйте кроки збірки та всі
вимоги до allowlist менеджера пакетів (наприклад, pnpm `allow-build-scripts`
- `pnpm rebuild <package>`).
- Маніфест **обов’язковий для нативних plugin OpenClaw**, включно із завантаженням із локальної файлової системи. Runtime, як і раніше, завантажує модуль plugin окремо; маніфест потрібен лише для виявлення + валідації.
- Нативні маніфести розбираються за допомогою JSON5, тому коментарі, завершальні коми та ключі без лапок дозволені, якщо кінцеве значення все одно є об’єктом.
- Завантажувач маніфесту читає лише задокументовані поля маніфесту. Уникайте користувацьких ключів верхнього рівня.
- `channels`, `providers`, `cliBackends` і `skills` можна не вказувати, якщо plugin їх не потребує.
- Ексклюзивні типи plugin вибираються через `plugins.slots.*`: `kind: "memory"` через `plugins.slots.memory`, `kind: "context-engine"` через `plugins.slots.contextEngine` (типово `legacy`).
- Метадані env vars (`providerAuthEnvVars`, `channelEnvVars`) є лише декларативними. Status, audit, валідація доставки Cron та інші поверхні лише для читання все одно застосовують політику довіри до plugin і ефективної активації перед тим, як вважати env var налаштованою.
- Щодо метаданих runtime wizard, які потребують коду провайдера, див. [Provider runtime hooks](/uk/plugins/architecture#provider-runtime-hooks).
- Якщо ваш plugin залежить від нативних модулів, задокументуйте кроки збірки та будь-які вимоги до allowlist менеджера пакетів (наприклад, pnpm `allow-build-scripts` + `pnpm rebuild <package>`).
## Пов’язане
- [Створення Plugins](/uk/plugins/building-plugins) — початок роботи з Plugins
- [Архітектура Plugin](/uk/plugins/architecture) — внутрішня архітектура
- [Огляд SDK](/uk/plugins/sdk-overview) — довідник SDK Plugin
<CardGroup cols={3}>
<Card title="Створення plugin" href="/uk/plugins/building-plugins" icon="rocket">
Початок роботи з plugin.
</Card>
<Card title="Архітектура plugin" href="/uk/plugins/architecture" icon="diagram-project">
Внутрішня архітектура та модель можливостей.
</Card>
<Card title="Огляд SDK" href="/uk/plugins/sdk-overview" icon="book">
Довідник SDK plugin і імпорти subpath.
</Card>
</CardGroup>

View File

@ -6,20 +6,20 @@ read_when:
summary: Використовуйте OpenAI через API-ключі або підписку Codex в OpenClaw
title: OpenAI
x-i18n:
generated_at: "2026-04-23T16:52:29Z"
generated_at: "2026-04-23T16:57:03Z"
model: gpt-5.4
provider: openai
source_hash: a7655fec1e986ccbd01a34f0434e4a88d08c672e0e0cba6c2a8978f11f5f519d
source_hash: 4e03126c2b47514c1bfa364feb5c0c2d452d0e389030c70edd5d9dc7dee3264e
source_path: providers/openai.md
workflow: 15
---
# OpenAI
OpenAI надає API для розробників для моделей GPT. OpenClaw підтримує два варіанти автентифікації:
OpenAI надає API для розробників для моделей GPT. OpenClaw підтримує два способи автентифікації:
- **API-ключ** — прямий доступ до OpenAI Platform з тарифікацією за використання (`openai/*` models)
- **Підписка Codex** — вхід через ChatGPT/Codex із доступом за підпискою (`openai-codex/*` models)
- **API-ключ** — прямий доступ до OpenAI Platform з оплатою за використання (`openai/*` моделі)
- **Підписка Codex** — вхід через ChatGPT/Codex із доступом за підпискою (`openai-codex/*` моделі)
OpenAI прямо підтримує використання OAuth-підписки в зовнішніх інструментах і робочих процесах, таких як OpenClaw.
@ -29,14 +29,14 @@ x-i18n:
| ------------------------- | ----------------------------------------- | ------------------------------------------------------ |
| Чат / Responses | Провайдер моделей `openai/<model>` | Так |
| Моделі підписки Codex | Провайдер моделей `openai-codex/<model>` | Так |
| Вебпошук на стороні сервера | Вбудований інструмент OpenAI Responses | Так, коли вебпошук увімкнено і провайдера не закріплено |
| Пошук у вебі на стороні сервера | Власний інструмент OpenAI Responses | Так, коли пошук у вебі ввімкнено і провайдера не закріплено |
| Зображення | `image_generate` | Так |
| Відео | `video_generate` | Так |
| Перетворення тексту на мовлення | `messages.tts.provider: "openai"` / `tts` | Так |
| Пакетне перетворення мовлення на текст | `tools.media.audio` / розуміння медіа | Так |
| Потокове перетворення мовлення на текст | Voice Call `streaming.provider: "openai"` | Так |
| Перетворення тексту на мовлення | `messages.tts.provider: "openai"` / `tts` | Так |
| Пакетне перетворення мовлення на текст | `tools.media.audio` / розуміння медіа | Так |
| Потокове перетворення мовлення на текст | Voice Call `streaming.provider: "openai"` | Так |
| Голос у реальному часі | Voice Call `realtime.provider: "openai"` | Так |
| Векторні подання | провайдер embedding для пам’яті | Так |
| Embeddings | Провайдер embedding для пам’яті | Так |
## Початок роботи
@ -44,13 +44,13 @@ x-i18n:
<Tabs>
<Tab title="API-ключ (OpenAI Platform)">
**Найкраще підходить для:** прямого доступу до API та тарифікації за використання.
**Найкраще для:** прямого доступу до API та оплати за використання.
<Steps>
<Step title="Отримайте свій API-ключ">
Створіть або скопіюйте API-ключ на [панелі OpenAI Platform](https://platform.openai.com/api-keys).
</Step>
<Step title="Запустіть онбординг">
<Step title="Запустіть початкове налаштування">
```bash
openclaw onboard --auth-choice openai-api-key
```
@ -61,22 +61,22 @@ x-i18n:
openclaw onboard --openai-api-key "$OPENAI_API_KEY"
```
</Step>
<Step title="Перевірте, що модель доступна">
<Step title="Переконайтеся, що модель доступна">
```bash
openclaw models list --provider openai
```
</Step>
</Steps>
### Зведення маршрутів
### Підсумок маршруту
| Model ref | Маршрут | Автентифікація |
| Посилання на модель | Маршрут | Автентифікація |
|-----------|-------|------|
| `openai/gpt-5.4` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
| `openai/gpt-5.4-pro` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
<Note>
Вхід через ChatGPT/Codex маршрутизується через `openai-codex/*`, а не `openai/*`.
Вхід через ChatGPT/Codex маршрутизується через `openai-codex/*`, а не через `openai/*`.
</Note>
### Приклад конфігурації
@ -89,13 +89,13 @@ x-i18n:
```
<Warning>
OpenClaw **не** надає `openai/gpt-5.3-codex-spark` у прямому маршруті API. Живі запити до OpenAI API відхиляють цю модель. Spark доступний лише для Codex.
OpenClaw **не** надає `openai/gpt-5.3-codex-spark` на прямому шляху API. Живі запити до OpenAI API відхиляють цю модель. Spark доступний лише в Codex.
</Warning>
</Tab>
<Tab title="Підписка Codex">
**Найкраще підходить для:** використання вашої підписки ChatGPT/Codex замість окремого API-ключа. Codex cloud потребує входу через ChatGPT.
**Найкраще для:** використання вашої підписки ChatGPT/Codex замість окремого API-ключа. Codex cloud потребує входу через ChatGPT.
<Steps>
<Step title="Запустіть Codex OAuth">
@ -109,33 +109,33 @@ x-i18n:
openclaw models auth login --provider openai-codex
```
Для headless-середовищ або конфігурацій, несумісних із callback, додайте `--device-code`, щоб увійти через потік device-code ChatGPT замість callback браузера на localhost:
Для headless-середовищ або конфігурацій, де callback небажаний, додайте `--device-code`, щоб увійти через потік device-code ChatGPT замість callback браузера на localhost:
```bash
openclaw models auth login --provider openai-codex --device-code
```
</Step>
<Step title="Встановіть модель за замовчуванням">
<Step title="Установіть модель за замовчуванням">
```bash
openclaw config set agents.defaults.model.primary openai-codex/gpt-5.4
```
</Step>
<Step title="Перевірте, що модель доступна">
<Step title="Переконайтеся, що модель доступна">
```bash
openclaw models list --provider openai-codex
```
</Step>
</Steps>
### Зведення маршрутів
### Підсумок маршруту
| Model ref | Маршрут | Автентифікація |
| Посилання на модель | Маршрут | Автентифікація |
|-----------|-------|------|
| `openai-codex/gpt-5.4` | ChatGPT/Codex OAuth | Вхід Codex |
| `openai-codex/gpt-5.3-codex-spark` | ChatGPT/Codex OAuth | Вхід Codex (залежить від entitlement) |
<Note>
Цей маршрут навмисно відокремлено від `openai/gpt-5.4`. Використовуйте `openai/*` з API-ключем для прямого доступу до Platform, а `openai-codex/*` — для доступу за підпискою Codex.
Цей маршрут навмисно відокремлено від `openai/gpt-5.4`. Використовуйте `openai/*` з API-ключем для прямого доступу до Platform, а `openai-codex/*` — для доступу через підписку Codex.
</Note>
### Приклад конфігурації
@ -147,10 +147,10 @@ x-i18n:
```
<Note>
Онбординг більше не імпортує OAuth-матеріали з `~/.codex`. Увійдіть через OAuth у браузері (типово) або через наведений вище потік device-code — OpenClaw зберігає отримані облікові дані у власному сховищі автентифікації агентів.
Початкове налаштування більше не імпортує OAuth-матеріали з `~/.codex`. Увійдіть через браузерний OAuth (типово) або через наведений вище потік device-code — OpenClaw зберігає отримані облікові дані у власному сховищі автентифікації агентів.
</Note>
### Обмеження вікна контексту
### Обмеження контекстного вікна
OpenClaw розглядає метадані моделі та обмеження контексту під час виконання як окремі значення.
@ -159,7 +159,7 @@ x-i18n:
- Власне `contextWindow`: `1050000`
- Типове обмеження `contextTokens` під час виконання: `272000`
Менше типове обмеження на практиці забезпечує кращі характеристики затримки та якості. Перевизначте його через `contextTokens`:
Менше типове обмеження на практиці забезпечує кращі характеристики затримки та якості. Замініть його через `contextTokens`:
```json5
{
@ -174,7 +174,7 @@ x-i18n:
```
<Note>
Використовуйте `contextWindow`, щоб указати власні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту під час виконання.
Використовуйте `contextWindow`, щоб оголосити власні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту під час виконання.
</Note>
</Tab>
@ -186,10 +186,10 @@ x-i18n:
| Можливість | Значення |
| ------------------------ | ---------------------------------- |
| Типова модель | `openai/gpt-image-2` |
| Модель за замовчуванням | `openai/gpt-image-2` |
| Максимум зображень на запит | 4 |
| Режим редагування | Увімкнено (до 5 еталонних зображень) |
| Перевизначення розміру | Підтримується, зокрема розміри 2K/4K |
| Перевизначення розміру | Підтримується, включно з розмірами 2K/4K |
| Співвідношення сторін / роздільна здатність | Не передається до OpenAI Images API |
```json5
@ -203,32 +203,32 @@ x-i18n:
```
<Note>
Див. [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку failover.
Перегляньте [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку резервного перемикання.
</Note>
`gpt-image-2` — типова модель як для генерації зображень з тексту в OpenAI, так і для редагування зображень. `gpt-image-1` усе ще можна використовувати як явне перевизначення моделі, але нові робочі процеси OpenAI для зображень мають використовувати `openai/gpt-image-2`.
`gpt-image-2` є типовою моделлю як для генерації зображень із тексту OpenAI, так і для редагування зображень. `gpt-image-1` і далі можна використовувати як явне перевизначення моделі, але нові робочі процеси OpenAI для зображень мають використовувати `openai/gpt-image-2`.
Згенерувати:
Генерація:
```
/tool image_generate model=openai/gpt-image-2 prompt="Відполірований постер запуску OpenClaw на macOS" size=3840x2160 count=1
/tool image_generate model=openai/gpt-image-2 prompt="Вишуканий постер запуску OpenClaw на macOS" size=3840x2160 count=1
```
Редагувати:
Редагування:
```
/tool image_generate model=openai/gpt-image-2 prompt="Збережи форму об’єкта, зміни матеріал на прозоре скло" image=/path/to/reference.png size=1024x1536
/tool image_generate model=openai/gpt-image-2 prompt="Збережіть форму об’єкта, змініть матеріал на напівпрозоре скло" image=/path/to/reference.png size=1024x1536
```
## Генерація відео
Вбудований Plugin `openai` реєструє генерацію відео через інструмент `video_generate`.
| Можливість | Значення |
| --------------- | ----------------------------------------------------------------------------------- |
| Типова модель | `openai/sora-2` |
| Режими | Текст у відео, зображення у відео, редагування одного відео |
| Еталонні вхідні дані | 1 зображення або 1 відео |
| Можливість | Значення |
| ----------------- | --------------------------------------------------------------------------------- |
| Модель за замовчуванням | `openai/sora-2` |
| Режими | Текст у відео, зображення у відео, редагування одного відео |
| Еталонні входи | 1 зображення або 1 відео |
| Перевизначення розміру | Підтримується |
| Інші перевизначення | `aspectRatio`, `resolution`, `audio`, `watermark` ігноруються з попередженням інструмента |
@ -243,25 +243,25 @@ x-i18n:
```
<Note>
Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку failover.
Перегляньте [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку резервного перемикання.
</Note>
## Внесок у промпт GPT-5
OpenClaw додає спільний внесок у промпт GPT-5 для запусків сімейства GPT-5 у різних провайдерів. Він застосовується за id моделі, тому `openai/gpt-5.4`, `openai-codex/gpt-5.4`, `openrouter/openai/gpt-5.4`, `opencode/gpt-5.4` та інші сумісні посилання GPT-5 отримують однакове накладання. Старіші моделі GPT-4.x — ні.
OpenClaw додає спільний внесок у промпт GPT-5 для запусків сімейства GPT-5 у різних провайдерів. Він застосовується за ідентифікатором моделі, тому `openai/gpt-5.4`, `openai-codex/gpt-5.4`, `openrouter/openai/gpt-5.4`, `opencode/gpt-5.4` та інші сумісні посилання GPT-5 отримують той самий оверлей. Старіші моделі GPT-4.x — ні.
Вбудований нативний провайдер Codex harness (`codex/*`) використовує ту саму поведінку GPT-5 і накладання Heartbeat через інструкції розробника Codex app-server, тому сеанси `codex/gpt-5.x` зберігають ту саму послідовність виконання та проактивні вказівки Heartbeat, хоча рештою промпту harness керує Codex.
Вбудований нативний провайдер harness Codex (`codex/*`) використовує ту саму поведінку GPT-5 і оверлей Heartbeat через інструкції розробника сервера застосунку Codex, тому сесії `codex/gpt-5.x` зберігають таку саму послідовність виконання та проактивні вказівки щодо Heartbeat, навіть якщо рештою промпту harness керує Codex.
Внесок GPT-5 додає тегований контракт поведінки для збереження персони, безпеки виконання, дисципліни інструментів, форми виводу, перевірок завершення та верифікації. Поведінка відповіді, специфічна для каналу, і поведінка тихих повідомлень залишаються у спільному системному промпті OpenClaw та політиці вихідної доставки. Вказівки GPT-5 завжди ввімкнені для відповідних моделей. Дружній стиль взаємодії є окремим і налаштовуваним.
Внесок GPT-5 додає тегований контракт поведінки для збереження персони, безпеки виконання, дисципліни використання інструментів, форми виводу, перевірок завершення та верифікації. Специфічна для каналу поведінка відповіді та тихих повідомлень залишається у спільному системному промпті OpenClaw і політиці вихідної доставки. Вказівки GPT-5 завжди ввімкнені для відповідних моделей. Рівень дружнього стилю взаємодії є окремим і налаштовуваним.
| Значення | Ефект |
| ---------------------- | ------------------------------------------ |
| `"friendly"` (типово) | Увімкнути шар дружнього стилю взаємодії |
| `"on"` | Псевдонім для `"friendly"` |
| `"off"` | Вимкнути лише шар дружнього стилю |
| Значення | Ефект |
| ---------------------- | ------------------------------------------- |
| `"friendly"` (типово) | Увімкнути рівень дружнього стилю взаємодії |
| `"on"` | Псевдонім для `"friendly"` |
| `"off"` | Вимкнути лише рівень дружнього стилю |
<Tabs>
<Tab title="Config">
<Tab title="Конфігурація">
```json5
{
agents: {
@ -282,11 +282,11 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
</Tabs>
<Tip>
Під час виконання значення не чутливі до регістру, тому і `"Off"`, і `"off"` вимикають шар дружнього стилю.
Під час виконання значення не чутливі до регістру, тож і `"Off"`, і `"off"` вимикають рівень дружнього стилю.
</Tip>
<Note>
Застаріле `plugins.entries.openai.config.personality` усе ще зчитується як сумісний запасний варіант, якщо спільне налаштування `agents.defaults.promptOverlays.gpt5.personality` не встановлено.
Застаріле `plugins.entries.openai.config.personality` усе ще зчитується як сумісний резервний варіант, якщо спільний параметр `agents.defaults.promptOverlays.gpt5.personality` не встановлено.
</Note>
## Голос і мовлення
@ -295,14 +295,14 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
<Accordion title="Синтез мовлення (TTS)">
Вбудований Plugin `openai` реєструє синтез мовлення для поверхні `messages.tts`.
| Налаштування | Шлях конфігурації | Типове значення |
| Параметр | Шлях конфігурації | Типове значення |
|---------|------------|---------|
| Модель | `messages.tts.providers.openai.model` | `gpt-4o-mini-tts` |
| Голос | `messages.tts.providers.openai.voice` | `coral` |
| Швидкість | `messages.tts.providers.openai.speed` | (не встановлено) |
| Інструкції | `messages.tts.providers.openai.instructions` | (не встановлено, лише `gpt-4o-mini-tts`) |
| Швидкість | `messages.tts.providers.openai.speed` | (не задано) |
| Інструкції | `messages.tts.providers.openai.instructions` | (не задано, лише `gpt-4o-mini-tts`) |
| Формат | `messages.tts.providers.openai.responseFormat` | `opus` для голосових нотаток, `mp3` для файлів |
| API-ключ | `messages.tts.providers.openai.apiKey` | Резервно використовується `OPENAI_API_KEY` |
| API-ключ | `messages.tts.providers.openai.apiKey` | Використовується `OPENAI_API_KEY`, якщо не задано |
| Base URL | `messages.tts.providers.openai.baseUrl` | `https://api.openai.com/v1` |
Доступні моделі: `gpt-4o-mini-tts`, `tts-1`, `tts-1-hd`. Доступні голоси: `alloy`, `ash`, `ballad`, `cedar`, `coral`, `echo`, `fable`, `juniper`, `marin`, `onyx`, `nova`, `sage`, `shimmer`, `verse`.
@ -320,7 +320,7 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
```
<Note>
Установіть `OPENAI_TTS_BASE_URL`, щоб перевизначити базовий URL для TTS, не впливаючи на endpoint API чату.
Установіть `OPENAI_TTS_BASE_URL`, щоб перевизначити базовий URL для TTS, не впливаючи на кінцеву точку API чату.
</Note>
</Accordion>
@ -330,9 +330,9 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
поверхню транскрибування media understanding в OpenClaw.
- Типова модель: `gpt-4o-transcribe`
- Endpoint: OpenAI REST `/v1/audio/transcriptions`
- Шлях введення: multipart-завантаження аудіофайлу
- Підтримується в OpenClaw всюди, де вхідне транскрибування аудіо використовує
- Кінцева точка: OpenAI REST `/v1/audio/transcriptions`
- Шлях входу: multipart-завантаження аудіофайлу
- Підтримується в OpenClaw всюди, де транскрибування вхідного аудіо використовує
`tools.media.audio`, зокрема для сегментів голосових каналів Discord і
аудіовкладень каналів
@ -356,26 +356,25 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
}
```
Підказки щодо мови та prompt передаються до OpenAI, коли їх надано
через спільну конфігурацію аудіомедіа або запит на транскрибування для
конкретного виклику.
Підказки мови та промпту передаються до OpenAI, коли вони надані через
спільну конфігурацію audio media або в запиті транскрибування для окремого виклику.
</Accordion>
<Accordion title="Транскрибування в реальному часі">
Вбудований Plugin `openai` реєструє транскрибування в реальному часі для Plugin Voice Call.
| Налаштування | Шлях конфігурації | Типове значення |
| Параметр | Шлях конфігурації | Типове значення |
|---------|------------|---------|
| Модель | `plugins.entries.voice-call.config.streaming.providers.openai.model` | `gpt-4o-transcribe` |
| Мова | `...openai.language` | (не встановлено) |
| Prompt | `...openai.prompt` | (не встановлено) |
| Мова | `...openai.language` | (не задано) |
| Промпт | `...openai.prompt` | (не задано) |
| Тривалість тиші | `...openai.silenceDurationMs` | `800` |
| Поріг VAD | `...openai.vadThreshold` | `0.5` |
| API-ключ | `...openai.apiKey` | Резервно використовується `OPENAI_API_KEY` |
| API-ключ | `...openai.apiKey` | Використовується `OPENAI_API_KEY`, якщо не задано |
<Note>
Використовує з’єднання WebSocket з `wss://api.openai.com/v1/realtime` з аудіо G.711 u-law (`g711_ulaw` / `audio/pcmu`). Цей потоковий провайдер призначено для шляху транскрибування в реальному часі у Voice Call; голосовий Discord зараз натомість записує короткі сегменти й використовує пакетний шлях транскрибування `tools.media.audio`.
Використовує WebSocket-з’єднання з `wss://api.openai.com/v1/realtime` з аудіо формату G.711 u-law (`g711_ulaw` / `audio/pcmu`). Цей потоковий провайдер призначений для шляху транскрибування в реальному часі у Voice Call; голос у Discord наразі записує короткі сегменти й замість цього використовує пакетний шлях транскрибування `tools.media.audio`.
</Note>
</Accordion>
@ -383,14 +382,14 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
<Accordion title="Голос у реальному часі">
Вбудований Plugin `openai` реєструє голос у реальному часі для Plugin Voice Call.
| Налаштування | Шлях конфігурації | Типове значення |
| Параметр | Шлях конфігурації | Типове значення |
|---------|------------|---------|
| Модель | `plugins.entries.voice-call.config.realtime.providers.openai.model` | `gpt-realtime` |
| Голос | `...openai.voice` | `alloy` |
| Temperature | `...openai.temperature` | `0.8` |
| Поріг VAD | `...openai.vadThreshold` | `0.5` |
| Тривалість тиші | `...openai.silenceDurationMs` | `500` |
| API-ключ | `...openai.apiKey` | Резервно використовується `OPENAI_API_KEY` |
| API-ключ | `...openai.apiKey` | Використовується `OPENAI_API_KEY`, якщо не задано |
<Note>
Підтримує Azure OpenAI через ключі конфігурації `azureEndpoint` і `azureDeployment`. Підтримує двонапрямлений виклик інструментів. Використовує аудіоформат G.711 u-law.
@ -399,31 +398,31 @@ OpenClaw додає спільний внесок у промпт GPT-5 для
</Accordion>
</AccordionGroup>
## Endpoint-и Azure OpenAI
## Кінцеві точки Azure OpenAI
Вбудований провайдер `openai` може націлюватися на ресурс Azure OpenAI для
генерації зображень через перевизначення базового URL. На шляху генерації
зображень OpenClaw виявляє хости Azure у `models.providers.openai.baseUrl` і
автоматично перемикається на формат запиту Azure.
зображень OpenClaw виявляє імена хостів Azure у `models.providers.openai.baseUrl` і автоматично
перемикається на формат запиту Azure.
<Note>
Голос у реальному часі використовує окремий шлях конфігурації
(`plugins.entries.voice-call.config.realtime.providers.openai.azureEndpoint`)
і не залежить від `models.providers.openai.baseUrl`. Див. акордеон **Голос у
реальному часі** в розділі [Голос і мовлення](#voice-and-speech) для його
параметрів Azure.
і на нього не впливає `models.providers.openai.baseUrl`. Дивіться акордеон **Голос
у реальному часі** в розділі [Голос і мовлення](#voice-and-speech) для його параметрів
Azure.
</Note>
Використовуйте Azure OpenAI, якщо:
Використовуйте Azure OpenAI, коли:
- у вас уже є підписка Azure OpenAI, квота або корпоративна угода
- вам потрібна регіональна локалізація даних або засоби відповідності вимогам, які надає Azure
- ви хочете зберігати трафік у межах наявного tenancy Azure
- У вас уже є підписка Azure OpenAI, квота або корпоративна угода
- Вам потрібна регіональна резидентність даних або засоби відповідності вимогам, які надає Azure
- Ви хочете зберігати трафік у межах наявного tenancy Azure
### Конфігурація
Для генерації зображень Azure через вбудований провайдер `openai` укажіть у
`models.providers.openai.baseUrl` ваш ресурс Azure і встановіть у `apiKey`
Для генерації зображень в Azure через вбудований провайдер `openai` вкажіть
`models.providers.openai.baseUrl` на ваш ресурс Azure і встановіть `apiKey` у
ключ Azure OpenAI (а не ключ OpenAI Platform):
```json5
@ -451,14 +450,14 @@ OpenClaw розпізнає такі суфікси хостів Azure для м
- Використовує шляхи з областю deployment (`/openai/deployments/{deployment}/...`)
- Додає `?api-version=...` до кожного запиту
Інші base URL (публічний OpenAI, OpenAI-сумісні проксі) зберігають стандартний
формат запитів зображень OpenAI.
Інші базові URL (публічний OpenAI, OpenAI-сумісні проксі) зберігають стандартний
формат запиту зображень OpenAI.
<Note>
Маршрутизація Azure для шляху генерації зображень провайдера `openai`
потребує OpenClaw 2026.4.22 або новішої версії. У попередніх версіях будь-який
власний `openai.baseUrl` обробляється як публічний endpoint OpenAI і не
працюватиме з deployment-ами зображень Azure.
потребує OpenClaw 2026.4.22 або новішої версії. Раніші версії розглядають будь-який нетиповий
`openai.baseUrl` як публічну кінцеву точку OpenAI і не працюватимуть із deployment
зображень Azure.
</Note>
### Версія API
@ -474,10 +473,10 @@ export AZURE_OPENAI_API_VERSION="2024-12-01-preview"
### Імена моделей — це імена deployment
Azure OpenAI прив’язує моделі до deployment-ів. Для запитів генерації зображень Azure,
Azure OpenAI прив’язує моделі до deployment. Для запитів генерації зображень Azure,
маршрутизованих через вбудований провайдер `openai`, поле `model` в OpenClaw
має бути **іменем deployment Azure**, яке ви налаштували в порталі Azure, а не
публічним id моделі OpenAI.
ідентифікатором публічної моделі OpenAI.
Якщо ви створите deployment з назвою `gpt-image-2-prod`, який обслуговує `gpt-image-2`:
@ -490,48 +489,48 @@ Azure OpenAI прив’язує моделі до deployment-ів. Для за
### Регіональна доступність
Генерація зображень Azure наразі доступна лише в обмеженій кількості регіонів
Генерація зображень в Azure наразі доступна лише в частині регіонів
(наприклад, `eastus2`, `swedencentral`, `polandcentral`, `westus3`,
`uaenorth`). Перевірте актуальний список регіонів Microsoft перед створенням
deployment-у та підтвердьте, що конкретна модель доступна у вашому регіоні.
deployment і підтвердьте, що потрібна модель доступна у вашому регіоні.
### Відмінності параметрів
Azure OpenAI і публічний OpenAI не завжди приймають однакові параметри зображень.
Azure може відхиляти параметри, які публічний OpenAI дозволяє (наприклад, певні
значення `background` для `gpt-image-2`) або надавати їх лише для конкретних
версій моделей. Ці відмінності походять від Azure та базової моделі, а не від
Azure може відхиляти параметри, які дозволяє публічний OpenAI (наприклад, певні
значення `background` для `gpt-image-2`) або надавати їх лише для певних версій
моделей. Ці відмінності походять від Azure і базової моделі, а не від
OpenClaw. Якщо запит Azure завершується помилкою валідації, перевірте набір
параметрів, які підтримуються вашим конкретним deployment-ом і версією API в
параметрів, який підтримується вашим конкретним deployment і версією API в
порталі Azure.
<Note>
Azure OpenAI використовує нативний transport і поведінку сумісності, але не отримує
приховані заголовки attribution OpenClaw — див. акордеон **Нативні маршрути та маршрути, сумісні з OpenAI**
в розділі [Розширена конфігурація](#advanced-configuration).
Azure OpenAI використовує нативний транспорт і сумісну поведінку, але не отримує
прихованих заголовків атрибуції OpenClaw — дивіться акордеон **Нативні та OpenAI-сумісні
маршрути** в розділі [Розширена конфігурація](#advanced-configuration).
Для чату або трафіку Responses в Azure (окрім генерації зображень) використовуйте
потік онбордингу або окрему конфігурацію провайдера Azure — одного лише
Для трафіку chat або Responses в Azure (окрім генерації зображень) використовуйте
потік початкового налаштування або окрему конфігурацію провайдера Azure — одного лише
`openai.baseUrl` недостатньо, щоб застосувати формат API/автентифікації Azure. Існує окремий
провайдер `azure-openai-responses/*`; див.
[Server-side Compaction](#server-side-compaction-responses-api).
провайдер `azure-openai-responses/*`; дивіться
акордеон Server-side compaction нижче.
</Note>
## Розширена конфігурація
<AccordionGroup>
<Accordion title="Transport (WebSocket чи SSE)">
OpenClaw використовує пріоритет WebSocket із резервним переходом на SSE (`"auto"`) як для `openai/*`, так і для `openai-codex/*`.
<Accordion title="Транспорт (WebSocket проти SSE)">
OpenClaw використовує WebSocket-first із резервним переходом на SSE (`"auto"`) і для `openai/*`, і для `openai-codex/*`.
У режимі `"auto"` OpenClaw:
- Повторює одну ранню помилку WebSocket перед переходом на SSE
- Після збою позначає WebSocket як деградований приблизно на 60 секунд і використовує SSE під час охолодження
- Додає стабільні заголовки ідентичності сеансу та ходу для повторів і перепідключень
- Нормалізує лічильники використання (`input_tokens` / `prompt_tokens`) між варіантами transport
- Після помилки позначає WebSocket як деградований приблизно на 60 секунд і використовує SSE під час охолодження
- Додає стабільні заголовки ідентичності сесії та ходу для повторів і перепідключень
- Нормалізує лічильники використання (`input_tokens` / `prompt_tokens`) для різних варіантів транспорту
| Значення | Поведінка |
|-------|----------|
| `"auto"` (типово) | Спочатку WebSocket, резервно SSE |
| `"auto"` (типово) | Спочатку WebSocket, потім резервно SSE |
| `"sse"` | Примусово лише SSE |
| `"websocket"` | Примусово лише WebSocket |
@ -550,13 +549,13 @@ Azure OpenAI використовує нативний transport і поведі
```
Пов’язана документація OpenAI:
- [Realtime API з WebSocket](https://platform.openai.com/docs/guides/realtime-websocket)
- [Потокові відповіді API (SSE)](https://platform.openai.com/docs/guides/streaming-responses)
- [Realtime API with WebSocket](https://platform.openai.com/docs/guides/realtime-websocket)
- [Streaming API responses (SSE)](https://platform.openai.com/docs/guides/streaming-responses)
</Accordion>
<Accordion title="Прогрів WebSocket">
OpenClaw за замовчуванням вмикає прогрів WebSocket для `openai/*`, щоб зменшити затримку першого ходу.
OpenClaw типово вмикає прогрів WebSocket для `openai/*`, щоб зменшити затримку першого ходу.
```json5
// Вимкнути прогрів
@ -576,12 +575,12 @@ Azure OpenAI використовує нативний transport і поведі
</Accordion>
<Accordion title="Швидкий режим">
OpenClaw надає спільний перемикач швидкого режиму для `openai/*` і `openai-codex/*`:
OpenClaw надає спільний перемикач швидкого режиму і для `openai/*`, і для `openai-codex/*`:
- **Чат/UI:** `/fast status|on|off`
- **Chat/UI:** `/fast status|on|off`
- **Конфігурація:** `agents.defaults.models["<provider>/<model>"].params.fastMode`
Коли ввімкнено, OpenClaw зіставляє швидкий режим із пріоритетною обробкою OpenAI (`service_tier = "priority"`). Наявні значення `service_tier` зберігаються, а швидкий режим не переписує `reasoning` чи `text.verbosity`.
Коли його ввімкнено, OpenClaw відображає швидкий режим на пріоритетну обробку OpenAI (`service_tier = "priority"`). Наявні значення `service_tier` зберігаються, а швидкий режим не переписує `reasoning` або `text.verbosity`.
```json5
{
@ -597,13 +596,13 @@ Azure OpenAI використовує нативний transport і поведі
```
<Note>
Перевизначення сеансу мають вищий пріоритет за конфігурацію. Очищення перевизначення сеансу в UI Sessions повертає сеанс до налаштованого типового значення.
Перевизначення сесії мають пріоритет над конфігурацією. Очищення перевизначення сесії в інтерфейсі Sessions повертає сесію до типового значення з конфігурації.
</Note>
</Accordion>
<Accordion title="Пріоритетна обробка (service_tier)">
API OpenAI надає пріоритетну обробку через `service_tier`. Установіть її для кожної моделі в OpenClaw:
API OpenAI надає пріоритетну обробку через `service_tier`. Установлюйте її для кожної моделі в OpenClaw:
```json5
{
@ -621,7 +620,7 @@ Azure OpenAI використовує нативний transport і поведі
Підтримувані значення: `auto`, `default`, `flex`, `priority`.
<Warning>
`serviceTier` передається лише до нативних endpoint-ів OpenAI (`api.openai.com`) і нативних endpoint-ів Codex (`chatgpt.com/backend-api`). Якщо ви маршрутизуєте будь-який із цих провайдерів через проксі, OpenClaw не змінює `service_tier`.
`serviceTier` передається лише до нативних кінцевих точок OpenAI (`api.openai.com`) і нативних кінцевих точок Codex (`chatgpt.com/backend-api`). Якщо ви маршрутизуєте будь-якого з цих провайдерів через проксі, OpenClaw залишає `service_tier` без змін.
</Warning>
</Accordion>
@ -634,8 +633,8 @@ Azure OpenAI використовує нативний transport і поведі
- Типовий `compact_threshold`: 70% від `contextWindow` (або `80000`, якщо значення недоступне)
<Tabs>
<Tab title="Увімкнути явно">
Корисно для сумісних endpoint-ів, таких як Azure OpenAI Responses:
<Tab title="Явне ввімкнення">
Корисно для сумісних кінцевих точок, таких як Azure OpenAI Responses:
```json5
{
@ -669,7 +668,7 @@ Azure OpenAI використовує нативний transport і поведі
}
```
</Tab>
<Tab title="Вимкнути">
<Tab title="Вимкнення">
```json5
{
agents: {
@ -693,7 +692,7 @@ Azure OpenAI використовує нативний transport і поведі
</Accordion>
<Accordion title="Суворий агентний режим GPT">
Для запусків сімейства GPT-5 у `openai/*` і `openai-codex/*` OpenClaw може використовувати суворіший вбудований контракт виконання:
Для запусків сімейства GPT-5 на `openai/*` і `openai-codex/*` OpenClaw може використовувати суворіший вбудований контракт виконання:
```json5
{
@ -706,32 +705,32 @@ Azure OpenAI використовує нативний transport і поведі
```
Із `strict-agentic` OpenClaw:
- Більше не вважає хід лише з планом успішним прогресом, коли доступна дія інструмента
- Повторює хід із вказівкою діяти зараз
- Більше не вважає хід лише з планом успішним прогресом, якщо доступна дія інструмента
- Повторює хід зі спрямуванням діяти негайно
- Автоматично вмикає `update_plan` для суттєвої роботи
- Показує явний заблокований стан, якщо модель продовжує планувати без дії
- Показує явний стан блокування, якщо модель продовжує планувати без виконання дій
<Note>
Застосовується лише до запусків сімейства GPT-5 OpenAI і Codex. Інші провайдери та старіші сімейства моделей зберігають типову поведінку.
Поширюється лише на запуски сімейства GPT-5 OpenAI і Codex. Інші провайдери та старіші сімейства моделей зберігають типову поведінку.
</Note>
</Accordion>
<Accordion title="Нативні маршрути та маршрути, сумісні з OpenAI">
OpenClaw по-різному обробляє прямі endpoint-и OpenAI, Codex і Azure OpenAI порівняно з типовими проксі `/v1`, сумісними з OpenAI:
<Accordion title="Нативні та OpenAI-сумісні маршрути">
OpenClaw по-різному обробляє прямі кінцеві точки OpenAI, Codex і Azure OpenAI порівняно із загальними OpenAI-сумісними проксі `/v1`:
**Нативні маршрути** (`openai/*`, `openai-codex/*`, Azure OpenAI):
- Зберігають `reasoning: { effort: "none" }` лише для моделей, які підтримують OpenAI `none` effort
- Пропускають вимкнений reasoning для моделей або проксі, які відхиляють `reasoning.effort: "none"`
- За замовчуванням використовують суворий режим для схем інструментів
- Додають приховані заголовки attribution лише на перевірених нативних хостах
- Зберігають формування запитів, специфічне для OpenAI (`service_tier`, `store`, reasoning-compat, підказки prompt-cache)
- Зберігають `reasoning: { effort: "none" }` лише для моделей, що підтримують OpenAI `none` effort
- Не додають вимкнений reasoning для моделей або проксі, які відхиляють `reasoning.effort: "none"`
- Типово використовують строгий режим для схем інструментів
- Додають приховані заголовки атрибуції лише на перевірених нативних хостах
- Зберігають форматування запитів, притаманне тільки OpenAI (`service_tier`, `store`, сумісність reasoning, підказки кешу промптів)
**Проксі/сумісні маршрути:**
- Використовують м’якшу compat-поведінку
- Не примушують суворі схеми інструментів або лише нативні заголовки
- Використовують м’якшу сумісну поведінку
- Не примушують строгі схеми інструментів або заголовки лише для нативних маршрутів
Azure OpenAI використовує нативний transport і compat-поведінку, але не отримує приховані заголовки attribution.
Azure OpenAI використовує нативний транспорт і сумісну поведінку, але не отримує прихованих заголовків атрибуції.
</Accordion>
</AccordionGroup>
@ -740,15 +739,15 @@ Azure OpenAI використовує нативний transport і поведі
<CardGroup cols={2}>
<Card title="Вибір моделі" href="/uk/concepts/model-providers" icon="layers">
Вибір провайдерів, посилань на моделі та поведінки failover.
Вибір провайдерів, посилань на моделі та поведінки резервного перемикання.
</Card>
<Card title="Генерація зображень" href="/uk/tools/image-generation" icon="image">
Спільні параметри інструмента зображень і вибір провайдера.
</Card>
<Card title="Генерація відео" href="/uk/tools/video-generation" icon="video">
Спільні параметри інструмента відео та вибір провайдера.
Спільні параметри інструмента відео і вибір провайдера.
</Card>
<Card title="OAuth та автентифікація" href="/uk/gateway/authentication" icon="key">
Докладно про автентифікацію та правила повторного використання облікових даних.
<Card title="OAuth і автентифікація" href="/uk/gateway/authentication" icon="key">
Докладніше про автентифікацію та правила повторного використання облікових даних.
</Card>
</CardGroup>