chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-23 20:14:57 +00:00
parent 3d007fe829
commit 4cdfe83ae5
13 changed files with 3520 additions and 3515 deletions

View File

@ -1,48 +1,44 @@
---
read_when:
- Вам потрібно зрозуміти, чому завдання CI запустилося або не запустилося
- Вам потрібно зрозуміти, чому завдання CI було або не було запущене
- Ви налагоджуєте збої перевірок GitHub Actions
summary: Граф завдань CI, обмежувальні перевірки за областю змін і локальні еквіваленти команд
summary: Граф завдань CI, шлюзи областей дії та локальні еквіваленти команд
title: Конвеєр CI
x-i18n:
generated_at: "2026-04-23T19:48:40Z"
generated_at: "2026-04-23T20:05:14Z"
model: gpt-5.4
provider: openai
source_hash: 3e250c90d9be13dc25a0b028de5d72cf821387e33c0965cac7b935579e3c6ae7
source_hash: 601bd170afc217e7e9841c3cc358b941c9706b2cec57f568c0b583888ac0b4e7
source_path: ci.md
workflow: 15
---
# Конвеєр CI
CI запускається при кожному push у `main` і для кожного pull request. Він використовує розумне обмеження за областю змін, щоб пропускати дорогі завдання, коли змінилися лише не пов’язані частини.
CI запускається під час кожного пушу до `main` і кожного pull request. Він використовує розумне обмеження за областю дії, щоб пропускати дорогі завдання, коли змінено лише не пов’язані ділянки.
QA Lab має окремі смуги CI поза основним workflow з розумним обмеженням за областю змін. Workflow
`Parity gate` запускається для відповідних змін у PR і через ручний запуск; він
збирає приватне QA runtime і порівнює agentic-набори mock GPT-5.4 і Opus 4.6.
Workflow `QA-Lab - All Lanes` запускається щоночі на `main` і через
ручний запуск; він розгалужує mock parity gate, live Matrix lane і live
Telegram lane як паралельні завдання. Live-завдання використовують середовище `qa-live-shared`,
а Telegram lane використовує Convex leases. `OpenClaw Release
Checks` також запускає ті самі смуги QA Lab перед схваленням релізу.
QA Lab має окремі доріжки CI поза основним workflow з розумним обмеженням за областю дії. Workflow
`Parity gate` запускається для відповідних змін у PR і при ручному запуску; він
збирає приватне середовище виконання QA та порівнює агентні набори mock GPT-5.4 і Opus 4.6.
Workflow `QA-Lab - All Lanes` запускається щоночі на `main` і при
ручному запуску; він розгалужує mock parity gate, живу доріжку Matrix і живу
доріжку Telegram як паралельні завдання. Живі завдання використовують середовище `qa-live-shared`,
а доріжка Telegram використовує оренди Convex. `OpenClaw Release
Checks` також запускає ті самі доріжки QA Lab перед погодженням релізу.
Workflow `Duplicate PRs After Merge` — це ручний maintainer-workflow для
очищення дублікатів після злиття. За замовчуванням він працює в режимі dry-run і
закриває лише явно перелічені PR, коли `apply=true`. Перш ніж змінювати GitHub,
він перевіряє, що злитий PR справді змерджено і що кожен дублікат має або
спільну згадану issue, або перетин змінених фрагментів.
Workflow `Duplicate PRs After Merge` — це ручний workflow для мейнтейнерів для очищення дублікатів після приземлення змін. За замовчуванням він працює в режимі dry-run і закриває лише явно перелічені PR, коли `apply=true`. Перед змінами на GitHub він перевіряє, що
приземлений PR змерджено, і що кожен дублікат має або спільне пов’язане issue,
або перетин змінених фрагментів.
Workflow `Test Performance Agent` — це подієва службова смуга Codex
для повільних тестів. Вона не має окремого запуску лише за розкладом:
її може запустити успішний не-ботовий push CI у `main`, але вона пропускається,
якщо інший запуск workflow-run уже відбувся або виконується в той самий UTC-день.
Ручний запуск обходить це денне обмеження активності. Ця смуга будує
групований звіт продуктивності Vitest для повного набору тестів, дозволяє Codex
вносити лише невеликі виправлення продуктивності тестів без втрати покриття, а потім
повторно запускає звіт для повного набору тестів і відхиляє зміни, які зменшують
кількість базових тестів, що проходять. Якщо в базовому стані є тести, що падають,
Codex може виправляти лише очевидні збої, а звіт для повного набору після роботи агента
має пройти повністю, перш ніж щось буде закомічено.
Workflow `Test Performance Agent` — це керована подіями службова доріжка Codex
для повільних тестів. Вона не має окремого розкладу: її може запустити
успішний запуск CI після пушу не від бота на `main`, але вона пропускається, якщо того UTC-дня вже був або виконується інший запуск цього workflow.
Ручний запуск оминає це денне обмеження активності. Доріжка будує згрупований звіт про продуктивність Vitest для повного набору тестів, дозволяє Codex
вносити лише невеликі зміни продуктивності тестів без втрати покриття, потім повторно запускає звіт для повного набору
і відхиляє зміни, які зменшують базову кількість тестів, що проходять.
Якщо в базовому стані є тести, що падають, Codex може виправляти лише очевидні збої, а звіт для повного набору після роботи агента має проходити, перш ніж щось буде закомічено.
Вона використовує GitHub-hosted Ubuntu, щоб дія Codex могла зберігати ту саму безпекову модель drop-sudo,
що й агент документації.
```bash
gh workflow run duplicate-after-merge.yml \
@ -55,83 +51,83 @@ gh workflow run duplicate-after-merge.yml \
| Завдання | Призначення | Коли запускається |
| -------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------ |
| `preflight` | Визначає зміни лише в docs, змінені області, змінені extensions і будує маніфест CI | Завжди для не-чернеткових push і PR |
| `security-scm-fast` | Виявлення приватних ключів і аудит workflow через `zizmor` | Завжди для не-чернеткових push і PR |
| `security-dependency-audit` | Аудит production lockfile без залежностей щодо advisories npm | Завжди для не-чернеткових push і PR |
| `security-fast` | Обов’язковий агрегатор для швидких security-завдань | Завжди для не-чернеткових push і PR |
| `build-artifacts` | Збирає `dist/`, Control UI, перевірки build-артефактів і повторно використовувані downstream-артефакти | Зміни, релевантні для Node |
| `checks-fast-core` | Швидкі Linux-смуги коректності, такі як bundled/plugin-contract/protocol перевірки | Зміни, релевантні для Node |
| `checks-fast-contracts-channels` | Шардовані перевірки channel contract зі стабільним агрегованим результатом перевірки | Зміни, релевантні для Node |
| `checks-node-extensions` | Повні шарди тестів bundled-plugin для всього набору extension | Зміни, релевантні для Node |
| `checks-node-core-test` | Шарди core Node-тестів, окрім channel, bundled, contract та extension-смуг | Зміни, релевантні для Node |
| `extension-fast` | Сфокусовані тести лише для змінених bundled plugins | Pull request із змінами в extension |
| `check` | Шардований еквівалент основної локальної перевірки: prod types, lint, guards, test types і strict smoke | Зміни, релевантні для Node |
| `check-additional` | Шарди для перевірок архітектури, меж, extension-surface guards, package-boundary і gateway-watch | Зміни, релевантні для Node |
| `build-smoke` | Smoke-тести зібраного CLI і smoke перевірка пам’яті на старті | Зміни, релевантні для Node |
| `checks` | Засіб перевірки для channel-тестів build-артефактів плюс сумісність Node 22 лише для push | Зміни, релевантні для Node |
| `check-docs` | Форматування docs, lint і перевірки битих посилань | Змінено docs |
| `skills-python` | Ruff + pytest для Skills на Python | Зміни, релевантні для Python Skills |
| `checks-windows` | Тестові смуги, специфічні для Windows | Зміни, релевантні для Windows |
| `macos-node` | Смуга TypeScript-тестів на macOS із використанням спільних build-артефактів | Зміни, релевантні для macOS |
| `macos-swift` | Swift lint, build і тести для застосунку macOS | Зміни, релевантні для macOS |
| `android` | Android unit-тести для обох flavor плюс одна debug APK-збірка | Зміни, релевантні для Android |
| `test-performance-agent` | Щоденна оптимізація повільних тестів Codex після довіреної активності | Успіх main CI або ручний запуск |
| `preflight` | Виявлення змін лише в документації, змінених областей дії, змінених розширень і побудова маніфесту CI | Завжди для нечернеткових пушів і PR |
| `security-scm-fast` | Виявлення приватних ключів і аудит workflow через `zizmor` | Завжди для нечернеткових пушів і PR |
| `security-dependency-audit` | Аудит production lockfile без залежностей щодо попереджень npm | Завжди для нечернеткових пушів і PR |
| `security-fast` | Обов’язковий агрегатор для швидких завдань безпеки | Завжди для нечернеткових пушів і PR |
| `build-artifacts` | Збірка `dist/`, Control UI, перевірки зібраних артефактів і повторно використовувані downstream-артефакти | Зміни, пов’язані з Node |
| `checks-fast-core` | Швидкі доріжки коректності на Linux, як-от перевірки bundled/plugin-contract/protocol | Зміни, пов’язані з Node |
| `checks-fast-contracts-channels` | Шардовані перевірки channel contract зі стабільним агрегованим результатом перевірки | Зміни, пов’язані з Node |
| `checks-node-extensions` | Повні шарди тестів bundled-plugin для всього набору розширень | Зміни, пов’язані з Node |
| `checks-node-core-test` | Шарди основних Node-тестів, без доріжок channel, bundled, contract і extension | Зміни, пов’язані з Node |
| `extension-fast` | Прицільні тести лише для змінених bundled plugins | Pull request зі змінами в розширеннях |
| `check` | Шардований еквівалент основного локального шлюзу: production types, lint, guards, test types і strict smoke | Зміни, пов’язані з Node |
| `check-additional` | Шарди перевірок архітектури, меж, поверхні розширень, меж пакетів і gateway-watch | Зміни, пов’язані з Node |
| `build-smoke` | Smoke-тести зібраного CLI та smoke перевірка пам’яті під час запуску | Зміни, пов’язані з Node |
| `checks` | Верифікатор для channel-тестів зібраних артефактів плюс сумісність з Node 22 лише для пушів | Зміни, пов’язані з Node |
| `check-docs` | Форматування документації, lint і перевірки битих посилань | Документацію змінено |
| `skills-python` | Ruff + pytest для Skills на основі Python | Зміни, релевантні Python Skills |
| `checks-windows` | Специфічні для Windows тестові доріжки | Зміни, релевантні Windows |
| `macos-node` | Доріжка тестів TypeScript на macOS із використанням спільних зібраних артефактів | Зміни, релевантні macOS |
| `macos-swift` | Swift lint, збірка та тести для застосунку macOS | Зміни, релевантні macOS |
| `android` | Android unit-тести для обох варіантів плюс одна debug APK-збірка | Зміни, релевантні Android |
| `test-performance-agent` | Щоденна оптимізація повільних тестів Codex після довіреної активності | Успішний main CI або ручний запуск |
## Порядок Fail-Fast
## Порядок швидкого завершення з помилкою
Завдання впорядковано так, щоб дешеві перевірки падали раніше, ніж запустяться дорогі:
Завдання впорядковані так, щоб дешеві перевірки завершувалися з помилкою раніше, ніж стартують дорогі:
1. `preflight` вирішує, які смуги взагалі існують. Логіка `docs-scope` і `changed-scope` — це кроки всередині цього завдання, а не окремі завдання.
2. `security-scm-fast`, `security-dependency-audit`, `security-fast`, `check`, `check-additional`, `check-docs` і `skills-python` швидко падають, не чекаючи важчих матричних завдань для артефактів і платформ.
3. `build-artifacts` виконується паралельно зі швидкими Linux-смугами, щоб downstream-споживачі могли стартувати, щойно спільна збірка буде готова.
4. Після цього розгалужуються важчі платформені та runtime-смуги: `checks-fast-core`, `checks-fast-contracts-channels`, `checks-node-extensions`, `checks-node-core-test`, PR-only `extension-fast`, `checks`, `checks-windows`, `macos-node`, `macos-swift` і `android`.
1. `preflight` визначає, які доріжки взагалі існують. Логіка `docs-scope` і `changed-scope` — це кроки всередині цього завдання, а не окремі завдання.
2. `security-scm-fast`, `security-dependency-audit`, `security-fast`, `check`, `check-additional`, `check-docs` і `skills-python` швидко завершуються з помилкою, не чекаючи важчих матричних завдань артефактів і платформ.
3. `build-artifacts` виконується паралельно зі швидкими Linux-доріжками, щоб downstream-споживачі могли стартувати щойно спільна збірка буде готова.
4. Після цього розгалужуються важчі платформені доріжки та доріжки середовища виконання: `checks-fast-core`, `checks-fast-contracts-channels`, `checks-node-extensions`, `checks-node-core-test`, PR-only `extension-fast`, `checks`, `checks-windows`, `macos-node`, `macos-swift` і `android`.
Логіка області змін міститься в `scripts/ci-changed-scope.mjs` і покрита unit-тестами в `src/scripts/ci-changed-scope.test.ts`.
Зміни в workflow CI перевіряють граф Node CI та lint workflow, але самі по собі не примушують запускати нативні збірки Windows, Android або macOS; ці платформені смуги й далі обмежуються змінами у вихідному коді відповідних платформ.
Перевірки Windows Node обмежені специфічними для Windows обгортками process/path, допоміжними засобами для npm/pnpm/UI runner, конфігурацією package manager і поверхнями workflow CI, які запускають цю смугу; не пов’язані зміни у вихідному коді, plugin, install-smoke і зміни лише в тестах залишаються на Linux Node-смугах, щоб не займати Windows worker із 16 vCPU для покриття, яке вже забезпечується звичайними шардами тестів.
Окремий workflow `install-smoke` повторно використовує той самий script області змін через власне завдання `preflight`. Він обчислює `run_install_smoke` на основі вужчого сигналу changed-smoke, тому Docker/install smoke запускається для змін, пов’язаних з install, packaging, container, production-змін bundled extension і core-поверхонь plugin/channel/gateway/Plugin SDK, які перевіряють Docker smoke-завдання. Зміни лише в тестах і лише в docs не займають Docker workers. Його QR package smoke примушує Docker-шар `pnpm install` виконатися повторно, зберігаючи кеш BuildKit pnpm store, тому інсталяція все одно перевіряється без повторного завантаження залежностей при кожному запуску. Його gateway-network e2e повторно використовує runtime image, зібраний раніше в межах завдання, тому додає реальне покриття WebSocket між контейнерами без додавання ще однієї Docker-збірки. Локальна команда `test:docker:all` попередньо збирає один спільний live-test image і один спільний образ зібраного застосунку `scripts/e2e/Dockerfile`, а потім запускає live/E2E smoke-смуги паралельно з `OPENCLAW_SKIP_DOCKER_BUILD=1`; стандартну паралельність 4 можна налаштувати через `OPENCLAW_DOCKER_ALL_PARALLELISM`. Локальний агрегатор за замовчуванням припиняє планувати нові pooled-смуги після першого збою, а кожна смуга має тайм-аут 120 хвилин, який можна перевизначити через `OPENCLAW_DOCKER_ALL_LANE_TIMEOUT_MS`. Смуги, чутливі до старту або провайдера, виконуються ексклюзивно після паралельного пулу. Повторно використовуваний live/E2E workflow відтворює шаблон спільного image, збираючи й публікуючи один GHCR Docker E2E image з тегом SHA перед Docker-матрицею, а потім запускає матрицю з `OPENCLAW_SKIP_DOCKER_BUILD=1`. Запланований live/E2E workflow щодня запускає повний Docker-набір для release-path. Тести QR і installer Docker зберігають власні Dockerfile, зосереджені на інсталяції. Окреме завдання `docker-e2e-fast` запускає обмежений Docker-профіль bundled-plugin з тайм-аутом команди 120 секунд: repair залежностей setup-entry і синтетичну ізоляцію збоїв bundled-loader. Повна матриця bundled update/channel лишається manual/full-suite, оскільки виконує повторні реальні проходи npm update і doctor repair.
Логіка області дії міститься в `scripts/ci-changed-scope.mjs` і покривається unit-тестами в `src/scripts/ci-changed-scope.test.ts`.
Зміни workflow CI перевіряють граф Node CI плюс linting workflow, але самі по собі не примушують запускати нативні збірки Windows, Android або macOS; ці платформені доріжки залишаються обмеженими змінами у вихідному коді платформи.
Перевірки Windows Node обмежені специфічними для Windows обгортками process/path, допоміжними засобами npm/pnpm/UI runner, конфігурацією package manager і поверхнями workflow CI, які виконують цю доріжку; не пов’язані зміни вихідного коду, plugins, install-smoke та лише тестів залишаються на Linux Node-доріжках, щоб вони не резервували 16-vCPU Windows worker для покриття, яке вже перевіряється звичайними тестовими шардами.
Окремий workflow `install-smoke` повторно використовує той самий скрипт області дії через власне завдання `preflight`. Він обчислює `run_install_smoke` з вужчого сигналу changed-smoke, тож Docker/install smoke запускається для змін, пов’язаних із встановленням, пакуванням, контейнерами, production-змін bundled extension і поверхнями core plugin/channel/gateway/Plugin SDK, які перевіряють Docker smoke-завдання. Зміни лише тестів і лише документації не резервують Docker workers. Його QR package smoke примушує Docker-шар `pnpm install` запускатися повторно, зберігаючи кеш BuildKit pnpm store, тож він усе ще перевіряє встановлення без повторного завантаження залежностей під час кожного запуску. Його gateway-network e2e повторно використовує образ runtime, зібраний раніше в цьому завданні, тож додає реальне покриття WebSocket між контейнерами без додавання ще однієї Docker-збірки. Локальна команда `test:docker:all` попередньо збирає один спільний live-test image і один спільний built-app image з `scripts/e2e/Dockerfile`, потім запускає доріжки live/E2E smoke паралельно з `OPENCLAW_SKIP_DOCKER_BUILD=1`; налаштуйте типове значення паралелізму 4 через `OPENCLAW_DOCKER_ALL_PARALLELISM`. Локальний агрегатор за замовчуванням припиняє планувати нові pooled-доріжки після першої помилки, а кожна доріжка має тайм-аут 120 хвилин, який можна перевизначити через `OPENCLAW_DOCKER_ALL_LANE_TIMEOUT_MS`. Доріжки, чутливі до запуску або провайдера, виконуються ексклюзивно після паралельного пулу. Повторно використовуваний workflow live/E2E відтворює шаблон спільного образу, збираючи й публікуючи один SHA-тегований образ Docker E2E у GHCR перед матрицею Docker, а потім запускаючи матрицю з `OPENCLAW_SKIP_DOCKER_BUILD=1`. Запланований workflow live/E2E щодня запускає повний Docker-набір для шляху релізу. Docker-тести QR та installer зберігають власні Dockerfile, орієнтовані на встановлення. Окреме завдання `docker-e2e-fast` запускає обмежений Docker-профіль bundled-plugin із тайм-аутом команди 120 секунд: відновлення залежностей setup-entry плюс ізоляція синтетичного збою bundled-loader. Повна матриця bundled update/channel залишається ручною/для повного набору, оскільки вона виконує повторні реальні проходи npm update і doctor repair.
Логіка локальних changed-lanes міститься в `scripts/changed-lanes.mjs` і виконується через `scripts/check-changed.mjs`. Ця локальна перевірка суворіше ставиться до архітектурних меж, ніж широке платформене обмеження в CI: production-зміни core запускають typecheck core prod плюс тести core, зміни лише в тестах core запускають лише typecheck/tests для тестів core, production-зміни extension запускають typecheck extension prod плюс тести extension, а зміни лише в тестах extension запускають лише typecheck/tests для тестів extension. Зміни в публічному Plugin SDK або plugin-contract розширюють перевірку на extension, оскільки extension залежать від цих core-контрактів. Зміни лише в release metadata version bump запускають цільові перевірки version/config/root-dependency. Невідомі зміни в root/config безпечно переводять у всі смуги.
Локальна логіка changed-lane міститься в `scripts/changed-lanes.mjs` і виконується через `scripts/check-changed.mjs`. Цей локальний шлюз суворіший щодо архітектурних меж, ніж широке платформене обмеження CI: зміни core production запускають перевірку типів core prod плюс core-тести, зміни лише core-тестів запускають лише перевірку типів/тести core test, зміни extension production запускають перевірку типів extension prod плюс extension-тести, а зміни лише extension-тестів запускають лише перевірку типів/тести extension test. Зміни в публічному Plugin SDK або plugin-contract розширюють валідацію до extension, оскільки розширення залежать від цих core-контрактів. Оновлення версій лише в метаданих релізу запускають прицільні перевірки version/config/root-dependency. Невідомі зміни root/config у безпечному режимі призводять до запуску всіх доріжок.
Для push матриця `checks` додає смугу `compat-node22`, яка виконується лише для push. Для pull request ця смуга пропускається, і матриця залишається зосередженою на звичайних тестових/channel-смугах.
Під час пушів матриця `checks` додає доріжку `compat-node22`, що запускається лише для пушів. Для pull request ця доріжка пропускається, і матриця залишається зосередженою на звичайних доріжках тестів/каналів.
Найповільніші сімейства Node-тестів розділені або збалансовані так, щоб кожне завдання лишалося невеликим без надмірного резервування runner-ів: channel contracts виконуються як три зважені шарди, тести bundled plugin збалансовані між шістьма extension worker-ами, малі core unit-смуги об’єднані попарно, auto-reply виконується як три збалансовані worker-и замість шести дрібних worker-ів, а конфігурації agentic gateway/plugin розподілені по наявних source-only agentic Node-завданнях замість очікування build-артефактів. Широкі browser-, QA-, media- і miscellaneous plugin-тести використовують власні конфігурації Vitest замість спільного універсального plugin catch-all. Завдання extension shard виконують групи конфігурацій plugin послідовно з одним Vitest worker і більшим Node heap, щоб import-важкі пакети plugin не перевантажували малі CI runner-и. Широка smуга agents використовує спільний файл-паралельний планувальник Vitest, оскільки в ній домінують imports/планування, а не один окремий повільний тестовий файл. `runtime-config` виконується разом із шардом infra core-runtime, щоб спільний runtime-shard не залишався найдовшим. `check-additional` тримає разом package-boundary compile/canary-роботи й відокремлює архітектуру runtime topology від покриття gateway watch; shard boundary guard виконує свої малі незалежні guards паралельно в межах одного завдання. Gateway watch, channel-тести й shard core support-boundary виконуються паралельно всередині `build-artifacts` після того, як `dist/` і `dist-runtime/` уже зібрано, зберігаючи старі назви перевірок як легкі завдання-верифікатори й водночас уникаючи двох додаткових Blacksmith worker-ів і другої черги споживачів артефактів.
Найповільніші сімейства Node-тестів розділені або збалансовані так, щоб кожне завдання залишалося невеликим без надмірного резервування раннерів: channel contracts виконуються у трьох зважених шардах, тести bundled plugin збалансовані між шістьма workers розширень, невеликі core unit-доріжки спарені, auto-reply виконується у трьох збалансованих workers замість шести дрібних workers, а agentic gateway/plugin configs розподілені між наявними Node-завданнями agentic лише з вихідним кодом замість очікування зібраних артефактів. Широкі browser-, QA-, media- та різні plugin-тести використовують власні конфігурації Vitest замість спільного універсального plugin-набору. Завдання шардів розширень запускають групи конфігурацій plugin послідовно з одним Vitest worker і більшим heap Node, щоб важкі за імпортами пакети plugin не перевантажували малі CI-раннери. Широка доріжка agents використовує спільний файлово-паралельний планувальник Vitest, тому що в ній домінують імпорти/планування, а не один повільний тестовий файл. `runtime-config` виконується разом із шардом infra core-runtime, щоб спільний runtime-шард не тримав хвіст. `check-additional` тримає разом роботу compile/canary для package-boundary і відокремлює архітектуру топології runtime від покриття gateway watch; шард boundary guard запускає свої невеликі незалежні guards паралельно в межах одного завдання. Gateway watch, channel-тести та core support-boundary shard виконуються паралельно всередині `build-artifacts` після того, як `dist/` і `dist-runtime/` уже зібрані, зберігаючи свої старі назви перевірок як легкі завдання-верифікатори, але без двох додаткових Blacksmith workers і другої черги споживачів артефактів.
Android CI запускає і `testPlayDebugUnitTest`, і `testThirdPartyDebugUnitTest`, а потім збирає Play debug APK. Flavor third-party не має окремого source set або manifest; його смуга unit-тестів усе одно компілює цей flavor із прапорцями SMS/call-log у BuildConfig, водночас уникаючи дубльованого завдання пакування debug APK при кожному push, релевантному для Android.
`extension-fast` є лише для PR, тому що push-запуски вже виконують повні шарди bundled plugin. Це зберігає швидкий зворотний зв’язок для reviews щодо змінених plugin без резервування додаткового Blacksmith worker у `main` для покриття, яке вже є в `checks-node-extensions`.
Android CI запускає і `testPlayDebugUnitTest`, і `testThirdPartyDebugUnitTest`, а потім збирає Play debug APK. Варіант third-party не має окремого набору вихідного коду чи маніфесту; його доріжка unit-тестів усе одно компілює цей варіант із прапорцями SMS/call-log у BuildConfig, водночас уникаючи дубльованого завдання пакування debug APK при кожному Android-релевантному пуші.
`extension-fast` працює лише для PR, оскільки запуски для push уже виконують повні шарди bundled plugin. Це зберігає зворотний зв’язок щодо змінених plugins для рев’ю без резервування додаткового Blacksmith worker на `main` для покриття, яке вже є в `checks-node-extensions`.
GitHub може позначати замінені новішими завдання як `cancelled`, коли новіший push потрапляє в той самий PR або ref `main`. Сприймайте це як шум CI, якщо тільки найновіший запуск для того самого ref також не падає. Агреговані shard-перевірки використовують `!cancelled() && always()`, тож вони й далі повідомляють про звичайні збої shard-ів, але не стають у чергу після того, як увесь workflow уже був замінений новішим.
GitHub може позначати витіснені завдання як `cancelled`, коли новіший пуш потрапляє в той самий PR або ref `main`. Сприймайте це як шум CI, якщо тільки найновіший запуск для того самого ref також не падає. Агреговані перевірки шардів використовують `!cancelled() && always()`, тож вони все одно повідомляють про звичайні збої шардів, але не стають у чергу після того, як увесь workflow уже був витіснений.
Ключ конкурентності CI має версію (`CI-v7-*`), щоб zombie-процес на боці GitHub у старій групі черги не міг безстроково блокувати новіші запуски main.
## Runner-и
## Раннери
| Runner | Завдання |
| Раннер | Завдання |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ubuntu-24.04` | `preflight`, швидкі security-завдання та агрегати (`security-scm-fast`, `security-dependency-audit`, `security-fast`), швидкі protocol/contract/bundled-перевірки, шардовані перевірки channel contract, шарди `check`, окрім lint, шарди й агрегати `check-additional`, агреговані верифікатори Node-тестів, перевірки docs, Python Skills, workflow-sanity, labeler, auto-response; preflight для install-smoke також використовує GitHub-hosted Ubuntu, щоб матриця Blacksmith могла стати в чергу раніше |
| `ubuntu-24.04` | `preflight`, швидкі завдання безпеки та агрегатори (`security-scm-fast`, `security-dependency-audit`, `security-fast`), швидкі перевірки protocol/contract/bundled, шардовані перевірки channel contract, шарди `check`, окрім lint, шарди й агрегатори `check-additional`, агреговані верифікатори Node-тестів, перевірки документації, Python Skills, workflow-sanity, labeler, auto-response; preflight для install-smoke також використовує GitHub-hosted Ubuntu, щоб матриця Blacksmith могла ставати в чергу раніше |
| `blacksmith-8vcpu-ubuntu-2404` | `build-artifacts`, build-smoke, шарди Linux Node-тестів, шарди тестів bundled plugin, `android` |
| `blacksmith-16vcpu-ubuntu-2404` | `check-lint`, який і далі достатньо чутливий до CPU, тож 8 vCPU коштували дорожче, ніж заощаджували; Docker-збірки install-smoke, де час очікування в черзі для 32 vCPU коштував дорожче, ніж давав вигоду |
| `blacksmith-16vcpu-ubuntu-2404` | `check-lint`, який залишається настільки чутливим до CPU, що 8 vCPU коштували дорожче, ніж заощаджували; Docker-збірки install-smoke, де вартість часу очікування в черзі на 32 vCPU перевищувала виграш |
| `blacksmith-16vcpu-windows-2025` | `checks-windows` |
| `blacksmith-6vcpu-macos-latest` | `macos-node` у `openclaw/openclaw`; для fork використовується резервний `macos-latest` |
| `blacksmith-12vcpu-macos-latest` | `macos-swift` у `openclaw/openclaw`; для fork використовується резервний `macos-latest` |
| `blacksmith-6vcpu-macos-latest` | `macos-node` у `openclaw/openclaw`; для форків використовується резервний `macos-latest` |
| `blacksmith-12vcpu-macos-latest` | `macos-swift` у `openclaw/openclaw`; для форків використовується резервний `macos-latest` |
## Локальні еквіваленти
```bash
pnpm changed:lanes # переглянути локальний класифікатор changed-lane для origin/main...HEAD
pnpm check:changed # розумна локальна перевірка: changed typecheck/lint/tests за boundary lane
pnpm check # швидка локальна перевірка: production tsgo + sharded lint + parallel fast guards
pnpm check:changed # розумний локальний шлюз: змінені typecheck/lint/тести за boundary lane
pnpm check # швидкий локальний шлюз: production tsgo + шардований lint + паралельні швидкі guards
pnpm check:test-types
pnpm check:timed # та сама перевірка з таймінгами для кожного етапу
pnpm check:timed # той самий шлюз із таймінгами для кожного етапу
pnpm build:strict-smoke
pnpm check:architecture
pnpm test:gateway:watch-regression
pnpm test # тести vitest
pnpm test:channels
pnpm test:contracts:channels
pnpm check:docs # форматування docs + lint + биті посилання
pnpm build # збірка dist, коли важливі смуги CI artifact/build-smoke
pnpm check:docs # форматування документації + lint + биті посилання
pnpm build # зібрати dist, коли важливі доріжки CI artifact/build-smoke
node scripts/ci-run-timings.mjs <run-id> # підсумувати загальний час, час у черзі та найповільніші завдання
node scripts/ci-run-timings.mjs --recent 10 # порівняти нещодавні успішні запуски main CI
node scripts/ci-run-timings.mjs --recent 10 # порівняти недавні успішні запуски main CI
pnpm test:perf:groups --full-suite --allow-failures --output .artifacts/test-perf/baseline-before.json
pnpm test:perf:groups:compare .artifacts/test-perf/baseline-before.json .artifacts/test-perf/after-agent.json
```

View File

@ -4,19 +4,19 @@ read_when:
summary: Довідка CLI для `openclaw config` (get/set/unset/file/schema/validate)
title: config
x-i18n:
generated_at: "2026-04-23T19:23:54Z"
generated_at: "2026-04-23T20:05:10Z"
model: gpt-5.4
provider: openai
source_hash: ec16221cc977eb2108c4310eab6b49e74220de50425ab12201cf97d275ab5a65
source_hash: 19858f9becd98a56f4d993f1630b14c5f533121d3eaf8c37df9d39b0c8a41365
source_path: cli/config.md
workflow: 15
---
# `openclaw config`
Допоміжні команди config для невзаємодіючих змін у `openclaw.json`: отримання/встановлення/видалення/файл/схема/перевірка
Допоміжні команди config для невзаємодіючих редагувань у `openclaw.json`: get/set/unset/file/schema/validate
значень за шляхом і виведення активного файла config. Запустіть без підкоманди, щоб
відкрити майстер налаштування (так само, як `openclaw configure`).
відкрити майстер налаштування (те саме, що `openclaw configure`).
Кореневі параметри:
@ -45,7 +45,7 @@ openclaw config get browser.executablePath
openclaw config set browser.executablePath "/usr/bin/google-chrome"
openclaw config set agents.defaults.heartbeat.every "2h"
openclaw config set agents.list[0].tools.exec.node "node-id-or-name"
openclaw config set agents.defaults.models '{"openai-codex/gpt-5.5":{}}' --strict-json --merge
openclaw config set agents.defaults.models '{"openai/gpt-5.5":{}}' --strict-json --merge
openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN
openclaw config set secrets.providers.vaultfile --provider-source file --provider-path /etc/openclaw/secrets.json --provider-mode json
openclaw config unset plugins.entries.brave.config.webSearch.apiKey
@ -60,25 +60,25 @@ openclaw config validate --json
Що вона містить:
- Поточну схему кореневого config, а також кореневе рядкове поле `$schema` для інструментів редактора
- Метадані документації полів `title` і `description`, які використовує інтерфейс Control UI
- Вкладені об’єкти, вузли-підстановки (`*`) і вузли елементів масиву (`[]`) успадковують ті самі метадані `title` / `description`, коли існує відповідна документація поля
- Поточну кореневу схему config, а також кореневе строкове поле `$schema` для інструментів редактора
- Метадані документації полів `title` і `description`, що використовуються UI Control
- Вкладені об’єкти, вузли wildcard (`*`) і елементи масиву (`[]`) успадковують ті самі метадані `title` / `description`, коли існує відповідна документація поля
- Гілки `anyOf` / `oneOf` / `allOf` також успадковують ті самі метадані документації, коли існує відповідна документація поля
- Метадані схем Plugin і channel у режимі best-effort, якщо можна завантажити runtime-маніфести
- Чисту резервну схему, навіть коли поточний config є невалідним
- Метадані схем live Plugin + channel за принципом best-effort, коли можна завантажити runtime-маніфести
- Чисту резервну схему навіть тоді, коли поточний config є невалідним
Пов’язаний runtime RPC:
- `config.schema.lookup` повертає один нормалізований шлях config із поверхневим
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, поширені межі),
відповідними метаданими підказок UI та зведеннями безпосередніх дочірніх елементів. Використовуйте це для
деталізації в межах шляху в Control UI або у власних клієнтах.
- `config.schema.lookup` повертає один нормалізований шлях config з неглибоким
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, поширені обмеження),
метаданими підказок UI, що збіглися, і зведеннями безпосередніх дочірніх елементів. Використовуйте це для
деталізації за шляхом у UI Control або в custom-клієнтах.
```bash
openclaw config schema
```
Спрямуйте вивід у файл, якщо хочете переглянути або перевірити його іншими інструментами:
Передайте в файл, якщо хочете переглянути або перевірити її іншими інструментами:
```bash
openclaw config schema > openclaw.schema.json
@ -86,7 +86,7 @@ openclaw config schema > openclaw.schema.json
### Шляхи
Шляхи використовують крапкову або дужкову нотацію:
Шляхи використовують нотацію з крапками або дужками:
```bash
openclaw config get agents.defaults.workspace
@ -102,8 +102,8 @@ openclaw config set agents.list[1].tools.exec.node "node-id-or-name"
## Значення
Значення аналізуються як JSON5, якщо це можливо; інакше вони трактуються як рядки.
Використовуйте `--strict-json`, щоб вимагати аналіз JSON5. `--json` і надалі підтримується як застарілий псевдонім.
Значення розбираються як JSON5, коли це можливо; інакше вони обробляються як рядки.
Використовуйте `--strict-json`, щоб вимагати розбір JSON5. `--json` і далі підтримується як застарілий псевдонім.
```bash
openclaw config set agents.defaults.heartbeat.every "0m"
@ -116,17 +116,17 @@ openclaw config set channels.whatsapp.groups '["*"]' --strict-json
Присвоєння об’єкта за замовчуванням замінює цільовий шлях. Захищені шляхи map/list,
які часто містять записи, додані користувачем, наприклад `agents.defaults.models`,
`models.providers`, `models.providers.<id>.models`, `plugins.entries` і
`auth.profiles`, відхиляють заміни, які видалили б наявні записи, якщо
`auth.profiles`, відмовляються від замін, які видалили б наявні записи, якщо
ви не передасте `--replace`.
Використовуйте `--merge`, коли додаєте записи до цих map:
```bash
openclaw config set agents.defaults.models '{"openai-codex/gpt-5.5":{}}' --strict-json --merge
openclaw config set agents.defaults.models '{"openai/gpt-5.5":{}}' --strict-json --merge
openclaw config set models.providers.ollama.models '[{"id":"llama3.2","name":"Llama 3.2"}]' --strict-json --merge
```
Використовуйте `--replace` лише тоді, коли ви навмисно хочете, щоб надане значення
Використовуйте `--replace` лише тоді, коли ви свідомо хочете, щоб надане значення
стало повним цільовим значенням.
## Режими `config set`
@ -134,7 +134,7 @@ openclaw config set models.providers.ollama.models '[{"id":"llama3.2","name":"Ll
`openclaw config set` підтримує чотири стилі присвоєння:
1. Режим значення: `openclaw config set <path> <value>`
2. Режим побудови SecretRef:
2. Режим конструктора SecretRef:
```bash
openclaw config set channels.discord.token \
@ -143,7 +143,7 @@ openclaw config set channels.discord.token \
--ref-id DISCORD_BOT_TOKEN
```
3. Режим побудови provider (лише для шляху `secrets.providers.<alias>`):
3. Режим конструктора provider (лише для шляху `secrets.providers.<alias>`):
```bash
openclaw config set secrets.providers.vault \
@ -175,12 +175,12 @@ openclaw config set --batch-file ./config-set.batch.json --dry-run
Примітка щодо політики:
- Присвоєння SecretRef відхиляються на непідтримуваних поверхнях runtime-змінюваності (наприклад, `hooks.token`, `commands.ownerDisplaySecret`, токени Webhook прив’язки тредів Discord і JSON-облікові дані WhatsApp). Див. [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
- Присвоєння SecretRef відхиляються на непідтримуваних runtime-mutable поверхнях (наприклад, `hooks.token`, `commands.ownerDisplaySecret`, токенах Webhook прив’язки гілок Discord і JSON облікових даних WhatsApp). Див. [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
Пакетний аналіз завжди використовує пакетне навантаження (`--batch-json`/`--batch-file`) як джерело істини.
`--strict-json` / `--json` не змінюють поведінку пакетного аналізу.
Пакетний розбір завжди використовує пакетне корисне навантаження (`--batch-json`/`--batch-file`) як джерело істини.
`--strict-json` / `--json` не змінюють поведінку пакетного розбору.
Режим JSON path/value і надалі підтримується як для SecretRef, так і для provider:
Режим JSON path/value і далі підтримується як для SecretRef, так і для provider:
```bash
openclaw config set channels.discord.token \
@ -192,11 +192,11 @@ openclaw config set secrets.providers.vaultfile \
--strict-json
```
## Прапорці побудови provider
## Прапорці конструктора provider
Цілі побудови provider мають використовувати `secrets.providers.<alias>` як шлях.
Цілі конструктора provider мають використовувати `secrets.providers.<alias>` як шлях.
Поширені прапорці:
Загальні прапорці:
- `--provider-source <env|file|exec>`
- `--provider-timeout-ms <ms>` (`file`, `exec`)
@ -239,9 +239,9 @@ openclaw config set secrets.providers.vault \
--provider-timeout-ms 5000
```
## Сухий запуск
## Пробний запуск
Використовуйте `--dry-run`, щоб перевірити зміни без запису в `openclaw.json`.
Використовуйте `--dry-run`, щоб перевірити зміни без запису до `openclaw.json`.
```bash
openclaw config set channels.discord.token \
@ -265,24 +265,24 @@ openclaw config set channels.discord.token \
--allow-exec
```
Поведінка сухого запуску:
Поведінка пробного запуску:
- Режим побудови: виконує перевірки можливості розв’язання SecretRef для змінених refs/providers.
- Режим JSON (`--strict-json`, `--json` або пакетний режим): виконує перевірку схеми, а також перевірки можливості розв’язання SecretRef.
- Також виконується перевірка політики для відомих непідтримуваних цільових поверхонь SecretRef.
- Перевірки політики оцінюють повний config після змін, тому записи батьківського об’єкта (наприклад, встановлення `hooks` як об’єкта) не можуть обійти перевірку непідтримуваних поверхонь.
- Перевірки exec SecretRef під час сухого запуску за замовчуванням пропускаються, щоб уникнути побічних ефектів виконання команд.
- Режим конструктора: запускає перевірки можливості розв’язання SecretRef для змінених ref/provider.
- Режим JSON (`--strict-json`, `--json` або пакетний режим): запускає перевірку схеми, а також перевірки можливості розв’язання SecretRef.
- Також запускається перевірка політики для відомих непідтримуваних цільових поверхонь SecretRef.
- Перевірки політики оцінюють повний config після змін, тому записи батьківських об’єктів (наприклад, встановлення `hooks` як об’єкта) не можуть обійти перевірку непідтримуваних поверхонь.
- Перевірки exec SecretRef під час пробного запуску за замовчуванням пропускаються, щоб уникнути побічних ефектів команд.
- Використовуйте `--allow-exec` разом із `--dry-run`, щоб увімкнути перевірки exec SecretRef (це може виконати команди provider).
- `--allow-exec` працює лише для сухого запуску й спричиняє помилку, якщо використовується без `--dry-run`.
- `--allow-exec` призначений лише для пробного запуску й спричиняє помилку, якщо використовується без `--dry-run`.
`--dry-run --json` виводить машиночитний звіт:
`--dry-run --json` виводить машинозчитуваний звіт:
- `ok`: чи пройшов сухий запуск
- `operations`: кількість оцінених присвоєнь
- `checks`: чи виконувалися перевірки схеми/можливості розв’язання
- `checks.resolvabilityComplete`: чи були перевірки можливості розв’язання виконані до завершення (`false`, коли exec refs пропущено)
- `refsChecked`: кількість refs, фактично розв’язаних під час сухого запуску
- `skippedExecRefs`: кількість exec refs, пропущених через те, що не було встановлено `--allow-exec`
- `ok`: чи пройшов пробний запуск
- `operations`: кількість перевірених присвоєнь
- `checks`: чи запускалися перевірки схеми/можливості розв’язання
- `checks.resolvabilityComplete`: чи були перевірки можливості розв’язання виконані до завершення (`false`, коли exec ref пропускаються)
- `refsChecked`: кількість ref, фактично розв’язаних під час пробного запуску
- `skippedExecRefs`: кількість exec ref, пропущених через те, що `--allow-exec` не було встановлено
- `errors`: структуровані збої схеми/можливості розв’язання, коли `ok=false`
### Форма виводу JSON
@ -310,7 +310,7 @@ openclaw config set channels.discord.token \
}
```
Приклад успішного виконання:
Приклад успіху:
```json
{
@ -353,25 +353,25 @@ openclaw config set channels.discord.token \
}
```
Якщо сухий запуск не вдався:
Якщо пробний запуск не вдається:
- `config schema validation failed`: форма вашого config після змін є невалідною; виправте шлях/значення або форму об’єкта provider/ref.
- `Config policy validation failed: unsupported SecretRef usage`: поверніть цей обліковий запис до plaintext/string-введення і залишайте SecretRefs лише на підтримуваних поверхнях.
- `SecretRef assignment(s) could not be resolved`: зазначений provider/ref наразі не може бути розв’язаний (відсутня env-змінна, недійсний вказівник на файл, збій exec provider або невідповідність provider/source).
- `Dry run note: skipped <n> exec SecretRef resolvability check(s)`: сухий запуск пропустив exec refs; перезапустіть з `--allow-exec`, якщо вам потрібна перевірка можливості розв’язання exec.
- `config schema validation failed`: форма вашого config після змін невалідна; виправте шлях/значення або форму об’єкта provider/ref.
- `Config policy validation failed: unsupported SecretRef usage`: поверніть ці облікові дані до простого тексту/рядкового вводу й залишайте SecretRef лише на підтримуваних поверхнях.
- `SecretRef assignment(s) could not be resolved`: на цей момент неможливо розв’язати вказаний provider/ref (відсутня змінна env, невалідне посилання на файл, збій exec provider або невідповідність provider/source).
- `Dry run note: skipped <n> exec SecretRef resolvability check(s)`: пробний запуск пропустив exec ref; повторіть із `--allow-exec`, якщо вам потрібна перевірка можливості розв’язання exec.
- Для пакетного режиму виправте записи, що не пройшли перевірку, і повторно запустіть `--dry-run` перед записом.
## Безпека запису
`openclaw config set` та інші засоби запису config, якими керує OpenClaw, перевіряють повний
config після змін перед тим, як фіксувати його на диску. Якщо нове корисне навантаження не проходить перевірку схеми
`openclaw config set` та інші засоби запису config, що належать OpenClaw, перевіряють увесь
config після змін перед збереженням його на диск. Якщо нове корисне навантаження не проходить перевірку схеми
або виглядає як руйнівне перезаписування, активний config залишається без змін,
а відхилене корисне навантаження зберігається поруч із ним як `openclaw.json.rejected.*`.
Шлях до активного config має вказувати на звичайний файл. Макети `openclaw.json`
із символічними посиланнями не підтримуються для запису; натомість використовуйте `OPENCLAW_CONFIG_PATH`, щоб вказати безпосередньо
на реальний файл.
Шлях активного config має вказувати на звичайний файл. Компонування з `openclaw.json`,
що використовує symlink, не підтримується для записів; натомість використовуйте `OPENCLAW_CONFIG_PATH`,
щоб вказати безпосередньо на реальний файл.
Віддавайте перевагу записам через CLI для невеликих змін:
Надавайте перевагу запису через CLI для невеликих змін:
```bash
openclaw config set gateway.reload.mode hybrid --dry-run
@ -387,20 +387,20 @@ ls -lt "$CONFIG".rejected.* 2>/dev/null | head
openclaw config validate
```
Прямі записи через редактор і надалі дозволені, але запущений Gateway вважає їх
ненадійними, доки вони не пройдуть перевірку. Невалідні прямі зміни можна відновити з
Прямий запис через редактор і далі дозволений, але запущений Gateway вважає такі зміни
ненадійними, доки вони не пройдуть перевірку. Невалідні прямі редагування можна відновити з
резервної копії останнього відомого коректного стану під час запуску або гарячого перезавантаження. Див.
[усунення несправностей Gateway](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config).
## Підкоманди
- `config file`: Вивести шлях до активного файла config (визначений з `OPENCLAW_CONFIG_PATH` або зі стандартного розташування). Шлях має вказувати на звичайний файл, а не на символічне посилання.
- `config file`: Вивести шлях до активного файла config (визначеного з `OPENCLAW_CONFIG_PATH` або стандартного розташування). Шлях має вказувати на звичайний файл, а не на symlink.
Перезапустіть gateway після змін.
Перезапустіть gateway після редагувань.
## Перевірка
## Validate
Перевіряє поточний config на відповідність активній схемі без запуску
Перевірити поточний config за активною схемою без запуску
gateway.
```bash
@ -408,13 +408,13 @@ openclaw config validate
openclaw config validate --json
```
Після того як `openclaw config validate` проходить успішно, ви можете використати локальний TUI, щоб
вбудований агент порівняв активний config з документацією, поки ви перевіряєте
Після того як `openclaw config validate` проходить успішно, ви можете використовувати локальний TUI, щоб
вбудований агент порівняв активний config із документацією, поки ви перевіряєте
кожну зміну в тому самому терміналі:
Якщо перевірка вже не проходить, почніть з `openclaw configure` або
`openclaw doctor --fix`. `openclaw chat` не обходить захист
від невалідного config.
Якщо перевірка вже завершується помилкою, почніть з `openclaw configure` або
`openclaw doctor --fix`. `openclaw chat` не обходить
захист від невалідного config.
```bash
openclaw chat
@ -431,7 +431,7 @@ openclaw chat
Типовий цикл виправлення:
- Попросіть агента порівняти ваш поточний config із відповідною сторінкою документації та запропонувати найменше виправлення.
- Попросіть агента порівняти ваш поточний config з відповідною сторінкою документації та запропонувати найменше виправлення.
- Застосуйте точкові зміни за допомогою `openclaw config set` або `openclaw configure`.
- Повторно запускайте `openclaw config validate` після кожної зміни.
- Якщо перевірка проходить, але runtime усе ще працює некоректно, запустіть `openclaw doctor` або `openclaw doctor --fix`, щоб отримати допомогу з міграцією та виправленням.
- Якщо перевірка проходить, але runtime і далі працює нездорово, запустіть `openclaw doctor` або `openclaw doctor --fix`, щоб отримати допомогу з міграцією та виправленням.

View File

@ -1,63 +1,62 @@
---
read_when:
- Вам потрібен довідник з налаштування моделей для кожного провайдера окремо
- Вам потрібні приклади конфігурацій або команд онбордингу CLI для провайдерів моделей
summary: Огляд провайдерів моделей із прикладами конфігурацій + потоками CLI
- Вам потрібен довідник із налаштування моделей для кожного провайдера окремо
- Ви хочете приклади конфігурацій або команд онбордингу CLI для провайдерів моделей
summary: Огляд провайдера моделей із прикладами конфігурацій + потоками CLI
title: Провайдери моделей
x-i18n:
generated_at: "2026-04-23T19:23:53Z"
generated_at: "2026-04-23T20:05:12Z"
model: gpt-5.4
provider: openai
source_hash: bdbb8deae102c8e55d4535ddb14b8eadb999c123cb6d188ebe563971bed762fc
source_hash: bfe692175a2f2d5fb5d79fee13ddf612c776269c7938e9a4234765ab0063940d
source_path: concepts/model-providers.md
workflow: 15
---
# Провайдери моделей
Ця сторінка охоплює **LLM/провайдерів моделей** (а не чат-канали на кшталт WhatsApp/Telegram).
На цій сторінці розглядаються **провайдери LLM/моделей** (а не канали чату на кшталт WhatsApp/Telegram).
Правила вибору моделей див. у [/concepts/models](/uk/concepts/models).
## Швидкі правила
- Посилання на моделі використовують `provider/model` (приклад: `opencode/claude-opus-4-6`).
- `agents.defaults.models` діє як allowlist, якщо його задано.
- `agents.defaults.models` працює як список дозволених значень, якщо його задано.
- Допоміжні команди CLI: `openclaw onboard`, `openclaw models list`, `openclaw models set <provider/model>`.
- `models.providers.*.models[].contextWindow` — це нативні метадані моделі; `contextTokens` — це фактичне обмеження під час виконання.
- Правила fallback, проби cooldown і збереження перевизначень сесії: [Відмовостійкість моделей](/uk/concepts/model-failover).
- Вбудований `codex` поєднано з harness агента Codex — використовуйте `codex/gpt-*` для входу, виявлення, нативного відновлення потоків і виконання app-server, якими керує Codex. Звичайний `openai/gpt-*` використовує провайдера OpenAI і стандартний транспорт. Вимкніть автоматичний fallback до PI для розгортань лише з Codex через `agents.defaults.embeddedHarness.fallback: "none"` — див. [Codex harness](/uk/plugins/codex-harness).
- `models.providers.*.models[].contextWindow` — це рідні метадані моделі; `contextTokens` — це фактичне обмеження під час виконання.
- Правила резервного перемикання, перевірки cooldown і збереження session-override: [Failover моделі](/uk/concepts/model-failover).
- Канонічні посилання на моделі OpenAI GPT мають формат `openai/<model>`. Застарілі посилання `openai-codex/<model>` і `codex/<model>` залишаються сумісними псевдонімами для старіших конфігурацій і тестів. Для нативного виконання Codex app-server зберігайте посилання на модель як `openai/gpt-*` і примусово задавайте `agents.defaults.embeddedHarness.runtime: "codex"` — див. [Codex harness](/uk/plugins/codex-harness).
## Поведінка провайдерів, якою керують Plugin
## Поведінка провайдерів, що належить Plugin
Більшість логіки, специфічної для провайдерів, живе у Plugin провайдерів (`registerProvider(...)`), тоді як OpenClaw зберігає загальний цикл інференсу. Plugin керують онбордингом, каталогами моделей, мапінгом auth env var, нормалізацією транспорту/конфігурації, очищенням схем інструментів, класифікацією failover, оновленням OAuth, звітністю про використання, профілями thinking/reasoning тощо.
Більшість специфічної для провайдера логіки живе в Plugin провайдера (`registerProvider(...)`), тоді як OpenClaw зберігає загальний цикл інференсу. Plugin відповідають за онбординг, каталоги моделей, відображення auth env-var, нормалізацію транспорту/конфігурації, очищення схем інструментів, класифікацію failover, оновлення OAuth, звітування про використання, профілі thinking/reasoning тощо.
Повний список хуків provider-SDK і прикладів вбудованих Plugin наведено в [Plugin провайдерів](/uk/plugins/sdk-provider-plugins). Якщо провайдеру потрібен повністю кастомний виконавець запитів, це вже окрема, глибша поверхня розширення.
Повний список хуків provider-SDK і приклади вбудованих Plugin наведено в [Provider plugins](/uk/plugins/sdk-provider-plugins). Провайдеру, якому потрібен повністю кастомний виконавець запитів, потрібна окрема, глибша поверхня розширення.
<Note>
Під час виконання `capabilities` провайдера — це спільні метадані раннера (сімейство провайдера, особливості transcript/tooling, підказки для transport/cache). Це не те саме, що [публічна модель можливостей](/uk/plugins/architecture#public-capability-model), яка описує, що реєструє Plugin (текстовий інференс, мовлення тощо).
`capabilities` середовища виконання провайдера — це спільні метадані раннера (сімейство провайдера, особливості transcript/tooling, підказки для транспорту/кешу). Це не те саме, що [публічна модель capability](/uk/plugins/architecture#public-capability-model), яка описує, що реєструє Plugin (текстовий інференс, мовлення тощо).
</Note>
## Ротація API-ключів
- Підтримується загальна ротація ключів провайдерів для вибраних провайдерів.
- Підтримує загальну ротацію ключів провайдера для вибраних провайдерів.
- Налаштуйте кілька ключів через:
- `OPENCLAW_LIVE_<PROVIDER>_KEY` (одне live-перевизначення, найвищий пріоритет)
- `<PROVIDER>_API_KEYS` (список через кому або крапку з комою)
- `<PROVIDER>_API_KEY` (основний ключ)
- `<PROVIDER>_API_KEY_*` (нумерований список, наприклад `<PROVIDER>_API_KEY_1`)
- Для провайдерів Google як fallback також включається `GOOGLE_API_KEY`.
- Для провайдерів Google як резервний варіант також використовується `GOOGLE_API_KEY`.
- Порядок вибору ключів зберігає пріоритет і прибирає дублікати значень.
- Запити повторюються з наступним ключем лише у відповідь на rate-limit
(наприклад `429`, `rate_limit`, `quota`, `resource exhausted`, `Too many
- Запити повторюються з наступним ключем лише у відповідь на rate-limit помилки (наприклад `429`, `rate_limit`, `quota`, `resource exhausted`, `Too many
concurrent requests`, `ThrottlingException`, `concurrency limit reached`,
`workers_ai ... quota limit exceeded` або періодичні повідомлення про ліміт використання).
- Помилки, не пов’язані з rate-limit, одразу завершуються збоєм; ротація ключів не виконується.
- Коли всі кандидатні ключі не спрацювали, повертається фінальна помилка з останньої спроби.
- Помилки, не пов’язані з rate-limit, завершуються одразу; ротація ключів не виконується.
- Коли всі можливі ключі завершуються помилкою, повертається фінальна помилка з останньої спроби.
## Вбудовані провайдери (каталог pi-ai)
OpenClaw постачається з каталогом pi-ai. Для цих провайдерів **не**
потрібна конфігурація `models.providers`; достатньо задати auth + вибрати модель.
OpenClaw постачається з каталогом piai. Для цих провайдерів **не потрібна**
конфігурація `models.providers`; достатньо налаштувати auth і вибрати модель.
### OpenAI
@ -66,18 +65,17 @@ OpenClaw постачається з каталогом pi-ai. Для цих п
- Необов’язкова ротація: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`, а також `OPENCLAW_LIVE_OPENAI_KEY` (одне перевизначення)
- Приклади моделей: `openai/gpt-5.5`, `openai/gpt-5.5-pro`
- CLI: `openclaw onboard --auth-choice openai-api-key`
- Транспорт за замовчуванням — `auto` (спочатку WebSocket, fallback на SSE)
- Перевизначення для моделі через `agents.defaults.models["openai/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
- Warm-up для OpenAI Responses WebSocket за замовчуванням увімкнено через `params.openaiWsWarmup` (`true`/`false`)
- Типовий транспорт — `auto` (спочатку WebSocket, запасний варіант — SSE)
- Перевизначення для окремої моделі через `agents.defaults.models["openai/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
- Типово прогрівання OpenAI Responses WebSocket увімкнене через `params.openaiWsWarmup` (`true`/`false`)
- Пріоритетну обробку OpenAI можна ввімкнути через `agents.defaults.models["openai/<model>"].params.serviceTier`
- `/fast` і `params.fastMode` напряму маплять запити `openai/*` Responses на `service_tier=priority` у `api.openai.com`
- Використовуйте `params.serviceTier`, якщо вам потрібен явний tier замість спільного перемикача `/fast`
- `/fast` і `params.fastMode` напряму зіставляють запити `openai/*` Responses із `service_tier=priority` на `api.openai.com`
- Використовуйте `params.serviceTier`, якщо вам потрібен явний рівень замість спільного перемикача `/fast`
- Приховані заголовки атрибуції OpenClaw (`originator`, `version`,
`User-Agent`) застосовуються лише до нативного трафіку OpenAI до `api.openai.com`, а не
до загальних OpenAI-сумісних proxy
`User-Agent`) застосовуються лише до нативного трафіку OpenAI на `api.openai.com`, а не до загальних OpenAI-сумісних проксі
- Нативні маршрути OpenAI також зберігають `store` для Responses, підказки prompt-cache і
формування payload для сумісності з OpenAI reasoning; proxy-маршрути цього не роблять
- `openai/gpt-5.3-codex-spark` навмисно приховано в OpenClaw, оскільки live OpenAI API його відхиляє; Spark вважається доступним лише для Codex
формування payload із сумісністю reasoning OpenAI; проксі-маршрути цього не роблять
- `openai/gpt-5.3-codex-spark` навмисно приховано в OpenClaw, оскільки live API OpenAI його відхиляє; Spark вважається доступним лише через Codex
```json5
{
@ -92,9 +90,9 @@ OpenClaw постачається з каталогом pi-ai. Для цих п
- Необов’язкова ротація: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2`, а також `OPENCLAW_LIVE_ANTHROPIC_KEY` (одне перевизначення)
- Приклад моделі: `anthropic/claude-opus-4-6`
- CLI: `openclaw onboard --auth-choice apiKey`
- Прямі публічні запити Anthropic підтримують спільний перемикач `/fast` і `params.fastMode`, зокрема для трафіку з API-ключем та OAuth-аутентифікацією, надісланого до `api.anthropic.com`; OpenClaw мапить це на Anthropic `service_tier` (`auto` проти `standard_only`)
- Примітка щодо Anthropic: співробітники Anthropic повідомили нам, що використання Claude CLI у стилі OpenClaw знову дозволене, тому OpenClaw вважає повторне використання Claude CLI і `claude -p` санкціонованими для цієї інтеграції, якщо Anthropic не опублікує нову політику.
- Setup-token Anthropic залишається доступним як підтримуваний шлях токена в OpenClaw, але тепер OpenClaw надає перевагу повторному використанню Claude CLI і `claude -p`, якщо вони доступні.
- Прямі публічні запити Anthropic підтримують спільний перемикач `/fast` і `params.fastMode`, зокрема трафік з auth через API-ключ і OAuth, що надсилається на `api.anthropic.com`; OpenClaw зіставляє це з Anthropic `service_tier` (`auto` проти `standard_only`)
- Примітка щодо Anthropic: співробітники Anthropic повідомили нам, що використання Claude CLI у стилі OpenClaw знову дозволено, тому OpenClaw вважає повторне використання Claude CLI і використання `claude -p` санкціонованими для цієї інтеграції, якщо Anthropic не опублікує нову політику.
- setup-token Anthropic залишається доступним як підтримуваний шлях токена OpenClaw, але тепер OpenClaw надає перевагу повторному використанню Claude CLI і `claude -p`, якщо це доступно.
```json5
{
@ -102,26 +100,27 @@ OpenClaw постачається з каталогом pi-ai. Для цих п
}
```
### OpenAI Code (Codex)
### OpenAI Codex OAuth
- Провайдер: `openai-codex`
- Auth: OAuth (ChatGPT)
- Приклад моделі: `openai-codex/gpt-5.5`
- Канонічне посилання на модель: `openai/gpt-5.5`
- Застарілі посилання на моделі: `openai-codex/gpt-*`, `codex/gpt-*`
- CLI: `openclaw onboard --auth-choice openai-codex` або `openclaw models auth login --provider openai-codex`
- Транспорт за замовчуванням — `auto` (спочатку WebSocket, fallback на SSE)
- Перевизначення для моделі через `agents.defaults.models["openai-codex/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
- Типовий транспорт — `auto` (спочатку WebSocket, запасний варіант — SSE)
- Перевизначення для окремої моделі через `agents.defaults.models["openai/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
- `params.serviceTier` також передається в нативних запитах Codex Responses (`chatgpt.com/backend-api`)
- Приховані заголовки атрибуції OpenClaw (`originator`, `version`,
`User-Agent`) додаються лише до нативного трафіку Codex на
`chatgpt.com/backend-api`, а не до загальних OpenAI-сумісних proxy
- Використовує той самий перемикач `/fast` і конфігурацію `params.fastMode`, що й прямий `openai/*`; OpenClaw мапить це на `service_tier=priority`
- `openai-codex/gpt-5.3-codex-spark` залишається доступною, коли її надає каталог Codex OAuth; залежить від entitlement
- `openai-codex/gpt-5.5` зберігає нативний `contextWindow = 1000000` і стандартний runtime `contextTokens = 272000`; перевизначте runtime-обмеження через `models.providers.openai-codex.models[].contextTokens`
- Примітка щодо політики: OAuth OpenAI Codex явно підтримується для зовнішніх інструментів/процесів, таких як OpenClaw.
`chatgpt.com/backend-api`, а не до загальних OpenAI-сумісних проксі
- Використовує той самий перемикач `/fast` і конфігурацію `params.fastMode`, що й прямий `openai/*`; OpenClaw зіставляє це з `service_tier=priority`
- `openai/gpt-5.3-codex-spark` залишається доступним через Codex OAuth, коли каталог його показує; залежить від entitlement
- `openai/gpt-5.5` зберігає нативні `contextWindow = 1000000` і типове обмеження під час виконання `contextTokens = 272000`; перевизначайте обмеження виконання через `models.providers.openai-codex.models[].contextTokens`
- Примітка щодо політики: OpenAI Codex OAuth офіційно підтримується для зовнішніх інструментів і робочих процесів, таких як OpenClaw.
```json5
{
agents: { defaults: { model: { primary: "openai-codex/gpt-5.5" } } },
agents: { defaults: { model: { primary: "openai/gpt-5.5" } } },
}
```
@ -139,15 +138,15 @@ OpenClaw постачається з каталогом pi-ai. Для цих п
### Інші розміщені варіанти у стилі підписки
- [Qwen Cloud](/uk/providers/qwen): поверхня провайдера Qwen Cloud, а також мапінг endpoint для Alibaba DashScope і Coding Plan
- [MiniMax](/uk/providers/minimax): доступ MiniMax Coding Plan через OAuth або API key
- [GLM Models](/uk/providers/glm): endpoint Z.AI Coding Plan або загального API
- [Qwen Cloud](/uk/providers/qwen): поверхня провайдера Qwen Cloud, а також зіставлення endpoint для Alibaba DashScope і Coding Plan
- [MiniMax](/uk/providers/minimax): доступ через OAuth або API-ключ MiniMax Coding Plan
- [GLM Models](/uk/providers/glm): endpoint Z.AI Coding Plan або загальні API endpoint
### OpenCode
- Auth: `OPENCODE_API_KEY` (або `OPENCODE_ZEN_API_KEY`)
- Провайдер Zen runtime: `opencode`
- Провайдер Go runtime: `opencode-go`
- Провайдер середовища виконання Zen: `opencode`
- Провайдер середовища виконання Go: `opencode-go`
- Приклади моделей: `opencode/claude-opus-4-6`, `opencode-go/kimi-k2.5`
- CLI: `openclaw onboard --auth-choice opencode-zen` або `openclaw onboard --auth-choice opencode-go`
@ -157,23 +156,23 @@ OpenClaw постачається з каталогом pi-ai. Для цих п
}
```
### Google Gemini (API key)
### Google Gemini (API-ключ)
- Провайдер: `google`
- Auth: `GEMINI_API_KEY`
- Необов’язкова ротація: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, fallback `GOOGLE_API_KEY` і `OPENCLAW_LIVE_GEMINI_KEY` (одне перевизначення)
- Необов’язкова ротація: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, резервний `GOOGLE_API_KEY` і `OPENCLAW_LIVE_GEMINI_KEY` (одне перевизначення)
- Приклади моделей: `google/gemini-3.1-pro-preview`, `google/gemini-3-flash-preview`
- Сумісність: застарілу конфігурацію OpenClaw із `google/gemini-3.1-flash-preview` нормалізується до `google/gemini-3-flash-preview`
- Сумісність: застаріла конфігурація OpenClaw з `google/gemini-3.1-flash-preview` нормалізується до `google/gemini-3-flash-preview`
- CLI: `openclaw onboard --auth-choice gemini-api-key`
- Прямі запуски Gemini також приймають `agents.defaults.models["google/<model>"].params.cachedContent`
(або застарілий `cached_content`) для передавання нативного
дескриптора `cachedContents/...`; збіги кешу Gemini відображаються як OpenClaw `cacheRead`
(або застаріле `cached_content`) для передавання рідного для провайдера
дескриптора `cachedContents/...`; влучання в кеш Gemini відображаються як OpenClaw `cacheRead`
### Google Vertex і Gemini CLI
- Провайдери: `google-vertex`, `google-gemini-cli`
- Auth: Vertex використовує gcloud ADC; Gemini CLI використовує власний потік OAuth
- Застереження: OAuth Gemini CLI в OpenClaw є неофіційною інтеграцією. Деякі користувачі повідомляли про обмеження акаунта Google після використання сторонніх клієнтів. Перегляньте умови Google і використовуйте некритичний акаунт, якщо вирішите продовжити.
- Auth: Vertex використовує gcloud ADC; Gemini CLI використовує свій потік OAuth
- Застереження: OAuth Gemini CLI в OpenClaw є неофіційною інтеграцією. Деякі користувачі повідомляли про обмеження облікового запису Google після використання сторонніх клієнтів. Ознайомтеся з умовами Google і використовуйте некритичний обліковий запис, якщо вирішите продовжити.
- OAuth Gemini CLI постачається як частина вбудованого Plugin `google`.
- Спочатку встановіть Gemini CLI:
- `brew install gemini-cli`
@ -181,10 +180,10 @@ OpenClaw постачається з каталогом pi-ai. Для цих п
- Увімкнення: `openclaw plugins enable google`
- Вхід: `openclaw models auth login --provider google-gemini-cli --set-default`
- Модель за замовчуванням: `google-gemini-cli/gemini-3-flash-preview`
- Примітка: вам **не потрібно** вставляти client id або secret у `openclaw.json`. Потік входу CLI зберігає
токени в auth profiles на хості gateway.
- Якщо після входу запити не працюють, задайте `GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості gateway.
- JSON-відповіді Gemini CLI розбираються з `response`; використання береться з fallback на
- Примітка: ви **не** вставляєте client id або secret у `openclaw.json`. Потік входу CLI зберігає
токени в auth profile на хості Gateway.
- Якщо після входу запити завершуються помилкою, задайте `GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості Gateway.
- JSON-відповіді Gemini CLI розбираються з `response`; дані про використання беруться з резервного
`stats`, а `stats.cached` нормалізується в OpenClaw `cacheRead`.
### Z.AI (GLM)
@ -194,7 +193,7 @@ OpenClaw постачається з каталогом pi-ai. Для цих п
- Приклад моделі: `zai/glm-5.1`
- CLI: `openclaw onboard --auth-choice zai-api-key`
- Псевдоніми: `z.ai/*` і `z-ai/*` нормалізуються до `zai/*`
- `zai-api-key` автоматично визначає відповідний endpoint Z.AI; `zai-coding-global`, `zai-coding-cn`, `zai-global` і `zai-cn` примусово вибирають конкретну поверхню
- `zai-api-key` автоматично визначає відповідний endpoint Z.AI; `zai-coding-global`, `zai-coding-cn`, `zai-global` і `zai-cn` примусово задають конкретну поверхню
### Vercel AI Gateway
@ -210,62 +209,62 @@ OpenClaw постачається з каталогом pi-ai. Для цих п
- Auth: `KILOCODE_API_KEY`
- Приклад моделі: `kilocode/kilo/auto`
- CLI: `openclaw onboard --auth-choice kilocode-api-key`
- Base URL: `https://api.kilo.ai/api/gateway/`
- Статичний fallback-каталог постачається з `kilocode/kilo/auto`; live
виявлення через `https://api.kilo.ai/api/gateway/models` може додатково розширити runtime-каталог.
- Точна маршрутизація вгору за течією для `kilocode/kilo/auto` визначається Kilo Gateway,
- Базовий URL: `https://api.kilo.ai/api/gateway/`
- Статичний резервний каталог постачається з `kilocode/kilo/auto`; live
виявлення через `https://api.kilo.ai/api/gateway/models` може додатково розширити каталог під час виконання.
- Точна маршрутизація на upstream за `kilocode/kilo/auto` належить Kilo Gateway,
а не жорстко закодована в OpenClaw.
Деталі налаштування див. у [/providers/kilocode](/uk/providers/kilocode).
### Інші вбудовані Plugin провайдерів
| Провайдер | Id | Auth env | Приклад моделі |
| ------------------------ | -------------------------------- | ------------------------------------------------------------ | ----------------------------------------------- |
| BytePlus | `byteplus` / `byteplus-plan` | `BYTEPLUS_API_KEY` | `byteplus-plan/ark-code-latest` |
| Cerebras | `cerebras` | `CEREBRAS_API_KEY` | `cerebras/zai-glm-4.7` |
| Cloudflare AI Gateway | `cloudflare-ai-gateway` | `CLOUDFLARE_AI_GATEWAY_API_KEY` | — |
| GitHub Copilot | `github-copilot` | `COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN` | — |
| Groq | `groq` | `GROQ_API_KEY` | — |
| Hugging Face Inference | `huggingface` | `HUGGINGFACE_HUB_TOKEN` or `HF_TOKEN` | `huggingface/deepseek-ai/DeepSeek-R1` |
| Kilo Gateway | `kilocode` | `KILOCODE_API_KEY` | `kilocode/kilo/auto` |
| Kimi Coding | `kimi` | `KIMI_API_KEY` or `KIMICODE_API_KEY` | `kimi/kimi-code` |
| MiniMax | `minimax` / `minimax-portal` | `MINIMAX_API_KEY` / `MINIMAX_OAUTH_TOKEN` | `minimax/MiniMax-M2.7` |
| Mistral | `mistral` | `MISTRAL_API_KEY` | `mistral/mistral-large-latest` |
| Moonshot | `moonshot` | `MOONSHOT_API_KEY` | `moonshot/kimi-k2.6` |
| NVIDIA | `nvidia` | `NVIDIA_API_KEY` | `nvidia/nvidia/llama-3.1-nemotron-70b-instruct` |
| OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | `openrouter/auto` |
| Qianfan | `qianfan` | `QIANFAN_API_KEY` | `qianfan/deepseek-v3.2` |
| Qwen Cloud | `qwen` | `QWEN_API_KEY` / `MODELSTUDIO_API_KEY` / `DASHSCOPE_API_KEY` | `qwen/qwen3.5-plus` |
| StepFun | `stepfun` / `stepfun-plan` | `STEPFUN_API_KEY` | `stepfun/step-3.5-flash` |
| Together | `together` | `TOGETHER_API_KEY` | `together/moonshotai/Kimi-K2.5` |
| Venice | `venice` | `VENICE_API_KEY` | — |
| Vercel AI Gateway | `vercel-ai-gateway` | `AI_GATEWAY_API_KEY` | `vercel-ai-gateway/anthropic/claude-opus-4.6` |
| Volcano Engine (Doubao) | `volcengine` / `volcengine-plan` | `VOLCANO_ENGINE_API_KEY` | `volcengine-plan/ark-code-latest` |
| xAI | `xai` | `XAI_API_KEY` | `xai/grok-4` |
| Xiaomi | `xiaomi` | `XIAOMI_API_KEY` | `xiaomi/mimo-v2-flash` |
| Провайдер | Id | Auth env | Приклад моделі |
| ----------------------- | -------------------------------- | ------------------------------------------------------------ | ----------------------------------------------- |
| BytePlus | `byteplus` / `byteplus-plan` | `BYTEPLUS_API_KEY` | `byteplus-plan/ark-code-latest` |
| Cerebras | `cerebras` | `CEREBRAS_API_KEY` | `cerebras/zai-glm-4.7` |
| Cloudflare AI Gateway | `cloudflare-ai-gateway` | `CLOUDFLARE_AI_GATEWAY_API_KEY` | — |
| GitHub Copilot | `github-copilot` | `COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN` | — |
| Groq | `groq` | `GROQ_API_KEY` | — |
| Hugging Face Inference | `huggingface` | `HUGGINGFACE_HUB_TOKEN` або `HF_TOKEN` | `huggingface/deepseek-ai/DeepSeek-R1` |
| Kilo Gateway | `kilocode` | `KILOCODE_API_KEY` | `kilocode/kilo/auto` |
| Kimi Coding | `kimi` | `KIMI_API_KEY` або `KIMICODE_API_KEY` | `kimi/kimi-code` |
| MiniMax | `minimax` / `minimax-portal` | `MINIMAX_API_KEY` / `MINIMAX_OAUTH_TOKEN` | `minimax/MiniMax-M2.7` |
| Mistral | `mistral` | `MISTRAL_API_KEY` | `mistral/mistral-large-latest` |
| Moonshot | `moonshot` | `MOONSHOT_API_KEY` | `moonshot/kimi-k2.6` |
| NVIDIA | `nvidia` | `NVIDIA_API_KEY` | `nvidia/nvidia/llama-3.1-nemotron-70b-instruct` |
| OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | `openrouter/auto` |
| Qianfan | `qianfan` | `QIANFAN_API_KEY` | `qianfan/deepseek-v3.2` |
| Qwen Cloud | `qwen` | `QWEN_API_KEY` / `MODELSTUDIO_API_KEY` / `DASHSCOPE_API_KEY` | `qwen/qwen3.5-plus` |
| StepFun | `stepfun` / `stepfun-plan` | `STEPFUN_API_KEY` | `stepfun/step-3.5-flash` |
| Together | `together` | `TOGETHER_API_KEY` | `together/moonshotai/Kimi-K2.5` |
| Venice | `venice` | `VENICE_API_KEY` | — |
| Vercel AI Gateway | `vercel-ai-gateway` | `AI_GATEWAY_API_KEY` | `vercel-ai-gateway/anthropic/claude-opus-4.6` |
| Volcano Engine (Doubao) | `volcengine` / `volcengine-plan` | `VOLCANO_ENGINE_API_KEY` | `volcengine-plan/ark-code-latest` |
| xAI | `xai` | `XAI_API_KEY` | `xai/grok-4` |
| Xiaomi | `xiaomi` | `XIAOMI_API_KEY` | `xiaomi/mimo-v2-flash` |
Варто знати про такі особливості:
Варто знати такі особливості:
- **OpenRouter** застосовує свої заголовки атрибуції застосунку та маркери Anthropic `cache_control` лише на підтверджених маршрутах `openrouter.ai`. Як OpenAI-сумісний шлях у стилі proxy, він пропускає shaping, доступний лише для нативного OpenAI (`serviceTier`, `store` для Responses, підказки prompt-cache, сумісність reasoning OpenAI). Посилання з бекендом Gemini зберігають лише очищення thought-signature для proxy-Gemini.
- **Kilo Gateway** для посилань із бекендом Gemini використовує той самий шлях очищення proxy-Gemini; `kilocode/kilo/auto` та інші посилання, де proxy reasoning не підтримується, пропускають ін’єкцію proxy reasoning.
- **MiniMax** під час онбордингу через API key записує явні визначення моделі M2.7 з `input: ["text", "image"]`; вбудований каталог залишає chat-посилання лише текстовими, доки ця конфігурація не буде матеріалізована.
- **xAI** використовує шлях xAI Responses. `/fast` або `params.fastMode: true` переписує `grok-3`, `grok-3-mini`, `grok-4` і `grok-4-0709` на їхні варіанти `*-fast`. `tool_stream` увімкнено за замовчуванням; вимкніть через `agents.defaults.models["xai/<model>"].params.tool_stream=false`.
- **Cerebras** моделі GLM використовують `zai-glm-4.7` / `zai-glm-4.6`; OpenAI-сумісний base URL — `https://api.cerebras.ai/v1`.
- **OpenRouter** застосовує свої заголовки атрибуції застосунку та маркери Anthropic `cache_control` лише на перевірених маршрутах `openrouter.ai`. Як проксі-шлях у стилі OpenAI-compatible, він пропускає формування, притаманне лише нативному OpenAI (`serviceTier`, `store` у Responses, підказки prompt-cache, сумісність reasoning OpenAI). Посилання на Gemini зберігають лише санітизацію thought-signature для проксі-Gemini.
- **Kilo Gateway** для посилань Gemini дотримується того самого шляху санітизації проксі-Gemini; `kilocode/kilo/auto` та інші посилання, де reasoning через проксі не підтримується, пропускають ін’єкцію reasoning для проксі.
- **MiniMax** онбординг через API-ключ записує явні визначення моделей M2.7 з `input: ["text", "image"]`; вбудований каталог зберігає chat-посилання лише текстовими, доки ця конфігурація не буде матеріалізована.
- **xAI** використовує шлях xAI Responses. `/fast` або `params.fastMode: true` переписує `grok-3`, `grok-3-mini`, `grok-4` і `grok-4-0709` на їхні варіанти `*-fast`. `tool_stream` типово увімкнено; вимкнення через `agents.defaults.models["xai/<model>"].params.tool_stream=false`.
- **Cerebras** моделі GLM використовують `zai-glm-4.7` / `zai-glm-4.6`; базовий URL у форматі OpenAI-compatible: `https://api.cerebras.ai/v1`.
## Провайдери через `models.providers` (власний/base URL)
## Провайдери через `models.providers` (кастомний/base URL)
Використовуйте `models.providers` (або `models.json`), щоб додати **власні** провайдери або
OpenAI/Anthropic-сумісні proxy.
Використовуйте `models.providers` (або `models.json`) для додавання **кастомних** провайдерів або
OpenAI/Anthropic-сумісних проксі.
Багато з наведених нижче вбудованих Plugin провайдерів уже публікують каталог за замовчуванням.
Явні записи `models.providers.<id>` потрібні лише тоді, коли ви хочете перевизначити
стандартний base URL, заголовки або список моделей.
Багато з наведених нижче вбудованих Plugin провайдерів уже публікують типовий каталог.
Використовуйте явні записи `models.providers.<id>` лише тоді, коли хочете перевизначити
типовий base URL, заголовки або список моделей.
### Moonshot AI (Kimi)
Moonshot постачається як вбудований Plugin провайдера. За
замовчуванням використовуйте вбудованого провайдера, а явний запис `models.providers.moonshot` додавайте лише тоді, коли
Moonshot постачається як вбудований Plugin провайдера. Використовуйте вбудований провайдер
типово, а явний запис `models.providers.moonshot` додавайте лише тоді, коли
потрібно перевизначити base URL або метадані моделі:
- Провайдер: `moonshot`
@ -327,7 +326,7 @@ Kimi Coding використовує Anthropic-сумісний endpoint Moonsho
Volcano Engine (火山引擎) надає доступ до Doubao та інших моделей у Китаї.
- Провайдер: `volcengine` (coding: `volcengine-plan`)
- Провайдер: `volcengine` (для coding: `volcengine-plan`)
- Auth: `VOLCANO_ENGINE_API_KEY`
- Приклад моделі: `volcengine-plan/ark-code-latest`
- CLI: `openclaw onboard --auth-choice volcengine-api-key`
@ -340,13 +339,13 @@ Volcano Engine (火山引擎) надає доступ до Doubao та інши
}
```
Під час онбордингу за замовчуванням використовується поверхня coding, але загальний каталог `volcengine/*`
Онбординг типово використовує поверхню coding, але загальний каталог `volcengine/*`
реєструється одночасно.
У пікерах моделей для онбордингу/налаштування вибір auth Volcengine надає перевагу як рядкам
`volcengine/*`, так і `volcengine-plan/*`. Якщо ці моделі ще не завантажені,
У селекторах моделей під час онбордингу/налаштування вибір auth для Volcengine надає перевагу рядкам
`volcengine/*` і `volcengine-plan/*`. Якщо ці моделі ще не завантажено,
OpenClaw повертається до нефільтрованого каталогу замість показу порожнього
пікера, обмеженого провайдером.
селектора в межах провайдера.
Доступні моделі:
@ -368,7 +367,7 @@ OpenClaw повертається до нефільтрованого катал
BytePlus ARK надає міжнародним користувачам доступ до тих самих моделей, що й Volcano Engine.
- Провайдер: `byteplus` (coding: `byteplus-plan`)
- Провайдер: `byteplus` (для coding: `byteplus-plan`)
- Auth: `BYTEPLUS_API_KEY`
- Приклад моделі: `byteplus-plan/ark-code-latest`
- CLI: `openclaw onboard --auth-choice byteplus-api-key`
@ -381,13 +380,13 @@ BytePlus ARK надає міжнародним користувачам дост
}
```
Під час онбордингу за замовчуванням використовується поверхня coding, але загальний каталог `byteplus/*`
Онбординг типово використовує поверхню coding, але загальний каталог `byteplus/*`
реєструється одночасно.
У пікерах моделей для онбордингу/налаштування вибір auth BytePlus надає перевагу як рядкам
`byteplus/*`, так і `byteplus-plan/*`. Якщо ці моделі ще не завантажені,
У селекторах моделей під час онбордингу/налаштування вибір auth для BytePlus надає перевагу обом
рядкам `byteplus/*` і `byteplus-plan/*`. Якщо ці моделі ще не завантажено,
OpenClaw повертається до нефільтрованого каталогу замість показу порожнього
пікера, обмеженого провайдером.
селектора в межах провайдера.
Доступні моделі:
@ -405,7 +404,7 @@ OpenClaw повертається до нефільтрованого катал
### Synthetic
Synthetic надає Anthropic-сумісні моделі через провайдера `synthetic`:
Synthetic надає Anthropic-сумісні моделі через провайдер `synthetic`:
- Провайдер: `synthetic`
- Auth: `SYNTHETIC_API_KEY`
@ -433,26 +432,26 @@ Synthetic надає Anthropic-сумісні моделі через прова
### MiniMax
MiniMax налаштовується через `models.providers`, оскільки використовує власні endpoint:
MiniMax налаштовується через `models.providers`, оскільки використовує кастомні endpoint:
- MiniMax OAuth (глобальний): `--auth-choice minimax-global-oauth`
- MiniMax OAuth (Global): `--auth-choice minimax-global-oauth`
- MiniMax OAuth (CN): `--auth-choice minimax-cn-oauth`
- API key MiniMax (глобальний): `--auth-choice minimax-global-api`
- API key MiniMax (CN): `--auth-choice minimax-cn-api`
- MiniMax API-ключ (Global): `--auth-choice minimax-global-api`
- MiniMax API-ключ (CN): `--auth-choice minimax-cn-api`
- Auth: `MINIMAX_API_KEY` для `minimax`; `MINIMAX_OAUTH_TOKEN` або
`MINIMAX_API_KEY` для `minimax-portal`
Деталі налаштування, варіанти моделей і фрагменти конфігурації див. у [/providers/minimax](/uk/providers/minimax).
На Anthropic-сумісному streaming-шляху MiniMax OpenClaw за замовчуванням вимикає thinking,
якщо ви явно його не задасте, а `/fast on` переписує
У Anthropic-сумісному потоковому шляху MiniMax OpenClaw типово вимикає thinking,
якщо ви явно його не задаєте, а `/fast on` переписує
`MiniMax-M2.7` на `MiniMax-M2.7-highspeed`.
Розподіл можливостей, яким керує Plugin:
Розподіл capability, що належить Plugin:
- Значення за замовчуванням для тексту/чату залишаються на `minimax/MiniMax-M2.7`
- Типові значення для тексту/чату залишаються на `minimax/MiniMax-M2.7`
- Генерація зображень — це `minimax/image-01` або `minimax-portal/image-01`
- Розуміння зображень — це `MiniMax-VL-01`, яким на обох auth-шляхах MiniMax керує Plugin
- Розуміння зображень — це `MiniMax-VL-01`, що належить Plugin, на обох шляхах auth MiniMax
- Вебпошук залишається на id провайдера `minimax`
### LM Studio
@ -461,9 +460,9 @@ LM Studio постачається як вбудований Plugin провай
- Провайдер: `lmstudio`
- Auth: `LM_API_TOKEN`
- Base URL інференсу за замовчуванням: `http://localhost:1234/v1`
- Типовий base URL для інференсу: `http://localhost:1234/v1`
Потім задайте модель (замініть на один з id, які повертає `http://localhost:1234/api/v1/models`):
Далі задайте модель (замініть на один з id, які повертає `http://localhost:1234/api/v1/models`):
```json5
{
@ -474,8 +473,8 @@ LM Studio постачається як вбудований Plugin провай
```
OpenClaw використовує нативні `LM Studio` `/api/v1/models` і `/api/v1/models/load`
для виявлення + автозавантаження, а `/v1/chat/completions` — для інференсу за замовчуванням.
Налаштування та усунення несправностей див. у [/providers/lmstudio](/uk/providers/lmstudio).
для виявлення + автозавантаження, а `/v1/chat/completions`типово для інференсу.
Налаштування та усунення неполадок див. у [/providers/lmstudio](/uk/providers/lmstudio).
### Ollama
@ -499,21 +498,20 @@ ollama pull llama3.3
}
```
Ollama виявляється локально за адресою `http://127.0.0.1:11434`, якщо ви ввімкнете це через
`OLLAMA_API_KEY`, а вбудований Plugin провайдера додає Ollama безпосередньо до
`openclaw onboard` і пікера моделей. Див. [/providers/ollama](/uk/providers/ollama)
для відомостей про онбординг, хмарний/локальний режим і власну конфігурацію.
Ollama локально виявляється за адресою `http://127.0.0.1:11434`, якщо ви явно ввімкнете це через
`OLLAMA_API_KEY`, а вбудований Plugin провайдера напряму додає Ollama до
`openclaw onboard` і селектора моделей. Докладніше про онбординг, хмарний/локальний режим і кастомну конфігурацію див. у [/providers/ollama](/uk/providers/ollama).
### vLLM
vLLM постачається як вбудований Plugin провайдера для локальних/self-hosted
OpenAI-сумісних серверів:
vLLM постачається як вбудований Plugin провайдера для локальних/self-hosted OpenAI-compatible
серверів:
- Провайдер: `vllm`
- Auth: необов’язкова (залежить від вашого сервера)
- Base URL за замовчуванням: `http://127.0.0.1:8000/v1`
- Типовий base URL: `http://127.0.0.1:8000/v1`
Щоб увімкнути локальне автовиявлення (підійде будь-яке значення, якщо ваш сервер не вимагає auth):
Щоб явно ввімкнути локальне автовиявлення (підійде будь-яке значення, якщо ваш сервер не вимагає auth):
```bash
export VLLM_API_KEY="vllm-local"
@ -529,18 +527,18 @@ export VLLM_API_KEY="vllm-local"
}
```
Деталі див. у [/providers/vllm](/uk/providers/vllm).
Докладніше див. у [/providers/vllm](/uk/providers/vllm).
### SGLang
SGLang постачається як вбудований Plugin провайдера для швидких self-hosted
OpenAI-сумісних серверів:
OpenAI-compatible серверів:
- Провайдер: `sglang`
- Auth: необов’язкова (залежить від вашого сервера)
- Base URL за замовчуванням: `http://127.0.0.1:30000/v1`
- Типовий base URL: `http://127.0.0.1:30000/v1`
Щоб увімкнути локальне автовиявлення (підійде будь-яке значення, якщо ваш сервер не
Щоб явно ввімкнути локальне автовиявлення (підійде будь-яке значення, якщо ваш сервер не
вимагає auth):
```bash
@ -557,11 +555,11 @@ export SGLANG_API_KEY="sglang-local"
}
```
Деталі див. у [/providers/sglang](/uk/providers/sglang).
Докладніше див. у [/providers/sglang](/uk/providers/sglang).
### Локальні proxy (LM Studio, vLLM, LiteLLM тощо)
### Локальні проксі (LM Studio, vLLM, LiteLLM тощо)
Приклад (OpenAI-сумісний):
Приклад (OpenAI-compatible):
```json5
{
@ -596,21 +594,21 @@ export SGLANG_API_KEY="sglang-local"
Примітки:
- Для власних провайдерів `reasoning`, `input`, `cost`, `contextWindow` і `maxTokens` є необов’язковими.
Якщо їх не задано, OpenClaw використовує такі значення за замовчуванням:
- Для кастомних провайдерів `reasoning`, `input`, `cost`, `contextWindow` і `maxTokens` необов’язкові.
Якщо їх не задано, OpenClaw типово використовує:
- `reasoning: false`
- `input: ["text"]`
- `cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }`
- `contextWindow: 200000`
- `maxTokens: 8192`
- Рекомендація: задавайте явні значення, які відповідають обмеженням вашого proxy/моделі.
- Для `api: "openai-completions"` на ненативних endpoint (будь-який непорожній `baseUrl`, хост якого не є `api.openai.com`) OpenClaw примусово встановлює `compat.supportsDeveloperRole: false`, щоб уникнути помилок 400 від провайдера через непідтримувані ролі `developer`.
- OpenAI-сумісні маршрути у стилі proxy також пропускають shaping запитів, доступний лише для нативного OpenAI:
без `service_tier`, без `store` для Responses, без підказок prompt-cache, без
формування payload для сумісності з OpenAI reasoning і без прихованих
- Рекомендовано: задавати явні значення, що відповідають обмеженням вашого проксі/моделі.
- Для `api: "openai-completions"` на ненативних endpoint (будь-який непорожній `baseUrl`, хост якого не є `api.openai.com`) OpenClaw примусово задає `compat.supportsDeveloperRole: false`, щоб уникати помилок 400 від провайдера для непідтримуваних ролей `developer`.
- Проксі-маршрути у стилі OpenAI-compatible також пропускають формування запитів, притаманне лише нативному OpenAI:
без `service_tier`, без `store` у Responses, без підказок prompt-cache, без
формування payload із сумісністю reasoning OpenAI та без прихованих
заголовків атрибуції OpenClaw.
- Якщо `baseUrl` порожній або не заданий, OpenClaw зберігає стандартну поведінку OpenAI (яка резолвиться до `api.openai.com`).
- Для безпеки навіть явне `compat.supportsDeveloperRole: true` усе одно перевизначається на ненативних endpoint `openai-completions`.
- Якщо `baseUrl` порожній або не заданий, OpenClaw зберігає типову поведінку OpenAI (яка вказує на `api.openai.com`).
- Для безпеки явне `compat.supportsDeveloperRole: true` все одно перевизначається на ненативних endpoint `openai-completions`.
## Приклади CLI
@ -625,6 +623,6 @@ openclaw models list
## Пов’язане
- [Моделі](/uk/concepts/models) — конфігурація моделей і псевдоніми
- [Відмовостійкість моделей](/uk/concepts/model-failover) — ланцюжки fallback і поведінка повторних спроб
- [Довідник з конфігурації](/uk/gateway/configuration-reference#agent-defaults) — ключі конфігурації моделей
- [Провайдери](/uk/providers) — посібники з налаштування для кожного провайдера
- [Failover моделі](/uk/concepts/model-failover) — ланцюжки резервного перемикання та поведінка повторних спроб
- [Довідник із конфігурації](/uk/gateway/configuration-reference#agent-defaults) — ключі конфігурації моделей
- [Провайдери](/uk/providers) — окремі посібники з налаштування провайдерів

View File

@ -1,48 +1,47 @@
---
read_when:
- Додавання або змінення CLI моделей (`models list/set/scan/aliases/fallbacks`)
- Додавання або змінення CLI моделей (models list/set/scan/aliases/fallbacks)
- Зміна поведінки резервних варіантів моделей або UX вибору
- Оновлення перевірок сканування моделей (інструменти/зображення)
summary: 'CLI моделей: список, встановлення, псевдоніми, резервні варіанти, сканування, стан'
summary: 'Моделі CLI: список, встановлення, псевдоніми, резервні варіанти, сканування, статус'
title: CLI моделей
x-i18n:
generated_at: "2026-04-23T19:23:57Z"
generated_at: "2026-04-23T20:05:14Z"
model: gpt-5.4
provider: openai
source_hash: 45ee320df8d49171261cd0a5d42e1c0c39d7ea77d16fd7895ef15b1195d81fb4
source_hash: eb59d09c6955b95e4cb0dd58e0a2d9b1be19fcb32dbf2040fbc893c32ae1c870
source_path: concepts/models.md
workflow: 15
---
# CLI моделей
Див. [/concepts/model-failover](/uk/concepts/model-failover) щодо ротації профілів авторизації,
cooldown-ів і того, як це взаємодіє з резервними варіантами.
Короткий огляд провайдерів + приклади: [/concepts/model-providers](/uk/concepts/model-providers).
Див. [/concepts/model-failover](/uk/concepts/model-failover) щодо ротації профілів автентифікації, періодів очікування та того, як це взаємодіє з резервними варіантами.
Короткий огляд постачальників + приклади: [/concepts/model-providers](/uk/concepts/model-providers).
## Як працює вибір моделі
OpenClaw вибирає моделі в такому порядку:
1. **Основна** модель (`agents.defaults.model.primary` або `agents.defaults.model`).
2. **Резервні варіанти** у `agents.defaults.model.fallbacks` (за порядком).
3. **Резервне перемикання авторизації провайдера** відбувається всередині провайдера перед переходом до наступної моделі.
2. **Резервні варіанти** в `agents.defaults.model.fallbacks` (за порядком).
3. **Резервне перемикання автентифікації постачальника** відбувається всередині постачальника перед переходом до наступної моделі.
Пов’язане:
Пов’язано:
- `agents.defaults.models` — це allowlist/каталог моделей, які OpenClaw може використовувати (разом із псевдонімами).
- `agents.defaults.models` — це allowlist/каталог моделей, які може використовувати OpenClaw (разом із псевдонімами).
- `agents.defaults.imageModel` використовується **лише тоді**, коли основна модель не може приймати зображення.
- `agents.defaults.pdfModel` використовується інструментом `pdf`. Якщо його не вказано, інструмент повертається до `agents.defaults.imageModel`, а потім до визначеної для сесії/типової моделі.
- `agents.defaults.imageGenerationModel` використовується спільною можливістю генерації зображень. Якщо його не вказано, `image_generate` усе одно може визначити типове значення провайдера з авторизацією. Спочатку він пробує поточного типового провайдера, потім — решту зареєстрованих провайдерів генерації зображень у порядку provider-id. Якщо ви задаєте конкретний провайдер/модель, також налаштуйте авторизацію/API key цього провайдера.
- `agents.defaults.musicGenerationModel` використовується спільною можливістю генерації музики. Якщо його не вказано, `music_generate` усе одно може визначити типове значення провайдера з авторизацією. Спочатку він пробує поточного типового провайдера, потім — решту зареєстрованих провайдерів генерації музики у порядку provider-id. Якщо ви задаєте конкретний провайдер/модель, також налаштуйте авторизацію/API key цього провайдера.
- `agents.defaults.videoGenerationModel` використовується спільною можливістю генерації відео. Якщо його не вказано, `video_generate` усе одно може визначити типове значення провайдера з авторизацією. Спочатку він пробує поточного типового провайдера, потім — решту зареєстрованих провайдерів генерації відео у порядку provider-id. Якщо ви задаєте конкретний провайдер/модель, також налаштуйте авторизацію/API key цього провайдера.
- `agents.defaults.pdfModel` використовується інструментом `pdf`. Якщо не вказано, інструмент повертається до `agents.defaults.imageModel`, а потім до визначеної моделі сеансу/моделі за замовчуванням.
- `agents.defaults.imageGenerationModel` використовується спільною можливістю генерації зображень. Якщо не вказано, `image_generate` усе одно може визначити типове значення постачальника з автентифікацією. Спочатку він пробує поточного постачальника за замовчуванням, потім решту зареєстрованих постачальників генерації зображень у порядку ідентифікаторів постачальників. Якщо ви вказуєте конкретного постачальника/модель, також налаштуйте автентифікацію/API key цього постачальника.
- `agents.defaults.musicGenerationModel` використовується спільною можливістю генерації музики. Якщо не вказано, `music_generate` усе одно може визначити типове значення постачальника з автентифікацією. Спочатку він пробує поточного постачальника за замовчуванням, потім решту зареєстрованих постачальників генерації музики в порядку ідентифікаторів постачальників. Якщо ви вказуєте конкретного постачальника/модель, також налаштуйте автентифікацію/API key цього постачальника.
- `agents.defaults.videoGenerationModel` використовується спільною можливістю генерації відео. Якщо не вказано, `video_generate` усе одно може визначити типове значення постачальника з автентифікацією. Спочатку він пробує поточного постачальника за замовчуванням, потім решту зареєстрованих постачальників генерації відео в порядку ідентифікаторів постачальників. Якщо ви вказуєте конкретного постачальника/модель, також налаштуйте автентифікацію/API key цього постачальника.
- Типові значення для окремих агентів можуть перевизначати `agents.defaults.model` через `agents.list[].model` разом із прив’язками (див. [/concepts/multi-agent](/uk/concepts/multi-agent)).
## Швидка політика моделей
## Швидка політика для моделей
- Встановіть як основну найсильнішу модель останнього покоління, яка вам доступна.
- Використовуйте резервні варіанти для чутливих до вартості/затримки завдань і чатів із нижчими вимогами.
- Для агентів з увімкненими інструментами або недовірених входів уникайте старіших/слабших рівнів моделей.
- Встановіть основною найсильнішу модель останнього покоління, яка вам доступна.
- Використовуйте резервні варіанти для завдань, чутливих до вартості/затримки, і для менш важливого чату.
- Для агентів з увімкненими інструментами або ненадійними вхідними даними уникайте старіших/слабших рівнів моделей.
## Онбординг (рекомендовано)
@ -52,8 +51,7 @@ OpenClaw вибирає моделі в такому порядку:
openclaw onboard
```
Він може налаштувати модель + авторизацію для поширених провайдерів, зокрема **OpenAI Code (Codex)
subscription** (OAuth) і **Anthropic** (API key або Claude CLI).
Він може налаштувати модель + автентифікацію для поширених постачальників, зокрема **OpenAI Code (Codex) subscription** (OAuth) та **Anthropic** (API key або Claude CLI).
## Ключі конфігурації (огляд)
@ -62,45 +60,35 @@ subscription** (OAuth) і **Anthropic** (API key або Claude CLI).
- `agents.defaults.pdfModel.primary` і `agents.defaults.pdfModel.fallbacks`
- `agents.defaults.imageGenerationModel.primary` і `agents.defaults.imageGenerationModel.fallbacks`
- `agents.defaults.videoGenerationModel.primary` і `agents.defaults.videoGenerationModel.fallbacks`
- `agents.defaults.models` (allowlist + псевдоніми + параметри провайдера)
- `models.providers` (користувацькі провайдери, записані в `models.json`)
- `agents.defaults.models` (allowlist + псевдоніми + параметри постачальника)
- `models.providers` (власні постачальники, записані до `models.json`)
Посилання на моделі нормалізуються до нижнього регістру. Псевдоніми провайдерів, як-от `z.ai/*`, нормалізуються
до `zai/*`.
Посилання на моделі нормалізуються до нижнього регістру. Псевдоніми постачальників, наприклад `z.ai/*`, нормалізуються до `zai/*`.
Приклади конфігурації провайдерів (зокрема OpenCode) наведено в
Приклади конфігурації постачальників (зокрема OpenCode) наведені в
[/providers/opencode](/uk/providers/opencode).
### Безпечне редагування allowlist
Під час ручного оновлення `agents.defaults.models` використовуйте адитивні записи:
Під час ручного оновлення `agents.defaults.models` використовуйте адитивний запис:
```bash
openclaw config set agents.defaults.models '{"openai-codex/gpt-5.5":{}}' --strict-json --merge
openclaw config set agents.defaults.models '{"openai/gpt-5.5":{}}' --strict-json --merge
```
`openclaw config set` захищає мапи моделей/провайдерів від випадкового перезапису. Звичайне
присвоєння об’єкта до `agents.defaults.models`, `models.providers` або
`models.providers.<id>.models` відхиляється, якщо воно призведе до видалення наявних
записів. Використовуйте `--merge` для адитивних змін; використовуйте `--replace` лише тоді, коли
надане значення має стати повним цільовим значенням.
`openclaw config set` захищає мапи моделей/постачальників від випадкового перезапису. Звичайне присвоєння об’єкта для `agents.defaults.models`, `models.providers` або `models.providers.<id>.models` відхиляється, якщо воно видалить наявні записи. Використовуйте `--merge` для адитивних змін; використовуйте `--replace` лише тоді, коли передане значення має стати повним цільовим значенням.
Інтерактивне налаштування провайдера і `openclaw configure --section model` також зливають
вибрані для провайдера значення до наявного allowlist, тож додавання Codex,
Ollama або іншого провайдера не видаляє не пов’язані записи моделей.
Інтерактивне налаштування постачальника та `openclaw configure --section model` також об’єднують вибори в межах постачальника з наявним allowlist, тому додавання Codex, Ollama або іншого постачальника не видаляє не пов’язані записи моделей.
## «Model is not allowed» (і чому відповіді припиняються)
## "Model is not allowed" (і чому відповіді зупиняються)
Якщо задано `agents.defaults.models`, він стає **allowlist** для `/model` і для
перевизначень сесії. Коли користувач вибирає модель, якої немає в цьому allowlist,
OpenClaw повертає:
Якщо встановлено `agents.defaults.models`, він стає **allowlist** для `/model` і для перевизначень сеансу. Коли користувач вибирає модель, якої немає в цьому allowlist, OpenClaw повертає:
```
Model "provider/model" is not allowed. Use /model to list available models.
```
Це відбувається **до** формування звичайної відповіді, тому може здаватися, що повідомлення
«не отримало відповіді». Виправлення полягає в одному з таких варіантів:
Це відбувається **до** створення звичайної відповіді, тому може здаватися, що повідомлення «не отримало відповіді». Виправити це можна так:
- Додати модель до `agents.defaults.models`, або
- Очистити allowlist (видалити `agents.defaults.models`), або
@ -122,7 +110,7 @@ Model "provider/model" is not allowed. Use /model to list available models.
## Перемикання моделей у чаті (`/model`)
Ви можете перемикати моделі для поточної сесії без перезапуску:
Ви можете перемикати моделі для поточного сеансу без перезапуску:
```
/model
@ -134,28 +122,26 @@ Model "provider/model" is not allowed. Use /model to list available models.
Примітки:
- `/model` (і `/model list`) — це компактний нумерований вибір (сімейство моделей + доступні провайдери).
- У Discord `/model` і `/models` відкривають інтерактивний вибір із випадними списками провайдера та моделі плюс кроком Submit.
- `/models add` доступна типово й може бути вимкнена через `commands.modelsWrite=false`.
- Коли увімкнено, `/models add <provider> <modelId>` — це найшвидший шлях; проста команда `/models add` запускає керований покроковий процес спочатку з вибором провайдера, де це підтримується.
- `/model` (і `/model list`) — це компактний нумерований вибірник (сімейство моделей + доступні постачальники).
- У Discord `/model` і `/models` відкривають інтерактивний вибірник зі списками постачальників і моделей та кроком Submit.
- `/models add` доступна за замовчуванням і може бути вимкнена через `commands.modelsWrite=false`.
- Якщо увімкнено, `/models add <provider> <modelId>` є найшвидшим шляхом; простий `/models add` запускає керований процес із вибором постачальника спочатку, де це підтримується.
- Після `/models add` нова модель стає доступною в `/models` і `/model` без перезапуску Gateway.
- `/model <#>` вибирає зі списку цього засобу вибору.
- `/model` негайно зберігає новий вибір сесії.
- `/model <#>` вибирає зі списку цього вибірника.
- `/model` негайно зберігає новий вибір сеансу.
- Якщо агент неактивний, наступний запуск одразу використовує нову модель.
- Якщо запуск уже активний, OpenClaw позначає живе перемикання як відкладене й перезапускає на новій моделі лише в чистій точці повторної спроби.
- Якщо активність інструментів або виведення відповіді вже почалися, відкладене перемикання може залишатися в черзі до наступної можливості повторної спроби або до наступного ходу користувача.
- `/model status` — це докладне подання (кандидати авторизації і, коли налаштовано, `baseUrl` кінцевої точки провайдера + режим `api`).
- Якщо виконання вже активне, OpenClaw позначає живе перемикання як відкладене й перезапускає на нову модель лише в чистій точці повторної спроби.
- Якщо активність інструментів або виведення відповіді вже почалися, відкладене перемикання може залишатися в черзі до пізнішої можливості повторної спроби або до наступного ходу користувача.
- `/model status` — це детальне подання (кандидати автентифікації та, якщо налаштовано, `baseUrl` кінцевої точки постачальника + режим `api`).
- Посилання на моделі розбираються розділенням за **першим** `/`. Під час введення `/model <ref>` використовуйте `provider/model`.
- Якщо сам ID моделі містить `/` (у стилі OpenRouter), ви повинні включити префікс провайдера (приклад: `/model openrouter/moonshotai/kimi-k2`).
- Якщо ви пропускаєте провайдера, OpenClaw визначає введення в такому порядку:
- Якщо сам ідентифікатор моделі містить `/` (у стилі OpenRouter), ви маєте вказати префікс постачальника (приклад: `/model openrouter/moonshotai/kimi-k2`).
- Якщо ви пропускаєте постачальника, OpenClaw визначає введення в такому порядку:
1. збіг псевдоніма
2. унікальний збіг налаштованого провайдера для цього точного model id без префікса
3. застаріле резервне повернення до налаштованого типового провайдера
Якщо цей провайдер більше не надає налаштовану типову модель, OpenClaw
натомість повертається до першого налаштованого провайдера/моделі, щоб уникнути
показу застарілого типового значення видаленого провайдера.
2. унікальний збіг налаштованого постачальника для цього точного ідентифікатора моделі без префікса
3. застарілий резервний перехід до налаштованого постачальника за замовчуванням
Якщо цей постачальник більше не надає налаштовану модель за замовчуванням, OpenClaw натомість переходить до першого налаштованого постачальника/моделі, щоб не показувати застаріле типове значення видаленого постачальника.
Повна поведінка/конфігурація команд: [Слеш-команди](/uk/tools/slash-commands).
Повна поведінка/конфігурація команди: [Слеш-команди](/uk/tools/slash-commands).
Приклади:
@ -195,36 +181,23 @@ openclaw models image-fallbacks clear
Типово показує налаштовані моделі. Корисні прапорці:
- `--all`: повний каталог
- `--local`: лише локальні провайдери
- `--provider <id>`: фільтр за id провайдера, наприклад `moonshot`; мітки
відображення з інтерактивних засобів вибору не приймаються
- `--plain`: одна модель на рядок
- `--json`: машиночитаний вивід
- `--local`: лише локальні постачальники
- `--provider <id>`: фільтр за ідентифікатором постачальника, наприклад `moonshot`; мітки відображення з інтерактивних вибірників не приймаються
- `--plain`: по одній моделі в рядку
- `--json`: машинозчитуваний вивід
`--all` включає рядки статичного каталогу вбудованих провайдерів ще до
налаштування авторизації, тож представлення лише для виявлення може показувати моделі, які недоступні, доки
ви не додасте відповідні облікові дані провайдера.
`--all` включає рядки статичного каталогу вбудованих постачальників ще до налаштування автентифікації, тому подання лише для виявлення може показувати моделі, недоступні, доки ви не додасте відповідні облікові дані постачальника.
### `models status`
Показує визначену основну модель, резервні варіанти, модель зображень і огляд
авторизації налаштованих провайдерів. Також відображає статус завершення дії OAuth для профілів, знайдених
у сховищі авторизації (типово попереджає за 24 години). `--plain` виводить лише визначену
основну модель.
Статус OAuth показується завжди (і включається до виводу `--json`). Якщо налаштований
провайдер не має облікових даних, `models status` виводить розділ **Missing auth**.
JSON включає `auth.oauth` (вікно попередження + профілі) і `auth.providers`
(ефективна авторизація для кожного провайдера, включно з обліковими даними з env). `auth.oauth`
стосується лише стану профілів у сховищі авторизації; провайдери лише з env там не з’являються.
Використовуйте `--check` для автоматизації (код виходу `1` для відсутньої/простроченої авторизації, `2` для тієї, що скоро спливає).
Використовуйте `--probe` для живих перевірок авторизації; рядки перевірки можуть надходити з профілів авторизації, облікових даних env
або `models.json`.
Якщо явний `auth.order.<provider>` пропускає збережений профіль, перевірка повідомляє
`excluded_by_auth_order` замість спроби його використати. Якщо авторизація існує, але не вдається визначити модель, придатну для probe, для цього провайдера, перевірка повідомляє `status: no_model`.
Показує визначену основну модель, резервні варіанти, модель зображень і огляд автентифікації налаштованих постачальників. Також показує статус завершення дії OAuth для профілів, знайдених у сховищі автентифікації (типово попереджає в межах 24 годин). `--plain` виводить лише визначену основну модель.
Статус OAuth показується завжди (і включається до виводу `--json`). Якщо налаштований постачальник не має облікових даних, `models status` виводить розділ **Missing auth**.
JSON включає `auth.oauth` (вікно попередження + профілі) і `auth.providers` (ефективна автентифікація для кожного постачальника, включно з обліковими даними з env). `auth.oauth` — це лише стан профілів у сховищі автентифікації; постачальники лише з env там не відображаються.
Використовуйте `--check` для автоматизації (код виходу `1` для відсутньої/простроченої автентифікації, `2` — коли строк скоро спливає).
Використовуйте `--probe` для живих перевірок автентифікації; рядки перевірки можуть походити з профілів автентифікації, облікових даних env або `models.json`.
Якщо явний `auth.order.<provider>` пропускає збережений профіль, перевірка повідомляє `excluded_by_auth_order` замість спроби його використання. Якщо автентифікація існує, але для цього постачальника не вдається визначити модель, яку можна перевірити, перевірка повідомляє `status: no_model`.
Вибір авторизації залежить від провайдера/акаунта. Для постійно ввімкнених хостів Gateway
API key зазвичай є найпередбачуванішим варіантом; повторне використання Claude CLI та наявні профілі Anthropic
OAuth/token також підтримуються.
Вибір автентифікації залежить від постачальника/акаунта. Для постійно ввімкнених хостів Gateway API key зазвичай є найпередбачуванішим варіантом; також підтримуються повторне використання Claude CLI і наявні профілі Anthropic OAuth/токенів.
Приклад (Claude CLI):
@ -235,20 +208,19 @@ openclaw models status
## Сканування (безкоштовні моделі OpenRouter)
`openclaw models scan` перевіряє **каталог безкоштовних моделей** OpenRouter і може
за бажанням виконувати probe моделей на підтримку інструментів і зображень.
`openclaw models scan` перевіряє **каталог безкоштовних моделей** OpenRouter і за потреби може перевіряти моделі на підтримку інструментів і зображень.
Основні прапорці:
- `--no-probe`: пропустити живі перевірки (лише метадані)
- `--min-params <b>`: мінімальний розмір параметрів (у мільярдах)
- `--min-params <b>`: мінімальний розмір параметрів (мільярди)
- `--max-age-days <days>`: пропускати старіші моделі
- `--provider <name>`: фільтр за префіксом провайдера
- `--provider <name>`: фільтр префікса постачальника
- `--max-candidates <n>`: розмір списку резервних варіантів
- `--set-default`: установити `agents.defaults.model.primary` на перший вибір
- `--set-image`: установити `agents.defaults.imageModel.primary` на перший вибір зображень
- `--set-default`: встановити `agents.defaults.model.primary` на перший вибір
- `--set-image`: встановити `agents.defaults.imageModel.primary` на перший вибір зображень
Для перевірок потрібен API key OpenRouter (із профілів авторизації або
Перевірки вимагають API key OpenRouter (із профілів автентифікації або
`OPENROUTER_API_KEY`). Без ключа використовуйте `--no-probe`, щоб лише перелічити кандидатів.
Результати сканування ранжуються за:
@ -258,39 +230,36 @@ openclaw models status
3. Розміром контексту
4. Кількістю параметрів
Вхід
Вхідні дані
- Список OpenRouter `/models` (фільтр `:free`)
- Потрібен API key OpenRouter із профілів авторизації або `OPENROUTER_API_KEY` (див. [/environment](/uk/help/environment))
- Потрібен API key OpenRouter із профілів автентифікації або `OPENROUTER_API_KEY` (див. [/environment](/uk/help/environment))
- Необов’язкові фільтри: `--max-age-days`, `--min-params`, `--provider`, `--max-candidates`
- Керування перевірками: `--timeout`, `--concurrency`
Під час запуску в TTY ви можете інтерактивно вибрати резервні варіанти. У неінтерактивному
режимі передайте `--yes`, щоб прийняти типові значення.
Під час запуску в TTY ви можете інтерактивно вибирати резервні варіанти. У неінтерактивному режимі передайте `--yes`, щоб прийняти типові значення.
## Реєстр моделей (`models.json`)
Користувацькі провайдери в `models.providers` записуються в `models.json` у
каталозі агента (типово `~/.openclaw/agents/<agentId>/agent/models.json`). Цей файл
типово зливається, якщо лише `models.mode` не встановлено в `replace`.
Власні постачальники в `models.providers` записуються до `models.json` у каталозі агента (типово `~/.openclaw/agents/<agentId>/agent/models.json`). Цей файл типово об’єднується, якщо `models.mode` не встановлено в `replace`.
Пріоритет режиму злиття для провайдерів із однаковими ID:
Пріоритет у режимі merge для збіжних ідентифікаторів постачальників:
- Непорожній `baseUrl`, уже наявний в агентському `models.json`, має пріоритет.
- Непорожній `apiKey` в агентському `models.json` має пріоритет лише тоді, коли цей провайдер не керується через SecretRef у поточному контексті config/auth-profile.
- Значення `apiKey` для провайдерів, керованих через SecretRef, оновлюються з маркерів джерела (`ENV_VAR_NAME` для env-посилань, `secretref-managed` для file/exec-посилань) замість збереження розв’язаних секретів.
- Значення заголовків провайдера, керованих через SecretRef, оновлюються з маркерів джерела (`secretref-env:ENV_VAR_NAME` для env-посилань, `secretref-managed` для file/exec-посилань).
- Порожні або відсутні агентські `apiKey`/`baseUrl` повертаються до config `models.providers`.
- Інші поля провайдера оновлюються з config і нормалізованих даних каталогу.
- Непорожній `apiKey` в агентському `models.json` має пріоритет лише тоді, коли цей постачальник не керується через SecretRef у поточному контексті конфігурації/профілю автентифікації.
- Значення `apiKey` для постачальників, керованих SecretRef, оновлюються з маркерів джерела (`ENV_VAR_NAME` для посилань env, `secretref-managed` для посилань file/exec) замість збереження розв’язаних секретів.
- Значення заголовків постачальника, керованих SecretRef, оновлюються з маркерів джерела (`secretref-env:ENV_VAR_NAME` для посилань env, `secretref-managed` для посилань file/exec).
- Порожній або відсутній агентський `apiKey`/`baseUrl` повертається до конфігурації `models.providers`.
- Інші поля постачальника оновлюються з конфігурації та нормалізованих даних каталогу.
Збереження маркерів є авторитетним на рівні джерела: OpenClaw записує маркери з активного знімка config джерела (до розв’язання), а не з розв’язаних значень секретів під час виконання.
Збереження маркерів є авторитетним щодо джерела: OpenClaw записує маркери з активного знімка конфігурації джерела (до розв’язання), а не з розв’язаних значень секретів під час виконання.
Це застосовується щоразу, коли OpenClaw повторно генерує `models.json`, зокрема в шляхах, керованих командами, як-от `openclaw agent`.
## Пов’язане
## Пов’язано
- [Провайдери моделей](/uk/concepts/model-providers) — маршрутизація провайдерів і авторизація
- [Перемикання моделей при збої](/uk/concepts/model-failover) — ланцюжки резервних варіантів
- [Генерація зображень](/uk/tools/image-generation) — конфігурація моделей зображень
- [Генерація музики](/uk/tools/music-generation) — конфігурація моделей музики
- [Генерація відео](/uk/tools/video-generation) — конфігурація моделей відео
- [Постачальники моделей](/uk/concepts/model-providers) — маршрутизація постачальників і автентифікація
- [Резервне перемикання моделей](/uk/concepts/model-failover) — ланцюжки резервних варіантів
- [Генерація зображень](/uk/tools/image-generation) — конфігурація моделі зображень
- [Генерація музики](/uk/tools/music-generation) — конфігурація моделі музики
- [Генерація відео](/uk/tools/video-generation) — конфігурація моделі відео
- [Довідник із конфігурації](/uk/gateway/configuration-reference#agent-defaults) — ключі конфігурації моделей

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,29 @@
---
read_when:
- Ви хочете використовувати вбудований harness app-server Codex
- Ви хочете використовувати комплектний harness app-server Codex
- Вам потрібні посилання на моделі Codex і приклади конфігурації
- Ви хочете вимкнути fallback до PI для розгортань лише з Codex
summary: Запускайте ходи вбудованого агента OpenClaw через вбудований harness app-server Codex
title: Codex Harness
- Ви хочете вимкнути резервне перемикання на Pi для розгортань лише з Codex
summary: Запускайте вбудовані ходи агента OpenClaw через комплектний harness app-server Codex
title: Harness Codex
x-i18n:
generated_at: "2026-04-23T19:25:44Z"
generated_at: "2026-04-23T20:05:13Z"
model: gpt-5.4
provider: openai
source_hash: 99ca00550be4e41aa154a99298e3e1b027f8199d541249149cb0ec722e035876
source_hash: 323ee3e0f4b78017e325288247c025403fc55216059a71e2596acdaaf56e7b25
source_path: plugins/codex-harness.md
workflow: 15
---
# Codex Harness
# Harness Codex
Вбудований Plugin `codex` дає OpenClaw змогу запускати ходи вбудованого агента через
app-server Codex замість вбудованого harness PI.
Комплектний Plugin `codex` дає змогу OpenClaw запускати вбудовані ходи агента через app-server Codex замість вбудованого harness Pi.
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням
моделей, нативним відновленням потоків, нативним Compaction і виконанням app-server.
OpenClaw усе ще керує чат-каналами, файлами сесій, вибором моделей, інструментами,
підтвердженнями, доставкою медіа та видимим дзеркалом transcript.
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням моделей, нативним відновленням потоку, нативним Compaction і виконанням app-server.
OpenClaw і далі керує чат-каналами, файлами сесій, вибором моделей, інструментами,
погодженнями, доставкою медіа та видимим дзеркалом транскрипту.
Нативні ходи Codex також дотримуються спільних хуків Plugin, тож shim-и prompt,
автоматизація з урахуванням Compaction, middleware інструментів і спостерігачі життєвого циклу
залишаються узгодженими з harness PI:
Нативні ходи Codex також враховують спільні хуки Plugin, тож шими запитів,
автоматизація з урахуванням Compaction, middleware інструментів і спостерігачі життєвого циклу залишаються узгодженими з harness Pi:
- `before_prompt_build`
- `before_compaction`, `after_compaction`
@ -35,60 +32,49 @@ OpenClaw усе ще керує чат-каналами, файлами сесі
- `before_message_write`
- `agent_end`
Вбудовані Plugin також можуть реєструвати factory розширення app-server Codex для додавання
асинхронного middleware `tool_result`.
Комплектні Plugin також можуть реєструвати фабрику розширення app-server Codex, щоб додавати асинхронне middleware `tool_result`.
Harness вимкнено за замовчуванням. Його вибирають лише тоді, коли Plugin `codex`
увімкнено і резолвлена модель є моделлю `codex/*`, або коли ви явно
примусово задаєте `embeddedHarness.runtime: "codex"` чи `OPENCLAW_AGENT_RUNTIME=codex`.
Якщо ви ніколи не налаштовуєте `codex/*`, наявні запуски PI, OpenAI, Anthropic, Gemini, local
і custom provider зберігають поточну поведінку.
Harness вимкнено за замовчуванням. У нових конфігураціях слід залишати посилання на моделі OpenAI канонічними у вигляді `openai/gpt-*` і явно примусово вказувати
`embeddedHarness.runtime: "codex"` або `OPENCLAW_AGENT_RUNTIME=codex`, коли потрібне нативне виконання app-server. Застарілі посилання на моделі `codex/*` і далі автоматично вибирають harness для сумісності.
## Виберіть правильний префікс моделі
OpenClaw має окремі маршрути для доступу у форматі OpenAI та Codex:
Тепер OpenClaw зберігає канонічні посилання на моделі OpenAI GPT як `openai/*`:
| Посилання на модель | Шлях runtime | Використовуйте, коли |
| ----------------------- | -------------------------------------------- | ------------------------------------------------------------------------- |
| `openai/gpt-5.5` | Провайдер OpenAI через логіку OpenClaw/PI | Вам потрібен прямий доступ до OpenAI Platform API через `OPENAI_API_KEY`. |
| `openai-codex/gpt-5.5` | Провайдер OpenAI Codex OAuth через PI | Вам потрібен ChatGPT/Codex OAuth без harness app-server Codex. |
| `codex/gpt-5.5` | Вбудований провайдер Codex плюс Codex harness | Вам потрібне нативне виконання app-server Codex для ходу вбудованого агента. |
| Посилання на модель | Шлях runtime | Використовуйте, коли |
| ---------------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------- |
| `openai/gpt-5.5` | Провайдер OpenAI через внутрішню логіку OpenClaw/Pi | Вам потрібен прямий доступ до OpenAI Platform API за допомогою `OPENAI_API_KEY`. |
| `openai/gpt-5.5` + `embeddedHarness.runtime: "codex"` | harness app-server Codex | Вам потрібне нативне виконання app-server Codex для вбудованого ходу агента. |
Codex harness обробляє лише посилання на моделі `codex/*`. Наявні посилання `openai/*`,
`openai-codex/*`, Anthropic, Gemini, xAI, local і custom provider зберігають
свої звичайні шляхи.
Застарілі посилання `openai-codex/gpt-*` і `codex/gpt-*` залишаються підтримуваними як псевдоніми сумісності, але в новій документації та прикладах конфігурації слід використовувати `openai/gpt-*`.
Вибір harness не є механізмом керування live-сесією. Коли виконується вбудований хід,
OpenClaw записує id вибраного harness у цю сесію і продовжує використовувати його
для наступних ходів у межах того самого id сесії. Змінюйте конфігурацію `embeddedHarness` або
Вибір harness не є елементом керування живою сесією. Коли виконується вбудований хід,
OpenClaw записує ідентифікатор вибраного harness у цю сесію і продовжує використовувати його для наступних ходів у межах того самого ідентифікатора сесії. Змінюйте конфігурацію `embeddedHarness` або
`OPENCLAW_AGENT_RUNTIME`, коли хочете, щоб майбутні сесії використовували інший harness;
використовуйте `/new` або `/reset`, щоб почати нову сесію перед перемиканням
наявної розмови між PI і Codex. Це запобігає відтворенню одного transcript через
використовуйте `/new` або `/reset`, щоб почати нову сесію перед перемиканням наявної
розмови між Pi і Codex. Це дає змогу уникнути повторного відтворення одного транскрипту через
дві несумісні нативні системи сесій.
Застарілі сесії, створені до появи фіксації harness, вважаються прив’язаними до PI, щойно вони
мають історію transcript. Використовуйте `/new` або `/reset`, щоб перевести таку розмову на
Codex після зміни конфігурації.
Застарілі сесії, створені до закріплення harness, вважаються закріпленими за Pi, щойно в них з’являється історія транскрипту. Використовуйте `/new` або `/reset`, щоб перевести таку розмову на Codex після зміни конфігурації.
`/status` показує фактичний non-PI harness поруч із `Fast`, наприклад
`Fast · codex`. Harness PI за замовчуванням не показується.
`/status` показує ефективний harness, відмінний від Pi, поруч із `Fast`, наприклад
`Fast · codex`. Harness Pi за замовчуванням не показується.
## Вимоги
- OpenClaw із доступним вбудованим Plugin `codex`.
- App-server Codex версії `0.118.0` або новіший.
- Auth Codex, доступна процесу app-server.
- OpenClaw із доступним комплектним Plugin `codex`.
- app-server Codex версії `0.118.0` або новішої.
- Автентифікація Codex, доступна для процесу app-server.
Plugin блокує старіші або безверсійні handshake app-server. Це гарантує, що
OpenClaw працює з поверхнею протоколу, з якою його було протестовано.
Plugin блокує старіші або неверсійовані handshake app-server. Це гарантує, що
OpenClaw працює з тією поверхнею протоколу, щодо якої його було протестовано.
Для live і Docker smoke-тестів auth зазвичай надходить із `OPENAI_API_KEY`, разом із
необов’язковими файлами CLI Codex, такими як `~/.codex/auth.json` і
`~/.codex/config.toml`. Використовуйте ті самі auth-матеріали, що й ваш локальний app-server Codex.
Для live- і Docker-smoke-тестів автентифікація зазвичай надходить з `OPENAI_API_KEY`, а також з необов’язкових файлів Codex CLI, таких як `~/.codex/auth.json` і
`~/.codex/config.toml`. Використовуйте ті самі матеріали автентифікації, що й ваш локальний app-server Codex.
## Мінімальна конфігурація
Використовуйте `codex/gpt-5.5`, увімкніть вбудований Plugin і примусово задайте harness `codex`:
Використовуйте `openai/gpt-5.5`, увімкніть комплектний Plugin і примусово задайте harness `codex`:
```json5
{
@ -101,7 +87,7 @@ OpenClaw працює з поверхнею протоколу, з якою йо
},
agents: {
defaults: {
model: "codex/gpt-5.5",
model: "openai/gpt-5.5",
embeddedHarness: {
runtime: "codex",
fallback: "none",
@ -111,7 +97,7 @@ OpenClaw працює з поверхнею протоколу, з якою йо
}
```
Якщо у вашій конфігурації використовується `plugins.allow`, додайте туди й `codex`:
Якщо у вашій конфігурації використовується `plugins.allow`, додайте туди також `codex`:
```json5
{
@ -126,14 +112,12 @@ OpenClaw працює з поверхнею протоколу, з якою йо
}
```
Задання `agents.defaults.model` або моделі агента як `codex/<model>` також
автоматично вмикає вбудований Plugin `codex`. Явний запис Plugin усе ще
корисний у спільних конфігураціях, бо робить намір розгортання очевидним.
Застарілі конфігурації, які задають `agents.defaults.model` або модель агента як
`codex/<model>`, і далі автоматично вмикають комплектний Plugin `codex`. У нових конфігураціях слід віддавати перевагу `openai/<model>` разом із явним записом `embeddedHarness` вище.
## Додати Codex без заміни інших моделей
## Додайте Codex без заміни інших моделей
Залишайте `runtime: "auto"`, якщо хочете використовувати Codex для моделей `codex/*`, а PI — для
всього іншого:
Залишайте `runtime: "auto"`, якщо хочете, щоб застарілі посилання `codex/*` вибирали Codex, а Pi — для всього іншого. Для нових конфігурацій надавайте перевагу явному `runtime: "codex"` для агентів, які мають використовувати harness.
```json5
{
@ -147,17 +131,15 @@ OpenClaw працює з поверхнею протоколу, з якою йо
agents: {
defaults: {
model: {
primary: "codex/gpt-5.5",
primary: "openai/gpt-5.5",
fallbacks: ["openai/gpt-5.5", "anthropic/claude-opus-4-6"],
},
models: {
"codex/gpt-5.5": { alias: "codex" },
"codex/gpt-5.4-mini": { alias: "codex-mini" },
"openai/gpt-5.5": { alias: "gpt" },
"anthropic/claude-opus-4-6": { alias: "opus" },
},
embeddedHarness: {
runtime: "auto",
runtime: "codex",
fallback: "pi",
},
},
@ -165,23 +147,21 @@ OpenClaw працює з поверхнею протоколу, з якою йо
}
```
У такій конфігурації:
За такої структури:
- `/model codex` або `/model codex/gpt-5.5` використовує harness app-server Codex.
- `/model gpt` або `/model openai/gpt-5.5` використовує шлях провайдера OpenAI.
- `/model gpt` або `/model openai/gpt-5.5` використовує harness app-server Codex для цієї конфігурації.
- `/model opus` використовує шлях провайдера Anthropic.
- Якщо вибрано не-Codex модель, PI залишається сумісним harness.
- Якщо вибрано не-Codex модель, Pi залишається harness сумісності.
## Розгортання лише з Codex
Вимкніть fallback до PI, якщо вам потрібно гарантувати, що кожен хід вбудованого агента використовує
Codex harness:
Вимкніть резервне перемикання на Pi, коли потрібно довести, що кожен вбудований хід агента використовує harness Codex:
```json5
{
agents: {
defaults: {
model: "codex/gpt-5.5",
model: "openai/gpt-5.5",
embeddedHarness: {
runtime: "codex",
fallback: "none",
@ -199,13 +179,12 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
openclaw gateway run
```
Якщо fallback вимкнено, OpenClaw завершується помилкою на ранньому етапі, якщо Plugin Codex вимкнено,
потрібна модель не є посиланням `codex/*`, app-server надто старий або
app-server не може запуститися.
Коли резервне перемикання вимкнено, OpenClaw завершується з помилкою на ранньому етапі, якщо Plugin Codex вимкнено,
app-server надто старий або app-server не вдається запустити.
## Codex для окремого агента
Ви можете зробити один агент лише для Codex, тоді як агент за замовчуванням збереже звичайний
Ви можете зробити одного агента лише-Codex, тоді як агент за замовчуванням зберігатиме звичайний
автовибір:
```json5
@ -226,7 +205,7 @@ app-server не може запуститися.
{
id: "codex",
name: "Codex",
model: "codex/gpt-5.5",
model: "openai/gpt-5.5",
embeddedHarness: {
runtime: "codex",
fallback: "none",
@ -238,18 +217,18 @@ app-server не може запуститися.
```
Використовуйте звичайні команди сесії для перемикання агентів і моделей. `/new` створює нову
сесію OpenClaw, а Codex harness створює або відновлює свій sidecar app-server
потік за потреби. `/reset` очищає прив’язку сесії OpenClaw до цього потоку
і дає змогу наступному ходу знову визначити harness з поточної конфігурації.
сесію OpenClaw, а harness Codex створює або відновлює свій sidecar-потік app-server
за потреби. `/reset` очищає прив’язку сесії OpenClaw для цього потоку
і дає змогу наступному ходу знову визначити harness із поточної конфігурації.
## Виявлення моделей
За замовчуванням Plugin Codex запитує в app-server доступні моделі. Якщо
виявлення не вдається або перевищує час очікування, використовується вбудований fallback-каталог:
виявлення не вдається або завершується за тайм-аутом, він використовує комплектний резервний каталог для:
- `codex/gpt-5.5`
- `codex/gpt-5.4-mini`
- `codex/gpt-5.2`
- GPT-5.5
- GPT-5.4 mini
- GPT-5.2
Ви можете налаштувати виявлення в `plugins.entries.codex.config.discovery`:
@ -271,8 +250,7 @@ app-server не може запуститися.
}
```
Вимкніть виявлення, якщо хочете, щоб під час запуску OpenClaw не опитував Codex і використовував лише
fallback-каталог:
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалося опитування Codex і використовувався лише резервний каталог:
```json5
{
@ -293,19 +271,18 @@ fallback-каталог:
## Підключення до app-server і політика
За замовчуванням Plugin запускає Codex локально так:
За замовчуванням Plugin локально запускає Codex так:
```bash
codex app-server --listen stdio://
```
За замовчуванням OpenClaw запускає локальні сесії Codex harness у режимі YOLO:
За замовчуванням OpenClaw запускає локальні сесії harness Codex у режимі YOLO:
`approvalPolicy: "never"`, `approvalsReviewer: "user"` і
`sandbox: "danger-full-access"`. Це довірена позиція локального оператора, яка використовується
для автономних Heartbeat: Codex може використовувати shell і мережеві інструменти без
зупинки на нативних prompt підтвердження, коли нікому відповісти.
`sandbox: "danger-full-access"`. Це позиція довіреного локального оператора, що використовується
для автономних Heartbeat: Codex може використовувати shell та мережеві інструменти, не зупиняючись на нативних запитах на погодження, на які нікому відповідати.
Щоб увімкнути підтвердження Codex, перевірені guardian, задайте `appServer.mode:
Щоб увімкнути погодження Codex, які перевіряє guardian, задайте `appServer.mode:
"guardian"`:
```json5
@ -326,9 +303,9 @@ codex app-server --listen stdio://
}
```
Guardian — це нативний reviewer підтверджень Codex. Коли Codex просить вийти з sandbox, записати поза workspace або додати дозволи, як-от доступ до мережі, Codex спрямовує цей запит на підтвердження reviewer-субагенту, а не людині через prompt. Reviewer застосовує систему оцінки ризику Codex і схвалює або відхиляє конкретний запит. Використовуйте Guardian, якщо вам потрібні жорсткіші обмеження, ніж у режимі YOLO, але ви все одно хочете, щоб агенти без нагляду могли просуватися далі.
Guardian — це нативний рецензент погоджень Codex. Коли Codex просить вийти за межі sandbox, записати за межами workspace або додати дозволи, як-от мережевий доступ, Codex спрямовує цей запит на погодження до субагента-рецензента, а не до людини через запит. Рецензент застосовує ризикову модель Codex і схвалює або відхиляє конкретний запит. Використовуйте Guardian, коли вам потрібні суворіші запобіжники, ніж у режимі YOLO, але при цьому агенти мають і далі просуватися без нагляду.
Пресет `guardian` розгортається в `approvalPolicy: "on-request"`, `approvalsReviewer: "guardian_subagent"` і `sandbox: "workspace-write"`. Окремі поля політики все одно перевизначають `mode`, тож складні розгортання можуть поєднувати пресет із явними параметрами.
Набір `guardian` розгортається в `approvalPolicy: "on-request"`, `approvalsReviewer: "guardian_subagent"` і `sandbox: "workspace-write"`. Окремі поля політики, як і раніше, мають пріоритет над `mode`, тож у розширених розгортаннях можна поєднувати цей набір із явними виборами.
Для вже запущеного app-server використовуйте транспорт WebSocket:
@ -354,23 +331,22 @@ Guardian — це нативний reviewer підтверджень Codex. Ко
Підтримувані поля `appServer`:
| Поле | За замовчуванням | Значення |
| ------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| `transport` | `"stdio"` | `"stdio"` запускає Codex; `"websocket"` підключається до `url`. |
| `command` | `"codex"` | Виконуваний файл для транспорту stdio. |
| Поле | За замовчуванням | Значення |
| ------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| `transport` | `"stdio"` | `"stdio"` запускає Codex; `"websocket"` підключається до `url`. |
| `command` | `"codex"` | Виконуваний файл для транспорту stdio. |
| `args` | `["app-server", "--listen", "stdio://"]` | Аргументи для транспорту stdio. |
| `url` | не задано | URL app-server WebSocket. |
| `authToken` | не задано | Bearer-токен для транспорту WebSocket. |
| `headers` | `{}` | Додаткові заголовки WebSocket. |
| `requestTimeoutMs` | `60000` | Тайм-аут для викликів control-plane до app-server. |
| `mode` | `"yolo"` | Пресет для виконання в режимі YOLO або з перевіркою guardian. |
| `approvalPolicy` | `"never"` | Нативна політика підтверджень Codex, що надсилається під час запуску/відновлення потоку/ходу. |
| `sandbox` | `"danger-full-access"` | Нативний режим sandbox Codex, що надсилається під час запуску/відновлення потоку. |
| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб Codex Guardian перевіряв prompt підтвердження. |
| `serviceTier` | не задано | Необов’язковий service tier app-server Codex: `"fast"`, `"flex"` або `null`. Некоректні застарілі значення ігноруються. |
| `url` | не задано | URL app-server WebSocket. |
| `authToken` | не задано | Bearer-токен для транспорту WebSocket. |
| `headers` | `{}` | Додаткові заголовки WebSocket. |
| `requestTimeoutMs` | `60000` | Тайм-аут для викликів control-plane app-server. |
| `mode` | `"yolo"` | Набір для YOLO або виконання з погодженням, що перевіряється guardian. |
| `approvalPolicy` | `"never"` | Нативна політика погодження Codex, що надсилається під час старту/відновлення потоку/ходу. |
| `sandbox` | `"danger-full-access"` | Нативний режим sandbox Codex, що надсилається під час старту/відновлення потоку. |
| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб Guardian Codex перевіряв запити. |
| `serviceTier` | не задано | Необов’язковий рівень сервісу app-server Codex: `"fast"`, `"flex"` або `null`. Некоректні застарілі значення ігноруються. |
Старіші змінні середовища все ще працюють як fallback для локального тестування, коли
відповідне поле конфігурації не задано:
Старіші змінні середовища, як і раніше, працюють як резервні варіанти для локального тестування, коли відповідне поле конфігурації не задано:
- `OPENCLAW_CODEX_APP_SERVER_BIN`
- `OPENCLAW_CODEX_APP_SERVER_ARGS`
@ -378,13 +354,13 @@ Guardian — це нативний reviewer підтверджень Codex. Ко
- `OPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICY`
- `OPENCLAW_CODEX_APP_SERVER_SANDBOX`
`OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1` було видалено. Натомість використовуйте
`OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1` видалено. Натомість використовуйте
`plugins.entries.codex.config.appServer.mode: "guardian"` або
`OPENCLAW_CODEX_APP_SERVER_MODE=guardian` для разового локального тестування. Конфігурація
є кращим варіантом для відтворюваних розгортань, оскільки зберігає поведінку Plugin в
одному перевіреному файлі разом з рештою налаштувань Codex harness.
`OPENCLAW_CODEX_APP_SERVER_MODE=guardian` для разового локального тестування. Для
відтворюваних розгортань перевага надається конфігурації, оскільки вона зберігає поведінку Plugin
в тому самому перевіреному файлі, що й решта налаштування harness Codex.
## Типові рецепти
## Поширені рецепти
Локальний Codex зі стандартним транспортом stdio:
@ -400,7 +376,7 @@ Guardian — це нативний reviewer підтверджень Codex. Ко
}
```
Перевірка harness лише для Codex, із вимкненим fallback до PI:
Перевірка harness лише-Codex, із вимкненим резервним перемиканням на Pi:
```json5
{
@ -417,7 +393,7 @@ Guardian — це нативний reviewer підтверджень Codex. Ко
}
```
Підтвердження Codex із перевіркою guardian:
Погодження Codex, перевірені Guardian:
```json5
{
@ -439,7 +415,7 @@ Guardian — це нативний reviewer підтверджень Codex. Ко
}
```
Віддалений app-server з явними заголовками:
Віддалений app-server із явними заголовками:
```json5
{
@ -462,60 +438,58 @@ Guardian — це нативний reviewer підтверджень Codex. Ко
}
```
Перемикання моделей і далі контролюється OpenClaw. Коли сесію OpenClaw прив’язано
Перемикання моделей і далі контролюється OpenClaw. Коли сесію OpenClaw приєднано
до наявного потоку Codex, наступний хід знову надсилає до
app-server поточну вибрану модель `codex/*`, провайдера, політику підтверджень, sandbox і service tier.
Перемикання з `codex/gpt-5.5` на `codex/gpt-5.2` зберігає прив’язку до
потоку, але просить Codex продовжити з новою вибраною моделлю.
app-server поточно вибрану модель OpenAI, провайдера, політику погодження, sandbox і рівень сервісу.
Перемикання з `openai/gpt-5.5` на `openai/gpt-5.2` зберігає
прив’язку до потоку, але просить Codex продовжити з нововибраною моделлю.
## Команда Codex
Вбудований Plugin реєструє `/codex` як авторизовану slash-команду. Вона є
загальною і працює в будь-якому каналі, що підтримує текстові команди OpenClaw.
Комплектний Plugin реєструє `/codex` як авторизовану slash-команду. Вона є
універсальною і працює в будь-якому каналі, що підтримує текстові команди OpenClaw.
Поширені форми:
- `/codex status` показує live-підключення до app-server, моделі, акаунт, rate limits, сервери MCP і skills.
- `/codex models` показує список live-моделей app-server Codex.
- `/codex status` показує стан живого підключення до app-server, моделі, обліковий запис, ліміти швидкості, MCP-сервери та skills.
- `/codex models` показує список живих моделей app-server Codex.
- `/codex threads [filter]` показує список нещодавніх потоків Codex.
- `/codex resume <thread-id>` прив’язує поточну сесію OpenClaw до наявного потоку Codex.
- `/codex compact` просить app-server Codex виконати Compaction прив’язаного потоку.
- `/codex review` запускає нативну перевірку Codex для прив’язаного потоку.
- `/codex account` показує стан акаунта й rate-limit.
- `/codex mcp` показує стан MCP-серверів app-server Codex.
- `/codex skills` показує Skills app-server Codex.
- `/codex resume <thread-id>` приєднує поточну сесію OpenClaw до наявного потоку Codex.
- `/codex compact` просить app-server Codex виконати Compaction для приєднаного потоку.
- `/codex review` запускає нативний перегляд Codex для приєднаного потоку.
- `/codex account` показує стан облікового запису та лімітів швидкості.
- `/codex mcp` показує список станів MCP-серверів app-server Codex.
- `/codex skills` показує список skills app-server Codex.
`/codex resume` записує той самий sidecar-файл прив’язки, який harness використовує для
звичайних ходів. На наступному повідомленні OpenClaw відновлює цей потік Codex, передає
поточну вибрану модель OpenClaw `codex/*` до app-server і залишає розширену
історію ввімкненою.
звичайних ходів. У наступному повідомленні OpenClaw відновлює цей потік Codex, передає
поточну вибрану модель OpenClaw `codex/*` до app-server і зберігає
увімкнену розширену історію.
Поверхня команд вимагає app-server Codex версії `0.118.0` або новішої. Окремі
методи керування позначаються як `unsupported by this Codex app-server`, якщо
майбутній або власний app-server не надає цього JSON-RPC-методу.
Поверхня команд вимагає app-server Codex версії `0.118.0` або новішої. Про окремі
методи керування повідомляється як `unsupported by this Codex app-server`, якщо
майбутній або користувацький app-server не надає цей метод JSON-RPC.
## Інструменти, медіа та Compaction
Codex harness змінює лише низькорівневий виконавець вбудованого агента.
Harness Codex змінює лише низькорівневий виконавець вбудованого агента.
OpenClaw і далі формує список інструментів і отримує динамічні результати інструментів від
harness. Текст, зображення, відео, музика, TTS, підтвердження та вивід інструментів обміну повідомленнями
harness. Текст, зображення, відео, музика, TTS, погодження та вихід інструментів обміну повідомленнями
і далі проходять через звичайний шлях доставки OpenClaw.
Запити на підтвердження інструментів MCP Codex маршрутизуються через потік підтверджень Plugin OpenClaw,
Запити погодження інструментів MCP Codex маршрутизуються через потік погодження Plugin OpenClaw,
коли Codex позначає `_meta.codex_approval_kind` як
`"mcp_tool_call"`; інші запити на підтвердження та довільне введення, як і раніше, безумовно відхиляються.
`"mcp_tool_call"`; інші запити на підтвердження й запити довільного вводу, як і раніше, відхиляються безумовно.
Коли вибрана модель використовує Codex harness, нативний Compaction потоку
делегується app-server Codex. OpenClaw зберігає дзеркало transcript для історії
каналу, пошуку, `/new`, `/reset` і майбутнього перемикання моделі або harness. Дзеркало
включає prompt користувача, фінальний текст асистента та полегшені записи reasoning або плану Codex, коли app-server їх надсилає. Наразі OpenClaw лише
записує сигнали початку і завершення нативного Compaction. Він поки що не показує
людинозрозуміле резюме Compaction або придатний для аудиту список того, які записи Codex
зберіг після Compaction.
Коли вибрана модель використовує harness Codex, нативний Compaction потоку делегується app-server Codex. OpenClaw зберігає дзеркало транскрипту для історії каналу,
пошуку, `/new`, `/reset` і майбутнього перемикання моделі або harness. Дзеркало
містить запит користувача, фінальний текст асистента та полегшені записи міркувань або плану Codex, коли app-server їх надсилає. Наразі OpenClaw записує лише нативні сигнали початку та завершення Compaction. Він ще не показує
людинозрозумілий підсумок Compaction або придатний до аудиту список того, які записи Codex
залишив після Compaction.
Генерація медіа не потребує PI. Генерація зображень, відео, музики, PDF, TTS і
розуміння медіа й далі використовують відповідні налаштування провайдера/моделі, такі як
Генерація медіа не потребує Pi. Генерація зображень, відео, музики, PDF, TTS і
розуміння медіа і далі використовують відповідні налаштування провайдера/моделі, такі як
`agents.defaults.imageGenerationModel`, `videoGenerationModel`, `pdfModel` і
`messages.tts`.
@ -524,28 +498,26 @@ harness. Текст, зображення, відео, музика, TTS, під
**Codex не з’являється в `/model`:** увімкніть `plugins.entries.codex.enabled`,
задайте посилання на модель `codex/*` або перевірте, чи `plugins.allow` не виключає `codex`.
**OpenClaw використовує PI замість Codex:** якщо жоден Codex harness не обробляє запуск,
OpenClaw може використати PI як сумісний backend. Задайте
**OpenClaw використовує Pi замість Codex:** якщо жоден harness Codex не бере на себе виконання,
OpenClaw може використовувати Pi як backend сумісності. Задайте
`embeddedHarness.runtime: "codex"`, щоб примусово вибрати Codex під час тестування, або
`embeddedHarness.fallback: "none"`, щоб отримувати помилку, коли жоден Plugin harness не підходить. Щойно
буде вибрано app-server Codex, його збої відображатимуться напряму без додаткової
конфігурації fallback.
`embeddedHarness.fallback: "none"`, щоб отримувати помилку, коли жоден Plugin harness не підходить. Щойно app-server Codex вибрано, його збої проявляються безпосередньо без додаткової конфігурації резервного перемикання.
**App-server відхиляється:** оновіть Codex, щоб handshake app-server
повідомляв версію `0.118.0` або новішу.
**app-server відхиляється:** оновіть Codex, щоб handshake app-server
повідомляв про версію `0.118.0` або новішу.
**Виявлення моделей повільне:** зменште `plugins.entries.codex.config.discovery.timeoutMs`
або вимкніть виявлення.
**Транспорт WebSocket одразу завершується помилкою:** перевірте `appServer.url`, `authToken`
і що віддалений app-server підтримує ту саму версію протоколу app-server Codex.
**Транспорт WebSocket одразу завершується з помилкою:** перевірте `appServer.url`, `authToken`
і що віддалений app-server використовує ту саму версію протоколу app-server Codex.
**Не-Codex модель використовує PI:** це очікувано. Codex harness обробляє лише
посилання на моделі `codex/*`.
**Модель не-Codex використовує Pi:** це очікувана поведінка. Harness Codex бере на себе
лише посилання на моделі `codex/*`.
## Пов’язане
- [Plugin harness агента](/uk/plugins/sdk-agent-harness)
- [Plugins Harness агента](/uk/plugins/sdk-agent-harness)
- [Провайдери моделей](/uk/concepts/model-providers)
- [Довідник з конфігурації](/uk/gateway/configuration-reference)
- [Довідник із конфігурації](/uk/gateway/configuration-reference)
- [Тестування](/uk/help/testing#live-codex-app-server-harness-smoke)

View File

@ -1,53 +1,60 @@
---
read_when:
- Ви змінюєте вбудований рантайм агента або реєстр harness-ів
- Ви реєструєте harness агента з bundled або довіреного Plugin-а
- Вам потрібно зрозуміти, як Plugin Codex пов’язаний із провайдерами моделей
- Ви змінюєте вбудований runtime агента або реєстр каркаса.
- Ви реєструєте каркас агента з bundled або trusted plugin.
- Вам потрібно зрозуміти, як plugin Codex пов’язаний із постачальниками моделей.
sidebarTitle: Agent Harness
summary: Експериментальна поверхня SDK для Plugin-ів, які замінюють низькорівневий вбудований виконавець агента
title: Plugin-и Agent Harness
summary: Експериментальна поверхня SDK для plugin, які замінюють низькорівневий вбудований виконавець агента.
title: Плагіни каркаса агента
x-i18n:
generated_at: "2026-04-23T19:26:26Z"
generated_at: "2026-04-23T20:06:10Z"
model: gpt-5.4
provider: openai
source_hash: c0822248298c61f9dda7ec342558e8cda7c936876060b471ed01dc6c90779010
source_hash: b0c0bd3ef17ce7609a50354eb3bd717ddc45102eaf3ebca022c6861169b0753c
source_path: plugins/sdk-agent-harness.md
workflow: 15
---
# Plugin-и Agent Harness
# Плагіни каркаса агента
**Agent harness** — це низькорівневий виконавець для одного підготовленого ходу агента OpenClaw. Це не провайдер моделі, не канал і не реєстр інструментів.
**Каркас агента** — це низькорівневий виконавець одного підготовленого ходу
агента OpenClaw. Це не постачальник моделей, не channel і не реєстр інструментів.
Використовуйте цю поверхню лише для bundled або довірених native Plugin-ів. Контракт усе ще експериментальний, оскільки типи параметрів навмисно віддзеркалюють поточний вбудований runner.
Використовуйте цю поверхню лише для bundled або trusted native plugin. Контракт
усе ще є експериментальним, оскільки типи параметрів навмисно віддзеркалюють поточний
вбудований виконавець.
## Коли використовувати harness
## Коли використовувати каркас
Реєструйте agent harness, коли сімейство моделей має власний native session runtime і звичайний транспорт провайдера OpenClaw є хибною абстракцією.
Реєструйте каркас агента, коли сімейство моделей має власний native session
runtime і звичайний транспорт provider OpenClaw є хибною абстракцією.
Приклади:
- native сервер coding-agent, який керує thread-ами та Compaction
- локальний CLI або демон, який має стримити native події plan/reasoning/tool
- runtime моделі, якому потрібен власний resume id на додачу до transcript сесії OpenClaw
- native-сервер агента для програмування, який керує threads і Compaction
- локальний CLI або daemon, який має транслювати native-події plan/reasoning/tool
- runtime моделі, якому потрібен власний resume id на додачу до transcript
session OpenClaw
**Не** реєструйте harness лише для додавання нового API LLM. Для звичайних HTTP- або WebSocket-API моделей створіть [provider Plugin](/uk/plugins/sdk-provider-plugins).
**Не** реєструйте каркас лише для того, щоб додати новий API LLM. Для звичайних
HTTP- або WebSocket-API моделей створіть [plugin provider](/uk/plugins/sdk-provider-plugins).
## Що все ще належить core
## Що core усе ще контролює
Перед вибором harness OpenClaw уже визначив:
Перед тим як буде вибрано каркас, OpenClaw уже визначив:
- провайдера та модель
- provider і модель
- стан автентифікації runtime
- рівень thinking і бюджет контексту
- файл transcript/сесії OpenClaw
- файл transcript/session OpenClaw
- workspace, sandbox і політику інструментів
- callback-и відповіді каналу та callback-и стримінгу
- політику fallback моделі та живого перемикання моделей
- callback-функції відповіді channel і callback-функції streaming
- політику fallback моделі та live-перемикання моделей
Такий поділ є навмисним. Harness виконує підготовлену спробу; він не вибирає провайдерів, не замінює доставку каналу й не перемикає моделі непомітно.
Цей поділ є навмисним. Каркас виконує підготовлену спробу; він не вибирає
provider, не замінює доставку channel і не перемикає моделі непомітно.
## Зареєструйте harness
## Зареєструвати каркас
**Імпорт:** `openclaw/plugin-sdk/agent-harness`
@ -85,64 +92,106 @@ export default definePluginEntry({
## Політика вибору
OpenClaw вибирає harness після визначення провайдера/моделі:
OpenClaw вибирає каркас після визначення provider/моделі:
1. Якщо в наявній сесії вже записано id harness, він має пріоритет, тому зміни config/env не перемикають цей transcript на інший runtime на льоту.
2. `OPENCLAW_AGENT_RUNTIME=<id>` примусово вказує зареєстрований harness із цим id для сесій, які ще не закріплені.
3. `OPENCLAW_AGENT_RUNTIME=pi` примусово вказує вбудований harness PI.
4. `OPENCLAW_AGENT_RUNTIME=auto` запитує зареєстровані harness-и, чи підтримують вони визначену пару провайдер/модель.
5. Якщо жоден зареєстрований harness не підходить, OpenClaw використовує PI, якщо fallback PI не вимкнено.
1. Ідентифікатор каркаса, записаний в наявній session, має пріоритет, щоб зміни config/env не
перемикали цей transcript на інший runtime гарячим способом.
2. `OPENCLAW_AGENT_RUNTIME=<id>` примусово вибирає зареєстрований каркас із цим id для
session, які ще не закріплено.
3. `OPENCLAW_AGENT_RUNTIME=pi` примусово вибирає вбудований каркас PI.
4. `OPENCLAW_AGENT_RUNTIME=auto` запитує зареєстровані каркаси, чи підтримують вони
визначені provider/модель.
5. Якщо жоден зареєстрований каркас не підходить, OpenClaw використовує PI, якщо fallback PI
не вимкнено.
Збої Plugin harness відображаються як помилки виконання. У режимі `auto` fallback до PI використовується лише тоді, коли жоден зареєстрований Plugin harness не підтримує визначену пару провайдер/модель. Щойно Plugin harness узяв на себе виконання, OpenClaw не повторює той самий хід через PI, оскільки це може змінити семантику auth/runtime або дублювати побічні ефекти.
Збої каркасів plugin відображаються як збої виконання. У режимі `auto` fallback на PI
використовується лише тоді, коли жоден зареєстрований каркас plugin не підтримує визначені
provider/модель. Щойно каркас plugin узяв виконання на себе, OpenClaw не
повторює той самий хід через PI, оскільки це може змінити семантику auth/runtime
або дублювати побічні ефекти.
Вибраний id harness зберігається разом з id сесії після вбудованого запуску. Застарілі сесії, створені до закріплення harness, вважаються закріпленими за PI, щойно в них з’являється history transcript. Використовуйте нову/скинуту сесію, коли перемикаєтеся між PI і native Plugin harness. `/status` показує нестандартні id harness, такі як `codex`, поруч із `Fast`; PI лишається прихованим, оскільки це шлях сумісності за замовчуванням.
Вибраний id каркаса зберігається разом з id session після вбудованого виконання.
Старі session, створені до появи закріплення каркасів, вважаються закріпленими за PI, щойно
вони мають історію transcript. Використовуйте нову/скинуту session під час перемикання між PI та
native-каркасом plugin. `/status` показує нестандартні id каркасів, наприклад `codex`,
поруч із `Fast`; PI залишається прихованим, бо це стандартний сумісний шлях.
Bundled Plugin Codex реєструє `codex` як свій id harness. Core трактує це як звичайний id Plugin harness; специфічні для Codex псевдоніми мають належати Plugin-у або config оператора, а не спільному селектору runtime.
Bundled plugin Codex реєструє `codex` як свій id каркаса. Core сприймає це як
звичайний id каркаса plugin; псевдоніми, специфічні для Codex, мають належати plugin
або config оператора, а не спільному селектору runtime.
## Поєднання provider і harness
## Поєднання provider і каркаса
Більшість harness-ів також мають реєструвати provider. Provider робить видимими для решти OpenClaw посилання на моделі, стан auth, метадані моделі та вибір `/model`. Потім harness заявляє про підтримку цього provider у `supports(...)`.
Більшість каркасів також мають реєструвати provider. Provider робить посилання на моделі,
стан auth, метадані моделі та вибір `/model` видимими для решти
OpenClaw. Потім каркас заявляє підтримку цього provider у `supports(...)`.
Bundled Plugin Codex дотримується цього шаблону:
Bundled plugin Codex дотримується цього шаблону:
- id provider: `codex`
- посилання користувача на моделі: `codex/gpt-5.5`, `codex/gpt-5.2` або інша модель, повернена app-server Codex
- id harness: `codex`
- auth: синтетична доступність provider, оскільки harness Codex керує native входом/сесією Codex
- запит до app-server: OpenClaw надсилає в Codex простий id моделі та дозволяє harness спілкуватися з native протоколом app-server
- посилання моделі для користувача: канонічне `openai/gpt-5.5` плюс
`embeddedHarness.runtime: "codex"`; старі посилання `codex/gpt-*` і далі приймаються
для сумісності
- id каркаса: `codex`
- auth: синтетична доступність provider, оскільки каркас Codex контролює
native-вхід/session Codex
- запит до app-server: OpenClaw надсилає до Codex базовий id моделі й дозволяє
каркасу працювати з native-протоколом app-server
Plugin Codex є адитивним. Звичайні посилання `openai/gpt-*` лишаються посиланнями provider OpenAI та продовжують використовувати звичайний шлях provider OpenClaw. Вибирайте `codex/gpt-*`, коли вам потрібні auth під керуванням Codex, виявлення моделей Codex, native thread-и та виконання через app-server Codex. `/model` може перемикатися між моделями Codex, поверненими app-server Codex, без потреби в облікових даних provider OpenAI.
Plugin Codex є адитивним. Звичайні посилання `openai/gpt-*` і далі використовують
звичайний шлях provider OpenClaw, якщо ви явно не примусите каркас Codex через
`embeddedHarness.runtime: "codex"`. Старі посилання `codex/gpt-*` і далі вибирають
provider і каркас Codex для сумісності.
Налаштування для операторів, приклади префіксів моделей і конфігурації лише для Codex див. у [Codex Harness](/uk/plugins/codex-harness).
Щодо налаштування оператором, прикладів префіксів моделей і config лише для Codex, див.
[Каркас Codex](/uk/plugins/codex-harness).
OpenClaw вимагає Codex app-server `0.118.0` або новішої версії. Plugin Codex перевіряє initialize handshake app-server і блокує старіші сервери або сервери без версії, щоб OpenClaw працював лише з тією поверхнею протоколу, яку було протестовано.
OpenClaw вимагає Codex app-server версії `0.118.0` або новішої. Plugin Codex перевіряє
initialize-handshake app-server і блокує старіші або безверсійні сервери, щоб
OpenClaw працював лише з поверхнею протоколу, з якою його було протестовано.
### Middleware результатів інструментів Codex app-server
Bundled Plugin-и також можуть підключати middleware `tool_result`, специфічний для Codex app-server, через `api.registerCodexAppServerExtensionFactory(...)`, коли їхній маніфест оголошує `contracts.embeddedExtensionFactories: ["codex-app-server"]`. Це seam довіреного Plugin-а для асинхронних трансформацій `tool_result`, які мають виконуватися всередині native harness Codex до того, як вивід інструмента буде спроєктовано назад у transcript OpenClaw.
Bundled plugin також можуть підключати middleware `tool_result`, специфічний для Codex app-server,
через `api.registerCodexAppServerExtensionFactory(...)`, коли їхній manifest оголошує
`contracts.embeddedExtensionFactories: ["codex-app-server"]`.
Це seam trusted-plugin для асинхронних перетворень `tool_result`, які мають
працювати всередині native-каркаса Codex, перш ніж вивід інструмента буде спроєктовано
назад у transcript OpenClaw.
### Режим native harness Codex
### Режим native-каркаса Codex
Bundled harness `codex` — це native режим Codex для вбудованих ходів агента OpenClaw. Спочатку увімкніть bundled Plugin `codex` і додайте `codex` у `plugins.allow`, якщо у вашій config використовується обмежувальний allowlist. Він відрізняється від `openai-codex/*`:
Bundled каркас `codex` — це native-режим Codex для вбудованих ходів
агента OpenClaw. Спочатку увімкніть bundled plugin `codex` і додайте `codex` до
`plugins.allow`, якщо ваш config використовує обмежувальний allowlist. Нові config мають
використовувати `openai/gpt-*` з `embeddedHarness.runtime: "codex"`. Старі
посилання моделей `openai-codex/*` і `codex/*` залишаються псевдонімами сумісності.
- `openai-codex/*` використовує OAuth ChatGPT/Codex через звичайний шлях provider OpenClaw.
- `codex/*` використовує bundled provider Codex і маршрутизує хід через app-server Codex.
Коли цей режим працює, Codex контролює native id thread, поведінку resume,
Compaction і виконання app-server. OpenClaw і далі контролює chat channel,
видиме дзеркало transcript, політику інструментів, approvals, доставку медіа та вибір
session. Використовуйте `embeddedHarness.runtime: "codex"` разом з
`embeddedHarness.fallback: "none"`, коли вам потрібно довести, що лише шлях
Codex app-server може взяти це виконання. Цей config є лише захистом вибору:
збої Codex app-server уже напряму завершуються помилкою замість повторної спроби через PI.
Коли працює цей режим, Codex керує native id thread, поведінкою resume, Compaction і виконанням app-server. OpenClaw усе ще керує chat-каналом, видимим дзеркалом transcript, політикою інструментів, погодженнями, доставкою медіа та вибором сесії. Використовуйте `embeddedHarness.runtime: "codex"` разом із `embeddedHarness.fallback: "none"`, коли потрібно довести, що лише шлях app-server Codex може взяти на себе виконання. Ця config є лише захистом вибору: збої app-server Codex і так завершуються помилкою напряму, а не повторною спробою через PI.
## Вимкнення fallback PI
## Вимкнення fallback до PI
За замовчуванням OpenClaw запускає вбудованих агентів з `agents.defaults.embeddedHarness`,
встановленим у `{ runtime: "auto", fallback: "pi" }`. У режимі `auto` зареєстровані каркаси plugin
можуть узяти на себе пару provider/модель. Якщо жоден не підходить, OpenClaw повертається до PI.
За замовчуванням OpenClaw запускає вбудованих агентів із `agents.defaults.embeddedHarness`, встановленим у `{ runtime: "auto", fallback: "pi" }`. У режимі `auto` зареєстровані Plugin harness-и можуть взяти на себе пару провайдер/модель. Якщо жоден не підходить, OpenClaw переходить на PI.
Установіть `fallback: "none"`, коли вам потрібно, щоб відсутність вибору каркаса plugin
призводила до помилки замість використання PI. Збої вже вибраного каркаса plugin і так завершуються жорстко. Це
не блокує явний `runtime: "pi"` або `OPENCLAW_AGENT_RUNTIME=pi`.
Установіть `fallback: "none"`, коли потрібно, щоб відсутність вибору Plugin harness завершувалася помилкою замість використання PI. Збої вже вибраного Plugin harness і так завершуються жорсткою помилкою. Це не блокує явний `runtime: "pi"` або `OPENCLAW_AGENT_RUNTIME=pi`.
Для вбудованих запусків лише з Codex:
Для вбудованих виконань лише з Codex:
```json
{
"agents": {
"defaults": {
"model": "codex/gpt-5.5",
"model": "openai/gpt-5.5",
"embeddedHarness": {
"runtime": "codex",
"fallback": "none"
@ -152,7 +201,9 @@ Bundled harness `codex` — це native режим Codex для вбудован
}
```
Якщо ви хочете, щоб будь-який зареєстрований Plugin harness міг узяти на себе відповідні моделі, але ніколи не хочете, щоб OpenClaw непомітно переходив на PI, залиште `runtime: "auto"` і вимкніть fallback:
Якщо ви хочете, щоб будь-який зареєстрований каркас plugin міг узяти відповідні моделі, але
ніколи не хочете, щоб OpenClaw непомітно повертався до PI, залиште `runtime: "auto"` і вимкніть
fallback:
```json
{
@ -181,7 +232,7 @@ Bundled harness `codex` — це native режим Codex для вбудован
"list": [
{
"id": "codex-only",
"model": "codex/gpt-5.5",
"model": "openai/gpt-5.5",
"embeddedHarness": {
"runtime": "codex",
"fallback": "none"
@ -192,7 +243,9 @@ Bundled harness `codex` — це native режим Codex для вбудован
}
```
`OPENCLAW_AGENT_RUNTIME` усе ще перевизначає налаштований runtime. Використовуйте `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб вимкнути fallback до PI через середовище.
`OPENCLAW_AGENT_RUNTIME` і далі перевизначає налаштований runtime. Використовуйте
`OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб вимкнути fallback на PI через
середовище.
```bash
OPENCLAW_AGENT_RUNTIME=codex \
@ -200,39 +253,53 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
openclaw gateway run
```
Коли fallback вимкнено, сесія завершується помилкою на ранньому етапі, якщо запитаний harness не зареєстровано, він не підтримує визначену пару провайдер/модель або завершується збоєм до створення побічних ефектів ходу. Це навмисно для розгортань лише з Codex і для live-тестів, які мають довести, що фактично використовується шлях app-server Codex.
Коли fallback вимкнено, session завершується помилкою на ранньому етапі, якщо запитаний каркас не
зареєстровано, не підтримує визначені provider/модель або завершується помилкою до
створення побічних ефектів ходу. Це зроблено навмисно для розгортань лише з Codex і
для live-тестів, які мають довести, що шлях Codex app-server справді використовується.
Цей параметр керує лише вбудованим agent harness. Він не вимикає маршрутизацію image, video, music, TTS, PDF або інших моделей, специфічних для provider.
Цей параметр керує лише каркасом вбудованого агента. Він не вимикає
маршрутизацію моделей, специфічну для provider, для image, video, music, TTS, PDF чи інших типів.
## Native сесії та дзеркало transcript
## Native session і дзеркало transcript
Harness може зберігати native id сесії, id thread або resume token на боці демона. Зберігайте цю прив’язку явно пов’язаною із сесією OpenClaw і продовжуйте дзеркалити видимий користувачу вивід assistant/tool у transcript OpenClaw.
Каркас може зберігати native id session, id thread або токен resume на боці daemon.
Явно підтримуйте зв’язок цього прив’язування із session OpenClaw і
продовжуйте дзеркалити видимий користувачеві вивід assistant/tool у transcript OpenClaw.
Transcript OpenClaw залишається шаром сумісності для:
- видимої в каналі history сесії
- пошуку й індексації transcript
- перемикання назад на вбудований harness PI на наступному ході
- типової поведінки `/new`, `/reset` і видалення сесії
- видимої в channel історії session
- пошуку та індексації transcript
- повернення до вбудованого каркаса PI на наступному ході
- загальної поведінки `/new`, `/reset` і видалення session
Якщо ваш harness зберігає sidecar-прив’язку, реалізуйте `reset(...)`, щоб OpenClaw міг очистити її під час скидання відповідної сесії OpenClaw.
Якщо ваш каркас зберігає sidecar-прив’язування, реалізуйте `reset(...)`, щоб OpenClaw міг
очистити його під час скидання пов’язаної session OpenClaw.
## Результати інструментів і медіа
Core формує список інструментів OpenClaw і передає його в підготовлену спробу. Коли harness виконує динамічний виклик інструмента, повертайте результат інструмента назад через форму результату harness, а не надсилайте медіа в канал самостійно.
Core формує список інструментів OpenClaw і передає його в підготовлену спробу.
Коли каркас виконує динамічний виклик інструмента, повертайте результат інструмента через
форму результату каркаса, а не надсилайте медіа в channel самостійно.
Це зберігає text, image, video, music, TTS, approval і виводи інструментів обміну повідомленнями в тому самому шляху доставки, що й у запусків на базі PI.
Це зберігає text, image, video, music, TTS, approval і виводи інструментів обміну повідомленнями
на тому самому шляху доставки, що й у виконаннях на базі PI.
## Поточні обмеження
- Публічний шлях імпорту є узагальненим, але деякі псевдоніми типів спроб/результатів усе ще містять назви `Pi` для сумісності.
- Установлення сторонніх harness-ів є експериментальним. Віддавайте перевагу provider Plugin-ам, доки вам не знадобиться native session runtime.
- Перемикання harness підтримується між ходами. Не перемикайте harness посеред ходу після того, як уже почалися native інструменти, approvals, текст assistant або надсилання повідомлень.
- Публічний шлях імпорту є загальним, але деякі псевдоніми типів attempt/result і далі
містять назви `Pi` для сумісності.
- Установлення сторонніх каркасів є експериментальним. Надавайте перевагу plugin provider,
доки вам не стане потрібен native session runtime.
- Перемикання каркасів між ходами підтримується. Не перемикайте каркаси посеред
ходу після того, як уже почалися native-інструменти, approvals, текст assistant або
надсилання повідомлень.
## Пов’язане
- [Огляд SDK](/uk/plugins/sdk-overview)
- [Допоміжні засоби runtime](/uk/plugins/sdk-runtime)
- [Provider Plugin-и](/uk/plugins/sdk-provider-plugins)
- [Codex Harness](/uk/plugins/codex-harness)
- [Провайдери моделей](/uk/concepts/model-providers)
- [Плагіни provider](/uk/plugins/sdk-provider-plugins)
- [Каркас Codex](/uk/plugins/codex-harness)
- [Постачальники моделей](/uk/concepts/model-providers)

View File

@ -1,56 +1,56 @@
---
read_when:
- Ви хочете використовувати моделі OpenAI в OpenClaw
- Ви хочете використовувати автентифікацію через підписку Codex замість API-ключів
- Ви хочете використовувати автентифікацію Codex subscription замість API key
- Вам потрібна суворіша поведінка виконання агента GPT-5
summary: Використовуйте OpenAI через API-ключі або підписку Codex в OpenClaw
summary: Використовуйте OpenAI через API key або Codex subscription в OpenClaw
title: OpenAI
x-i18n:
generated_at: "2026-04-23T19:26:50Z"
generated_at: "2026-04-23T20:06:14Z"
model: gpt-5.4
provider: openai
source_hash: 75c0492abf21cc2f0dfb83f32111b2b7e41cb85dd09ede6c1c45b18a135e46e1
source_hash: 012be7535f442e382180f883435c2be907e0b56cf73413d23a3e8e4321e56063
source_path: providers/openai.md
workflow: 15
---
# OpenAI
OpenAI надає API для розробників для моделей GPT. OpenClaw підтримує два варіанти автентифікації:
OpenAI надає API для розробників для моделей GPT. OpenClaw підтримує два шляхи автентифікації за однаковими канонічними посиланнями на моделі OpenAI:
- **API-ключ** — прямий доступ до OpenAI Platform з оплатою за використання (`openai/*` моделі)
- **Підписка Codex** — вхід через ChatGPT/Codex з доступом за підпискою (`openai-codex/*` моделі)
- **API key** — прямий доступ до OpenAI Platform з білінгом за використання (`openai/*` моделі)
- **Codex subscription** — вхід через ChatGPT/Codex із доступом за підпискою. Внутрішній ідентифікатор автентифікації/постачальника — `openai-codex`, але нові посилання на моделі все одно мають використовувати `openai/*`.
OpenAI явно підтримує використання subscription OAuth у зовнішніх інструментах і робочих процесах на кшталт OpenClaw.
OpenAI явно підтримує використання OAuth підписки у зовнішніх інструментах і робочих процесах, як-от OpenClaw.
## Покриття можливостей OpenClaw
| Можливість OpenAI | Поверхня OpenClaw | Стан |
| ------------------------ | ----------------------------------------- | ------------------------------------------------------ |
| Chat / Responses | Провайдер моделей `openai/<model>` | Так |
| Моделі підписки Codex | Провайдер моделей `openai-codex/<model>` | Так |
| Server-side web search | Рідний інструмент OpenAI Responses | Так, коли web search увімкнено й провайдер не закріплено |
| Зображення | `image_generate` | Так |
| Відео | `video_generate` | Так |
| Text-to-speech | `messages.tts.provider: "openai"` / `tts` | Так |
| Batch speech-to-text | `tools.media.audio` / розуміння медіа | Так |
| Streaming speech-to-text | Voice Call `streaming.provider: "openai"` | Так |
| Realtime voice | Voice Call `realtime.provider: "openai"` | Так |
| Embeddings | Провайдер embedding для пам’яті | Так |
| Можливість OpenAI | Поверхня OpenClaw | Статус |
| ------------------------- | ----------------------------------------- | ------------------------------------------------------ |
| Чат / Responses | Постачальник моделей `openai/<model>` | Так |
| Моделі Codex subscription | `openai/<model>` з автентифікацією `openai-codex` | Так |
| Вебпошук на стороні сервера | Рідний інструмент OpenAI Responses | Так, коли вебпошук увімкнено і постачальника не закріплено |
| Зображення | `image_generate` | Так |
| Відео | `video_generate` | Так |
| Перетворення тексту в мовлення | `messages.tts.provider: "openai"` / `tts` | Так |
| Пакетне перетворення мовлення в текст | `tools.media.audio` / розуміння медіа | Так |
| Потокове перетворення мовлення в текст | Voice Call `streaming.provider: "openai"` | Так |
| Realtime voice | Voice Call `realtime.provider: "openai"` | Так |
| Embeddings | постачальник embedding для пам’яті | Так |
## Початок роботи
Виберіть бажаний метод автентифікації та виконайте кроки налаштування.
Виберіть бажаний спосіб автентифікації та виконайте кроки налаштування.
<Tabs>
<Tab title="API key (OpenAI Platform)">
**Найкраще для:** прямого доступу до API та тарифікації за використання.
**Найкраще підходить для:** прямого доступу до API та білінгу за використання.
<Steps>
<Step title="Отримайте API-ключ">
Створіть або скопіюйте API-ключ з [панелі OpenAI Platform](https://platform.openai.com/api-keys).
<Step title="Отримайте свій API key">
Створіть або скопіюйте API key з [панелі керування OpenAI Platform](https://platform.openai.com/api-keys).
</Step>
<Step title="Запустіть onboarding">
<Step title="Запустіть онбординг">
```bash
openclaw onboard --auth-choice openai-api-key
```
@ -61,22 +61,22 @@ x-i18n:
openclaw onboard --openai-api-key "$OPENAI_API_KEY"
```
</Step>
<Step title="Перевірте, що модель доступна">
<Step title="Переконайтеся, що модель доступна">
```bash
openclaw models list --provider openai
```
</Step>
</Steps>
### Зведення маршрутів
### Підсумок маршруту
| Посилання на модель | Маршрут | Автентифікація |
| Model ref | Маршрут | Автентифікація |
|-----------|-------|------|
| `openai/gpt-5.5` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
| `openai/gpt-5.5-pro` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
<Note>
Вхід через ChatGPT/Codex маршрутизується через `openai-codex/*`, а не `openai/*`.
`openai-codex/*` усе ще приймається як застарілий псевдонім сумісності, але нові конфігурації мають використовувати `openai/*`.
</Note>
### Приклад конфігурації
@ -89,13 +89,13 @@ x-i18n:
```
<Warning>
OpenClaw **не** надає `openai/gpt-5.3-codex-spark` на шляху прямого API. Реальні запити до OpenAI API відхиляють цю модель. Spark доступна лише в Codex.
OpenClaw **не** надає `openai/gpt-5.3-codex-spark` на шляху прямого API. Реальні запити до OpenAI API відхиляють цю модель. Spark доступний лише в Codex.
</Warning>
</Tab>
<Tab title="Підписка Codex">
**Найкраще для:** використання вашої підписки ChatGPT/Codex замість окремого API-ключа. Codex cloud потребує входу через ChatGPT.
<Tab title="Codex subscription">
**Найкраще підходить для:** використання вашої підписки ChatGPT/Codex замість окремого API key. Codex cloud вимагає входу в ChatGPT.
<Steps>
<Step title="Запустіть Codex OAuth">
@ -109,87 +109,87 @@ x-i18n:
openclaw models auth login --provider openai-codex
```
Для headless або конфігурацій, несприятливих до callback, додайте `--device-code`, щоб увійти через потік device-code ChatGPT замість callback локального браузера:
Для headless або несумісних із callback налаштувань додайте `--device-code`, щоб увійти через потік коду пристрою ChatGPT замість callback браузера localhost:
```bash
openclaw models auth login --provider openai-codex --device-code
```
</Step>
<Step title="Установіть типову модель">
<Step title="Встановіть модель за замовчуванням">
```bash
openclaw config set agents.defaults.model.primary openai-codex/gpt-5.5
openclaw config set agents.defaults.model.primary openai/gpt-5.5
```
</Step>
<Step title="Перевірте, що модель доступна">
<Step title="Переконайтеся, що модель доступна">
```bash
openclaw models list --provider openai-codex
```
</Step>
</Steps>
### Зведення маршрутів
### Підсумок маршруту
| Посилання на модель | Маршрут | Автентифікація |
| Model ref | Маршрут | Автентифікація |
|-----------|-------|------|
| `openai-codex/gpt-5.5` | ChatGPT/Codex OAuth | Вхід у Codex |
| `openai-codex/gpt-5.3-codex-spark` | ChatGPT/Codex OAuth | Вхід у Codex (залежить від entitlement) |
| `openai/gpt-5.5` | OAuth ChatGPT/Codex | вхід Codex |
| `openai/gpt-5.3-codex-spark` | OAuth ChatGPT/Codex | вхід Codex (залежить від entitlement) |
<Note>
Цей маршрут навмисно відокремлений від `openai/gpt-5.5`. Використовуйте `openai/*` з API-ключем для прямого доступу до Platform, а `openai-codex/*` — для доступу через підписку Codex.
Посилання на моделі `openai-codex/*` і `codex/*` — це застарілі псевдоніми сумісності. Для команд автентифікації/профілю продовжуйте використовувати ідентифікатор постачальника `openai-codex`.
</Note>
### Приклад конфігурації
```json5
{
agents: { defaults: { model: { primary: "openai-codex/gpt-5.5" } } },
agents: { defaults: { model: { primary: "openai/gpt-5.5" } } },
}
```
<Note>
Onboarding більше не імпортує матеріали OAuth із `~/.codex`. Увійдіть через browser OAuth (типово) або через потік device-code вище — OpenClaw керує отриманими обліковими даними у власному сховищі автентифікації агента.
Онбординг більше не імпортує матеріали OAuth з `~/.codex`. Увійдіть через OAuth у браузері (типово) або через потік коду пристрою вище — OpenClaw керує отриманими обліковими даними у власному сховищі автентифікації агента.
</Note>
### Обмеження вікна контексту
OpenClaw розглядає метадані моделі та обмеження контексту під час виконання як окремі значення.
Для `openai-codex/gpt-5.5`:
Для `openai/gpt-5.5` через Codex OAuth:
- Нативне `contextWindow`: `1000000`
- Типове обмеження `contextTokens` під час виконання: `272000`
- Власне `contextWindow`: `1000000`
- Типове обмеження `contextTokens` під час виконання: `272000`
Менше типове обмеження на практиці дає кращі характеристики затримки та якості. Перевизначте його через `contextTokens`:
Менше типове обмеження на практиці має кращі характеристики затримки та якості. Перевизначте його за допомогою `contextTokens`:
```json5
{
models: {
providers: {
"openai-codex": {
models: [{ id: "gpt-5.5", contextTokens: 160000 }],
},
},
```json5
{
models: {
providers: {
"openai-codex": {
models: [{ id: "gpt-5.5", contextTokens: 160000 }],
},
}
```
},
},
}
```
<Note>
Використовуйте `contextWindow`, щоб оголосити нативні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту під час виконання.
</Note>
<Note>
Використовуйте `contextWindow`, щоб оголосити власні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту під час виконання.
</Note>
</Tab>
</Tabs>
## Генерація зображень
Убудований Plugin `openai` реєструє генерацію зображень через інструмент `image_generate`.
Вбудований Plugin `openai` реєструє генерацію зображень через інструмент `image_generate`.
| Можливість | Значення |
| ------------------------ | ---------------------------------- |
| Типова модель | `openai/gpt-image-2` |
| Макс. зображень на запит | 4 |
| Режим редагування | Увімкнено (до 5 еталонних зображень) |
| Перевизначення розміру | Підтримується, включно з розмірами 2K/4K |
| Можливість | Значення |
| ------------------------- | ---------------------------------- |
| Модель за замовчуванням | `openai/gpt-image-2` |
| Макс. кількість зображень на запит | 4 |
| Режим редагування | Увімкнено (до 5 еталонних зображень) |
| Перевизначення розміру | Підтримується, зокрема розміри 2K/4K |
| Співвідношення сторін / роздільна здатність | Не передається до OpenAI Images API |
```json5
@ -203,35 +203,33 @@ x-i18n:
```
<Note>
Див. [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку резервування.
Див. [Генерація зображень](/uk/tools/image-generation) щодо спільних параметрів інструмента, вибору постачальника та поведінки резервного перемикання.
</Note>
`gpt-image-2` є типовим як для генерації зображень з тексту OpenAI, так і для
редагування зображень. `gpt-image-1` залишається доступною як явне перевизначення моделі, але нові
робочі процеси OpenAI для зображень мають використовувати `openai/gpt-image-2`.
`gpt-image-2` є типовим значенням як для генерації зображень із тексту OpenAI, так і для редагування зображень. `gpt-image-1` і далі можна використовувати як явне перевизначення моделі, але в нових робочих процесах зображень OpenAI слід використовувати `openai/gpt-image-2`.
Згенерувати:
Генерування:
```
/tool image_generate model=openai/gpt-image-2 prompt="A polished launch poster for OpenClaw on 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="Preserve the object shape, change the material to translucent glass" 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`.
Вбудований Plugin `openai` реєструє генерацію відео через інструмент `video_generate`.
| Можливість | Значення |
| ---------------- | --------------------------------------------------------------------------------- |
| Типова модель | `openai/sora-2` |
| Режими | Текст у відео, зображення у відео, редагування одного відео |
| Еталонні входи | 1 зображення або 1 відео |
| Перевизначення розміру | Підтримується |
| Можливість | Значення |
| ---------------- | ----------------------------------------------------------------------------------- |
| Модель за замовчуванням | `openai/sora-2` |
| Режими | Текст у відео, зображення у відео, редагування одного відео |
| Еталонні вхідні дані | 1 зображення або 1 відео |
| Перевизначення розміру | Підтримується |
| Інші перевизначення | `aspectRatio`, `resolution`, `audio`, `watermark` ігноруються з попередженням інструмента |
```json5
@ -245,25 +243,25 @@ x-i18n:
```
<Note>
Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку резервування.
Див. [Генерація відео](/uk/tools/video-generation) щодо спільних параметрів інструмента, вибору постачальника та поведінки резервного перемикання.
</Note>
## Внесок prompt для GPT-5
## Внесок у промпт GPT-5
OpenClaw додає спільний внесок у prompt для запусків сімейства GPT-5 у різних провайдерів. Він застосовується за id моделі, тому `openai/gpt-5.5`, `openai-codex/gpt-5.5`, `openrouter/openai/gpt-5.5`, `opencode/gpt-5.5` та інші сумісні посилання GPT-5 отримують той самий оверлей. Старіші моделі GPT-4.x — ні.
OpenClaw додає спільний внесок у промпт GPT-5 для запусків сімейства GPT-5 у різних постачальників. Він застосовується за ідентифікатором моделі, тому `openai/gpt-5.5`, `openrouter/openai/gpt-5.5`, `opencode/gpt-5.5` та інші сумісні посилання GPT-5 отримують той самий оверлей. Старіші моделі GPT-4.x — ні.
Убудований провайдер рідного harness Codex (`codex/*`) використовує ту саму поведінку GPT-5 і оверлей Heartbeat через інструкції розробника app-server Codex, тож сесії `codex/gpt-5.x` зберігають ту саму послідовність виконання та вказівки щодо проактивного Heartbeat, навіть попри те, що рештою prompt harness керує Codex.
Вбудований нативний harness Codex використовує ту саму поведінку GPT-5 і оверлей Heartbeat через інструкції розробника Codex app-server, тому сеанси `openai/gpt-5.x`, примусово спрямовані через `embeddedHarness.runtime: "codex"`, зберігають ту саму послідовність виконання та проактивні вказівки Heartbeat, навіть якщо рештою промпта harness керує Codex.
Внесок GPT-5 додає контракт поведінки з тегами для збереження persona, безпеки виконання, дисципліни інструментів, форми виводу, перевірок завершення та верифікації. Специфічна для каналу поведінка відповідей і тихих повідомлень залишається у спільному системному prompt OpenClaw і політиці вихідної доставки. Вказівки GPT-5 завжди ввімкнені для відповідних моделей. Шар дружнього стилю взаємодії є окремим і налаштовуваним.
Внесок GPT-5 додає тегований контракт поведінки для збереження персони, безпеки виконання, дисципліни інструментів, форми виводу, перевірок завершення та верифікації. Специфічна для каналу поведінка відповіді та тихих повідомлень залишається у спільному системному промпті OpenClaw і політиці вихідної доставки. Вказівки GPT-5 завжди увімкнені для відповідних моделей. Шар дружнього стилю взаємодії є окремим і налаштовуваним.
| Значення | Ефект |
| ---------------------- | ------------------------------------------ |
| `"friendly"` (типово) | Увімкнути шар дружнього стилю взаємодії |
| `"on"` | Псевдонім для `"friendly"` |
| `"off"` | Вимкнути лише шар дружнього стилю |
| Значення | Ефект |
| --------------------- | --------------------------------------------- |
| `"friendly"` (типово) | Увімкнути шар дружнього стилю взаємодії |
| `"on"` | Псевдонім для `"friendly"` |
| `"off"` | Вимкнути лише шар дружнього стилю |
<Tabs>
<Tab title="Конфігурація">
<Tab title="Config">
```json5
{
agents: {
@ -288,23 +286,23 @@ OpenClaw додає спільний внесок у prompt для запуск
</Tip>
<Note>
Застаріле `plugins.entries.openai.config.personality` усе ще читається як резервний варіант сумісності, коли спільне налаштування `agents.defaults.promptOverlays.gpt5.personality` не задано.
Застаріле `plugins.entries.openai.config.personality` усе ще зчитується як резервний варіант сумісності, коли спільне налаштування `agents.defaults.promptOverlays.gpt5.personality` не задано.
</Note>
## Голос і мовлення
<AccordionGroup>
<Accordion title="Синтез мовлення (TTS)">
Убудований Plugin `openai` реєструє синтез мовлення для поверхні `messages.tts`.
Вбудований Plugin `openai` реєструє синтез мовлення для поверхні `messages.tts`.
| Параметр | Шлях конфігурації | Типове значення |
| Налаштування | Шлях конфігурації | Типове значення |
|---------|------------|---------|
| Модель | `messages.tts.providers.openai.model` | `gpt-4o-mini-tts` |
| Голос | `messages.tts.providers.openai.voice` | `coral` |
| Швидкість | `messages.tts.providers.openai.speed` | (не задано) |
| Інструкції | `messages.tts.providers.openai.instructions` | (не задано, лише `gpt-4o-mini-tts`) |
| Формат | `messages.tts.providers.openai.responseFormat` | `opus` для голосових нотаток, `mp3` для файлів |
| API-ключ | `messages.tts.providers.openai.apiKey` | Використовує резервне значення `OPENAI_API_KEY` |
| Формат | `messages.tts.providers.openai.responseFormat` | `opus` для голосових повідомлень, `mp3` для файлів |
| API key | `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`.
@ -322,23 +320,23 @@ OpenClaw додає спільний внесок у prompt для запуск
```
<Note>
Установіть `OPENAI_TTS_BASE_URL`, щоб перевизначити базову URL-адресу TTS, не впливаючи на кінцеву точку chat API.
Установіть `OPENAI_TTS_BASE_URL`, щоб перевизначити базовий URL TTS без впливу на кінцеву точку API чату.
</Note>
</Accordion>
<Accordion title="Speech-to-text">
Убудований Plugin `openai` реєструє пакетне speech-to-text через
поверхню транскрипції розуміння медіа OpenClaw.
<Accordion title="Перетворення мовлення в текст">
Вбудований Plugin `openai` реєструє пакетне перетворення мовлення в текст через
поверхню транскрибування розуміння медіа в OpenClaw.
- Типова модель: `gpt-4o-transcribe`
- Ендпоїнт: OpenAI REST `/v1/audio/transcriptions`
- Вхідний шлях: multipart-вивантаження аудіофайла
- Підтримується в OpenClaw всюди, де транскрипція вхідного аудіо використовує
`tools.media.audio`, включно із сегментами голосових каналів Discord і
аудіовкладеннями каналів
- Модель за замовчуванням: `gpt-4o-transcribe`
- Кінцева точка: OpenAI REST `/v1/audio/transcriptions`
- Вхідний шлях: multipart-завантаження аудіофайлу
- Підтримується в OpenClaw скрізь, де транскрибування вхідного аудіо використовує
`tools.media.audio`, зокрема сегменти голосового каналу Discord і аудіовкладення
каналу
Щоб примусово використовувати OpenAI для транскрипції вхідного аудіо:
Щоб примусово використовувати OpenAI для транскрибування вхідного аудіо:
```json5
{
@ -358,72 +356,73 @@ OpenClaw додає спільний внесок у prompt для запуск
}
```
Підказки мови й prompt передаються до OpenAI, коли їх задано через
спільну конфігурацію аудіомедіа або запит транскрипції для конкретного виклику.
Підказки мови та промпта передаються до OpenAI, коли їх указано в
спільній конфігурації аудіомедіа або в запиті транскрибування для конкретного виклику.
</Accordion>
<Accordion title="Транскрипція в реальному часі">
Убудований Plugin `openai` реєструє транскрипцію в реальному часі для Plugin Voice Call.
<Accordion title="Транскрибування в реальному часі">
Вбудований Plugin `openai` реєструє транскрибування в реальному часі для Plugin Voice Call.
| Параметр | Шлях конфігурації | Типове значення |
| Налаштування | Шлях конфігурації | Типове значення |
|---------|------------|---------|
| Модель | `plugins.entries.voice-call.config.streaming.providers.openai.model` | `gpt-4o-transcribe` |
| Мова | `...openai.language` | (не задано) |
| Prompt | `...openai.prompt` | (не задано) |
| Промпт | `...openai.prompt` | (не задано) |
| Тривалість тиші | `...openai.silenceDurationMs` | `800` |
| Поріг VAD | `...openai.vadThreshold` | `0.5` |
| API-ключ | `...openai.apiKey` | Використовує резервне значення `OPENAI_API_KEY` |
| API key | `...openai.apiKey` | Повертається до `OPENAI_API_KEY` |
<Note>
Використовує WebSocket-з’єднання з `wss://api.openai.com/v1/realtime` з аудіо G.711 u-law (`g711_ulaw` / `audio/pcmu`). Цей streaming provider призначений для шляху транскрипції в реальному часі Plugin Voice Call; голос у Discord наразі записує короткі сегменти й натомість використовує пакетний шлях транскрипції `tools.media.audio`.
Використовує WebSocket-з’єднання з `wss://api.openai.com/v1/realtime` з аудіо G.711 u-law (`g711_ulaw` / `audio/pcmu`). Цей потоковий постачальник призначений для шляху транскрибування в реальному часі Plugin Voice Call; голос у Discord наразі записує короткі сегменти й натомість використовує пакетний шлях транскрибування `tools.media.audio`.
</Note>
</Accordion>
<Accordion title="Голос у реальному часі">
Убудований Plugin `openai` реєструє голос у реальному часі для Plugin Voice Call.
Вбудований Plugin `openai` реєструє голос у реальному часі для Plugin Voice Call.
| Параметр | Шлях конфігурації | Типове значення |
| Налаштування | Шлях конфігурації | Типове значення |
|---------|------------|---------|
| Модель | `plugins.entries.voice-call.config.realtime.providers.openai.model` | `gpt-realtime-1.5` |
| Голос | `...openai.voice` | `alloy` |
| Temperature | `...openai.temperature` | `0.8` |
| Поріг VAD | `...openai.vadThreshold` | `0.5` |
| Тривалість тиші | `...openai.silenceDurationMs` | `500` |
| API-ключ | `...openai.apiKey` | Використовує резервне значення `OPENAI_API_KEY` |
| API key | `...openai.apiKey` | Повертається до `OPENAI_API_KEY` |
<Note>
Підтримує Azure OpenAI через ключі конфігурації `azureEndpoint` і `azureDeployment`. Підтримує двоспрямований виклик інструментів. Використовує аудіоформат G.711 u-law.
Підтримує Azure OpenAI через ключі конфігурації `azureEndpoint` і `azureDeployment`. Підтримує двобічний виклик інструментів. Використовує формат аудіо G.711 u-law.
</Note>
</Accordion>
</AccordionGroup>
## Ендпоїнти Azure OpenAI
## Кінцеві точки Azure OpenAI
Убудований провайдер `openai` може спрямовувати генерацію зображень до ресурсу Azure OpenAI
шляхом перевизначення базової URL-адреси. На шляху генерації зображень OpenClaw
автоматично визначає імена хостів Azure в `models.providers.openai.baseUrl` і переключається на
формат запиту Azure.
Вбудований постачальник `openai` може націлюватися на ресурс Azure OpenAI для
генерації зображень шляхом перевизначення базового URL. На шляху генерації
зображень OpenClaw визначає імена хостів Azure у `models.providers.openai.baseUrl` і автоматично перемикається на
форму запиту Azure.
<Note>
Голос у реальному часі використовує окремий шлях конфігурації
(`plugins.entries.voice-call.config.realtime.providers.openai.azureEndpoint`)
і не залежить від `models.providers.openai.baseUrl`. Див. акордеон **Голос
у реальному часі** в розділі [Голос і мовлення](#voice-and-speech) для налаштувань Azure.
у реальному часі** в розділі [Голос і мовлення](#voice-and-speech) щодо його налаштувань
Azure.
</Note>
Використовуйте Azure OpenAI, коли:
- У вас уже є підписка, квота або корпоративна угода Azure OpenAI
- У вас уже є підписка Azure OpenAI, квота або корпоративна угода
- Вам потрібне регіональне зберігання даних або засоби відповідності вимогам, які надає Azure
- Ви хочете зберігати трафік у межах наявного тенанту Azure
- Ви хочете зберегти трафік у межах наявного tenancy Azure
### Конфігурація
Для генерації зображень через Azure із використанням убудованого провайдера `openai` вкажіть
`models.providers.openai.baseUrl` на ваш ресурс Azure і встановіть `apiKey` у
Для генерації зображень Azure через вбудованого постачальника `openai` вкажіть
`models.providers.openai.baseUrl` на ваш ресурс Azure і встановіть `apiKey` як
ключ Azure OpenAI (а не ключ OpenAI Platform):
```json5
@ -439,7 +438,8 @@ OpenClaw додає спільний внесок у prompt для запуск
}
```
OpenClaw розпізнає такі суфікси хостів Azure для маршруту генерації зображень Azure:
OpenClaw розпізнає такі суфікси хостів Azure для маршруту генерації
зображень Azure:
- `*.openai.azure.com`
- `*.services.ai.azure.com`
@ -451,13 +451,14 @@ OpenClaw розпізнає такі суфікси хостів Azure для м
- Використовує шляхи в межах deployment (`/openai/deployments/{deployment}/...`)
- Додає `?api-version=...` до кожного запиту
Інші base URL (публічний OpenAI, сумісні з OpenAI proxy) зберігають стандартний
формат запиту зображень OpenAI.
Для інших базових URL (публічний OpenAI, сумісні з OpenAI проксі) зберігається стандартна
форма запиту зображень OpenAI.
<Note>
Маршрутизація Azure для шляху генерації зображень провайдера `openai` потребує
OpenClaw 2026.4.22 або новішої версії. Попередні версії розглядають будь-який нетиповий
`openai.baseUrl` як публічний ендпоїнт OpenAI і завершуються помилкою при роботі з deployment зображень Azure.
Маршрутизація Azure для шляху генерації зображень постачальника `openai`
вимагає OpenClaw 2026.4.22 або новішої версії. Старіші версії обробляють будь-який власний
`openai.baseUrl` як публічну кінцеву точку OpenAI і не працюватимуть із deployment
зображень Azure.
</Note>
### Версія API
@ -469,63 +470,63 @@ OpenClaw 2026.4.22 або новішої версії. Попередні вер
export AZURE_OPENAI_API_VERSION="2024-12-01-preview"
```
Типове значення — `2024-12-01-preview`, якщо змінну не встановлено.
Типове значення — `2024-12-01-preview`, коли змінна не задана.
### Назви моделей — це назви deployment
### Імена моделей — це імена deployment
Azure OpenAI прив’язує моделі до deployment. Для запитів генерації зображень Azure,
маршрутизованих через убудований провайдер `openai`, поле `model` в OpenClaw
має бути **назвою deployment Azure**, яку ви налаштували в порталі Azure, а не
публічним id моделі OpenAI.
маршрутизованих через вбудованого постачальника `openai`, поле `model` в OpenClaw
має бути **іменем deployment Azure**, яке ви налаштували в порталі Azure, а не
публічним ідентифікатором моделі OpenAI.
Якщо ви створите deployment з назвою `gpt-image-2-prod`, який обслуговує `gpt-image-2`:
Якщо ви створите deployment з назвою `gpt-image-2-prod`, який обслуговує `gpt-image-2`:
```
/tool image_generate model=openai/gpt-image-2-prod prompt="A clean poster" size=1024x1024 count=1
```
```
/tool image_generate model=openai/gpt-image-2-prod prompt="Чистий постер" size=1024x1024 count=1
```
Те саме правило назв deployment застосовується до викликів генерації зображень,
маршрутизованих через убудований провайдер `openai`.
Те саме правило імен deployment застосовується до викликів генерації зображень,
маршрутизованих через вбудованого постачальника `openai`.
### Регіональна доступність
### Регіональна доступність
Генерація зображень Azure наразі доступна лише в частині регіонів
(наприклад, `eastus2`, `swedencentral`, `polandcentral`, `westus3`,
`uaenorth`). Перевірте актуальний список регіонів Microsoft перед створенням
deployment і підтвердьте, що конкретна модель доступна у вашому регіоні.
Генерація зображень Azure наразі доступна лише в підмножині регіонів
(наприклад, `eastus2`, `swedencentral`, `polandcentral`, `westus3`,
`uaenorth`). Перевірте актуальний список регіонів Microsoft перед створенням
deployment і підтвердьте, що конкретна модель пропонується у вашому регіоні.
### Відмінності параметрів
### Відмінності параметрів
Azure OpenAI і публічний OpenAI не завжди приймають однакові параметри зображень.
Azure може відхиляти параметри, які дозволяє публічний OpenAI (наприклад, певні
значення `background` у `gpt-image-2`), або надавати їх лише для певних версій
моделі. Ці відмінності походять від Azure і базової моделі, а не від
OpenClaw. Якщо запит Azure завершується помилкою валідації, перевірте
набір параметрів, підтримуваний вашим конкретним deployment і версією API, у
порталі Azure.
Azure OpenAI і публічний OpenAI не завжди приймають однакові параметри зображень.
Azure може відхиляти параметри, які дозволяє публічний OpenAI (наприклад, певні
значення `background` для `gpt-image-2`) або надавати їх лише в конкретних версіях
моделі. Ці відмінності походять від Azure і базової моделі, а не від
OpenClaw. Якщо запит Azure завершується помилкою валідації, перевірте
набір параметрів, які підтримуються вашим конкретним deployment і версією API в
порталі Azure.
<Note>
Azure OpenAI використовує нативний транспорт і поведінку сумісності, але не отримує
прихованих заголовків attribution OpenClaw — див. акордеон **Нативні vs сумісні з OpenAI
маршрути** у розділі [Розширена конфігурація](#advanced-configuration).
<Note>
Azure OpenAI використовує нативний транспорт і поведінку compat, але не отримує
приховані заголовки атрибуції OpenClaw — див. акордеон **Нативні та OpenAI-compatible
маршрути** в розділі [Розширена конфігурація](#advanced-configuration).
Для трафіку chat або Responses в Azure (поза генерацією зображень) використовуйте
потік onboarding або окрему конфігурацію провайдера Azure — одного лише
`openai.baseUrl` недостатньо, щоб підхопити формат API/автентифікації Azure. Існує окремий
провайдер `azure-openai-responses/*`; див.
акордеон Server-side Compaction нижче.
</Note>
Для трафіку чату або Responses на Azure (поза генерацією зображень) використовуйте
потік онбордингу або окрему конфігурацію постачальника Azure — лише `openai.baseUrl`
не підхоплює форму API/автентифікації Azure. Існує окремий постачальник
`azure-openai-responses/*`; див.
акордеон Server-side compaction нижче.
</Note>
## Розширена конфігурація
## Розширена конфігурація
<AccordionGroup>
<AccordionGroup>
<Accordion title="Транспорт (WebSocket vs SSE)">
OpenClaw використовує WebSocket-first із резервним переходом на SSE (`"auto"`) як для `openai/*`, так і для `openai-codex/*`.
У режимі `"auto"` OpenClaw:
- Повторює одну ранню помилку WebSocket перед переходом на SSE
- Після помилки позначає WebSocket як деградований приблизно на 60 секунд і використовує SSE під час охолодження
- Додає стабільні заголовки ідентичності сесії та ходу для повторів і повторних з’єднань
- Додає стабільні заголовки ідентичності сеансу й ходу для повторних спроб і повторних підключень
- Нормалізує лічильники використання (`input_tokens` / `prompt_tokens`) між варіантами транспорту
| Значення | Поведінка |
@ -539,7 +540,7 @@ Azure OpenAI прив’язує моделі до deployment. Для запит
agents: {
defaults: {
models: {
"openai-codex/gpt-5.5": {
"openai/gpt-5.5": {
params: { transport: "auto" },
},
},
@ -548,17 +549,17 @@ Azure OpenAI прив’язує моделі до deployment. Для запит
}
```
Пов’язана документація OpenAI:
Пов’язані документи OpenAI:
- [Realtime API with WebSocket](https://platform.openai.com/docs/guides/realtime-websocket)
- [Streaming API responses (SSE)](https://platform.openai.com/docs/guides/streaming-responses)
</Accordion>
<Accordion title=рогрів WebSocket">
OpenClaw типово вмикає прогрів WebSocket для `openai/*`, щоб зменшити затримку першого ходу.
<Accordion title=опередній прогрів WebSocket">
OpenClaw типово вмикає попередній прогрів WebSocket для `openai/*`, щоб зменшити затримку першого ходу.
```json5
// Disable warm-up
// Вимкнути попередній прогрів
{
agents: {
defaults: {
@ -575,12 +576,12 @@ Azure OpenAI прив’язує моделі до deployment. Для запит
</Accordion>
<Accordion title="Швидкий режим">
OpenClaw надає спільний перемикач швидкого режиму як для `openai/*`, так і для `openai-codex/*`:
OpenClaw надає спільний перемикач швидкого режиму для `openai/*`:
- **Chat/UI:** `/fast status|on|off`
- **Чат/UI:** `/fast status|on|off`
- **Конфігурація:** `agents.defaults.models["<provider>/<model>"].params.fastMode`
Коли цю функцію ввімкнено, OpenClaw зіставляє швидкий режим із пріоритетною обробкою OpenAI (`service_tier = "priority"`). Наявні значення `service_tier` зберігаються, а швидкий режим не переписує `reasoning` або `text.verbosity`.
Коли ввімкнено, OpenClaw відображає швидкий режим у пріоритетну обробку OpenAI (`service_tier = "priority"`). Наявні значення `service_tier` зберігаються, і швидкий режим не переписує `reasoning` або `text.verbosity`.
```json5
{
@ -588,7 +589,6 @@ Azure OpenAI прив’язує моделі до deployment. Для запит
defaults: {
models: {
"openai/gpt-5.5": { params: { fastMode: true } },
"openai-codex/gpt-5.5": { params: { fastMode: true } },
},
},
},
@ -596,7 +596,7 @@ Azure OpenAI прив’язує моделі до deployment. Для запит
```
<Note>
Перевизначення сесії мають пріоритет над конфігурацією. Очищення перевизначення сесії в UI Sessions повертає сесію до налаштованого типового значення.
Перевизначення сеансу мають пріоритет над конфігурацією. Очищення перевизначення сеансу в UI Sessions повертає сеанс до налаштованого типового значення.
</Note>
</Accordion>
@ -610,7 +610,6 @@ Azure OpenAI прив’язує моделі до deployment. Для запит
defaults: {
models: {
"openai/gpt-5.5": { params: { serviceTier: "priority" } },
"openai-codex/gpt-5.5": { params: { serviceTier: "priority" } },
},
},
},
@ -620,7 +619,7 @@ Azure OpenAI прив’язує моделі до deployment. Для запит
Підтримувані значення: `auto`, `default`, `flex`, `priority`.
<Warning>
`serviceTier` передається лише до нативних ендпоїнтів OpenAI (`api.openai.com`) і нативних ендпоїнтів Codex (`chatgpt.com/backend-api`). Якщо ви маршрутизуєте будь-який із цих провайдерів через proxy, OpenClaw залишає `service_tier` без змін.
`serviceTier` передається лише до нативних кінцевих точок OpenAI (`api.openai.com`) і нативних кінцевих точок Codex (`chatgpt.com/backend-api`). Якщо ви маршрутизуєте будь-якого з цих постачальників через проксі, OpenClaw залишає `service_tier` без змін.
</Warning>
</Accordion>
@ -628,13 +627,13 @@ Azure OpenAI прив’язує моделі до deployment. Для запит
<Accordion title="Server-side Compaction (Responses API)">
Для прямих моделей OpenAI Responses (`openai/*` на `api.openai.com`) OpenClaw автоматично вмикає Server-side Compaction:
- Примусово встановлює `store: true` (якщо сумісність моделі не задає `supportsStore: false`)
- Впроваджує `context_management: [{ type: "compaction", compact_threshold: ... }]`
- Типове значення `compact_threshold`: 70% від `contextWindow` (або `80000`, якщо значення недоступне)
- Примусово встановлює `store: true` (якщо compat моделі не задає `supportsStore: false`)
- Вставляє `context_management: [{ type: "compaction", compact_threshold: ... }]`
- Типове `compact_threshold`: 70% від `contextWindow` (або `80000`, якщо він недоступний)
<Tabs>
<Tab title="Увімкнути явно">
Корисно для сумісних ендпоїнтів на кшталт Azure OpenAI Responses:
<Tab title="Явно ввімкнути">
Корисно для сумісних кінцевих точок, як-от Azure OpenAI Responses:
```json5
{
@ -686,13 +685,13 @@ Azure OpenAI прив’язує моделі до deployment. Для запит
</Tabs>
<Note>
`responsesServerCompaction` керує лише впровадженням `context_management`. Прямі моделі OpenAI Responses усе одно примусово встановлюють `store: true`, якщо compat не задає `supportsStore: false`.
`responsesServerCompaction` керує лише вставленням `context_management`. Прямі моделі OpenAI Responses і далі примусово встановлюють `store: true`, якщо compat не задає `supportsStore: false`.
</Note>
</Accordion>
<Accordion title="Суворий агентний режим GPT">
Для запусків сімейства GPT-5 на `openai/*` і `openai-codex/*` OpenClaw може використовувати суворіший вбудований контракт виконання:
Для запусків сімейства GPT-5 на `openai/*` OpenClaw може використовувати суворіший вбудований контракт виконання:
```json5
{
@ -705,49 +704,49 @@ Azure OpenAI прив’язує моделі до deployment. Для запит
```
З `strict-agentic` OpenClaw:
- Більше не вважає хід лише з планом успішним прогресом, якщо доступна дія інструмента
- Більше не вважає хід лише з планом успішним прогресом, коли доступна дія інструмента
- Повторює хід із вказівкою діяти негайно
- Автоматично вмикає `update_plan` для суттєвої роботи
- Показує явний заблокований стан, якщо модель продовжує планувати без дії
- Показує явний стан блокування, якщо модель продовжує планувати без дії
<Note>
Поширюється лише на запуски сімейства GPT-5 OpenAI і Codex. Інші провайдери та старіші сімейства моделей зберігають типову поведінку.
Обмежено лише запусками сімейства GPT-5 OpenAI і Codex. Інші постачальники та старіші сімейства моделей зберігають типову поведінку.
</Note>
</Accordion>
<Accordion title="Нативні vs сумісні з OpenAI маршрути">
OpenClaw обробляє прямі ендпоїнти OpenAI, Codex і Azure OpenAI інакше, ніж загальні сумісні з OpenAI proxy `/v1`:
<Accordion title="Нативні та OpenAI-compatible маршрути">
OpenClaw по-різному обробляє прямі кінцеві точки OpenAI, Codex і Azure OpenAI та загальні OpenAI-compatible проксі `/v1`:
**Нативні маршрути** (`openai/*`, `openai-codex/*`, Azure OpenAI):
- Зберігають `reasoning: { effort: "none" }` лише для моделей, які підтримують значення OpenAI `none`
- Не надсилають вимкнений reasoning для моделей або proxy, які відхиляють `reasoning.effort: "none"`
- Типово використовують строгий режим схем інструментів
- Додають приховані заголовки attribution лише на перевірених нативних хостах
- Зберігають форматування запитів, специфічне для OpenAI (`service_tier`, `store`, compat reasoning, підказки prompt-cache)
**Нативні маршрути** (`openai/*`, Azure OpenAI):
- Зберігають `reasoning: { effort: "none" }` лише для моделей, які підтримують OpenAI effort `none`
- Пропускають вимкнене reasoning для моделей або проксі, які відхиляють `reasoning.effort: "none"`
- Типово встановлюють strict mode для схем інструментів
- Додають приховані заголовки атрибуції лише на перевірених нативних хостах
- Зберігають формування запитів, специфічне для OpenAI (`service_tier`, `store`, compat reasoning, підказки кешу промпта)
**Маршрути proxy/compatible:**
- Використовують м’якшу поведінку compat
- Не примушують до строгих схем інструментів або заголовків лише для нативного режиму
- Не примушують strict mode для схем інструментів або нативні заголовки
Azure OpenAI використовує нативний транспорт і поведінку compat, але не отримує прихованих заголовків attribution.
Azure OpenAI використовує нативний транспорт і поведінку compat, але не отримує прихованих заголовків атрибуції.
</Accordion>
</AccordionGroup>
## Пов’язане
## Пов’язано
<CardGroup cols={2}>
<Card title="Вибір моделі" href="/uk/concepts/model-providers" icon="layers">
Вибір провайдерів, посилань на моделі та поведінки резервування.
Вибір постачальників, посилань на моделі та поведінки резервного перемикання.
</Card>
<Card title="Генерація зображень" href="/uk/tools/image-generation" icon="image">
Спільні параметри інструмента зображень і вибір провайдера.
Спільні параметри інструмента зображень і вибір постачальника.
</Card>
<Card title="Генерація відео" href="/uk/tools/video-generation" icon="video">
Спільні параметри інструмента відео та вибір провайдера.
Спільні параметри інструмента відео і вибір постачальника.
</Card>
<Card title="OAuth і автентифікація" href="/uk/gateway/authentication" icon="key">
Деталі автентифікації та правила повторного використання облікових даних.
Подробиці автентифікації та правила повторного використання облікових даних.
</Card>
</CardGroup>

View File

@ -1,16 +1,16 @@
---
read_when:
- Пошук конкретного кроку або прапорця онбордингу
- Автоматизація онбордингу в неінтерактивному режимі
- Пошук конкретного кроку онбордингу або прапорця
- Автоматизація онбордингу за допомогою неінтерактивного режиму
- Налагодження поведінки онбордингу
sidebarTitle: Onboarding Reference
summary: 'Повний довідник з онбордингу CLI: кожен крок, прапорець і поле конфігурації'
summary: 'Повний довідник для онбордингу CLI: кожен крок, прапорець і поле конфігурації'
title: Довідник з онбордингу
x-i18n:
generated_at: "2026-04-23T19:27:11Z"
generated_at: "2026-04-23T20:06:22Z"
model: gpt-5.4
provider: openai
source_hash: 136fd90adfaaa9f0481168642e5efadb4f9ee67def0ac1bb40433d178f791474
source_hash: 7b3874415ca6c5d948190655859cbaacc8d880257e79d4e3089ea7334eff7d74
source_path: reference/wizard.md
workflow: 15
---
@ -18,139 +18,139 @@ x-i18n:
# Довідник з онбордингу
Це повний довідник для `openclaw onboard`.
Огляд на високому рівні див. у [Onboarding (CLI)](/uk/start/wizard).
Для огляду на високому рівні див. [Онбординг (CLI)](/uk/start/wizard).
## Подробиці потоку (локальний режим)
## Деталі потоку (локальний режим)
<Steps>
<Step title="Виявлення наявної конфігурації">
- Якщо `~/.openclaw/openclaw.json` існує, виберіть **Залишити / Змінити / Скинути**.
- Якщо `~/.openclaw/openclaw.json` існує, виберіть **Зберегти / Змінити / Скинути**.
- Повторний запуск онбордингу **не** стирає нічого, якщо ви явно не виберете **Скинути**
(або не передасте `--reset`).
- CLI `--reset` типово використовує `config+creds+sessions`; використовуйте `--reset-scope full`,
щоб також видалити workspace.
- Якщо конфігурація невалідна або містить застарілі ключі, майстер зупиняється і просить
вас перед продовженням виконати `openclaw doctor`.
- Скидання використовує `trash` (ніколи не `rm`) і пропонує такі області:
- Для CLI `--reset` типово використовує `config+creds+sessions`; використайте `--reset-scope full`,
щоб також видалити робочий простір.
- Якщо конфігурація недійсна або містить застарілі ключі, майстер зупиняється і просить
вас запустити `openclaw doctor` перед продовженням.
- Скидання використовує `trash` (ніколи не `rm`) і пропонує області:
- Лише конфігурація
- Конфігурація + облікові дані + сесії
- Повне скидання (також видаляє workspace)
- Повне скидання (також видаляє робочий простір)
</Step>
<Step title="Модель/Auth">
- **Ключ API Anthropic**: використовує `ANTHROPIC_API_KEY`, якщо він є, або запитує ключ, а потім зберігає його для використання демоном.
- **Ключ API Anthropic**: пріоритетний варіант Anthropic assistant в onboarding/configure.
- **Anthropic setup-token**: усе ще доступний в onboarding/configure, хоча тепер OpenClaw надає перевагу повторному використанню Claude CLI, коли це можливо.
- **Підписка OpenAI Code (Codex) (OAuth)**: потік через браузер; вставте `code#state`.
- Встановлює `agents.defaults.model` у `openai-codex/gpt-5.5`, коли модель не задано або це `openai/*`.
- **Підписка OpenAI Code (Codex) (device pairing)**: потік парування через браузер із короткоживучим кодом пристрою.
- Встановлює `agents.defaults.model` у `openai-codex/gpt-5.5`, коли модель не задано або це `openai/*`.
- **Ключ API OpenAI**: використовує `OPENAI_API_KEY`, якщо він є, або запитує ключ, а потім зберігає його в профілях auth.
- Встановлює `agents.defaults.model` у `openai/gpt-5.5`, коли модель не задано, або це `openai/*`, або `openai-codex/*`.
- **Ключ API xAI (Grok)**: запитує `XAI_API_KEY` і налаштовує xAI як провайдера моделі.
- **OpenCode**: запитує `OPENCODE_API_KEY` (або `OPENCODE_ZEN_API_KEY`, отримайте його на https://opencode.ai/auth) і дає змогу вибрати каталог Zen або Go.
- **Ollama**: спочатку пропонує **Cloud + Local**, **Тільки Cloud** або **Тільки Local**. `Тільки Cloud` запитує `OLLAMA_API_KEY` і використовує `https://ollama.com`; режими з локальним хостом запитують базову URL-адресу Ollama, виявляють доступні моделі та автоматично завантажують вибрану локальну модель, коли це потрібно; `Cloud + Local` також перевіряє, чи виконано вхід на цьому хості Ollama для доступу до cloud.
<Step title="Модель/автентифікація">
- **Anthropic API key**: використовує `ANTHROPIC_API_KEY`, якщо він є, або запитує ключ, а потім зберігає його для використання демоном.
- **Anthropic API key**: бажаний вибір помічника Anthropic в onboarding/configure.
- **Anthropic setup-token**: усе ще доступний в onboarding/configure, хоча OpenClaw тепер надає перевагу повторному використанню Claude CLI, коли це можливо.
- **OpenAI Code (Codex) subscription (OAuth)**: потік через браузер; вставте `code#state`.
- Встановлює `agents.defaults.model` у `openai/gpt-5.5`, коли модель не задана або вже належить до сімейства OpenAI.
- **OpenAI Code (Codex) subscription (device pairing)**: потік спарювання в браузері з короткоживучим кодом пристрою.
- Встановлює `agents.defaults.model` у `openai/gpt-5.5`, коли модель не задана або вже належить до сімейства OpenAI.
- **OpenAI API key**: використовує `OPENAI_API_KEY`, якщо він є, або запитує ключ, а потім зберігає його в профілях автентифікації.
- Встановлює `agents.defaults.model` у `openai/gpt-5.5`, коли модель не задана, має вигляд `openai/*` або `openai-codex/*`.
- **xAI (Grok) API key**: запитує `XAI_API_KEY` і налаштовує xAI як провайдера моделей.
- **OpenCode**: запитує `OPENCODE_API_KEY` (або `OPENCODE_ZEN_API_KEY`, отримати можна на https://opencode.ai/auth) і дозволяє вибрати каталог Zen або Go.
- **Ollama**: спочатку пропонує **Cloud + Local**, **Cloud only** або **Local only**. `Cloud only` запитує `OLLAMA_API_KEY` і використовує `https://ollama.com`; режими з хостом запитують базову URL-адресу Ollama, виявляють доступні моделі та автоматично завантажують вибрану локальну модель за потреби; `Cloud + Local` також перевіряє, чи цей хост Ollama увійшов у систему для доступу до cloud.
- Докладніше: [Ollama](/uk/providers/ollama)
- **Ключ API**: зберігає ключ за вас.
- **API key**: зберігає ключ за вас.
- **Vercel AI Gateway (багатомодельний проксі)**: запитує `AI_GATEWAY_API_KEY`.
- Докладніше: [Vercel AI Gateway](/uk/providers/vercel-ai-gateway)
- **Cloudflare AI Gateway**: запитує Account ID, Gateway ID і `CLOUDFLARE_AI_GATEWAY_API_KEY`.
- Докладніше: [Cloudflare AI Gateway](/uk/providers/cloudflare-ai-gateway)
- **MiniMax**: конфігурація записується автоматично; типовий hosted-варіант — `MiniMax-M2.7`.
- **MiniMax**: конфігурація записується автоматично; hosted-варіант за замовчуванням`MiniMax-M2.7`.
Налаштування через API-ключ використовує `minimax/...`, а налаштування через OAuth використовує
`minimax-portal/...`.
- Докладніше: [MiniMax](/uk/providers/minimax)
- **StepFun**: конфігурація записується автоматично для StepFun standard або Step Plan на китайських або глобальних endpoint-ах.
- До standard наразі входить `step-3.5-flash`, а до Step Plan також входить `step-3.5-flash-2603`.
- **StepFun**: конфігурація автоматично записується для StepFun standard або Step Plan на китайських або глобальних endpoint.
- Standard наразі включає `step-3.5-flash`, а Step Plan також включає `step-3.5-flash-2603`.
- Докладніше: [StepFun](/uk/providers/stepfun)
- **Synthetic (сумісний з Anthropic)**: запитує `SYNTHETIC_API_KEY`.
- Докладніше: [Synthetic](/uk/providers/synthetic)
- **Moonshot (Kimi K2)**: конфігурація записується автоматично.
- **Kimi Coding**: конфігурація записується автоматично.
- Докладніше: [Moonshot AI (Kimi + Kimi Coding)](/uk/providers/moonshot)
- **Пропустити**: auth поки не налаштовано.
- Виберіть типову модель із виявлених варіантів (або введіть provider/model вручну). Для найкращої якості та нижчого ризику prompt injection обирайте найсильнішу доступну модель останнього покоління у вашому стеку provider-ів.
- Під час онбордингу виконується перевірка моделі та виводиться попередження, якщо налаштована модель невідома або для неї бракує auth.
- Режим зберігання API-ключів типово використовує текстові значення в auth-profile. Використовуйте `--secret-input-mode ref`, щоб натомість зберігати посилання на env (наприклад, `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`).
- Профілі auth зберігаються в `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (API-ключі + OAuth). `~/.openclaw/credentials/oauth.json` — це застаріле джерело лише для імпорту.
- **Пропустити**: автентифікацію поки що не налаштовано.
- Виберіть модель за замовчуванням із виявлених варіантів (або введіть provider/model вручну). Для найкращої якості та нижчого ризику prompt injection виберіть найсильнішу модель останнього покоління, доступну у вашому стеку провайдерів.
- Онбординг запускає перевірку моделі та попереджає, якщо налаштована модель невідома або для неї відсутня автентифікація.
- Режим зберігання API-ключів за замовчуванням — значення auth-profile у відкритому тексті. Використайте `--secret-input-mode ref`, щоб зберігати натомість посилання на змінні середовища (наприклад `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`).
- Профілі автентифікації знаходяться в `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (API-ключі + OAuth). `~/.openclaw/credentials/oauth.json` — це застаріле джерело лише для імпорту.
- Докладніше: [/concepts/oauth](/uk/concepts/oauth)
<Note>
Порада для headless/server: завершіть OAuth на машині з браузером, а потім скопіюйте
`auth-profiles.json` цього агента (наприклад,
`auth-profiles.json` цього агента (наприклад
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json` або відповідний шлях
`$OPENCLAW_STATE_DIR/...`) на хост gateway. `credentials/oauth.json`
`$OPENCLAW_STATE_DIR/...`) на хост Gateway. `credentials/oauth.json`
є лише застарілим джерелом імпорту.
</Note>
</Step>
<Step title="Workspace">
<Step title="Робочий простір">
- Типово `~/.openclaw/workspace` (можна налаштувати).
- Створює файли workspace, потрібні для bootstrap ritual агента.
- Повне компонування workspace + посібник із резервного копіювання: [Agent workspace](/uk/concepts/agent-workspace)
- Ініціалізує файли робочого простору, потрібні для ритуалу bootstrap агента.
- Повна структура робочого простору + посібник із резервного копіювання: [Робочий простір агента](/uk/concepts/agent-workspace)
</Step>
<Step title="Gateway">
- Порт, bind, режим auth, експонування через tailscale.
- Рекомендація щодо auth: залишайте **Token** навіть для loopback, щоб локальні WS-клієнти мусили автентифікуватися.
- Порт, bind, режим автентифікації, експонування через tailscale.
- Рекомендація щодо автентифікації: залишайте **Token** навіть для loopback, щоб локальні WS-клієнти мали проходити автентифікацію.
- У режимі token інтерактивне налаштування пропонує:
- **Згенерувати/зберегти plaintext token** (типово)
- **Використовувати SecretRef** (опціонально)
- Quickstart повторно використовує наявні SecretRef `gateway.auth.token` через провайдери `env`, `file` і `exec` для probe/dashboard bootstrap під час онбордингу.
- Якщо цей SecretRef налаштовано, але його неможливо розв’язати, онбординг завершується помилкою на ранньому етапі з чітким повідомленням про виправлення замість мовчазної деградації auth runtime.
- У режимі password інтерактивне налаштування також підтримує зберігання в plaintext або через SecretRef.
- Шлях SecretRef для token у неінтерактивному режимі: `--gateway-token-ref-env <ENV_VAR>`.
- Вимагає непорожню змінну середовища в середовищі процесу онбордингу.
- **Згенерувати/зберегти token у відкритому тексті** (за замовчуванням)
- **Використати SecretRef** (за бажанням)
- Quickstart повторно використовує наявні SecretRef `gateway.auth.token` у провайдерах `env`, `file` і `exec` для probe/dashboard bootstrap під час онбордингу.
- Якщо цей SecretRef налаштовано, але його не вдається розв’язати, онбординг завершується рано з чітким повідомленням про виправлення замість тихого погіршення runtime-автентифікації.
- У режимі password інтерактивне налаштування також підтримує зберігання у відкритому тексті або через SecretRef.
- Шлях SecretRef token у неінтерактивному режимі: `--gateway-token-ref-env <ENV_VAR>`.
- Потрібна непорожня змінна середовища в середовищі процесу онбордингу.
- Не можна поєднувати з `--gateway-token`.
- Вимикайте auth лише якщо повністю довіряєте кожному локальному процесу.
- Прив’язки не до loopback усе одно потребують auth.
- Вимикайте автентифікацію лише якщо ви повністю довіряєте кожному локальному процесу.
- Прив’язки не до loopback усе одно потребують автентифікації.
</Step>
<Step title="Канали">
- [WhatsApp](/uk/channels/whatsapp): необов’язковий вхід через QR.
- [Telegram](/uk/channels/telegram): токен бота.
- [Discord](/uk/channels/discord): токен бота.
- [Telegram](/uk/channels/telegram): token бота.
- [Discord](/uk/channels/discord): token бота.
- [Google Chat](/uk/channels/googlechat): JSON service account + аудиторія webhook.
- [Mattermost](/uk/channels/mattermost) (Plugin): токен бота + базова URL-адреса.
- [Mattermost](/uk/channels/mattermost) (plugin): token бота + базова URL-адреса.
- [Signal](/uk/channels/signal): необов’язкове встановлення `signal-cli` + конфігурація облікового запису.
- [BlueBubbles](/uk/channels/bluebubbles): **рекомендовано для iMessage**; URL-адреса сервера + пароль + webhook.
- [iMessage](/uk/channels/imessage): застарілий шлях CLI `imsg` + доступ до БД.
- Безпека DM: типово використовується pairing. Перше DM надсилає код; схваліть через `openclaw pairing approve <channel> <code>` або використовуйте allowlist.
- [iMessage](/uk/channels/imessage): застарілий шлях до CLI `imsg` + доступ до БД.
- Безпека DM: за замовчуванням використовується спарювання. Перший DM надсилає код; підтвердьте через `openclaw pairing approve <channel> <code>` або використовуйте allowlist.
</Step>
<Step title="Вебпошук">
- Виберіть підтримуваного provider-а, наприклад Brave, DuckDuckGo, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Ollama Web Search, Perplexity, SearXNG або Tavily (або пропустіть).
- Provider-и з API можуть використовувати env vars або наявну config для швидкого налаштування; provider-и без ключів використовують свої специфічні передумови.
- Пропустити можна через `--skip-search`.
- Виберіть підтримуваного провайдера, наприклад Brave, DuckDuckGo, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Ollama Web Search, Perplexity, SearXNG або Tavily (або пропустіть).
- Провайдери з API можуть використовувати змінні середовища або наявну конфігурацію для швидкого налаштування; провайдери без ключів натомість використовують свої специфічні передумови.
- Пропустити через `--skip-search`.
- Налаштувати пізніше: `openclaw configure --section web`.
</Step>
<Step title="Установлення демона">
<Step title="Встановлення демона">
- macOS: LaunchAgent
- Потребує активної сесії користувача; для headless використовуйте власний LaunchDaemon (не постачається).
- Потребує сеансу користувача з входом у систему; для headless використовуйте власний LaunchDaemon (не постачається).
- Linux (і Windows через WSL2): unit systemd користувача
- Онбординг намагається ввімкнути lingering через `loginctl enable-linger <user>`, щоб Gateway лишався запущеним після виходу користувача із системи.
- Може запитати sudo (записує в `/var/lib/systemd/linger`); спочатку пробує без sudo.
- **Вибір runtime:** Node (рекомендовано; обов’язково для WhatsApp/Telegram). Bun **не рекомендується**.
- Якщо auth через token вимагає token і `gateway.auth.token` керується через SecretRef, установлення демона перевіряє його, але не зберігає розв’язані plaintext-значення token у метаданих середовища сервісу супервізора.
- Якщо auth через token вимагає token, а налаштований token SecretRef не розв’язується, установлення демона блокується з практичними вказівками.
- Якщо одночасно налаштовано `gateway.auth.token` і `gateway.auth.password`, а `gateway.auth.mode` не задано, установлення демона блокується, доки режим не буде явно вказано.
- Онбординг намагається увімкнути lingering через `loginctl enable-linger <user>`, щоб Gateway залишався запущеним після виходу з системи.
- Може запросити sudo (записує у `/var/lib/systemd/linger`); спочатку намагається без sudo.
- **Вибір середовища виконання:** Node (рекомендовано; обов’язково для WhatsApp/Telegram). Bun **не рекомендовано**.
- Якщо для token-автентифікації потрібен token і `gateway.auth.token` керується через SecretRef, встановлення демона перевіряє його, але не зберігає розв’язані plaintext-значення token у метаданих середовища сервісу supervisor.
- Якщо для token-автентифікації потрібен token і налаштований token SecretRef не розв’язується, встановлення демона блокується з практичними вказівками.
- Якщо налаштовані і `gateway.auth.token`, і `gateway.auth.password`, а `gateway.auth.mode` не задано, встановлення демона блокується, доки режим не буде встановлено явно.
</Step>
<Step title="Перевірка стану">
- Запускає Gateway (за потреби) і виконує `openclaw health`.
- Порада: `openclaw status --deep` додає live-probe стану gateway до виводу status, включно з probe-ами каналів, де це підтримується (потребує доступного gateway).
- Порада: `openclaw status --deep` додає живу health probe Gateway до виводу статусу, включно з probe каналів, якщо це підтримується (потрібен доступний Gateway).
</Step>
<Step title="Skills (рекомендовано)">
- Зчитує доступні Skills і перевіряє вимоги.
- Дає змогу вибрати менеджер Node: **npm / pnpm** (bun не рекомендується).
- Установлює необов’язкові залежності (деякі використовують Homebrew на macOS).
- Дозволяє вибрати менеджер Node: **npm / pnpm** (bun не рекомендовано).
- Встановлює необов’язкові залежності (деякі використовують Homebrew на macOS).
</Step>
<Step title="Завершення">
- Підсумок + наступні кроки, включно з iOS/Android/macOS застосунками для додаткових можливостей.
- Підсумок + наступні кроки, включно із застосунками iOS/Android/macOS для додаткових функцій.
</Step>
</Steps>
<Note>
Якщо GUI не виявлено, онбординг виводить інструкції з SSH port-forward для Control UI замість відкриття браузера.
Якщо ресурси Control UI відсутні, онбординг намагається зібрати їх; запасний варіант — `pnpm ui:build` (автоматично встановлює залежності UI).
Якщо GUI не виявлено, онбординг виводить інструкції з переадресації порту SSH для Control UI замість відкриття браузера.
Якщо ресурси Control UI відсутні, онбординг намагається їх зібрати; запасний варіант — `pnpm ui:build` (автоматично встановлює залежності UI).
</Note>
## Неінтерактивний режим
Використовуйте `--non-interactive`, щоб автоматизувати або скриптувати онбординг:
Використайте `--non-interactive`, щоб автоматизувати або скриптувати онбординг:
```bash
openclaw onboard --non-interactive \
@ -164,9 +164,9 @@ openclaw onboard --non-interactive \
--skip-skills
```
Додайте `--json` для підсумку в машиночитному форматі.
Додайте `--json` для машиночитаного підсумку.
SecretRef токена Gateway у неінтерактивному режимі:
Gateway token SecretRef у неінтерактивному режимі:
```bash
export OPENCLAW_GATEWAY_TOKEN="your-token"
@ -177,13 +177,13 @@ openclaw onboard --non-interactive \
--gateway-token-ref-env OPENCLAW_GATEWAY_TOKEN
```
`--gateway-token` і `--gateway-token-ref-env` взаємовиключні.
`--gateway-token` і `--gateway-token-ref-env` є взаємовиключними.
<Note>
`--json` **не** означає неінтерактивний режим. Для скриптів використовуйте `--non-interactive` (і `--workspace`).
</Note>
Приклади команд для конкретних provider-ів наведено в [CLI Automation](/uk/start/wizard-cli-automation#provider-specific-examples).
Приклади команд для конкретних провайдерів наведено в [Автоматизація CLI](/uk/start/wizard-cli-automation#provider-specific-examples).
Використовуйте цю довідкову сторінку для семантики прапорців і порядку кроків.
### Додати агента (неінтерактивно)
@ -202,34 +202,34 @@ openclaw agents add work \
Gateway надає потік онбордингу через RPC (`wizard.start`, `wizard.next`, `wizard.cancel`, `wizard.status`).
Клієнти (застосунок macOS, Control UI) можуть відображати кроки без повторної реалізації логіки онбордингу.
## Налаштування Signal (`signal-cli`)
## Налаштування Signal (signal-cli)
Онбординг може встановити `signal-cli` з GitHub releases:
- Завантажує відповідний asset release.
- Завантажує відповідний артефакт релізу.
- Зберігає його в `~/.openclaw/tools/signal-cli/<version>/`.
- Записує `channels.signal.cliPath` у вашу config.
- Записує `channels.signal.cliPath` у вашу конфігурацію.
Примітки:
- Збірки JVM потребують **Java 21**.
- Native-збірки використовуються, коли вони доступні.
- Windows використовує WSL2; встановлення `signal-cli` відбувається за Linux-потоком усередині WSL.
- JVM-збірки потребують **Java 21**.
- Коли доступно, використовуються нативні збірки.
- Windows використовує WSL2; встановлення signal-cli виконується за Linux-потоком всередині WSL.
## Що записує майстер
Типові поля в `~/.openclaw/openclaw.json`:
- `agents.defaults.workspace`
- `agents.defaults.model` / `models.providers` (якщо вибрано MiniMax)
- `tools.profile` (локальний онбординг типово встановлює `"coding"`, якщо значення не задано; наявні явні значення зберігаються)
- `gateway.*` (mode, bind, auth, tailscale)
- `session.dmScope` (подробиці поведінки: [CLI Setup Reference](/uk/start/wizard-cli-reference#outputs-and-internals))
- `agents.defaults.model` / `models.providers` (якщо вибрано Minimax)
- `tools.profile` (для локального онбордингу за замовчуванням використовується `"coding"`, якщо значення не задано; наявні явні значення зберігаються)
- `gateway.*` (режим, bind, автентифікація, tailscale)
- `session.dmScope` (деталі поведінки: [Довідник із налаштування CLI](/uk/start/wizard-cli-reference#outputs-and-internals))
- `channels.telegram.botToken`, `channels.discord.token`, `channels.matrix.*`, `channels.signal.*`, `channels.imessage.*`
- Allowlist каналів (Slack/Discord/Matrix/Microsoft Teams), коли ви погоджуєтеся на це під час запитів (імена, де можливо, перетворюються на ID).
- Allowlist каналів (Slack/Discord/Matrix/Microsoft Teams), якщо ви погоджуєтесь під час підказок (імена за можливості розв’язуються в ID).
- `skills.install.nodeManager`
- `setup --node-manager` приймає `npm`, `pnpm` або `bun`.
- Ручна config усе ще може використовувати `yarn`, якщо напряму встановити `skills.install.nodeManager`.
- Для ручної конфігурації все ще можна використовувати `yarn`, встановивши `skills.install.nodeManager` безпосередньо.
- `wizard.lastRunAt`
- `wizard.lastRunVersion`
- `wizard.lastRunCommit`
@ -241,13 +241,13 @@ Gateway надає потік онбордингу через RPC (`wizard.start
Облікові дані WhatsApp зберігаються в `~/.openclaw/credentials/whatsapp/<accountId>/`.
Сесії зберігаються в `~/.openclaw/agents/<agentId>/sessions/`.
Деякі канали постачаються як Plugin-и. Коли ви вибираєте один із них під час налаштування, онбординг
запропонує встановити його (через npm або з локального шляху), перш ніж його можна буде налаштувати.
Деякі канали постачаються як plugins. Коли ви вибираєте один із них під час налаштування, онбординг
запропонує встановити його (через npm або локальний шлях), перш ніж його можна буде налаштувати.
## Пов’язані документи
- Огляд онбордингу: [Onboarding (CLI)](/uk/start/wizard)
- Онбординг у застосунку macOS: [Onboarding](/uk/start/onboarding)
- Довідник з config: [Gateway configuration](/uk/gateway/configuration)
- Провайдери: [WhatsApp](/uk/channels/whatsapp), [Telegram](/uk/channels/telegram), [Discord](/uk/channels/discord), [Google Chat](/uk/channels/googlechat), [Signal](/uk/channels/signal), [BlueBubbles](/uk/channels/bluebubbles) (iMessage), [iMessage](/uk/channels/imessage) (legacy)
- Skills: [Skills](/uk/tools/skills), [Skills config](/uk/tools/skills-config)
- Огляд онбордингу: [Онбординг (CLI)](/uk/start/wizard)
- Онбординг у застосунку macOS: [Онбординг](/uk/start/onboarding)
- Довідник із конфігурації: [Конфігурація Gateway](/uk/gateway/configuration)
- Провайдери: [WhatsApp](/uk/channels/whatsapp), [Telegram](/uk/channels/telegram), [Discord](/uk/channels/discord), [Google Chat](/uk/channels/googlechat), [Signal](/uk/channels/signal), [BlueBubbles](/uk/channels/bluebubbles) (iMessage), [iMessage](/uk/channels/imessage) (застарілий)
- Skills: [Skills](/uk/tools/skills), [Конфігурація Skills](/uk/tools/skills-config)

View File

@ -1,118 +1,118 @@
---
read_when:
- Вам потрібен детальний опис поведінки `openclaw onboard`
- Ви налагоджуєте результати онбордингу або інтегруєте клієнтів онбордингу
- Вам потрібна детальна поведінка для `openclaw onboard`
- Ви налагоджуєте результати онбордингу або інтегруєте клієнти онбордингу
sidebarTitle: CLI reference
summary: Повний довідник потоку налаштування CLI, налаштування auth/моделі, виводів і внутрішньої реалізації
title: Довідник з налаштування CLI
summary: Повний довідник щодо процесу налаштування CLI, налаштування автентифікації/моделей, вихідних даних і внутрішньої будови
title: Довідник із налаштування CLI
x-i18n:
generated_at: "2026-04-23T19:27:38Z"
generated_at: "2026-04-23T20:06:30Z"
model: gpt-5.4
provider: openai
source_hash: 485f7d074b5f9cde9cb9342bd213a93a8221c3561a92184edeceb98c40267d1d
source_hash: 5277842fa96eb49d07630c7c01831fc52edb1ad0f76bffe2926d6755a8a2fab2
source_path: start/wizard-cli-reference.md
workflow: 15
---
# Довідник з налаштування CLI
# Довідник із налаштування CLI
Ця сторінка — повний довідник для `openclaw onboard`.
Короткий посібник див. у [Онбординг (CLI)](/uk/start/wizard).
Короткий посібник дивіться в [Онбординг (CLI)](/uk/start/wizard).
## Що робить майстер
Локальний режим (за замовчуванням) проводить вас через:
- Налаштування моделі й auth (OAuth підписки OpenAI Code, Anthropic Claude CLI або API key, а також варіанти MiniMax, GLM, Ollama, Moonshot, StepFun і AI Gateway)
- Налаштування моделі й автентифікації (OAuth підписки OpenAI Code, Anthropic Claude CLI або API key, а також параметри MiniMax, GLM, Ollama, Moonshot, StepFun і AI Gateway)
- Розташування workspace і bootstrap-файли
- Налаштування Gateway (порт, bind, auth, Tailscale)
- Канали та провайдери (Telegram, WhatsApp, Discord, Google Chat, Mattermost, Signal, BlueBubbles та інші вбудовані Plugin каналів)
- Встановлення daemon (LaunchAgent, user unit systemd або нативне Scheduled Task Windows із fallback через папку Startup)
- Налаштування Gateway (порт, bind, автентифікація, Tailscale)
- Канали й провайдери (Telegram, WhatsApp, Discord, Google Chat, Mattermost, Signal, BlueBubbles та інші комплектні channel plugins)
- Установлення демона (LaunchAgent, користувацький systemd unit або нативне завдання Windows Scheduled Task із резервним варіантом через папку Startup)
- Перевірку стану
- Налаштування Skills
Віддалений режим налаштовує цю машину на підключення до Gateway в іншому місці.
Віддалений режим налаштовує цю машину для підключення до Gateway, розташованого в іншому місці.
Він не встановлює і не змінює нічого на віддаленому хості.
## Деталі локального потоку
## Подробиці локального процесу
<Steps>
<Step title="Виявлення наявної конфігурації">
- Якщо `~/.openclaw/openclaw.json` існує, виберіть Keep, Modify або Reset.
- Повторний запуск майстра нічого не стирає, якщо ви явно не вибрали Reset (або не передали `--reset`).
- Повторний запуск майстра нічого не стирає, якщо ви явно не виберете Reset (або не передасте `--reset`).
- CLI `--reset` за замовчуванням використовує `config+creds+sessions`; використовуйте `--reset-scope full`, щоб також видалити workspace.
- Якщо конфігурація некоректна або містить застарілі ключі, майстер зупиняється і просить запустити `openclaw doctor` перед продовженням.
- Якщо конфігурація недійсна або містить застарілі ключі, майстер зупиняється і просить запустити `openclaw doctor`, перш ніж продовжити.
- Reset використовує `trash` і пропонує такі області:
- Лише конфігурація
- Конфігурація + облікові дані + сесії
- Повний reset (також видаляє workspace)
- Повний скидання (також видаляє workspace)
</Step>
<Step title="Модель і auth">
- Повна матриця варіантів наведена в [Варіанти auth і моделей](#auth-and-model-options).
<Step title="Модель і автентифікація">
- Повна матриця варіантів наведена в [Параметри автентифікації та моделей](#auth-and-model-options).
</Step>
<Step title="Workspace">
- За замовчуванням `~/.openclaw/workspace` (можна налаштувати).
- За замовчуванням `~/.openclaw/workspace` (можна змінити).
- Створює файли workspace, потрібні для bootstrap-ритуалу першого запуску.
- Структура workspace: [Workspace агента](/uk/concepts/agent-workspace).
</Step>
<Step title="Gateway">
- Пропонує ввести порт, bind, режим auth і доступ через Tailscale.
- Рекомендація: залишайте auth через токен увімкненою навіть для loopback, щоб локальні WS-клієнти мусили автентифікуватися.
- Запитує порт, bind, режим автентифікації та експонування через Tailscale.
- Рекомендовано: залишати автентифікацію токеном увімкненою навіть для loopback, щоб локальні WS-клієнти мали проходити автентифікацію.
- У режимі токена інтерактивне налаштування пропонує:
- **Generate/store plaintext token** (за замовчуванням)
- **Use SecretRef** (опційно)
- У режимі пароля інтерактивне налаштування також підтримує зберігання у відкритому вигляді або через SecretRef.
- Неінтерактивний шлях SecretRef для токена: `--gateway-token-ref-env <ENV_VAR>`.
- Потребує непорожньої env-змінної в середовищі процесу онбордингу.
- **Згенерувати/зберегти токен відкритим текстом** (за замовчуванням)
- **Використати SecretRef** (за бажанням)
- У режимі пароля інтерактивне налаштування також підтримує зберігання відкритим текстом або через SecretRef.
- Неінтерактивний шлях для SecretRef токена: `--gateway-token-ref-env <ENV_VAR>`.
- Потребує непорожньої змінної середовища в середовищі процесу онбордингу.
- Не можна поєднувати з `--gateway-token`.
- Вимикайте auth лише якщо повністю довіряєте кожному локальному процесу.
- Bind, відмінні від loopback, однаково потребують auth.
- Вимикайте автентифікацію лише якщо повністю довіряєте кожному локальному процесу.
- Bind, відмінні від loopback, усе одно потребують автентифікації.
</Step>
<Step title="Канали">
- [WhatsApp](/uk/channels/whatsapp): необов’язковий вхід через QR
- [Telegram](/uk/channels/telegram): токен бота
- [Discord](/uk/channels/discord): токен бота
- [Google Chat](/uk/channels/googlechat): JSON service account + webhook audience
- [Mattermost](/uk/channels/mattermost): токен бота + base URL
- [Signal](/uk/channels/signal): необов’язкове встановлення `signal-cli` + конфігурація акаунта
- [BlueBubbles](/uk/channels/bluebubbles): рекомендовано для iMessage; URL сервера + пароль + webhook
- [Google Chat](/uk/channels/googlechat): JSON облікового запису служби + аудиторія Webhook
- [Mattermost](/uk/channels/mattermost): токен бота + базовий URL
- [Signal](/uk/channels/signal): необов’язкове встановлення `signal-cli` + конфігурація облікового запису
- [BlueBubbles](/uk/channels/bluebubbles): рекомендовано для iMessage; URL сервера + пароль + Webhook
- [iMessage](/uk/channels/imessage): застарілий шлях CLI `imsg` + доступ до DB
- Безпека DM: за замовчуванням використовується pairing. Перше DM надсилає код; схваліть через
`openclaw pairing approve <channel> <code>` або використовуйте allowlist.
</Step>
<Step title="Встановлення daemon">
<Step title="Установлення демона">
- macOS: LaunchAgent
- Потребує сеансу користувача з входом; для headless використовуйте власний LaunchDaemon (не постачається).
- Linux і Windows через WSL2: user unit systemd
- Майстер намагається виконати `loginctl enable-linger <user>`, щоб gateway залишався запущеним після виходу.
- Може запросити sudo (записує `/var/lib/systemd/linger`); спочатку пробує без sudo.
- Потребує активної сесії користувача; для безголового режиму використовуйте власний LaunchDaemon (не постачається).
- Linux і Windows через WSL2: користувацький systemd unit
- Майстер намагається виконати `loginctl enable-linger <user>`, щоб Gateway залишався активним після виходу з системи.
- Може запитати sudo (записує в `/var/lib/systemd/linger`); спочатку намагається без sudo.
- Нативний Windows: спочатку Scheduled Task
- Якщо створення задачі заборонено, OpenClaw переходить до fallback через елемент входу в папці Startup для конкретного користувача і одразу запускає gateway.
- Scheduled Task залишаються пріоритетними, оскільки дають кращий статус supervisor.
- Вибір runtime: Node (рекомендовано; потрібен для WhatsApp і Telegram). Bun не рекомендовано.
- Якщо створення завдання заборонене, OpenClaw переходить до резервного варіанту: елемента входу в систему для користувача через папку Startup і негайно запускає Gateway.
- Scheduled Tasks лишаються пріоритетними, бо дають кращий статус супервізора.
- Вибір runtime: Node (рекомендовано; обов’язковий для WhatsApp і Telegram). Bun не рекомендований.
</Step>
<Step title="Перевірка стану">
- Запускає gateway (за потреби) і виконує `openclaw health`.
- `openclaw status --deep` додає live-перевірку стану gateway до виводу status, зокрема перевірки каналів, де це підтримується.
- Запускає Gateway (за потреби) і виконує `openclaw health`.
- `openclaw status --deep` додає до виводу статусу live-перевірку стану Gateway, зокрема перевірки каналів, якщо вони підтримуються.
</Step>
<Step title="Skills">
- Зчитує доступні Skills і перевіряє вимоги.
- Дає вибрати менеджер Node: npm, pnpm або bun.
- Встановлює необов’язкові залежності (деякі використовують Homebrew на macOS).
- Дає змогу вибрати менеджер Node: npm, pnpm або bun.
- Установлює необов’язкові залежності (деякі використовують Homebrew на macOS).
</Step>
<Step title="Завершення">
- Підсумок і наступні кроки, зокрема варіанти застосунків для iOS, Android і macOS.
- Підсумок і наступні кроки, зокрема варіанти програм для iOS, Android і macOS.
</Step>
</Steps>
<Note>
Якщо GUI не виявлено, майстер виводить інструкції з переадресації портів SSH для Control UI замість відкриття браузера.
Якщо ресурси Control UI відсутні, майстер намагається їх зібрати; fallback`pnpm ui:build` (автоматично встановлює UI-залежності).
Якщо GUI не виявлено, майстер виводить інструкції з перенаправлення порту SSH для Control UI замість відкриття браузера.
Якщо ресурси Control UI відсутні, майстер намагається їх зібрати; резервний варіант`pnpm ui:build` (автоматично встановлює залежності UI).
</Note>
## Деталі віддаленого режиму
## Подробиці віддаленого режиму
Віддалений режим налаштовує цю машину для підключення до Gateway в іншому місці.
Віддалений режим налаштовує цю машину для підключення до Gateway, розташованого в іншому місці.
<Info>
Віддалений режим не встановлює і не змінює нічого на віддаленому хості.
@ -121,7 +121,7 @@ x-i18n:
Що ви задаєте:
- URL віддаленого Gateway (`ws://...`)
- Токен, якщо віддалений Gateway вимагає auth (рекомендовано)
- Токен, якщо для віддаленого Gateway потрібна автентифікація (рекомендовано)
<Note>
- Якщо Gateway доступний лише через loopback, використовуйте SSH-тунелювання або tailnet.
@ -130,151 +130,151 @@ x-i18n:
- Linux: Avahi (`avahi-browse`)
</Note>
## Варіанти auth і моделей
## Параметри автентифікації та моделей
<AccordionGroup>
<Accordion title="API key Anthropic">
Використовує `ANTHROPIC_API_KEY`, якщо він присутній, або просить ввести ключ, а потім зберігає його для використання daemon.
<Accordion title="Anthropic API key">
Використовує `ANTHROPIC_API_KEY`, якщо він наявний, або запитує ключ, а потім зберігає його для використання демоном.
</Accordion>
<Accordion title="Підписка OpenAI Code (OAuth)">
Потік через браузер; вставте `code#state`.
Процес через браузер; вставте `code#state`.
Встановлює `agents.defaults.model` у `openai-codex/gpt-5.5`, якщо модель не задано або це `openai/*`.
Встановлює `agents.defaults.model` у `openai/gpt-5.5`, якщо модель не задана або вже належить до сімейства OpenAI.
</Accordion>
<Accordion title="Підписка OpenAI Code (pairing пристрою)">
Потік pairing через браузер із короткочасним кодом пристрою.
<Accordion title="Підписка OpenAI Code (прив’язка пристрою)">
Процес прив’язки через браузер із короткоживучим кодом пристрою.
Встановлює `agents.defaults.model` у `openai-codex/gpt-5.5`, якщо модель не задано або це `openai/*`.
Встановлює `agents.defaults.model` у `openai/gpt-5.5`, якщо модель не задана або вже належить до сімейства OpenAI.
</Accordion>
<Accordion title="API key OpenAI">
Використовує `OPENAI_API_KEY`, якщо він присутній, або просить ввести ключ, а потім зберігає облікові дані в auth profiles.
<Accordion title="OpenAI API key">
Використовує `OPENAI_API_KEY`, якщо він наявний, або запитує ключ, а потім зберігає облікові дані в профілях автентифікації.
Встановлює `agents.defaults.model` у `openai/gpt-5.5`, якщо модель не задано, це `openai/*` або `openai-codex/*`.
Встановлює `agents.defaults.model` у `openai/gpt-5.5`, якщо модель не задана, має вигляд `openai/*` або `openai-codex/*`.
</Accordion>
<Accordion title="API key xAI (Grok)">
Просить `XAI_API_KEY` і налаштовує xAI як провайдера моделей.
<Accordion title="xAI (Grok) API key">
Запитує `XAI_API_KEY` і налаштовує xAI як провайдера моделей.
</Accordion>
<Accordion title="OpenCode">
Просить `OPENCODE_API_KEY` (або `OPENCODE_ZEN_API_KEY`) і дає вибрати каталог Zen або Go.
Запитує `OPENCODE_API_KEY` (або `OPENCODE_ZEN_API_KEY`) і дає змогу вибрати каталог Zen або Go.
URL налаштування: [opencode.ai/auth](https://opencode.ai/auth).
</Accordion>
<Accordion title="API key (загальний)">
Зберігає ключ для вас.
</Accordion>
<Accordion title="Vercel AI Gateway">
Просить `AI_GATEWAY_API_KEY`.
Детальніше: [Vercel AI Gateway](/uk/providers/vercel-ai-gateway).
Запитує `AI_GATEWAY_API_KEY`.
Докладніше: [Vercel AI Gateway](/uk/providers/vercel-ai-gateway).
</Accordion>
<Accordion title="Cloudflare AI Gateway">
Просить id акаунта, id gateway і `CLOUDFLARE_AI_GATEWAY_API_KEY`.
Детальніше: [Cloudflare AI Gateway](/uk/providers/cloudflare-ai-gateway).
Запитує ID облікового запису, ID Gateway і `CLOUDFLARE_AI_GATEWAY_API_KEY`.
Докладніше: [Cloudflare AI Gateway](/uk/providers/cloudflare-ai-gateway).
</Accordion>
<Accordion title="MiniMax">
Конфігурація записується автоматично. Розміщене значення за замовчуванням — `MiniMax-M2.7`; налаштування через API key використовує
`minimax/...`, а через OAuth — `minimax-portal/...`.
Детальніше: [MiniMax](/uk/providers/minimax).
Конфігурація записується автоматично. Hosted-варіант за замовчуванням — `MiniMax-M2.7`; налаштування через API key використовує
`minimax/...`, а налаштування через OAuth — `minimax-portal/...`.
Докладніше: [MiniMax](/uk/providers/minimax).
</Accordion>
<Accordion title="StepFun">
Конфігурація автоматично записується для стандартного StepFun або Step Plan на китайських чи глобальних endpoint.
Наразі стандартний варіант включає `step-3.5-flash`, а Step Plan також включає `step-3.5-flash-2603`.
Детальніше: [StepFun](/uk/providers/stepfun).
Стандартний варіант наразі включає `step-3.5-flash`, а Step Plan також включає `step-3.5-flash-2603`.
Докладніше: [StepFun](/uk/providers/stepfun).
</Accordion>
<Accordion title="Synthetic (сумісний з Anthropic)">
Просить `SYNTHETIC_API_KEY`.
Детальніше: [Synthetic](/uk/providers/synthetic).
Запитує `SYNTHETIC_API_KEY`.
Докладніше: [Synthetic](/uk/providers/synthetic).
</Accordion>
<Accordion title="Ollama (Cloud і локальні відкриті моделі)">
Спочатку пропонує `Cloud + Local`, `Cloud only` або `Local only`.
Спочатку запитує `Cloud + Local`, `Cloud only` або `Local only`.
`Cloud only` використовує `OLLAMA_API_KEY` з `https://ollama.com`.
Режими, що використовують хост, просять base URL (за замовчуванням `http://127.0.0.1:11434`), виявляють доступні моделі та пропонують типові варіанти.
`Cloud + Local` також перевіряє, чи цей хост Ollama увійшов у систему для доступу до cloud.
Детальніше: [Ollama](/uk/providers/ollama).
Режими з прив’язкою до хоста запитують базовий URL (за замовчуванням `http://127.0.0.1:11434`), виявляють доступні моделі та пропонують типові варіанти.
`Cloud + Local` також перевіряє, чи виконано вхід цього хоста Ollama для доступу до cloud.
Докладніше: [Ollama](/uk/providers/ollama).
</Accordion>
<Accordion title="Moonshot і Kimi Coding">
Конфігурації Moonshot (Kimi K2) і Kimi Coding записуються автоматично.
Детальніше: [Moonshot AI (Kimi + Kimi Coding)](/uk/providers/moonshot).
Докладніше: [Moonshot AI (Kimi + Kimi Coding)](/uk/providers/moonshot).
</Accordion>
<Accordion title="Власний провайдер">
Працює з endpoint, сумісними з OpenAI і Anthropic.
<Accordion title="Користувацький провайдер">
Працює з endpoint, сумісними з OpenAI та Anthropic.
Інтерактивний онбординг підтримує ті самі варіанти зберігання API key, що й інші потоки API key провайдерів:
- **Paste API key now** (відкритий текст)
- **Use secret reference** (env-посилання або налаштоване посилання провайдера, з preflight-перевіркою)
Інтерактивний онбординг підтримує ті самі варіанти зберігання API key, що й інші процеси з API key провайдера:
- **Вставити API key зараз** (відкритий текст)
- **Використати посилання на секрет** (env ref або налаштований ref провайдера, з попередньою перевіркою)
Неінтерактивні прапорці:
- `--auth-choice custom-api-key`
- `--custom-base-url`
- `--custom-model-id`
- `--custom-api-key` (необов’язково; fallback до `CUSTOM_API_KEY`)
- `--custom-api-key` (необов’язково; за замовчуванням використовується `CUSTOM_API_KEY`)
- `--custom-provider-id` (необов’язково)
- `--custom-compatibility <openai|anthropic>` (необов’язково; за замовчуванням `openai`)
</Accordion>
<Accordion title="Пропустити">
Залишає auth неналаштованою.
Залишає автентифікацію неналаштованою.
</Accordion>
</AccordionGroup>
Поведінка моделей:
Поведінка моделі:
- Виберіть модель за замовчуванням із виявлених варіантів або введіть провайдера й модель вручну.
- Коли онбординг починається з вибору auth провайдера, пікер моделі автоматично надає
перевагу цьому провайдеру. Для Volcengine і BytePlus така сама перевага
- Коли онбординг починається з вибору автентифікації провайдера, засіб вибору моделей автоматично надає перевагу
цьому провайдеру. Для Volcengine і BytePlus така сама перевага
також поширюється на їхні варіанти coding-plan (`volcengine-plan/*`,
`byteplus-plan/*`).
- Якщо такий фільтр бажаного провайдера був би порожнім, пікер повертається до
повного каталогу замість показу відсутності моделей.
- Майстер запускає перевірку моделі й попереджає, якщо налаштована модель невідома або відсутня auth.
- Якщо за такого фільтра за пріоритетним провайдером список був би порожнім, засіб вибору
повертається до повного каталогу замість показу порожнього списку моделей.
- Майстер виконує перевірку моделі та попереджає, якщо налаштована модель невідома або для неї немає автентифікації.
Шляхи до облікових даних і профілів:
- Auth profiles (API keys + OAuth): `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
- Профілі автентифікації (API keys + OAuth): `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
- Імпорт застарілого OAuth: `~/.openclaw/credentials/oauth.json`
Режим зберігання облікових даних:
- Поведінка онбордингу за замовчуванням зберігає API key як відкриті значення в auth profiles.
- `--secret-input-mode ref` вмикає режим посилань замість зберігання ключів у відкритому вигляді.
В інтерактивному налаштуванні можна вибрати одне з двох:
- Типова поведінка онбордингу зберігає API keys як значення відкритим текстом у профілях автентифікації.
- `--secret-input-mode ref` вмикає режим посилань замість зберігання ключів відкритим текстом.
В інтерактивному налаштуванні можна вибрати:
- посилання на змінну середовища (наприклад `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`)
- налаштоване посилання провайдера (`file` або `exec`) з псевдонімом провайдера + id
- Інтерактивний режим посилань виконує швидку preflight-перевірку перед збереженням.
- Env-посилання: перевіряє назву змінної і непорожнє значення в поточному середовищі онбордингу.
- Посилання провайдера: перевіряє конфігурацію провайдера і резолвить запитаний id.
- Якщо preflight завершується помилкою, онбординг показує її і дає повторити спробу.
- У неінтерактивному режимі `--secret-input-mode ref` підтримує лише env.
- посилання на налаштований провайдер (`file` або `exec`) з псевдонімом провайдера + id
- Інтерактивний режим посилань виконує швидку попередню перевірку перед збереженням.
- Посилання env: перевіряє назву змінної та непорожнє значення в поточному середовищі онбордингу.
- Посилання провайдера: перевіряє конфігурацію провайдера та знаходить запитаний id.
- Якщо попередня перевірка не проходить, онбординг показує помилку і дає змогу повторити спробу.
- У неінтерактивному режимі `--secret-input-mode ref` працює лише з env.
- Задайте env-змінну провайдера в середовищі процесу онбордингу.
- Вбудовані прапорці ключів (наприклад `--openai-api-key`) вимагають, щоб ця env-змінна була задана; інакше онбординг одразу завершується помилкою.
- Для власних провайдерів у неінтерактивному режимі `ref` `models.providers.<id>.apiKey` зберігається як `{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`.
- У цьому випадку для власного провайдера `--custom-api-key` вимагає, щоб було задано `CUSTOM_API_KEY`; інакше онбординг одразу завершується помилкою.
- Облікові дані auth Gateway підтримують вибір між відкритим текстом і SecretRef в інтерактивному налаштуванні:
- Режим токена: **Generate/store plaintext token** (за замовчуванням) або **Use SecretRef**.
- Вбудовані прапорці ключів (наприклад `--openai-api-key`) вимагають, щоб цю env-змінну було задано; інакше онбординг швидко завершується з помилкою.
- Для користувацьких провайдерів неінтерактивний режим `ref` зберігає `models.providers.<id>.apiKey` як `{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`.
- У цьому випадку з користувацьким провайдером `--custom-api-key` вимагає, щоб `CUSTOM_API_KEY` було задано; інакше онбординг швидко завершується з помилкою.
- Облікові дані автентифікації Gateway підтримують вибір між відкритим текстом і SecretRef в інтерактивному налаштуванні:
- Режим токена: **Згенерувати/зберегти токен відкритим текстом** (за замовчуванням) або **Використати SecretRef**.
- Режим пароля: відкритий текст або SecretRef.
- Неінтерактивний шлях SecretRef для токена: `--gateway-token-ref-env <ENV_VAR>`.
- Наявні налаштування з відкритим текстом продовжують працювати без змін.
- Неінтерактивний шлях для SecretRef токена: `--gateway-token-ref-env <ENV_VAR>`.
- Наявні налаштування з відкритим текстом і далі працюють без змін.
<Note>
Порада для headless і серверів: завершіть OAuth на машині з браузером, а потім скопіюйте
Порада для безголового режиму і серверів: завершіть OAuth на машині з браузером, а потім скопіюйте
`auth-profiles.json` цього агента (наприклад
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json` або відповідний шлях
`$OPENCLAW_STATE_DIR/...`) на хост Gateway. `credentials/oauth.json`
використовується лише як застаріле джерело імпорту.
</Note>
## Виводи й внутрішня реалізація
## Вихідні дані та внутрішня будова
Типові поля в `~/.openclaw/openclaw.json`:
- `agents.defaults.workspace`
- `agents.defaults.model` / `models.providers` (якщо вибрано Minimax)
- `tools.profile` (локальний онбординг за замовчуванням встановлює `"coding"`, якщо значення не задано; наявні явні значення зберігаються)
- `gateway.*` (mode, bind, auth, tailscale)
- `session.dmScope` (локальний онбординг за замовчуванням встановлює `per-channel-peer`, якщо значення не задано; наявні явні значення зберігаються)
- `tools.profile` (локальний онбординг за замовчуванням встановлює `"coding"`, якщо значення не задано; наявні явно вказані значення зберігаються)
- `gateway.*` (mode, bind, auth, Tailscale)
- `session.dmScope` (локальний онбординг за замовчуванням встановлює `per-channel-peer`, якщо значення не задано; наявні явно вказані значення зберігаються)
- `channels.telegram.botToken`, `channels.discord.token`, `channels.matrix.*`, `channels.signal.*`, `channels.imessage.*`
- Allowlist каналів (Slack, Discord, Matrix, Microsoft Teams), якщо ви погоджуєтеся під час prompt (імена по можливості резолвляться в id)
- Allowlist каналів (Slack, Discord, Matrix, Microsoft Teams), якщо ви погоджуєтеся під час запитів (імена за можливості зіставляються з ID)
- `skills.install.nodeManager`
- Прапорець `setup --node-manager` приймає `npm`, `pnpm` або `bun`.
- У ручній конфігурації пізніше все ще можна задати `skills.install.nodeManager: "yarn"`.
@ -290,8 +290,8 @@ x-i18n:
Сесії зберігаються в `~/.openclaw/agents/<agentId>/sessions/`.
<Note>
Деякі канали постачаються як Plugin. Якщо їх вибрати під час налаштування, майстер
запропонує встановити Plugin (npm або локальний шлях) перед конфігурацією каналу.
Деякі канали постачаються як plugins. Якщо їх вибрано під час налаштування, майстер
пропонує встановити Plugin (npm або локальний шлях) перед конфігурацією каналу.
</Note>
RPC майстра Gateway:
@ -301,19 +301,19 @@ RPC майстра Gateway:
- `wizard.cancel`
- `wizard.status`
Клієнти (застосунок macOS і Control UI) можуть відображати кроки, не перевпроваджуючи логіку онбордингу.
Клієнти (програма macOS і Control UI) можуть відображати кроки без повторної реалізації логіки онбордингу.
Поведінка налаштування Signal:
- Завантажує відповідний release-артефакт
- Завантажує відповідний release asset
- Зберігає його в `~/.openclaw/tools/signal-cli/<version>/`
- Записує `channels.signal.cliPath` у конфігурацію
- Для JVM-збірок потрібна Java 21
- Якщо доступні нативні збірки, використовуються саме вони
- Windows використовує WSL2 і дотримується Linux-потоку signal-cli всередині WSL
- Збірки JVM потребують Java 21
- Нативні збірки використовуються, коли доступні
- Windows використовує WSL2 і дотримується Linux-процесу signal-cli всередині WSL
## Пов’язана документація
## Пов’язані документи
- Центр онбордингу: [Онбординг (CLI)](/uk/start/wizard)
- Автоматизація та сценарії: [Автоматизація CLI](/uk/start/wizard-cli-automation)
- Автоматизація та скрипти: [Автоматизація CLI](/uk/start/wizard-cli-automation)
- Довідник команд: [`openclaw onboard`](/uk/cli/onboard)

View File

@ -1,14 +1,14 @@
---
read_when:
- Вам потрібен крок LLM лише з JSON усередині workflow
- Вам потрібен вивід LLM, валідований за schema, для автоматизації
summary: Завдання LLM лише з JSON для workflow (необов’язковий інструмент plugin)
- Ви хочете крок LLM лише з JSON усередині workflow
- Вам потрібен вивід LLM, перевірений за схемою, для автоматизації
summary: Завдання LLM лише з JSON для workflow (необов’язковий інструмент Plugin)
title: Завдання LLM
x-i18n:
generated_at: "2026-04-23T19:28:17Z"
generated_at: "2026-04-23T20:06:55Z"
model: gpt-5.4
provider: openai
source_hash: 4234b2fd9247c06fcc481be6e3339726ebdb84891f4b8324f17e2d387dac4d8a
source_hash: 5b8dcc3c23f5181c36a8b2b34528a984bc703065617ed7091f2513cbcfb20912
source_path: tools/llm-task.md
workflow: 15
---
@ -16,12 +16,12 @@ x-i18n:
# Завдання LLM
`llm-task` — це **необов’язковий інструмент Plugin**, який виконує завдання LLM лише з JSON і
повертає структурований вивід (за потреби валідований за JSON Schema).
повертає структурований вивід (за потреби перевірений за JSON Schema).
Це ідеально підходить для рушіїв workflow, таких як Lobster: ви можете додати один крок LLM
без написання власного коду OpenClaw для кожного workflow.
Це ідеально підходить для рушіїв workflow на кшталт Lobster: ви можете додати один крок LLM
без написання кастомного коду OpenClaw для кожного workflow.
## Увімкніть Plugin
## Увімкнення Plugin
1. Увімкніть Plugin:
@ -62,7 +62,7 @@ x-i18n:
"defaultProvider": "openai-codex",
"defaultModel": "gpt-5.5",
"defaultAuthProfileId": "main",
"allowedModels": ["openai-codex/gpt-5.5"],
"allowedModels": ["openai/gpt-5.5"],
"maxTokens": 800,
"timeoutMs": 30000
}
@ -88,14 +88,14 @@ x-i18n:
- `maxTokens` (number, необов’язковий)
- `timeoutMs` (number, необов’язковий)
`thinking` приймає стандартні пресети міркування OpenClaw, наприклад `low` або `medium`.
`thinking` приймає стандартні пресети reasoning OpenClaw, наприклад `low` або `medium`.
## Вивід
Повертає `details.json`, що містить розібраний JSON (і проходить валідацію за
`schema`, якщо її надано).
Повертає `details.json`, що містить розібраний JSON (і перевіряє його за
`schema`, якщо її задано).
## Приклад: крок workflow Lobster
## Приклад: крок workflow у Lobster
```lobster
openclaw.invoke --tool llm-task --action json --args-json '{
@ -120,7 +120,7 @@ openclaw.invoke --tool llm-task --action json --args-json '{
## Примітки щодо безпеки
- Інструмент працює **лише з JSON** і наказує моделі виводити тільки JSON (без
code fences і без коментарів).
code fence, без коментарів).
- Для цього запуску моделі не надаються жодні інструменти.
- Вважайте вивід недовіреним, якщо не виконаєте валідацію за `schema`.
- Ставте approvals перед будь-яким кроком із побічними ефектами (send, post, exec).
- Вважайте вивід ненадійним, доки не перевірите його через `schema`.
- Розміщуйте погодження перед будь-яким кроком із побічними ефектами (send, post, exec).