chore(i18n): refresh uk translations
This commit is contained in:
parent
3d007fe829
commit
4cdfe83ae5
152
docs/uk/ci.md
152
docs/uk/ci.md
@ -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
|
||||
```
|
||||
|
||||
@ -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`, щоб отримати допомогу з міграцією та виправленням.
|
||||
|
||||
@ -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 постачається з каталогом pi‑ai. Для цих провайдерів **не потрібна**
|
||||
конфігурація `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) — окремі посібники з налаштування провайдерів
|
||||
|
||||
@ -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
2166
docs/uk/help/faq.md
2166
docs/uk/help/faq.md
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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).
|
||||
|
||||
Loading…
Reference in New Issue
Block a user