chore(i18n): refresh uk translations
This commit is contained in:
parent
aefe68ac6f
commit
9a9adaf62d
@ -1,15 +1,15 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви запускаєте openclaw без команди й хочете зрозуміти, що таке Crestodian
|
||||
- Вам потрібен безпечний безконфігураційний спосіб перевірити або відновити OpenClaw
|
||||
- Ви проєктуєте або вмикаєте режим порятунку каналу повідомлень
|
||||
summary: Довідка CLI та модель безпеки для Crestodian, помічника з налаштування та відновлення без конфігурації й із безпечними значеннями за замовчуванням
|
||||
- Вам потрібен безконфігураційний безпечний спосіб перевірити або відновити OpenClaw
|
||||
- Ви проєктуєте або вмикаєте режим відновлення каналу повідомлень
|
||||
summary: Довідник CLI та модель безпеки для Crestodian — безконфігураційного безпечного помічника для налаштування та відновлення
|
||||
title: Crestodian
|
||||
x-i18n:
|
||||
generated_at: "2026-04-25T09:23:19Z"
|
||||
generated_at: "2026-04-25T10:05:03Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: bcb9d6c81ca95d3738094143147d1a237bfb2037e530f87dc9aea20f6f528010
|
||||
source_hash: 19ee9b794152c69e3db8fa89e2876de30cc076db527ec7ee06f103e7d25a4d03
|
||||
source_path: cli/crestodian.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -17,31 +17,35 @@ x-i18n:
|
||||
# `openclaw crestodian`
|
||||
|
||||
Crestodian — це локальний помічник OpenClaw для налаштування, відновлення та конфігурації. Його
|
||||
створено так, щоб він залишався доступним, коли звичайний шлях агента зламано.
|
||||
створено так, щоб він залишався доступним, коли звичайний шлях агента зламаний.
|
||||
|
||||
Запуск `openclaw` без команди відкриває Crestodian в інтерактивному терміналі.
|
||||
Запуск `openclaw crestodian` явно запускає того самого помічника.
|
||||
Запуск `openclaw crestodian` явно запускає той самий помічник.
|
||||
|
||||
## Що показує Crestodian
|
||||
|
||||
Під час запуску Crestodian виводить стислий огляд системи:
|
||||
Під час запуску інтерактивний Crestodian відкриває ту саму оболонку TUI, що й
|
||||
`openclaw tui`, але з чат-бекендом Crestodian. Журнал чату починається зі
|
||||
стислого огляду системи:
|
||||
|
||||
- шлях до конфігурації та її валідність
|
||||
- налаштовані агенти й типовий агент
|
||||
- типова модель
|
||||
- налаштовані агенти та агент за замовчуванням
|
||||
- модель за замовчуванням
|
||||
- доступність локальних CLI Codex і Claude Code
|
||||
- наявність API-ключів OpenAI та Anthropic
|
||||
- режим планувальника (`deterministic` або з підтримкою моделі через налаштовану модель)
|
||||
- шлях до локальної документації або URL публічної документації
|
||||
- шлях до локального вихідного коду для Git checkout, або URL вихідного коду OpenClaw на GitHub
|
||||
- шлях до локального вихідного коду для Git checkout, інакше URL вихідного коду OpenClaw на GitHub
|
||||
- доступність Gateway
|
||||
- негайно рекомендований наступний крок
|
||||
- безпосередньо рекомендований наступний крок
|
||||
|
||||
Він не вивантажує секрети й не завантажує CLI-команди Plugin лише для запуску.
|
||||
Він не виводить секрети й не завантажує CLI-команди Plugin лише для запуску. TUI
|
||||
усе ще надає звичайний заголовок, журнал чату, рядок стану, нижній колонтитул, автодоповнення
|
||||
та елементи керування редактором.
|
||||
|
||||
Crestodian використовує те саме виявлення довідкових ресурсів OpenClaw, що й звичайні агенти. У Git checkout
|
||||
він спрямовує себе на локальний `docs/` і локальне дерево вихідного коду. В npm-встановленні пакета він
|
||||
використовує вбудовану документацію пакета та посилання на
|
||||
Crestodian використовує те саме виявлення довідкових матеріалів OpenClaw, що й звичайні агенти. У Git checkout
|
||||
він спрямовує себе на локальний `docs/` і локальне дерево вихідного коду. В установленому npm-пакеті він
|
||||
використовує документацію з комплекту пакета та посилається на
|
||||
[https://github.com/openclaw/openclaw](https://github.com/openclaw/openclaw), із явною
|
||||
рекомендацією переглядати вихідний код, коли документації недостатньо.
|
||||
|
||||
@ -58,7 +62,7 @@ openclaw crestodian --message "set default model openai/gpt-5.5" --yes
|
||||
openclaw onboard --modern
|
||||
```
|
||||
|
||||
Усередині інтерактивного запиту:
|
||||
Усередині TUI Crestodian:
|
||||
|
||||
```text
|
||||
status
|
||||
@ -88,40 +92,40 @@ quit
|
||||
|
||||
- `openclaw.json` відсутній
|
||||
- `openclaw.json` невалідний
|
||||
- Gateway недоступний
|
||||
- Gateway не працює
|
||||
- реєстрація команд Plugin недоступна
|
||||
- ще не налаштовано жодного агента
|
||||
|
||||
`openclaw --help` і `openclaw --version` як і раніше використовують звичайні швидкі шляхи.
|
||||
`openclaw --help` і `openclaw --version` усе ще використовують звичайні швидкі шляхи.
|
||||
Неінтерактивний `openclaw` завершується коротким повідомленням замість виведення кореневої
|
||||
довідки, оскільки продукт без указання команди — це Crestodian.
|
||||
довідки, тому що продукт без команди — це Crestodian.
|
||||
|
||||
## Операції та схвалення
|
||||
## Операції та підтвердження
|
||||
|
||||
Crestodian використовує типізовані операції замість довільного редагування конфігурації.
|
||||
|
||||
Операції лише для читання можуть виконуватися відразу:
|
||||
Операції лише для читання можуть виконуватися негайно:
|
||||
|
||||
- показати огляд
|
||||
- перелічити агентів
|
||||
- показати стан моделі/бекенда
|
||||
- виконати перевірки status або health
|
||||
- показати статус моделі/бекенда
|
||||
- запустити перевірки status або health
|
||||
- перевірити доступність Gateway
|
||||
- запустити doctor без інтерактивних виправлень
|
||||
- перевірити конфігурацію
|
||||
- validate config
|
||||
- показати шлях до журналу аудиту
|
||||
|
||||
Постійні операції вимагають схвалення в діалозі в інтерактивному режимі, якщо
|
||||
Постійні операції вимагають розмовного підтвердження в інтерактивному режимі, якщо
|
||||
ви не передасте `--yes` для прямої команди:
|
||||
|
||||
- записати конфігурацію
|
||||
- виконати `config set`
|
||||
- встановити підтримувані значення SecretRef через `config set-ref`
|
||||
- запустити bootstrap налаштування/онбордингу
|
||||
- змінити типову модель
|
||||
- змінити модель за замовчуванням
|
||||
- запустити, зупинити або перезапустити Gateway
|
||||
- створити агентів
|
||||
- запустити відновлення doctor, які переписують конфігурацію або стан
|
||||
- запустити виправлення doctor, які переписують конфігурацію або стан
|
||||
|
||||
Застосовані записи фіксуються в:
|
||||
|
||||
@ -136,8 +140,8 @@ Crestodian використовує типізовані операції зам
|
||||
|
||||
## Bootstrap налаштування
|
||||
|
||||
`setup` — це bootstrap онбордингу з підходом chat-first. Він записує дані лише через типізовані
|
||||
операції конфігурації й спочатку запитує схвалення.
|
||||
`setup` — це bootstrap онбордингу з чат-інтерфейсом. Він записує дані лише через типізовані
|
||||
операції конфігурації та спочатку запитує підтвердження.
|
||||
|
||||
```text
|
||||
setup
|
||||
@ -148,40 +152,40 @@ setup workspace ~/Projects/work model openai/gpt-5.5
|
||||
Коли модель не налаштована, setup вибирає перший придатний бекенд у такому
|
||||
порядку та повідомляє, що саме він вибрав:
|
||||
|
||||
- наявна явно вказана модель, якщо вже налаштована
|
||||
- наявна явна модель, якщо її вже налаштовано
|
||||
- `OPENAI_API_KEY` -> `openai/gpt-5.5`
|
||||
- `ANTHROPIC_API_KEY` -> `anthropic/claude-opus-4-7`
|
||||
- CLI Claude Code -> `claude-cli/claude-opus-4-7`
|
||||
- CLI Codex -> `codex-cli/gpt-5.5`
|
||||
- Claude Code CLI -> `claude-cli/claude-opus-4-7`
|
||||
- Codex CLI -> `codex-cli/gpt-5.5`
|
||||
|
||||
Якщо жоден не доступний, setup однаково записує типове робоче середовище й залишає
|
||||
модель невстановленою. Установіть або увійдіть у Codex/Claude Code, або надайте
|
||||
Якщо жоден недоступний, setup усе одно записує робочий простір за замовчуванням і залишає
|
||||
модель не заданою. Установіть або виконайте вхід у Codex/Claude Code, або зробіть доступними
|
||||
`OPENAI_API_KEY`/`ANTHROPIC_API_KEY`, а потім знову запустіть setup.
|
||||
|
||||
## Планувальник із підтримкою моделі
|
||||
|
||||
Crestodian завжди запускається в режимі deterministic. Для нечітких команд, які
|
||||
детермінований парсер не розуміє, локальний Crestodian може зробити один обмежений
|
||||
детермінований парсер не розуміє, локальний Crestodian може виконати один обмежений
|
||||
хід планувальника через звичайні шляхи виконання OpenClaw. Спочатку він використовує
|
||||
налаштовану модель OpenClaw. Якщо жодна налаштована модель ще не придатна до використання,
|
||||
він може перейти до локальних runtime, які вже є на машині:
|
||||
він може повернутися до локальних рантаймів, які вже є на машині:
|
||||
|
||||
- CLI Claude Code: `claude-cli/claude-opus-4-7`
|
||||
- Claude Code CLI: `claude-cli/claude-opus-4-7`
|
||||
- harness app-server Codex: `openai/gpt-5.5` з `embeddedHarness.runtime: "codex"`
|
||||
- CLI Codex: `codex-cli/gpt-5.5`
|
||||
- Codex CLI: `codex-cli/gpt-5.5`
|
||||
|
||||
Планувальник із підтримкою моделі не може безпосередньо змінювати конфігурацію. Він має
|
||||
перетворити запит на одну з типізованих команд Crestodian, після чого застосовуються
|
||||
звичайні правила схвалення та аудиту. Crestodian виводить модель, яку він використав, і
|
||||
інтерпретовану команду до виконання будь-яких дій. Ходи резервного планувальника без конфігурації
|
||||
є тимчасовими, з вимкненими інструментами там, де це підтримує runtime, і використовують
|
||||
тимчасове робоче середовище/сеанс.
|
||||
Планувальник із підтримкою моделі не може безпосередньо змінювати конфігурацію. Він
|
||||
має перетворити запит на одну з типізованих команд Crestodian, після чого застосовуються
|
||||
звичайні правила підтвердження й аудиту. Crestodian виводить модель, яку він використав,
|
||||
та інтерпретовану команду перед виконанням будь-яких дій. Резервні ходи планувальника без конфігурації
|
||||
є тимчасовими, із вимкненими інструментами там, де це підтримує рантайм, і використовують
|
||||
тимчасовий робочий простір/сеанс.
|
||||
|
||||
Режим порятунку каналу повідомлень не використовує планувальник із підтримкою моделі. Віддалений
|
||||
режим порятунку залишається deterministic, щоб зламаний або скомпрометований звичайний шлях агента
|
||||
Режим відновлення каналу повідомлень не використовує планувальник із підтримкою моделі. Віддалене
|
||||
відновлення залишається детермінованим, щоб зламаний або скомпрометований звичайний шлях агента
|
||||
не можна було використати як редактор конфігурації.
|
||||
|
||||
## Перемикання до агента
|
||||
## Перемикання на агента
|
||||
|
||||
Використовуйте селектор природною мовою, щоб вийти з Crestodian і відкрити звичайний TUI:
|
||||
|
||||
@ -191,23 +195,23 @@ talk to work agent
|
||||
switch to main agent
|
||||
```
|
||||
|
||||
`openclaw tui`, `openclaw chat` і `openclaw terminal` як і раніше безпосередньо відкривають звичайний
|
||||
TUI агента. Вони не запускають Crestodian.
|
||||
`openclaw tui`, `openclaw chat` і `openclaw terminal` усе ще відкривають звичайний
|
||||
TUI агента безпосередньо. Вони не запускають Crestodian.
|
||||
|
||||
Після перемикання до звичайного TUI використовуйте `/crestodian`, щоб повернутися до Crestodian.
|
||||
Ви можете додати наступний запит:
|
||||
Після перемикання на звичайний TUI використовуйте `/crestodian`, щоб повернутися до Crestodian.
|
||||
Можна додати наступний запит:
|
||||
|
||||
```text
|
||||
/crestodian
|
||||
/crestodian restart gateway
|
||||
```
|
||||
|
||||
Перемикання агента всередині TUI залишає підказку про те, що доступний `/crestodian`.
|
||||
Перемикання агентів усередині TUI залишає підказку, що `/crestodian` доступний.
|
||||
|
||||
## Режим порятунку повідомлень
|
||||
## Режим відновлення повідомлень
|
||||
|
||||
Режим порятунку повідомлень — це точка входу каналу повідомлень для Crestodian. Він призначений
|
||||
для випадків, коли ваш звичайний агент не працює, але довірений канал, такий як WhatsApp,
|
||||
Режим відновлення повідомлень — це точка входу каналу повідомлень для Crestodian. Він призначений
|
||||
для випадків, коли ваш звичайний агент не працює, але довірений канал, наприклад WhatsApp,
|
||||
усе ще приймає команди.
|
||||
|
||||
Підтримувана текстова команда:
|
||||
@ -225,34 +229,35 @@ You: /crestodian yes
|
||||
OpenClaw: Applied. Audit entry written.
|
||||
```
|
||||
|
||||
Створення агента також можна поставити в чергу з локального запиту або з режиму порятунку:
|
||||
Створення агента також можна поставити в чергу з локального запиту або в режимі відновлення:
|
||||
|
||||
```text
|
||||
create agent work workspace ~/Projects/work model openai/gpt-5.5
|
||||
/crestodian create agent work workspace ~/Projects/work
|
||||
```
|
||||
|
||||
Віддалений режим порятунку — це адміністративна поверхня. До нього треба ставитися як до
|
||||
Віддалений режим відновлення — це адміністративна поверхня. До нього слід ставитися як до
|
||||
віддаленого відновлення конфігурації, а не як до звичайного чату.
|
||||
|
||||
Контракт безпеки для віддаленого режиму порятунку:
|
||||
Контракт безпеки для віддаленого відновлення:
|
||||
|
||||
- Вимкнений, коли активне sandboxing. Якщо агент/сеанс у sandbox,
|
||||
Crestodian має відмовити у віддаленому режимі порятунку й пояснити, що потрібне локальне відновлення через CLI.
|
||||
- Типовий ефективний стан — `auto`: дозволяти віддалений режим порятунку лише в довіреному режимі роботи YOLO,
|
||||
де runtime уже має незасandboxену локальну владу.
|
||||
- Вимагати явну ідентичність власника. Режим порятунку не повинен приймати шаблонні правила відправника,
|
||||
політику відкритих груп, неавтентифіковані Webhook або анонімні канали.
|
||||
- Типово лише owner DM. Порятунок у групі/каналі вимагає явної згоди й
|
||||
усе одно має спрямовувати запити на схвалення до owner DM.
|
||||
- Віддалений режим порятунку не може відкрити локальний TUI або перемкнутися до інтерактивного сеансу агента.
|
||||
Для передачі керування агенту використовуйте локальний `openclaw`.
|
||||
- Постійні записи все одно вимагають схвалення, навіть у режимі порятунку.
|
||||
- Аудитувати кожну застосовану операцію порятунку, включно з каналом, обліковим записом, відправником,
|
||||
ключем сеансу, операцією, хешем конфігурації до та хешем конфігурації після.
|
||||
- Ніколи не повторювати секрети. Перевірка SecretRef має повідомляти про доступність, а не значення.
|
||||
- Якщо Gateway працює, віддавайте перевагу типізованим операціям Gateway. Якщо Gateway не працює,
|
||||
використовуйте лише мінімальну локальну поверхню відновлення, яка не залежить від звичайного циклу агента.
|
||||
- Вимкнено, коли активне sandboxing. Якщо агент/сеанс ізольований,
|
||||
Crestodian має відмовити у віддаленому відновленні та пояснити, що потрібне локальне відновлення через CLI.
|
||||
- Ефективний стан за замовчуванням — `auto`: дозволяти віддалене відновлення лише в довіреному режимі YOLO,
|
||||
де рантайм уже має локальні повноваження без sandboxing.
|
||||
- Вимагати явну ідентичність власника. Відновлення не повинно приймати правила відправника з wildcard, відкриту політику груп,
|
||||
неавтентифіковані Webhook або анонімні канали.
|
||||
- За замовчуванням лише DM власника. Відновлення в групі/каналі вимагає явного ввімкнення й
|
||||
усе одно має спрямовувати запити на підтвердження до DM власника.
|
||||
- Віддалене відновлення не може відкрити локальний TUI або перемкнутися в інтерактивний сеанс агента.
|
||||
Для передавання агенту використовуйте локальний `openclaw`.
|
||||
- Постійні записи все одно вимагають підтвердження, навіть у режимі відновлення.
|
||||
- Аудитуйте кожну застосовану операцію відновлення, зокрема канал, обліковий запис, відправника,
|
||||
ключ сеансу, операцію, хеш конфігурації до та хеш конфігурації після.
|
||||
- Ніколи не виводьте секрети. Перевірка SecretRef має повідомляти про доступність, а не про значення.
|
||||
- Якщо Gateway працює, віддавайте перевагу типізованим операціям Gateway. Якщо Gateway
|
||||
не працює, використовуйте лише мінімальну локальну поверхню відновлення, яка не залежить від
|
||||
звичайного циклу агента.
|
||||
|
||||
Форма конфігурації:
|
||||
|
||||
@ -269,46 +274,46 @@ create agent work workspace ~/Projects/work model openai/gpt-5.5
|
||||
|
||||
`enabled` має приймати:
|
||||
|
||||
- `"auto"`: типово. Дозволяти лише тоді, коли ефективний runtime — YOLO і
|
||||
- `"auto"`: за замовчуванням. Дозволяти лише тоді, коли ефективний рантайм — YOLO і
|
||||
sandboxing вимкнено.
|
||||
- `false`: ніколи не дозволяти режим порятунку через канал повідомлень.
|
||||
- `true`: явно дозволяти режим порятунку, коли проходять перевірки власника/каналу. Це
|
||||
все одно не повинно обходити заборону sandboxing.
|
||||
- `false`: ніколи не дозволяти відновлення через канал повідомлень.
|
||||
- `true`: явно дозволити відновлення, коли проходять перевірки власника/каналу. Це
|
||||
все одно не має обходити заборону sandboxing.
|
||||
|
||||
Типова поза YOLO для `"auto"` така:
|
||||
Поведінка YOLO за замовчуванням для `"auto"`:
|
||||
|
||||
- режим sandbox вирішується як `off`
|
||||
- `tools.exec.security` вирішується як `full`
|
||||
- `tools.exec.ask` вирішується як `off`
|
||||
- режим sandbox дорівнює `off`
|
||||
- `tools.exec.security` дорівнює `full`
|
||||
- `tools.exec.ask` дорівнює `off`
|
||||
|
||||
Віддалений режим порятунку покривається Docker lane:
|
||||
Віддалене відновлення покривається Docker lane:
|
||||
|
||||
```bash
|
||||
pnpm test:docker:crestodian-rescue
|
||||
```
|
||||
|
||||
Локальний резервний планувальник без конфігурації покривається:
|
||||
Резервний локальний планувальник без конфігурації покривається:
|
||||
|
||||
```bash
|
||||
pnpm test:docker:crestodian-planner
|
||||
```
|
||||
|
||||
Опційна жива перевірка поверхні команд каналу перевіряє `/crestodian status`, а також
|
||||
постійний цикл схвалення через обробник режиму порятунку:
|
||||
Опціональна жива smoke-перевірка поверхні команд каналу перевіряє `/crestodian status`, а також
|
||||
цикл постійного підтвердження через обробник відновлення:
|
||||
|
||||
```bash
|
||||
pnpm test:live:crestodian-rescue-channel
|
||||
```
|
||||
|
||||
Свіже налаштування без конфігурації через Crestodian покривається:
|
||||
Свіже безконфігураційне налаштування через Crestodian покривається:
|
||||
|
||||
```bash
|
||||
pnpm test:docker:crestodian-first-run
|
||||
```
|
||||
|
||||
## Пов’язане
|
||||
## Пов’язані матеріали
|
||||
|
||||
- [Довідка CLI](/uk/cli)
|
||||
- [Довідник CLI](/uk/cli)
|
||||
- [Doctor](/uk/cli/doctor)
|
||||
- [TUI](/uk/cli/tui)
|
||||
- [Sandbox](/uk/cli/sandbox)
|
||||
|
||||
@ -1,22 +1,22 @@
|
||||
---
|
||||
read_when:
|
||||
- Налаштування типових параметрів агента (моделі, мислення, робочий простір, Heartbeat, медіа, Skills)
|
||||
- Налаштування маршрутизації між кількома агентами та прив’язок
|
||||
- Налаштування сеансу, доставки повідомлень і поведінки режиму розмови
|
||||
summary: Типові налаштування агента, маршрутизація між кількома агентами, сесія, повідомлення та конфігурація розмови
|
||||
- Налаштування типових параметрів агента (моделі, thinking, робочий простір, Heartbeat, медіа, Skills)
|
||||
- Налаштування маршрутизації з кількома агентами та прив’язок
|
||||
- Налаштування сесії, доставки повідомлень і поведінки режиму talk
|
||||
summary: Типові параметри агента, маршрутизація з кількома агентами, сесія, повідомлення та конфігурація talk
|
||||
title: Конфігурація — агенти
|
||||
x-i18n:
|
||||
generated_at: "2026-04-25T09:15:47Z"
|
||||
generated_at: "2026-04-25T10:05:02Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: feceed7f2ca92def3382c21de1a9245bf264cab49122b7a35157f55b7ad9932f
|
||||
source_hash: e5b3adcd4c809595a51ffd536fc62d9f72ac16fe249b6e23ee0560bc4076eba5
|
||||
source_path: gateway/config-agents.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Ключі конфігурації в межах агента під `agents.*`, `multiAgent.*`, `session.*`,
|
||||
`messages.*` та `talk.*`. Для каналів, інструментів, середовища виконання Gateway та інших
|
||||
ключів верхнього рівня див. [Довідник із конфігурації](/uk/gateway/configuration-reference).
|
||||
`messages.*` і `talk.*`. Для каналів, інструментів, середовища виконання Gateway та інших
|
||||
ключів верхнього рівня див. [Довідник з конфігурації](/uk/gateway/configuration-reference).
|
||||
|
||||
## Типові параметри агента
|
||||
|
||||
@ -32,7 +32,7 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.repoRoot`
|
||||
|
||||
Необов’язковий корінь репозиторію, що показується в рядку Runtime системного запиту. Якщо не задано, OpenClaw автоматично визначає його, піднімаючись вгору від робочого простору.
|
||||
Необов’язковий корінь репозиторію, який показується в рядку Runtime системного запиту. Якщо не задано, OpenClaw автоматично визначає його, піднімаючись угору від робочого простору.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -42,7 +42,7 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.skills`
|
||||
|
||||
Необов’язковий типовий список дозволених Skills для агентів, які не задають
|
||||
Необов’язковий типовий allowlist Skills для агентів, у яких не задано
|
||||
`agents.list[].skills`.
|
||||
|
||||
```json5
|
||||
@ -58,11 +58,11 @@ x-i18n:
|
||||
}
|
||||
```
|
||||
|
||||
- Не вказуйте `agents.defaults.skills`, щоб типово дозволити необмежені Skills.
|
||||
- Не вказуйте `agents.defaults.skills`, щоб Skills типово не обмежувалися.
|
||||
- Не вказуйте `agents.list[].skills`, щоб успадкувати типові значення.
|
||||
- Установіть `agents.list[].skills: []`, щоб не дозволяти жодних Skills.
|
||||
- Непорожній список `agents.list[].skills` є остаточним набором для цього агента; він
|
||||
не об’єднується з типовими значеннями.
|
||||
- Установіть `agents.list[].skills: []`, щоб не було Skills.
|
||||
- Непорожній список `agents.list[].skills` є остаточним набором для цього агента;
|
||||
він не об’єднується з типовими значеннями.
|
||||
|
||||
### `agents.defaults.skipBootstrap`
|
||||
|
||||
@ -76,10 +76,10 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.contextInjection`
|
||||
|
||||
Керує тим, коли bootstrap-файли робочого простору вбудовуються в системний запит. Типове значення: `"always"`.
|
||||
Керує тим, коли bootstrap-файли робочого простору впроваджуються в системний запит. Типове значення: `"always"`.
|
||||
|
||||
- `"continuation-skip"`: на безпечних ходах продовження (після завершеної відповіді асистента) повторне вбудовування bootstrap-даних робочого простору пропускається, що зменшує розмір запиту. Запуски Heartbeat і повторні спроби після Compaction все одно перебудовують контекст.
|
||||
- `"never"`: вимикає вбудовування bootstrap-даних робочого простору та файлів контексту на кожному ході. Використовуйте це лише для агентів, які повністю керують життєвим циклом свого запиту (власні рушії контексту, нативні середовища виконання, що самі будують контекст, або спеціалізовані сценарії без bootstrap). Ходи Heartbeat і відновлення після Compaction також пропускають вбудовування.
|
||||
- `"continuation-skip"`: у безпечних ходах продовження (після завершеної відповіді асистента) повторне впровадження bootstrap робочого простору пропускається, що зменшує розмір запиту. Запуски Heartbeat і повторні спроби після Compaction усе одно перебудовують контекст.
|
||||
- `"never"`: вимикає впровадження bootstrap робочого простору та файлів контексту на кожному ході. Використовуйте це лише для агентів, які повністю керують власним життєвим циклом запиту (власні рушії контексту, нативні середовища виконання, що самі формують контекст, або спеціалізовані робочі процеси без bootstrap). Ходи Heartbeat і відновлення після Compaction також пропускають впровадження.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -89,7 +89,7 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.bootstrapMaxChars`
|
||||
|
||||
Максимальна кількість символів на один bootstrap-файл робочого простору до обрізання. Типове значення: `12000`.
|
||||
Максимальна кількість символів на bootstrap-файл робочого простору до обрізання. Типове значення: `12000`.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -99,7 +99,7 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.bootstrapTotalMaxChars`
|
||||
|
||||
Максимальна загальна кількість символів, що вбудовуються з усіх bootstrap-файлів робочого простору. Типове значення: `60000`.
|
||||
Максимальна загальна кількість символів, що впроваджується з усіх bootstrap-файлів робочого простору. Типове значення: `60000`.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -109,12 +109,12 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.bootstrapPromptTruncationWarning`
|
||||
|
||||
Керує видимим для агента текстом попередження, коли bootstrap-контекст обрізано.
|
||||
Керує видимим для агента текстом попередження, коли bootstrap-контекст обрізається.
|
||||
Типове значення: `"once"`.
|
||||
|
||||
- `"off"`: ніколи не вбудовувати текст попередження в системний запит.
|
||||
- `"once"`: вбудовувати попередження один раз для кожного унікального сигнатурного випадку обрізання (рекомендовано).
|
||||
- `"always"`: вбудовувати попередження при кожному запуску, якщо є обрізання.
|
||||
- `"off"`: ніколи не впроваджувати текст попередження в системний запит.
|
||||
- `"once"`: впроваджувати попередження один раз для кожного унікального сигнатурного випадку обрізання (рекомендовано).
|
||||
- `"always"`: впроваджувати попередження на кожному запуску, коли є обрізання.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -122,34 +122,34 @@ x-i18n:
|
||||
}
|
||||
```
|
||||
|
||||
### Карта відповідальності за бюджет контексту
|
||||
### Мапа власності бюджетів контексту
|
||||
|
||||
OpenClaw має кілька великих бюджетів запиту/контексту, і вони
|
||||
навмисно розділені між підсистемами, а не проходять через один універсальний
|
||||
параметр.
|
||||
навмисно розділені між підсистемами, а не зведені до одного загального
|
||||
параметра.
|
||||
|
||||
- `agents.defaults.bootstrapMaxChars` /
|
||||
`agents.defaults.bootstrapTotalMaxChars`:
|
||||
звичайне вбудовування bootstrap-даних робочого простору.
|
||||
звичайне впровадження bootstrap робочого простору.
|
||||
- `agents.defaults.startupContext.*`:
|
||||
одноразова стартова преамбула для `/new` і `/reset`, зокрема нещодавні щоденні
|
||||
одноразова стартова преамбула для `/new` і `/reset`, зокрема останні щоденні
|
||||
файли `memory/*.md`.
|
||||
- `skills.limits.*`:
|
||||
компактний список Skills, вбудований у системний запит.
|
||||
компактний список Skills, що впроваджується в системний запит.
|
||||
- `agents.defaults.contextLimits.*`:
|
||||
обмежені уривки середовища виконання та вбудовані блоки, що належать середовищу виконання.
|
||||
обмежені витяги часу виконання та впроваджені блоки, що належать середовищу виконання.
|
||||
- `memory.qmd.limits.*`:
|
||||
проіндексовані фрагменти пошуку пам’яті та розмір вбудовування.
|
||||
розмір фрагментів і впровадження для індексованого пошуку в пам’яті.
|
||||
|
||||
Використовуйте відповідне перевизначення для окремого агента, лише якщо одному агенту потрібен інший
|
||||
бюджет:
|
||||
Використовуйте відповідне перевизначення для окремого агента лише тоді, коли
|
||||
одному агенту потрібен інший бюджет:
|
||||
|
||||
- `agents.list[].skillsLimits.maxSkillsPromptChars`
|
||||
- `agents.list[].contextLimits.*`
|
||||
|
||||
#### `agents.defaults.startupContext`
|
||||
|
||||
Керує стартовою преамбулою першого ходу, яка вбудовується в прості запуски `/new` і `/reset`.
|
||||
Керує стартовою преамбулою першого ходу, яка впроваджується в порожніх запусках `/new` і `/reset`.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -170,7 +170,7 @@ OpenClaw має кілька великих бюджетів запиту/кон
|
||||
|
||||
#### `agents.defaults.contextLimits`
|
||||
|
||||
Спільні типові значення для обмежених поверхонь контексту середовища виконання.
|
||||
Спільні типові значення для обмежених поверхонь контексту часу виконання.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -187,13 +187,13 @@ OpenClaw має кілька великих бюджетів запиту/кон
|
||||
}
|
||||
```
|
||||
|
||||
- `memoryGetMaxChars`: типове обмеження уривка `memory_get` до додавання
|
||||
метаданих обрізання та повідомлення про продовження.
|
||||
- `memoryGetDefaultLines`: типове вікно рядків для `memory_get`, коли `lines`
|
||||
- `memoryGetMaxChars`: типове обмеження витягу `memory_get` до того, як буде додано
|
||||
метадані обрізання та повідомлення про продовження.
|
||||
- `memoryGetDefaultLines`: типове вікно рядків `memory_get`, коли `lines`
|
||||
не вказано.
|
||||
- `toolResultMaxChars`: поточне обмеження результату інструмента, що використовується для збережених результатів і
|
||||
- `toolResultMaxChars`: поточне обмеження результатів інструментів, що використовується для збережених результатів і
|
||||
відновлення після переповнення.
|
||||
- `postCompactionMaxChars`: обмеження уривка `AGENTS.md`, що використовується під час вбудовування
|
||||
- `postCompactionMaxChars`: обмеження витягу AGENTS.md, що використовується під час впровадження
|
||||
оновлення після Compaction.
|
||||
|
||||
#### `agents.list[].contextLimits`
|
||||
@ -225,8 +225,8 @@ OpenClaw має кілька великих бюджетів запиту/кон
|
||||
|
||||
#### `skills.limits.maxSkillsPromptChars`
|
||||
|
||||
Глобальне обмеження для компактного списку Skills, вбудованого в системний запит. Це
|
||||
не впливає на читання файлів `SKILL.md` за потреби.
|
||||
Глобальне обмеження для компактного списку Skills, що впроваджується в системний запит. Це
|
||||
не впливає на читання файлів `SKILL.md` на вимогу.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -259,11 +259,11 @@ OpenClaw має кілька великих бюджетів запиту/кон
|
||||
|
||||
### `agents.defaults.imageMaxDimensionPx`
|
||||
|
||||
Максимальний розмір у пікселях для довшої сторони зображення в блоках зображень транскрипту/інструмента перед викликами постачальника.
|
||||
Максимальний розмір у пікселях для довшого боку зображення в блоках зображень транскрипту/інструментів до викликів провайдера.
|
||||
Типове значення: `1200`.
|
||||
|
||||
Менші значення зазвичай зменшують використання візуальних токенів і розмір корисного навантаження запиту для сценаріїв із великою кількістю знімків екрана.
|
||||
Більші значення зберігають більше візуальних деталей.
|
||||
Нижчі значення зазвичай зменшують використання vision-токенів і розмір payload запиту для сценаріїв із великою кількістю знімків екрана.
|
||||
Вищі значення зберігають більше візуальних деталей.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -273,7 +273,7 @@ OpenClaw має кілька великих бюджетів запиту/кон
|
||||
|
||||
### `agents.defaults.userTimezone`
|
||||
|
||||
Часовий пояс для контексту системного запиту (не для часових позначок повідомлень). Якщо не вказано, використовується часовий пояс хоста.
|
||||
Часовий пояс для контексту системного запиту (не для часових міток повідомлень). Якщо не вказано, використовується часовий пояс хоста.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -283,7 +283,7 @@ OpenClaw має кілька великих бюджетів запиту/кон
|
||||
|
||||
### `agents.defaults.timeFormat`
|
||||
|
||||
Формат часу в системному запиті. Типове значення: `auto` (налаштування ОС).
|
||||
Формат часу в системному запиті. Типове значення: `auto` (параметри ОС).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -321,9 +321,9 @@ OpenClaw має кілька великих бюджетів запиту/кон
|
||||
primary: "anthropic/claude-opus-4-6",
|
||||
fallbacks: ["openai/gpt-5.4-mini"],
|
||||
},
|
||||
params: { cacheRetention: "long" }, // глобальні типові параметри постачальника
|
||||
params: { cacheRetention: "long" }, // глобальні типові параметри провайдера
|
||||
embeddedHarness: {
|
||||
runtime: "pi", // pi | auto | id зареєстрованого harness, наприклад codex
|
||||
runtime: "pi", // pi | auto | ідентифікатор зареєстрованого harness, наприклад codex
|
||||
fallback: "pi", // pi | none
|
||||
},
|
||||
pdfMaxBytesMb: 10,
|
||||
@ -341,53 +341,53 @@ OpenClaw має кілька великих бюджетів запиту/кон
|
||||
```
|
||||
|
||||
- `model`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
|
||||
- Форма рядка задає лише основну модель.
|
||||
- Форма об’єкта задає основну модель і впорядкований список резервних моделей для перемикання у разі відмови.
|
||||
- Рядкова форма задає лише основну модель.
|
||||
- Об’єктна форма задає основну модель і впорядкований список резервних моделей для failover.
|
||||
- `imageModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
|
||||
- Використовується шляхом інструмента `image` як конфігурація його моделі для роботи із зображеннями.
|
||||
- Використовується шляхом інструмента `image` як конфігурація його vision-моделі.
|
||||
- Також використовується як резервна маршрутизація, коли вибрана/типова модель не може приймати вхідні зображення.
|
||||
- `imageGenerationModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
|
||||
- Використовується спільною можливістю генерації зображень і будь-якою майбутньою поверхнею інструмента/Plugin, що генерує зображення.
|
||||
- Використовується спільною можливістю генерації зображень і будь-якою майбутньою поверхнею інструментів/Plugin, яка генерує зображення.
|
||||
- Типові значення: `google/gemini-3.1-flash-image-preview` для нативної генерації зображень Gemini, `fal/fal-ai/flux/dev` для fal або `openai/gpt-image-2` для OpenAI Images.
|
||||
- Якщо ви напряму вибираєте `provider/model`, налаштуйте також відповідну автентифікацію постачальника (наприклад, `GEMINI_API_KEY` або `GOOGLE_API_KEY` для `google/*`, `OPENAI_API_KEY` або OpenAI Codex OAuth для `openai/gpt-image-2`, `FAL_KEY` для `fal/*`).
|
||||
- Якщо не вказано, `image_generate` усе одно може визначити типове значення постачальника з наявною автентифікацією. Спочатку він пробує поточного типового постачальника, а потім решту зареєстрованих постачальників генерації зображень у порядку ідентифікаторів постачальників.
|
||||
- Якщо ви напряму вибираєте провайдера/модель, також налаштуйте відповідну автентифікацію провайдера (наприклад, `GEMINI_API_KEY` або `GOOGLE_API_KEY` для `google/*`, `OPENAI_API_KEY` або OpenAI Codex OAuth для `openai/gpt-image-2`, `FAL_KEY` для `fal/*`).
|
||||
- Якщо не вказано, `image_generate` усе одно може визначити типове значення провайдера з налаштованою автентифікацією. Спочатку він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації зображень у порядку їхніх ідентифікаторів.
|
||||
- `musicGenerationModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
|
||||
- Використовується спільною можливістю генерації музики та вбудованим інструментом `music_generate`.
|
||||
- Типові значення: `google/lyria-3-clip-preview`, `google/lyria-3-pro-preview` або `minimax/music-2.5+`.
|
||||
- Якщо не вказано, `music_generate` усе одно може визначити типове значення постачальника з наявною автентифікацією. Спочатку він пробує поточного типового постачальника, а потім решту зареєстрованих постачальників генерації музики в порядку ідентифікаторів постачальників.
|
||||
- Якщо ви напряму вибираєте `provider/model`, налаштуйте також відповідну автентифікацію/ключ API постачальника.
|
||||
- Типові значення: `google/lyria-3-clip-preview`, `google/lyria-3-pro-preview` або `minimax/music-2.6`.
|
||||
- Якщо не вказано, `music_generate` усе одно може визначити типове значення провайдера з налаштованою автентифікацією. Спочатку він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації музики в порядку їхніх ідентифікаторів.
|
||||
- Якщо ви напряму вибираєте провайдера/модель, також налаштуйте відповідну автентифікацію провайдера/API key.
|
||||
- `videoGenerationModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
|
||||
- Використовується спільною можливістю генерації відео та вбудованим інструментом `video_generate`.
|
||||
- Типові значення: `qwen/wan2.6-t2v`, `qwen/wan2.6-i2v`, `qwen/wan2.6-r2v`, `qwen/wan2.6-r2v-flash` або `qwen/wan2.7-r2v`.
|
||||
- Якщо не вказано, `video_generate` усе одно може визначити типове значення постачальника з наявною автентифікацією. Спочатку він пробує поточного типового постачальника, а потім решту зареєстрованих постачальників генерації відео в порядку ідентифікаторів постачальників.
|
||||
- Якщо ви напряму вибираєте `provider/model`, налаштуйте також відповідну автентифікацію/ключ API постачальника.
|
||||
- Вбудований постачальник генерації відео Qwen підтримує до 1 вихідного відео, 1 вхідного зображення, 4 вхідних відео, тривалість до 10 секунд, а також параметри рівня постачальника `size`, `aspectRatio`, `resolution`, `audio` і `watermark`.
|
||||
- Якщо не вказано, `video_generate` усе одно може визначити типове значення провайдера з налаштованою автентифікацією. Спочатку він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації відео в порядку їхніх ідентифікаторів.
|
||||
- Якщо ви напряму вибираєте провайдера/модель, також налаштуйте відповідну автентифікацію провайдера/API key.
|
||||
- Вбудований провайдер генерації відео Qwen підтримує до 1 вихідного відео, 1 вхідного зображення, 4 вхідних відео, тривалість до 10 секунд, а також параметри рівня провайдера `size`, `aspectRatio`, `resolution`, `audio` і `watermark`.
|
||||
- `pdfModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
|
||||
- Використовується інструментом `pdf` для маршрутизації моделі.
|
||||
- Якщо не вказано, інструмент PDF повертається до `imageModel`, а потім до визначеної моделі сеансу/типової моделі.
|
||||
- `pdfMaxBytesMb`: типове обмеження розміру PDF для інструмента `pdf`, якщо `maxBytesMb` не передано під час виклику.
|
||||
- `pdfMaxPages`: типова максимальна кількість сторінок, що враховується в режимі резервного вилучення в інструменті `pdf`.
|
||||
- `verboseDefault`: типовий рівень докладності для агентів. Значення: `"off"`, `"on"`, `"full"`. Типове значення: `"off"`.
|
||||
- `elevatedDefault`: типовий рівень розширеного виводу для агентів. Значення: `"off"`, `"on"`, `"ask"`, `"full"`. Типове значення: `"on"`.
|
||||
- `model.primary`: формат `provider/model` (наприклад, `openai/gpt-5.4` для доступу через ключ API або `openai-codex/gpt-5.5` для Codex OAuth). Якщо ви не вкажете постачальника, OpenClaw спочатку намагається знайти псевдонім, потім — унікальний збіг серед налаштованих постачальників для цього точного ідентифікатора моделі, і лише після цього повертається до налаштованого типового постачальника (застаріла поведінка для сумісності, тому надавайте перевагу явному `provider/model`). Якщо цей постачальник більше не надає налаштовану типову модель, OpenClaw повертається до першої налаштованої пари постачальник/модель замість того, щоб показувати застаріле типове значення для видаленого постачальника.
|
||||
- `models`: налаштований каталог моделей і список дозволених моделей для `/model`. Кожен запис може містити `alias` (скорочення) і `params` (специфічні для постачальника параметри, наприклад `temperature`, `maxTokens`, `cacheRetention`, `context1m`, `responsesServerCompaction`, `responsesCompactThreshold`, `extra_body`/`extraBody`).
|
||||
- Безпечні редагування: використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додавати записи. `config set` відмовляє в замінах, які вилучили б наявні записи списку дозволених моделей, якщо ви не передасте `--replace`.
|
||||
- Потоки налаштування/онбордингу в межах постачальника об’єднують вибрані моделі постачальника в цю мапу та зберігають уже налаштованих сторонніх постачальників.
|
||||
- Для прямих моделей OpenAI Responses автоматично вмикається server-side Compaction. Використовуйте `params.responsesServerCompaction: false`, щоб припинити вбудовування `context_management`, або `params.responsesCompactThreshold`, щоб перевизначити поріг. Див. [Server-side Compaction OpenAI](/uk/providers/openai#server-side-compaction-responses-api).
|
||||
- `params`: глобальні типові параметри постачальника, що застосовуються до всіх моделей. Задаються в `agents.defaults.params` (наприклад, `{ cacheRetention: "long" }`).
|
||||
- Пріоритет об’єднання `params` (конфігурація): `agents.defaults.params` (глобальна база) перевизначається `agents.defaults.models["provider/model"].params` (для конкретної моделі), а потім `agents.list[].params` (для відповідного `id` агента) перевизначає за ключем. Докладніше див. у [Кешування запитів](/uk/reference/prompt-caching).
|
||||
- `params.extra_body`/`params.extraBody`: розширений JSON прямої передачі, який об’єднується з тілами запитів `api: "openai-completions"` для OpenAI-сумісних проксі. Якщо він конфліктує зі згенерованими ключами запиту, додаткове тіло має пріоритет; маршрути completions, що не є нативними, після цього все одно прибирають специфічний для OpenAI параметр `store`.
|
||||
- `embeddedHarness`: типова політика низькорівневого середовища виконання вбудованого агента. Якщо `runtime` не вказано, типово використовується OpenClaw Pi. Використовуйте `runtime: "pi"`, щоб примусово вибрати вбудований harness PI, `runtime: "auto"`, щоб дозволити зареєстрованим harness у Plugin перехоплювати підтримувані моделі, або ідентифікатор зареєстрованого harness, наприклад `runtime: "codex"`. Установіть `fallback: "none"`, щоб вимкнути автоматичний резервний перехід до PI. Явні середовища виконання Plugin, такі як `codex`, типово завершуються з помилкою без резервного переходу, якщо ви не встановите `fallback: "pi"` у тій самій області перевизначення. Зберігайте посилання на моделі в канонічному форматі `provider/model`; вибирайте Codex, Claude CLI, Gemini CLI та інші бекенди виконання через конфігурацію runtime, а не через застарілі префікси постачальників для runtime. Див. [Середовища виконання агентів](/uk/concepts/agent-runtimes), щоб зрозуміти, чим це відрізняється від вибору постачальника/моделі.
|
||||
- Засоби запису конфігурації, що змінюють ці поля (наприклад, `/models set`, `/models set-image` та команди додавання/видалення резервних варіантів), зберігають канонічну форму об’єкта й за можливості зберігають наявні списки резервних моделей.
|
||||
- `maxConcurrent`: максимальна кількість паралельних запусків агентів між сеансами (кожен сеанс усе одно виконується послідовно). Типове значення: 4.
|
||||
- Якщо не вказано, інструмент PDF використовує як резерв `imageModel`, а потім визначену модель сесії/типову модель.
|
||||
- `pdfMaxBytesMb`: типове обмеження розміру PDF для інструмента `pdf`, коли `maxBytesMb` не передається під час виклику.
|
||||
- `pdfMaxPages`: типова максимальна кількість сторінок, які враховуються в режимі резервного вилучення інструмента `pdf`.
|
||||
- `verboseDefault`: типовий рівень verbose для агентів. Значення: `"off"`, `"on"`, `"full"`. Типове значення: `"off"`.
|
||||
- `elevatedDefault`: типовий рівень elevated-output для агентів. Значення: `"off"`, `"on"`, `"ask"`, `"full"`. Типове значення: `"on"`.
|
||||
- `model.primary`: формат `provider/model` (наприклад, `openai/gpt-5.4` для доступу через API key або `openai-codex/gpt-5.5` для Codex OAuth). Якщо не вказати провайдера, OpenClaw спочатку пробує alias, потім унікальний збіг серед налаштованих провайдерів для цього точного id моделі, і лише після цього повертається до налаштованого типового провайдера (застаріла поведінка сумісності, тому краще явно вказувати `provider/model`). Якщо цей провайдер більше не надає налаштовану типову модель, OpenClaw переходить до першого налаштованого провайдера/моделі замість того, щоб показувати застаріле типове значення видаленого провайдера.
|
||||
- `models`: налаштований каталог моделей і allowlist для `/model`. Кожен запис може містити `alias` (скорочення) і `params` (специфічні для провайдера параметри, наприклад `temperature`, `maxTokens`, `cacheRetention`, `context1m`, `responsesServerCompaction`, `responsesCompactThreshold`, `extra_body`/`extraBody`).
|
||||
- Безпечне редагування: використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додавати записи. `config set` відхиляє заміни, які видалили б наявні записи allowlist, якщо не передати `--replace`.
|
||||
- Потоки налаштування/онбордингу в межах провайдера об’єднують вибрані моделі провайдера в цю мапу та зберігають уже налаштованих, не пов’язаних із цим, провайдерів.
|
||||
- Для прямих моделей OpenAI Responses server-side Compaction вмикається автоматично. Використовуйте `params.responsesServerCompaction: false`, щоб припинити впровадження `context_management`, або `params.responsesCompactThreshold`, щоб перевизначити поріг. Див. [OpenAI server-side compaction](/uk/providers/openai#server-side-compaction-responses-api).
|
||||
- `params`: глобальні типові параметри провайдера, що застосовуються до всіх моделей. Задаються в `agents.defaults.params` (наприклад, `{ cacheRetention: "long" }`).
|
||||
- Пріоритет злиття `params` (конфігурація): `agents.defaults.params` (глобальна база) перевизначається `agents.defaults.models["provider/model"].params` (для конкретної моделі), а потім `agents.list[].params` (для відповідного id агента) перевизначає за ключем. Див. [Prompt Caching](/uk/reference/prompt-caching) для подробиць.
|
||||
- `params.extra_body`/`params.extraBody`: розширений JSON для прямої передачі, який зливається в тіла запитів `api: "openai-completions"` для OpenAI-сумісних проксі. Якщо він конфліктує зі згенерованими ключами запиту, додаткове тіло має пріоритет; маршрути completions, що не є нативними, після цього все одно видаляють OpenAI-специфічний `store`.
|
||||
- `embeddedHarness`: типова низькорівнева політика середовища виконання вбудованого агента. Якщо `runtime` не вказано, типовим є OpenClaw Pi. Використовуйте `runtime: "pi"`, щоб примусово використовувати вбудований harness PI, `runtime: "auto"`, щоб зареєстровані Plugin harness могли перехоплювати підтримувані моделі, або ідентифікатор зареєстрованого harness, наприклад `runtime: "codex"`. Установіть `fallback: "none"`, щоб вимкнути автоматичний резервний перехід на PI. Явні runtime Plugin, такі як `codex`, типово працюють у fail-closed режимі, якщо в тій самій області перевизначення не встановити `fallback: "pi"`. Зберігайте посилання на моделі в канонічному вигляді `provider/model`; вибирайте Codex, Claude CLI, Gemini CLI та інші бекенди виконання через конфігурацію runtime, а не через застарілі префікси runtime-провайдерів. Див. [Agent runtimes](/uk/concepts/agent-runtimes), щоб зрозуміти, чим це відрізняється від вибору провайдера/моделі.
|
||||
- Засоби запису конфігурації, які змінюють ці поля (наприклад `/models set`, `/models set-image` і команди додавання/видалення fallback), зберігають канонічну об’єктну форму та, за можливості, зберігають наявні списки fallback.
|
||||
- `maxConcurrent`: максимальна кількість паралельних запусків агентів між сесіями (кожна сесія все одно серіалізується). Типове значення: 4.
|
||||
|
||||
### `agents.defaults.embeddedHarness`
|
||||
|
||||
`embeddedHarness` керує тим, який низькорівневий виконавець запускає ходи вбудованого агента.
|
||||
У більшості розгортань слід залишати типове середовище виконання OpenClaw Pi.
|
||||
У більшості розгортань слід залишити типове середовище виконання OpenClaw Pi.
|
||||
Використовуйте його, коли довірений Plugin надає нативний harness, наприклад вбудований
|
||||
harness сервера застосунку Codex. Для загального уявлення див.
|
||||
[Середовища виконання агентів](/uk/concepts/agent-runtimes).
|
||||
harness сервера застосунку Codex. Для розуміння моделі див.
|
||||
[Agent runtimes](/uk/concepts/agent-runtimes).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -404,15 +404,15 @@ harness сервера застосунку Codex. Для загального
|
||||
```
|
||||
|
||||
- `runtime`: `"auto"`, `"pi"` або ідентифікатор зареєстрованого harness Plugin. Вбудований Plugin Codex реєструє `codex`.
|
||||
- `fallback`: `"pi"` або `"none"`. У режимі `runtime: "auto"` пропущене значення `fallback` типово дорівнює `"pi"`, щоб старі конфігурації могли й надалі використовувати PI, коли жоден harness Plugin не перехоплює запуск. У режимі явного runtime Plugin, наприклад `runtime: "codex"`, пропущене значення `fallback` типово дорівнює `"none"`, щоб відсутній harness спричиняв помилку замість тихого використання PI. Перевизначення runtime не успадковують `fallback` із ширшої області; установіть `fallback: "pi"` поруч із явним `runtime`, якщо вам навмисно потрібен такий резервний режим сумісності. Помилки вибраного harness Plugin завжди показуються безпосередньо.
|
||||
- Перевизначення через змінні середовища: `OPENCLAW_AGENT_RUNTIME=<id|auto|pi>` перевизначає `runtime`; `OPENCLAW_AGENT_HARNESS_FALLBACK=pi|none` перевизначає `fallback` для цього процесу.
|
||||
- Для розгортань лише з Codex установіть `model: "openai/gpt-5.5"` і `embeddedHarness.runtime: "codex"`. Ви також можете явно встановити `embeddedHarness.fallback: "none"` для наочності; це типове значення для явних runtime Plugin.
|
||||
- Вибір harness закріплюється за ідентифікатором сеансу після першого вбудованого запуску. Зміни конфігурації/середовища впливають на нові або скинуті сеанси, але не на наявний транскрипт. Застарілі сеанси з історією транскрипту, але без зафіксованого закріплення, вважаються закріпленими за PI. `/status` повідомляє фактичне середовище виконання, наприклад `Runtime: OpenClaw Pi Default` або `Runtime: OpenAI Codex`.
|
||||
- Це керує лише harness вбудованого чату. Генерація медіа, обробка зображень, PDF, музика, відео та TTS, як і раніше, використовують свої налаштування постачальника/моделі.
|
||||
- `fallback`: `"pi"` або `"none"`. У режимі `runtime: "auto"` не вказаний fallback типово дорівнює `"pi"`, щоб старі конфігурації могли й далі використовувати PI, коли жоден Plugin harness не перехоплює запуск. У режимі явного runtime Plugin, наприклад `runtime: "codex"`, не вказаний fallback типово дорівнює `"none"`, щоб відсутність harness призводила до помилки, а не до непомітного використання PI. Перевизначення runtime не успадковують fallback із ширшої області; установіть `fallback: "pi"` разом із явним runtime, якщо вам свідомо потрібен такий сумісний резервний варіант. Помилки вибраного Plugin harness завжди показуються безпосередньо.
|
||||
- Перевизначення через змінні середовища: `OPENCLAW_AGENT_RUNTIME=<id|auto|pi>` перевизначає `runtime`; `OPENCLAW_AGENT_HARNESS_FALLBACK=pi|none` перевизначає fallback для цього процесу.
|
||||
- Для розгортань лише з Codex установіть `model: "openai/gpt-5.5"` і `embeddedHarness.runtime: "codex"`. Для читабельності ви також можете явно встановити `embeddedHarness.fallback: "none"`; це типове значення для явних runtime Plugin.
|
||||
- Вибір harness фіксується для кожного id сесії після першого вбудованого запуску. Зміни конфігурації/середовища впливають на нові або скинуті сесії, а не на наявний транскрипт. Застарілі сесії з історією транскрипту, але без зафіксованого pin, вважаються прив’язаними до PI. `/status` показує фактичний runtime, наприклад `Runtime: OpenClaw Pi Default` або `Runtime: OpenAI Codex`.
|
||||
- Це керує лише harness вбудованого чату. Генерація медіа, vision, PDF, музика, відео та TTS, як і раніше, використовують свої налаштування провайдера/моделі.
|
||||
|
||||
**Вбудовані скорочені псевдоніми** (застосовуються лише тоді, коли модель є в `agents.defaults.models`):
|
||||
**Вбудовані скорочення alias** (застосовуються лише тоді, коли модель є в `agents.defaults.models`):
|
||||
|
||||
| Псевдонім | Модель |
|
||||
| Alias | Модель |
|
||||
| ------------------- | -------------------------------------------------- |
|
||||
| `opus` | `anthropic/claude-opus-4-6` |
|
||||
| `sonnet` | `anthropic/claude-sonnet-4-6` |
|
||||
@ -423,15 +423,15 @@ harness сервера застосунку Codex. Для загального
|
||||
| `gemini-flash` | `google/gemini-3-flash-preview` |
|
||||
| `gemini-flash-lite` | `google/gemini-3.1-flash-lite-preview` |
|
||||
|
||||
Ваші налаштовані псевдоніми завжди мають пріоритет над типовими.
|
||||
Налаштовані вами alias завжди мають пріоритет над типовими.
|
||||
|
||||
Для моделей Z.AI GLM-4.x режим thinking вмикається автоматично, якщо ви не встановите `--thinking off` або не визначите `agents.defaults.models["zai/<model>"].params.thinking` самостійно.
|
||||
Для моделей Z.AI типово вмикається `tool_stream` для потокового передавання викликів інструментів. Установіть `agents.defaults.models["zai/<model>"].params.tool_stream` у `false`, щоб вимкнути це.
|
||||
Для моделей Z.AI GLM-4.x режим thinking автоматично вмикається, якщо ви не встановили `--thinking off` або самостійно не визначили `agents.defaults.models["zai/<model>"].params.thinking`.
|
||||
Для моделей Z.AI `tool_stream` типово ввімкнено для потокового передавання викликів інструментів. Установіть `agents.defaults.models["zai/<model>"].params.tool_stream` у `false`, щоб вимкнути це.
|
||||
Для моделей Anthropic Claude 4.6 типово використовується thinking `adaptive`, якщо явний рівень thinking не задано.
|
||||
|
||||
### `agents.defaults.cliBackends`
|
||||
|
||||
Необов’язкові CLI-бекенди для резервних запусків лише з текстом (без викликів інструментів). Корисно як запасний варіант, коли постачальники API не працюють.
|
||||
Необов’язкові бекенди CLI для резервних запусків лише з текстом (без викликів інструментів). Корисно як запасний варіант, коли API-провайдери не працюють.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -459,13 +459,13 @@ harness сервера застосунку Codex. Для загального
|
||||
}
|
||||
```
|
||||
|
||||
- CLI-бекенди орієнтовані насамперед на текст; інструменти завжди вимкнені.
|
||||
- Сеанси підтримуються, коли задано `sessionArg`.
|
||||
- Бекенди CLI орієнтовані насамперед на текст; інструменти завжди вимкнені.
|
||||
- Сесії підтримуються, коли встановлено `sessionArg`.
|
||||
- Передавання зображень підтримується, коли `imageArg` приймає шляхи до файлів.
|
||||
|
||||
### `agents.defaults.systemPromptOverride`
|
||||
|
||||
Замінює весь системний запит, зібраний OpenClaw, фіксованим рядком. Задається на типовому рівні (`agents.defaults.systemPromptOverride`) або для окремого агента (`agents.list[].systemPromptOverride`). Значення для окремого агента мають пріоритет; порожнє значення або значення лише з пробілами ігнорується. Корисно для контрольованих експериментів із запитами.
|
||||
Замінює весь системний запит, зібраний OpenClaw, фіксованим рядком. Задається на типовому рівні (`agents.defaults.systemPromptOverride`) або для окремого агента (`agents.list[].systemPromptOverride`). Значення для окремого агента мають пріоритет; порожнє значення або значення лише з пробілів ігнорується. Корисно для контрольованих експериментів із запитами.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -479,7 +479,7 @@ harness сервера застосунку Codex. Для загального
|
||||
|
||||
### `agents.defaults.promptOverlays`
|
||||
|
||||
Незалежні від постачальника накладки запиту, що застосовуються за сімейством моделей. Ідентифікатори моделей сімейства GPT-5 отримують спільний контракт поведінки для всіх постачальників; `personality` керує лише шаром дружнього стилю взаємодії.
|
||||
Незалежні від провайдера накладки на запит, що застосовуються за сімейством моделей. Ідентифікатори моделей сімейства GPT-5 отримують спільний контракт поведінки між провайдерами; `personality` керує лише шаром дружнього стилю взаємодії.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -497,7 +497,7 @@ harness сервера застосунку Codex. Для загального
|
||||
|
||||
- `"friendly"` (типове значення) і `"on"` вмикають шар дружнього стилю взаємодії.
|
||||
- `"off"` вимикає лише дружній шар; позначений контракт поведінки GPT-5 залишається ввімкненим.
|
||||
- Застаріле `plugins.entries.openai.config.personality` і далі зчитується, коли це спільне налаштування не задано.
|
||||
- Застаріле `plugins.entries.openai.config.personality` усе ще зчитується, коли цей спільний параметр не задано.
|
||||
|
||||
### `agents.defaults.heartbeat`
|
||||
|
||||
@ -511,13 +511,13 @@ harness сервера застосунку Codex. Для загального
|
||||
every: "30m", // 0m вимикає
|
||||
model: "openai/gpt-5.4-mini",
|
||||
includeReasoning: false,
|
||||
includeSystemPromptSection: true, // типово: true; false не включає розділ Heartbeat до системного запиту
|
||||
lightContext: false, // типово: false; true залишає лише HEARTBEAT.md з bootstrap-файлів робочого простору
|
||||
isolatedSession: false, // типово: false; true запускає кожен heartbeat у новому сеансі (без історії розмови)
|
||||
includeSystemPromptSection: true, // типове значення: true; false пропускає секцію Heartbeat у системному запиті
|
||||
lightContext: false, // типове значення: false; true залишає лише HEARTBEAT.md із bootstrap-файлів робочого простору
|
||||
isolatedSession: false, // типове значення: false; true запускає кожен heartbeat у новій сесії (без історії розмови)
|
||||
session: "main",
|
||||
to: "+15555550123",
|
||||
directPolicy: "allow", // allow (типово) | block
|
||||
target: "none", // типово: none | варіанти: last | whatsapp | telegram | discord | ...
|
||||
target: "none", // типове значення: none | варіанти: last | whatsapp | telegram | discord | ...
|
||||
prompt: "Read HEARTBEAT.md if it exists...",
|
||||
ackMaxChars: 300,
|
||||
suppressToolErrorWarnings: false,
|
||||
@ -528,15 +528,15 @@ harness сервера застосунку Codex. Для загального
|
||||
}
|
||||
```
|
||||
|
||||
- `every`: рядок тривалості (ms/s/m/h). Типове значення: `30m` (автентифікація ключем API) або `1h` (OAuth-автентифікація). Установіть `0m`, щоб вимкнути.
|
||||
- `includeSystemPromptSection`: якщо `false`, не включає розділ Heartbeat до системного запиту й пропускає вбудовування `HEARTBEAT.md` у bootstrap-контекст. Типове значення: `true`.
|
||||
- `suppressToolErrorWarnings`: якщо `true`, пригнічує дані попереджень про помилки інструментів під час запусків Heartbeat.
|
||||
- `timeoutSeconds`: максимальний час у секундах, дозволений для одного ходу агента Heartbeat, після чого його буде перервано. Якщо не вказано, використовується `agents.defaults.timeoutSeconds`.
|
||||
- `directPolicy`: політика доставки напряму/у DM. `allow` (типово) дозволяє доставку до прямої цілі. `block` пригнічує доставку до прямої цілі та виводить `reason=dm-blocked`.
|
||||
- `lightContext`: якщо `true`, запуски Heartbeat використовують полегшений bootstrap-контекст і зберігають лише `HEARTBEAT.md` із bootstrap-файлів робочого простору.
|
||||
- `isolatedSession`: якщо `true`, кожен запуск Heartbeat відбувається в новому сеансі без попередньої історії розмови. Та сама схема ізоляції, що й у Cron `sessionTarget: "isolated"`. Зменшує вартість токенів на один Heartbeat приблизно зі ~100K до ~2-5K токенів.
|
||||
- Для окремого агента: задайте `agents.list[].heartbeat`. Якщо будь-який агент визначає `heartbeat`, **лише ці агенти** запускають Heartbeat.
|
||||
- Heartbeat виконує повноцінні ходи агента — коротші інтервали витрачають більше токенів.
|
||||
- `every`: рядок тривалості (ms/s/m/h). Типове значення: `30m` (автентифікація через API key) або `1h` (автентифікація через OAuth). Установіть `0m`, щоб вимкнути.
|
||||
- `includeSystemPromptSection`: якщо `false`, пропускає секцію Heartbeat із системного запиту та пропускає впровадження `HEARTBEAT.md` у bootstrap-контекст. Типове значення: `true`.
|
||||
- `suppressToolErrorWarnings`: якщо `true`, пригнічує payload попереджень про помилки інструментів під час запусків heartbeat.
|
||||
- `timeoutSeconds`: максимальний час у секундах, дозволений для одного ходу агента heartbeat до його переривання. Якщо не задано, використовується `agents.defaults.timeoutSeconds`.
|
||||
- `directPolicy`: політика доставки напряму/в приватні повідомлення. `allow` (типово) дозволяє доставку напряму до цілі. `block` пригнічує доставку напряму до цілі та створює `reason=dm-blocked`.
|
||||
- `lightContext`: якщо `true`, запуски heartbeat використовують полегшений bootstrap-контекст і зберігають лише `HEARTBEAT.md` із bootstrap-файлів робочого простору.
|
||||
- `isolatedSession`: якщо `true`, кожен heartbeat запускається в новій сесії без попередньої історії розмови. Той самий шаблон ізоляції, що й у Cron `sessionTarget: "isolated"`. Зменшує вартість кожного heartbeat у токенах приблизно зі ~100K до ~2–5K токенів.
|
||||
- Для окремого агента: задайте `agents.list[].heartbeat`. Якщо будь-який агент визначає `heartbeat`, **heartbeat запускаються лише для цих агентів**.
|
||||
- Heartbeat виконують повні ходи агента — коротші інтервали спалюють більше токенів.
|
||||
|
||||
### `agents.defaults.compaction`
|
||||
|
||||
@ -546,16 +546,16 @@ harness сервера застосунку Codex. Для загального
|
||||
defaults: {
|
||||
compaction: {
|
||||
mode: "safeguard", // default | safeguard
|
||||
provider: "my-provider", // id зареєстрованого Plugin постачальника compaction (необов’язково)
|
||||
provider: "my-provider", // id зареєстрованого Plugin провайдера compaction (необов’язково)
|
||||
timeoutSeconds: 900,
|
||||
reserveTokensFloor: 24000,
|
||||
keepRecentTokens: 50000,
|
||||
identifierPolicy: "strict", // strict | off | custom
|
||||
identifierInstructions: "Preserve deployment IDs, ticket IDs, and host:port pairs exactly.", // використовується, коли identifierPolicy=custom
|
||||
qualityGuard: { enabled: true, maxRetries: 1 },
|
||||
postCompactionSections: ["Session Startup", "Red Lines"], // [] вимикає повторне вбудовування
|
||||
postCompactionSections: ["Session Startup", "Red Lines"], // [] вимикає повторне впровадження
|
||||
model: "openrouter/anthropic/claude-sonnet-4-6", // необов’язкове перевизначення моделі лише для compaction
|
||||
notifyUser: true, // надсилати короткі сповіщення користувачеві, коли compaction починається і завершується (типово: false)
|
||||
notifyUser: true, // надсилати короткі сповіщення, коли compaction починається і завершується (типове значення: false)
|
||||
memoryFlush: {
|
||||
enabled: true,
|
||||
softThresholdTokens: 6000,
|
||||
@ -568,21 +568,21 @@ harness сервера застосунку Codex. Для загального
|
||||
}
|
||||
```
|
||||
|
||||
- `mode`: `default` або `safeguard` (підсумовування частинами для довгої історії). Див. [Compaction](/uk/concepts/compaction).
|
||||
- `provider`: id зареєстрованого Plugin постачальника compaction. Якщо задано, замість вбудованого LLM-підсумовування викликається `summarize()` постачальника. У разі збою повертається до вбудованого варіанта. Установлення постачальника примусово задає `mode: "safeguard"`. Див. [Compaction](/uk/concepts/compaction).
|
||||
- `timeoutSeconds`: максимальна кількість секунд, дозволена для однієї операції compaction, після чого OpenClaw її перериває. Типове значення: `900`.
|
||||
- `keepRecentTokens`: бюджет точки відсікання Pi для збереження найновішого хвоста транскрипту без змін. Ручний `/compact` враховує це, коли параметр явно задано; інакше ручний compaction є жорсткою контрольною точкою.
|
||||
- `identifierPolicy`: `strict` (типово), `off` або `custom`. `strict` додає вбудовані вказівки щодо збереження непрозорих ідентифікаторів під час підсумовування compaction.
|
||||
- `mode`: `default` або `safeguard` (підсумовування шматками для довгих історій). Див. [Compaction](/uk/concepts/compaction).
|
||||
- `provider`: id зареєстрованого Plugin провайдера compaction. Якщо задано, замість вбудованого LLM-підсумовування викликається `summarize()` провайдера. У разі помилки повертається до вбудованого. Установлення провайдера примусово вмикає `mode: "safeguard"`. Див. [Compaction](/uk/concepts/compaction).
|
||||
- `timeoutSeconds`: максимальна кількість секунд, дозволена для однієї операції compaction, після чого OpenClaw перериває її. Типове значення: `900`.
|
||||
- `keepRecentTokens`: бюджет точки відсікання Pi для збереження найсвіжішого хвоста транскрипту дослівно. Ручний `/compact` враховує це, якщо параметр явно задано; інакше ручна compaction є жорсткою контрольною точкою.
|
||||
- `identifierPolicy`: `strict` (типово), `off` або `custom`. `strict` додає вбудовані інструкції зі збереження непрозорих ідентифікаторів під час підсумовування compaction.
|
||||
- `identifierInstructions`: необов’язковий власний текст щодо збереження ідентифікаторів, який використовується, коли `identifierPolicy=custom`.
|
||||
- `qualityGuard`: перевірки з повторними спробами у разі хибного формату виводу для підсумків safeguard. У режимі safeguard увімкнено типово; установіть `enabled: false`, щоб пропустити перевірку.
|
||||
- `postCompactionSections`: необов’язкові назви секцій H2/H3 з AGENTS.md для повторного вбудовування після compaction. Типово `["Session Startup", "Red Lines"]`; установіть `[]`, щоб вимкнути повторне вбудовування. Якщо не задано або явно задано цю типову пару, старі заголовки `Every Session`/`Safety` також приймаються як резервний варіант для сумісності.
|
||||
- `model`: необов’язкове перевизначення `provider/model-id` лише для підсумовування compaction. Використовуйте це, коли основний сеанс має зберігати одну модель, а підсумки compaction мають виконуватися на іншій; якщо не задано, compaction використовує основну модель сеансу.
|
||||
- `notifyUser`: якщо `true`, надсилає короткі сповіщення користувачеві, коли compaction починається і коли завершується (наприклад, "Compacting context..." і "Compaction complete"). Типово вимкнено, щоб compaction залишався тихим.
|
||||
- `memoryFlush`: тихий агентний хід перед автоматичним compaction для збереження довготривалої пам’яті. Пропускається, коли робочий простір доступний лише для читання.
|
||||
- `qualityGuard`: перевірки повторної спроби при некоректному виводі для підсумків safeguard. Типово ввімкнено в режимі safeguard; установіть `enabled: false`, щоб пропустити аудит.
|
||||
- `postCompactionSections`: необов’язкові назви секцій H2/H3 з AGENTS.md для повторного впровадження після compaction. Типове значення: `["Session Startup", "Red Lines"]`; установіть `[]`, щоб вимкнути повторне впровадження. Якщо не задано або явно задано цю типову пару, старі заголовки `Every Session`/`Safety` також приймаються як резервний варіант для сумісності.
|
||||
- `model`: необов’язкове перевизначення `provider/model-id` лише для підсумовування compaction. Використовуйте це, коли основна сесія має залишатися на одній моделі, а підсумки compaction повинні виконуватися на іншій; якщо не задано, compaction використовує основну модель сесії.
|
||||
- `notifyUser`: якщо `true`, надсилає користувачеві короткі сповіщення, коли compaction починається і коли завершується (наприклад, «Compacting context...» і «Compaction complete»). Типово вимкнено, щоб compaction залишалася тихою.
|
||||
- `memoryFlush`: тихий агентний хід перед автоматичною compaction для збереження довготривалих спогадів. Пропускається, коли робочий простір доступний лише для читання.
|
||||
|
||||
### `agents.defaults.contextPruning`
|
||||
|
||||
Очищає **старі результати інструментів** з контексту в пам’яті перед надсиланням до LLM. **Не** змінює історію сеансу на диску.
|
||||
Очищає **старі результати інструментів** із контексту в пам’яті перед надсиланням до LLM. **Не** змінює історію сесії на диску.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -607,24 +607,24 @@ harness сервера застосунку Codex. Для загального
|
||||
<Accordion title="Поведінка режиму cache-ttl">
|
||||
|
||||
- `mode: "cache-ttl"` вмикає проходи очищення.
|
||||
- `ttl` визначає, як часто очищення може запускатися знову (після останнього торкання кешу).
|
||||
- Очищення спочатку м’яко скорочує надто великі результати інструментів, а потім за потреби повністю очищає старіші результати інструментів.
|
||||
- `ttl` керує тим, як часто очищення може запускатися знову (після останнього торкання кешу).
|
||||
- Очищення спочатку м’яко обрізає завеликі результати інструментів, а потім за потреби повністю очищає старіші результати інструментів.
|
||||
|
||||
**М’яке скорочення** зберігає початок і кінець та вставляє `...` посередині.
|
||||
**М’яке обрізання** зберігає початок і кінець та вставляє `...` посередині.
|
||||
|
||||
**Повне очищення** замінює весь результат інструмента плейсхолдером.
|
||||
**Повне очищення** замінює весь результат інструмента на placeholder.
|
||||
|
||||
Примітки:
|
||||
|
||||
- Блоки зображень ніколи не скорочуються й не очищаються.
|
||||
- Співвідношення рахуються за символами (приблизно), а не за точною кількістю токенів.
|
||||
- Блоки зображень ніколи не обрізаються і не очищаються.
|
||||
- Співвідношення базуються на символах (приблизно), а не на точній кількості токенів.
|
||||
- Якщо повідомлень асистента менше, ніж `keepLastAssistants`, очищення пропускається.
|
||||
|
||||
</Accordion>
|
||||
|
||||
Докладніше про поведінку див. у [Очищення сеансу](/uk/concepts/session-pruning).
|
||||
Докладніше про поведінку див. у [Session Pruning](/uk/concepts/session-pruning).
|
||||
|
||||
### Блокове потокове передавання
|
||||
### Потокове передавання блоками
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -640,13 +640,13 @@ harness сервера застосунку Codex. Для загального
|
||||
}
|
||||
```
|
||||
|
||||
- Канали, крім Telegram, потребують явного `*.blockStreaming: true`, щоб увімкнути блокові відповіді.
|
||||
- Перевизначення для каналу: `channels.<channel>.blockStreamingCoalesce` (і варіанти для окремих облікових записів). Для Signal/Slack/Discord/Google Chat типово `minChars: 1500`.
|
||||
- `humanDelay`: випадкова пауза між блоковими відповідями. `natural` = 800–2500 мс. Перевизначення для окремого агента: `agents.list[].humanDelay`.
|
||||
- Канали, відмінні від Telegram, потребують явного `*.blockStreaming: true`, щоб увімкнути відповіді блоками.
|
||||
- Перевизначення на рівні каналу: `channels.<channel>.blockStreamingCoalesce` (і варіанти для окремих облікових записів). Для Signal/Slack/Discord/Google Chat типове значення `minChars: 1500`.
|
||||
- `humanDelay`: випадкова пауза між відповідями блоками. `natural` = 800–2500 мс. Перевизначення для окремого агента: `agents.list[].humanDelay`.
|
||||
|
||||
Докладніше про поведінку й розбиття на частини див. у [Потокове передавання](/uk/concepts/streaming).
|
||||
Подробиці про поведінку та розбиття на частини див. у [Streaming](/uk/concepts/streaming).
|
||||
|
||||
### Індикатори набору тексту
|
||||
### Індикатори набору
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -659,16 +659,16 @@ harness сервера застосунку Codex. Для загального
|
||||
}
|
||||
```
|
||||
|
||||
- Типові значення: `instant` для прямих чатів/згадок, `message` для групових чатів без згадки.
|
||||
- Перевизначення для сеансу: `session.typingMode`, `session.typingIntervalSeconds`.
|
||||
- Типові значення: `instant` для прямих чатів/згадок, `message` для групових чатів без згадування.
|
||||
- Перевизначення на рівні сесії: `session.typingMode`, `session.typingIntervalSeconds`.
|
||||
|
||||
Див. [Індикатори набору тексту](/uk/concepts/typing-indicators).
|
||||
Див. [Typing Indicators](/uk/concepts/typing-indicators).
|
||||
|
||||
<a id="agentsdefaultssandbox"></a>
|
||||
|
||||
### `agents.defaults.sandbox`
|
||||
|
||||
Необов’язкова ізоляція sandbox для вбудованого агента. Повний посібник див. у [Ізоляція sandbox](/uk/gateway/sandboxing).
|
||||
Необов’язкова sandbox-ізоляція для вбудованого агента. Повний посібник див. у [Sandboxing](/uk/gateway/sandboxing).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -771,15 +771,15 @@ harness сервера застосунку Codex. Для загального
|
||||
- `ssh`: універсальне віддалене середовище виконання на основі SSH
|
||||
- `openshell`: середовище виконання OpenShell
|
||||
|
||||
Коли вибрано `backend: "openshell"`, налаштування, специфічні для середовища виконання, переносяться до
|
||||
Коли вибрано `backend: "openshell"`, специфічні для цього середовища параметри переносяться до
|
||||
`plugins.entries.openshell.config`.
|
||||
|
||||
**Конфігурація бекенда SSH:**
|
||||
|
||||
- `target`: ціль SSH у форматі `user@host[:port]`
|
||||
- `command`: команда клієнта SSH (типово: `ssh`)
|
||||
- `workspaceRoot`: абсолютний віддалений корінь, що використовується для робочих просторів за областями
|
||||
- `identityFile` / `certificateFile` / `knownHostsFile`: наявні локальні файли, що передаються до OpenSSH
|
||||
- `command`: команда SSH-клієнта (типове значення: `ssh`)
|
||||
- `workspaceRoot`: абсолютний віддалений корінь, що використовується для робочих просторів на кожну область
|
||||
- `identityFile` / `certificateFile` / `knownHostsFile`: наявні локальні файли, які передаються до OpenSSH
|
||||
- `identityData` / `certificateData` / `knownHostsData`: вбудований вміст або SecretRefs, які OpenClaw матеріалізує у тимчасові файли під час виконання
|
||||
- `strictHostKeyChecking` / `updateHostKeys`: параметри політики ключів хоста OpenSSH
|
||||
|
||||
@ -788,27 +788,27 @@ harness сервера застосунку Codex. Для загального
|
||||
- `identityData` має пріоритет над `identityFile`
|
||||
- `certificateData` має пріоритет над `certificateFile`
|
||||
- `knownHostsData` має пріоритет над `knownHostsFile`
|
||||
- Значення `*Data` на основі SecretRef визначаються з активного знімка середовища виконання секретів до початку сеансу sandbox
|
||||
- Значення `*Data`, що використовують SecretRef, визначаються з активного знімка середовища виконання секретів до початку сесії sandbox
|
||||
|
||||
**Поведінка бекенда SSH:**
|
||||
|
||||
- один раз засіває віддалений робочий простір після створення або перевідтворення
|
||||
- потім підтримує віддалений робочий простір SSH як канонічний
|
||||
- маршрутизує `exec`, файлові інструменти та шляхи медіа через SSH
|
||||
- один раз ініціалізує віддалений робочий простір після створення або повторного створення
|
||||
- після цього підтримує віддалений робочий простір SSH як канонічний
|
||||
- маршрутизує `exec`, файлові інструменти та шляхи до медіа через SSH
|
||||
- не синхронізує віддалені зміни назад на хост автоматично
|
||||
- не підтримує контейнери браузера в sandbox
|
||||
- не підтримує браузерні контейнери sandbox
|
||||
|
||||
**Доступ до робочого простору:**
|
||||
|
||||
- `none`: робочий простір sandbox за областю в `~/.openclaw/sandboxes`
|
||||
- `ro`: робочий простір sandbox у `/workspace`, робочий простір агента змонтовано тільки для читання в `/agent`
|
||||
- `rw`: робочий простір агента змонтовано для читання і запису в `/workspace`
|
||||
- `none`: робочий простір sandbox для кожної області в `~/.openclaw/sandboxes`
|
||||
- `ro`: робочий простір sandbox у `/workspace`, робочий простір агента монтується лише для читання в `/agent`
|
||||
- `rw`: робочий простір агента монтується для читання/запису в `/workspace`
|
||||
|
||||
**Область:**
|
||||
|
||||
- `session`: окремий контейнер і робочий простір на сеанс
|
||||
- `session`: окремий контейнер і робочий простір для кожної сесії
|
||||
- `agent`: один контейнер і робочий простір на агента (типово)
|
||||
- `shared`: спільний контейнер і робочий простір (без ізоляції між сеансами)
|
||||
- `shared`: спільний контейнер і робочий простір (без ізоляції між сесіями)
|
||||
|
||||
**Конфігурація Plugin OpenShell:**
|
||||
|
||||
@ -838,30 +838,30 @@ harness сервера застосунку Codex. Для загального
|
||||
|
||||
**Режим OpenShell:**
|
||||
|
||||
- `mirror`: перед `exec` засіває віддалене середовище з локального, після `exec` синхронізує назад; локальний робочий простір залишається канонічним
|
||||
- `remote`: один раз засіває віддалене середовище, коли sandbox створюється, а далі підтримує віддалений робочий простір як канонічний
|
||||
- `mirror`: ініціалізує віддалений простір із локального перед `exec`, синхронізує назад після `exec`; локальний робочий простір залишається канонічним
|
||||
- `remote`: один раз ініціалізує віддалений простір під час створення sandbox, після чого віддалений робочий простір лишається канонічним
|
||||
|
||||
У режимі `remote` локальні редагування на хості, зроблені поза OpenClaw, не синхронізуються в sandbox автоматично після кроку початкового засівання.
|
||||
Транспортом є SSH до sandbox OpenShell, але Plugin володіє життєвим циклом sandbox і необов’язковою дзеркальною синхронізацією.
|
||||
У режимі `remote` зміни на локальному хості, зроблені поза OpenClaw, не синхронізуються в sandbox автоматично після етапу ініціалізації.
|
||||
Транспортом є SSH до sandbox OpenShell, але життєвим циклом sandbox і необов’язковою дзеркальною синхронізацією керує Plugin.
|
||||
|
||||
**`setupCommand`** виконується один раз після створення контейнера (через `sh -lc`). Потребує вихідного доступу до мережі, доступного для запису кореня та користувача root.
|
||||
**`setupCommand`** запускається один раз після створення контейнера (через `sh -lc`). Потребує вихідного доступу до мережі, доступного для запису кореня та користувача root.
|
||||
|
||||
**Контейнери типово мають `network: "none"`** — установіть `"bridge"` (або власну мережу bridge), якщо агенту потрібен вихідний доступ.
|
||||
**Для контейнерів типово використовується `network: "none"`** — установіть `"bridge"` (або власну bridge-мережу), якщо агенту потрібен вихідний доступ.
|
||||
`"host"` заблоковано. `"container:<id>"` типово заблоковано, якщо ви явно не встановите
|
||||
`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` (аварійний варіант).
|
||||
|
||||
**Вхідні вкладення** розміщуються в `media/inbound/*` в активному робочому просторі.
|
||||
|
||||
**`docker.binds`** монтує додаткові каталоги хоста; глобальні та агентні `binds` об’єднуються.
|
||||
**`docker.binds`** монтує додаткові каталоги хоста; глобальні прив’язки та прив’язки для окремого агента об’єднуються.
|
||||
|
||||
**Браузер у sandbox** (`sandbox.browser.enabled`): Chromium + CDP у контейнері. URL noVNC вбудовується в системний запит. Не потребує `browser.enabled` у `openclaw.json`.
|
||||
Доступ спостерігача через noVNC типово використовує автентифікацію VNC, а OpenClaw видає URL із короткоживучим токеном (замість показу пароля у спільному URL).
|
||||
**Браузер у sandbox** (`sandbox.browser.enabled`): Chromium + CDP у контейнері. URL noVNC впроваджується в системний запит. Не потребує `browser.enabled` у `openclaw.json`.
|
||||
Доступ спостерігача через noVNC типово використовує автентифікацію VNC, а OpenClaw створює короткоживучий URL із токеном (замість того, щоб показувати пароль у спільному URL).
|
||||
|
||||
- `allowHostControl: false` (типово) блокує націлювання сеансів sandbox на браузер хоста.
|
||||
- `network` типово дорівнює `openclaw-sandbox-browser` (виділена мережа bridge). Установлюйте `bridge` лише тоді, коли вам явно потрібна глобальна зв’язність bridge.
|
||||
- `cdpSourceRange` за потреби обмежує вхідний CDP-трафік на межі контейнера до діапазону CIDR (наприклад `172.21.0.1/32`).
|
||||
- `sandbox.browser.binds` монтує додаткові каталоги хоста лише в контейнер браузера sandbox. Якщо задано (зокрема `[]`), воно замінює `docker.binds` для контейнера браузера.
|
||||
- Типові параметри запуску визначено в `scripts/sandbox-browser-entrypoint.sh` і налаштовано для хостів контейнерів:
|
||||
- `allowHostControl: false` (типово) блокує для sandbox-сесій націлювання на браузер хоста.
|
||||
- Для `network` типово використовується `openclaw-sandbox-browser` (виділена bridge-мережа). Установлюйте `bridge` лише тоді, коли вам явно потрібна глобальна bridge-зв’язність.
|
||||
- `cdpSourceRange` за бажанням обмежує вхідний доступ до CDP на межі контейнера діапазоном CIDR (наприклад `172.21.0.1/32`).
|
||||
- `sandbox.browser.binds` монтує додаткові каталоги хоста лише в контейнер браузера sandbox. Якщо параметр задано (зокрема як `[]`), він замінює `docker.binds` для контейнера браузера.
|
||||
- Типові параметри запуску визначено в `scripts/sandbox-browser-entrypoint.sh` і налаштовано для контейнерних хостів:
|
||||
- `--remote-debugging-address=127.0.0.1`
|
||||
- `--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>`
|
||||
- `--user-data-dir=${HOME}/.chrome`
|
||||
@ -880,20 +880,20 @@ harness сервера застосунку Codex. Для загального
|
||||
- `--metrics-recording-only`
|
||||
- `--disable-extensions` (типово ввімкнено)
|
||||
- `--disable-3d-apis`, `--disable-software-rasterizer` і `--disable-gpu`
|
||||
типово ввімкнені та можуть бути вимкнені через
|
||||
`OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0`, якщо для WebGL/3D це потрібно.
|
||||
- `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` знову вмикає розширення, якщо ваш робочий процес
|
||||
залежить від них.
|
||||
типово ввімкнені, і їх можна вимкнути через
|
||||
`OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0`, якщо це потрібно для WebGL/3D.
|
||||
- `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` знову вмикає розширення, якщо
|
||||
вони потрібні для вашого сценарію роботи.
|
||||
- `--renderer-process-limit=2` можна змінити через
|
||||
`OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>`; установіть `0`, щоб використовувати
|
||||
типове обмеження процесів Chromium.
|
||||
- а також `--no-sandbox`, коли ввімкнено `noSandbox`.
|
||||
- Типові значення є базовими для образу контейнера; використовуйте власний образ браузера з власною
|
||||
- плюс `--no-sandbox`, коли ввімкнено `noSandbox`.
|
||||
- Типові параметри є базовими для образу контейнера; використовуйте власний образ браузера з власною
|
||||
точкою входу, щоб змінити типові параметри контейнера.
|
||||
|
||||
</Accordion>
|
||||
|
||||
Ізоляція браузера та `sandbox.docker.binds` доступні лише для Docker.
|
||||
Ізоляція браузера та `sandbox.docker.binds` підтримуються лише для Docker.
|
||||
|
||||
Збірка образів:
|
||||
|
||||
@ -917,9 +917,9 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
model: "anthropic/claude-opus-4-6", // або { primary, fallbacks }
|
||||
thinkingDefault: "high", // перевизначення рівня thinking для окремого агента
|
||||
reasoningDefault: "on", // перевизначення видимості reasoning для окремого агента
|
||||
fastModeDefault: false, // перевизначення швидкого режиму для окремого агента
|
||||
fastModeDefault: false, // перевизначення fast mode для окремого агента
|
||||
embeddedHarness: { runtime: "auto", fallback: "pi" },
|
||||
params: { cacheRetention: "none" }, // перевизначає ключі відповідних defaults.models params
|
||||
params: { cacheRetention: "none" }, // перевизначає ключі у matching defaults.models params
|
||||
skills: ["docs-search"], // замінює agents.defaults.skills, якщо задано
|
||||
identity: {
|
||||
name: "Samantha",
|
||||
@ -952,26 +952,26 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
```
|
||||
|
||||
- `id`: стабільний id агента (обов’язково).
|
||||
- `default`: якщо задано для кількох, перший має пріоритет (записується попередження). Якщо не задано ні для кого, типовим стає перший елемент списку.
|
||||
- `model`: форма рядка перевизначає лише `primary`; форма об’єкта `{ primary, fallbacks }` перевизначає обидва (`[]` вимикає глобальні резервні варіанти). Завдання Cron, які перевизначають лише `primary`, і далі успадковують типові резервні варіанти, якщо ви не встановите `fallbacks: []`.
|
||||
- `params`: параметри потоку для окремого агента, що об’єднуються поверх вибраного запису моделі в `agents.defaults.models`. Використовуйте це для перевизначень на рівні агента, наприклад `cacheRetention`, `temperature` або `maxTokens`, не дублюючи весь каталог моделей.
|
||||
- `skills`: необов’язковий список дозволених Skills для окремого агента. Якщо не вказано, агент успадковує `agents.defaults.skills`, коли це значення задано; явний список замінює типові значення, а не об’єднується з ними, а `[]` означає відсутність Skills.
|
||||
- `thinkingDefault`: необов’язковий типовий рівень thinking для окремого агента (`off | minimal | low | medium | high | xhigh | adaptive | max`). Перевизначає `agents.defaults.thinkingDefault` для цього агента, якщо не задано перевизначення на рівні повідомлення або сеансу. Вибраний профіль постачальника/моделі визначає, які значення допустимі; для Google Gemini `adaptive` зберігає динамічне thinking під керуванням постачальника (`thinkingLevel` не передається в Gemini 3/3.1, `thinkingBudget: -1` у Gemini 2.5).
|
||||
- `reasoningDefault`: необов’язкова типова видимість reasoning для окремого агента (`on | off | stream`). Застосовується, якщо не задано перевизначення reasoning на рівні повідомлення або сеансу.
|
||||
- `fastModeDefault`: необов’язкове типове значення швидкого режиму для окремого агента (`true | false`). Застосовується, якщо не задано перевизначення швидкого режиму на рівні повідомлення або сеансу.
|
||||
- `embeddedHarness`: необов’язкове перевизначення політики низькорівневого harness для окремого агента. Використовуйте `{ runtime: "codex" }`, щоб зробити одного агента лише Codex, поки інші агенти зберігають типовий резервний PI у режимі `auto`.
|
||||
- `runtime`: необов’язковий дескриптор runtime для окремого агента. Використовуйте `type: "acp"` разом із типовими `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), коли агент має типово використовувати сеанси harness ACP.
|
||||
- `default`: якщо задано кілька, перший має пріоритет (записується попередження). Якщо не задано жодного, типовим є перший елемент списку.
|
||||
- `model`: рядкова форма перевизначає лише `primary`; об’єктна форма `{ primary, fallbacks }` перевизначає обидва (`[]` вимикає глобальні fallback). Завдання Cron, які перевизначають лише `primary`, усе одно успадковують типові fallback, якщо не встановити `fallbacks: []`.
|
||||
- `params`: параметри потоку для окремого агента, які зливаються поверх вибраного запису моделі в `agents.defaults.models`. Використовуйте це для перевизначень на рівні агента, таких як `cacheRetention`, `temperature` або `maxTokens`, не дублюючи весь каталог моделей.
|
||||
- `skills`: необов’язковий allowlist Skills для окремого агента. Якщо не задано, агент успадковує `agents.defaults.skills`, якщо той задано; явний список замінює типові значення, а не зливається з ними, а `[]` означає відсутність Skills.
|
||||
- `thinkingDefault`: необов’язковий типовий рівень thinking для окремого агента (`off | minimal | low | medium | high | xhigh | adaptive | max`). Перевизначає `agents.defaults.thinkingDefault` для цього агента, якщо не задано перевизначення для окремого повідомлення або сесії. Вибраний профіль провайдера/моделі визначає, які значення припустимі; для Google Gemini `adaptive` зберігає динамічний thinking, керований провайдером (`thinkingLevel` пропускається в Gemini 3/3.1, `thinkingBudget: -1` у Gemini 2.5).
|
||||
- `reasoningDefault`: необов’язкове типове значення видимості reasoning для окремого агента (`on | off | stream`). Застосовується, якщо не задано перевизначення reasoning для окремого повідомлення або сесії.
|
||||
- `fastModeDefault`: необов’язкове типове значення fast mode для окремого агента (`true | false`). Застосовується, якщо не задано перевизначення fast mode для окремого повідомлення або сесії.
|
||||
- `embeddedHarness`: необов’язкове перевизначення низькорівневої політики harness для окремого агента. Використовуйте `{ runtime: "codex" }`, щоб зробити один агент лише Codex, тоді як інші агенти збережуть типовий резервний перехід на PI в режимі `auto`.
|
||||
- `runtime`: необов’язковий дескриптор runtime для окремого агента. Використовуйте `type: "acp"` разом із типовими значеннями `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), коли агент має типово використовувати сесії harness ACP.
|
||||
- `identity.avatar`: шлях відносно робочого простору, URL `http(s)` або URI `data:`.
|
||||
- `identity` виводить типові значення: `ackReaction` з `emoji`, `mentionPatterns` з `name`/`emoji`.
|
||||
- `subagents.allowAgents`: список дозволених id агентів для `sessions_spawn` (`["*"]` = будь-який; типово: лише той самий агент).
|
||||
- Захист успадкування sandbox: якщо сеанс запитувача працює в sandbox, `sessions_spawn` відхиляє цілі, які запускалися б без sandbox.
|
||||
- `subagents.requireAgentId`: якщо `true`, блокує виклики `sessions_spawn`, у яких пропущено `agentId` (примушує до явного вибору профілю; типово: false).
|
||||
- `subagents.allowAgents`: allowlist id агентів для `sessions_spawn` (`["*"]` = будь-який; типово: лише той самий агент).
|
||||
- Захист успадкування sandbox: якщо сесія-запитувач працює в sandbox, `sessions_spawn` відхиляє цілі, які запускалися б без sandbox.
|
||||
- `subagents.requireAgentId`: якщо `true`, блокує виклики `sessions_spawn`, у яких пропущено `agentId` (примушує до явного вибору профілю; типове значення: false).
|
||||
|
||||
---
|
||||
|
||||
## Маршрутизація між кількома агентами
|
||||
## Маршрутизація з кількома агентами
|
||||
|
||||
Запускайте кількох ізольованих агентів в одному Gateway. Див. [Мультиагентність](/uk/concepts/multi-agent).
|
||||
Запускайте кілька ізольованих агентів у межах одного Gateway. Див. [Multi-Agent](/uk/concepts/multi-agent).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -988,16 +988,16 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
}
|
||||
```
|
||||
|
||||
### Поля відповідності прив’язки
|
||||
### Поля збігу прив’язки
|
||||
|
||||
- `type` (необов’язково): `route` для звичайної маршрутизації (за відсутності типу типово використовується route), `acp` для постійних прив’язок розмов ACP.
|
||||
- `type` (необов’язково): `route` для звичайної маршрутизації (відсутній тип типово означає route), `acp` для постійних прив’язок розмов ACP.
|
||||
- `match.channel` (обов’язково)
|
||||
- `match.accountId` (необов’язково; `*` = будь-який обліковий запис; якщо пропущено = типовий обліковий запис)
|
||||
- `match.accountId` (необов’язково; `*` = будь-який обліковий запис; якщо не вказано = типовий обліковий запис)
|
||||
- `match.peer` (необов’язково; `{ kind: direct|group|channel, id }`)
|
||||
- `match.guildId` / `match.teamId` (необов’язково; специфічно для каналу)
|
||||
- `acp` (необов’язково; лише для `type: "acp"`): `{ mode, label, cwd, backend }`
|
||||
- `acp` (необов’язково; лише для записів `type: "acp"`): `{ mode, label, cwd, backend }`
|
||||
|
||||
**Детермінований порядок відповідності:**
|
||||
**Детермінований порядок збігу:**
|
||||
|
||||
1. `match.peer`
|
||||
2. `match.guildId`
|
||||
@ -1006,11 +1006,11 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
5. `match.accountId: "*"` (для всього каналу)
|
||||
6. Типовий агент
|
||||
|
||||
У межах кожного рівня перший відповідний запис `bindings` має пріоритет.
|
||||
У межах кожного рівня перемагає перший відповідний запис `bindings`.
|
||||
|
||||
Для записів `type: "acp"` OpenClaw виконує визначення за точною ідентичністю розмови (`match.channel` + обліковий запис + `match.peer.id`) і не використовує наведений вище порядок рівнів прив’язки route.
|
||||
Для записів `type: "acp"` OpenClaw виконує визначення за точною ідентичністю розмови (`match.channel` + обліковий запис + `match.peer.id`) і не використовує порядок рівнів прив’язок route, наведений вище.
|
||||
|
||||
### Профілі доступу для окремих агентів
|
||||
### Профілі доступу для окремого агента
|
||||
|
||||
<Accordion title="Повний доступ (без sandbox)">
|
||||
|
||||
@ -1030,7 +1030,7 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Інструменти й робочий простір лише для читання">
|
||||
<Accordion title="Інструменти та робочий простір лише для читання">
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -1059,7 +1059,7 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Без доступу до файлової системи (лише повідомлення)">
|
||||
<Accordion title="Без доступу до файлової системи (лише обмін повідомленнями)">
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -1105,7 +1105,7 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
|
||||
</Accordion>
|
||||
|
||||
Докладніше про пріоритети див. у [Sandbox і інструменти для мультиагентності](/uk/tools/multi-agent-sandbox-tools).
|
||||
Докладніше про пріоритетність див. у [Multi-Agent Sandbox & Tools](/uk/tools/multi-agent-sandbox-tools).
|
||||
|
||||
---
|
||||
|
||||
@ -1131,7 +1131,7 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
},
|
||||
resetTriggers: ["/new", "/reset"],
|
||||
store: "~/.openclaw/agents/{agentId}/sessions/sessions.json",
|
||||
parentForkMaxTokens: 100000, // пропустити розгалуження батьківського потоку вище цієї кількості токенів (0 вимикає)
|
||||
parentForkMaxTokens: 100000, // пропускати відгалуження батьківського потоку вище цього числа токенів (0 вимикає)
|
||||
maintenance: {
|
||||
mode: "warn", // warn | enforce
|
||||
pruneAfter: "30d",
|
||||
@ -1143,10 +1143,10 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
},
|
||||
threadBindings: {
|
||||
enabled: true,
|
||||
idleHours: 24, // типове автоматичне зняття фокуса через бездіяльність у годинах (`0` вимикає)
|
||||
maxAgeHours: 0, // типове жорстке максимальне обмеження віку в годинах (`0` вимикає)
|
||||
idleHours: 24, // типове автоматичне зняття фокуса після неактивності в годинах (`0` вимикає)
|
||||
maxAgeHours: 0, // типова жорстка максимальна тривалість у годинах (`0` вимикає)
|
||||
},
|
||||
mainKey: "main", // застаріле (середовище виконання завжди використовує "main")
|
||||
mainKey: "main", // застаріле (runtime завжди використовує "main")
|
||||
agentToAgent: { maxPingPongTurns: 5 },
|
||||
sendPolicy: {
|
||||
rules: [{ action: "deny", match: { channel: "discord", chatType: "group" } }],
|
||||
@ -1160,33 +1160,33 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
|
||||
- **`scope`**: базова стратегія групування сесій для контекстів групового чату.
|
||||
- `per-sender` (типово): кожен відправник отримує ізольовану сесію в межах контексту каналу.
|
||||
- `global`: усі учасники в контексті каналу спільно використовують одну сесію (використовуйте лише тоді, коли спільний контекст справді потрібен).
|
||||
- **`dmScope`**: спосіб групування DM.
|
||||
- `main`: усі DM спільно використовують основну сесію.
|
||||
- `global`: усі учасники в контексті каналу спільно використовують одну сесію (використовуйте лише тоді, коли потрібен спільний контекст).
|
||||
- **`dmScope`**: спосіб групування приватних повідомлень.
|
||||
- `main`: усі приватні повідомлення спільно використовують основну сесію.
|
||||
- `per-peer`: ізоляція за id відправника між каналами.
|
||||
- `per-channel-peer`: ізоляція за каналом + відправником (рекомендовано для багатокористувацьких вхідних).
|
||||
- `per-account-channel-peer`: ізоляція за обліковим записом + каналом + відправником (рекомендовано для кількох облікових записів).
|
||||
- **`identityLinks`**: мапа канонічних id на peer-ідентифікатори з префіксом постачальника для спільного використання сесій між каналами.
|
||||
- **`reset`**: основна політика скидання. `daily` скидає в локальний час `atHour`; `idle` скидає після `idleMinutes`. Якщо налаштовано обидва варіанти, спрацьовує той, що настає раніше.
|
||||
- **`resetByType`**: перевизначення за типом (`direct`, `group`, `thread`). Застаріле `dm` приймається як псевдонім для `direct`.
|
||||
- **`parentForkMaxTokens`**: максимальна кількість `totalTokens` у батьківській сесії, дозволена під час створення сесії розгалуженого потоку (типово `100000`).
|
||||
- Якщо значення `totalTokens` у батьківській сесії перевищує це значення, OpenClaw запускає нову сесію потоку замість успадкування історії транскрипту батьківської сесії.
|
||||
- Установіть `0`, щоб вимкнути цей захист і завжди дозволяти розгалуження від батьківської сесії.
|
||||
- **`mainKey`**: застаріле поле. Середовище виконання завжди використовує `"main"` для основного сегмента прямих чатів.
|
||||
- **`agentToAgent.maxPingPongTurns`**: максимальна кількість ходів відповіді назад між агентами під час обмінів агент-агент (ціле число, діапазон: `0`–`5`). `0` вимикає ланцюжок ping-pong.
|
||||
- **`sendPolicy`**: відповідність за `channel`, `chatType` (`direct|group|channel`, із застарілим псевдонімом `dm`), `keyPrefix` або `rawKeyPrefix`. Перший збіг deny має пріоритет.
|
||||
- **`maintenance`**: очищення сховища сесій і керування зберіганням.
|
||||
- `mode`: `warn` лише виводить попередження; `enforce` застосовує очищення.
|
||||
- `pruneAfter`: віковий поріг для застарілих записів (типово `30d`).
|
||||
- `maxEntries`: максимальна кількість записів у `sessions.json` (типово `500`).
|
||||
- `rotateBytes`: ротує `sessions.json`, коли його розмір перевищує це значення (типово `10mb`).
|
||||
- `resetArchiveRetention`: термін зберігання архівів транскриптів `*.reset.<timestamp>`. Типово дорівнює `pruneAfter`; установіть `false`, щоб вимкнути.
|
||||
- `maxDiskBytes`: необов’язковий бюджет дискового простору для каталогу сесій. У режимі `warn` записує попередження; у режимі `enforce` спочатку видаляє найстаріші артефакти/сесії.
|
||||
- `highWaterBytes`: необов’язкова ціль після очищення бюджету. Типово `80%` від `maxDiskBytes`.
|
||||
- **`identityLinks`**: мапа канонічних id до peer із префіксом провайдера для спільного використання сесій між каналами.
|
||||
- **`reset`**: основна політика скидання. `daily` скидає о `atHour` за місцевим часом; `idle` скидає після `idleMinutes`. Якщо налаштовано обидва, спрацьовує те, що закінчиться першим.
|
||||
- **`resetByType`**: перевизначення за типом (`direct`, `group`, `thread`). Застаріле `dm` приймається як alias для `direct`.
|
||||
- **`parentForkMaxTokens`**: максимальна кількість `totalTokens` у батьківській сесії, дозволена під час створення відгалуженої сесії потоку (типове значення `100000`).
|
||||
- Якщо `totalTokens` батьківської сесії перевищує це значення, OpenClaw починає нову сесію потоку замість успадкування історії транскрипту батьківської сесії.
|
||||
- Установіть `0`, щоб вимкнути цей захист і завжди дозволяти відгалуження від батьківської сесії.
|
||||
- **`mainKey`**: застаріле поле. Runtime завжди використовує `"main"` для основного сегмента прямих чатів.
|
||||
- **`agentToAgent.maxPingPongTurns`**: максимальна кількість зворотних ходів між агентами під час обмінів agent-to-agent (ціле число, діапазон: `0`–`5`). `0` вимикає ланцюжки ping-pong.
|
||||
- **`sendPolicy`**: збіг за `channel`, `chatType` (`direct|group|channel`, із застарілим alias `dm`), `keyPrefix` або `rawKeyPrefix`. Перший `deny` має пріоритет.
|
||||
- **`maintenance`**: очищення сховища сесій + керування строками зберігання.
|
||||
- `mode`: `warn` лише створює попередження; `enforce` застосовує очищення.
|
||||
- `pruneAfter`: поріг віку для застарілих записів (типове значення `30d`).
|
||||
- `maxEntries`: максимальна кількість записів у `sessions.json` (типове значення `500`).
|
||||
- `rotateBytes`: ротує `sessions.json`, коли він перевищує цей розмір (типове значення `10mb`).
|
||||
- `resetArchiveRetention`: строк зберігання архівів транскриптів `*.reset.<timestamp>`. Типово дорівнює `pruneAfter`; установіть `false`, щоб вимкнути.
|
||||
- `maxDiskBytes`: необов’язковий дисковий бюджет для каталогу сесій. У режимі `warn` створює попередження в журналі; у режимі `enforce` спочатку видаляє найстаріші артефакти/сесії.
|
||||
- `highWaterBytes`: необов’язкова ціль після очищення за бюджетом. Типово `80%` від `maxDiskBytes`.
|
||||
- **`threadBindings`**: глобальні типові значення для функцій сесій, прив’язаних до потоків.
|
||||
- `enabled`: головний типовий перемикач (постачальники можуть перевизначати; Discord використовує `channels.discord.threadBindings.enabled`)
|
||||
- `idleHours`: типове автоматичне зняття фокуса через бездіяльність у годинах (`0` вимикає; постачальники можуть перевизначати)
|
||||
- `maxAgeHours`: типове жорстке максимальне обмеження віку в годинах (`0` вимикає; постачальники можуть перевизначати)
|
||||
- `enabled`: основний глобальний перемикач (провайдери можуть перевизначати; Discord використовує `channels.discord.threadBindings.enabled`)
|
||||
- `idleHours`: типове автоматичне зняття фокуса після неактивності в годинах (`0` вимикає; провайдери можуть перевизначати)
|
||||
- `maxAgeHours`: типова жорстка максимальна тривалість у годинах (`0` вимикає; провайдери можуть перевизначати)
|
||||
|
||||
</Accordion>
|
||||
|
||||
@ -1226,7 +1226,7 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
|
||||
Перевизначення для каналу/облікового запису: `channels.<channel>.responsePrefix`, `channels.<channel>.accounts.<id>.responsePrefix`.
|
||||
|
||||
Визначення (найспецифічніше має пріоритет): обліковий запис → канал → глобальне. `""` вимикає і зупиняє каскад. `"auto"` виводить `[{identity.name}]`.
|
||||
Визначення значення (найспецифічніше має пріоритет): обліковий запис → канал → глобально. `""` вимикає й зупиняє каскадування. `"auto"` виводить `[{identity.name}]`.
|
||||
|
||||
**Шаблонні змінні:**
|
||||
|
||||
@ -1234,26 +1234,26 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
| ----------------- | ------------------------ | --------------------------- |
|
||||
| `{model}` | Коротка назва моделі | `claude-opus-4-6` |
|
||||
| `{modelFull}` | Повний ідентифікатор моделі | `anthropic/claude-opus-4-6` |
|
||||
| `{provider}` | Назва постачальника | `anthropic` |
|
||||
| `{provider}` | Назва провайдера | `anthropic` |
|
||||
| `{thinkingLevel}` | Поточний рівень thinking | `high`, `low`, `off` |
|
||||
| `{identity.name}` | Назва identity агента | (те саме, що й `"auto"`) |
|
||||
|
||||
Змінні нечутливі до регістру. `{think}` — псевдонім для `{thinkingLevel}`.
|
||||
Змінні нечутливі до регістру. `{think}` є alias для `{thinkingLevel}`.
|
||||
|
||||
### Реакція підтвердження
|
||||
### Реакція-підтвердження
|
||||
|
||||
- Типово береться `identity.emoji` активного агента, інакше `"👀"`. Установіть `""`, щоб вимкнути.
|
||||
- Типово використовується `identity.emoji` активного агента, інакше `"👀"`. Установіть `""`, щоб вимкнути.
|
||||
- Перевизначення для каналу: `channels.<channel>.ackReaction`, `channels.<channel>.accounts.<id>.ackReaction`.
|
||||
- Порядок визначення: обліковий запис → канал → `messages.ackReaction` → резервне значення з identity.
|
||||
- Порядок визначення: обліковий запис → канал → `messages.ackReaction` → резервне значення identity.
|
||||
- Область: `group-mentions` (типово), `group-all`, `direct`, `all`.
|
||||
- `removeAckAfterReply`: прибирає підтвердження після відповіді у Slack, Discord і Telegram.
|
||||
- `messages.statusReactions.enabled`: вмикає реакції статусу життєвого циклу у Slack, Discord і Telegram.
|
||||
У Slack і Discord незадане значення зберігає ввімкнені реакції статусу, коли активні реакції підтвердження.
|
||||
У Telegram потрібно явно встановити `true`, щоб увімкнути реакції статусу життєвого циклу.
|
||||
- `removeAckAfterReply`: видаляє підтвердження після відповіді в Slack, Discord і Telegram.
|
||||
- `messages.statusReactions.enabled`: вмикає реакції статусу життєвого циклу в Slack, Discord і Telegram.
|
||||
У Slack і Discord, якщо не задано, реакції статусу залишаються ввімкненими, коли активні реакції підтвердження.
|
||||
У Telegram, щоб увімкнути реакції статусу життєвого циклу, явно встановіть `true`.
|
||||
|
||||
### Вхідне debounce
|
||||
### Вхідний debounce
|
||||
|
||||
Об’єднує швидкі текстові повідомлення від того самого відправника в один хід агента. Медіа/вкладення скидаються негайно. Команди керування оминають debounce.
|
||||
Групує швидкі текстові повідомлення від одного відправника в один хід агента. Медіа/вкладення скидаються негайно. Команди керування обходять debounce.
|
||||
|
||||
### TTS (перетворення тексту на мовлення)
|
||||
|
||||
@ -1303,19 +1303,19 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
}
|
||||
```
|
||||
|
||||
- `auto` керує типовим режимом авто-TTS: `off`, `always`, `inbound` або `tagged`. `/tts on|off` може перевизначати локальні налаштування, а `/tts status` показує фактичний стан.
|
||||
- `summaryModel` перевизначає `agents.defaults.model.primary` для автоматичного підсумку.
|
||||
- `modelOverrides` типово ввімкнено; `modelOverrides.allowProvider` типово дорівнює `false` (увімкнення за бажанням).
|
||||
- Для ключів API використовується резервний перехід до `ELEVENLABS_API_KEY`/`XI_API_KEY` і `OPENAI_API_KEY`.
|
||||
- Вбудовані постачальники мовлення належать Plugin. Якщо задано `plugins.allow`, включіть кожен Plugin постачальника TTS, який ви хочете використовувати, наприклад `microsoft` для Edge TTS. Застарілий id постачальника `edge` приймається як псевдонім для `microsoft`.
|
||||
- `providers.openai.baseUrl` перевизначає кінцеву точку OpenAI TTS. Порядок визначення: конфігурація, потім `OPENAI_TTS_BASE_URL`, потім `https://api.openai.com/v1`.
|
||||
- Коли `providers.openai.baseUrl` вказує на кінцеву точку, що не належить OpenAI, OpenClaw розглядає її як OpenAI-сумісний сервер TTS і послаблює перевірку моделі/голосу.
|
||||
- `auto` керує типовим режимом авто-TTS: `off`, `always`, `inbound` або `tagged`. `/tts on|off` може перевизначити локальні налаштування, а `/tts status` показує фактичний стан.
|
||||
- `summaryModel` перевизначає `agents.defaults.model.primary` для автопідсумку.
|
||||
- `modelOverrides` типово ввімкнено; `modelOverrides.allowProvider` типово має значення `false` (opt-in).
|
||||
- API keys використовують резервні значення `ELEVENLABS_API_KEY`/`XI_API_KEY` і `OPENAI_API_KEY`.
|
||||
- Вбудовані провайдери мовлення належать Plugin. Якщо задано `plugins.allow`, включіть кожен Plugin провайдера TTS, який хочете використовувати, наприклад `microsoft` для Edge TTS. Застарілий id провайдера `edge` приймається як alias для `microsoft`.
|
||||
- `providers.openai.baseUrl` перевизначає endpoint OpenAI TTS. Порядок визначення: конфігурація, потім `OPENAI_TTS_BASE_URL`, потім `https://api.openai.com/v1`.
|
||||
- Коли `providers.openai.baseUrl` вказує на endpoint, що не належить OpenAI, OpenClaw трактує його як OpenAI-сумісний TTS-сервер і послаблює перевірку моделі/голосу.
|
||||
|
||||
---
|
||||
|
||||
## Режим розмови
|
||||
## Talk
|
||||
|
||||
Типові значення для режиму розмови (macOS/iOS/Android).
|
||||
Типові значення для режиму Talk (macOS/iOS/Android).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -1343,20 +1343,20 @@ scripts/sandbox-browser-setup.sh # необов’язковий образ б
|
||||
}
|
||||
```
|
||||
|
||||
- `talk.provider` має збігатися з ключем у `talk.providers`, коли налаштовано кількох постачальників режиму розмови.
|
||||
- Застарілі плоскі ключі режиму розмови (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) призначені лише для сумісності та автоматично мігруються в `talk.providers.<provider>`.
|
||||
- Для Voice ID використовується резервний перехід до `ELEVENLABS_VOICE_ID` або `SAG_VOICE_ID`.
|
||||
- `talk.provider` має відповідати ключу в `talk.providers`, коли налаштовано кілька провайдерів Talk.
|
||||
- Застарілі плоскі ключі Talk (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) призначені лише для сумісності й автоматично мігрують у `talk.providers.<provider>`.
|
||||
- Для Voice ID використовуються резервні значення `ELEVENLABS_VOICE_ID` або `SAG_VOICE_ID`.
|
||||
- `providers.*.apiKey` приймає рядки у відкритому вигляді або об’єкти SecretRef.
|
||||
- Резервний перехід до `ELEVENLABS_API_KEY` застосовується лише тоді, коли не налаштовано жодного ключа API для режиму розмови.
|
||||
- `providers.*.voiceAliases` дозволяє директивам режиму розмови використовувати дружні назви.
|
||||
- `providers.mlx.modelId` вибирає репозиторій Hugging Face, який використовує локальний помічник macOS MLX. Якщо не вказано, macOS використовує `mlx-community/Soprano-80M-bf16`.
|
||||
- Відтворення MLX на macOS працює через вбудований помічник `openclaw-mlx-tts`, якщо він доступний, або через виконуваний файл у `PATH`; `OPENCLAW_MLX_TTS_BIN` перевизначає шлях до помічника для розробки.
|
||||
- `silenceTimeoutMs` визначає, скільки режим розмови чекає після тиші користувача, перш ніж надіслати транскрипт. Якщо не задано, зберігається типове вікно паузи для платформи (`700 ms` на macOS і Android, `900 ms` на iOS).
|
||||
- Резервне значення `ELEVENLABS_API_KEY` застосовується лише тоді, коли API key Talk не налаштовано.
|
||||
- `providers.*.voiceAliases` дозволяє директивам Talk використовувати дружні назви.
|
||||
- `providers.mlx.modelId` вибирає репозиторій Hugging Face, який використовує локальний помічник MLX на macOS. Якщо не вказано, macOS використовує `mlx-community/Soprano-80M-bf16`.
|
||||
- Відтворення MLX на macOS виконується через вбудований помічник `openclaw-mlx-tts`, якщо він наявний, або через виконуваний файл у `PATH`; `OPENCLAW_MLX_TTS_BIN` перевизначає шлях до помічника для розробки.
|
||||
- `silenceTimeoutMs` керує тим, як довго режим Talk чекає після тиші користувача перед надсиланням транскрипту. Якщо не задано, зберігається типове для платформи вікно паузи (`700 ms` на macOS і Android, `900 ms` на iOS).
|
||||
|
||||
---
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Довідник із конфігурації](/uk/gateway/configuration-reference) — усі інші ключі конфігурації
|
||||
- [Конфігурація](/uk/gateway/configuration) — типові завдання та швидке налаштування
|
||||
- [Довідник з конфігурації](/uk/gateway/configuration-reference) — усі інші ключі конфігурації
|
||||
- [Конфігурація](/uk/gateway/configuration) — поширені завдання та швидке налаштування
|
||||
- [Приклади конфігурації](/uk/gateway/configuration-examples)
|
||||
|
||||
@ -1,28 +1,28 @@
|
||||
---
|
||||
read_when:
|
||||
- Запуск smoke-тестів Live для матриці моделей / бекенду CLI / ACP / медіапровайдерів
|
||||
- Налагодження визначення облікових даних для Live-тестів
|
||||
- Додавання нового Live-тесту, специфічного для провайдера
|
||||
- Запуск smoke-тестів живої матриці моделей / бекенду CLI / ACP / провайдера медіа
|
||||
- Налагодження визначення облікових даних для живих тестів
|
||||
- Додавання нового живого тесту, специфічного для провайдера
|
||||
sidebarTitle: Live tests
|
||||
summary: 'Тести Live (із взаємодією з мережею): матриця моделей, бекенди CLI, ACP, медіапровайдери, облікові дані'
|
||||
title: 'Тестування: Live-набори тестів'
|
||||
summary: 'Живі (мережеві) тести: матриця моделей, бекенди CLI, ACP, провайдери медіа, облікові дані'
|
||||
title: 'Тестування: живі набори тестів'
|
||||
x-i18n:
|
||||
generated_at: "2026-04-25T05:04:06Z"
|
||||
generated_at: "2026-04-25T10:05:02Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 3a475044ae7ae914d36b2530ca204eb7b632bc578e4ed16770811617ffc05d83
|
||||
source_hash: 4c91bfba6853db576e120893b8c2a55f9d396d523ad5b5eb6a25829766ee477f
|
||||
source_path: help/testing-live.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Щоб швидко почати, дізнатися про QA-ранери, набори unit/integration тестів і Docker-потоки, дивіться
|
||||
[Тестування](/uk/help/testing). На цій сторінці описано **live**-набори тестів
|
||||
(із взаємодією з мережею): матриця моделей, бекенди CLI, ACP і live-тести
|
||||
медіапровайдерів, а також робота з обліковими даними.
|
||||
Для швидкого старту, раннерів QA, модульних/інтеграційних наборів і Docker-процесів див.
|
||||
[Тестування](/uk/help/testing). На цій сторінці описано **живі** (мережеві) набори тестів:
|
||||
матрицю моделей, бекенди CLI, ACP і живі тести провайдерів медіа, а також
|
||||
обробку облікових даних.
|
||||
|
||||
## Live: локальні команди smoke-тестів профілю
|
||||
## Живе: локальні команди smoke-тестів профілю
|
||||
|
||||
Перед спеціальними live-перевірками виконайте `source ~/.profile`, щоб ключі провайдерів і шляхи до локальних інструментів
|
||||
Підключіть `~/.profile` перед довільними живими перевірками, щоб ключі провайдерів і локальні шляхи до інструментів
|
||||
відповідали вашій оболонці:
|
||||
|
||||
```bash
|
||||
@ -44,124 +44,124 @@ pnpm openclaw voicecall setup --json
|
||||
pnpm openclaw voicecall smoke --to "+15555550123"
|
||||
```
|
||||
|
||||
`voicecall smoke` є dry run, якщо також не вказано `--yes`. Використовуйте `--yes` лише тоді,
|
||||
коли ви свідомо хочете здійснити реальний дзвінок-сповіщення. Для Twilio, Telnyx і
|
||||
Plivo успішна перевірка готовності потребує публічного URL Webhook; лише локальні
|
||||
loopback/приватні резервні варіанти навмисно відхиляються.
|
||||
`voicecall smoke` — це пробний запуск, якщо також не вказано `--yes`. Використовуйте `--yes` лише
|
||||
коли ви свідомо хочете здійснити реальний виклик сповіщення. Для Twilio, Telnyx і
|
||||
Plivo успішна перевірка готовності потребує публічної URL-адреси Webhook; лише локальні
|
||||
fallback-варіанти loopback/private навмисно відхиляються.
|
||||
|
||||
## Live: перевірка можливостей Android Node
|
||||
## Живе: повний перегляд можливостей Android Node
|
||||
|
||||
- Тест: `src/gateway/android-node.capabilities.live.test.ts`
|
||||
- Скрипт: `pnpm android:test:integration`
|
||||
- Мета: викликати **кожну команду, що зараз оголошена** підключеним Android Node, і перевірити поведінку контракту команд.
|
||||
- Область:
|
||||
- Попередньо підготовлене/ручне налаштування (набір тестів не встановлює/не запускає/не спаровує застосунок).
|
||||
- Перевірка gateway `node.invoke` для вибраного Android Node команда за командою.
|
||||
- Обов’язкова попередня підготовка:
|
||||
- Мета: викликати **кожну команду, яку зараз оголошує** підключений Android Node, і перевірити поведінку контракту команди.
|
||||
- Обсяг:
|
||||
- Попередньо підготовлене/ручне налаштування (набір не встановлює/не запускає/не спаровує застосунок).
|
||||
- Перевірка `node.invoke` Gateway для вибраного Android Node команда за командою.
|
||||
- Необхідне попереднє налаштування:
|
||||
- Android-застосунок уже підключено й спарено з Gateway.
|
||||
- Застосунок утримується на передньому плані.
|
||||
- Надано дозволи/згоду на захоплення для можливостей, які ви очікуєте успішно пройти.
|
||||
- Для можливостей, які ви очікуєте пройти, надано дозволи/згоду на захоплення.
|
||||
- Необов’язкові перевизначення цілі:
|
||||
- `OPENCLAW_ANDROID_NODE_ID` або `OPENCLAW_ANDROID_NODE_NAME`.
|
||||
- `OPENCLAW_ANDROID_GATEWAY_URL` / `OPENCLAW_ANDROID_GATEWAY_TOKEN` / `OPENCLAW_ANDROID_GATEWAY_PASSWORD`.
|
||||
- Повні відомості про налаштування Android: [Android App](/uk/platforms/android)
|
||||
- Докладні відомості про повне налаштування Android: [Android App](/uk/platforms/android)
|
||||
|
||||
## Live: smoke-тест моделей (ключі профілю)
|
||||
## Живе: smoke-тест моделі (ключі профілю)
|
||||
|
||||
Live-тести поділено на два шари, щоб можна було ізолювати збої:
|
||||
Живі тести поділено на два шари, щоб ми могли ізолювати збої:
|
||||
|
||||
- «Direct model» показує, чи може провайдер/модель взагалі відповісти з указаним ключем.
|
||||
- «Gateway smoke» показує, чи працює для цієї моделі весь конвеєр Gateway+агента (сеанси, історія, інструменти, політика sandbox тощо).
|
||||
- «Пряма модель» показує, чи може провайдер/модель взагалі відповісти з наданим ключем.
|
||||
- «Smoke-тест Gateway» показує, чи працює для цієї моделі повний конвеєр gateway+agent (сеанси, історія, інструменти, політика sandbox тощо).
|
||||
|
||||
### Шар 1: пряме завершення моделі (без Gateway)
|
||||
### Шар 1: Пряме завершення моделі (без gateway)
|
||||
|
||||
- Тест: `src/agents/models.profiles.live.test.ts`
|
||||
- Мета:
|
||||
- Перелічити виявлені моделі
|
||||
- Перерахувати виявлені моделі
|
||||
- Використати `getApiKeyForModel`, щоб вибрати моделі, для яких у вас є облікові дані
|
||||
- Виконати невелике завершення для кожної моделі (і цільові регресійні перевірки, де потрібно)
|
||||
- Як увімкнути:
|
||||
- `pnpm test:live` (або `OPENCLAW_LIVE_TEST=1`, якщо викликаєте Vitest напряму)
|
||||
- Установіть `OPENCLAW_LIVE_MODELS=modern` (або `all`, псевдонім для modern), щоб справді запустити цей набір тестів; інакше він пропускається, щоб `pnpm test:live` залишався зосередженим на smoke-тесті Gateway
|
||||
- Як вибирати моделі:
|
||||
- `pnpm test:live` (або `OPENCLAW_LIVE_TEST=1`, якщо ви викликаєте Vitest напряму)
|
||||
- Установіть `OPENCLAW_LIVE_MODELS=modern` (або `all`, псевдонім для modern), щоб справді запускати цей набір; інакше його буде пропущено, щоб `pnpm test:live` залишався зосередженим на smoke-тесті gateway
|
||||
- Як вибрати моделі:
|
||||
- `OPENCLAW_LIVE_MODELS=modern`, щоб запустити modern allowlist (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4)
|
||||
- `OPENCLAW_LIVE_MODELS=all` — це псевдонім для modern allowlist
|
||||
- або `OPENCLAW_LIVE_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,..."` (allowlist через кому)
|
||||
- Для modern/all перевірок за замовчуванням використовується підібраний ліміт із високим сигналом; установіть `OPENCLAW_LIVE_MAX_MODELS=0` для вичерпної modern-перевірки або додатне число для меншого ліміту.
|
||||
- Для вичерпних перевірок використовується `OPENCLAW_LIVE_TEST_TIMEOUT_MS` як тайм-аут усього тесту direct-model. За замовчуванням: 60 хвилин.
|
||||
- За замовчуванням перевірки direct-model виконуються з паралелізмом 20; щоб перевизначити це, установіть `OPENCLAW_LIVE_MODEL_CONCURRENCY`.
|
||||
- Як вибирати провайдерів:
|
||||
- `OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"` (allowlist через кому)
|
||||
- або `OPENCLAW_LIVE_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,..."` (allowlist через коми)
|
||||
- Перегляди modern/all за замовчуванням мають підібране обмеження з високим сигналом; установіть `OPENCLAW_LIVE_MAX_MODELS=0` для вичерпного modern-перегляду або додатне число для меншого обмеження.
|
||||
- Для вичерпних переглядів використовується `OPENCLAW_LIVE_TEST_TIMEOUT_MS` як тайм-аут усього прямого тесту моделі. Типове значення: 60 хвилин.
|
||||
- Проби прямої моделі за замовчуванням виконуються з паралелізмом у 20 потоків; щоб перевизначити, установіть `OPENCLAW_LIVE_MODEL_CONCURRENCY`.
|
||||
- Як вибрати провайдерів:
|
||||
- `OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"` (allowlist через коми)
|
||||
- Звідки беруться ключі:
|
||||
- За замовчуванням: сховище профілів і резервні значення env
|
||||
- За замовчуванням: сховище профілів і fallback через env
|
||||
- Установіть `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати **лише сховище профілів**
|
||||
- Навіщо це існує:
|
||||
- Відокремлює «API провайдера зламане / ключ недійсний» від «конвеєр Gateway-агента зламаний»
|
||||
- Містить невеликі ізольовані регресії (приклад: повторення reasoning replay OpenAI Responses/Codex Responses + потоки виклику інструментів)
|
||||
- Відокремлює «API провайдера зламане / ключ недійсний» від «конвеєр gateway agent зламаний»
|
||||
- Містить малі ізольовані регресії (приклад: потоки повторення міркування OpenAI Responses/Codex Responses + виклик інструментів)
|
||||
|
||||
### Шар 2: smoke-тест Gateway + dev agent (що насправді робить "@openclaw")
|
||||
### Шар 2: smoke-тест Gateway + dev agent (те, що насправді робить "@openclaw")
|
||||
|
||||
- Тест: `src/gateway/gateway-models.profiles.live.test.ts`
|
||||
- Мета:
|
||||
- Підняти Gateway у процесі
|
||||
- Створити/пропатчити сеанс `agent:dev:*` (з перевизначенням моделі для кожного запуску)
|
||||
- Перебрати моделі-з-ключами й перевірити:
|
||||
- Запустити внутрішньопроцесний Gateway
|
||||
- Створити/пропатчити сеанс `agent:dev:*` (перевизначення моделі для кожного запуску)
|
||||
- Ітерувати моделі з ключами та перевіряти:
|
||||
- «змістовну» відповідь (без інструментів)
|
||||
- що працює реальний виклик інструмента (перевірка read)
|
||||
- необов’язкові додаткові перевірки інструментів (перевірка exec+read)
|
||||
- що регресійні шляхи OpenAI (лише tool-call → follow-up) продовжують працювати
|
||||
- Деталі перевірок (щоб ви могли швидко пояснювати збої):
|
||||
- перевірка `read`: тест записує nonce-файл у робочу область і просить агента виконати `read` для нього та повернути nonce.
|
||||
- перевірка `exec+read`: тест просить агента через `exec` записати nonce у тимчасовий файл, а потім прочитати його назад через `read`.
|
||||
- перевірка зображення: тест додає згенерований PNG (cat + рандомізований код) і очікує, що модель поверне `cat <CODE>`.
|
||||
- роботу реального виклику інструмента (проба читання)
|
||||
- необов’язкові додаткові проби інструментів (проба exec+read)
|
||||
- що регресійні шляхи OpenAI (лише tool-call → подальший крок) і далі працюють
|
||||
- Подробиці проб (щоб ви могли швидко пояснювати збої):
|
||||
- проба `read`: тест записує файл nonce у робочому просторі й просить agent `read` його та повернути nonce.
|
||||
- проба `exec+read`: тест просить agent записати nonce у тимчасовий файл через `exec`, а потім прочитати його назад через `read`.
|
||||
- проба зображення: тест прикріплює згенерований PNG (cat + рандомізований код) і очікує, що модель поверне `cat <CODE>`.
|
||||
- Посилання на реалізацію: `src/gateway/gateway-models.profiles.live.test.ts` і `src/gateway/live-image-probe.ts`.
|
||||
- Як увімкнути:
|
||||
- `pnpm test:live` (або `OPENCLAW_LIVE_TEST=1`, якщо викликаєте Vitest напряму)
|
||||
- Як вибирати моделі:
|
||||
- `pnpm test:live` (або `OPENCLAW_LIVE_TEST=1`, якщо ви викликаєте Vitest напряму)
|
||||
- Як вибрати моделі:
|
||||
- За замовчуванням: modern allowlist (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4)
|
||||
- `OPENCLAW_LIVE_GATEWAY_MODELS=all` — це псевдонім для modern allowlist
|
||||
- Або встановіть `OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"` (або список через кому), щоб звузити вибір
|
||||
- Для modern/all перевірок Gateway за замовчуванням використовується підібраний ліміт із високим сигналом; установіть `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0` для вичерпної modern-перевірки або додатне число для меншого ліміту.
|
||||
- Як вибирати провайдерів (щоб уникнути «все через OpenRouter»):
|
||||
- `OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"` (allowlist через кому)
|
||||
- Перевірки інструментів і зображень у цьому live-тесті завжди увімкнені:
|
||||
- перевірка `read` + перевірка `exec+read` (навантаження на інструменти)
|
||||
- перевірка зображення виконується, коли модель заявляє підтримку вхідних зображень
|
||||
- Перегляди modern/all для gateway за замовчуванням мають підібране обмеження з високим сигналом; установіть `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0` для вичерпного modern-перегляду або додатне число для меншого обмеження.
|
||||
- Як вибрати провайдерів (уникнути «OpenRouter everything»):
|
||||
- `OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"` (allowlist через коми)
|
||||
- Проби інструментів і зображень у цьому живому тесті завжди ввімкнені:
|
||||
- проба `read` + проба `exec+read` (навантаження на інструменти)
|
||||
- проба зображення запускається, коли модель заявляє підтримку введення зображень
|
||||
- Потік (на високому рівні):
|
||||
- Тест генерує маленький PNG із «CAT» + випадковим кодом (`src/gateway/live-image-probe.ts`)
|
||||
- Тест генерує крихітний PNG з «CAT» + випадковим кодом (`src/gateway/live-image-probe.ts`)
|
||||
- Надсилає його через `agent` `attachments: [{ mimeType: "image/png", content: "<base64>" }]`
|
||||
- Gateway розбирає вкладення в `images[]` (`src/gateway/server-methods/agent.ts` + `src/gateway/chat-attachments.ts`)
|
||||
- Вбудований агент пересилає мультимодальне повідомлення користувача моделі
|
||||
- Перевірка: відповідь містить `cat` + код (толерантність OCR: незначні помилки дозволені)
|
||||
- Вбудований agent передає моделі мультимодальне повідомлення користувача
|
||||
- Перевірка: відповідь містить `cat` + код (допуск OCR: незначні помилки дозволені)
|
||||
|
||||
Порада: щоб побачити, що ви можете тестувати на своїй машині (і точні ідентифікатори `provider/model`), виконайте:
|
||||
Порада: щоб побачити, що саме можна тестувати на вашій машині (і точні ідентифікатори `provider/model`), виконайте:
|
||||
|
||||
```bash
|
||||
openclaw models list
|
||||
openclaw models list --json
|
||||
```
|
||||
|
||||
## Live: smoke-тест бекенду CLI (Claude, Codex, Gemini або інших локальних CLI)
|
||||
## Живе: smoke-тест бекенду CLI (Claude, Codex, Gemini або інші локальні CLI)
|
||||
|
||||
- Тест: `src/gateway/gateway-cli-backend.live.test.ts`
|
||||
- Мета: перевірити конвеєр Gateway + агента з використанням локального бекенду CLI, не зачіпаючи вашу типову конфігурацію.
|
||||
- Типові значення для smoke-тестів конкретного бекенду містяться у визначенні `cli-backend.ts` відповідного розширення.
|
||||
- Мета: перевірити конвеєр Gateway + agent з використанням локального бекенду CLI, не торкаючись вашої типової конфігурації.
|
||||
- Типові значення smoke-тестів, специфічні для бекенду, знаходяться у визначенні `cli-backend.ts` відповідного розширення-власника.
|
||||
- Увімкнення:
|
||||
- `pnpm test:live` (або `OPENCLAW_LIVE_TEST=1`, якщо викликаєте Vitest напряму)
|
||||
- `pnpm test:live` (або `OPENCLAW_LIVE_TEST=1`, якщо ви викликаєте Vitest напряму)
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND=1`
|
||||
- Типові значення:
|
||||
- Провайдер/модель за замовчуванням: `claude-cli/claude-sonnet-4-6`
|
||||
- Поведінка command/args/image береться з метаданих Plugin бекенду CLI-власника.
|
||||
- Типовий провайдер/модель: `claude-cli/claude-sonnet-4-6`
|
||||
- Поведінка command/args/image береться з метаданих Plugin CLI-бекенду-власника.
|
||||
- Перевизначення (необов’язково):
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_MODEL="codex-cli/gpt-5.2"`
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/codex"`
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_ARGS='["exec","--json","--color","never","--sandbox","read-only","--skip-git-repo-check"]'`
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1`, щоб надіслати реальне вкладення-зображення (шляхи вбудовуються в prompt). У recipes Docker це за замовчуванням вимкнено, якщо явно не запитано.
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"`, щоб передавати шляхи до файлів зображень як аргументи CLI замість вбудовування в prompt.
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1`, щоб надіслати реальне вкладення-зображення (шляхи впроваджуються у prompt). У рецептах Docker це за замовчуванням вимкнено, якщо явно не запитано.
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"`, щоб передавати шляхи до файлів зображень як аргументи CLI замість впровадження в prompt.
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"` (або `"list"`), щоб керувати передаванням аргументів зображень, коли встановлено `IMAGE_ARG`.
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1`, щоб надіслати другий хід і перевірити потік відновлення.
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1`, щоб увімкнути перевірку безперервності того самого сеансу Claude Sonnet -> Opus, коли вибрана модель підтримує ціль перемикання. У recipes Docker це за замовчуванням вимкнено для загальної надійності.
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1`, щоб увімкнути перевірку loopback MCP/tool. У recipes Docker це за замовчуванням вимкнено, якщо явно не запитано.
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1`, щоб увімкнути пробу безперервності того самого сеансу Claude Sonnet -> Opus, коли вибрана модель підтримує ціль перемикання. У рецептах Docker це за замовчуванням вимкнено для загальної надійності.
|
||||
- `OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1`, щоб увімкнути loopback-пробу MCP/інструмента. У рецептах Docker це за замовчуванням вимкнено, якщо явно не запитано.
|
||||
|
||||
Приклад:
|
||||
|
||||
@ -188,29 +188,29 @@ pnpm test:docker:live-cli-backend:gemini
|
||||
|
||||
Примітки:
|
||||
|
||||
- Docker-ранер розташовано в `scripts/test-live-cli-backend-docker.sh`.
|
||||
- Він запускає live smoke-тест бекенду CLI всередині Docker-образу репозиторію як непривілейований користувач `node`.
|
||||
- Він визначає метадані smoke-тестів CLI із відповідного розширення, а потім установлює відповідний Linux-пакет CLI (`@anthropic-ai/claude-code`, `@openai/codex` або `@google/gemini-cli`) у кешований записуваний префікс за адресою `OPENCLAW_DOCKER_CLI_TOOLS_DIR` (типово: `~/.cache/openclaw/docker-cli-tools`).
|
||||
- `pnpm test:docker:live-cli-backend:claude-subscription` потребує portable OAuth підписки Claude Code або через `~/.claude/.credentials.json` з `claudeAiOauth.subscriptionType`, або через `CLAUDE_CODE_OAUTH_TOKEN` із `claude setup-token`. Спочатку він підтверджує прямий `claude -p` у Docker, а потім виконує два ходи Gateway CLI-backend без збереження змінних середовища Anthropic API-key. У цій гілці підписки перевірки Claude MCP/tool і зображень за замовчуванням вимкнені, оскільки Claude зараз маршрутизує використання сторонніх застосунків через оплату додаткового використання, а не через звичайні ліміти тарифного плану підписки.
|
||||
- Live smoke-тест бекенду CLI тепер перевіряє той самий наскрізний потік для Claude, Codex і Gemini: текстовий хід, хід класифікації зображення, а потім виклик інструмента MCP `cron`, перевірений через gateway CLI.
|
||||
- Типовий smoke-тест Claude також патчить сеанс із Sonnet на Opus і перевіряє, що відновлений сеанс досі пам’ятає попередню нотатку.
|
||||
- Раннер Docker знаходиться тут: `scripts/test-live-cli-backend-docker.sh`.
|
||||
- Він запускає живий smoke-тест CLI-бекенду всередині Docker-образу репозиторію від імені непривілейованого користувача `node`.
|
||||
- Він визначає метадані smoke-тесту CLI з розширення-власника, а потім встановлює відповідний Linux-пакет CLI (`@anthropic-ai/claude-code`, `@openai/codex` або `@google/gemini-cli`) у кешований каталог із правом запису за префіксом `OPENCLAW_DOCKER_CLI_TOOLS_DIR` (типово: `~/.cache/openclaw/docker-cli-tools`).
|
||||
- `pnpm test:docker:live-cli-backend:claude-subscription` потребує portable Claude Code subscription OAuth через `~/.claude/.credentials.json` з `claudeAiOauth.subscriptionType` або `CLAUDE_CODE_OAUTH_TOKEN` із `claude setup-token`. Спочатку він підтверджує прямий `claude -p` у Docker, а потім виконує два ходи Gateway CLI-бекенду без збереження змінних середовища ключа Anthropic API. Для цього шляху підписки за замовчуванням вимкнено проби Claude MCP/інструмента та зображень, оскільки Claude наразі маршрутизує використання сторонніх застосунків через оплату за додаткове використання, а не через звичайні ліміти плану підписки.
|
||||
- Живий smoke-тест CLI-бекенду тепер виконує той самий наскрізний потік для Claude, Codex і Gemini: текстовий хід, хід класифікації зображення, а потім виклик інструмента MCP `cron`, перевірений через gateway CLI.
|
||||
- Типовий smoke-тест Claude також патчить сеанс із Sonnet на Opus і перевіряє, що відновлений сеанс усе ще пам’ятає попередню нотатку.
|
||||
|
||||
## Live: ACP bind smoke (`/acp spawn ... --bind here`)
|
||||
## Живе: smoke-тест прив’язки ACP (`/acp spawn ... --bind here`)
|
||||
|
||||
- Тест: `src/gateway/gateway-acp-bind.live.test.ts`
|
||||
- Мета: перевірити реальний потік conversation-bind ACP із live ACP-агентом:
|
||||
- Мета: перевірити реальний потік conversation-bind ACP із живим ACP agent:
|
||||
- надіслати `/acp spawn <agent> --bind here`
|
||||
- прив’язати синтетичну розмову message-channel на місці
|
||||
- надіслати звичайний follow-up у тій самій розмові
|
||||
- перевірити, що follow-up потрапляє в transcript прив’язаного ACP-сеансу
|
||||
- прив’язати синтетичну розмову каналу повідомлень на місці
|
||||
- надіслати звичайний подальший запит у тій самій розмові
|
||||
- перевірити, що подальший запит потрапляє до стенограми прив’язаного сеансу ACP
|
||||
- Увімкнення:
|
||||
- `pnpm test:live src/gateway/gateway-acp-bind.live.test.ts`
|
||||
- `OPENCLAW_LIVE_ACP_BIND=1`
|
||||
- Типові значення:
|
||||
- ACP-агенти в Docker: `claude,codex,gemini`
|
||||
- ACP-агент для прямого `pnpm test:live ...`: `claude`
|
||||
- ACP agents у Docker: `claude,codex,gemini`
|
||||
- ACP agent для прямого `pnpm test:live ...`: `claude`
|
||||
- Синтетичний канал: контекст розмови у стилі Slack DM
|
||||
- ACP-бекенд: `acpx`
|
||||
- Бекенд ACP: `acpx`
|
||||
- Перевизначення:
|
||||
- `OPENCLAW_LIVE_ACP_BIND_AGENT=claude`
|
||||
- `OPENCLAW_LIVE_ACP_BIND_AGENT=codex`
|
||||
@ -220,8 +220,8 @@ pnpm test:docker:live-cli-backend:gemini
|
||||
- `OPENCLAW_LIVE_ACP_BIND_CODEX_MODEL=gpt-5.2`
|
||||
- `OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.2`
|
||||
- Примітки:
|
||||
- Ця гілка використовує поверхню gateway `chat.send` з адміністративними синтетичними полями originating-route, щоб тести могли приєднати контекст message-channel без імітації зовнішньої доставки.
|
||||
- Коли `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND` не встановлено, тест використовує вбудований реєстр агентів Plugin `acpx` для вибраного агента ACP harness.
|
||||
- Цей шлях використовує поверхню gateway `chat.send` з адміністративними синтетичними полями originating-route, щоб тести могли приєднати контекст каналу повідомлень без удавання зовнішньої доставки.
|
||||
- Коли `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND` не встановлено, тест використовує вбудований реєстр agent вбудованого Plugin `acpx` для вибраного ACP harness agent.
|
||||
|
||||
Приклад:
|
||||
|
||||
@ -237,7 +237,7 @@ OPENCLAW_LIVE_ACP_BIND=1 \
|
||||
pnpm test:docker:live-acp-bind
|
||||
```
|
||||
|
||||
Рецепти Docker для одного агента:
|
||||
Рецепти Docker для одного agent:
|
||||
|
||||
```bash
|
||||
pnpm test:docker:live-acp-bind:claude
|
||||
@ -247,36 +247,36 @@ pnpm test:docker:live-acp-bind:gemini
|
||||
|
||||
Примітки щодо Docker:
|
||||
|
||||
- Docker-ранер розташовано в `scripts/test-live-acp-bind-docker.sh`.
|
||||
- За замовчуванням він запускає ACP bind smoke-тест послідовно для всіх підтримуваних live CLI-агентів: `claude`, `codex`, потім `gemini`.
|
||||
- Раннер Docker знаходиться тут: `scripts/test-live-acp-bind-docker.sh`.
|
||||
- За замовчуванням він запускає smoke-тест прив’язки ACP послідовно для всіх підтримуваних живих агентів CLI: `claude`, `codex`, потім `gemini`.
|
||||
- Використовуйте `OPENCLAW_LIVE_ACP_BIND_AGENTS=claude`, `OPENCLAW_LIVE_ACP_BIND_AGENTS=codex` або `OPENCLAW_LIVE_ACP_BIND_AGENTS=gemini`, щоб звузити матрицю.
|
||||
- Він виконує `source ~/.profile`, підготовлює відповідні автентифікаційні матеріали CLI у контейнері, установлює `acpx` у записуваний npm-префікс, а потім установлює запитаний live CLI (`@anthropic-ai/claude-code`, `@openai/codex` або `@google/gemini-cli`), якщо його немає.
|
||||
- Усередині Docker раннер установлює `OPENCLAW_LIVE_ACP_BIND_ACPX_COMMAND=$HOME/.npm-global/bin/acpx`, щоб acpx зберігав змінні середовища провайдера з профілю, підключеного через `source`, доступними для дочірнього harness CLI.
|
||||
- Він підключає `~/.profile`, готує відповідні матеріали автентифікації CLI в контейнері, установлює `acpx` у npm-префікс із правом запису, а потім установлює запитаний живий CLI (`@anthropic-ai/claude-code`, `@openai/codex` або `@google/gemini-cli`), якщо його немає.
|
||||
- Усередині Docker раннер встановлює `OPENCLAW_LIVE_ACP_BIND_ACPX_COMMAND=$HOME/.npm-global/bin/acpx`, щоб `acpx` зберігав змінні середовища провайдера з підключеного профілю доступними для дочірнього CLI harness.
|
||||
|
||||
## Live: smoke-тест harness app-server Codex
|
||||
## Живе: smoke-тест harness app-server Codex
|
||||
|
||||
- Мета: перевірити Codex harness, що належить Plugin, через звичайний
|
||||
метод Gateway `agent`:
|
||||
- Мета: перевірити harness Codex, яким володіє Plugin, через звичайний метод gateway
|
||||
`agent`:
|
||||
- завантажити вбудований Plugin `codex`
|
||||
- вибрати `OPENCLAW_AGENT_RUNTIME=codex`
|
||||
- надіслати перший хід gateway agent до `openai/gpt-5.2` із примусово вибраним Codex harness
|
||||
- надіслати другий хід до того самого сеансу OpenClaw і перевірити, що потік
|
||||
- надіслати перший хід gateway agent до `openai/gpt-5.2` із примусовим використанням harness Codex
|
||||
- надіслати другий хід у той самий сеанс OpenClaw і перевірити, що потік
|
||||
app-server може відновитися
|
||||
- виконати `/codex status` і `/codex models` через той самий шлях
|
||||
команд Gateway
|
||||
- за потреби виконати дві ескальовані shell-перевірки, перевірені Guardian: одну безпечну
|
||||
- запустити `/codex status` і `/codex models` через той самий шлях команди
|
||||
gateway
|
||||
- необов’язково запустити дві ескальовані shell-проби, перевірені Guardian: одну безпечну
|
||||
команду, яку слід схвалити, і одне фальшиве вивантаження секрету, яке слід
|
||||
відхилити, щоб агент перепитав
|
||||
відхилити, щоб agent перепитав
|
||||
- Тест: `src/gateway/gateway-codex-harness.live.test.ts`
|
||||
- Увімкнення: `OPENCLAW_LIVE_CODEX_HARNESS=1`
|
||||
- Типова модель: `openai/gpt-5.2`
|
||||
- Необов’язкова перевірка зображення: `OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1`
|
||||
- Необов’язкова перевірка MCP/tool: `OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1`
|
||||
- Необов’язкова перевірка Guardian: `OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1`
|
||||
- Цей smoke-тест установлює `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб зламаний Codex
|
||||
harness не міг пройти тест, непомітно переключившись на Pi.
|
||||
- Автентифікація: автентифікація app-server Codex із локального входу підписки Codex. Docker
|
||||
smoke-тести також можуть надавати `OPENAI_API_KEY` для не-Codex перевірок, де це доречно,
|
||||
- Необов’язкова проба зображення: `OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1`
|
||||
- Необов’язкова проба MCP/інструмента: `OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1`
|
||||
- Необов’язкова проба Guardian: `OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1`
|
||||
- Smoke-тест установлює `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб зламаний harness Codex
|
||||
не міг пройти, непомітно переключившись на fallback до Pi.
|
||||
- Автентифікація: автентифікація app-server Codex із локального входу до підписки Codex. Docker
|
||||
smoke-тести також можуть надавати `OPENAI_API_KEY` для не-Codex проб, де це застосовно,
|
||||
а також необов’язково скопійовані `~/.codex/auth.json` і `~/.codex/config.toml`.
|
||||
|
||||
Локальний рецепт:
|
||||
@ -300,29 +300,30 @@ pnpm test:docker:live-codex-harness
|
||||
|
||||
Примітки щодо Docker:
|
||||
|
||||
- Docker-ранер розташовано в `scripts/test-live-codex-harness-docker.sh`.
|
||||
- Він виконує `source` для змонтованого `~/.profile`, передає `OPENAI_API_KEY`, копіює файли
|
||||
автентифікації CLI Codex, якщо вони є, установлює `@openai/codex` у записуваний змонтований npm
|
||||
префікс, підготовлює дерево вихідних файлів, а потім запускає лише live-тест Codex-harness.
|
||||
- У Docker за замовчуванням увімкнені перевірки зображень, MCP/tool і Guardian. Установіть
|
||||
- Раннер Docker знаходиться тут: `scripts/test-live-codex-harness-docker.sh`.
|
||||
- Він підключає змонтований `~/.profile`, передає `OPENAI_API_KEY`, копіює файли
|
||||
автентифікації CLI Codex, якщо вони є, установлює `@openai/codex` у змонтований npm-префікс
|
||||
із правом запису, готує дерево джерел, а потім запускає лише живий тест Codex-harness.
|
||||
- У Docker проби зображення, MCP/інструмента та Guardian увімкнені за замовчуванням. Установіть
|
||||
`OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0` або
|
||||
`OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0` або
|
||||
`OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0`, коли потрібен вужчий налагоджувальний
|
||||
запуск.
|
||||
- Docker також експортує `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, що відповідає конфігурації live-тесту,
|
||||
тож застарілі псевдоніми або fallback на PI не можуть приховати регресію Codex harness.
|
||||
- Docker також експортує `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, що відповідає конфігурації живого
|
||||
тесту, щоб застарілі псевдоніми або fallback до Pi не могли приховати регресію
|
||||
harness Codex.
|
||||
|
||||
### Рекомендовані live-рецепти
|
||||
### Рекомендовані живі рецепти
|
||||
|
||||
Найшвидші й найменш нестабільні — вузькі, явні allowlist:
|
||||
Вузькі, явні allowlist працюють найшвидше й найменше схильні до збоїв:
|
||||
|
||||
- Одна модель, напряму (без Gateway):
|
||||
- Одна модель, напряму (без gateway):
|
||||
- `OPENCLAW_LIVE_MODELS="openai/gpt-5.2" pnpm test:live src/agents/models.profiles.live.test.ts`
|
||||
|
||||
- Одна модель, gateway smoke:
|
||||
- Одна модель, smoke-тест gateway:
|
||||
- `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`
|
||||
|
||||
- Виклик інструментів через кількох провайдерів:
|
||||
- Виклик інструментів для кількох провайдерів:
|
||||
- `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,deepseek/deepseek-v4-flash,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`
|
||||
|
||||
- Фокус на Google (ключ API Gemini + Antigravity):
|
||||
@ -330,29 +331,29 @@ pnpm test:docker:live-codex-harness
|
||||
- Antigravity (OAuth): `OPENCLAW_LIVE_GATEWAY_MODELS="google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-pro-high" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`
|
||||
|
||||
- Smoke-тест адаптивного мислення Google:
|
||||
- Якщо локальні ключі зберігаються в профілі оболонки: `source ~/.profile`
|
||||
- Якщо локальні ключі знаходяться в профілі shell: `source ~/.profile`
|
||||
- Gemini 3 dynamic default: `pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-3.1-pro-preview --alt-model google/gemini-3.1-pro-preview --message '/think adaptive Reply exactly: GEMINI_ADAPTIVE_OK' --timeout-ms 180000`
|
||||
- Gemini 2.5 dynamic budget: `pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-2.5-flash --alt-model google/gemini-2.5-flash --message '/think adaptive Reply exactly: GEMINI25_ADAPTIVE_OK' --timeout-ms 180000`
|
||||
|
||||
Примітки:
|
||||
|
||||
- `google/...` використовує API Gemini (ключ API).
|
||||
- `google-antigravity/...` використовує міст OAuth Antigravity (кінцева точка агента в стилі Cloud Code Assist).
|
||||
- `google-gemini-cli/...` використовує локальний CLI Gemini на вашій машині (окрема автентифікація + особливості інструментарію).
|
||||
- API Gemini проти CLI Gemini:
|
||||
- API: OpenClaw викликає розміщений Google API Gemini через HTTP (автентифікація ключем API / профілем); саме це більшість користувачів мають на увазі під «Gemini».
|
||||
- CLI: OpenClaw викликає локальний двійковий файл `gemini`; він має власну автентифікацію і може поводитися інакше (streaming/підтримка інструментів/розходження версій).
|
||||
- `google-antigravity/...` використовує міст OAuth Antigravity (кінцева точка agent у стилі Cloud Code Assist).
|
||||
- `google-gemini-cli/...` використовує локальний Gemini CLI на вашій машині (окрема автентифікація + особливості інструментів).
|
||||
- API Gemini проти Gemini CLI:
|
||||
- API: OpenClaw викликає розміщений Google API Gemini через HTTP (автентифікація через ключ API / профіль); саме це більшість користувачів мають на увазі під «Gemini».
|
||||
- CLI: OpenClaw викликає локальний бінарник `gemini`; він має власну автентифікацію й може поводитися інакше (streaming/підтримка інструментів/розбіжність версій).
|
||||
|
||||
## Live: матриця моделей (що ми покриваємо)
|
||||
## Живе: матриця моделей (що ми покриваємо)
|
||||
|
||||
Фіксованого «списку моделей CI» немає (live є opt-in), але це **рекомендовані** моделі для регулярного покриття на машині розробника з ключами.
|
||||
Фіксованого «списку моделей CI» немає (живі тести вмикаються за бажанням), але ось **рекомендовані** моделі для регулярного покриття на машині розробника з ключами.
|
||||
|
||||
### Сучасний набір smoke-тестів (виклик інструментів + зображення)
|
||||
|
||||
Це запуск «поширених моделей», який ми очікуємо підтримувати працездатним:
|
||||
Це запуск «поширених моделей», який, як ми очікуємо, має залишатися працездатним:
|
||||
|
||||
- OpenAI (не-Codex): `openai/gpt-5.2`
|
||||
- OAuth OpenAI Codex: `openai-codex/gpt-5.2`
|
||||
- OpenAI Codex OAuth: `openai-codex/gpt-5.2`
|
||||
- Anthropic: `anthropic/claude-opus-4-6` (або `anthropic/claude-sonnet-4-6`)
|
||||
- Google (API Gemini): `google/gemini-3.1-pro-preview` і `google/gemini-3-flash-preview` (уникайте старіших моделей Gemini 2.x)
|
||||
- Google (Antigravity): `google-antigravity/claude-opus-4-6-thinking` і `google-antigravity/gemini-3-flash`
|
||||
@ -360,12 +361,12 @@ pnpm test:docker:live-codex-harness
|
||||
- Z.AI (GLM): `zai/glm-4.7`
|
||||
- MiniMax: `minimax/MiniMax-M2.7`
|
||||
|
||||
Запуск gateway smoke з інструментами + зображенням:
|
||||
Запуск smoke-тесту gateway з інструментами + зображенням:
|
||||
`OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3-flash-preview,google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-flash,deepseek/deepseek-v4-flash,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts`
|
||||
|
||||
### Базовий рівень: виклик інструментів (Read + необов’язковий Exec)
|
||||
|
||||
Виберіть щонайменше одну модель для кожного сімейства провайдерів:
|
||||
Виберіть принаймні одну модель для кожної сім’ї провайдерів:
|
||||
|
||||
- OpenAI: `openai/gpt-5.2`
|
||||
- Anthropic: `anthropic/claude-opus-4-6` (або `anthropic/claude-sonnet-4-6`)
|
||||
@ -374,76 +375,76 @@ pnpm test:docker:live-codex-harness
|
||||
- Z.AI (GLM): `zai/glm-4.7`
|
||||
- MiniMax: `minimax/MiniMax-M2.7`
|
||||
|
||||
Необов’язкове додаткове покриття (було б добре мати):
|
||||
Необов’язкове додаткове покриття (бажано мати):
|
||||
|
||||
- xAI: `xai/grok-4` (або найновіша доступна)
|
||||
- Mistral: `mistral/`… (виберіть одну модель із підтримкою інструментів, яку у вас ввімкнено)
|
||||
- Mistral: `mistral/`… (виберіть одну модель із підтримкою `tools`, яку у вас ввімкнено)
|
||||
- Cerebras: `cerebras/`… (якщо у вас є доступ)
|
||||
- LM Studio: `lmstudio/`… (локально; виклик інструментів залежить від режиму API)
|
||||
|
||||
### Vision: надсилання зображень (вкладення → мультимодальне повідомлення)
|
||||
### Vision: надсилання зображення (вкладення → мультимодальне повідомлення)
|
||||
|
||||
Додайте щонайменше одну модель із підтримкою зображень до `OPENCLAW_LIVE_GATEWAY_MODELS` (варіанти Claude/Gemini/OpenAI з підтримкою vision тощо), щоб перевірити image probe.
|
||||
Додайте принаймні одну модель із підтримкою зображень у `OPENCLAW_LIVE_GATEWAY_MODELS` (Claude/Gemini/варіанти OpenAI із підтримкою vision тощо), щоб перевірити пробу зображення.
|
||||
|
||||
### Агрегатори / альтернативні Gateway
|
||||
### Агрегатори / альтернативні gateway
|
||||
|
||||
Якщо у вас увімкнено ключі, ми також підтримуємо тестування через:
|
||||
|
||||
- OpenRouter: `openrouter/...` (сотні моделей; використовуйте `openclaw models scan`, щоб знайти кандидатів із підтримкою інструментів і зображень)
|
||||
- OpenRouter: `openrouter/...` (сотні моделей; використовуйте `openclaw models scan`, щоб знайти кандидатів із підтримкою `tool`+`image`)
|
||||
- OpenCode: `opencode/...` для Zen і `opencode-go/...` для Go (автентифікація через `OPENCODE_API_KEY` / `OPENCODE_ZEN_API_KEY`)
|
||||
|
||||
Інші провайдери, яких можна додати до live-матриці (якщо у вас є облікові дані/конфігурація):
|
||||
Інші провайдери, яких можна включити до живої матриці (якщо у вас є облікові дані/конфігурація):
|
||||
|
||||
- Вбудовані: `openai`, `openai-codex`, `anthropic`, `google`, `google-vertex`, `google-antigravity`, `google-gemini-cli`, `zai`, `openrouter`, `opencode`, `opencode-go`, `xai`, `groq`, `cerebras`, `mistral`, `github-copilot`
|
||||
- Через `models.providers` (власні кінцеві точки): `minimax` (хмара/API), а також будь-який проксі, сумісний з OpenAI/Anthropic (LM Studio, vLLM, LiteLLM тощо)
|
||||
- Через `models.providers` (власні кінцеві точки): `minimax` (хмара/API), а також будь-який сумісний із OpenAI/Anthropic проксі (LM Studio, vLLM, LiteLLM тощо)
|
||||
|
||||
Порада: не намагайтеся жорстко зафіксувати в документації «усі моделі». Авторитетним списком є те, що повертає `discoverModels(...)` на вашій машині, разом із доступними ключами.
|
||||
Порада: не намагайтеся жорстко прописати в документації «всі моделі». Авторитетний список — це те, що `discoverModels(...)` повертає на вашій машині + які ключі доступні.
|
||||
|
||||
## Облікові дані (ніколи не комітьте)
|
||||
|
||||
Live-тести знаходять облікові дані так само, як і CLI. Практичні наслідки:
|
||||
Живі тести виявляють облікові дані так само, як це робить CLI. Практичні наслідки:
|
||||
|
||||
- Якщо CLI працює, live-тести мають знайти ті самі ключі.
|
||||
- Якщо live-тест каже «немає облікових даних», налагоджуйте це так само, як ви налагоджували б `openclaw models list` / вибір моделі.
|
||||
- Якщо CLI працює, живі тести мають знаходити ті самі ключі.
|
||||
- Якщо живий тест повідомляє «немає облікових даних», налагоджуйте це так само, як ви налагоджували б `openclaw models list` / вибір моделі.
|
||||
|
||||
- Профілі автентифікації для кожного агента: `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (саме це в live-тестах означає «ключі профілю»)
|
||||
- Профілі автентифікації для кожного agent: `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (саме це в живих тестах означає «ключі профілю»)
|
||||
- Конфігурація: `~/.openclaw/openclaw.json` (або `OPENCLAW_CONFIG_PATH`)
|
||||
- Каталог застарілого стану: `~/.openclaw/credentials/` (копіюється в підготовлений live home, якщо наявний, але не є основним сховищем ключів профілю)
|
||||
- Локальні live-запуски за замовчуванням копіюють активну конфігурацію, файли `auth-profiles.json` для кожного агента, застарілий `credentials/` і підтримувані зовнішні каталоги автентифікації CLI до тимчасового test home; у підготовлених live home пропускаються `workspace/` і `sandboxes/`, а перевизначення шляхів `agents.*.workspace` / `agentDir` видаляються, щоб перевірки не торкалися вашого реального робочого простору хоста.
|
||||
- Застарілий каталог стану: `~/.openclaw/credentials/` (копіюється в підготовлений живий home, якщо присутній, але це не основне сховище ключів профілю)
|
||||
- Локальні живі запуски за замовчуванням копіюють активну конфігурацію, файли `auth-profiles.json` для кожного agent, застарілий `credentials/` і підтримувані зовнішні каталоги автентифікації CLI до тимчасового тестового home; у підготовлених живих home пропускаються `workspace/` і `sandboxes/`, а перевизначення шляхів `agents.*.workspace` / `agentDir` видаляються, щоб проби не торкалися вашого реального робочого простору хоста.
|
||||
|
||||
Якщо ви хочете покладатися на ключі env (наприклад, експортовані у вашому `~/.profile`), запускайте локальні тести після `source ~/.profile` або використовуйте Docker-ранери нижче (вони можуть монтувати `~/.profile` у контейнер).
|
||||
Якщо ви хочете покладатися на ключі env (наприклад, експортовані у вашому `~/.profile`), запускайте локальні тести після `source ~/.profile` або використовуйте наведені нижче раннери Docker (вони можуть монтувати `~/.profile` у контейнер).
|
||||
|
||||
## Live Deepgram (транскрибування аудіо)
|
||||
## Живе: Deepgram (транскрибування аудіо)
|
||||
|
||||
- Тест: `extensions/deepgram/audio.live.test.ts`
|
||||
- Увімкнення: `DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts`
|
||||
|
||||
## Live BytePlus coding plan
|
||||
## Живе: coding plan BytePlus
|
||||
|
||||
- Тест: `extensions/byteplus/live.test.ts`
|
||||
- Увімкнення: `BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts`
|
||||
- Необов’язкове перевизначення моделі: `BYTEPLUS_CODING_MODEL=ark-code-latest`
|
||||
|
||||
## Live медіа ComfyUI workflow
|
||||
## Живе: медіа workflow ComfyUI
|
||||
|
||||
- Тест: `extensions/comfy/comfy.live.test.ts`
|
||||
- Увімкнення: `OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts`
|
||||
- Область:
|
||||
- Перевіряє вбудовані шляхи comfy image, video і `music_generate`
|
||||
- Обсяг:
|
||||
- Перевіряє вбудовані шляхи comfy для зображень, відео та `music_generate`
|
||||
- Пропускає кожну можливість, якщо не налаштовано `plugins.entries.comfy.config.<capability>`
|
||||
- Корисно після змін у надсиланні workflow comfy, опитуванні, завантаженнях або реєстрації Plugin
|
||||
|
||||
## Live генерація зображень
|
||||
## Живе: генерація зображень
|
||||
|
||||
- Тест: `test/image-generation.runtime.live.test.ts`
|
||||
- Команда: `pnpm test:live test/image-generation.runtime.live.test.ts`
|
||||
- Harness: `pnpm test:live:media image`
|
||||
- Область:
|
||||
- Перелічує кожен зареєстрований Plugin провайдера генерації зображень
|
||||
- Завантажує відсутні env-змінні провайдера з вашої оболонки входу (`~/.profile`) перед перевіркою
|
||||
- За замовчуванням використовує live/env API-ключі раніше за збережені профілі автентифікації, щоб застарілі тестові ключі в `auth-profiles.json` не приховували реальні облікові дані оболонки
|
||||
- Обсяг:
|
||||
- Перераховує кожен зареєстрований Plugin провайдера генерації зображень
|
||||
- Завантажує відсутні env-змінні провайдера з вашої оболонки входу (`~/.profile`) перед пробами
|
||||
- За замовчуванням використовує живі/env API-ключі раніше за збережені профілі автентифікації, щоб застарілі тестові ключі в `auth-profiles.json` не маскували реальні облікові дані оболонки
|
||||
- Пропускає провайдерів без придатної автентифікації/профілю/моделі
|
||||
- Запускає кожного налаштованого провайдера через спільний runtime генерації зображень:
|
||||
- Проганяє кожного налаштованого провайдера через спільний runtime генерації зображень:
|
||||
- `<provider>:generate`
|
||||
- `<provider>:edit`, коли провайдер заявляє підтримку редагування
|
||||
- Поточні вбудовані провайдери, які покриваються:
|
||||
@ -459,10 +460,10 @@ Live-тести знаходять облікові дані так само, я
|
||||
- `OPENCLAW_LIVE_IMAGE_GENERATION_MODELS="openai/gpt-image-2,google/gemini-3.1-flash-image-preview,openrouter/google/gemini-3.1-flash-image-preview,xai/grok-imagine-image"`
|
||||
- `OPENCLAW_LIVE_IMAGE_GENERATION_CASES="google:flash-generate,google:pro-edit,openrouter:generate,xai:default-generate,xai:default-edit"`
|
||||
- Необов’язкова поведінка автентифікації:
|
||||
- `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати автентифікацію зі сховища профілів і ігнорувати перевизначення лише через env
|
||||
- `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати автентифікацію через сховище профілів і ігнорувати перевизначення лише через env
|
||||
|
||||
Для перевірки шляху shipped CLI додайте smoke-тест `infer` після того, як live-тест
|
||||
провайдера/runtime пройде успішно:
|
||||
Для шляху CLI, що постачається, додайте smoke-тест `infer` після того, як живий
|
||||
тест провайдера/runtime пройде успішно:
|
||||
|
||||
```bash
|
||||
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_INFER_CLI_TEST=1 pnpm test:live -- test/image-generation.infer-cli.live.test.ts
|
||||
@ -475,76 +476,76 @@ openclaw infer image generate \
|
||||
```
|
||||
|
||||
Це покриває розбір аргументів CLI, визначення config/default-agent, активацію вбудованого
|
||||
Plugin, ремонт залежностей вбудованого runtime на вимогу, спільний
|
||||
runtime генерації зображень і live-запит до провайдера.
|
||||
Plugin, ремонт залежностей runtime на вимогу, спільний
|
||||
runtime генерації зображень і живий запит до провайдера.
|
||||
|
||||
## Live генерація музики
|
||||
## Живе: генерація музики
|
||||
|
||||
- Тест: `extensions/music-generation-providers.live.test.ts`
|
||||
- Увімкнення: `OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts`
|
||||
- Harness: `pnpm test:live:media music`
|
||||
- Область:
|
||||
- Обсяг:
|
||||
- Перевіряє спільний шлях вбудованого провайдера генерації музики
|
||||
- Наразі покриває Google і MiniMax
|
||||
- Завантажує env-змінні провайдера з вашої оболонки входу (`~/.profile`) перед перевіркою
|
||||
- За замовчуванням використовує live/env API-ключі раніше за збережені профілі автентифікації, щоб застарілі тестові ключі в `auth-profiles.json` не приховували реальні облікові дані оболонки
|
||||
- Завантажує env-змінні провайдера з вашої оболонки входу (`~/.profile`) перед пробами
|
||||
- За замовчуванням використовує живі/env API-ключі раніше за збережені профілі автентифікації, щоб застарілі тестові ключі в `auth-profiles.json` не маскували реальні облікові дані оболонки
|
||||
- Пропускає провайдерів без придатної автентифікації/профілю/моделі
|
||||
- Запускає обидва заявлені режими runtime, коли вони доступні:
|
||||
- `generate` з введенням лише prompt
|
||||
- `edit`, коли провайдер заявляє `capabilities.edit.enabled`
|
||||
- Поточне покриття спільної гілки:
|
||||
- Поточне покриття спільного шляху:
|
||||
- `google`: `generate`, `edit`
|
||||
- `minimax`: `generate`
|
||||
- `comfy`: окремий live-файл Comfy, не ця спільна перевірка
|
||||
- `comfy`: окремий живий файл Comfy, не цей спільний перегляд
|
||||
- Необов’язкове звуження:
|
||||
- `OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"`
|
||||
- `OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.5+"`
|
||||
- `OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.6"`
|
||||
- Необов’язкова поведінка автентифікації:
|
||||
- `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати автентифікацію зі сховища профілів і ігнорувати перевизначення лише через env
|
||||
- `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати автентифікацію через сховище профілів і ігнорувати перевизначення лише через env
|
||||
|
||||
## Live генерація відео
|
||||
## Живе: генерація відео
|
||||
|
||||
- Тест: `extensions/video-generation-providers.live.test.ts`
|
||||
- Увімкнення: `OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts`
|
||||
- Harness: `pnpm test:live:media video`
|
||||
- Область:
|
||||
- Обсяг:
|
||||
- Перевіряє спільний шлях вбудованого провайдера генерації відео
|
||||
- За замовчуванням використовує безпечний для релізу шлях smoke-тесту: провайдери без FAL, один запит text-to-video на провайдера, one-second lobster prompt і обмеження операції для кожного провайдера через `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS` (`180000` за замовчуванням)
|
||||
- За замовчуванням пропускає FAL, оскільки затримка черги на боці провайдера може домінувати над часом релізу; передайте `--video-providers fal` або `OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"`, щоб запустити його явно
|
||||
- Завантажує env-змінні провайдера з вашої оболонки входу (`~/.profile`) перед перевіркою
|
||||
- За замовчуванням використовує live/env API-ключі раніше за збережені профілі автентифікації, щоб застарілі тестові ключі в `auth-profiles.json` не приховували реальні облікові дані оболонки
|
||||
- За замовчуванням використовує безпечний для релізу шлях smoke-тесту: провайдери не-FAL, один запит text-to-video на провайдера, односекундний lobster-prompt і обмеження операції на провайдера з `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS` (`180000` за замовчуванням)
|
||||
- За замовчуванням пропускає FAL, оскільки затримка черги на боці провайдера може домінувати в часі релізу; передайте `--video-providers fal` або `OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"`, щоб запустити його явно
|
||||
- Завантажує env-змінні провайдера з вашої оболонки входу (`~/.profile`) перед пробами
|
||||
- За замовчуванням використовує живі/env API-ключі раніше за збережені профілі автентифікації, щоб застарілі тестові ключі в `auth-profiles.json` не маскували реальні облікові дані оболонки
|
||||
- Пропускає провайдерів без придатної автентифікації/профілю/моделі
|
||||
- За замовчуванням запускає лише `generate`
|
||||
- Установіть `OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1`, щоб також запускати заявлені режими трансформації, коли вони доступні:
|
||||
- `imageToVideo`, коли провайдер заявляє `capabilities.imageToVideo.enabled` і вибраний провайдер/модель приймає локальне введення зображення на основі буфера у спільній перевірці
|
||||
- `videoToVideo`, коли провайдер заявляє `capabilities.videoToVideo.enabled` і вибраний провайдер/модель приймає локальне введення відео на основі буфера у спільній перевірці
|
||||
- Поточні заявлені, але пропущені провайдери `imageToVideo` у спільній перевірці:
|
||||
- `vydra`, оскільки вбудований `veo3` підтримує лише text-to-video, а вбудований `kling` потребує віддалений URL зображення
|
||||
- `imageToVideo`, коли провайдер заявляє `capabilities.imageToVideo.enabled` і вибраний провайдер/модель приймає локальне введення зображення на основі buffer у спільному перегляді
|
||||
- `videoToVideo`, коли провайдер заявляє `capabilities.videoToVideo.enabled` і вибраний провайдер/модель приймає локальне введення відео на основі buffer у спільному перегляді
|
||||
- Поточні заявлені, але пропущені провайдери `imageToVideo` у спільному перегляді:
|
||||
- `vydra`, оскільки вбудований `veo3` є лише text-only, а вбудований `kling` потребує віддаленої URL-адреси зображення
|
||||
- Покриття Vydra, специфічне для провайдера:
|
||||
- `OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts`
|
||||
- цей файл запускає `veo3` text-to-video плюс гілку `kling`, яка за замовчуванням використовує фікстуру віддаленого URL зображення
|
||||
- Поточне live-покриття `videoToVideo`:
|
||||
- цей файл запускає `veo3` text-to-video плюс шлях `kling`, який за замовчуванням використовує віддалений fixture URL-адреси зображення
|
||||
- Поточне живе покриття `videoToVideo`:
|
||||
- лише `runway`, коли вибрана модель — `runway/gen4_aleph`
|
||||
- Поточні заявлені, але пропущені провайдери `videoToVideo` у спільній перевірці:
|
||||
- `alibaba`, `qwen`, `xai`, оскільки ці шляхи зараз потребують віддалені еталонні URL `http(s)` / MP4
|
||||
- `google`, оскільки поточна спільна гілка Gemini/Veo використовує локальне введення на основі буфера, а цей шлях не приймається у спільній перевірці
|
||||
- `openai`, оскільки поточна спільна гілка не гарантує доступ до video inpaint/remix, специфічний для org
|
||||
- Поточні заявлені, але пропущені провайдери `videoToVideo` у спільному перегляді:
|
||||
- `alibaba`, `qwen`, `xai`, оскільки ці шляхи зараз потребують віддалених опорних URL-адрес `http(s)` / MP4
|
||||
- `google`, оскільки поточний спільний шлях Gemini/Veo використовує локальне введення на основі buffer, і цей шлях не приймається в спільному перегляді
|
||||
- `openai`, оскільки поточний спільний шлях не гарантує доступу до відео inpaint/remix, специфічного для організації
|
||||
- Необов’язкове звуження:
|
||||
- `OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="google,openai,runway"`
|
||||
- `OPENCLAW_LIVE_VIDEO_GENERATION_MODELS="google/veo-3.1-fast-generate-preview,openai/sora-2,runway/gen4_aleph"`
|
||||
- `OPENCLAW_LIVE_VIDEO_GENERATION_SKIP_PROVIDERS=""`, щоб включити кожного провайдера до типового набору перевірок, включно з FAL
|
||||
- `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000`, щоб зменшити обмеження операції для кожного провайдера для агресивного smoke-запуску
|
||||
- `OPENCLAW_LIVE_VIDEO_GENERATION_SKIP_PROVIDERS=""`, щоб включити кожного провайдера в типовий перегляд, зокрема FAL
|
||||
- `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000`, щоб зменшити обмеження операції кожного провайдера для агресивного smoke-запуску
|
||||
- Необов’язкова поведінка автентифікації:
|
||||
- `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати автентифікацію зі сховища профілів і ігнорувати перевизначення лише через env
|
||||
- `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1`, щоб примусово використовувати автентифікацію через сховище профілів і ігнорувати перевизначення лише через env
|
||||
|
||||
## Media live harness
|
||||
|
||||
- Команда: `pnpm test:live:media`
|
||||
- Призначення:
|
||||
- Запускає спільні live-набори для зображень, музики й відео через один вбудований у репозиторій entrypoint
|
||||
- Запускає спільні живі набори для зображень, музики й відео через одну нативну точку входу репозиторію
|
||||
- Автоматично завантажує відсутні env-змінні провайдера з `~/.profile`
|
||||
- За замовчуванням автоматично звужує кожен набір тестів до провайдерів, які наразі мають придатну автентифікацію
|
||||
- Повторно використовує `scripts/test-live.mjs`, тому поведінка Heartbeat і quiet mode залишається узгодженою
|
||||
- За замовчуванням автоматично звужує кожен набір до провайдерів, які наразі мають придатну автентифікацію
|
||||
- Повторно використовує `scripts/test-live.mjs`, тому поведінка Heartbeat і quiet-mode залишається узгодженою
|
||||
- Приклади:
|
||||
- `pnpm test:live:media`
|
||||
- `pnpm test:live:media image video --providers openai,google,minimax`
|
||||
@ -553,4 +554,4 @@ runtime генерації зображень і live-запит до прова
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Тестування](/uk/help/testing) — набори unit, integration, QA і Docker
|
||||
- [Тестування](/uk/help/testing) — модульні, інтеграційні, QA та Docker-набори
|
||||
|
||||
@ -5,10 +5,10 @@ read_when:
|
||||
summary: Використовуйте моделі MiniMax в OpenClaw
|
||||
title: MiniMax
|
||||
x-i18n:
|
||||
generated_at: "2026-04-25T09:41:24Z"
|
||||
generated_at: "2026-04-25T10:05:01Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: ddf6cfb68ef5fcaa360a2a7ebb9e3ce130100a59b014643091449a07654c7c6f
|
||||
source_hash: 666e8fd958a2566a66bc2262a1b23e3253f4ed1367c4e684380041fd935ab4af
|
||||
source_path: providers/minimax.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -18,29 +18,29 @@ x-i18n:
|
||||
MiniMax також надає:
|
||||
|
||||
- Вбудований синтез мовлення через T2A v2
|
||||
- Вбудоване розуміння зображень через `MiniMax-VL-01`
|
||||
- Вбудовану генерацію музики через `music-2.5+`
|
||||
- Вбудоване розпізнавання зображень через `MiniMax-VL-01`
|
||||
- Вбудовану генерацію музики через `music-2.6`
|
||||
- Вбудований `web_search` через API пошуку MiniMax Coding Plan
|
||||
|
||||
Розділення провайдерів:
|
||||
Розподіл провайдерів:
|
||||
|
||||
| Provider ID | Auth | Можливості |
|
||||
| ---------------- | ------- | ------------------------------------------------------------- |
|
||||
| `minimax` | API key | Текст, генерація зображень, розуміння зображень, мовлення, вебпошук |
|
||||
| `minimax-portal` | OAuth | Текст, генерація зображень, розуміння зображень, мовлення |
|
||||
| ID провайдера | Автентифікація | Можливості |
|
||||
| --------------- | -------------- | ------------------------------------------------------------- |
|
||||
| `minimax` | API key | Текст, генерація зображень, розпізнавання зображень, мовлення, вебпошук |
|
||||
| `minimax-portal`| OAuth | Текст, генерація зображень, розпізнавання зображень, мовлення |
|
||||
|
||||
## Вбудований каталог
|
||||
|
||||
| Model | Type | Description |
|
||||
| Модель | Тип | Опис |
|
||||
| ------------------------ | ---------------- | ---------------------------------------- |
|
||||
| `MiniMax-M2.7` | Чат (міркування) | Типова розміщена модель для міркування |
|
||||
| `MiniMax-M2.7-highspeed` | Чат (міркування) | Швидший рівень міркування M2.7 |
|
||||
| `MiniMax-VL-01` | Зір | Модель розуміння зображень |
|
||||
| `image-01` | Генерація зображень | Перетворення тексту на зображення та редагування зображення на зображення |
|
||||
| `music-2.5+` | Генерація музики | Типова музична модель |
|
||||
| `MiniMax-M2.7` | Чат (міркування) | Типова хостингова модель для міркувань |
|
||||
| `MiniMax-M2.7-highspeed` | Чат (міркування) | Швидший рівень міркувань M2.7 |
|
||||
| `MiniMax-VL-01` | Бачення | Модель розпізнавання зображень |
|
||||
| `image-01` | Генерація зображень | Перетворення тексту на зображення та редагування зображення за зображенням |
|
||||
| `music-2.6` | Генерація музики | Типова музична модель |
|
||||
| `music-2.5` | Генерація музики | Попередній рівень генерації музики |
|
||||
| `music-2.0` | Генерація музики | Застарілий рівень генерації музики |
|
||||
| `MiniMax-Hailuo-2.3` | Генерація відео | Потоки перетворення тексту на відео та з посиланням на зображення |
|
||||
| `MiniMax-Hailuo-2.3` | Генерація відео | Потоки текст-у-відео та з опорним зображенням |
|
||||
|
||||
## Початок роботи
|
||||
|
||||
@ -48,35 +48,35 @@ MiniMax також надає:
|
||||
|
||||
<Tabs>
|
||||
<Tab title="OAuth (Coding Plan)">
|
||||
**Найкраще для:** швидкого налаштування з MiniMax Coding Plan через OAuth, без потреби в API key.
|
||||
**Найкраще для:** швидкого налаштування MiniMax Coding Plan через OAuth, без потреби в API key.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Міжнародний">
|
||||
<Tab title="International">
|
||||
<Steps>
|
||||
<Step title="Запустіть онбординг">
|
||||
```bash
|
||||
openclaw onboard --auth-choice minimax-global-oauth
|
||||
```
|
||||
|
||||
Це автентифікує через `api.minimax.io`.
|
||||
Це виконує автентифікацію через `api.minimax.io`.
|
||||
</Step>
|
||||
<Step title="Перевірте, що модель доступна">
|
||||
<Step title="Переконайтеся, що модель доступна">
|
||||
```bash
|
||||
openclaw models list --provider minimax-portal
|
||||
```
|
||||
</Step>
|
||||
</Steps>
|
||||
</Tab>
|
||||
<Tab title="Китай">
|
||||
<Tab title="China">
|
||||
<Steps>
|
||||
<Step title="Запустіть онбординг">
|
||||
```bash
|
||||
openclaw onboard --auth-choice minimax-cn-oauth
|
||||
```
|
||||
|
||||
Це автентифікує через `api.minimaxi.com`.
|
||||
Це виконує автентифікацію через `api.minimaxi.com`.
|
||||
</Step>
|
||||
<Step title="Перевірте, що модель доступна">
|
||||
<Step title="Переконайтеся, що модель доступна">
|
||||
```bash
|
||||
openclaw models list --provider minimax-portal
|
||||
```
|
||||
@ -86,7 +86,7 @@ MiniMax також надає:
|
||||
</Tabs>
|
||||
|
||||
<Note>
|
||||
Налаштування OAuth використовують ідентифікатор провайдера `minimax-portal`. Посилання на моделі мають формат `minimax-portal/MiniMax-M2.7`.
|
||||
Налаштування OAuth використовують ID провайдера `minimax-portal`. Посилання на моделі мають формат `minimax-portal/MiniMax-M2.7`.
|
||||
</Note>
|
||||
|
||||
<Tip>
|
||||
@ -96,35 +96,35 @@ MiniMax також надає:
|
||||
</Tab>
|
||||
|
||||
<Tab title="API key">
|
||||
**Найкраще для:** розміщеного MiniMax з API, сумісним з Anthropic.
|
||||
**Найкраще для:** хостингового MiniMax із API, сумісним з Anthropic.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Міжнародний">
|
||||
<Tab title="International">
|
||||
<Steps>
|
||||
<Step title="Запустіть онбординг">
|
||||
```bash
|
||||
openclaw onboard --auth-choice minimax-global-api
|
||||
```
|
||||
|
||||
Це налаштовує `api.minimax.io` як базовий URL.
|
||||
Це налаштовує `api.minimax.io` як базову URL-адресу.
|
||||
</Step>
|
||||
<Step title="Перевірте, що модель доступна">
|
||||
<Step title="Переконайтеся, що модель доступна">
|
||||
```bash
|
||||
openclaw models list --provider minimax
|
||||
```
|
||||
</Step>
|
||||
</Steps>
|
||||
</Tab>
|
||||
<Tab title="Китай">
|
||||
<Tab title="China">
|
||||
<Steps>
|
||||
<Step title="Запустіть онбординг">
|
||||
```bash
|
||||
openclaw onboard --auth-choice minimax-cn-api
|
||||
```
|
||||
|
||||
Це налаштовує `api.minimaxi.com` як базовий URL.
|
||||
Це налаштовує `api.minimaxi.com` як базову URL-адресу.
|
||||
</Step>
|
||||
<Step title="Перевірте, що модель доступна">
|
||||
<Step title="Переконайтеся, що модель доступна">
|
||||
```bash
|
||||
openclaw models list --provider minimax
|
||||
```
|
||||
@ -173,11 +173,11 @@ MiniMax також надає:
|
||||
```
|
||||
|
||||
<Warning>
|
||||
У шляху потокової передачі, сумісному з Anthropic, OpenClaw типово вимикає thinking для MiniMax, якщо ви явно не встановите `thinking` самостійно. Кінцева точка потокової передачі MiniMax надсилає `reasoning_content` у блоках дельти в стилі OpenAI замість нативних блоків thinking Anthropic, через що внутрішні міркування можуть потрапити у видимий вивід, якщо залишити цю опцію неявно ввімкненою.
|
||||
У сумісному з Anthropic потоковому шляху OpenClaw типово вимикає thinking для MiniMax, якщо ви явно не встановите `thinking` самостійно. Потокова кінцева точка MiniMax надсилає `reasoning_content` у дельта-чанках у стилі OpenAI замість нативних блоків thinking Anthropic, що може призвести до витоку внутрішніх міркувань у видимий вивід, якщо залишити це неявно увімкненим.
|
||||
</Warning>
|
||||
|
||||
<Note>
|
||||
Налаштування з API key використовують ідентифікатор провайдера `minimax`. Посилання на моделі мають формат `minimax/MiniMax-M2.7`.
|
||||
Налаштування з API key використовують ID провайдера `minimax`. Посилання на моделі мають формат `minimax/MiniMax-M2.7`.
|
||||
</Note>
|
||||
|
||||
</Tab>
|
||||
@ -185,7 +185,7 @@ MiniMax також надає:
|
||||
|
||||
## Налаштування через `openclaw configure`
|
||||
|
||||
Скористайтеся інтерактивним майстром конфігурації, щоб налаштувати MiniMax без редагування JSON:
|
||||
Використайте інтерактивний майстер конфігурації, щоб налаштувати MiniMax без редагування JSON:
|
||||
|
||||
<Steps>
|
||||
<Step title="Запустіть майстер">
|
||||
@ -197,9 +197,9 @@ MiniMax також надає:
|
||||
У меню виберіть **Model/auth**.
|
||||
</Step>
|
||||
<Step title="Виберіть варіант автентифікації MiniMax">
|
||||
Оберіть один із доступних варіантів MiniMax:
|
||||
Виберіть один із доступних варіантів MiniMax:
|
||||
|
||||
| Auth choice | Description |
|
||||
| Варіант автентифікації | Опис |
|
||||
| --- | --- |
|
||||
| `minimax-global-oauth` | Міжнародний OAuth (Coding Plan) |
|
||||
| `minimax-cn-oauth` | OAuth для Китаю (Coding Plan) |
|
||||
@ -208,7 +208,7 @@ MiniMax також надає:
|
||||
|
||||
</Step>
|
||||
<Step title="Виберіть типову модель">
|
||||
Коли з’явиться запит, виберіть свою типову модель.
|
||||
Коли з’явиться запит, виберіть типову модель.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
@ -216,12 +216,12 @@ MiniMax також надає:
|
||||
|
||||
### Генерація зображень
|
||||
|
||||
Плагін MiniMax реєструє модель `image-01` для інструмента `image_generate`. Підтримується:
|
||||
Plugin MiniMax реєструє модель `image-01` для інструмента `image_generate`. Вона підтримує:
|
||||
|
||||
- **Генерація зображень за текстом** із керуванням співвідношенням сторін
|
||||
- **Редагування зображення на основі зображення** (посилання на об’єкт) із керуванням співвідношенням сторін
|
||||
- **Генерацію зображень із тексту** з керуванням співвідношенням сторін
|
||||
- **Редагування зображення за зображенням** (посилання на об’єкт) з керуванням співвідношенням сторін
|
||||
- До **9 вихідних зображень** на запит
|
||||
- До **1 еталонного зображення** на запит редагування
|
||||
- До **1 опорного зображення** на запит редагування
|
||||
- Підтримувані співвідношення сторін: `1:1`, `16:9`, `4:3`, `3:2`, `2:3`, `3:4`, `9:16`, `21:9`
|
||||
|
||||
Щоб використовувати MiniMax для генерації зображень, встановіть його як провайдера генерації зображень:
|
||||
@ -236,73 +236,72 @@ MiniMax також надає:
|
||||
}
|
||||
```
|
||||
|
||||
Плагін використовує той самий `MINIMAX_API_KEY` або OAuth-автентифікацію, що й текстові моделі. Якщо MiniMax уже налаштовано, додаткова конфігурація не потрібна.
|
||||
Plugin використовує той самий `MINIMAX_API_KEY` або OAuth-автентифікацію, що й текстові моделі. Якщо MiniMax уже налаштовано, додаткова конфігурація не потрібна.
|
||||
|
||||
І `minimax`, і `minimax-portal` реєструють `image_generate` з тією самою
|
||||
моделлю `image-01`. Налаштування з API key використовують `MINIMAX_API_KEY`; налаштування OAuth можуть
|
||||
натомість використовувати вбудований шлях автентифікації `minimax-portal`.
|
||||
І `minimax`, і `minimax-portal` реєструють `image_generate` з однаковою
|
||||
моделлю `image-01`. Налаштування з API key використовують `MINIMAX_API_KEY`; налаштування OAuth можуть натомість використовувати
|
||||
вбудований шлях автентифікації `minimax-portal`.
|
||||
|
||||
Коли онбординг або налаштування з API key записує явні записи `models.providers.minimax`,
|
||||
Коли онбординг або налаштування API key записує явні записи `models.providers.minimax`,
|
||||
OpenClaw матеріалізує `MiniMax-M2.7` і
|
||||
`MiniMax-M2.7-highspeed` як текстові моделі чату. Розуміння зображень
|
||||
надається окремо через медіапровайдер `MiniMax-VL-01`, що належить плагіну.
|
||||
`MiniMax-M2.7-highspeed` як текстові чат-моделі. Розпізнавання зображень
|
||||
окремо надається через медіапровайдер `MiniMax-VL-01`, який належить Plugin.
|
||||
|
||||
<Note>
|
||||
Див. [Генерація зображень](/uk/tools/image-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою перемикання при збої.
|
||||
Див. [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку failover.
|
||||
</Note>
|
||||
|
||||
### Перетворення тексту на мовлення
|
||||
### Синтез мовлення з тексту
|
||||
|
||||
Вбудований плагін `minimax` реєструє MiniMax T2A v2 як провайдера мовлення для
|
||||
Вбудований plugin `minimax` реєструє MiniMax T2A v2 як провайдера мовлення для
|
||||
`messages.tts`.
|
||||
|
||||
- Типова модель TTS: `speech-2.8-hd`
|
||||
- Типовий голос: `English_expressive_narrator`
|
||||
- Підтримувані вбудовані ідентифікатори моделей: `speech-2.8-hd`, `speech-2.8-turbo`,
|
||||
- Підтримувані вбудовані ідентифікатори моделей включають `speech-2.8-hd`, `speech-2.8-turbo`,
|
||||
`speech-2.6-hd`, `speech-2.6-turbo`, `speech-02-hd`,
|
||||
`speech-02-turbo`, `speech-01-hd` і `speech-01-turbo`.
|
||||
- Розв’язання автентифікації: `messages.tts.providers.minimax.apiKey`, потім
|
||||
профілі автентифікації OAuth/токена `minimax-portal`, потім ключі середовища Token Plan
|
||||
(`MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`,
|
||||
- Послідовність визначення автентифікації: `messages.tts.providers.minimax.apiKey`, потім
|
||||
OAuth/токен-профілі автентифікації `minimax-portal`, потім ключі середовища Token Plan (`MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`,
|
||||
`MINIMAX_CODING_API_KEY`), потім `MINIMAX_API_KEY`.
|
||||
- Якщо хост TTS не налаштовано, OpenClaw повторно використовує налаштований
|
||||
OAuth-хост `minimax-portal` і прибирає суфікси шляху, сумісні з Anthropic,
|
||||
як-от `/anthropic`.
|
||||
OAuth-хост `minimax-portal` і прибирає суфікси шляхів, сумісних з Anthropic,
|
||||
такі як `/anthropic`.
|
||||
- Звичайні аудіовкладення залишаються у форматі MP3.
|
||||
- Цілі для голосових нотаток, такі як Feishu і Telegram, перекодовуються з MP3 MiniMax
|
||||
- Призначення для голосових нотаток, такі як Feishu і Telegram, перекодовуються з MP3 MiniMax
|
||||
у 48 кГц Opus за допомогою `ffmpeg`, оскільки API файлів Feishu/Lark
|
||||
приймає для нативних аудіоповідомлень лише `file_type: "opus"`.
|
||||
приймає лише `file_type: "opus"` для нативних аудіоповідомлень.
|
||||
- MiniMax T2A приймає дробові значення `speed` і `vol`, але `pitch` надсилається як
|
||||
ціле число; OpenClaw відкидає дробову частину значень `pitch` перед запитом до API.
|
||||
|
||||
| Setting | Env var | Default | Description |
|
||||
| ---------------------------------------- | ---------------------- | ----------------------------- | -------------------------------- |
|
||||
| `messages.tts.providers.minimax.baseUrl` | `MINIMAX_API_HOST` | `https://api.minimax.io` | Хост API MiniMax T2A. |
|
||||
| `messages.tts.providers.minimax.model` | `MINIMAX_TTS_MODEL` | `speech-2.8-hd` | Ідентифікатор моделі TTS. |
|
||||
| Налаштування | Змінна середовища | Типове значення | Опис |
|
||||
| ---------------------------------------- | ---------------------- | --------------------------- | --------------------------------- |
|
||||
| `messages.tts.providers.minimax.baseUrl` | `MINIMAX_API_HOST` | `https://api.minimax.io` | Хост API MiniMax T2A. |
|
||||
| `messages.tts.providers.minimax.model` | `MINIMAX_TTS_MODEL` | `speech-2.8-hd` | Ідентифікатор моделі TTS. |
|
||||
| `messages.tts.providers.minimax.voiceId` | `MINIMAX_TTS_VOICE_ID` | `English_expressive_narrator` | Ідентифікатор голосу для мовленнєвого виводу. |
|
||||
| `messages.tts.providers.minimax.speed` | | `1.0` | Швидкість відтворення, `0.5..2.0`. |
|
||||
| `messages.tts.providers.minimax.vol` | | `1.0` | Гучність, `(0, 10]`. |
|
||||
| `messages.tts.providers.minimax.pitch` | | `0` | Цілочисельне зміщення висоти тону, `-12..12`. |
|
||||
| `messages.tts.providers.minimax.speed` | | `1.0` | Швидкість відтворення, `0.5..2.0`. |
|
||||
| `messages.tts.providers.minimax.vol` | | `1.0` | Гучність, `(0, 10]`. |
|
||||
| `messages.tts.providers.minimax.pitch` | | `0` | Цілочисельний зсув тону, `-12..12`. |
|
||||
|
||||
### Генерація музики
|
||||
|
||||
Вбудований плагін `minimax` також реєструє генерацію музики через спільний
|
||||
Вбудований plugin `minimax` також реєструє генерацію музики через спільний
|
||||
інструмент `music_generate`.
|
||||
|
||||
- Типова музична модель: `minimax/music-2.5+`
|
||||
- Також підтримуються `minimax/music-2.5` і `minimax/music-2.0`
|
||||
- Керування підказкою: `lyrics`, `instrumental`, `durationSeconds`
|
||||
- Типова музична модель: `minimax/music-2.6`
|
||||
- Також підтримує `minimax/music-2.5` і `minimax/music-2.0`
|
||||
- Керування промптом: `lyrics`, `instrumental`, `durationSeconds`
|
||||
- Формат виводу: `mp3`
|
||||
- Запуски з підтримкою сесії відокремлюються через спільний потік завдань/стану, зокрема `action: "status"`
|
||||
- Запуски із session backing від’єднуються через спільний потік завдань/статусу, включно з `action: "status"`
|
||||
|
||||
Щоб використовувати MiniMax як типового провайдера музики:
|
||||
Щоб використовувати MiniMax як типовий музичний провайдер:
|
||||
|
||||
```json5
|
||||
{
|
||||
agents: {
|
||||
defaults: {
|
||||
musicGenerationModel: {
|
||||
primary: "minimax/music-2.5+",
|
||||
primary: "minimax/music-2.6",
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -310,19 +309,19 @@ OpenClaw матеріалізує `MiniMax-M2.7` і
|
||||
```
|
||||
|
||||
<Note>
|
||||
Див. [Генерація музики](/uk/tools/music-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою перемикання при збої.
|
||||
Див. [Генерація музики](/uk/tools/music-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку failover.
|
||||
</Note>
|
||||
|
||||
### Генерація відео
|
||||
|
||||
Вбудований плагін `minimax` також реєструє генерацію відео через спільний
|
||||
Вбудований plugin `minimax` також реєструє генерацію відео через спільний
|
||||
інструмент `video_generate`.
|
||||
|
||||
- Типова відеомодель: `minimax/MiniMax-Hailuo-2.3`
|
||||
- Режими: перетворення тексту на відео та потоки з одним еталонним зображенням
|
||||
- Підтримуються `aspectRatio` і `resolution`
|
||||
- Режими: текст-у-відео та потоки з одним опорним зображенням
|
||||
- Підтримує `aspectRatio` і `resolution`
|
||||
|
||||
Щоб використовувати MiniMax як типового провайдера відео:
|
||||
Щоб використовувати MiniMax як типовий відеопровайдер:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -337,67 +336,67 @@ OpenClaw матеріалізує `MiniMax-M2.7` і
|
||||
```
|
||||
|
||||
<Note>
|
||||
Див. [Генерація відео](/uk/tools/video-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою перемикання при збої.
|
||||
Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку failover.
|
||||
</Note>
|
||||
|
||||
### Розуміння зображень
|
||||
### Розпізнавання зображень
|
||||
|
||||
Плагін MiniMax реєструє розуміння зображень окремо від текстового
|
||||
Plugin MiniMax реєструє розпізнавання зображень окремо від текстового
|
||||
каталогу:
|
||||
|
||||
| Provider ID | Типова модель зображень |
|
||||
| ---------------- | ----------------------- |
|
||||
| `minimax` | `MiniMax-VL-01` |
|
||||
| `minimax-portal` | `MiniMax-VL-01` |
|
||||
| ID провайдера | Типова модель для зображень |
|
||||
| ---------------- | --------------------------- |
|
||||
| `minimax` | `MiniMax-VL-01` |
|
||||
| `minimax-portal` | `MiniMax-VL-01` |
|
||||
|
||||
Саме тому автоматична маршрутизація медіа може використовувати MiniMax для розуміння зображень, навіть
|
||||
Саме тому автоматична маршрутизація медіа може використовувати розпізнавання зображень MiniMax навіть
|
||||
коли вбудований каталог текстових провайдерів усе ще показує лише текстові посилання чату M2.7.
|
||||
|
||||
### Вебпошук
|
||||
|
||||
Плагін MiniMax також реєструє `web_search` через API пошуку MiniMax Coding Plan.
|
||||
Plugin MiniMax також реєструє `web_search` через API пошуку MiniMax Coding Plan.
|
||||
|
||||
- Ідентифікатор провайдера: `minimax`
|
||||
- Структуровані результати: заголовки, URL, фрагменти, пов’язані запити
|
||||
- ID провайдера: `minimax`
|
||||
- Структуровані результати: заголовки, URL, сніпети, пов’язані запити
|
||||
- Бажана змінна середовища: `MINIMAX_CODE_PLAN_KEY`
|
||||
- Прийнятний псевдонім змінної середовища: `MINIMAX_CODING_API_KEY`
|
||||
- Резервний варіант сумісності: `MINIMAX_API_KEY`, якщо він уже вказує на токен coding plan
|
||||
- Повторне використання регіону: `plugins.entries.minimax.config.webSearch.region`, потім `MINIMAX_API_HOST`, потім базові URL провайдера MiniMax
|
||||
- Пошук залишається на ідентифікаторі провайдера `minimax`; налаштування OAuth CN/global усе ще можуть опосередковано спрямовувати регіон через `models.providers.minimax-portal.baseUrl`
|
||||
- Підтримуваний псевдонім змінної середовища: `MINIMAX_CODING_API_KEY`
|
||||
- Сумісний резервний варіант: `MINIMAX_API_KEY`, якщо він уже вказує на токен coding plan
|
||||
- Повторне використання регіону: `plugins.entries.minimax.config.webSearch.region`, потім `MINIMAX_API_HOST`, потім базові URL MiniMax провайдера
|
||||
- Пошук залишається на ID провайдера `minimax`; налаштування OAuth CN/global усе ще можуть опосередковано спрямовувати регіон через `models.providers.minimax-portal.baseUrl`
|
||||
|
||||
Конфігурація міститься в `plugins.entries.minimax.config.webSearch.*`.
|
||||
Конфігурація розміщена в `plugins.entries.minimax.config.webSearch.*`.
|
||||
|
||||
<Note>
|
||||
Див. [Пошук MiniMax](/uk/tools/minimax-search), щоб ознайомитися з повною конфігурацією та використанням вебпошуку.
|
||||
Див. [Пошук MiniMax](/uk/tools/minimax-search) для повної конфігурації та використання вебпошуку.
|
||||
</Note>
|
||||
|
||||
## Розширена конфігурація
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Параметри конфігурації">
|
||||
| Option | Description |
|
||||
| Параметр | Опис |
|
||||
| --- | --- |
|
||||
| `models.providers.minimax.baseUrl` | Надавайте перевагу `https://api.minimax.io/anthropic` (сумісний з Anthropic); `https://api.minimax.io/v1` є необов’язковим для даних, сумісних з OpenAI |
|
||||
| `models.providers.minimax.api` | Надавайте перевагу `anthropic-messages`; `openai-completions` є необов’язковим для даних, сумісних з OpenAI |
|
||||
| `models.providers.minimax.baseUrl` | Рекомендовано `https://api.minimax.io/anthropic` (сумісний з Anthropic); `https://api.minimax.io/v1` необов’язковий для payloads, сумісних з OpenAI |
|
||||
| `models.providers.minimax.api` | Рекомендовано `anthropic-messages`; `openai-completions` необов’язковий для payloads, сумісних з OpenAI |
|
||||
| `models.providers.minimax.apiKey` | API key MiniMax (`MINIMAX_API_KEY`) |
|
||||
| `models.providers.minimax.models` | Визначте `id`, `name`, `reasoning`, `contextWindow`, `maxTokens`, `cost` |
|
||||
| `agents.defaults.models` | Псевдоніми моделей, які ви хочете додати до списку дозволених |
|
||||
| `models.mode` | Залиште `merge`, якщо хочете додати MiniMax поряд із вбудованими |
|
||||
| `agents.defaults.models` | Псевдоніми моделей, які ви хочете додати до allowlist |
|
||||
| `models.mode` | Залиште `merge`, якщо хочете додати MiniMax поряд із вбудованими моделями |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Типові значення thinking">
|
||||
Для `api: "anthropic-messages"` OpenClaw додає `thinking: { type: "disabled" }`, якщо thinking ще не задано явно в параметрах/конфігурації.
|
||||
<Accordion title="Типові налаштування thinking">
|
||||
Для `api: "anthropic-messages"` OpenClaw додає `thinking: { type: "disabled" }`, якщо thinking вже не встановлено явно в params/config.
|
||||
|
||||
Це запобігає тому, щоб потокова кінцева точка MiniMax надсилала `reasoning_content` у блоках дельти в стилі OpenAI, що могло б розкрити внутрішні міркування у видимому виводі.
|
||||
Це запобігає тому, що потокова кінцева точка MiniMax надсилатиме `reasoning_content` у дельта-чанках у стилі OpenAI, що призвело б до витоку внутрішніх міркувань у видимий вивід.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Швидкий режим">
|
||||
`/fast on` або `params.fastMode: true` замінює `MiniMax-M2.7` на `MiniMax-M2.7-highspeed` у шляху потоку, сумісному з Anthropic.
|
||||
`/fast on` або `params.fastMode: true` переписує `MiniMax-M2.7` на `MiniMax-M2.7-highspeed` у сумісному з Anthropic потоковому шляху.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Приклад резервного перемикання">
|
||||
**Найкраще для:** зберегти найсильнішу сучасну модель як основну та перемикатися на MiniMax M2.7 у разі збою. У наведеному нижче прикладі як конкретну основну модель використано Opus; замініть її на бажану сучасну основну модель.
|
||||
<Accordion title="Приклад резервного варіанта">
|
||||
**Найкраще для:** зберегти найсильнішу модель останнього покоління як основну та використовувати MiniMax M2.7 як резервну. У прикладі нижче використовується Opus як конкретна основна модель; замініть її на бажану основну модель останнього покоління.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -419,51 +418,51 @@ OpenClaw матеріалізує `MiniMax-M2.7` і
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Докладно про використання Coding Plan">
|
||||
<Accordion title="Деталі використання Coding Plan">
|
||||
- API використання Coding Plan: `https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains` (потрібен ключ coding plan).
|
||||
- OpenClaw нормалізує використання MiniMax coding plan до того самого відображення `% left`, що використовується для інших провайдерів. Сирі поля MiniMax `usage_percent` / `usagePercent` означають залишок квоти, а не витрачену квоту, тому OpenClaw інвертує їх. Якщо доступні поля з підрахунком, вони мають пріоритет.
|
||||
- Коли API повертає `model_remains`, OpenClaw надає перевагу запису моделі чату, за потреби виводить мітку вікна з `start_time` / `end_time` і включає вибрану назву моделі до мітки плану, щоб вікна coding plan було легше розрізняти.
|
||||
- Знімки використання трактують `minimax`, `minimax-cn` і `minimax-portal` як ту саму поверхню квоти MiniMax і надають перевагу збереженому OAuth MiniMax перед резервним використанням змінних середовища з ключем Coding Plan.
|
||||
- OpenClaw нормалізує використання MiniMax coding plan до того самого відображення `% left`, що й у інших провайдерів. Сирі поля MiniMax `usage_percent` / `usagePercent` означають залишкову квоту, а не використану, тому OpenClaw інвертує їх. За наявності пріоритет мають поля з підрахунком.
|
||||
- Коли API повертає `model_remains`, OpenClaw надає перевагу запису чат-моделі, за потреби виводить мітку вікна з `start_time` / `end_time` і включає вибрану назву моделі в мітку плану, щоб вікна coding plan було легше розрізняти.
|
||||
- Знімки використання розглядають `minimax`, `minimax-cn` і `minimax-portal` як одну й ту саму поверхню квоти MiniMax і надають перевагу збереженому MiniMax OAuth перед резервним використанням змінних середовища з ключем Coding Plan.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Примітки
|
||||
|
||||
- Посилання на моделі відповідають шляху автентифікації:
|
||||
- Посилання на моделі залежать від шляху автентифікації:
|
||||
- Налаштування з API key: `minimax/<model>`
|
||||
- Налаштування OAuth: `minimax-portal/<model>`
|
||||
- Типова модель чату: `MiniMax-M2.7`
|
||||
- Альтернативна модель чату: `MiniMax-M2.7-highspeed`
|
||||
- Онбординг і пряме налаштування з API key записують текстові визначення моделей для обох варіантів M2.7
|
||||
- Для розуміння зображень використовується медіапровайдер `MiniMax-VL-01`, що належить плагіну
|
||||
- Налаштування з OAuth: `minimax-portal/<model>`
|
||||
- Типова чат-модель: `MiniMax-M2.7`
|
||||
- Альтернативна чат-модель: `MiniMax-M2.7-highspeed`
|
||||
- Онбординг і пряме налаштування через API key записують визначення лише текстових моделей для обох варіантів M2.7
|
||||
- Для розпізнавання зображень використовується медіапровайдер `MiniMax-VL-01`, що належить Plugin
|
||||
- Оновіть значення цін у `models.json`, якщо вам потрібне точне відстеження вартості
|
||||
- Використовуйте `openclaw models list`, щоб підтвердити поточний ідентифікатор провайдера, а потім перемкніть його за допомогою `openclaw models set minimax/MiniMax-M2.7` або `openclaw models set minimax-portal/MiniMax-M2.7`
|
||||
- Використовуйте `openclaw models list`, щоб підтвердити поточний ID провайдера, а потім перемкніться за допомогою `openclaw models set minimax/MiniMax-M2.7` або `openclaw models set minimax-portal/MiniMax-M2.7`
|
||||
|
||||
<Tip>
|
||||
Реферальне посилання для MiniMax Coding Plan (знижка 10%): [MiniMax Coding Plan](https://platform.minimax.io/subscribe/coding-plan?code=DbXJTRClnb&source=link)
|
||||
</Tip>
|
||||
|
||||
<Note>
|
||||
Див. [Провайдери моделей](/uk/concepts/model-providers), щоб ознайомитися з правилами для провайдерів.
|
||||
Див. [Провайдери моделей](/uk/concepts/model-providers) для правил провайдерів.
|
||||
</Note>
|
||||
|
||||
## Усунення проблем
|
||||
## Усунення несправностей
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title='"Unknown model: minimax/MiniMax-M2.7"'>
|
||||
Зазвичай це означає, що **провайдер MiniMax не налаштований** (немає відповідного запису провайдера і не знайдено профіль автентифікації/env key MiniMax). Виправлення для цього виявлення є в **2026.1.12**. Щоб виправити:
|
||||
Зазвичай це означає, що **провайдер MiniMax не налаштовано** (немає відповідного запису провайдера і не знайдено профіль автентифікації/env key MiniMax). Виправлення для цього визначення є в **2026.1.12**. Як виправити:
|
||||
|
||||
- Оновіться до **2026.1.12** (або запустіть із вихідного коду `main`), а потім перезапустіть Gateway.
|
||||
- Оновіться до **2026.1.12** (або запустіть із вихідного `main`), а потім перезапустіть Gateway.
|
||||
- Виконайте `openclaw configure` і виберіть параметр автентифікації **MiniMax**, або
|
||||
- Додайте відповідний блок `models.providers.minimax` або `models.providers.minimax-portal` вручну, або
|
||||
- Встановіть `MINIMAX_API_KEY`, `MINIMAX_OAUTH_TOKEN` або профіль автентифікації MiniMax, щоб можна було додати відповідний провайдер.
|
||||
- Установіть `MINIMAX_API_KEY`, `MINIMAX_OAUTH_TOKEN` або профіль автентифікації MiniMax, щоб можна було інʼєктувати відповідний провайдер.
|
||||
|
||||
Переконайтеся, що ідентифікатор моделі **чутливий до регістру**:
|
||||
|
||||
- Шлях API key: `minimax/MiniMax-M2.7` або `minimax/MiniMax-M2.7-highspeed`
|
||||
- Шлях OAuth: `minimax-portal/MiniMax-M2.7` або `minimax-portal/MiniMax-M2.7-highspeed`
|
||||
|
||||
Потім перевірте ще раз за допомогою:
|
||||
Потім ще раз перевірте за допомогою:
|
||||
|
||||
```bash
|
||||
openclaw models list
|
||||
@ -473,14 +472,14 @@ OpenClaw матеріалізує `MiniMax-M2.7` і
|
||||
</AccordionGroup>
|
||||
|
||||
<Note>
|
||||
Більше довідки: [Усунення проблем](/uk/help/troubleshooting) і [FAQ](/uk/help/faq).
|
||||
Більше допомоги: [Усунення несправностей](/uk/help/troubleshooting) і [FAQ](/uk/help/faq).
|
||||
</Note>
|
||||
|
||||
## Пов’язане
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Вибір моделі" href="/uk/concepts/model-providers" icon="layers">
|
||||
Вибір провайдерів, посилань на моделі та поведінки резервного перемикання.
|
||||
Вибір провайдерів, посилань на моделі та поведінки failover.
|
||||
</Card>
|
||||
<Card title="Генерація зображень" href="/uk/tools/image-generation" icon="image">
|
||||
Спільні параметри інструмента зображень і вибір провайдера.
|
||||
@ -494,7 +493,7 @@ OpenClaw матеріалізує `MiniMax-M2.7` і
|
||||
<Card title="Пошук MiniMax" href="/uk/tools/minimax-search" icon="magnifying-glass">
|
||||
Конфігурація вебпошуку через MiniMax Coding Plan.
|
||||
</Card>
|
||||
<Card title="Усунення проблем" href="/uk/help/troubleshooting" icon="wrench">
|
||||
Загальне усунення проблем і FAQ.
|
||||
<Card title="Усунення несправностей" href="/uk/help/troubleshooting" icon="wrench">
|
||||
Загальне усунення несправностей і FAQ.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -3,32 +3,33 @@ read_when:
|
||||
- Генерація музики або аудіо через агента
|
||||
- Налаштування провайдерів і моделей для генерації музики
|
||||
- Розуміння параметрів інструмента `music_generate`
|
||||
summary: Створюйте музику зі спільними провайдерами, включно з Plugin, що працюють на основі workflow
|
||||
summary: Генеруйте музику за допомогою спільних провайдерів, зокрема Plugin, що підтримуються робочими процесами
|
||||
title: Генерація музики
|
||||
x-i18n:
|
||||
generated_at: "2026-04-24T20:32:18Z"
|
||||
generated_at: "2026-04-25T10:05:03Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: cc6da03cd1cc5728e903b3c5bf0c47da65642842e38c1006419e2f2ce2400bda
|
||||
source_hash: fe66c6dfb54c71b1d08a486c574e8a86cf3731d5339b44b9eef121f045c13cb8
|
||||
source_path: tools/music-generation.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Інструмент `music_generate` дає агенту змогу створювати музику або аудіо через
|
||||
спільну можливість генерації музики з налаштованими провайдерами, такими як Google,
|
||||
MiniMax і ComfyUI, налаштований через workflow.
|
||||
MiniMax і налаштований через робочі процеси ComfyUI.
|
||||
|
||||
Для сеансів агента на основі спільних провайдерів OpenClaw запускає генерацію музики як
|
||||
фонове завдання, відстежує її в журналі завдань, а потім знову активує агента, коли
|
||||
трек готовий, щоб агент міг опублікувати готове аудіо назад у вихідний канал.
|
||||
фонове завдання, відстежує її в журналі завдань, а потім знову пробуджує агента, коли
|
||||
трек готовий, щоб агент міг опублікувати готове аудіо назад у
|
||||
початковий канал.
|
||||
|
||||
<Note>
|
||||
Вбудований спільний інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації музики. Якщо ви не бачите `music_generate` в інструментах вашого агента, налаштуйте `agents.defaults.musicGenerationModel` або встановіть API-ключ провайдера.
|
||||
Вбудований спільний інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації музики. Якщо ви не бачите `music_generate` серед інструментів вашого агента, налаштуйте `agents.defaults.musicGenerationModel` або задайте API-ключ провайдера.
|
||||
</Note>
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
### Генерація на основі спільного провайдера
|
||||
### Генерація на основі спільних провайдерів
|
||||
|
||||
1. Установіть API-ключ принаймні для одного провайдера, наприклад `GEMINI_API_KEY` або
|
||||
`MINIMAX_API_KEY`.
|
||||
@ -46,68 +47,68 @@ MiniMax і ComfyUI, налаштований через workflow.
|
||||
}
|
||||
```
|
||||
|
||||
3. Попросіть агента: _"Згенеруй енергійний synthpop-трек про нічну поїздку
|
||||
3. Попросіть агента: _"Згенеруй бадьорий synthpop-трек про нічну поїздку
|
||||
крізь неонове місто."_
|
||||
|
||||
Агент викликає `music_generate` автоматично. Дозволений список інструментів не потрібен.
|
||||
|
||||
Для прямих синхронних контекстів без запуску агента на основі сеансу вбудований
|
||||
інструмент усе одно переходить до вбудованої генерації та повертає фінальний шлях до медіа в результаті інструмента.
|
||||
інструмент усе одно повертається до вбудованої генерації та повертає фінальний шлях до медіафайлу в
|
||||
результаті інструмента.
|
||||
|
||||
Приклади запитів:
|
||||
|
||||
```text
|
||||
Згенеруй кінематографічний фортепіанний трек із м’якими струнними та без вокалу.
|
||||
Generate a cinematic piano track with soft strings and no vocals.
|
||||
```
|
||||
|
||||
```text
|
||||
Згенеруй енергійну chiptune-петлю про запуск ракети на світанку.
|
||||
Generate an energetic chiptune loop about launching a rocket at sunrise.
|
||||
```
|
||||
|
||||
### Генерація Comfy на основі workflow
|
||||
### Генерація Comfy на основі робочих процесів
|
||||
|
||||
Убудований Plugin `comfy` підключається до спільного інструмента `music_generate` через
|
||||
реєстр провайдерів генерації музики.
|
||||
|
||||
1. Налаштуйте `plugins.entries.comfy.config.music` за допомогою JSON workflow та
|
||||
вузлів prompt/output.
|
||||
1. Налаштуйте `plugins.entries.comfy.config.music` за допомогою workflow JSON і
|
||||
вузлів запиту/виводу.
|
||||
2. Якщо ви використовуєте Comfy Cloud, установіть `COMFY_API_KEY` або `COMFY_CLOUD_API_KEY`.
|
||||
3. Попросіть агента створити музику або викличте інструмент безпосередньо.
|
||||
|
||||
Приклад:
|
||||
|
||||
```text
|
||||
/tool music_generate prompt="Тепла ембієнтна synth-петля з м’якою текстурою стрічки"
|
||||
/tool music_generate prompt="Warm ambient synth loop with soft tape texture"
|
||||
```
|
||||
|
||||
## Підтримка вбудованих спільних провайдерів
|
||||
## Підтримка спільних убудованих провайдерів
|
||||
|
||||
| Провайдер | Модель за замовчуванням | Вхідні посилання | Підтримувані елементи керування | API-ключ |
|
||||
| --------- | ----------------------- | ---------------- | ----------------------------------------------------- | -------------------------------------- |
|
||||
| ComfyUI | `workflow` | До 1 зображення | Визначені workflow музика або аудіо | `COMFY_API_KEY`, `COMFY_CLOUD_API_KEY` |
|
||||
| Google | `lyria-3-clip-preview` | До 10 зображень | `lyrics`, `instrumental`, `format` | `GEMINI_API_KEY`, `GOOGLE_API_KEY` |
|
||||
| MiniMax | `music-2.5+` | Немає | `lyrics`, `instrumental`, `durationSeconds`, `format=mp3` | `MINIMAX_API_KEY` |
|
||||
| Провайдер | Модель за замовчуванням | Еталонні вхідні дані | Підтримувані елементи керування | API-ключ |
|
||||
| --------- | ----------------------- | -------------------- | ------------------------------------------------------- | -------------------------------------- |
|
||||
| ComfyUI | `workflow` | До 1 зображення | Визначені робочим процесом музика або аудіо | `COMFY_API_KEY`, `COMFY_CLOUD_API_KEY` |
|
||||
| Google | `lyria-3-clip-preview` | До 10 зображень | `lyrics`, `instrumental`, `format` | `GEMINI_API_KEY`, `GOOGLE_API_KEY` |
|
||||
| MiniMax | `music-2.6` | Немає | `lyrics`, `instrumental`, `durationSeconds`, `format=mp3` | `MINIMAX_API_KEY` |
|
||||
|
||||
### Матриця оголошених можливостей
|
||||
|
||||
Це явний контракт режимів, який використовують `music_generate`, контрактні тести
|
||||
та спільний live sweep.
|
||||
Це явний контракт режимів, який використовується `music_generate`, контрактними тестами
|
||||
та спільним live sweep.
|
||||
|
||||
| Провайдер | `generate` | `edit` | Ліміт редагування | Спільні live lanes |
|
||||
| --------- | ---------- | ------ | ----------------- | ------------------------------------------------------------------------- |
|
||||
| ComfyUI | Так | Так | 1 зображення | Не входить до спільного sweep; покривається `extensions/comfy/comfy.live.test.ts` |
|
||||
| ComfyUI | Так | Так | 1 зображення | Не входить до спільного sweep; покрито в `extensions/comfy/comfy.live.test.ts` |
|
||||
| Google | Так | Так | 10 зображень | `generate`, `edit` |
|
||||
| MiniMax | Так | Ні | Немає | `generate` |
|
||||
|
||||
Використовуйте `action: "list"`, щоб переглянути доступні спільні провайдери та моделі під
|
||||
Використовуйте `action: "list"`, щоб переглянути доступні спільні провайдери й моделі під
|
||||
час виконання:
|
||||
|
||||
```text
|
||||
/tool music_generate action=list
|
||||
```
|
||||
|
||||
Використовуйте `action: "status"`, щоб перевірити активне завдання генерації музики
|
||||
на основі поточного сеансу:
|
||||
Використовуйте `action: "status"`, щоб перевірити активне завдання музики на основі сеансу:
|
||||
|
||||
```text
|
||||
/tool music_generate action=status
|
||||
@ -116,54 +117,51 @@ MiniMax і ComfyUI, налаштований через workflow.
|
||||
Приклад прямої генерації:
|
||||
|
||||
```text
|
||||
/tool music_generate prompt="Мрійливий lo-fi hip hop із текстурою вінілу та ніжним дощем" instrumental=true
|
||||
/tool music_generate prompt="Dreamy lo-fi hip hop with vinyl texture and gentle rain" instrumental=true
|
||||
```
|
||||
|
||||
## Параметри вбудованого інструмента
|
||||
|
||||
| Параметр | Тип | Опис |
|
||||
| ----------------- | -------- | --------------------------------------------------------------------------------------------- |
|
||||
| `prompt` | string | Запит на генерацію музики (обов’язковий для `action: "generate"`) |
|
||||
| `action` | string | `"generate"` (типово), `"status"` для поточного завдання сеансу або `"list"` для перегляду провайдерів |
|
||||
| `model` | string | Перевизначення провайдера/моделі, наприклад `google/lyria-3-pro-preview` або `comfy/workflow` |
|
||||
| `lyrics` | string | Необов’язковий текст пісні, якщо провайдер підтримує явний вхід lyrics |
|
||||
| `instrumental` | boolean | Запит на інструментальний результат без вокалу, якщо провайдер це підтримує |
|
||||
| `image` | string | Шлях або URL одного опорного зображення |
|
||||
| `images` | string[] | Кілька опорних зображень (до 10) |
|
||||
| `durationSeconds` | number | Цільова тривалість у секундах, якщо провайдер підтримує підказки щодо тривалості |
|
||||
| `timeoutMs` | number | Необов’язковий тайм-аут запиту до провайдера в мілісекундах |
|
||||
| `format` | string | Підказка щодо формату виводу (`mp3` або `wav`), якщо провайдер це підтримує |
|
||||
| `filename` | string | Підказка щодо назви вихідного файлу |
|
||||
| Параметр | Тип | Опис |
|
||||
| ---------------- | -------- | ------------------------------------------------------------------------------------------------ |
|
||||
| `prompt` | string | Запит на генерацію музики (обов’язковий для `action: "generate"`) |
|
||||
| `action` | string | `"generate"` (типово), `"status"` для поточного завдання сеансу або `"list"` для перегляду провайдерів |
|
||||
| `model` | string | Перевизначення провайдера/моделі, наприклад `google/lyria-3-pro-preview` або `comfy/workflow` |
|
||||
| `lyrics` | string | Необов’язковий текст пісні, якщо провайдер підтримує явне введення тексту |
|
||||
| `instrumental` | boolean | Запит лише інструментального результату, якщо провайдер це підтримує |
|
||||
| `image` | string | Шлях або URL одного еталонного зображення |
|
||||
| `images` | string[] | Кілька еталонних зображень (до 10) |
|
||||
| `durationSeconds`| number | Цільова тривалість у секундах, якщо провайдер підтримує підказки щодо тривалості |
|
||||
| `timeoutMs` | number | Необов’язковий тайм-аут запиту до провайдера в мілісекундах |
|
||||
| `format` | string | Підказка щодо вихідного формату (`mp3` або `wav`), якщо провайдер це підтримує |
|
||||
| `filename` | string | Підказка щодо назви вихідного файлу |
|
||||
|
||||
Не всі провайдери підтримують усі параметри. OpenClaw усе одно перевіряє жорсткі обмеження,
|
||||
такі як кількість вхідних даних, перед надсиланням. Якщо провайдер підтримує тривалість, але
|
||||
використовує менший максимум, ніж запитане значення, OpenClaw автоматично обмежує його
|
||||
до найближчої підтримуваної тривалості. Справді непідтримувані необов’язкові підказки
|
||||
ігноруються з попередженням, якщо вибраний провайдер або модель не можуть їх застосувати.
|
||||
наприклад кількість вхідних даних, перед надсиланням. Коли провайдер підтримує тривалість, але
|
||||
використовує коротший максимум за запитане значення, OpenClaw автоматично обмежує її
|
||||
до найближчої підтримуваної тривалості. Справді непідтримувані необов’язкові підказки ігноруються
|
||||
з попередженням, коли вибраний провайдер або модель не можуть їх виконати.
|
||||
|
||||
Результати інструмента повідомляють про застосовані налаштування. Коли OpenClaw обмежує
|
||||
тривалість під час резервного переходу між провайдерами, повернене `durationSeconds` відображає
|
||||
надіслане значення, а `details.normalization.durationSeconds` показує зіставлення між
|
||||
запитаним і застосованим значеннями.
|
||||
Результати інструмента повідомляють про застосовані налаштування. Коли OpenClaw обмежує тривалість під час резервного переходу між провайдерами, повернене значення `durationSeconds` відображає надіслане значення, а `details.normalization.durationSeconds` показує відповідність між запитаним і застосованим значеннями.
|
||||
|
||||
## Асинхронна поведінка для шляху на основі спільного провайдера
|
||||
## Асинхронна поведінка для шляху на основі спільних провайдерів
|
||||
|
||||
- Запуски агента на основі сеансу: `music_generate` створює фонове завдання, негайно повертає відповідь started/task, а готовий трек публікує пізніше в наступному повідомленні агента.
|
||||
- Запобігання дублюванню: поки це фонове завдання має стан `queued` або `running`, наступні виклики `music_generate` у тому самому сеансі повертають стан завдання замість запуску нової генерації.
|
||||
- Перевірка стану: використовуйте `action: "status"`, щоб перевірити активне завдання генерації музики для поточного сеансу без запуску нового.
|
||||
- Відстеження завдань: використовуйте `openclaw tasks list` або `openclaw tasks show <taskId>`, щоб переглядати стани queued, running і terminal для генерації.
|
||||
- Активація після завершення: OpenClaw вставляє внутрішню подію завершення назад у той самий сеанс, щоб модель могла сама написати наступне повідомлення для користувача.
|
||||
- Підказка в prompt: наступні користувацькі/ручні ходи в тому самому сеансі отримують невелику підказку під час виконання, коли завдання генерації музики вже виконується, щоб модель не викликала `music_generate` знову навмання.
|
||||
- Резервний варіант без сеансу: прямі/локальні контексти без справжнього сеансу агента все одно виконуються вбудовано та повертають фінальний результат аудіо в тому самому ході.
|
||||
- Запуски агента на основі сеансу: `music_generate` створює фонове завдання, негайно повертає відповідь started/task і публікує готовий трек пізніше в наступному повідомленні агента.
|
||||
- Запобігання дублікатам: поки це фонове завдання все ще має стан `queued` або `running`, наступні виклики `music_generate` у тому самому сеансі повертають стан завдання замість запуску нової генерації.
|
||||
- Перевірка стану: використовуйте `action: "status"`, щоб переглянути активне завдання музики на основі сеансу без запуску нової генерації.
|
||||
- Відстеження завдань: використовуйте `openclaw tasks list` або `openclaw tasks show <taskId>`, щоб перевіряти стани queued, running і terminal для генерації.
|
||||
- Пробудження після завершення: OpenClaw впроваджує внутрішню подію завершення назад у той самий сеанс, щоб модель могла сама написати подальше повідомлення для користувача.
|
||||
- Підказка в запиті: наступні користувацькі/ручні ходи в тому самому сеансі отримують невелику підказку під час виконання, коли завдання музики вже виконується, щоб модель не викликала `music_generate` повторно бездумно.
|
||||
- Резервний варіант без сеансу: прямі/локальні контексти без реального сеансу агента все одно виконуються вбудовано й повертають фінальний результат аудіо в тому самому ході.
|
||||
|
||||
### Життєвий цикл завдання
|
||||
|
||||
Кожен запит `music_generate` проходить через чотири стани:
|
||||
|
||||
1. **queued** -- завдання створено, очікує, поки провайдер прийме його.
|
||||
1. **queued** -- завдання створено, очікує, поки провайдер його прийме.
|
||||
2. **running** -- провайдер виконує обробку (зазвичай від 30 секунд до 3 хвилин залежно від провайдера та тривалості).
|
||||
3. **succeeded** -- трек готовий; агент активується й публікує його в розмову.
|
||||
4. **failed** -- помилка провайдера або тайм-аут; агент активується з відомостями про помилку.
|
||||
3. **succeeded** -- трек готовий; агент пробуджується та публікує його в розмові.
|
||||
4. **failed** -- помилка провайдера або тайм-аут; агент пробуджується з відомостями про помилку.
|
||||
|
||||
Перевірка стану з CLI:
|
||||
|
||||
@ -173,7 +171,7 @@ openclaw tasks show <taskId>
|
||||
openclaw tasks cancel <taskId>
|
||||
```
|
||||
|
||||
Запобігання дублюванню: якщо для поточного сеансу завдання генерації музики вже має стан `queued` або `running`, `music_generate` повертає стан наявного завдання замість запуску нового. Використовуйте `action: "status"`, щоб явно перевірити стан без запуску нової генерації.
|
||||
Запобігання дублікатам: якщо для поточного сеансу завдання музики вже має стан `queued` або `running`, `music_generate` повертає стан наявного завдання замість запуску нового. Використовуйте `action: "status"`, щоб явно перевірити стан без запуску нової генерації.
|
||||
|
||||
## Конфігурація
|
||||
|
||||
@ -185,7 +183,7 @@ openclaw tasks cancel <taskId>
|
||||
defaults: {
|
||||
musicGenerationModel: {
|
||||
primary: "google/lyria-3-clip-preview",
|
||||
fallbacks: ["minimax/music-2.5+"],
|
||||
fallbacks: ["minimax/music-2.6"],
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -194,37 +192,37 @@ openclaw tasks cancel <taskId>
|
||||
|
||||
### Порядок вибору провайдера
|
||||
|
||||
Під час генерації музики OpenClaw намагається використовувати провайдерів у такому порядку:
|
||||
Під час генерації музики OpenClaw пробує провайдерів у такому порядку:
|
||||
|
||||
1. параметр `model` із виклику інструмента, якщо агент його вказує
|
||||
2. `musicGenerationModel.primary` із конфігурації
|
||||
1. параметр `model` з виклику інструмента, якщо агент його вказує
|
||||
2. `musicGenerationModel.primary` з конфігурації
|
||||
3. `musicGenerationModel.fallbacks` у заданому порядку
|
||||
4. Автовизначення лише з використанням типових значень провайдера на основі автентифікації:
|
||||
4. Автовизначення з використанням лише типових значень провайдера на основі автентифікації:
|
||||
- спочатку поточний типовий провайдер
|
||||
- решта зареєстрованих провайдерів генерації музики в порядку provider-id
|
||||
|
||||
Якщо провайдер зазнає невдачі, автоматично випробовується наступний кандидат. Якщо не спрацьовують усі, помилка
|
||||
містить відомості про кожну спробу.
|
||||
Якщо провайдер завершується помилкою, автоматично пробується наступний кандидат. Якщо всі завершуються помилкою,
|
||||
помилка містить відомості про кожну спробу.
|
||||
|
||||
Установіть `agents.defaults.mediaGenerationAutoProviderFallback: false`, якщо хочете, щоб
|
||||
Установіть `agents.defaults.mediaGenerationAutoProviderFallback: false`, якщо ви хочете, щоб
|
||||
генерація музики використовувала лише явні записи `model`, `primary` і `fallbacks`.
|
||||
|
||||
## Примітки щодо провайдерів
|
||||
|
||||
- Google використовує пакетну генерацію Lyria 3. Поточний вбудований потік підтримує
|
||||
prompt, необов’язковий текст lyrics і необов’язкові опорні зображення.
|
||||
- MiniMax використовує пакетний endpoint `music_generation`. Поточний вбудований потік
|
||||
підтримує prompt, необов’язкові lyrics, інструментальний режим, керування тривалістю та
|
||||
вивід у mp3.
|
||||
- Підтримка ComfyUI керується workflow і залежить від налаштованого графа та
|
||||
зіставлення вузлів для полів prompt/output.
|
||||
- Google використовує пакетну генерацію Lyria 3. Поточний убудований потік підтримує
|
||||
запит, необов’язковий текст пісні та необов’язкові еталонні зображення.
|
||||
- MiniMax використовує пакетну кінцеву точку `music_generation`. Поточний убудований потік
|
||||
підтримує запит, необов’язковий текст пісні, інструментальний режим, керування тривалістю та
|
||||
вивід у форматі mp3.
|
||||
- Підтримка ComfyUI базується на робочих процесах і залежить від налаштованого графа та
|
||||
зіставлення вузлів для полів запиту/виводу.
|
||||
|
||||
## Режими можливостей провайдера
|
||||
|
||||
Спільний контракт генерації музики тепер підтримує явні оголошення режимів:
|
||||
|
||||
- `generate` для генерації лише за prompt
|
||||
- `edit`, коли запит містить одне або більше опорних зображень
|
||||
- `generate` для генерації лише за запитом
|
||||
- `edit`, коли запит містить одне або більше еталонних зображень
|
||||
|
||||
Нові реалізації провайдерів мають надавати перевагу явним блокам режимів:
|
||||
|
||||
@ -244,20 +242,20 @@ capabilities: {
|
||||
}
|
||||
```
|
||||
|
||||
Застарілі плоскі поля, такі як `maxInputImages`, `supportsLyrics` і
|
||||
`supportsFormat`, недостатні для оголошення підтримки редагування. Провайдери мають
|
||||
Застарілих плоских полів, таких як `maxInputImages`, `supportsLyrics` і
|
||||
`supportsFormat`, недостатньо для оголошення підтримки редагування. Провайдери повинні
|
||||
явно оголошувати `generate` і `edit`, щоб live-тести, контрактні тести та
|
||||
спільний інструмент `music_generate` могли детерміновано перевіряти підтримку режимів.
|
||||
|
||||
## Як вибрати правильний шлях
|
||||
## Вибір правильного шляху
|
||||
|
||||
- Використовуйте шлях на основі спільного провайдера, якщо вам потрібні вибір моделі, резервне перемикання між провайдерами та вбудований асинхронний потік завдань/стану.
|
||||
- Використовуйте шлях через Plugin, наприклад ComfyUI, якщо вам потрібен власний граф workflow або провайдер, який не входить до спільної вбудованої можливості генерації музики.
|
||||
- Якщо ви налагоджуєте поведінку, специфічну для ComfyUI, див. [ComfyUI](/uk/providers/comfy). Якщо ви налагоджуєте поведінку спільного провайдера, почніть з [Google (Gemini)](/uk/providers/google) або [MiniMax](/uk/providers/minimax).
|
||||
- Використовуйте шлях на основі спільних провайдерів, якщо вам потрібні вибір моделі, перемикання між провайдерами у разі помилок і вбудований асинхронний потік завдань/стану.
|
||||
- Використовуйте шлях Plugin, наприклад ComfyUI, коли вам потрібен власний граф робочого процесу або провайдер, який не входить до спільної вбудованої можливості генерації музики.
|
||||
- Якщо ви налагоджуєте поведінку, специфічну для ComfyUI, див. [ComfyUI](/uk/providers/comfy). Якщо ви налагоджуєте поведінку спільного провайдера, почніть із [Google (Gemini)](/uk/providers/google) або [MiniMax](/uk/providers/minimax).
|
||||
|
||||
## Live-тести
|
||||
|
||||
Live-покриття за вибором для спільних вбудованих провайдерів:
|
||||
Опціональне live-покриття для спільних убудованих провайдерів:
|
||||
|
||||
```bash
|
||||
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts
|
||||
@ -269,23 +267,23 @@ OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.liv
|
||||
pnpm test:live:media music
|
||||
```
|
||||
|
||||
Цей live-файл завантажує відсутні змінні середовища провайдера з `~/.profile`, типово
|
||||
надає перевагу API-ключам live/env перед збереженими профілями автентифікації та запускає покриття
|
||||
і `generate`, і оголошеного `edit`, коли провайдер вмикає режим редагування.
|
||||
Цей live-файл завантажує відсутні змінні середовища провайдера з `~/.profile`, за замовчуванням надає перевагу
|
||||
API-ключам з live/env перед збереженими профілями автентифікації та запускає покриття
|
||||
`generate` і оголошеного `edit`, коли провайдер вмикає режим редагування.
|
||||
|
||||
Наразі це означає:
|
||||
Сьогодні це означає:
|
||||
|
||||
- `google`: `generate` плюс `edit`
|
||||
- `minimax`: лише `generate`
|
||||
- `comfy`: окреме live-покриття Comfy, не спільний sweep провайдерів
|
||||
- `comfy`: окреме live-покриття Comfy, а не спільний sweep провайдерів
|
||||
|
||||
Live-покриття за вибором для вбудованого музичного шляху ComfyUI:
|
||||
Опціональне live-покриття для вбудованого музичного шляху ComfyUI:
|
||||
|
||||
```bash
|
||||
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
|
||||
```
|
||||
|
||||
Файл live для Comfy також покриває workflow зображень і відео comfy, коли ці
|
||||
Файл live Comfy також покриває робочі процеси comfy для зображень і відео, коли ці
|
||||
розділи налаштовані.
|
||||
|
||||
## Пов’язане
|
||||
@ -295,5 +293,5 @@ OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.
|
||||
- [ComfyUI](/uk/providers/comfy)
|
||||
- [Google (Gemini)](/uk/providers/google)
|
||||
- [MiniMax](/uk/providers/minimax)
|
||||
- [Моделі](/uk/concepts/models) - конфігурація моделей і резервне перемикання
|
||||
- [Моделі](/uk/concepts/models) - конфігурація моделей і перемикання у разі помилок
|
||||
- [Огляд інструментів](/uk/tools)
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
---
|
||||
read_when:
|
||||
- Вам потрібен дружній до початківців покроковий посібник із TUI
|
||||
- Вам потрібен повний список можливостей, команд і клавіатурних скорочень TUI
|
||||
summary: 'Термінальний UI (TUI): підключення до Gateway або локальний запуск у вбудованому режимі'
|
||||
- Вам потрібен зрозумілий для початківців покроковий посібник з TUI
|
||||
- Вам потрібен повний список можливостей, команд і скорочень TUI
|
||||
summary: 'Термінальний інтерфейс (TUI): підключення до Gateway або локальний запуск у вбудованому режимі'
|
||||
title: TUI
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T23:09:28Z"
|
||||
generated_at: "2026-04-25T10:05:02Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 6168ab6cec8e0069f660ddcfca03275c407b613b6eb756aa6ef7e97f2312effe
|
||||
source_hash: 6eaa938fb3a50b7478341fe51cafb09e352f6d3cb402373222153ed93531a5f5
|
||||
source_path: web/tui.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -29,7 +29,7 @@ openclaw gateway
|
||||
openclaw tui
|
||||
```
|
||||
|
||||
3. Введіть повідомлення та натисніть Enter.
|
||||
3. Введіть повідомлення й натисніть Enter.
|
||||
|
||||
Віддалений Gateway:
|
||||
|
||||
@ -37,7 +37,7 @@ openclaw tui
|
||||
openclaw tui --url ws://<host>:<port> --token <gateway-token>
|
||||
```
|
||||
|
||||
Використовуйте `--password`, якщо ваш Gateway використовує автентифікацію паролем.
|
||||
Використовуйте `--password`, якщо ваш Gateway використовує автентифікацію за паролем.
|
||||
|
||||
### Локальний режим
|
||||
|
||||
@ -45,64 +45,65 @@ openclaw tui --url ws://<host>:<port> --token <gateway-token>
|
||||
|
||||
```bash
|
||||
openclaw chat
|
||||
# or
|
||||
# або
|
||||
openclaw tui --local
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `openclaw chat` і `openclaw terminal` — це alias для `openclaw tui --local`.
|
||||
- `openclaw chat` і `openclaw terminal` — це псевдоніми для `openclaw tui --local`.
|
||||
- `--local` не можна поєднувати з `--url`, `--token` або `--password`.
|
||||
- Локальний режим використовує вбудований runtime агента напряму. Більшість локальних інструментів працюють, але функції, доступні лише через Gateway, недоступні.
|
||||
- Локальний режим використовує безпосередньо вбудоване середовище виконання агента. Більшість локальних інструментів працюють, але функції, доступні лише через Gateway, недоступні.
|
||||
- `openclaw` і `openclaw crestodian` також використовують цю оболонку TUI, а Crestodian — як локальний бекенд чату для налаштування та відновлення.
|
||||
|
||||
## Що ви побачите
|
||||
## Що ви бачите
|
||||
|
||||
- Заголовок: URL підключення, поточний агент, поточна сесія.
|
||||
- Журнал чату: повідомлення користувача, відповіді асистента, системні повідомлення, картки інструментів.
|
||||
- Рядок стану: стан підключення/запуску (connecting, running, streaming, idle, error).
|
||||
- Журнал чату: повідомлення користувача, відповіді помічника, системні сповіщення, картки інструментів.
|
||||
- Рядок стану: стан підключення/виконання (підключення, виконання, потокове передавання, очікування, помилка).
|
||||
- Нижній колонтитул: стан підключення + агент + сесія + модель + think/fast/verbose/trace/reasoning + кількість токенів + deliver.
|
||||
- Ввід: текстовий редактор з автодоповненням.
|
||||
|
||||
## Ментальна модель: агенти + сесії
|
||||
|
||||
- Агенти — це унікальні slug-и (наприклад `main`, `research`). Gateway показує їх список.
|
||||
- Агенти — це унікальні слаги (наприклад, `main`, `research`). Gateway надає їхній список.
|
||||
- Сесії належать поточному агенту.
|
||||
- Ключі сесій зберігаються у вигляді `agent:<agentId>:<sessionKey>`.
|
||||
- Ключі сесій зберігаються як `agent:<agentId>:<sessionKey>`.
|
||||
- Якщо ви введете `/session main`, TUI розгорне це в `agent:<currentAgent>:main`.
|
||||
- Якщо ви введете `/session agent:other:main`, ви явно перемкнетеся на сесію цього агента.
|
||||
- Область сесії:
|
||||
- `per-sender` (типово): кожен агент має багато сесій.
|
||||
- `global`: TUI завжди використовує сесію `global` (список вибору може бути порожнім).
|
||||
- Поточний агент + сесія завжди видимі в нижньому колонтитулі.
|
||||
- Поточний агент + сесія завжди відображаються в нижньому колонтитулі.
|
||||
|
||||
## Надсилання + доставка
|
||||
|
||||
- Повідомлення надсилаються до Gateway; доставка провайдерам типово вимкнена.
|
||||
- Увімкніть доставку:
|
||||
- Повідомлення надсилаються до Gateway; доставку до провайдерів типово вимкнено.
|
||||
- Щоб увімкнути доставку:
|
||||
- `/deliver on`
|
||||
- або через панель Settings
|
||||
- або запустивши з `openclaw tui --deliver`
|
||||
- або панель Settings
|
||||
- або запуск через `openclaw tui --deliver`
|
||||
|
||||
## Вибірники + накладки
|
||||
## Засоби вибору + накладки
|
||||
|
||||
- Вибірник моделі: показує доступні моделі та встановлює перевизначення для сесії.
|
||||
- Вибірник агента: дає змогу вибрати іншого агента.
|
||||
- Вибірник сесії: показує лише сесії для поточного агента.
|
||||
- Settings: перемикає deliver, розгортання виводу інструментів і видимість thinking.
|
||||
- Засіб вибору моделі: список доступних моделей і встановлення перевизначення для сесії.
|
||||
- Засіб вибору агента: вибір іншого агента.
|
||||
- Засіб вибору сесії: показує лише сесії для поточного агента.
|
||||
- Settings: перемикання deliver, розгортання виводу інструментів і видимості thinking.
|
||||
|
||||
## Клавіатурні скорочення
|
||||
## Комбінації клавіш
|
||||
|
||||
- Enter: надіслати повідомлення
|
||||
- Esc: перервати активний запуск
|
||||
- Ctrl+C: очистити поле вводу (натисніть двічі, щоб вийти)
|
||||
- Ctrl+D: вийти
|
||||
- Ctrl+L: вибірник моделі
|
||||
- Ctrl+G: вибірник агента
|
||||
- Ctrl+P: вибірник сесії
|
||||
- Ctrl+L: засіб вибору моделі
|
||||
- Ctrl+G: засіб вибору агента
|
||||
- Ctrl+P: засіб вибору сесії
|
||||
- Ctrl+O: перемкнути розгортання виводу інструментів
|
||||
- Ctrl+T: перемкнути видимість thinking (перезавантажує історію)
|
||||
|
||||
## Slash-команди
|
||||
## Команди зі скісною рискою
|
||||
|
||||
Основні:
|
||||
|
||||
@ -120,7 +121,7 @@ openclaw tui --local
|
||||
- `/trace <on|off>`
|
||||
- `/reasoning <on|off|stream>`
|
||||
- `/usage <off|tokens|full>`
|
||||
- `/elevated <on|off|ask|full>` (alias: `/elev`)
|
||||
- `/elevated <on|off|ask|full>` (псевдонім: `/elev`)
|
||||
- `/activation <mention|always>`
|
||||
- `/deliver <on|off>`
|
||||
|
||||
@ -131,29 +132,25 @@ openclaw tui --local
|
||||
- `/settings`
|
||||
- `/exit`
|
||||
|
||||
Лише в локальному режимі:
|
||||
Лише локальний режим:
|
||||
|
||||
- `/auth [provider]` відкриває потік auth/login провайдера всередині TUI.
|
||||
- `/auth [provider]` відкриває потік автентифікації/входу провайдера всередині TUI.
|
||||
|
||||
Інші slash-команди Gateway (наприклад `/context`) пересилаються до Gateway і показуються як системний вивід. Див. [Slash commands](/uk/tools/slash-commands).
|
||||
Інші команди Gateway зі скісною рискою (наприклад, `/context`) пересилаються до Gateway і відображаються як системний вивід. Див. [Команди зі скісною рискою](/uk/tools/slash-commands).
|
||||
|
||||
## Локальні команди shell
|
||||
## Команди локальної оболонки
|
||||
|
||||
- Почніть рядок із `!`, щоб виконати локальну команду shell на хості TUI.
|
||||
- TUI один раз за сесію запитує дозвіл на локальне виконання; якщо відмовитися, `!` залишиться вимкненим для цієї сесії.
|
||||
- Команди виконуються в новій, неінтерактивній shell у робочому каталозі TUI (без постійного `cd`/env).
|
||||
- Локальні команди shell отримують `OPENCLAW_SHELL=tui-local` у своєму середовищі.
|
||||
- Одинокий `!` надсилається як звичайне повідомлення; початкові пробіли не запускають локальний exec.
|
||||
- Додайте на початку рядка `!`, щоб виконати локальну команду оболонки на хості TUI.
|
||||
- TUI один раз за сесію запитує дозвіл на локальне виконання; якщо відмовити, `!` залишиться вимкненим для цієї сесії.
|
||||
- Команди виконуються в новій, неінтерактивній оболонці в робочому каталозі TUI (без постійних `cd`/env).
|
||||
- Локальні команди оболонки отримують `OPENCLAW_SHELL=tui-local` у своєму середовищі.
|
||||
- Окремий `!` надсилається як звичайне повідомлення; початкові пробіли не запускають локальне виконання.
|
||||
|
||||
## Виправлення конфігурацій із локального TUI
|
||||
## Відновлення конфігурацій із локального TUI
|
||||
|
||||
Використовуйте локальний режим, коли поточна конфігурація вже проходить валідацію і ви хочете, щоб
|
||||
вбудований агент перевірив її на цій самій машині, порівняв із документацією
|
||||
і допоміг виправити розсинхронізацію без залежності від запущеного Gateway.
|
||||
Використовуйте локальний режим, коли поточна конфігурація вже проходить перевірку, і ви хочете, щоб вбудований агент перевірив її на тій самій машині, порівняв із документацією та допоміг виправити розбіжності без залежності від запущеного Gateway.
|
||||
|
||||
Якщо `openclaw config validate` уже завершується помилкою, спочатку запустіть `openclaw configure`
|
||||
або `openclaw doctor --fix`. `openclaw chat` не обходить захист від невалідної
|
||||
конфігурації.
|
||||
Якщо `openclaw config validate` уже завершується з помилкою, спочатку запустіть `openclaw configure` або `openclaw doctor --fix`. `openclaw chat` не обходить захист від невалідної конфігурації.
|
||||
|
||||
Типовий цикл:
|
||||
|
||||
@ -163,13 +160,13 @@ openclaw tui --local
|
||||
openclaw chat
|
||||
```
|
||||
|
||||
2. Запитайте агента, що саме ви хочете перевірити, наприклад:
|
||||
2. Скажіть агенту, що саме ви хочете перевірити, наприклад:
|
||||
|
||||
```text
|
||||
Compare my gateway auth config with the docs and suggest the smallest fix.
|
||||
Порівняй мою конфігурацію автентифікації gateway з документацією та запропонуй найменше виправлення.
|
||||
```
|
||||
|
||||
3. Використовуйте локальні команди shell для точних доказів і перевірки:
|
||||
3. Використовуйте локальні команди оболонки для точних доказів і перевірки:
|
||||
|
||||
```text
|
||||
!openclaw config file
|
||||
@ -178,73 +175,73 @@ Compare my gateway auth config with the docs and suggest the smallest fix.
|
||||
!openclaw doctor
|
||||
```
|
||||
|
||||
4. Застосуйте вузькі зміни через `openclaw config set` або `openclaw configure`, а потім знову запустіть `!openclaw config validate`.
|
||||
5. Якщо Doctor рекомендує автоматичне перенесення або виправлення, перегляньте його та виконайте `!openclaw doctor --fix`.
|
||||
4. Застосуйте вузькі зміни через `openclaw config set` або `openclaw configure`, а потім знову виконайте `!openclaw config validate`.
|
||||
5. Якщо Doctor рекомендує автоматичну міграцію або відновлення, перегляньте це й виконайте `!openclaw doctor --fix`.
|
||||
|
||||
Поради:
|
||||
|
||||
- Віддавайте перевагу `openclaw config set` або `openclaw configure`, а не ручному редагуванню `openclaw.json`.
|
||||
- `openclaw docs "<query>"` шукає в актуальному індексі документації з тієї самої машини.
|
||||
- `openclaw config validate --json` корисна, коли вам потрібні структуровані помилки schema та SecretRef/resolvability.
|
||||
- Надавайте перевагу `openclaw config set` або `openclaw configure` замість ручного редагування `openclaw.json`.
|
||||
- `openclaw docs "<query>"` шукає в живому індексі документації з тієї самої машини.
|
||||
- `openclaw config validate --json` корисна, коли вам потрібні структуровані помилки схеми та SecretRef/можливості розв’язання.
|
||||
|
||||
## Вивід інструментів
|
||||
|
||||
- Виклики інструментів показуються як картки з аргументами + результатами.
|
||||
- Ctrl+O перемикає між згорнутим і розгорнутим виглядом.
|
||||
- Поки інструменти працюють, часткові оновлення передаються потоком у ту саму картку.
|
||||
- Виклики інструментів відображаються як картки з аргументами + результатами.
|
||||
- Ctrl+O перемикає згорнутий/розгорнутий вигляд.
|
||||
- Поки інструменти працюють, часткові оновлення потоково надходять у ту саму картку.
|
||||
|
||||
## Кольори термінала
|
||||
|
||||
- TUI зберігає основний текст асистента в типовому кольорі переднього плану вашого термінала, щоб і темні, і світлі термінали залишалися читабельними.
|
||||
- Якщо ваш термінал використовує світлий фон і автовизначення помиляється, установіть `OPENCLAW_THEME=light` перед запуском `openclaw tui`.
|
||||
- Щоб примусово повернути початкову темну палітру, установіть `OPENCLAW_THEME=dark`.
|
||||
- TUI зберігає текст основного вмісту помічника у стандартному кольорі переднього плану вашого термінала, щоб текст залишався читабельним і в темних, і у світлих терміналах.
|
||||
- Якщо ваш термінал використовує світле тло, а автовизначення працює неправильно, задайте `OPENCLAW_THEME=light` перед запуском `openclaw tui`.
|
||||
- Щоб примусово використовувати початкову темну палітру, задайте `OPENCLAW_THEME=dark`.
|
||||
|
||||
## Історія + streaming
|
||||
## Історія + потокове передавання
|
||||
|
||||
- Після підключення TUI завантажує останню історію (типово 200 повідомлень).
|
||||
- Потокові відповіді оновлюються на місці до фіналізації.
|
||||
- TUI також слухає події інструментів агента для багатших карток інструментів.
|
||||
- Відповіді з потоковим передаванням оновлюються на місці до остаточного завершення.
|
||||
- TUI також слухає події інструментів агента для розширених карток інструментів.
|
||||
|
||||
## Деталі підключення
|
||||
## Відомості про підключення
|
||||
|
||||
- TUI реєструється в Gateway як `mode: "tui"`.
|
||||
- Перепідключення показуються як системне повідомлення; прогалини подій відображаються в журналі.
|
||||
- Під час повторного підключення показується системне повідомлення; пропуски подій відображаються в журналі.
|
||||
|
||||
## Параметри
|
||||
|
||||
- `--local`: запускатися проти локального вбудованого runtime агента
|
||||
- `--url <url>`: URL Gateway WebSocket (типово береться з конфігурації або `ws://127.0.0.1:<port>`)
|
||||
- `--token <token>`: токен Gateway (якщо потрібен)
|
||||
- `--password <password>`: пароль Gateway (якщо потрібен)
|
||||
- `--session <key>`: ключ сесії (типово: `main`, або `global`, коли область є global)
|
||||
- `--deliver`: доставляти відповіді асистента провайдеру (типово вимкнено)
|
||||
- `--local`: запуск із локальним вбудованим середовищем виконання агента
|
||||
- `--url <url>`: URL WebSocket Gateway (типово з конфігурації або `ws://127.0.0.1:<port>`)
|
||||
- `--token <token>`: токен Gateway (за потреби)
|
||||
- `--password <password>`: пароль Gateway (за потреби)
|
||||
- `--session <key>`: ключ сесії (типово: `main`, або `global`, якщо область — global)
|
||||
- `--deliver`: доставляти відповіді помічника провайдеру (типово вимкнено)
|
||||
- `--thinking <level>`: перевизначити рівень thinking для надсилань
|
||||
- `--message <text>`: надіслати початкове повідомлення після підключення
|
||||
- `--timeout-ms <ms>`: timeout агента в мс (типово береться з `agents.defaults.timeoutSeconds`)
|
||||
- `--timeout-ms <ms>`: тайм-аут агента в мс (типово `agents.defaults.timeoutSeconds`)
|
||||
- `--history-limit <n>`: кількість записів історії для завантаження (типово `200`)
|
||||
|
||||
Примітка: коли ви задаєте `--url`, TUI не використовує запасні облікові дані з конфігурації або середовища.
|
||||
Передайте `--token` або `--password` явно. Відсутність явних облікових даних є помилкою.
|
||||
Примітка: коли ви задаєте `--url`, TUI не повертається до облікових даних із конфігурації або середовища.
|
||||
Явно передайте `--token` або `--password`. Відсутність явно переданих облікових даних є помилкою.
|
||||
У локальному режимі не передавайте `--url`, `--token` або `--password`.
|
||||
|
||||
## Усунення проблем
|
||||
## Усунення несправностей
|
||||
|
||||
Немає виводу після надсилання повідомлення:
|
||||
|
||||
- Запустіть `/status` у TUI, щоб підтвердити, що Gateway підключений і перебуває в стані idle/busy.
|
||||
- Виконайте `/status` у TUI, щоб підтвердити, що Gateway підключений і перебуває в стані очікування/зайнятий.
|
||||
- Перевірте журнали Gateway: `openclaw logs --follow`.
|
||||
- Підтвердьте, що агент може запускатися: `openclaw status` і `openclaw models status`.
|
||||
- Підтвердьте, що агент може працювати: `openclaw status` і `openclaw models status`.
|
||||
- Якщо ви очікуєте повідомлення в каналі чату, увімкніть доставку (`/deliver on` або `--deliver`).
|
||||
|
||||
## Усунення проблем із підключенням
|
||||
|
||||
- `disconnected`: переконайтеся, що Gateway запущено, а ваші `--url/--token/--password` правильні.
|
||||
- У вибірнику немає агентів: перевірте `openclaw agents list` і вашу конфігурацію маршрутизації.
|
||||
- Порожній вибірник сесій: можливо, ви в області global або ще не маєте жодної сесії.
|
||||
- `disconnected`: переконайтеся, що Gateway запущений і ваші `--url/--token/--password` правильні.
|
||||
- У засобі вибору немає агентів: перевірте `openclaw agents list` і вашу конфігурацію маршрутизації.
|
||||
- Порожній засіб вибору сесії: можливо, ви перебуваєте в області global або ще не маєте жодних сесій.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Control UI](/uk/web/control-ui) — вебінтерфейс керування
|
||||
- [Config](/uk/cli/config) — перегляд, валідація та редагування `openclaw.json`
|
||||
- [Doctor](/uk/cli/doctor) — керовані перевірки виправлення та перенесення
|
||||
- [Config](/uk/cli/config) — перегляд, перевірка та редагування `openclaw.json`
|
||||
- [Doctor](/uk/cli/doctor) — покрокова перевірка відновлення та міграції
|
||||
- [CLI Reference](/uk/cli) — повний довідник команд CLI
|
||||
|
||||
Loading…
Reference in New Issue
Block a user