diff --git a/docs/uk/plugins/manifest.md b/docs/uk/plugins/manifest.md index 13887785d..53274fd70 100644 --- a/docs/uk/plugins/manifest.md +++ b/docs/uk/plugins/manifest.md @@ -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 ", - "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.`. | -| `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` | Недорогі метадані env для автентифікації провайдера, які OpenClaw може перевіряти без завантаження коду Plugin. | -| `providerAuthAliases` | Ні | `Record` | Id провайдерів, які мають повторно використовувати інший id провайдера для пошуку автентифікації, наприклад провайдер кодування, який спільно використовує API-ключ і профілі автентифікації базового провайдера. | -| `channelEnvVars` | Ні | `Record` | Недорогі метадані 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` | Недорогі значення за замовчуванням для розуміння медіа для id провайдерів, оголошених у `contracts.mediaUnderstandingProviders`. | -| `channelConfigs` | Ні | `Record` | Метадані конфігурації каналу, якими володіє маніфест і які об’єднуються в поверхні виявлення та валідації до завантаження середовища виконання. | -| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня Plugin. | -| `name` | Ні | `string` | Зрозуміла людині назва Plugin. | -| `description` | Ні | `string` | Короткий опис, що показується в поверхнях Plugin. | -| `version` | Ні | `string` | Інформаційна версія Plugin. | -| `uiHints` | Ні | `Record` | Мітки UI, заповнювачі та підказки щодо чутливості для полів конфігурації. | +| Поле | Обов’язкове | Тип | Що воно означає | +| ------------------------------------ | ----------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | Так | `string` | Канонічний id plugin. Це id, який використовується в `plugins.entries.`. | +| `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` | Легкі метадані env для auth провайдера, які OpenClaw може перевіряти без завантаження коду plugin. | +| `providerAuthAliases` | Ні | `Record` | Id провайдерів, які мають повторно використовувати id іншого провайдера для пошуку auth, наприклад провайдер для кодування, що використовує спільний ключ API базового провайдера та профілі auth. | +| `channelEnvVars` | Ні | `Record` | Легкі метадані 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` | Легкі типові значення media-understanding для id провайдерів, оголошених у `contracts.mediaUnderstandingProviders`. | +| `channelConfigs` | Ні | `Record` | Метадані конфігурації channel, якими володіє маніфест і які об’єднуються в поверхні виявлення та валідації до завантаження середовища виконання. | +| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня plugin. | +| `name` | Ні | `string` | Людинозрозуміла назва plugin. | +| `description` | Ні | `string` | Короткий опис, що відображається в поверхнях plugin. | +| `version` | Ні | `string` | Інформаційна версія plugin. | +| `uiHints` | Ні | `Record` | Мітки 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 `. | -| `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 `. | +| `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` | Типові значення зіставлення можливостей із моделями, які використовуються, коли конфігурація не задає модель. | -| `autoPriority` | `Record` | Менші числа сортуються раніше для автоматичного резервного вибору провайдера на основі облікових даних. | -| `nativeDocumentInputs` | `"pdf"[]` | Власні вхідні дані документів, які підтримує провайдер. | +| Поле | Тип | Що воно означає | +| ---------------------- | ----------------------------------- | ---------------------------------------------------------------------------- | +| `capabilities` | `("image" \| "audio" \| "video")[]` | Медіаможливості, які надає цей провайдер. | +| `defaultModels` | `Record` | Типові відповідності можливість-модель, які використовуються, коли конфігурація не задає модель. | +| `autoPriority` | `Record` | Менші числа сортуються раніше для автоматичного запасного вибору провайдера на основі облікових даних. | +| `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.`. Обов’язкова для кожного оголошеного запису конфігурації каналу. | -| `uiHints` | `Record` | Необов’язкові мітки UI/заповнювачі/підказки чутливості для цього розділу конфігурації каналу. | -| `label` | `string` | Мітка каналу, що об’єднується в поверхні вибору та інспектування, коли метадані runtime ще не готові. | -| `description` | `string` | Короткий опис каналу для поверхонь інспектування та каталогу. | -| `preferOver` | `string[]` | Id застарілих або менш пріоритетних Plugin, які цей канал має перевершувати в поверхнях вибору. | +| ------------- | ------------------------ | -------------------------------------------------------------------------------- | +| `schema` | `object` | JSON Schema для `channels.`. Обов’язкова для кожного оголошеного запису конфігурації channel. | +| `uiHints` | `Record` | Необов’язкові мітки 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.` для того самого -вбудованого Plugin. Непов’язані помилки конфігурації все одно блокують встановлення і спрямовують операторів +`openclaw.install.allowInvalidConfigRecovery` навмисно вузький. Він +не робить довільно зламані конфігурації придатними до встановлення. Наразі він лише дозволяє потокам встановлення +відновлюватися після певних застарілих збоїв оновлення вбудованого plugin, наприклад +відсутнього шляху до вбудованого plugin або застарілого запису `channels.` для цього ж +вбудованого 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.` -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.`, щоб він переміг за пріоритетом, а не покладався на виявлення у workspace. -- Відкидання дублікатів записується в журнал, щоб Doctor і діагностика запуску могли вказати на відкинуту копію. +- Розгалужена або застаріла копія вбудованого plugin, що лежить у workspace, не перекриє вбудовану збірку. +- Щоб справді перевизначити вбудований plugin локальним, закріпіть його через `plugins.entries.`, щоб він переміг за пріоритетом, а не покладайтесь на виявлення у 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.`, `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 `). +- Маніфест **обов’язковий для нативних 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 `). ## Пов’язане -- [Створення Plugins](/uk/plugins/building-plugins) — початок роботи з Plugins -- [Архітектура Plugin](/uk/plugins/architecture) — внутрішня архітектура -- [Огляд SDK](/uk/plugins/sdk-overview) — довідник SDK Plugin + + + Початок роботи з plugin. + + + Внутрішня архітектура та модель можливостей. + + + Довідник SDK plugin і імпорти subpath. + + diff --git a/docs/uk/providers/openai.md b/docs/uk/providers/openai.md index 156a4336e..d44d60eee 100644 --- a/docs/uk/providers/openai.md +++ b/docs/uk/providers/openai.md @@ -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/` | Так | | Моделі підписки Codex | Провайдер моделей `openai-codex/` | Так | - | Вебпошук на стороні сервера | Вбудований інструмент 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: - **Найкраще підходить для:** прямого доступу до API та тарифікації за використання. + **Найкраще для:** прямого доступу до API та оплати за використання. Створіть або скопіюйте API-ключ на [панелі OpenAI Platform](https://platform.openai.com/api-keys). - + ```bash openclaw onboard --auth-choice openai-api-key ``` @@ -61,22 +61,22 @@ x-i18n: openclaw onboard --openai-api-key "$OPENAI_API_KEY" ``` - + ```bash openclaw models list --provider openai ``` - ### Зведення маршрутів + ### Підсумок маршруту - | Model ref | Маршрут | Автентифікація | + | Посилання на модель | Маршрут | Автентифікація | |-----------|-------|------| | `openai/gpt-5.4` | Прямий API OpenAI Platform | `OPENAI_API_KEY` | | `openai/gpt-5.4-pro` | Прямий API OpenAI Platform | `OPENAI_API_KEY` | - Вхід через ChatGPT/Codex маршрутизується через `openai-codex/*`, а не `openai/*`. + Вхід через ChatGPT/Codex маршрутизується через `openai-codex/*`, а не через `openai/*`. ### Приклад конфігурації @@ -89,13 +89,13 @@ x-i18n: ``` - OpenClaw **не** надає `openai/gpt-5.3-codex-spark` у прямому маршруті API. Живі запити до OpenAI API відхиляють цю модель. Spark доступний лише для Codex. + OpenClaw **не** надає `openai/gpt-5.3-codex-spark` на прямому шляху API. Живі запити до OpenAI API відхиляють цю модель. Spark доступний лише в Codex. - **Найкраще підходить для:** використання вашої підписки ChatGPT/Codex замість окремого API-ключа. Codex cloud потребує входу через ChatGPT. + **Найкраще для:** використання вашої підписки ChatGPT/Codex замість окремого API-ключа. Codex cloud потребує входу через ChatGPT. @@ -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 ``` - + ```bash openclaw config set agents.defaults.model.primary openai-codex/gpt-5.4 ``` - + ```bash openclaw models list --provider openai-codex ``` - ### Зведення маршрутів + ### Підсумок маршруту - | Model ref | Маршрут | Автентифікація | + | Посилання на модель | Маршрут | Автентифікація | |-----------|-------|------| | `openai-codex/gpt-5.4` | ChatGPT/Codex OAuth | Вхід Codex | | `openai-codex/gpt-5.3-codex-spark` | ChatGPT/Codex OAuth | Вхід Codex (залежить від entitlement) | - Цей маршрут навмисно відокремлено від `openai/gpt-5.4`. Використовуйте `openai/*` з API-ключем для прямого доступу до Platform, а `openai-codex/*` — для доступу за підпискою Codex. + Цей маршрут навмисно відокремлено від `openai/gpt-5.4`. Використовуйте `openai/*` з API-ключем для прямого доступу до Platform, а `openai-codex/*` — для доступу через підписку Codex. ### Приклад конфігурації @@ -147,10 +147,10 @@ x-i18n: ``` - Онбординг більше не імпортує OAuth-матеріали з `~/.codex`. Увійдіть через OAuth у браузері (типово) або через наведений вище потік device-code — OpenClaw зберігає отримані облікові дані у власному сховищі автентифікації агентів. + Початкове налаштування більше не імпортує OAuth-матеріали з `~/.codex`. Увійдіть через браузерний OAuth (типово) або через наведений вище потік device-code — OpenClaw зберігає отримані облікові дані у власному сховищі автентифікації агентів. - ### Обмеження вікна контексту + ### Обмеження контекстного вікна OpenClaw розглядає метадані моделі та обмеження контексту під час виконання як окремі значення. @@ -159,7 +159,7 @@ x-i18n: - Власне `contextWindow`: `1050000` - Типове обмеження `contextTokens` під час виконання: `272000` - Менше типове обмеження на практиці забезпечує кращі характеристики затримки та якості. Перевизначте його через `contextTokens`: + Менше типове обмеження на практиці забезпечує кращі характеристики затримки та якості. Замініть його через `contextTokens`: ```json5 { @@ -174,7 +174,7 @@ x-i18n: ``` - Використовуйте `contextWindow`, щоб указати власні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту під час виконання. + Використовуйте `contextWindow`, щоб оголосити власні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту під час виконання. @@ -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: ``` -Див. [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку failover. +Перегляньте [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку резервного перемикання. -`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: ``` -Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку failover. +Перегляньте [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку резервного перемикання. ## Внесок у промпт 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"` | Вимкнути лише рівень дружнього стилю | - + ```json5 { agents: { @@ -282,11 +282,11 @@ OpenClaw додає спільний внесок у промпт GPT-5 для -Під час виконання значення не чутливі до регістру, тому і `"Off"`, і `"off"` вимикають шар дружнього стилю. +Під час виконання значення не чутливі до регістру, тож і `"Off"`, і `"off"` вимикають рівень дружнього стилю. -Застаріле `plugins.entries.openai.config.personality` усе ще зчитується як сумісний запасний варіант, якщо спільне налаштування `agents.defaults.promptOverlays.gpt5.personality` не встановлено. +Застаріле `plugins.entries.openai.config.personality` усе ще зчитується як сумісний резервний варіант, якщо спільний параметр `agents.defaults.promptOverlays.gpt5.personality` не встановлено. ## Голос і мовлення @@ -295,14 +295,14 @@ OpenClaw додає спільний внесок у промпт GPT-5 для Вбудований 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 для ``` - Установіть `OPENAI_TTS_BASE_URL`, щоб перевизначити базовий URL для TTS, не впливаючи на endpoint API чату. + Установіть `OPENAI_TTS_BASE_URL`, щоб перевизначити базовий URL для TTS, не впливаючи на кінцеву точку API чату. @@ -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 або в запиті транскрибування для окремого виклику. Вбудований 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`, якщо не задано | - Використовує з’єднання 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`. @@ -383,14 +382,14 @@ OpenClaw додає спільний внесок у промпт GPT-5 для Вбудований 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`, якщо не задано | Підтримує Azure OpenAI через ключі конфігурації `azureEndpoint` і `azureDeployment`. Підтримує двонапрямлений виклик інструментів. Використовує аудіоформат G.711 u-law. @@ -399,31 +398,31 @@ OpenClaw додає спільний внесок у промпт GPT-5 для -## Endpoint-и Azure OpenAI +## Кінцеві точки Azure OpenAI Вбудований провайдер `openai` може націлюватися на ресурс Azure OpenAI для генерації зображень через перевизначення базового URL. На шляху генерації -зображень OpenClaw виявляє хости Azure у `models.providers.openai.baseUrl` і -автоматично перемикається на формат запиту Azure. +зображень OpenClaw виявляє імена хостів Azure у `models.providers.openai.baseUrl` і автоматично +перемикається на формат запиту Azure. Голос у реальному часі використовує окремий шлях конфігурації (`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. -Використовуйте 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. Маршрутизація Azure для шляху генерації зображень провайдера `openai` -потребує OpenClaw 2026.4.22 або новішої версії. У попередніх версіях будь-який -власний `openai.baseUrl` обробляється як публічний endpoint OpenAI і не -працюватиме з deployment-ами зображень Azure. +потребує OpenClaw 2026.4.22 або новішої версії. Раніші версії розглядають будь-який нетиповий +`openai.baseUrl` як публічну кінцеву точку OpenAI і не працюватимуть із deployment +зображень Azure. ### Версія 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. -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 нижче. ## Розширена конфігурація - - OpenClaw використовує пріоритет WebSocket із резервним переходом на SSE (`"auto"`) як для `openai/*`, так і для `openai-codex/*`. + + 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) - OpenClaw за замовчуванням вмикає прогрів WebSocket для `openai/*`, щоб зменшити затримку першого ходу. + OpenClaw типово вмикає прогрів WebSocket для `openai/*`, щоб зменшити затримку першого ходу. ```json5 // Вимкнути прогрів @@ -576,12 +575,12 @@ Azure OpenAI використовує нативний transport і поведі - OpenClaw надає спільний перемикач швидкого режиму для `openai/*` і `openai-codex/*`: + OpenClaw надає спільний перемикач швидкого режиму і для `openai/*`, і для `openai-codex/*`: - - **Чат/UI:** `/fast status|on|off` + - **Chat/UI:** `/fast status|on|off` - **Конфігурація:** `agents.defaults.models["/"].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 і поведі ``` - Перевизначення сеансу мають вищий пріоритет за конфігурацію. Очищення перевизначення сеансу в UI Sessions повертає сеанс до налаштованого типового значення. + Перевизначення сесії мають пріоритет над конфігурацією. Очищення перевизначення сесії в інтерфейсі Sessions повертає сесію до типового значення з конфігурації. - API OpenAI надає пріоритетну обробку через `service_tier`. Установіть її для кожної моделі в OpenClaw: + API OpenAI надає пріоритетну обробку через `service_tier`. Установлюйте її для кожної моделі в OpenClaw: ```json5 { @@ -621,7 +620,7 @@ Azure OpenAI використовує нативний transport і поведі Підтримувані значення: `auto`, `default`, `flex`, `priority`. - `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` без змін. @@ -634,8 +633,8 @@ Azure OpenAI використовує нативний transport і поведі - Типовий `compact_threshold`: 70% від `contextWindow` (або `80000`, якщо значення недоступне) - - Корисно для сумісних endpoint-ів, таких як Azure OpenAI Responses: + + Корисно для сумісних кінцевих точок, таких як Azure OpenAI Responses: ```json5 { @@ -669,7 +668,7 @@ Azure OpenAI використовує нативний transport і поведі } ``` - + ```json5 { agents: { @@ -693,7 +692,7 @@ Azure OpenAI використовує нативний transport і поведі - Для запусків сімейства 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` для суттєвої роботи - - Показує явний заблокований стан, якщо модель продовжує планувати без дії + - Показує явний стан блокування, якщо модель продовжує планувати без виконання дій - Застосовується лише до запусків сімейства GPT-5 OpenAI і Codex. Інші провайдери та старіші сімейства моделей зберігають типову поведінку. + Поширюється лише на запуски сімейства GPT-5 OpenAI і Codex. Інші провайдери та старіші сімейства моделей зберігають типову поведінку. - - OpenClaw по-різному обробляє прямі endpoint-и OpenAI, Codex і Azure OpenAI порівняно з типовими проксі `/v1`, сумісними з 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 використовує нативний транспорт і сумісну поведінку, але не отримує прихованих заголовків атрибуції. @@ -740,15 +739,15 @@ Azure OpenAI використовує нативний transport і поведі - Вибір провайдерів, посилань на моделі та поведінки failover. + Вибір провайдерів, посилань на моделі та поведінки резервного перемикання. Спільні параметри інструмента зображень і вибір провайдера. - Спільні параметри інструмента відео та вибір провайдера. + Спільні параметри інструмента відео і вибір провайдера. - - Докладно про автентифікацію та правила повторного використання облікових даних. + + Докладніше про автентифікацію та правила повторного використання облікових даних.