chore(i18n): refresh uk translations
This commit is contained in:
parent
07ba09e3d6
commit
ed00bdc2f2
@ -1,54 +1,54 @@
|
||||
---
|
||||
read_when:
|
||||
- Зміна середовища виконання агента, ініціалізації робочого простору або поведінки сеансу
|
||||
summary: Середовище виконання агента, контракт робочого простору та початкове завантаження сеансу
|
||||
- Зміна середовища виконання агента, ініціалізації робочої області або поведінки сеансу
|
||||
summary: Середовище виконання агента, контракт робочої області та ініціалізація сеансу
|
||||
title: Середовище виконання агента
|
||||
x-i18n:
|
||||
generated_at: "2026-04-30T00:29:36Z"
|
||||
generated_at: "2026-05-04T00:38:19Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: f4d65ee96cece296251d7d3a0512f12d2dfa900db0e5ffc0f37dcddae7ea55ad
|
||||
source_hash: 89bbbd05a9bf2054d3a1f24aeed005a05b61152a047b593addfb46817baae05a
|
||||
source_path: concepts/agent.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
OpenClaw запускає **єдине вбудоване середовище виконання агента** — один процес агента на
|
||||
Gateway, із власною робочою областю, файлами початкового завантаження та сховищем сесій. На цій сторінці
|
||||
описано контракт цього середовища виконання: що має містити робоча область, які файли
|
||||
інжектуються і як сесії виконують початкове завантаження відносно неї.
|
||||
Gateway, із власним робочим простором, bootstrap-файлами та сховищем сеансів. Ця сторінка
|
||||
описує контракт цього середовища виконання: що має містити робочий простір, які файли
|
||||
впроваджуються та як сеанси bootstrap-ініціалізуються відносно нього.
|
||||
|
||||
## Робоча область (обов’язково)
|
||||
## Робочий простір (обов’язково)
|
||||
|
||||
OpenClaw використовує єдиний каталог робочої області агента (`agents.defaults.workspace`) як **єдиний** робочий каталог агента (`cwd`) для інструментів і контексту.
|
||||
OpenClaw використовує єдиний каталог робочого простору агента (`agents.defaults.workspace`) як **єдиний** робочий каталог (`cwd`) агента для інструментів і контексту.
|
||||
|
||||
Рекомендовано: використовуйте `openclaw setup`, щоб створити `~/.openclaw/openclaw.json`, якщо його немає, та ініціалізувати файли робочої області.
|
||||
Рекомендовано: використайте `openclaw setup`, щоб створити `~/.openclaw/openclaw.json`, якщо його немає, і ініціалізувати файли робочого простору.
|
||||
|
||||
Повний макет робочої області + посібник із резервного копіювання: [Робоча область агента](/uk/concepts/agent-workspace)
|
||||
Повна структура робочого простору + посібник із резервного копіювання: [Робочий простір агента](/uk/concepts/agent-workspace)
|
||||
|
||||
Якщо `agents.defaults.sandbox` увімкнено, неосновні сесії можуть перевизначити це
|
||||
робочими областями на рівні сесії в `agents.defaults.sandbox.workspaceRoot` (див.
|
||||
[Конфігурація Gateway](/uk/gateway/configuration)).
|
||||
Якщо `agents.defaults.sandbox` увімкнено, неосновні сеанси можуть перевизначити це
|
||||
робочими просторами для окремих сеансів у `agents.defaults.sandbox.workspaceRoot` (див.
|
||||
[конфігурацію Gateway](/uk/gateway/configuration)).
|
||||
|
||||
## Файли початкового завантаження (інжектуються)
|
||||
## Bootstrap-файли (впроваджуються)
|
||||
|
||||
Усередині `agents.defaults.workspace` OpenClaw очікує ці редаговані користувачем файли:
|
||||
Усередині `agents.defaults.workspace` OpenClaw очікує такі файли, які може редагувати користувач:
|
||||
|
||||
- `AGENTS.md` — робочі інструкції + “пам’ять”
|
||||
- `AGENTS.md` — операційні інструкції + «пам’ять»
|
||||
- `SOUL.md` — персона, межі, тон
|
||||
- `TOOLS.md` — нотатки про інструменти, які підтримує користувач (наприклад, `imsg`, `sag`, домовленості)
|
||||
- `BOOTSTRAP.md` — одноразовий ритуал першого запуску (видаляється після завершення)
|
||||
- `IDENTITY.md` — ім’я/настрій/емодзі агента
|
||||
- `IDENTITY.md` — ім’я/вайб/емодзі агента
|
||||
- `USER.md` — профіль користувача + бажана форма звертання
|
||||
|
||||
На першому ході нової сесії OpenClaw інжектує вміст цих файлів безпосередньо в контекст агента.
|
||||
На першому ході нового сеансу OpenClaw впроваджує вміст цих файлів у Project Context системного prompt.
|
||||
|
||||
Порожні файли пропускаються. Великі файли обрізаються й усікаються з маркером, щоб підказки залишалися компактними (прочитайте файл, щоб побачити повний вміст).
|
||||
Порожні файли пропускаються. Великі файли обрізаються й скорочуються з маркером, щоб prompt залишався компактним (прочитайте файл, щоб отримати повний вміст).
|
||||
|
||||
Якщо файл відсутній, OpenClaw інжектує один рядок-маркер “відсутній файл” (а `openclaw setup` створить безпечний стандартний шаблон).
|
||||
Якщо файл відсутній, OpenClaw впроваджує один рядок-маркер «файл відсутній» (а `openclaw setup` створить безпечний шаблон за замовчуванням).
|
||||
|
||||
`BOOTSTRAP.md` створюється лише для **цілком нової робочої області** (коли немає інших файлів початкового завантаження). Якщо ви видалите його після завершення ритуалу, він не повинен створюватися повторно під час наступних перезапусків.
|
||||
`BOOTSTRAP.md` створюється лише для **цілком нового робочого простору** (коли немає інших bootstrap-файлів). Поки він очікує на виконання, OpenClaw тримає його в Project Context і додає bootstrap-настанови системного prompt для початкового ритуалу замість копіювання його в повідомлення користувача. Якщо ви видалите його після завершення ритуалу, він не має створюватися повторно під час наступних перезапусків.
|
||||
|
||||
Щоб повністю вимкнути створення файлів початкового завантаження (для попередньо наповнених робочих областей), задайте:
|
||||
Щоб повністю вимкнути створення bootstrap-файлів (для попередньо наповнених робочих просторів), задайте:
|
||||
|
||||
```json5
|
||||
{ agents: { defaults: { skipBootstrap: true } } }
|
||||
@ -56,83 +56,83 @@ OpenClaw використовує єдиний каталог робочої о
|
||||
|
||||
## Вбудовані інструменти
|
||||
|
||||
Основні інструменти (read/exec/edit/write і пов’язані системні інструменти) доступні завжди,
|
||||
з урахуванням політики інструментів. `apply_patch` є необов’язковим і керується
|
||||
`tools.exec.applyPatch`. `TOOLS.md` **не** контролює, які інструменти існують; це
|
||||
інструкції щодо того, як _ви_ хочете їх використовувати.
|
||||
Основні інструменти (read/exec/edit/write і пов’язані системні інструменти) завжди доступні
|
||||
з урахуванням політики інструментів. `apply_patch` є необов’язковим і обмежується
|
||||
`tools.exec.applyPatch`. `TOOLS.md` **не** керує тим, які інструменти існують; це
|
||||
настанови щодо того, як _ви_ хочете, щоб їх використовували.
|
||||
|
||||
## Skills
|
||||
|
||||
OpenClaw завантажує Skills із цих розташувань (від найвищого пріоритету):
|
||||
|
||||
- Робоча область: `<workspace>/skills`
|
||||
- Робочий простір: `<workspace>/skills`
|
||||
- Skills агента проєкту: `<workspace>/.agents/skills`
|
||||
- Особисті Skills агента: `~/.agents/skills`
|
||||
- Керовані/локальні: `~/.openclaw/skills`
|
||||
- Вбудовані (постачаються з інсталяцією)
|
||||
- Додаткові каталоги Skills: `skills.load.extraDirs`
|
||||
- Додаткові папки Skills: `skills.load.extraDirs`
|
||||
|
||||
Skills можуть керуватися конфігурацією/env (див. `skills` у [Конфігурація Gateway](/uk/gateway/configuration)).
|
||||
Skills можуть обмежуватися конфігурацією/env (див. `skills` у [конфігурації Gateway](/uk/gateway/configuration)).
|
||||
|
||||
## Межі середовища виконання
|
||||
|
||||
Вбудоване середовище виконання агента побудоване на ядрі агента Pi (моделі, інструменти та
|
||||
конвеєр підказок). Керування сесіями, виявлення, підключення інструментів і доставка
|
||||
в канали — це шари, якими володіє OpenClaw поверх цього ядра.
|
||||
prompt-конвеєр). Керування сеансами, виявлення, підключення інструментів і доставлення в канали
|
||||
є шарами OpenClaw поверх цього ядра.
|
||||
|
||||
## Сесії
|
||||
## Сеанси
|
||||
|
||||
Транскрипти сесій зберігаються як JSONL за адресою:
|
||||
Транскрипти сеансів зберігаються як JSONL тут:
|
||||
|
||||
- `~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl`
|
||||
|
||||
ID сесії стабільний і вибирається OpenClaw.
|
||||
Застарілі каталоги сесій з інших інструментів не читаються.
|
||||
Ідентифікатор сеансу стабільний і вибирається OpenClaw.
|
||||
Застарілі папки сеансів з інших інструментів не читаються.
|
||||
|
||||
## Скерування під час потокової передачі
|
||||
## Керування під час streaming
|
||||
|
||||
Коли режим черги — `steer`, вхідні повідомлення інжектуються в поточний запуск.
|
||||
Скерування в черзі доставляється **після того, як поточний хід асистента завершить
|
||||
виконання своїх викликів інструментів**, перед наступним викликом LLM. Pi разом обробляє всі очікувані
|
||||
повідомлення скерування для `steer`; застарілий `queue` обробляє одне повідомлення на
|
||||
межу моделі. Скерування більше не пропускає решту викликів інструментів із поточного
|
||||
Коли режим черги — `steer`, вхідні повідомлення впроваджуються в поточний запуск.
|
||||
Керування з черги доставляється **після того, як поточний хід асистента завершить
|
||||
виконання своїх викликів інструментів**, перед наступним викликом LLM. Pi зчитує всі очікувані
|
||||
повідомлення керування разом для `steer`; застарілий `queue` зчитує одне повідомлення на
|
||||
межу моделі. Керування більше не пропускає решту викликів інструментів із поточного
|
||||
повідомлення асистента.
|
||||
|
||||
Коли режим черги — `followup` або `collect`, вхідні повідомлення утримуються до
|
||||
завершення поточного ходу, а потім новий хід агента починається з поставленими в чергу корисними навантаженнями. Див.
|
||||
[Черга](/uk/concepts/queue) і [Черга скерування](/uk/concepts/queue-steering), щоб дізнатися про режими
|
||||
та поведінку на межах.
|
||||
Коли режим черги — `followup` або `collect`, вхідні повідомлення утримуються до завершення
|
||||
поточного ходу, потім починається новий хід агента з payload із черги. Див.
|
||||
[Черга](/uk/concepts/queue) і [Черга керування](/uk/concepts/queue-steering), щоб дізнатися про поведінку
|
||||
режимів і меж.
|
||||
|
||||
Блокова потокова передача надсилає завершені блоки асистента щойно вони завершуються; вона
|
||||
**вимкнена за замовчуванням** (`agents.defaults.blockStreamingDefault: "off"`).
|
||||
Block streaming надсилає завершені блоки асистента одразу після їх завершення; за замовчуванням він
|
||||
**вимкнений** (`agents.defaults.blockStreamingDefault: "off"`).
|
||||
Налаштуйте межу через `agents.defaults.blockStreamingBreak` (`text_end` проти `message_end`; за замовчуванням text_end).
|
||||
Керуйте м’яким розбиттям блоків на фрагменти за допомогою `agents.defaults.blockStreamingChunk` (за замовчуванням
|
||||
800–1200 символів; віддає перевагу розривам абзаців, потім новим рядкам; речення — останні).
|
||||
Об’єднуйте потокові фрагменти через `agents.defaults.blockStreamingCoalesce`, щоб зменшити
|
||||
спам окремими рядками (об’єднання перед надсиланням на основі простою). Канали, відмінні від Telegram, потребують
|
||||
800–1200 символів; надає перевагу розривам абзаців, потім новим рядкам; речення — останні).
|
||||
Об’єднуйте streamed-фрагменти за допомогою `agents.defaults.blockStreamingCoalesce`, щоб зменшити
|
||||
спам з окремих рядків (об’єднання на основі простою перед надсиланням). Канали не-Telegram потребують
|
||||
явного `*.blockStreaming: true`, щоб увімкнути блокові відповіді.
|
||||
Докладні підсумки інструментів виводяться під час запуску інструмента (без debounce); Control UI
|
||||
транслює вивід інструментів через події агента, коли вони доступні.
|
||||
Докладніше: [Потокова передача + розбиття на фрагменти](/uk/concepts/streaming).
|
||||
Докладні підсумки інструментів надсилаються на старті інструмента (без debounce); Control UI
|
||||
транслює вивід інструмента через події агента, коли доступно.
|
||||
Більше деталей: [Streaming + розбиття на фрагменти](/uk/concepts/streaming).
|
||||
|
||||
## Посилання на моделі
|
||||
|
||||
Посилання на моделі в конфігурації (наприклад, `agents.defaults.model` і `agents.defaults.models`) розбираються поділом за **першим** `/`.
|
||||
Посилання на моделі в конфігурації (наприклад, `agents.defaults.model` і `agents.defaults.models`) розбираються шляхом поділу за **першим** `/`.
|
||||
|
||||
- Використовуйте `provider/model` під час налаштування моделей.
|
||||
- Якщо сам ID моделі містить `/` (у стилі OpenRouter), додайте префікс провайдера (приклад: `openrouter/moonshotai/kimi-k2`).
|
||||
- Якщо ви опустите провайдера, OpenClaw спершу спробує псевдонім, потім унікальний
|
||||
збіг серед налаштованих провайдерів для саме цього ID моделі, і лише після цього повернеться
|
||||
до налаштованого стандартного провайдера. Якщо цей провайдер більше не надає
|
||||
налаштовану стандартну модель, OpenClaw повернеться до першого налаштованого
|
||||
провайдера/моделі замість показу застарілого стандартного значення видаленого провайдера.
|
||||
- Якщо сам ідентифікатор моделі містить `/` (у стилі OpenRouter), додайте префікс провайдера (приклад: `openrouter/moonshotai/kimi-k2`).
|
||||
- Якщо ви пропускаєте провайдера, OpenClaw спершу пробує псевдонім, потім унікальний
|
||||
збіг налаштованого провайдера для цього точного ідентифікатора моделі, і лише після цього повертається
|
||||
до налаштованого провайдера за замовчуванням. Якщо цей провайдер більше не надає
|
||||
налаштовану модель за замовчуванням, OpenClaw повертається до першої налаштованої
|
||||
пари провайдер/модель замість показу застарілого стандартного значення для видаленого провайдера.
|
||||
|
||||
## Конфігурація (мінімальна)
|
||||
|
||||
Як мінімум, задайте:
|
||||
Щонайменше задайте:
|
||||
|
||||
- `agents.defaults.workspace`
|
||||
- `channels.whatsapp.allowFrom` (настійно рекомендовано)
|
||||
- `channels.whatsapp.allowFrom` (наполегливо рекомендовано)
|
||||
|
||||
---
|
||||
|
||||
@ -140,6 +140,6 @@ _Далі: [Групові чати](/uk/channels/group-messages)_ 🦞
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Робоча область агента](/uk/concepts/agent-workspace)
|
||||
- [Маршрутизація між кількома агентами](/uk/concepts/multi-agent)
|
||||
- [Керування сесіями](/uk/concepts/session)
|
||||
- [Робочий простір агента](/uk/concepts/agent-workspace)
|
||||
- [Маршрутизація кількох агентів](/uk/concepts/multi-agent)
|
||||
- [Керування сеансами](/uk/concepts/session)
|
||||
|
||||
@ -1,155 +1,156 @@
|
||||
---
|
||||
read_when:
|
||||
- Редагування тексту системного промпта, списку інструментів або розділів часу/Heartbeat
|
||||
- Зміна поведінки початкового налаштування робочого простору або впровадження Skills
|
||||
summary: Що містить системний промпт OpenClaw і як він збирається
|
||||
- Зміна поведінки початкової ініціалізації робочої області або ін’єкції Skills
|
||||
summary: Що містить системний промпт OpenClaw і як він формується
|
||||
title: Системний промпт
|
||||
x-i18n:
|
||||
generated_at: "2026-05-03T17:03:10Z"
|
||||
generated_at: "2026-05-04T00:38:26Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 93533ac8090897a7b5fd82b80e542a4ad573670408314b3519c5e317d0408ade
|
||||
source_hash: 5e6067e760eccf58106f0a646c2656e902d5951580abd750f342d70b0568b81b
|
||||
source_path: concepts/system-prompt.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
OpenClaw створює власний системний prompt для кожного запуску агента. Prompt **належить OpenClaw** і не використовує типовий prompt pi-coding-agent.
|
||||
OpenClaw створює власний системний промпт для кожного запуску агента. Промпт **належить OpenClaw** і не використовує стандартний промпт pi-coding-agent.
|
||||
|
||||
Prompt збирається OpenClaw і вставляється в кожен запуск агента.
|
||||
Промпт збирається OpenClaw і впроваджується в кожен запуск агента.
|
||||
|
||||
Provider plugins можуть додавати cache-aware інструкції для prompt без заміни
|
||||
повного prompt, що належить OpenClaw. Provider runtime може:
|
||||
Provider plugins можуть додавати cache-aware вказівки для промпта, не замінюючи
|
||||
повний промпт, що належить OpenClaw. Runtime провайдера може:
|
||||
|
||||
- замінити невеликий набір іменованих основних секцій (`interaction_style`,
|
||||
- замінювати невеликий набір іменованих основних секцій (`interaction_style`,
|
||||
`tool_call_style`, `execution_bias`)
|
||||
- вставити **стабільний префікс** над межею кешу prompt
|
||||
- вставити **динамічний суфікс** під межею кешу prompt
|
||||
- впроваджувати **стабільний префікс** над межею кешу промпта
|
||||
- впроваджувати **динамічний суфікс** під межею кешу промпта
|
||||
|
||||
Використовуйте внески, що належать provider, для налаштувань, специфічних для сімейств моделей. Залишайте застарілу
|
||||
мутацію prompt `before_prompt_build` для сумісності або справді глобальних змін prompt,
|
||||
а не для звичайної поведінки provider.
|
||||
Використовуйте внески, що належать провайдеру, для налаштування під конкретні сімейства моделей. Залишайте застарілу
|
||||
мутацію промпта `before_prompt_build` для сумісності або справді глобальних змін промпта,
|
||||
а не для звичайної поведінки провайдера.
|
||||
|
||||
Оверлей сімейства OpenAI GPT-5 зберігає основне правило виконання малим і додає
|
||||
специфічні для моделі інструкції щодо фіксації persona, стислого виводу, дисципліни інструментів,
|
||||
паралельного пошуку, покриття результатів, перевірки, відсутнього контексту та
|
||||
Оверлей сімейства OpenAI GPT-5 зберігає основне правило виконання невеликим і додає
|
||||
специфічні для моделі вказівки щодо закріплення persona, стислого виводу, дисципліни інструментів,
|
||||
паралельного пошуку, покриття deliverable, перевірки, відсутнього контексту та
|
||||
гігієни terminal-tool.
|
||||
|
||||
## Структура
|
||||
|
||||
Prompt навмисно компактний і використовує фіксовані секції:
|
||||
Промпт навмисно компактний і використовує фіксовані секції:
|
||||
|
||||
- **Інструменти**: нагадування про structured-tool як джерело істини плюс runtime-інструкції з використання інструментів.
|
||||
- **Схильність до виконання**: компактні інструкції щодо доведення до кінця: діяти в межах поточного ходу на
|
||||
- **Інструменти**: нагадування про structured-tool джерело істини та вказівки щодо використання інструментів під час runtime.
|
||||
- **Ухил виконання**: компактні вказівки щодо доведення роботи до кінця: діяти в межах поточного ходу на
|
||||
actionable запити, продовжувати до завершення або блокування, відновлюватися після слабких результатів інструментів,
|
||||
перевіряти змінний стан наживо та верифікувати перед фіналізацією.
|
||||
- **Безпека**: коротке нагадування guardrail, щоб уникати power-seeking поведінки або обходу нагляду.
|
||||
- **Skills** (коли доступні): пояснює моделі, як завантажувати інструкції Skills на вимогу.
|
||||
- **Самооновлення OpenClaw**: як безпечно інспектувати config через
|
||||
`config.schema.lookup`, виправляти config через `config.patch`, замінювати повний
|
||||
config через `config.apply` і запускати `update.run` лише на явний запит користувача.
|
||||
Інструмент `gateway` лише для owner також відмовляється переписувати
|
||||
`tools.exec.ask` / `tools.exec.security`, включно із застарілими alias `tools.bash.*`,
|
||||
які нормалізуються до цих захищених exec-шляхів.
|
||||
перевіряти змінний стан наживо та перевіряти перед фіналізацією.
|
||||
- **Безпека**: коротке нагадування-обмеження уникати прагнення до влади або обходу нагляду.
|
||||
- **Skills** (коли доступні): пояснює моделі, як завантажувати інструкції навичок на вимогу.
|
||||
- **Самооновлення OpenClaw**: як безпечно інспектувати конфігурацію за допомогою
|
||||
`config.schema.lookup`, виправляти конфігурацію через `config.patch`, замінювати повну
|
||||
конфігурацію через `config.apply` і запускати `update.run` лише на явний запит користувача.
|
||||
Інструмент лише для власника `gateway` також відмовляється перезаписувати
|
||||
`tools.exec.ask` / `tools.exec.security`, включно із застарілими псевдонімами `tools.bash.*`,
|
||||
які нормалізуються до цих захищених exec шляхів.
|
||||
- **Робоча область**: робочий каталог (`agents.defaults.workspace`).
|
||||
- **Документація**: локальний шлях до документації OpenClaw (repo або npm package) і коли її читати.
|
||||
- **Файли робочої області (вставлені)**: вказує, що bootstrap-файли додано нижче.
|
||||
- **Пісочниця** (коли ввімкнено): вказує sandboxed runtime, шляхи sandbox і чи доступний elevated exec.
|
||||
- **Поточні дата й час**: локальний час користувача, часовий пояс і формат часу.
|
||||
- **Теги відповіді**: необов’язковий синтаксис тегів відповіді для підтримуваних provider.
|
||||
- **Heartbeats**: prompt Heartbeat і поведінка ack, коли Heartbeat увімкнено для типового агента.
|
||||
- **Runtime**: host, OS, Node, модель, корінь repo (коли виявлено), рівень мислення (один рядок).
|
||||
- **Міркування**: поточний рівень видимості + підказка перемикача /reasoning.
|
||||
- **Документація**: локальний шлях до документації OpenClaw (репозиторій або npm-пакет) і коли її читати.
|
||||
- **Файли робочої області (впроваджені)**: вказує, що bootstrap-файли включені нижче.
|
||||
- **Пісочниця** (коли увімкнено): вказує runtime у пісочниці, шляхи пісочниці та чи доступний elevated exec.
|
||||
- **Поточна дата й час**: локальний час користувача, часовий пояс і формат часу.
|
||||
- **Теги відповіді**: необов’язковий синтаксис тегів відповіді для підтримуваних провайдерів.
|
||||
- **Heartbeats**: промпт Heartbeat і поведінка ack, коли Heartbeats увімкнено для стандартного агента.
|
||||
- **Runtime**: хост, ОС, Node, модель, корінь репозиторію (коли виявлено), рівень thinking (один рядок).
|
||||
- **Міркування**: поточний рівень видимості + підказка про перемикач /reasoning.
|
||||
|
||||
OpenClaw тримає великий стабільний контент, включно з **Контекстом проєкту**, над
|
||||
внутрішньою межею кешу prompt. Нестабільні секції каналу/сесії, такі як
|
||||
інструкції embedding Control UI, **Повідомлення**, **Голос**, **Контекст групового чату**,
|
||||
OpenClaw тримає великий стабільний вміст, включно з **Контекстом проєкту**, над
|
||||
внутрішньою межею кешу промпта. Нестабільні секції каналу/сеансу, як-от
|
||||
вказівки для вбудовування Control UI, **Обмін повідомленнями**, **Голос**, **Контекст групового чату**,
|
||||
**Реакції**, **Heartbeats** і **Runtime**, додаються під цією межею,
|
||||
щоб локальні backend з prefix cache могли повторно використовувати стабільний префікс робочої області
|
||||
щоб локальні бекенди з prefix caches могли повторно використовувати стабільний префікс робочої області
|
||||
між ходами каналу. Описи інструментів так само мають уникати вбудовування поточних
|
||||
назв каналів, коли прийнята schema вже містить цю runtime-деталь.
|
||||
назв каналів, коли прийнята схема вже містить цю runtime деталь.
|
||||
|
||||
Секція Інструментів також містить runtime-інструкції для довготривалої роботи:
|
||||
Секція Інструментів також містить runtime-вказівки для довготривалої роботи:
|
||||
|
||||
- використовуйте cron для майбутніх follow-up (`check back later`, нагадування, recurring work)
|
||||
замість sleep loops через `exec`, трюків із затримкою `yieldMs` або повторного polling `process`
|
||||
- використовуйте cron для майбутнього follow-up (`check back later`, нагадування, повторювана робота)
|
||||
замість циклів `exec` sleep, трюків із затримкою `yieldMs` або повторного
|
||||
polling `process`
|
||||
- використовуйте `exec` / `process` лише для команд, які запускаються зараз і продовжують працювати
|
||||
у фоновому режимі
|
||||
- коли ввімкнено автоматичне пробудження після завершення, запустіть команду один раз і покладайтеся на
|
||||
push-based wake path, коли вона виводить output або завершується з помилкою
|
||||
- використовуйте `process` для logs, status, input або intervention, коли потрібно
|
||||
- коли автоматичне пробудження після завершення увімкнено, запустіть команду один раз і покладайтеся на
|
||||
push-based wake path, коли вона виводить дані або завершується помилкою
|
||||
- використовуйте `process` для журналів, статусу, вводу або втручання, коли потрібно
|
||||
інспектувати запущену команду
|
||||
- якщо завдання більше, надавайте перевагу `sessions_spawn`; завершення sub-agent є
|
||||
push-based і автоматично оголошується requester
|
||||
- якщо завдання більше, віддавайте перевагу `sessions_spawn`; завершення sub-agent є
|
||||
push-based і автоматично повідомляє requester
|
||||
- не опитуйте `subagents list` / `sessions_list` у циклі лише для очікування
|
||||
завершення
|
||||
|
||||
Коли ввімкнено експериментальний інструмент `update_plan`, Інструменти також вказують
|
||||
Коли експериментальний інструмент `update_plan` увімкнено, Інструменти також вказують
|
||||
моделі використовувати його лише для нетривіальної багатокрокової роботи, тримати рівно один
|
||||
крок `in_progress` і не повторювати весь план після кожного оновлення.
|
||||
|
||||
Safety guardrails у системному prompt мають рекомендаційний характер. Вони спрямовують поведінку моделі, але не забезпечують примусового виконання policy. Для жорсткого enforcement використовуйте tool policy, exec approvals, sandboxing і channel allowlists; operators можуть вимикати їх за задумом.
|
||||
Запобіжні обмеження безпеки в системному промпті є рекомендаційними. Вони спрямовують поведінку моделі, але не забезпечують примусове застосування політики. Для жорсткого примусового застосування використовуйте політику інструментів, exec approvals, пісочницю та allowlists каналів; оператори можуть вимикати їх за задумом.
|
||||
|
||||
У каналах із native approval cards/buttons runtime prompt тепер каже
|
||||
агентові спочатку покладатися на цей native approval UI. Він має включати ручну
|
||||
У каналах із нативними approval картками/кнопками runtime-промпт тепер вказує
|
||||
агенту спершу покладатися на цей нативний approval UI. Він має включати ручну
|
||||
команду `/approve` лише тоді, коли результат інструмента каже, що chat approvals недоступні або
|
||||
manual approval є єдиним шляхом.
|
||||
ручне approval є єдиним шляхом.
|
||||
|
||||
## Режими prompt
|
||||
## Режими промпта
|
||||
|
||||
OpenClaw може рендерити менші системні prompt для sub-agents. Runtime встановлює
|
||||
`promptMode` для кожного запуску (це не user-facing config):
|
||||
OpenClaw може рендерити менші системні промпти для sub-agents. Runtime встановлює
|
||||
`promptMode` для кожного запуску (це не user-facing конфігурація):
|
||||
|
||||
- `full` (типово): включає всі секції вище.
|
||||
- `full` (стандартно): включає всі секції вище.
|
||||
- `minimal`: використовується для sub-agents; пропускає **Skills**, **Memory Recall**, **Самооновлення OpenClaw**,
|
||||
**Model Aliases**, **User Identity**, **Reply Tags**,
|
||||
**Messaging**, **Silent Replies** і **Heartbeats**. Інструменти, **Безпека**,
|
||||
Робоча область, Sandbox, Поточні дата й час (коли відомо), Runtime і вставлений
|
||||
context залишаються доступними.
|
||||
- `none`: повертає лише базовий рядок identity.
|
||||
**Псевдоніми моделей**, **Ідентичність користувача**, **Теги відповіді**,
|
||||
**Обмін повідомленнями**, **Тихі відповіді** та **Heartbeats**. Інструменти, **Безпека**,
|
||||
Робоча область, Пісочниця, Поточна дата й час (коли відомо), Runtime та впроваджений
|
||||
контекст залишаються доступними.
|
||||
- `none`: повертає лише базовий рядок ідентичності.
|
||||
|
||||
Коли `promptMode=minimal`, додаткові вставлені prompt позначаються як **Subagent
|
||||
Context** замість **Group Chat Context**.
|
||||
Коли `promptMode=minimal`, додатково впроваджені промпти позначаються як **Контекст subagent**
|
||||
замість **Контекст групового чату**.
|
||||
|
||||
Для запусків channel auto-reply OpenClaw може пропускати загальну секцію **Silent Replies**,
|
||||
коли direct/group chat context уже містить вирішену
|
||||
специфічну для розмови поведінку `NO_REPLY`. Це уникає повторення механіки token
|
||||
і в глобальному системному prompt, і в channel context.
|
||||
Для запусків channel auto-reply OpenClaw може пропускати загальну секцію **Тихі відповіді**,
|
||||
коли контекст direct/group chat уже містить розв’язану
|
||||
специфічну для розмови поведінку `NO_REPLY`. Це уникає повторення token mechanics
|
||||
і в глобальному системному промпті, і в контексті каналу.
|
||||
|
||||
## Знімки prompt
|
||||
## Знімки промптів
|
||||
|
||||
OpenClaw зберігає committed prompt snapshots для Codex runtime happy path у
|
||||
OpenClaw зберігає закомічені знімки промптів для happy path runtime Codex у
|
||||
`test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/`. Вони рендерять
|
||||
вибрані app-server thread/turn params плюс реконструйований model-bound prompt
|
||||
layer stack для Telegram direct, Discord group і heartbeat turns. Цей stack
|
||||
містить pinned Codex `gpt-5.5` model prompt fixture, згенерований з форми model catalog/cache Codex,
|
||||
developer text дозволів Codex happy-path,
|
||||
інструкції developer OpenClaw, turn-scoped інструкції collaboration-mode,
|
||||
коли OpenClaw їх надає, user turn input і посилання на dynamic tool
|
||||
вибрані параметри thread/turn app-server плюс реконструйований стек шарів промпта,
|
||||
прив’язаного до моделі, для прямих ходів Telegram, груп Discord і Heartbeat. Цей стек
|
||||
містить pinned Codex `gpt-5.5` fixture промпта моделі, згенерований із форми
|
||||
каталогу/кешу моделей Codex, developer text дозволів happy path Codex,
|
||||
інструкції developer OpenClaw, інструкції collaboration-mode у межах ходу,
|
||||
коли OpenClaw їх надає, ввід ходу користувача та посилання на динамічні tool
|
||||
specs.
|
||||
|
||||
Оновіть pinned Codex model prompt fixture через
|
||||
`pnpm prompt:snapshots:sync-codex-model`. Типово script шукає
|
||||
runtime cache Codex у `$CODEX_HOME/models_cache.json`, потім
|
||||
`~/.codex/models_cache.json`, і лише після цього fallback до домовленості maintainer Codex
|
||||
checkout у `~/code/codex/codex-rs/models-manager/models.json`. Якщо
|
||||
жодне з цих джерел не існує, команда завершується без зміни committed
|
||||
fixture. Передайте `--catalog <path>`, щоб оновити зі specific `models_cache.json`
|
||||
або `models.json` file.
|
||||
Оновіть pinned Codex fixture промпта моделі за допомогою
|
||||
`pnpm prompt:snapshots:sync-codex-model`. Стандартно скрипт шукає
|
||||
runtime-кеш Codex у `$CODEX_HOME/models_cache.json`, потім у
|
||||
`~/.codex/models_cache.json`, і лише після цього fallback до maintainer Codex
|
||||
checkout convention за `~/code/codex/codex-rs/models-manager/models.json`. Якщо
|
||||
жодне з цих джерел не існує, команда завершується без зміни закоміченого
|
||||
fixture. Передайте `--catalog <path>`, щоб оновити з конкретного файлу `models_cache.json`
|
||||
або `models.json`.
|
||||
|
||||
Ці snapshots усе ще не є byte-for-byte raw OpenAI request capture. Codex
|
||||
може додавати runtime-owned workspace context, такий як `AGENTS.md`, environment
|
||||
context, memories, app/plugin instructions і вбудовані Default
|
||||
collaboration-mode instructions усередині Codex runtime після того, як OpenClaw надсилає
|
||||
thread і turn params.
|
||||
Ці знімки все ще не є byte-for-byte сирим захопленням запиту OpenAI. Codex
|
||||
може додавати runtime-owned контекст робочої області, як-от `AGENTS.md`, environment
|
||||
context, memories, інструкції app/plugin і вбудовані стандартні
|
||||
інструкції collaboration-mode всередині runtime Codex після того, як OpenClaw надішле
|
||||
параметри thread і turn.
|
||||
|
||||
Перегенеруйте їх за допомогою `pnpm prompt:snapshots:gen` і перевірте drift через
|
||||
`pnpm prompt:snapshots:check`. CI запускає drift check у додатковому
|
||||
boundary shard, щоб зміни prompt і snapshot updates залишалися прив’язаними до того самого
|
||||
boundary shard, щоб зміни промпта й оновлення знімків залишалися прив’язаними до того самого
|
||||
PR.
|
||||
|
||||
## Bootstrap-вставка робочої області
|
||||
## Впровадження bootstrap у робочу область
|
||||
|
||||
Bootstrap-файли обрізаються та додаються під **Контекстом проєкту**, щоб модель бачила identity і profile context без потреби явних reads:
|
||||
Bootstrap-файли обрізаються й додаються під **Контекст проєкту**, щоб модель бачила identity і profile context без потреби в явному читанні:
|
||||
|
||||
- `AGENTS.md`
|
||||
- `SOUL.md`
|
||||
@ -157,78 +158,79 @@ Bootstrap-файли обрізаються та додаються під **К
|
||||
- `IDENTITY.md`
|
||||
- `USER.md`
|
||||
- `HEARTBEAT.md`
|
||||
- `BOOTSTRAP.md` (лише для абсолютно нових робочих областей)
|
||||
- `BOOTSTRAP.md` (лише в зовсім нових робочих областях)
|
||||
- `MEMORY.md`, коли наявний
|
||||
|
||||
Усі ці файли **вставляються у context window** на кожному ході, якщо
|
||||
не застосовується file-specific gate. `HEARTBEAT.md` пропускається у звичайних запусках, коли
|
||||
heartbeats вимкнено для типового агента або
|
||||
`agents.defaults.heartbeat.includeSystemPromptSection` має значення false. Тримайте вставлені
|
||||
файли стислими — особливо `MEMORY.md`, який може з часом зростати й призводити до
|
||||
неочікувано високого використання context і частішої Compaction.
|
||||
Усі ці файли **впроваджуються у context window** на кожному ході, якщо
|
||||
не застосовується gate для конкретного файлу. `HEARTBEAT.md` пропускається у звичайних запусках, коли
|
||||
Heartbeats вимкнено для стандартного агента або
|
||||
`agents.defaults.heartbeat.includeSystemPromptSection` має значення false. Тримайте впроваджені
|
||||
файли стислими — особливо `MEMORY.md`, який може зростати з часом і призводити до
|
||||
неочікувано високого використання контексту та частішої Compaction.
|
||||
|
||||
Коли сесія працює на native Codex harness, Codex завантажує `AGENTS.md`
|
||||
через власне project-doc discovery. OpenClaw все одно визначає решту
|
||||
bootstrap-файлів і передає їх як Codex config instructions, тому `SOUL.md`,
|
||||
Коли сеанс працює на нативному harness Codex, Codex завантажує `AGENTS.md`
|
||||
через власне project-doc discovery. OpenClaw усе одно розв’язує решту
|
||||
bootstrap-файлів і передає їх як config instructions Codex, тож `SOUL.md`,
|
||||
`TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md` і
|
||||
`MEMORY.md` зберігають ту саму роль workspace-context без дублювання
|
||||
`MEMORY.md` зберігають ту саму роль контексту робочої області без дублювання
|
||||
`AGENTS.md`.
|
||||
|
||||
<Note>
|
||||
Щоденні файли `memory/*.md` **не** є частиною звичайного bootstrap Project Context. У звичайних ходах до них звертаються за потреби через інструменти `memory_search` і `memory_get`, тому вони не враховуються в context window, якщо модель явно їх не читає. Bare `/new` і `/reset` turns є винятком: runtime може додати recent daily memory як одноразовий startup-context block для цього першого turn.
|
||||
Щоденні файли `memory/*.md` **не** є частиною звичайного bootstrap Project Context. У звичайних ходах до них звертаються на вимогу через інструменти `memory_search` і `memory_get`, тому вони не враховуються в context window, якщо модель явно їх не читає. Виняток — порожні ходи `/new` і `/reset`: runtime може додати recent daily memory на початок як одноразовий startup-context блок для цього першого ходу.
|
||||
</Note>
|
||||
|
||||
Великі файли обрізаються з marker. Максимальний розмір на файл контролюється
|
||||
`agents.defaults.bootstrapMaxChars` (типово: 12000). Загальний вставлений bootstrap
|
||||
content по всіх файлах обмежується `agents.defaults.bootstrapTotalMaxChars`
|
||||
(типово: 60000). Відсутні файли вставляють короткий missing-file marker. Коли відбувається truncation,
|
||||
OpenClaw може вставити warning block у Project Context; керуйте цим через
|
||||
Великі файли обрізаються з маркером. Максимальний розмір на файл контролюється
|
||||
`agents.defaults.bootstrapMaxChars` (стандартно: 12000). Загальний впроваджений bootstrap
|
||||
вміст у всіх файлах обмежений `agents.defaults.bootstrapTotalMaxChars`
|
||||
(стандартно: 60000). Відсутні файли впроваджують короткий missing-file marker. Коли відбувається обрізання,
|
||||
OpenClaw може впровадити стислий warning notice у системний промпт; керуйте цим через
|
||||
`agents.defaults.bootstrapPromptTruncationWarning` (`off`, `once`, `always`;
|
||||
типово: `once`).
|
||||
стандартно: `once`). Детальні raw/injected лічильники залишаються в діагностиці, як-от
|
||||
`/context`, `/status`, doctor і logs.
|
||||
|
||||
Сесії sub-agent вставляють лише `AGENTS.md` і `TOOLS.md` (інші bootstrap-файли
|
||||
відфільтровуються, щоб тримати context sub-agent малим).
|
||||
Сеанси sub-agent впроваджують лише `AGENTS.md` і `TOOLS.md` (інші bootstrap-файли
|
||||
фільтруються, щоб зберегти контекст sub-agent малим).
|
||||
|
||||
Internal hooks можуть перехоплювати цей крок через `agent:bootstrap`, щоб змінити або замінити
|
||||
вставлені bootstrap-файли (наприклад, замінити `SOUL.md` на alternate persona).
|
||||
Внутрішні hooks можуть перехоплювати цей крок через `agent:bootstrap`, щоб мутувати або замінювати
|
||||
впроваджені bootstrap-файли (наприклад, замінювати `SOUL.md` на альтернативну persona).
|
||||
|
||||
Якщо ви хочете, щоб агент звучав менш generic, почніть із
|
||||
Якщо хочете зробити звучання агента менш загальним, почніть із
|
||||
[Посібника з особистості SOUL.md](/uk/concepts/soul).
|
||||
|
||||
Щоб перевірити, скільки додає кожен вставлений файл (raw vs injected, truncation, плюс tool schema overhead), використовуйте `/context list` або `/context detail`. Див. [Контекст](/uk/concepts/context).
|
||||
Щоб перевірити, скільки додає кожен впроваджений файл (raw vs injected, truncation, плюс overhead схеми інструментів), використовуйте `/context list` або `/context detail`. Див. [Контекст](/uk/concepts/context).
|
||||
|
||||
## Обробка часу
|
||||
|
||||
Системний prompt включає спеціальну секцію **Поточні дата й час**, коли
|
||||
часовий пояс користувача відомий. Щоб зберегти prompt cache-stable, тепер вона містить лише
|
||||
**часовий пояс** (без динамічного clock або формату часу).
|
||||
Системний промпт містить окрему секцію **Поточна дата й час**, коли
|
||||
часовий пояс користувача відомий. Щоб зберегти промпт cache-stable, тепер вона містить лише
|
||||
**часовий пояс** (без динамічного годинника або формату часу).
|
||||
|
||||
Використовуйте `session_status`, коли агенту потрібен поточний час; status card
|
||||
містить timestamp line. Той самий інструмент може необов’язково встановити per-session model
|
||||
містить рядок timestamp. Той самий інструмент може за потреби встановити per-session model
|
||||
override (`model=default` очищає його).
|
||||
|
||||
Налаштовується через:
|
||||
Налаштуйте через:
|
||||
|
||||
- `agents.defaults.userTimezone`
|
||||
- `agents.defaults.timeFormat` (`auto` | `12` | `24`)
|
||||
|
||||
Повний опис поведінки див. у [Дата й час](/uk/date-time).
|
||||
Див. [Дата й час](/uk/date-time) для повних деталей поведінки.
|
||||
|
||||
## Skills
|
||||
|
||||
Коли існують eligible Skills, OpenClaw вставляє компактний **список доступних Skills**
|
||||
(`formatSkillsForPrompt`), який містить **шлях до файлу** для кожного Skill. Prompt
|
||||
інструктує модель використовувати `read`, щоб завантажити SKILL.md за вказаним
|
||||
розташуванням (workspace, managed або bundled). Якщо немає eligible Skills,
|
||||
секція Skills пропускається.
|
||||
Коли існують придатні Skills, OpenClaw впроваджує компактний **список доступних skills**
|
||||
(`formatSkillsForPrompt`), який містить **шлях до файлу** для кожного skill. Промпт
|
||||
інструктує модель використовувати `read`, щоб завантажити SKILL.md у вказаному
|
||||
розташуванні (workspace, managed або bundled). Якщо жоден skill не придатний, секція
|
||||
Skills пропускається.
|
||||
|
||||
Eligibility включає gates metadata Skill, перевірки runtime environment/config
|
||||
і effective agent skill allowlist, коли налаштовано `agents.defaults.skills` або
|
||||
Придатність включає gates метаданих skill, перевірки runtime environment/config
|
||||
і ефективний allowlist skills агента, коли налаштовано `agents.defaults.skills` або
|
||||
`agents.list[].skills`.
|
||||
|
||||
Plugin-bundled Skills є eligible лише коли ввімкнено Plugin-власник.
|
||||
Це дає змогу tool plugins надавати глибші operating guides без вбудовування всіх цих
|
||||
інструкцій безпосередньо в кожен опис інструмента.
|
||||
Skills, bundled із Plugin, придатні лише тоді, коли їхній Plugin-власник увімкнено.
|
||||
Це дозволяє tool plugins надавати глибші операційні посібники без вбудовування всіх
|
||||
цих вказівок безпосередньо в кожен опис інструмента.
|
||||
|
||||
```
|
||||
<available_skills>
|
||||
@ -240,28 +242,41 @@ Plugin-bundled Skills є eligible лише коли ввімкнено Plugin-в
|
||||
</available_skills>
|
||||
```
|
||||
|
||||
Це зберігає базовий prompt малим, водночас дозволяючи targeted використання Skill.
|
||||
Це зберігає базовий промпт малим і водночас дає змогу цільово використовувати skills.
|
||||
|
||||
Бюджет списку Skills належить підсистемі Skills:
|
||||
Бюджет списку skills належить підсистемі skills:
|
||||
|
||||
- Глобальне типове значення: `skills.limits.maxSkillsPromptChars`
|
||||
- Перевизначення для агента: `agents.list[].skillsLimits.maxSkillsPromptChars`
|
||||
- Глобальне значення за замовчуванням: `skills.limits.maxSkillsPromptChars`
|
||||
- Перевизначення для окремого агента: `agents.list[].skillsLimits.maxSkillsPromptChars`
|
||||
|
||||
Загальні обмежені фрагменти часу виконання використовують іншу поверхню:
|
||||
Загальні обмежені фрагменти середовища виконання використовують іншу поверхню:
|
||||
|
||||
- `agents.defaults.contextLimits.*`
|
||||
- `agents.list[].contextLimits.*`
|
||||
|
||||
Цей поділ відокремлює визначення розміру Skills від визначення розміру читання/впровадження під час виконання, як-от `memory_get`, результати live-інструментів і оновлення AGENTS.md після Compaction.
|
||||
Цей поділ відокремлює визначення розміру Skills від визначення розміру читання/інʼєкції середовища виконання, як-от `memory_get`, результатів живих інструментів і оновлень AGENTS.md після Compaction.
|
||||
|
||||
## Документація
|
||||
|
||||
Системний prompt містить розділ **Документація**. Коли локальна документація доступна, він указує на локальний каталог документації OpenClaw (`docs/` у Git checkout або документацію з комплектного npm-пакета). Якщо локальна документація недоступна, він повертається до [https://docs.openclaw.ai](https://docs.openclaw.ai).
|
||||
Системний промпт містить розділ **Документація**. Коли локальна документація доступна, він
|
||||
указує на локальний каталог документації OpenClaw (`docs/` у Git checkout або документацію
|
||||
пакета npm у комплекті). Якщо локальна документація недоступна, він повертається до
|
||||
[https://docs.openclaw.ai](https://docs.openclaw.ai).
|
||||
|
||||
Той самий розділ також містить розташування вихідного коду OpenClaw. Git checkouts надають локальний корінь вихідного коду, щоб агент міг безпосередньо інспектувати код. Інсталяції пакетів містять URL вихідного коду на GitHub і вказують агенту переглядати вихідний код там, коли документація неповна або застаріла. Prompt також зазначає публічне дзеркало документації, спільноту Discord і ClawHub ([https://clawhub.ai](https://clawhub.ai)) для пошуку Skills. Він вказує моделі спершу звертатися до документації щодо поведінки, команд, конфігурації або архітектури OpenClaw і запускати `openclaw status` самостійно, коли це можливо (запитуючи користувача лише тоді, коли не має доступу). Зокрема для конфігурації він спрямовує агентів до дії інструмента `gateway` `config.schema.lookup` для точної документації та обмежень на рівні полів, а потім до `docs/gateway/configuration.md` і `docs/gateway/configuration-reference.md` для ширших настанов.
|
||||
Цей самий розділ також містить розташування вихідного коду OpenClaw. Git checkout відкривають локальний
|
||||
корінь вихідного коду, щоб агент міг безпосередньо перевіряти код. Встановлення пакета містять URL
|
||||
вихідного коду на GitHub і повідомляють агенту переглядати вихідний код там, коли документація неповна або
|
||||
застаріла. Промпт також згадує публічне дзеркало документації, спільноту Discord і ClawHub
|
||||
([https://clawhub.ai](https://clawhub.ai)) для пошуку Skills. Він повідомляє моделі, що
|
||||
для поведінки, команд, конфігурації або архітектури OpenClaw спершу слід звертатися до документації, а також
|
||||
за можливості самостійно запускати `openclaw status` (звертаючись до користувача лише тоді, коли їй бракує доступу).
|
||||
Спеціально для конфігурації він спрямовує агентів до дії інструмента `gateway`
|
||||
`config.schema.lookup`, щоб отримати точну документацію та обмеження на рівні полів, а потім до
|
||||
`docs/gateway/configuration.md` і `docs/gateway/configuration-reference.md`
|
||||
для ширших настанов.
|
||||
|
||||
## Пов’язане
|
||||
## Повʼязане
|
||||
|
||||
- [Час виконання агента](/uk/concepts/agent)
|
||||
- [Середовище виконання агента](/uk/concepts/agent)
|
||||
- [Робочий простір агента](/uk/concepts/agent-workspace)
|
||||
- [Рушій контексту](/uk/concepts/context-engine)
|
||||
|
||||
@ -1,28 +1,28 @@
|
||||
---
|
||||
read_when:
|
||||
- Налаштування типових параметрів агента (моделі, мислення, робочий простір, Heartbeat, медіа, Skills)
|
||||
- Налаштування маршрутизації між кількома агентами та прив’язок
|
||||
- Налаштування поведінки сеансу, доставки повідомлень і режиму розмови
|
||||
summary: Типові параметри агента, багатоагентна маршрутизація, сеанс, повідомлення та конфігурація спілкування
|
||||
title: Конфігурація — агенти
|
||||
- Налаштування стандартних параметрів агента (моделі, міркування, робочий простір, Heartbeat, медіа, Skills)
|
||||
- Налаштування багатоагентної маршрутизації та прив’язок
|
||||
- Налаштування сеансів, доставки повідомлень і поведінки режиму розмови
|
||||
summary: Типові налаштування агента, багатоагентна маршрутизація, сесія, повідомлення та конфігурація talk
|
||||
title: Налаштування — агенти
|
||||
x-i18n:
|
||||
generated_at: "2026-05-03T04:50:58Z"
|
||||
generated_at: "2026-05-04T00:38:36Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: b25371c34b9f8b0cacce021879e43e6a65b86d626dc87d5bfa05dcae80ac32e4
|
||||
source_hash: c8df30ca5d52754d85dc50f9df0832c74f09031361a75a17013a73423b8ee03d
|
||||
source_path: gateway/config-agents.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Ключі конфігурації, обмежені агентом, у `agents.*`, `multiAgent.*`, `session.*`,
|
||||
Ключі конфігурації в області агента під `agents.*`, `multiAgent.*`, `session.*`,
|
||||
`messages.*` і `talk.*`. Для каналів, інструментів, runtime Gateway та інших
|
||||
ключів верхнього рівня див. [Довідник із конфігурації](/uk/gateway/configuration-reference).
|
||||
ключів верхнього рівня див. [Довідник конфігурації](/uk/gateway/configuration-reference).
|
||||
|
||||
## Типові налаштування агентів
|
||||
## Типові параметри агента
|
||||
|
||||
### `agents.defaults.workspace`
|
||||
|
||||
Типове значення: `~/.openclaw/workspace`.
|
||||
Типово: `~/.openclaw/workspace`.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -32,7 +32,7 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.repoRoot`
|
||||
|
||||
Необов’язковий корінь репозиторію, що показується в рядку Runtime системного промпта. Якщо не задано, OpenClaw автоматично визначає його, рухаючись угору від робочого простору.
|
||||
Необов'язковий корінь репозиторію, що показується в рядку Runtime системного prompt. Якщо не задано, OpenClaw автоматично визначає його, рухаючись угору від робочої області.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -42,7 +42,7 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.skills`
|
||||
|
||||
Необов’язковий типовий список дозволених Skills для агентів, які не задають
|
||||
Необов'язковий типовий дозволений список Skills для агентів, які не задають
|
||||
`agents.list[].skills`.
|
||||
|
||||
```json5
|
||||
@ -58,15 +58,15 @@ x-i18n:
|
||||
}
|
||||
```
|
||||
|
||||
- Не вказуйте `agents.defaults.skills`, щоб за замовчуванням Skills були необмеженими.
|
||||
- Не вказуйте `agents.list[].skills`, щоб успадкувати типові значення.
|
||||
- Задайте `agents.list[].skills: []`, щоб не мати Skills.
|
||||
- Опустіть `agents.defaults.skills`, щоб Skills типово були без обмежень.
|
||||
- Опустіть `agents.list[].skills`, щоб успадкувати типові параметри.
|
||||
- Задайте `agents.list[].skills: []`, щоб Skills не було.
|
||||
- Непорожній список `agents.list[].skills` є остаточним набором для цього агента; він
|
||||
не об’єднується з типовими значеннями.
|
||||
не об'єднується з типовими параметрами.
|
||||
|
||||
### `agents.defaults.skipBootstrap`
|
||||
|
||||
Вимикає автоматичне створення файлів bootstrap робочого простору (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`).
|
||||
Вимикає автоматичне створення bootstrap-файлів робочої області (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -76,7 +76,7 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.skipOptionalBootstrapFiles`
|
||||
|
||||
Пропускає створення вибраних необов’язкових файлів робочого простору, водночас усе ще записуючи обов’язкові файли bootstrap. Допустимі значення: `SOUL.md`, `USER.md`, `HEARTBEAT.md` і `IDENTITY.md`.
|
||||
Пропускає створення вибраних необов'язкових файлів робочої області, водночас усе ще записуючи потрібні bootstrap-файли. Допустимі значення: `SOUL.md`, `USER.md`, `HEARTBEAT.md` і `IDENTITY.md`.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -90,10 +90,10 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.contextInjection`
|
||||
|
||||
Керує тим, коли файли bootstrap робочого простору вводяться в системний промпт. Типове значення: `"always"`.
|
||||
Керує тим, коли bootstrap-файли робочої області вставляються в системний prompt. Типово: `"always"`.
|
||||
|
||||
- `"continuation-skip"`: безпечні ходи продовження (після завершеної відповіді асистента) пропускають повторне введення bootstrap робочого простору, зменшуючи розмір промпта. Запуски Heartbeat і повтори після Compaction усе ще перебудовують контекст.
|
||||
- `"never"`: вимкнути bootstrap робочого простору та введення контекстних файлів на кожному ході. Використовуйте це лише для агентів, які повністю керують життєвим циклом свого промпта (власні контекстні рушії, нативні runtime, що будують власний контекст, або спеціалізовані робочі процеси без bootstrap). Ходи Heartbeat і відновлення після Compaction також пропускають введення.
|
||||
- `"continuation-skip"`: безпечні ходи продовження (після завершеної відповіді асистента) пропускають повторне вставлення bootstrap робочої області, зменшуючи розмір prompt. Запуски Heartbeat і повтори після Compaction усе ще перебудовують контекст.
|
||||
- `"never"`: вимкнути вставлення bootstrap робочої області та файлів контексту на кожному ході. Використовуйте це лише для агентів, які повністю керують життєвим циклом свого prompt (власні контекстні рушії, нативні runtime, що будують власний контекст, або спеціалізовані робочі процеси без bootstrap). Ходи Heartbeat і відновлення після Compaction також пропускають вставлення.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -103,7 +103,7 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.bootstrapMaxChars`
|
||||
|
||||
Максимальна кількість символів на файл bootstrap робочого простору до обрізання. Типове значення: `12000`.
|
||||
Максимальна кількість символів на bootstrap-файл робочої області перед обрізанням. Типово: `12000`.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -113,7 +113,7 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.bootstrapTotalMaxChars`
|
||||
|
||||
Максимальна загальна кількість символів, введених з усіх файлів bootstrap робочого простору. Типове значення: `60000`.
|
||||
Максимальна загальна кількість символів, вставлених з усіх bootstrap-файлів робочої області. Типово: `60000`.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -123,12 +123,16 @@ x-i18n:
|
||||
|
||||
### `agents.defaults.bootstrapPromptTruncationWarning`
|
||||
|
||||
Керує текстом попередження, видимим агенту, коли контекст bootstrap обрізано.
|
||||
Типове значення: `"once"`.
|
||||
Керує видимим для агента повідомленням у системному prompt, коли bootstrap-контекст обрізано.
|
||||
Типово: `"once"`.
|
||||
|
||||
- `"off"`: ніколи не вводити текст попередження в системний промпт.
|
||||
- `"once"`: вводити попередження один раз для кожного унікального підпису обрізання (рекомендовано).
|
||||
- `"always"`: вводити попередження під час кожного запуску, коли є обрізання.
|
||||
- `"off"`: ніколи не вставляти текст повідомлення про обрізання в системний prompt.
|
||||
- `"once"`: вставити стисле повідомлення один раз для кожної унікальної сигнатури обрізання (рекомендовано).
|
||||
- `"always"`: вставляти стисле повідомлення під час кожного запуску, коли є обрізання.
|
||||
|
||||
Детальні лічильники raw/вставленого контексту та поля налаштування конфігурації залишаються в діагностиці, такій
|
||||
як звіти про контекст/стан і журнали; звичайний користувацький/runtime-контекст WebChat отримує лише
|
||||
стисле повідомлення для відновлення.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -136,27 +140,27 @@ x-i18n:
|
||||
}
|
||||
```
|
||||
|
||||
### Мапа володіння бюджетами контексту
|
||||
### Мапа володіння бюджетом контексту
|
||||
|
||||
OpenClaw має кілька великих бюджетів промпта/контексту, і вони
|
||||
навмисно розділені за підсистемами, а не всі проходять через один універсальний
|
||||
параметр.
|
||||
OpenClaw має кілька великих бюджетів prompt/контексту, і вони
|
||||
навмисно розділені за підсистемами, а не проходять через один універсальний
|
||||
перемикач.
|
||||
|
||||
- `agents.defaults.bootstrapMaxChars` /
|
||||
`agents.defaults.bootstrapTotalMaxChars`:
|
||||
звичайне введення bootstrap робочого простору.
|
||||
звичайне вставлення bootstrap робочої області.
|
||||
- `agents.defaults.startupContext.*`:
|
||||
одноразова преамбула запуску моделі під час скидання/старту, зокрема нещодавні щоденні
|
||||
файли `memory/*.md`. Команди звичайного чату `/new` і `/reset`
|
||||
одноразова прелюдія модельного запуску після reset/startup, включно з нещодавніми щоденними
|
||||
файлами `memory/*.md`. Команди простого чату `/new` і `/reset`
|
||||
підтверджуються без виклику моделі.
|
||||
- `skills.limits.*`:
|
||||
компактний список Skills, введений у системний промпт.
|
||||
компактний список Skills, вставлений у системний prompt.
|
||||
- `agents.defaults.contextLimits.*`:
|
||||
обмежені фрагменти runtime та введені блоки, якими володіє runtime.
|
||||
обмежені runtime-витяги та вставлені блоки, якими володіє runtime.
|
||||
- `memory.qmd.limits.*`:
|
||||
розміри фрагмента індексованого пошуку пам’яті та введення.
|
||||
розмір індексованого фрагмента пошуку пам'яті та вставлення.
|
||||
|
||||
Використовуйте відповідне перевизначення для конкретного агента лише тоді, коли одному агенту потрібен інший
|
||||
Використовуйте відповідне перевизначення для окремого агента лише тоді, коли одному агенту потрібен інший
|
||||
бюджет:
|
||||
|
||||
- `agents.list[].skillsLimits.maxSkillsPromptChars`
|
||||
@ -164,9 +168,9 @@ OpenClaw має кілька великих бюджетів промпта/ко
|
||||
|
||||
#### `agents.defaults.startupContext`
|
||||
|
||||
Керує стартовою преамбулою першого ходу, що вводиться під час запусків моделі при скиданні/старті.
|
||||
Команди звичайного чату `/new` і `/reset` підтверджують скидання без виклику
|
||||
моделі, тому вони не завантажують цю преамбулу.
|
||||
Керує startup-прелюдією першого ходу, що вставляється під час модельних запусків reset/startup.
|
||||
Команди простого чату `/new` і `/reset` підтверджують reset без виклику
|
||||
моделі, тому вони не завантажують цю прелюдію.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -187,7 +191,7 @@ OpenClaw має кілька великих бюджетів промпта/ко
|
||||
|
||||
#### `agents.defaults.contextLimits`
|
||||
|
||||
Спільні типові значення для обмежених runtime-поверхонь контексту.
|
||||
Спільні типові параметри для обмежених runtime-поверхонь контексту.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -204,18 +208,18 @@ OpenClaw має кілька великих бюджетів промпта/ко
|
||||
}
|
||||
```
|
||||
|
||||
- `memoryGetMaxChars`: типове обмеження фрагмента `memory_get` до додавання
|
||||
- `memoryGetMaxChars`: типова межа витягу `memory_get` перед додаванням
|
||||
метаданих обрізання та повідомлення про продовження.
|
||||
- `memoryGetDefaultLines`: типове вікно рядків `memory_get`, коли `lines`
|
||||
не вказано.
|
||||
- `toolResultMaxChars`: обмеження результатів live-інструмента, що використовується для збережених результатів і
|
||||
опущено.
|
||||
- `toolResultMaxChars`: межа результату live-інструмента, що використовується для збережених результатів і
|
||||
відновлення після переповнення.
|
||||
- `postCompactionMaxChars`: обмеження фрагмента AGENTS.md, що використовується під час введення
|
||||
оновлення після Compaction.
|
||||
- `postCompactionMaxChars`: межа витягу AGENTS.md, що використовується під час
|
||||
вставлення оновлення після Compaction.
|
||||
|
||||
#### `agents.list[].contextLimits`
|
||||
|
||||
Перевизначення для конкретного агента для спільних параметрів `contextLimits`. Пропущені поля успадковуються
|
||||
Перевизначення для окремого агента для спільних перемикачів `contextLimits`. Опущені поля успадковуються
|
||||
з `agents.defaults.contextLimits`.
|
||||
|
||||
```json5
|
||||
@ -242,8 +246,8 @@ OpenClaw має кілька великих бюджетів промпта/ко
|
||||
|
||||
#### `skills.limits.maxSkillsPromptChars`
|
||||
|
||||
Глобальне обмеження для компактного списку Skills, введеного в системний промпт. Це
|
||||
не впливає на читання файлів `SKILL.md` за запитом.
|
||||
Глобальна межа для компактного списку Skills, що вставляється в системний prompt. Це
|
||||
не впливає на читання файлів `SKILL.md` за потреби.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -257,7 +261,7 @@ OpenClaw має кілька великих бюджетів промпта/ко
|
||||
|
||||
#### `agents.list[].skillsLimits.maxSkillsPromptChars`
|
||||
|
||||
Перевизначення бюджету промпта Skills для конкретного агента.
|
||||
Перевизначення для окремого агента для бюджету prompt Skills.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -276,10 +280,10 @@ OpenClaw має кілька великих бюджетів промпта/ко
|
||||
|
||||
### `agents.defaults.imageMaxDimensionPx`
|
||||
|
||||
Максимальний розмір у пікселях для найдовшої сторони зображення в блоках зображень transcript/інструментів перед викликами провайдера.
|
||||
Типове значення: `1200`.
|
||||
Максимальний розмір у пікселях для найдовшої сторони зображення в блоках зображень transcript/tool перед викликами provider.
|
||||
Типово: `1200`.
|
||||
|
||||
Нижчі значення зазвичай зменшують використання vision-токенів і розмір payload запиту для запусків із великою кількістю скриншотів.
|
||||
Нижчі значення зазвичай зменшують використання vision-token і розмір payload запиту для запусків із великою кількістю screenshot.
|
||||
Вищі значення зберігають більше візуальних деталей.
|
||||
|
||||
```json5
|
||||
@ -290,7 +294,7 @@ OpenClaw має кілька великих бюджетів промпта/ко
|
||||
|
||||
### `agents.defaults.userTimezone`
|
||||
|
||||
Часовий пояс для контексту системного промпта (не для часових позначок повідомлень). Якщо не задано, використовується часовий пояс хоста.
|
||||
Часовий пояс для контексту системного prompt (не для часових міток повідомлень). Повертається до часового поясу хоста.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -300,7 +304,7 @@ OpenClaw має кілька великих бюджетів промпта/ко
|
||||
|
||||
### `agents.defaults.timeFormat`
|
||||
|
||||
Формат часу в системному промпті. Типове значення: `auto` (налаштування ОС).
|
||||
Формат часу в системному prompt. Типово: `auto` (налаштування ОС).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -359,57 +363,57 @@ OpenClaw має кілька великих бюджетів промпта/ко
|
||||
|
||||
- `model`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
|
||||
- Рядкова форма задає лише основну модель.
|
||||
- Об’єктна форма задає основну модель і впорядковані резервні моделі для аварійного перемикання.
|
||||
- Об’єктна форма задає основну модель і впорядковані моделі для аварійного перемикання.
|
||||
- `imageModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
|
||||
- Використовується шляхом інструмента `image` як його конфігурація моделі зору.
|
||||
- Також використовується як резервна маршрутизація, коли вибрана/типова модель не може приймати зображення на вхід.
|
||||
- Віддавайте перевагу явним посиланням `provider/model`. Голі ID приймаються для сумісності; якщо голий ID однозначно відповідає налаштованому запису з підтримкою зображень у `models.providers.*.models`, OpenClaw доповнює його цим провайдером. Неоднозначні налаштовані збіги потребують явного префікса провайдера.
|
||||
- Використовується шляхом інструмента `image` як його конфігурація vision-моделі.
|
||||
- Також використовується як запасна маршрутизація, коли вибрана/стандартна модель не може приймати зображення як вхідні дані.
|
||||
- Віддавайте перевагу явним посиланням `provider/model`. Голі ідентифікатори приймаються для сумісності; якщо голий ідентифікатор однозначно збігається з налаштованим записом із підтримкою зображень у `models.providers.*.models`, OpenClaw уточнює його до цього провайдера. Неоднозначні налаштовані збіги потребують явного префікса провайдера.
|
||||
- `imageGenerationModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
|
||||
- Використовується спільною можливістю генерації зображень і будь-якою майбутньою поверхнею інструмента/Plugin, що генерує зображення.
|
||||
- Типові значення: `google/gemini-3.1-flash-image-preview` для нативної генерації зображень Gemini, `fal/fal-ai/flux/dev` для fal, `openai/gpt-image-2` для OpenAI Images або `openai/gpt-image-1.5` для виводу OpenAI PNG/WebP із прозорим тлом.
|
||||
- Типові значення: `google/gemini-3.1-flash-image-preview` для нативної генерації зображень Gemini, `fal/fal-ai/flux/dev` для fal, `openai/gpt-image-2` для OpenAI Images або `openai/gpt-image-1.5` для OpenAI PNG/WebP-виводу з прозорим тлом.
|
||||
- Якщо ви вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію провайдера (наприклад, `GEMINI_API_KEY` або `GOOGLE_API_KEY` для `google/*`, `OPENAI_API_KEY` або OpenAI Codex OAuth для `openai/gpt-image-2` / `openai/gpt-image-1.5`, `FAL_KEY` для `fal/*`).
|
||||
- Якщо опущено, `image_generate` все одно може вивести типове значення провайдера з підтриманою автентифікацією. Спершу він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації зображень у порядку ID провайдера.
|
||||
- Якщо пропущено, `image_generate` усе одно може визначити стандартного провайдера з підтриманою автентифікацією. Спочатку він пробує поточного стандартного провайдера, а потім решту зареєстрованих провайдерів генерації зображень у порядку ідентифікаторів провайдерів.
|
||||
- `musicGenerationModel`: приймає або рядок (`"provider/model"`), або об’єкт (`{ primary, fallbacks }`).
|
||||
- Використовується спільною можливістю генерації музики та вбудованим інструментом `music_generate`.
|
||||
- Типові значення: `google/lyria-3-clip-preview`, `google/lyria-3-pro-preview` або `minimax/music-2.6`.
|
||||
- Якщо опущено, `music_generate` все одно може вивести типове значення провайдера з підтриманою автентифікацією. Спершу він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації музики в порядку ID провайдера.
|
||||
- Якщо ви вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію/API-ключ провайдера.
|
||||
- Якщо пропущено, `music_generate` усе одно може визначити стандартного провайдера з підтриманою автентифікацією. Спочатку він пробує поточного стандартного провайдера, а потім решту зареєстрованих провайдерів генерації музики в порядку ідентифікаторів провайдерів.
|
||||
- Якщо ви вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію провайдера/API-ключ.
|
||||
- `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` все одно може вивести типове значення провайдера з підтриманою автентифікацією. Спершу він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації відео в порядку ID провайдера.
|
||||
- Якщо ви вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію/API-ключ провайдера.
|
||||
- Якщо пропущено, `video_generate` усе одно може визначити стандартного провайдера з підтриманою автентифікацією. Спочатку він пробує поточного стандартного провайдера, а потім решту зареєстрованих провайдерів генерації відео в порядку ідентифікаторів провайдерів.
|
||||
- Якщо ви вибираєте провайдера/модель напряму, також налаштуйте відповідну автентифікацію провайдера/API-ключ.
|
||||
- Вбудований провайдер генерації відео 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"`.
|
||||
- `reasoningDefault`: типова видимість міркувань для агентів. Значення: `"off"`, `"on"`, `"stream"`. Поагентний `agents.list[].reasoningDefault` перевизначає це типове значення. Налаштовані типові значення міркувань застосовуються лише для власників, авторизованих відправників або контекстів gateway operator-admin, коли не встановлено по-повідомленнєве або сеансове перевизначення міркувань.
|
||||
- `elevatedDefault`: типовий рівень підвищеного виводу для агентів. Значення: `"off"`, `"on"`, `"ask"`, `"full"`. Типово: `"on"`.
|
||||
- `model.primary`: формат `provider/model` (наприклад, `openai/gpt-5.5` для доступу за API-ключем або `openai-codex/gpt-5.5` для Codex OAuth). Якщо ви опускаєте провайдера, OpenClaw спершу пробує псевдонім, потім унікальний збіг налаштованого провайдера для цього точного ID моделі, і лише після цього повертається до налаштованого типового провайдера (застаріла поведінка сумісності, тому віддавайте перевагу явному `provider/model`). Якщо цей провайдер більше не надає налаштовану типову модель, OpenClaw повертається до першого налаштованого провайдера/моделі замість показу застарілого типового значення вилученого провайдера.
|
||||
- `models`: налаштований каталог моделей і список дозволених для `/model`. Кожен запис може містити `alias` (скорочення) і `params` (специфічні для провайдера, наприклад `temperature`, `maxTokens`, `cacheRetention`, `context1m`, `responsesServerCompaction`, `responsesCompactThreshold`, `chat_template_kwargs`, `extra_body`/`extraBody`).
|
||||
- Безпечні зміни: використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додавати записи. `config set` відхиляє заміни, які вилучили б наявні записи списку дозволених, якщо ви не передасте `--replace`.
|
||||
- Потоки налаштування/онбордингу в межах провайдера зливають вибрані моделі провайдера в цю мапу та зберігають уже налаштованих непов’язаних провайдерів.
|
||||
- Для прямих моделей OpenAI Responses серверне ущільнення вмикається автоматично. Використовуйте `params.responsesServerCompaction: false`, щоб припинити ін’єкцію `context_management`, або `params.responsesCompactThreshold`, щоб перевизначити поріг. Див. [серверне ущільнення 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 агента) перевизначає за ключем. Докладніше див. [Prompt Caching](/uk/reference/prompt-caching).
|
||||
- `params.extra_body`/`params.extraBody`: розширений наскрізний JSON, що зливається в тіла запитів `api: "openai-completions"` для OpenAI-сумісних проксі. Якщо він конфліктує зі згенерованими ключами запиту, додаткове тіло перемагає; ненативні маршрути completions усе одно після цього вилучають OpenAI-специфічний `store`.
|
||||
- `params.chat_template_kwargs`: аргументи chat-template, сумісні з vLLM/OpenAI, що зливаються в тіла запитів верхнього рівня `api: "openai-completions"`. Для `vllm/nemotron-3-*` з вимкненим мисленням вбудований Plugin vLLM автоматично надсилає `enable_thinking: false` і `force_nonempty_content: true`; явні `chat_template_kwargs` перевизначають згенеровані типові значення, а `extra_body.chat_template_kwargs` усе одно має остаточний пріоритет. Для елементів керування мисленням vLLM Qwen задайте `params.qwenThinkingFormat` як `"chat-template"` або `"top-level"` у цьому записі моделі.
|
||||
- `compat.supportedReasoningEfforts`: список зусиль міркування для моделі, сумісний з OpenAI. Додайте `"xhigh"` для власних кінцевих точок, які справді його приймають; тоді OpenClaw показує `/think xhigh` у меню команд, рядках сеансів Gateway, валідації патчів сеансу, валідації CLI агента та валідації `llm-task` для цього налаштованого провайдера/моделі. Використовуйте `compat.reasoningEffortMap`, коли бекенд очікує специфічне для провайдера значення для канонічного рівня.
|
||||
- `params.preserveThinking`: опціональне ввімкнення збереженого мислення лише для Z.AI. Коли ввімкнено і мислення активне, OpenClaw надсилає `thinking.clear_thinking: false` і повторно відтворює попередній `reasoning_content`; див. [мислення Z.AI та збережене мислення](/uk/providers/zai#thinking-and-preserved-thinking).
|
||||
- `agentRuntime`: типова низькорівнева політика середовища виконання агента. Опущений ID типово означає OpenClaw Pi. Використовуйте `id: "pi"`, щоб примусово застосувати вбудований PI harness, `id: "auto"`, щоб дозволити зареєстрованим Plugin harness заявляти підтримувані моделі й використовувати PI, коли збігів немає, зареєстрований ID harness, як-от `id: "codex"`, щоб вимагати цей harness, або підтримуваний псевдонім бекенда CLI, як-от `id: "claude-cli"`. Явні середовища виконання Plugin fail closed, коли harness недоступний або завершується з помилкою. Зберігайте посилання на моделі канонічними як `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`: стандартний рівень докладності для агентів. Значення: `"off"`, `"on"`, `"full"`. Стандартно: `"off"`.
|
||||
- `reasoningDefault`: стандартна видимість міркування для агентів. Значення: `"off"`, `"on"`, `"stream"`. `agents.list[].reasoningDefault` для окремого агента перевизначає це стандартне значення. Налаштовані стандартні значення міркування застосовуються лише для власників, авторизованих відправників або контекстів Gateway адміністратора оператора, коли не задано перевизначення міркування для повідомлення чи сесії.
|
||||
- `elevatedDefault`: стандартний рівень підвищеного виводу для агентів. Значення: `"off"`, `"on"`, `"ask"`, `"full"`. Стандартно: `"on"`.
|
||||
- `model.primary`: формат `provider/model` (наприклад, `openai/gpt-5.5` для доступу через API-ключ або `openai-codex/gpt-5.5` для Codex OAuth). Якщо ви пропустите провайдера, OpenClaw спочатку пробує псевдонім, потім унікальний збіг налаштованого провайдера для цього точного ідентифікатора моделі, і лише після цього повертається до налаштованого стандартного провайдера (застаріла поведінка сумісності, тому віддавайте перевагу явному `provider/model`). Якщо цей провайдер більше не надає налаштовану стандартну модель, OpenClaw повертається до першого налаштованого провайдера/моделі замість того, щоб показувати застарілу стандартну модель видаленого провайдера.
|
||||
- `models`: налаштований каталог моделей і allowlist для `/model`. Кожен запис може містити `alias` (скорочення) і `params` (специфічні для провайдера, наприклад `temperature`, `maxTokens`, `cacheRetention`, `context1m`, `responsesServerCompaction`, `responsesCompactThreshold`, `chat_template_kwargs`, `extra_body`/`extraBody`).
|
||||
- Безпечні редагування: використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додавати записи. `config set` відхиляє заміни, які видалили б наявні записи allowlist, якщо не передати `--replace`.
|
||||
- Потоки налаштування/onboarding у межах провайдера об’єднують вибрані моделі провайдера в цю мапу та зберігають уже налаштованих непов’язаних провайдерів.
|
||||
- Для прямих моделей OpenAI Responses серверне Compaction вмикається автоматично. Використовуйте `params.responsesServerCompaction: false`, щоб припинити вставлення `context_management`, або `params.responsesCompactThreshold`, щоб перевизначити поріг. Див. [серверне 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` (відповідний ідентифікатор агента) перевизначає за ключем. Подробиці див. у [кешуванні промптів](/uk/reference/prompt-caching).
|
||||
- `params.extra_body`/`params.extraBody`: розширений наскрізний JSON, який об’єднується в тіла запитів `api: "openai-completions"` для OpenAI-сумісних проксі. Якщо він конфліктує зі згенерованими ключами запиту, додаткове тіло має пріоритет; ненативні маршрути completions усе одно після цього вилучають OpenAI-специфічний `store`.
|
||||
- `params.chat_template_kwargs`: OpenAI-сумісні аргументи чат-шаблону vLLM, які об’єднуються в тіла запитів верхнього рівня `api: "openai-completions"`. Для `vllm/nemotron-3-*` з вимкненим thinking вбудований vLLM Plugin автоматично надсилає `enable_thinking: false` і `force_nonempty_content: true`; явні `chat_template_kwargs` перевизначають згенеровані стандартні значення, а `extra_body.chat_template_kwargs` усе одно має остаточний пріоритет. Для елементів керування thinking Qwen vLLM задайте `params.qwenThinkingFormat` як `"chat-template"` або `"top-level"` у цьому записі моделі.
|
||||
- `compat.supportedReasoningEfforts`: список зусиль міркування, сумісний з OpenAI, для окремої моделі. Додайте `"xhigh"` для користувацьких кінцевих точок, які справді його приймають; тоді OpenClaw показує `/think xhigh` у меню команд, рядках сесій Gateway, перевірці patch сесії, перевірці CLI агента та перевірці `llm-task` для цього налаштованого провайдера/моделі. Використовуйте `compat.reasoningEffortMap`, коли бекенд очікує специфічне для провайдера значення для канонічного рівня.
|
||||
- `params.preserveThinking`: opt-in лише для Z.AI для збереженого thinking. Коли ввімкнено й thinking активний, OpenClaw надсилає `thinking.clear_thinking: false` і повторно відтворює попередній `reasoning_content`; див. [thinking і збережений thinking Z.AI](/uk/providers/zai#thinking-and-preserved-thinking).
|
||||
- `agentRuntime`: стандартна низькорівнева політика виконання агента. Пропущений ідентифікатор за замовчуванням означає OpenClaw Pi. Використовуйте `id: "pi"`, щоб примусово ввімкнути вбудований PI harness, `id: "auto"`, щоб дозволити зареєстрованим Plugin harnesses заявляти підтримувані моделі та використовувати PI, коли немає збігів, зареєстрований ідентифікатор harness, наприклад `id: "codex"`, щоб вимагати цей harness, або підтримуваний псевдонім CLI бекенда, наприклад `id: "claude-cli"`. Явні середовища виконання Plugin закриваються з помилкою, коли harness недоступний або завершується збоєм. Тримайте посилання на моделі канонічними як `provider/model`; вибирайте Codex, Claude CLI, Gemini CLI та інші бекенди виконання через конфігурацію середовища виконання замість застарілих префіксів провайдера середовища виконання. Див. [середовища виконання агентів](/uk/concepts/agent-runtimes), щоб зрозуміти, чим це відрізняється від вибору провайдера/моделі.
|
||||
- Записувачі конфігурації, які змінюють ці поля (наприклад, `/models set`, `/models set-image` і команди додавання/видалення запасних моделей), зберігають канонічну об’єктну форму та за можливості зберігають наявні списки запасних моделей.
|
||||
- `maxConcurrent`: максимальна кількість паралельних запусків агентів між сесіями (кожна сесія все одно серіалізується). Стандартно: 4.
|
||||
|
||||
### `agents.defaults.agentRuntime`
|
||||
|
||||
`agentRuntime` керує тим, який низькорівневий виконавець запускає ходи агента. Більшість
|
||||
розгортань мають залишати типове середовище виконання OpenClaw Pi. Використовуйте його, коли довірений
|
||||
Plugin надає нативний harness, наприклад вбудований app-server harness Codex,
|
||||
або коли потрібен підтримуваний бекенд CLI, як-от Claude CLI. Для ментальної
|
||||
моделі див. [Середовища виконання агентів](/uk/concepts/agent-runtimes).
|
||||
`agentRuntime` керує тим, який низькорівневий виконавець запускає ходи агента. Більшості
|
||||
розгортань варто залишити стандартне середовище виконання OpenClaw Pi. Використовуйте його, коли довірений
|
||||
Plugin надає нативний harness, наприклад вбудований harness Codex app-server,
|
||||
або коли вам потрібен підтримуваний CLI бекенд, наприклад Claude CLI. Для ментальної
|
||||
моделі див. [середовища виконання агентів](/uk/concepts/agent-runtimes).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -424,14 +428,14 @@ Plugin надає нативний harness, наприклад вбудован
|
||||
}
|
||||
```
|
||||
|
||||
- `id`: `"auto"`, `"pi"`, зареєстрований ID harness Plugin або підтримуваний псевдонім бекенда CLI. Вбудований Plugin Codex реєструє `codex`; вбудований Plugin Anthropic надає бекенд CLI `claude-cli`.
|
||||
- `id: "auto"` дозволяє зареєстрованим Plugin harness заявляти підтримувані ходи та використовує PI, коли жоден harness не відповідає. Явне середовище виконання Plugin, як-от `id: "codex"`, вимагає цей harness і fail closed, якщо він недоступний або завершується з помилкою.
|
||||
- `id`: `"auto"`, `"pi"`, ідентифікатор зареєстрованого Plugin harness або підтримуваний псевдонім CLI бекенда. Вбудований Codex Plugin реєструє `codex`; вбудований Anthropic Plugin надає CLI бекенд `claude-cli`.
|
||||
- `id: "auto"` дозволяє зареєстрованим Plugin harnesses заявляти підтримувані ходи та використовує PI, коли жоден harness не збігається. Явне середовище виконання Plugin, наприклад `id: "codex"`, вимагає цей harness і закривається з помилкою, якщо він недоступний або завершується збоєм.
|
||||
- Перевизначення середовища: `OPENCLAW_AGENT_RUNTIME=<id|auto|pi>` перевизначає `id` для цього процесу.
|
||||
- Для розгортань лише з Codex задайте `model: "openai/gpt-5.5"` і `agentRuntime.id: "codex"`.
|
||||
- Для розгортань Claude CLI віддавайте перевагу `model: "anthropic/claude-opus-4-7"` плюс `agentRuntime.id: "claude-cli"`. Застарілі посилання на модель `claude-cli/claude-opus-4-7` усе ще працюють для сумісності, але нова конфігурація має зберігати вибір провайдера/моделі канонічним і поміщати бекенд виконання в `agentRuntime.id`.
|
||||
- Старіші ключі політики runtime переписуються в `agentRuntime` командою `openclaw doctor --fix`.
|
||||
- Вибір harness фіксується для ID сеансу після першого вбудованого запуску. Зміни конфігурації/середовища впливають на нові або скинуті сеанси, а не на наявний транскрипт. Застарілі сеанси з історією транскрипту, але без записаного закріплення, вважаються закріпленими за PI. `/status` повідомляє ефективний runtime, наприклад `Runtime: OpenClaw Pi Default` або `Runtime: OpenAI Codex`.
|
||||
- Це керує лише виконанням текстових ходів агента. Генерація медіа, зір, PDF, музика, відео та TTS і далі використовують свої налаштування провайдера/моделі.
|
||||
- Для розгортань Claude CLI віддавайте перевагу `model: "anthropic/claude-opus-4-7"` разом з `agentRuntime.id: "claude-cli"`. Застарілі посилання на моделі `claude-cli/claude-opus-4-7` усе ще працюють для сумісності, але нова конфігурація має зберігати вибір провайдера/моделі канонічним і поміщати бекенд виконання в `agentRuntime.id`.
|
||||
- Старі ключі політики середовища виконання переписуються в `agentRuntime` командою `openclaw doctor --fix`.
|
||||
- Вибір harness закріплюється за ідентифікатором сесії після першого вбудованого запуску. Зміни конфігурації/env впливають на нові або скинуті сесії, а не на наявний transcript. Застарілі сесії з історією transcript, але без записаного закріплення, вважаються закріпленими за PI. `/status` повідомляє ефективне середовище виконання, наприклад `Runtime: OpenClaw Pi Default` або `Runtime: OpenAI Codex`.
|
||||
- Це керує лише виконанням текстових ходів агента. Генерація медіа, vision, PDF, музика, відео та TTS усе ще використовують свої налаштування провайдера/моделі.
|
||||
|
||||
**Вбудовані скорочення псевдонімів** (застосовуються лише коли модель є в `agents.defaults.models`):
|
||||
|
||||
@ -439,18 +443,18 @@ Plugin надає нативний harness, наприклад вбудован
|
||||
| ------------------- | ------------------------------------------ |
|
||||
| `opus` | `anthropic/claude-opus-4-6` |
|
||||
| `sonnet` | `anthropic/claude-sonnet-4-6` |
|
||||
| `gpt` | `openai/gpt-5.5` або `openai-codex/gpt-5.5` |
|
||||
| `gpt` | `openai/gpt-5.5` or `openai-codex/gpt-5.5` |
|
||||
| `gpt-mini` | `openai/gpt-5.4-mini` |
|
||||
| `gpt-nano` | `openai/gpt-5.4-nano` |
|
||||
| `gemini` | `google/gemini-3.1-pro-preview` |
|
||||
| `gemini-flash` | `google/gemini-3-flash-preview` |
|
||||
| `gemini-flash-lite` | `google/gemini-3.1-flash-lite-preview` |
|
||||
|
||||
Ваші налаштовані псевдоніми завжди мають пріоритет над типовими.
|
||||
Ваші налаштовані псевдоніми завжди мають пріоритет над стандартними.
|
||||
|
||||
Z.AI GLM-4.x моделі автоматично вмикають режим мислення, якщо ви не встановите `--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 типово використовують `adaptive` мислення, коли явний рівень мислення не задано.
|
||||
Моделі 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 типово використовують `adaptive` thinking, коли явний рівень thinking не задано.
|
||||
|
||||
### `agents.defaults.cliBackends`
|
||||
|
||||
@ -483,13 +487,13 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
}
|
||||
```
|
||||
|
||||
- CLI-бекенди орієнтовані на текст; інструменти завжди вимкнені.
|
||||
- CLI-бекенди насамперед текстові; інструменти завжди вимкнені.
|
||||
- Сесії підтримуються, коли задано `sessionArg`.
|
||||
- Наскрізне передавання зображень підтримується, коли `imageArg` приймає шляхи до файлів.
|
||||
- Передавання зображень підтримується, коли `imageArg` приймає шляхи до файлів.
|
||||
|
||||
### `agents.defaults.systemPromptOverride`
|
||||
|
||||
Замінює весь системний промпт, зібраний OpenClaw, фіксованим рядком. Задається на рівні типових значень (`agents.defaults.systemPromptOverride`) або для окремого агента (`agents.list[].systemPromptOverride`). Значення для окремого агента мають пріоритет; порожнє значення або значення лише з пробілів ігнорується. Корисно для контрольованих експериментів із промптами.
|
||||
Замінює весь зібраний OpenClaw системний prompt на фіксований рядок. Задається на типовому рівні (`agents.defaults.systemPromptOverride`) або для окремого агента (`agents.list[].systemPromptOverride`). Значення для окремого агента мають пріоритет; порожнє значення або значення лише з пробілів ігнорується. Корисно для контрольованих експериментів із prompt.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -503,7 +507,7 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
|
||||
### `agents.defaults.promptOverlays`
|
||||
|
||||
Незалежні від провайдера накладання промпта, застосовані за родиною моделей. Ідентифікатори моделей родини GPT-5 отримують спільний контракт поведінки між провайдерами; `personality` керує лише дружнім шаром стилю взаємодії.
|
||||
Незалежні від провайдера накладки prompt, застосовані за сімейством моделей. Ідентифікатори моделей сімейства GPT-5 отримують спільний контракт поведінки між провайдерами; `personality` керує лише дружнім шаром стилю взаємодії.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -521,7 +525,7 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
|
||||
- `"friendly"` (типово) і `"on"` вмикають дружній шар стилю взаємодії.
|
||||
- `"off"` вимикає лише дружній шар; позначений контракт поведінки GPT-5 залишається ввімкненим.
|
||||
- Застаріле `plugins.entries.openai.config.personality` усе ще зчитується, коли це спільне налаштування не задано.
|
||||
- Застарілий `plugins.entries.openai.config.personality` усе ще читається, коли це спільне налаштування не задано.
|
||||
|
||||
### `agents.defaults.heartbeat`
|
||||
|
||||
@ -553,16 +557,16 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
}
|
||||
```
|
||||
|
||||
- `every`: рядок тривалості (ms/s/m/h). Типово: `30m` (автентифікація API-ключем) або `1h` (автентифікація OAuth). Встановіть `0m`, щоб вимкнути.
|
||||
- `includeSystemPromptSection`: коли `false`, вилучає розділ Heartbeat із системного промпта та пропускає ін’єкцію `HEARTBEAT.md` у початковий контекст. Типово: `true`.
|
||||
- `suppressToolErrorWarnings`: коли `true`, пригнічує payload-попередження про помилки інструментів під час запусків Heartbeat.
|
||||
- `timeoutSeconds`: максимальний час у секундах, дозволений для ходу агента Heartbeat до його переривання. Не задавайте, щоб використовувати `agents.defaults.timeoutSeconds`.
|
||||
- `directPolicy`: політика доставлення напряму/DM. `allow` (типово) дозволяє доставлення прямій цілі. `block` пригнічує доставлення прямій цілі та видає `reason=dm-blocked`.
|
||||
- `lightContext`: коли `true`, запуски Heartbeat використовують полегшений початковий контекст і залишають лише `HEARTBEAT.md` із початкових файлів робочої області.
|
||||
- `isolatedSession`: коли `true`, кожен Heartbeat запускається в новій сесії без попередньої історії розмови. Такий самий шаблон ізоляції, як cron `sessionTarget: "isolated"`. Зменшує вартість токенів для одного Heartbeat приблизно зі 100K до 2-5K токенів.
|
||||
- `skipWhenBusy`: коли `true`, запуски Heartbeat відкладаються за наявності додаткових зайнятих ліній: роботи субагента або вкладеної команди. Лінії Cron завжди відкладають Heartbeat, навіть без цього прапорця.
|
||||
- Для окремого агента: задайте `agents.list[].heartbeat`. Коли будь-який агент визначає `heartbeat`, Heartbeat запускають **лише ці агенти**.
|
||||
- Heartbeat виконує повні ходи агента — коротші інтервали витрачають більше токенів.
|
||||
- `every`: рядок тривалості (ms/s/m/h). Типово: `30m` (автентифікація API-ключем) або `1h` (автентифікація OAuth). Установіть `0m`, щоб вимкнути.
|
||||
- `includeSystemPromptSection`: коли `false`, пропускає розділ Heartbeat у системному prompt і пропускає ін’єкцію `HEARTBEAT.md` у bootstrap-контекст. Типово: `true`.
|
||||
- `suppressToolErrorWarnings`: коли `true`, пригнічує payload попереджень про помилки інструментів під час запусків 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 приблизно зі 100 тис. до 2-5 тис. токенів.
|
||||
- `skipWhenBusy`: коли `true`, запуски Heartbeat відкладаються на додаткових зайнятих lane: робота subagent або вкладеної команди. Cron lane завжди відкладають Heartbeat, навіть без цього прапорця.
|
||||
- Для окремого агента: задайте `agents.list[].heartbeat`. Коли будь-який агент визначає `heartbeat`, Heartbeat виконують **лише ці агенти**.
|
||||
- Heartbeat виконують повні ходи агента — коротші інтервали витрачають більше токенів.
|
||||
|
||||
### `agents.defaults.compaction`
|
||||
|
||||
@ -598,19 +602,19 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
}
|
||||
```
|
||||
|
||||
- `mode`: `default` або `safeguard` (фрагментоване узагальнення для довгих історій). Див. [Compaction](/uk/concepts/compaction).
|
||||
- `provider`: ідентифікатор зареєстрованого provider 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`, щоб пропустити аудит.
|
||||
- `midTurnPrecheck`: необов’язкова перевірка тиску циклу інструментів Pi. Коли `enabled: true`, OpenClaw перевіряє тиск контексту після додавання результатів інструментів і перед наступним викликом моделі. Якщо контекст більше не вміщується, він перериває поточну спробу до надсилання промпта та повторно використовує наявний шлях відновлення передперевірки, щоб обрізати результати інструментів або виконати Compaction і повторити спробу. Працює з режимами Compaction `default` і `safeguard`. Типово: вимкнено.
|
||||
- `postCompactionSections`: необов’язкові назви розділів H2/H3 з AGENTS.md для повторної ін’єкції після Compaction. Типово `["Session Startup", "Red Lines"]`; задайте `[]`, щоб вимкнути повторну ін’єкцію. Коли не задано або явно задано цю типову пару, старіші заголовки `Every Session`/`Safety` також приймаються як застарілий запасний варіант.
|
||||
- `model`: необов’язкове перевизначення `provider/model-id` лише для узагальнення Compaction. Використовуйте це, коли основна сесія має зберігати одну модель, а узагальнення Compaction мають виконуватися на іншій; коли не задано, Compaction використовує основну модель сесії.
|
||||
- `maxActiveTranscriptBytes`: необов’язковий поріг у байтах (`number` або рядки на кшталт `"20mb"`), який запускає звичайний локальний Compaction перед запуском, коли активний JSONL перевищує поріг. Потребує `truncateAfterCompaction`, щоб успішний Compaction міг перейти до меншого наступного транскрипту. Вимкнено, коли не задано або `0`.
|
||||
- `notifyUser`: коли `true`, надсилає користувачу короткі сповіщення, коли Compaction починається та завершується (наприклад, "Compacting context..." і "Compaction complete"). Типово вимкнено, щоб Compaction залишався беззвучним.
|
||||
- `memoryFlush`: беззвучний агентний хід перед автоматичним Compaction для збереження тривалих спогадів. Задайте `model` як точний provider/model, наприклад `ollama/qwen3:8b`, коли цей службовий хід має залишатися на локальній моделі; перевизначення не успадковує ланцюжок запасних варіантів активної сесії. Пропускається, коли робоча область доступна лише для читання.
|
||||
- `mode`: `default` або `safeguard` (частинна сумаризація для довгих історій). Див. [Compaction](/uk/concepts/compaction).
|
||||
- `provider`: ідентифікатор зареєстрованого compaction provider plugin. Коли задано, замість вбудованої LLM-сумаризації викликається `summarize()` провайдера. У разі збою повертається до вбудованої. Задання провайдера примусово встановлює `mode: "safeguard"`. Див. [Compaction](/uk/concepts/compaction).
|
||||
- `timeoutSeconds`: максимальна кількість секунд, дозволена для однієї операції Compaction, перш ніж OpenClaw її перерве. Типово: `900`.
|
||||
- `keepRecentTokens`: бюджет точки відсікання Pi для дослівного збереження найновішого хвоста transcript. Ручний `/compact` враховує це, коли задано явно; інакше ручна Compaction є жорсткою контрольною точкою.
|
||||
- `identifierPolicy`: `strict` (типово), `off` або `custom`. `strict` додає на початок вбудовані вказівки щодо збереження непрозорих ідентифікаторів під час compaction summarization.
|
||||
- `identifierInstructions`: необов’язковий власний текст щодо збереження ідентифікаторів, який використовується, коли `identifierPolicy=custom`.
|
||||
- `qualityGuard`: перевірки повтору у разі некоректно сформованого виводу для safeguard summaries. Типово ввімкнено в режимі safeguard; установіть `enabled: false`, щоб пропустити аудит.
|
||||
- `midTurnPrecheck`: необов’язкова перевірка навантаження tool-loop Pi. Коли `enabled: true`, OpenClaw перевіряє навантаження контексту після додавання результатів інструментів і перед наступним викликом моделі. Якщо контекст більше не вміщується, він перериває поточну спробу перед надсиланням prompt і повторно використовує наявний шлях відновлення precheck, щоб обрізати результати інструментів або виконати compact і повторити спробу. Працює з обома режимами Compaction: `default` і `safeguard`. Типово: вимкнено.
|
||||
- `postCompactionSections`: необов’язкові назви розділів H2/H3 з AGENTS.md для повторної ін’єкції після Compaction. Типово `["Session Startup", "Red Lines"]`; установіть `[]`, щоб вимкнути повторну ін’єкцію. Коли не задано або явно задано цю типову пару, старіші заголовки `Every Session`/`Safety` також приймаються як застарілий fallback.
|
||||
- `model`: необов’язкове перевизначення `provider/model-id` лише для compaction summarization. Використовуйте це, коли основна сесія має залишатися на одній моделі, а compaction summaries мають виконуватися на іншій; коли не задано, Compaction використовує основну модель сесії.
|
||||
- `maxActiveTranscriptBytes`: необов’язковий поріг у байтах (`number` або рядки на кшталт `"20mb"`), який запускає звичайну локальну Compaction перед запуском, коли активний JSONL перевищує поріг. Потребує `truncateAfterCompaction`, щоб успішна Compaction могла перейти до меншого наступного transcript. Вимкнено, коли не задано або `0`.
|
||||
- `notifyUser`: коли `true`, надсилає користувачу короткі сповіщення, коли Compaction починається і коли завершується (наприклад, "Compacting context..." і "Compaction complete"). Типово вимкнено, щоб Compaction була тихою.
|
||||
- `memoryFlush`: тихий агентний хід перед auto-compaction для збереження довготривалих memories. Задайте `model` як точний provider/model, наприклад `ollama/qwen3:8b`, коли цей housekeeping-хід має залишатися на локальній моделі; перевизначення не успадковує активний fallback chain сесії. Пропускається, коли робоча область доступна лише для читання.
|
||||
|
||||
### `agents.defaults.contextPruning`
|
||||
|
||||
@ -636,25 +640,25 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
}
|
||||
```
|
||||
|
||||
<Accordion title="поведінка режиму cache-ttl">
|
||||
<Accordion title="cache-ttl mode behavior">
|
||||
|
||||
- `mode: "cache-ttl"` вмикає проходи обрізання.
|
||||
- `ttl` керує тим, як часто обрізання може запускатися знову (після останнього торкання кешу).
|
||||
- Обрізання спочатку м’яко скорочує завеликі результати інструментів, а потім, за потреби, повністю очищає старіші результати інструментів.
|
||||
- `ttl` контролює, як часто обрізання може запускатися знову (після останнього торкання кешу).
|
||||
- Обрізання спершу soft-trim завеликі результати інструментів, потім за потреби hard-clear старіші результати інструментів.
|
||||
|
||||
**М’яке скорочення** зберігає початок + кінець і вставляє `...` посередині.
|
||||
**Soft-trim** зберігає початок + кінець і вставляє `...` посередині.
|
||||
|
||||
**Повне очищення** замінює весь результат інструмента заповнювачем.
|
||||
**Hard-clear** замінює весь результат інструмента placeholder.
|
||||
|
||||
Примітки:
|
||||
|
||||
- Блоки зображень ніколи не скорочуються й не очищаються.
|
||||
- Блоки зображень ніколи не обрізаються й не очищуються.
|
||||
- Співвідношення базуються на символах (приблизно), а не на точній кількості токенів.
|
||||
- Якщо існує менше ніж `keepLastAssistants` повідомлень асистента, обрізання пропускається.
|
||||
- Якщо існує менше ніж `keepLastAssistants` повідомлень assistant, обрізання пропускається.
|
||||
|
||||
</Accordion>
|
||||
|
||||
Див. [Обрізання сесії](/uk/concepts/session-pruning), щоб дізнатися подробиці поведінки.
|
||||
Див. [Session Pruning](/uk/concepts/session-pruning) для подробиць поведінки.
|
||||
|
||||
### Блокове потокове передавання
|
||||
|
||||
@ -672,13 +676,13 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
}
|
||||
```
|
||||
|
||||
- Канали, відмінні від Telegram, потребують явного `*.blockStreaming: true`, щоб увімкнути блокові відповіді.
|
||||
- Перевизначення каналів: `channels.<channel>.blockStreamingCoalesce` (і варіанти для окремих облікових записів). Signal/Slack/Discord/Google Chat типово використовують `minChars: 1500`.
|
||||
- `humanDelay`: випадкова пауза між блоковими відповідями. `natural` = 800–2500ms. Перевизначення для окремого агента: `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) для подробиць поведінки та поділу на chunks.
|
||||
|
||||
### Індикатори набору
|
||||
### Індикатори набору тексту
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -692,7 +696,7 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
```
|
||||
|
||||
- Типові значення: `instant` для прямих чатів/згадок, `message` для групових чатів без згадок.
|
||||
- Перевизначення для окремих сеансів: `session.typingMode`, `session.typingIntervalSeconds`.
|
||||
- Перевизначення для окремого сеансу: `session.typingMode`, `session.typingIntervalSeconds`.
|
||||
|
||||
Див. [Індикатори набору](/uk/concepts/typing-indicators).
|
||||
|
||||
@ -700,7 +704,7 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
|
||||
### `agents.defaults.sandbox`
|
||||
|
||||
Необов’язкова ізоляція в пісочниці для вбудованого агента. Повний посібник див. у [Ізоляція в пісочниці](/uk/gateway/sandboxing).
|
||||
Необов’язкова ізоляція в sandbox для вбудованого агента. Повний посібник див. у [Sandboxing](/uk/gateway/sandboxing).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -795,24 +799,24 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
}
|
||||
```
|
||||
|
||||
<Accordion title="Sandbox details">
|
||||
<Accordion title="Відомості про sandbox">
|
||||
|
||||
**Бекенд:**
|
||||
|
||||
- `docker`: локальне середовище виконання Docker (типово)
|
||||
- `ssh`: універсальне віддалене середовище виконання на основі SSH
|
||||
- `openshell`: середовище виконання OpenShell
|
||||
- `docker`: локальний runtime Docker (типово)
|
||||
- `ssh`: загальний віддалений runtime на базі SSH
|
||||
- `openshell`: runtime OpenShell
|
||||
|
||||
Коли вибрано `backend: "openshell"`, налаштування, специфічні для середовища виконання, переходять до
|
||||
Коли вибрано `backend: "openshell"`, специфічні для runtime налаштування переходять у
|
||||
`plugins.entries.openshell.config`.
|
||||
|
||||
**Конфігурація бекенду SSH:**
|
||||
**Конфігурація SSH-бекенда:**
|
||||
|
||||
- `target`: ціль SSH у форматі `user@host[:port]`
|
||||
- `command`: команда клієнта SSH (типово: `ssh`)
|
||||
- `workspaceRoot`: абсолютний віддалений корінь, що використовується для робочих просторів за межами області
|
||||
- `identityFile` / `certificateFile` / `knownHostsFile`: наявні локальні файли, що передаються в OpenSSH
|
||||
- `identityData` / `certificateData` / `knownHostsData`: вбудований вміст або SecretRefs, які OpenClaw матеріалізує в тимчасові файли під час виконання
|
||||
- `target`: SSH-ціль у формі `user@host[:port]`
|
||||
- `command`: команда SSH-клієнта (типово: `ssh`)
|
||||
- `workspaceRoot`: абсолютний віддалений корінь, що використовується для робочих просторів за scope
|
||||
- `identityFile` / `certificateFile` / `knownHostsFile`: наявні локальні файли, передані до OpenSSH
|
||||
- `identityData` / `certificateData` / `knownHostsData`: вбудований вміст або SecretRefs, які OpenClaw матеріалізує у тимчасові файли під час виконання
|
||||
- `strictHostKeyChecking` / `updateHostKeys`: параметри політики ключів хоста OpenSSH
|
||||
|
||||
**Пріоритет автентифікації SSH:**
|
||||
@ -820,23 +824,23 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
- `identityData` має перевагу над `identityFile`
|
||||
- `certificateData` має перевагу над `certificateFile`
|
||||
- `knownHostsData` має перевагу над `knownHostsFile`
|
||||
- значення `*Data` на основі SecretRef розв’язуються з активного знімка середовища виконання секретів до запуску сеансу пісочниці
|
||||
- Значення `*Data` на базі SecretRef розв’язуються з активного знімка runtime секретів до запуску sandbox-сеансу
|
||||
|
||||
**Поведінка бекенду SSH:**
|
||||
**Поведінка SSH-бекенда:**
|
||||
|
||||
- один раз ініціалізує віддалений робочий простір після створення або повторного створення
|
||||
- потім зберігає віддалений робочий простір SSH канонічним
|
||||
- маршрутизує `exec`, файлові інструменти та шляхи до медіа через SSH
|
||||
- одноразово засіває віддалений робочий простір після створення або повторного створення
|
||||
- потім зберігає віддалений SSH-робочий простір канонічним
|
||||
- маршрутизує `exec`, файлові інструменти та медіашляхи через SSH
|
||||
- не синхронізує віддалені зміни назад на хост автоматично
|
||||
- не підтримує браузерні контейнери пісочниці
|
||||
- не підтримує sandbox-контейнери браузера
|
||||
|
||||
**Доступ до робочого простору:**
|
||||
|
||||
- `none`: робочий простір пісочниці для відповідної області під `~/.openclaw/sandboxes`
|
||||
- `ro`: робочий простір пісочниці в `/workspace`, робочий простір агента змонтовано лише для читання в `/agent`
|
||||
- `none`: sandbox-робочий простір за scope у `~/.openclaw/sandboxes`
|
||||
- `ro`: sandbox-робочий простір у `/workspace`, робочий простір агента змонтовано лише для читання в `/agent`
|
||||
- `rw`: робочий простір агента змонтовано для читання/запису в `/workspace`
|
||||
|
||||
**Область:**
|
||||
**Scope:**
|
||||
|
||||
- `session`: контейнер + робочий простір для кожного сеансу
|
||||
- `agent`: один контейнер + робочий простір для кожного агента (типово)
|
||||
@ -870,30 +874,30 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
|
||||
**Режим OpenShell:**
|
||||
|
||||
- `mirror`: перед `exec` ініціалізує віддалений простір із локального, після `exec` синхронізує назад; локальний робочий простір лишається канонічним
|
||||
- `remote`: один раз ініціалізує віддалений простір під час створення пісочниці, потім зберігає віддалений робочий простір канонічним
|
||||
- `mirror`: засівати віддалене середовище з локального перед exec, синхронізувати назад після exec; локальний робочий простір лишається канонічним
|
||||
- `remote`: засіяти віддалене середовище один раз під час створення sandbox, потім зберігати віддалений робочий простір канонічним
|
||||
|
||||
У режимі `remote` локальні на хості зміни, зроблені поза OpenClaw, не синхронізуються в пісочницю автоматично після кроку ініціалізації.
|
||||
Транспортом є SSH у пісочницю OpenShell, але Plugin керує життєвим циклом пісочниці та необов’язковою дзеркальною синхронізацією.
|
||||
У режимі `remote` локальні для хоста правки, зроблені поза OpenClaw, не синхронізуються в sandbox автоматично після кроку засівання.
|
||||
Транспорт — це SSH у sandbox OpenShell, але Plugin керує життєвим циклом sandbox і необов’язковою дзеркальною синхронізацією.
|
||||
|
||||
**`setupCommand`** виконується один раз після створення контейнера (через `sh -lc`). Потребує вихідного доступу до мережі, кореня з правами запису та користувача root.
|
||||
**`setupCommand`** запускається один раз після створення контейнера (через `sh -lc`). Потребує мережевого виходу, записуваного кореня, користувача root.
|
||||
|
||||
**Контейнери типово використовують `network: "none"`** — установіть `"bridge"` (або власну bridge-мережу), якщо агенту потрібен вихідний доступ.
|
||||
`"host"` заблоковано. `"container:<id>"` типово заблоковано, якщо ви явно не встановите
|
||||
`"host"` заблоковано. `"container:<id>"` типово заблоковано, якщо явно не встановити
|
||||
`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` (аварійний режим).
|
||||
|
||||
**Вхідні вкладення** розміщуються в `media/inbound/*` в активному робочому просторі.
|
||||
|
||||
**`docker.binds`** монтує додаткові каталоги хоста; глобальні прив’язки та прив’язки для окремих агентів об’єднуються.
|
||||
**`docker.binds`** монтує додаткові каталоги хоста; глобальні прив’язки та прив’язки для окремого агента об’єднуються.
|
||||
|
||||
**Ізольований браузер у пісочниці** (`sandbox.browser.enabled`): Chromium + CDP у контейнері. URL noVNC вставляється в системний prompt. Не потребує `browser.enabled` в `openclaw.json`.
|
||||
**Sandbox-браузер** (`sandbox.browser.enabled`): Chromium + CDP у контейнері. URL noVNC додається до системного prompt. Не потребує `browser.enabled` в `openclaw.json`.
|
||||
Доступ спостерігача noVNC типово використовує автентифікацію VNC, а OpenClaw видає короткочасний URL із токеном (замість розкриття пароля у спільному URL).
|
||||
|
||||
- `allowHostControl: false` (типово) блокує для ізольованих у пісочниці сеансів націлювання на браузер хоста.
|
||||
- `network` типово має значення `openclaw-sandbox-browser` (виділена bridge-мережа). Установлюйте `bridge` лише тоді, коли явно потрібна глобальна bridge-зв’язність.
|
||||
- `cdpSourceRange` необов’язково обмежує вхід CDP на межі контейнера діапазоном CIDR (наприклад, `172.21.0.1/32`).
|
||||
- `sandbox.browser.binds` монтує додаткові каталоги хоста лише в контейнер браузера пісочниці. Якщо встановлено (включно з `[]`), він замінює `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`
|
||||
@ -910,40 +914,41 @@ Z.AI GLM-4.x моделі автоматично вмикають режим м
|
||||
- `--renderer-process-limit=2`
|
||||
- `--no-zygote`
|
||||
- `--metrics-recording-only`
|
||||
- `--disable-extensions` (типово ввімкнено)
|
||||
- `--disable-extensions` (типово увімкнено)
|
||||
- `--disable-3d-apis`, `--disable-software-rasterizer` і `--disable-gpu`
|
||||
ввімкнені типово та можуть бути вимкнені за допомогою
|
||||
типово увімкнено, і їх можна вимкнути за допомогою
|
||||
`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.
|
||||
типовий ліміт процесів Chromium.
|
||||
- плюс `--no-sandbox`, коли ввімкнено `noSandbox`.
|
||||
- Типові значення є базовим рівнем образу контейнера; використовуйте власний образ браузера з власною
|
||||
- Типові значення є базовою лінією образу контейнера; використовуйте власний образ браузера з власною
|
||||
точкою входу, щоб змінити типові значення контейнера.
|
||||
|
||||
</Accordion>
|
||||
|
||||
Ізоляція браузера в пісочниці та `sandbox.docker.binds` доступні лише для Docker.
|
||||
Ізоляція браузера в sandbox і `sandbox.docker.binds` доступні лише для Docker.
|
||||
|
||||
Збірка образів (із checkout вихідного коду):
|
||||
Збирання образів (із checkout вихідного коду):
|
||||
|
||||
```bash
|
||||
scripts/sandbox-setup.sh # main sandbox image
|
||||
scripts/sandbox-browser-setup.sh # optional browser image
|
||||
```
|
||||
|
||||
Для встановлень npm без checkout вихідного коду див. [Ізоляція в пісочниці § Образи та налаштування](/uk/gateway/sandboxing#images-and-setup) для вбудованих команд `docker build`.
|
||||
Для npm-інсталяцій без checkout вихідного коду див. [Sandboxing § Образи та налаштування](/uk/gateway/sandboxing#images-and-setup) щодо вбудованих команд `docker build`.
|
||||
|
||||
### `agents.list` (перевизначення для кожного агента)
|
||||
### `agents.list` (перевизначення для окремого агента)
|
||||
|
||||
Використовуйте `agents.list[].tts`, щоб надати агенту власного провайдера TTS, голос, модель,
|
||||
стиль або режим автоматичного TTS. Блок агента глибоко об’єднується поверх глобального
|
||||
`messages.tts`, тому спільні облікові дані можуть залишатися в одному місці, а окремі
|
||||
`messages.tts`, тому спільні облікові дані можуть залишатися в одному місці, тоді як окремі
|
||||
агенти перевизначають лише потрібні їм поля голосу або провайдера. Перевизначення активного агента
|
||||
застосовується до автоматичних озвучених відповідей, `/tts audio`, `/tts status` і
|
||||
інструмента агента `tts`. Приклади провайдерів і пріоритет див. у [Перетворення тексту на мовлення](/uk/tools/tts#per-agent-voice-overrides).
|
||||
інструмента агента `tts`. Див. [Перетворення тексту на мовлення](/uk/tools/tts#per-agent-voice-overrides)
|
||||
для прикладів провайдерів і пріоритету.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -997,28 +1002,28 @@ scripts/sandbox-browser-setup.sh # optional browser image
|
||||
}
|
||||
```
|
||||
|
||||
- `id`: стабільний ідентифікатор агента (обов’язково).
|
||||
- `default`: коли встановлено кілька, перший має пріоритет (записується попередження). Якщо не встановлено жодного, типовим є перший запис у списку.
|
||||
- `model`: рядкова форма задає строгий основний модельний профіль для агента без резервної моделі; об’єктна форма `{ primary }` також є строгою, якщо не додати `fallbacks`. Використовуйте `{ primary, fallbacks: [...] }`, щоб увімкнути резервні моделі для цього агента, або `{ primary, fallbacks: [] }`, щоб явно зафіксувати строгу поведінку. Завдання Cron, які перевизначають лише `primary`, усе одно успадковують типові резервні моделі, якщо не встановити `fallbacks: []`.
|
||||
- `params`: параметри потоку для агента, об’єднані поверх вибраного запису моделі в `agents.defaults.models`. Використовуйте це для специфічних перевизначень агента, як-от `cacheRetention`, `temperature` або `maxTokens`, без дублювання всього каталогу моделей.
|
||||
- `tts`: необов’язкові перевизначення перетворення тексту на мовлення для агента. Блок глибоко об’єднується з `messages.tts`, тому тримайте спільні облікові дані провайдера та політику резервування в `messages.tts`, а тут задавайте лише специфічні для персони значення, як-от провайдер, голос, модель, стиль або автоматичний режим.
|
||||
- `skills`: необов’язковий список дозволених Skills для агента. Якщо пропущено, агент успадковує `agents.defaults.skills`, коли це задано; явний список замінює типові значення замість об’єднання, а `[]` означає відсутність Skills.
|
||||
- `thinkingDefault`: необов’язковий типовий рівень мислення для агента (`off | minimal | low | medium | high | xhigh | adaptive | max`). Перевизначає `agents.defaults.thinkingDefault` для цього агента, коли не задано перевизначення для повідомлення або сесії. Вибраний профіль провайдера/моделі визначає, які значення є чинними; для Google Gemini `adaptive` зберігає динамічне мислення, кероване провайдером (`thinkingLevel` пропущено в Gemini 3/3.1, `thinkingBudget: -1` у Gemini 2.5).
|
||||
- `reasoningDefault`: необов’язкова типова видимість міркування для агента (`on | off | stream`). Перевизначає `agents.defaults.reasoningDefault` для цього агента, коли не задано перевизначення міркування для повідомлення або сесії.
|
||||
- `fastModeDefault`: необов’язкове типове значення швидкого режиму для агента (`true | false`). Застосовується, коли не задано перевизначення швидкого режиму для повідомлення або сесії.
|
||||
- `agentRuntime`: необов’язкове низькорівневе перевизначення політики runtime для агента. Використовуйте `{ id: "codex" }`, щоб зробити одного агента лише Codex, тоді як інші агенти зберігають типовий резервний варіант PI у режимі `auto`.
|
||||
- `runtime`: необов’язковий дескриптор runtime для агента. Використовуйте `type: "acp"` з типовими значеннями `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), коли агент має за замовчуванням використовувати сесії ACP harness.
|
||||
- `id`: стабільний id агента (обовʼязково).
|
||||
- `default`: коли задано кілька, перший має перевагу (записується попередження). Якщо не задано жодного, типовим буде перший запис у списку.
|
||||
- `model`: рядкова форма задає строгий основний варіант для окремого агента без резервної моделі; обʼєктна форма `{ primary }` також є строгою, якщо ви не додасте `fallbacks`. Використовуйте `{ primary, fallbacks: [...] }`, щоб увімкнути резервні варіанти для цього агента, або `{ primary, fallbacks: [] }`, щоб явно зафіксувати строгу поведінку. Завдання Cron, які перевизначають лише `primary`, все одно успадковують типові резервні варіанти, якщо ви не задасте `fallbacks: []`.
|
||||
- `params`: параметри потоку для окремого агента, які накладаються на вибраний запис моделі в `agents.defaults.models`. Використовуйте це для специфічних для агента перевизначень, як-от `cacheRetention`, `temperature` або `maxTokens`, без дублювання всього каталогу моделей.
|
||||
- `tts`: необовʼязкові перевизначення перетворення тексту на мовлення для окремого агента. Блок глибоко обʼєднується поверх `messages.tts`, тому зберігайте спільні облікові дані провайдера та політику резервування в `messages.tts`, а тут задавайте лише значення, специфічні для персони, як-от provider, voice, model, style або auto mode.
|
||||
- `skills`: необовʼязковий список дозволених Skills для окремого агента. Якщо пропущено, агент успадковує `agents.defaults.skills`, коли це задано; явний список замінює типові значення замість обʼєднання, а `[]` означає відсутність Skills.
|
||||
- `thinkingDefault`: необовʼязковий типовий рівень мислення для окремого агента (`off | minimal | low | medium | high | xhigh | adaptive | max`). Перевизначає `agents.defaults.thinkingDefault` для цього агента, коли не задано перевизначення для окремого повідомлення або сесії. Вибраний профіль провайдера/моделі визначає, які значення є допустимими; для Google Gemini `adaptive` зберігає динамічне мислення, кероване провайдером (`thinkingLevel` пропущено для Gemini 3/3.1, `thinkingBudget: -1` для Gemini 2.5).
|
||||
- `reasoningDefault`: необовʼязкова типова видимість міркування для окремого агента (`on | off | stream`). Перевизначає `agents.defaults.reasoningDefault` для цього агента, коли не задано перевизначення міркування для окремого повідомлення або сесії.
|
||||
- `fastModeDefault`: необовʼязкове типове значення швидкого режиму для окремого агента (`true | false`). Застосовується, коли не задано перевизначення швидкого режиму для окремого повідомлення або сесії.
|
||||
- `agentRuntime`: необовʼязкове низькорівневе перевизначення політики виконання для окремого агента. Використовуйте `{ id: "codex" }`, щоб зробити одного агента лише Codex, тоді як інші агенти зберігатимуть типовий резервний PI у режимі `auto`.
|
||||
- `runtime`: необовʼязковий дескриптор середовища виконання для окремого агента. Використовуйте `type: "acp"` із типовими значеннями `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), коли агент має типово використовувати сесії ACP harness.
|
||||
- `identity.avatar`: шлях відносно робочого простору, URL `http(s)` або URI `data:`.
|
||||
- `identity` виводить типові значення: `ackReaction` з `emoji`, `mentionPatterns` з `name`/`emoji`.
|
||||
- `subagents.allowAgents`: список дозволених ідентифікаторів агентів для явних цілей `sessions_spawn.agentId` (`["*"]` = будь-який; типово: лише той самий агент). Додайте ідентифікатор запитувача, коли самоспрямовані виклики `agentId` мають бути дозволені.
|
||||
- Запобіжник успадкування пісочниці: якщо сесія запитувача ізольована в пісочниці, `sessions_spawn` відхиляє цілі, які виконувалися б без пісочниці.
|
||||
- `subagents.allowAgents`: список дозволених id агентів для явних цілей `sessions_spawn.agentId` (`["*"]` = будь-який; типово: лише той самий агент). Додайте id запитувача, коли потрібно дозволити самоспрямовані виклики `agentId`.
|
||||
- Запобіжник успадкування пісочниці: якщо сесія запитувача працює в пісочниці, `sessions_spawn` відхиляє цілі, які запускалися б без пісочниці.
|
||||
- `subagents.requireAgentId`: коли true, блокує виклики `sessions_spawn`, які пропускають `agentId` (примушує явний вибір профілю; типово: false).
|
||||
|
||||
---
|
||||
|
||||
## Маршрутизація кількох агентів
|
||||
|
||||
Запускайте кілька ізольованих агентів усередині одного Gateway. Див. [кілька агентів](/uk/concepts/multi-agent).
|
||||
Запускайте кількох ізольованих агентів всередині одного Gateway. Див. [Кілька агентів](/uk/concepts/multi-agent).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -1035,29 +1040,29 @@ scripts/sandbox-browser-setup.sh # optional browser image
|
||||
}
|
||||
```
|
||||
|
||||
### Поля зіставлення прив’язки
|
||||
### Поля зіставлення привʼязки
|
||||
|
||||
- `type` (необов’язково): `route` для звичайної маршрутизації (відсутній тип за замовчуванням означає route), `acp` для постійних прив’язок розмов ACP.
|
||||
- `match.channel` (обов’язково)
|
||||
- `match.accountId` (необов’язково; `*` = будь-який обліковий запис; пропущено = типовий обліковий запис)
|
||||
- `match.peer` (необов’язково; `{ kind: direct|group|channel, id }`)
|
||||
- `match.guildId` / `match.teamId` (необов’язково; залежить від каналу)
|
||||
- `acp` (необов’язково; лише для `type: "acp"`): `{ mode, label, cwd, backend }`
|
||||
- `type` (необовʼязково): `route` для звичайної маршрутизації (відсутній тип типово означає route), `acp` для постійних привʼязок розмов ACP.
|
||||
- `match.channel` (обовʼязково)
|
||||
- `match.accountId` (необовʼязково; `*` = будь-який обліковий запис; пропущено = типовий обліковий запис)
|
||||
- `match.peer` (необовʼязково; `{ kind: direct|group|channel, id }`)
|
||||
- `match.guildId` / `match.teamId` (необовʼязково; залежить від каналу)
|
||||
- `acp` (необовʼязково; лише для `type: "acp"`): `{ mode, label, cwd, backend }`
|
||||
|
||||
**Детермінований порядок зіставлення:**
|
||||
|
||||
1. `match.peer`
|
||||
2. `match.guildId`
|
||||
3. `match.teamId`
|
||||
4. `match.accountId` (точний, без peer/guild/team)
|
||||
4. `match.accountId` (точний збіг, без peer/guild/team)
|
||||
5. `match.accountId: "*"` (для всього каналу)
|
||||
6. Типовий агент
|
||||
|
||||
У межах кожного рівня пріоритет має перший відповідний запис `bindings`.
|
||||
У межах кожного рівня перший відповідний запис `bindings` має перевагу.
|
||||
|
||||
Для записів `type: "acp"` OpenClaw визначає відповідність за точною ідентичністю розмови (`match.channel` + обліковий запис + `match.peer.id`) і не використовує наведений вище рівневий порядок прив’язок маршруту.
|
||||
Для записів `type: "acp"` OpenClaw виконує розвʼязання за точною ідентичністю розмови (`match.channel` + обліковий запис + `match.peer.id`) і не використовує наведений вище порядок рівнів привʼязки маршруту.
|
||||
|
||||
### Профілі доступу для агента
|
||||
### Профілі доступу для окремого агента
|
||||
|
||||
<Accordion title="Повний доступ (без пісочниці)">
|
||||
|
||||
@ -1106,7 +1111,7 @@ scripts/sandbox-browser-setup.sh # optional browser image
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="No filesystem access (messaging only)">
|
||||
<Accordion title="Без доступу до файлової системи (лише обмін повідомленнями)">
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -1152,7 +1157,7 @@ scripts/sandbox-browser-setup.sh # optional browser image
|
||||
|
||||
</Accordion>
|
||||
|
||||
Див. [Багатоагентна пісочниця й інструменти](/uk/tools/multi-agent-sandbox-tools), щоб дізнатися подробиці про пріоритетність.
|
||||
Див. [Пісочниця та інструменти для кількох агентів](/uk/tools/multi-agent-sandbox-tools), щоб дізнатися подробиці пріоритетності.
|
||||
|
||||
---
|
||||
|
||||
@ -1201,36 +1206,36 @@ scripts/sandbox-browser-setup.sh # optional browser image
|
||||
}
|
||||
```
|
||||
|
||||
<Accordion title="Session field details">
|
||||
<Accordion title="Відомості про поля сесії">
|
||||
|
||||
- **`scope`**: базова стратегія групування сесій для контекстів групових чатів.
|
||||
- **`scope`**: базова стратегія групування сесій для контекстів групового чату.
|
||||
- `per-sender` (за замовчуванням): кожен відправник отримує ізольовану сесію в межах контексту каналу.
|
||||
- `global`: усі учасники в контексті каналу спільно використовують одну сесію (використовуйте лише коли потрібен спільний контекст).
|
||||
- **`dmScope`**: як групуються приватні повідомлення.
|
||||
- `main`: усі приватні повідомлення спільно використовують основну сесію.
|
||||
- `per-peer`: ізолювати за id відправника між каналами.
|
||||
- `per-channel-peer`: ізолювати за каналом + відправником (рекомендовано для багатокористувацьких вхідних скриньок).
|
||||
- `global`: усі учасники в контексті каналу спільно використовують одну сесію (використовуйте лише тоді, коли потрібен спільний контекст).
|
||||
- **`dmScope`**: як групуються особисті повідомлення.
|
||||
- `main`: усі особисті повідомлення використовують головну сесію.
|
||||
- `per-peer`: ізолювати за ідентифікатором відправника між каналами.
|
||||
- `per-channel-peer`: ізолювати за каналом + відправником (рекомендовано для скриньок вхідних повідомлень із кількома користувачами).
|
||||
- `per-account-channel-peer`: ізолювати за обліковим записом + каналом + відправником (рекомендовано для кількох облікових записів).
|
||||
- **`identityLinks`**: зіставляє канонічні id з peers із префіксом провайдера для спільного використання сесій між каналами. Команди докування, як-от `/dock_discord`, використовують ту саму мапу, щоб перемкнути маршрут відповіді активної сесії на інший пов’язаний peer каналу; див. [Докування каналів](/uk/concepts/channel-docking).
|
||||
- **`reset`**: основна політика скидання. `daily` скидає о `atHour` за місцевим часом; `idle` скидає після `idleMinutes`. Якщо налаштовано обидва, спрацьовує те, що закінчиться першим. Свіжість щоденного скидання використовує `sessionStartedAt` рядка сесії; свіжість скидання через бездіяльність використовує `lastInteractionAt`. Фонові/системні записи подій, як-от heartbeat, пробудження cron, сповіщення exec і службові записи gateway, можуть оновлювати `updatedAt`, але вони не підтримують свіжість сесій daily/idle.
|
||||
- **`resetByType`**: перевизначення за типом (`direct`, `group`, `thread`). Застаріле `dm` приймається як псевдонім для `direct`.
|
||||
- **`mainKey`**: застаріле поле. Runtime завжди використовує `"main"` для основного кошика прямого чату.
|
||||
- **`agentToAgent.maxPingPongTurns`**: максимальна кількість взаємних ходів відповідей між агентами під час обмінів agent-to-agent (ціле число, діапазон: `0`–`5`). `0` вимикає ланцюжок ping-pong.
|
||||
- **`sendPolicy`**: зіставлення за `channel`, `chatType` (`direct|group|channel`, із застарілим псевдонімом `dm`), `keyPrefix` або `rawKeyPrefix`. Перша заборона перемагає.
|
||||
- **`maintenance`**: елементи керування очищенням і зберіганням сховища сесій.
|
||||
- **`identityLinks`**: зіставляє канонічні ідентифікатори з peer-адресатами з префіксом провайдера для спільного використання сесій між каналами. Команди Dock, як-от `/dock_discord`, використовують те саме зіставлення, щоб перемкнути маршрут відповіді активної сесії на іншого пов’язаного peer-адресата каналу; див. [прикріплення каналів](/uk/concepts/channel-docking).
|
||||
- **`reset`**: основна політика скидання. `daily` скидає о `atHour` за місцевим часом; `idle` скидає після `idleMinutes`. Якщо налаштовано обидва варіанти, спрацьовує той, що настане першим. Свіжість щоденного скидання використовує `sessionStartedAt` рядка сесії; свіжість скидання за бездіяльністю використовує `lastInteractionAt`. Фонові/системні записи подій, як-от heartbeat, пробудження Cron, сповіщення exec і службові записи Gateway, можуть оновлювати `updatedAt`, але вони не підтримують свіжість щоденних сесій або сесій за бездіяльністю.
|
||||
- **`resetByType`**: перевизначення за типом (`direct`, `group`, `thread`). Застарілий `dm` приймається як псевдонім для `direct`.
|
||||
- **`mainKey`**: застаріле поле. Runtime завжди використовує `"main"` для головного кошика прямого чату.
|
||||
- **`agentToAgent.maxPingPongTurns`**: максимальна кількість зворотних відповідей між агентами під час обмінів agent-to-agent (ціле число, діапазон: `0`–`5`). `0` вимикає ланцюжок ping-pong.
|
||||
- **`sendPolicy`**: зіставлення за `channel`, `chatType` (`direct|group|channel`, із застарілим псевдонімом `dm`), `keyPrefix` або `rawKeyPrefix`. Перша заборона має пріоритет.
|
||||
- **`maintenance`**: очищення сховища сесій + засоби керування збереженням.
|
||||
- `mode`: `warn` лише виводить попередження; `enforce` застосовує очищення.
|
||||
- `pruneAfter`: віковий поріг для застарілих записів (за замовчуванням `30d`).
|
||||
- `maxEntries`: максимальна кількість записів у `sessions.json` (за замовчуванням `500`). Runtime записує пакетне очищення з невеликим буфером high-water для обмежень виробничого розміру; `openclaw sessions cleanup --enforce` застосовує обмеження негайно.
|
||||
- `rotateBytes`: застаріле та ігнорується; `openclaw doctor --fix` видаляє його зі старіших конфігурацій.
|
||||
- `resetArchiveRetention`: строк зберігання архівів транскриптів `*.reset.<timestamp>`. За замовчуванням дорівнює `pruneAfter`; встановіть `false`, щоб вимкнути.
|
||||
- `maxDiskBytes`: необов’язковий дисковий бюджет каталогу сесій. У режимі `warn` журналює попередження; у режимі `enforce` спершу видаляє найстаріші артефакти/сесії.
|
||||
- `maxEntries`: максимальна кількість записів у `sessions.json` (за замовчуванням `500`). Runtime записує пакетне очищення з невеликим буфером верхньої межі для лімітів виробничого розміру; `openclaw sessions cleanup --enforce` застосовує ліміт негайно.
|
||||
- `rotateBytes`: застаріло та ігнорується; `openclaw doctor --fix` видаляє його зі старіших конфігурацій.
|
||||
- `resetArchiveRetention`: збереження архівів транскриптів `*.reset.<timestamp>`. За замовчуванням дорівнює `pruneAfter`; установіть `false`, щоб вимкнути.
|
||||
- `maxDiskBytes`: необов’язковий бюджет диска каталогу сесій. У режимі `warn` він записує попередження в журнал; у режимі `enforce` спершу видаляє найстаріші артефакти/сесії.
|
||||
- `highWaterBytes`: необов’язкова ціль після очищення бюджету. За замовчуванням дорівнює `80%` від `maxDiskBytes`.
|
||||
- **`threadBindings`**: глобальні значення за замовчуванням для функцій сесій, прив’язаних до тредів.
|
||||
- `enabled`: основний перемикач за замовчуванням (провайдери можуть перевизначати; Discord використовує `channels.discord.threadBindings.enabled`)
|
||||
- `idleHours`: авто-зняття фокусу через бездіяльність за замовчуванням у годинах (`0` вимикає; провайдери можуть перевизначати)
|
||||
- **`threadBindings`**: глобальні значення за замовчуванням для функцій сесій, прив’язаних до потоків.
|
||||
- `enabled`: головний перемикач за замовчуванням (провайдери можуть перевизначати; Discord використовує `channels.discord.threadBindings.enabled`)
|
||||
- `idleHours`: автоусунення фокуса за замовчуванням після бездіяльності в годинах (`0` вимикає; провайдери можуть перевизначати)
|
||||
- `maxAgeHours`: жорсткий максимальний вік за замовчуванням у годинах (`0` вимикає; провайдери можуть перевизначати)
|
||||
- `spawnSessions`: шлюз за замовчуванням для створення прив’язаних до тредів робочих сесій із `sessions_spawn` і породжень тредів ACP. За замовчуванням `true`, коли прив’язки тредів увімкнені; провайдери/облікові записи можуть перевизначати.
|
||||
- `defaultSpawnContext`: рідний контекст subagent за замовчуванням для породжень, прив’язаних до тредів (`"fork"` або `"isolated"`). За замовчуванням `"fork"`.
|
||||
- `spawnSessions`: шлюз за замовчуванням для створення робочих сесій, прив’язаних до потоків, із `sessions_spawn` і породжень потоків ACP. За замовчуванням дорівнює `true`, коли прив’язки потоків увімкнені; провайдери/облікові записи можуть перевизначати.
|
||||
- `defaultSpawnContext`: власний контекст підлеглого агента за замовчуванням для породжень, прив’язаних до потоків (`"fork"` або `"isolated"`). За замовчуванням дорівнює `"fork"`.
|
||||
|
||||
</Accordion>
|
||||
|
||||
@ -1268,36 +1273,36 @@ scripts/sandbox-browser-setup.sh # optional browser image
|
||||
|
||||
### Префікс відповіді
|
||||
|
||||
Перевизначення для каналу/облікового запису: `channels.<channel>.responsePrefix`, `channels.<channel>.accounts.<id>.responsePrefix`.
|
||||
Перевизначення для окремого каналу/облікового запису: `channels.<channel>.responsePrefix`, `channels.<channel>.accounts.<id>.responsePrefix`.
|
||||
|
||||
Визначення (перемагає найконкретніше): обліковий запис → канал → глобальне. `""` вимикає та зупиняє каскад. `"auto"` виводить `[{identity.name}]`.
|
||||
Визначення (перемагає найконкретніше): обліковий запис → канал → глобальне. `""` вимикає і зупиняє каскад. `"auto"` виводить `[{identity.name}]`.
|
||||
|
||||
**Змінні шаблону:**
|
||||
|
||||
| Змінна | Опис | Приклад |
|
||||
| ---------------- | ---------------------------- | --------------------------- |
|
||||
| `{model}` | Коротка назва моделі | `claude-opus-4-6` |
|
||||
| `{modelFull}` | Повний ідентифікатор моделі | `anthropic/claude-opus-4-6` |
|
||||
| `{provider}` | Назва провайдера | `anthropic` |
|
||||
| `{thinkingLevel}` | Поточний рівень мислення | `high`, `low`, `off` |
|
||||
| `{identity.name}` | Ім'я ідентичності агента | (те саме, що `"auto"`) |
|
||||
| Змінна | Опис | Приклад |
|
||||
| ----------------- | ----------------------------- | --------------------------- |
|
||||
| `{model}` | Коротка назва моделі | `claude-opus-4-6` |
|
||||
| `{modelFull}` | Повний ідентифікатор моделі | `anthropic/claude-opus-4-6` |
|
||||
| `{provider}` | Назва постачальника | `anthropic` |
|
||||
| `{thinkingLevel}` | Поточний рівень мислення | `high`, `low`, `off` |
|
||||
| `{identity.name}` | Ім’я ідентичності агента | (те саме, що й `"auto"`) |
|
||||
|
||||
Змінні не чутливі до регістру. `{think}` є псевдонімом для `{thinkingLevel}`.
|
||||
|
||||
### Реакція підтвердження
|
||||
|
||||
- За замовчуванням використовується `identity.emoji` активного агента, інакше `"👀"`. Установіть `""`, щоб вимкнути.
|
||||
- Перевизначення для каналу: `channels.<channel>.ackReaction`, `channels.<channel>.accounts.<id>.ackReaction`.
|
||||
- Порядок визначення: обліковий запис → канал → `messages.ackReaction` → резервна ідентичність.
|
||||
- За замовчуванням використовується `identity.emoji` активного агента, інакше `"👀"`. Задайте `""`, щоб вимкнути.
|
||||
- Перевизначення для окремого каналу: `channels.<channel>.ackReaction`, `channels.<channel>.accounts.<id>.ackReaction`.
|
||||
- Порядок визначення: обліковий запис → канал → `messages.ackReaction` → запасний варіант ідентичності.
|
||||
- Область дії: `group-mentions` (за замовчуванням), `group-all`, `direct`, `all`.
|
||||
- `removeAckAfterReply`: прибирає підтвердження після відповіді в каналах із підтримкою реакцій, як-от Slack, Discord, Telegram, WhatsApp і BlueBubbles.
|
||||
- `removeAckAfterReply`: видаляє підтвердження після відповіді в каналах, які підтримують реакції, як-от Slack, Discord, Telegram, WhatsApp і BlueBubbles.
|
||||
- `messages.statusReactions.enabled`: вмикає реакції статусу життєвого циклу в Slack, Discord і Telegram.
|
||||
У Slack і Discord не задане значення залишає реакції статусу ввімкненими, коли активні реакції підтвердження.
|
||||
У Telegram явно встановіть `true`, щоб увімкнути реакції статусу життєвого циклу.
|
||||
У Slack і Discord, якщо значення не задано, реакції статусу залишаються ввімкненими, коли активні реакції підтвердження.
|
||||
У Telegram явно задайте `true`, щоб увімкнути реакції статусу життєвого циклу.
|
||||
|
||||
### Дебаунс вхідних повідомлень
|
||||
### Вхідне усунення тремтіння
|
||||
|
||||
Об'єднує швидкі текстові повідомлення від того самого відправника в один хід агента. Медіа/вкладення надсилаються негайно. Керівні команди обходять дебаунс.
|
||||
Об’єднує швидкі текстові повідомлення від того самого відправника в один хід агента. Медіа/вкладення негайно скидають буфер. Керівні команди обходять усунення тремтіння.
|
||||
|
||||
### TTS (перетворення тексту на мовлення)
|
||||
|
||||
@ -1347,19 +1352,19 @@ scripts/sandbox-browser-setup.sh # optional browser image
|
||||
}
|
||||
```
|
||||
|
||||
- `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. Застарілий ідентифікатор провайдера `edge` приймається як псевдонім для `microsoft`.
|
||||
- `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`, додайте кожен TTS provider plugin, який хочете використовувати, наприклад `microsoft` для Edge TTS. Застарілий ідентифікатор постачальника `edge` приймається як псевдонім для `microsoft`.
|
||||
- `providers.openai.baseUrl` перевизначає кінцеву точку OpenAI TTS. Порядок визначення: конфігурація, потім `OPENAI_TTS_BASE_URL`, потім `https://api.openai.com/v1`.
|
||||
- Коли `providers.openai.baseUrl` вказує на кінцеву точку не OpenAI, OpenClaw розглядає її як OpenAI-сумісний TTS-сервер і послаблює перевірку моделі/голосу.
|
||||
- Коли `providers.openai.baseUrl` вказує на кінцеву точку, що не належить OpenAI, OpenClaw розглядає її як OpenAI-сумісний TTS-сервер і послаблює перевірку моделі/голосу.
|
||||
|
||||
---
|
||||
|
||||
## Розмова
|
||||
## Talk
|
||||
|
||||
Типові значення для режиму розмови (macOS/iOS/Android).
|
||||
Типові значення для режиму Talk (macOS/iOS/Android).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -1388,20 +1393,20 @@ scripts/sandbox-browser-setup.sh # optional browser image
|
||||
}
|
||||
```
|
||||
|
||||
- `talk.provider` має відповідати ключу в `talk.providers`, коли налаштовано кілька провайдерів розмови.
|
||||
- Застарілі плоскі ключі розмови (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) призначені лише для сумісності та автоматично мігруються в `talk.providers.<provider>`.
|
||||
- Ідентифікатори голосів мають резервні значення `ELEVENLABS_VOICE_ID` або `SAG_VOICE_ID`.
|
||||
- `providers.*.apiKey` приймає відкриті текстові рядки або об'єкти SecretRef.
|
||||
- Резервне значення `ELEVENLABS_API_KEY` застосовується лише тоді, коли API-ключ розмови не налаштовано.
|
||||
- `providers.*.voiceAliases` дає змогу директивам розмови використовувати зручні назви.
|
||||
- `providers.mlx.modelId` вибирає репозиторій Hugging Face, який використовує локальний допоміжний засіб MLX для macOS. Якщо пропущено, macOS використовує `mlx-community/Soprano-80M-bf16`.
|
||||
- Відтворення MLX у macOS виконується через вбудований допоміжний засіб `openclaw-mlx-tts`, якщо він наявний, або через виконуваний файл у `PATH`; `OPENCLAW_MLX_TTS_BIN` перевизначає шлях до допоміжного засобу для розробки.
|
||||
- `speechLocale` задає ідентифікатор локалі BCP 47, який використовує розпізнавання мовлення розмови в iOS/macOS. Залиште незаданим, щоб використовувати типове значення пристрою.
|
||||
- `silenceTimeoutMs` керує тим, як довго режим розмови чекає після тиші користувача, перш ніж надіслати стенограму. Незадане значення зберігає типове для платформи вікно паузи (`700 ms on macOS and Android, 900 ms on iOS`).
|
||||
- `talk.provider` має відповідати ключу в `talk.providers`, коли налаштовано кілька постачальників Talk.
|
||||
- Застарілі пласкі ключі Talk (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) призначені лише для сумісності й автоматично мігруються в `talk.providers.<provider>`.
|
||||
- Ідентифікатори голосів використовують запасні значення `ELEVENLABS_VOICE_ID` або `SAG_VOICE_ID`.
|
||||
- `providers.*.apiKey` приймає текстові рядки або об’єкти SecretRef.
|
||||
- Запасне значення `ELEVENLABS_API_KEY` застосовується лише тоді, коли не налаштовано API-ключ Talk.
|
||||
- `providers.*.voiceAliases` дає директивам Talk змогу використовувати зручні назви.
|
||||
- `providers.mlx.modelId` вибирає репозиторій Hugging Face, який використовує локальний допоміжний компонент MLX у macOS. Якщо пропущено, macOS використовує `mlx-community/Soprano-80M-bf16`.
|
||||
- Відтворення macOS MLX працює через вбудований допоміжний компонент `openclaw-mlx-tts`, коли він доступний, або через виконуваний файл у `PATH`; `OPENCLAW_MLX_TTS_BIN` перевизначає шлях до допоміжного компонента для розробки.
|
||||
- `speechLocale` задає ідентифікатор локалі BCP 47, який використовується розпізнаванням мовлення Talk в iOS/macOS. Не задавайте, щоб використовувати стандартне значення пристрою.
|
||||
- `silenceTimeoutMs` керує тим, скільки режим Talk чекає після мовчання користувача, перш ніж надіслати транскрипт. Якщо не задано, зберігається стандартне для платформи вікно паузи (`700 ms on macOS and Android, 900 ms on iOS`).
|
||||
|
||||
---
|
||||
|
||||
## Пов'язане
|
||||
## Пов’язане
|
||||
|
||||
- [Довідник конфігурації](/uk/gateway/configuration-reference) — усі інші ключі конфігурації
|
||||
- [Конфігурація](/uk/gateway/configuration) — поширені завдання та швидке налаштування
|
||||
|
||||
@ -4,69 +4,70 @@ read_when:
|
||||
summary: Статичний хост Loopback WebChat і використання Gateway WS для інтерфейсу чату
|
||||
title: Вебчат
|
||||
x-i18n:
|
||||
generated_at: "2026-05-03T04:33:34Z"
|
||||
generated_at: "2026-05-04T00:38:18Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 48024e58259901c6feb67168c5c1ce32f46b8ad9b6f4511e56d2000478a3ed60
|
||||
source_hash: 58f5a19344a366a02985ef697444fa0c3636fece06931c7fa6dbe288e6c398cd
|
||||
source_path: web/webchat.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Стан: чат-інтерфейс SwiftUI для macOS/iOS напряму взаємодіє з Gateway WebSocket.
|
||||
Стан: інтерфейс чату SwiftUI для macOS/iOS напряму взаємодіє з Gateway WebSocket.
|
||||
|
||||
## Що це таке
|
||||
|
||||
- Нативний чат-інтерфейс для шлюзу (без вбудованого браузера і без локального статичного сервера).
|
||||
- Нативний інтерфейс чату для gateway (без вбудованого браузера й без локального статичного сервера).
|
||||
- Використовує ті самі сесії та правила маршрутизації, що й інші канали.
|
||||
- Детермінована маршрутизація: відповіді завжди повертаються до WebChat.
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
1. Запустіть шлюз.
|
||||
1. Запустіть gateway.
|
||||
2. Відкрийте інтерфейс WebChat (застосунок macOS/iOS) або вкладку чату Control UI.
|
||||
3. Переконайтеся, що налаштовано чинний шлях автентифікації шлюзу (`shared-secret` за замовчуванням,
|
||||
3. Переконайтеся, що налаштовано чинний шлях автентифікації gateway (типово shared-secret,
|
||||
навіть на loopback).
|
||||
|
||||
## Як це працює (поведінка)
|
||||
|
||||
- UI підключається до Gateway WebSocket і використовує `chat.history`, `chat.send` та `chat.inject`.
|
||||
- `chat.history` обмежено для стабільності: Gateway може обрізати довгі текстові поля, пропускати важкі метадані та замінювати завеликі записи на `[chat.history omitted: message too large]`.
|
||||
- `chat.history` дотримується активної гілки транскрипту для сучасних append-only файлів сесій, тому покинуті гілки перезапису та замінені копії промптів не відображаються у WebChat.
|
||||
- Записи Compaction відображаються як явний розділювач ущільненої історії. Розділювач пояснює, що попередні ходи збережено в контрольній точці, і посилається на елементи керування контрольними точками сесій, де оператори можуть створити гілку або відновити подання до Compaction, якщо їхні дозволи це допускають.
|
||||
- Control UI запам’ятовує базовий `sessionId` Gateway, повернений `chat.history`, і додає його до наступних викликів `chat.send`, тому повторні підключення та оновлення сторінки продовжують ту саму збережену розмову, якщо користувач не запускає або не скидає сесію.
|
||||
- Control UI об’єднує дублікати відправлень у польоті для тієї самої сесії, повідомлення та вкладень перед створенням нового ідентифікатора запуску `chat.send`; Gateway усе одно дедуплікує повторні запити, які повторно використовують той самий ключ ідемпотентності.
|
||||
- `chat.history` також нормалізується для відображення: контекст OpenClaw лише часу виконання,
|
||||
обгортки вхідних конвертів, вбудовані теги директив доставлення
|
||||
на кшталт `[[reply_to_*]]` і `[[audio_as_voice]]`, plain-text XML-навантаження викликів інструментів
|
||||
(зокрема `<tool_call>...</tool_call>`,
|
||||
- `chat.history` дотримується активної гілки транскрипту для сучасних append-only файлів сесій, тому покинуті гілки переписування й замінені копії запитів не відображаються у WebChat.
|
||||
- Записи Compaction відображаються як явний роздільник ущільненої історії. Роздільник пояснює, що попередні ходи збережено в checkpoint, і посилається на елементи керування checkpoint сесій, де оператори можуть створити гілку або відновити подання до Compaction, якщо це дозволяють їхні права.
|
||||
- Control UI запам’ятовує базовий `sessionId` Gateway, повернений `chat.history`, і додає його до наступних викликів `chat.send`, тому повторні підключення й оновлення сторінки продовжують ту саму збережену розмову, якщо користувач не почне або не скине сесію.
|
||||
- Control UI об’єднує дублікати надісланих запитів у процесі виконання для тієї самої сесії, повідомлення й вкладень перед створенням нового run id для `chat.send`; Gateway усе одно усуває дублікати повторних запитів, які повторно використовують той самий ключ ідемпотентності.
|
||||
- Файли запуску робочого простору та інструкції `BOOTSTRAP.md`, що очікують на виконання, передаються через Project Context системного prompt агента, а не копіюються в повідомлення користувача WebChat. Обрізання bootstrap додає лише стислий системний prompt із повідомленням про відновлення; докладні лічильники та параметри конфігурації залишаються на діагностичних поверхнях.
|
||||
- `chat.history` також нормалізується для відображення: runtime-only контекст OpenClaw,
|
||||
обгортки вхідних конвертів, вбудовані теги директив доставки
|
||||
на кшталт `[[reply_to_*]]` і `[[audio_as_voice]]`, XML-навантаження
|
||||
викликів інструментів у звичайному тексті (зокрема `<tool_call>...</tool_call>`,
|
||||
`<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`,
|
||||
`<function_calls>...</function_calls>` та обрізані блоки викликів інструментів), а також
|
||||
витеклі ASCII/повноширинні токени керування моделлю вилучаються з видимого тексту,
|
||||
а записи асистента, увесь видимий текст яких є лише точним silent
|
||||
`<function_calls>...</function_calls>` і обрізані блоки викликів інструментів), а також
|
||||
просочені ASCII/full-width токени керування моделлю вилучаються з видимого тексту,
|
||||
а записи асистента, увесь видимий текст яких є лише точним беззвучним
|
||||
токеном `NO_REPLY` / `no_reply`, пропускаються.
|
||||
- Навантаження відповідей, позначені як міркування (`isReasoning: true`), виключаються з вмісту асистента WebChat, тексту повторного відтворення транскрипту та аудіоблоків, тому навантаження лише для мислення не з’являються як видимі повідомлення асистента або відтворюване аудіо.
|
||||
- `chat.inject` додає нотатку асистента безпосередньо до транскрипту та транслює її в UI (без запуску агента).
|
||||
- Перервані запуски можуть залишати частковий вивід асистента видимим в UI.
|
||||
- Навантаження відповідей із прапорцем reasoning (`isReasoning: true`) виключаються з вмісту асистента у WebChat, тексту повторного відтворення транскрипту та блоків аудіовмісту, тому thinking-only навантаження не з’являються як видимі повідомлення асистента чи відтворюване аудіо.
|
||||
- `chat.inject` додає нотатку асистента безпосередньо до транскрипту й транслює її в UI (без запуску агента).
|
||||
- Перервані запуски можуть зберігати частковий вивід асистента видимим в UI.
|
||||
- Gateway зберігає перерваний частковий текст асистента в історії транскрипту, коли існує буферизований вивід, і позначає ці записи метаданими переривання.
|
||||
- Історія завжди отримується зі шлюзу (без локального спостереження за файлами).
|
||||
- Якщо шлюз недоступний, WebChat доступний лише для читання.
|
||||
- Історія завжди отримується з gateway (без локального спостереження за файлами).
|
||||
- Якщо gateway недоступний, WebChat працює лише для читання.
|
||||
|
||||
## Панель інструментів агентів Control UI
|
||||
|
||||
- Панель інструментів Control UI `/agents` має два окремі подання:
|
||||
- **Доступні прямо зараз** використовує `tools.effective(sessionKey=...)` і показує, що поточна
|
||||
сесія фактично може використовувати під час виконання, зокрема інструменти ядра, Plugin і каналу.
|
||||
- **Конфігурація інструментів** використовує `tools.catalog` і зосереджується на профілях, перевизначеннях і
|
||||
- Панель Tools у Control UI `/agents` має два окремі подання:
|
||||
- **Available Right Now** використовує `tools.effective(sessionKey=...)` і показує, що поточна
|
||||
сесія справді може використовувати під час виконання, зокрема інструменти core, plugin та інструменти, що належать каналу.
|
||||
- **Tool Configuration** використовує `tools.catalog` і зосереджується на профілях, перевизначеннях і
|
||||
семантиці каталогу.
|
||||
- Доступність під час виконання прив’язана до сесії. Перемикання сесій для того самого агента може змінити
|
||||
список **Доступні прямо зараз**.
|
||||
- Редактор конфігурації не означає доступність під час виконання; ефективний доступ усе одно дотримується пріоритету політик
|
||||
(`allow`/`deny`, перевизначення для окремих агентів і провайдерів/каналів).
|
||||
- Доступність під час виконання обмежена сесією. Перемикання сесій на тому самому агенті може змінити
|
||||
список **Available Right Now**.
|
||||
- Редактор конфігурації не означає доступність під час виконання; ефективний доступ і далі відповідає пріоритету політик
|
||||
(`allow`/`deny`, перевизначення для окремого агента та provider/channel).
|
||||
|
||||
## Віддалене використання
|
||||
|
||||
- Віддалений режим тунелює Gateway WebSocket через SSH/Tailscale.
|
||||
- Вам не потрібно запускати окремий сервер WebChat.
|
||||
- Віддалений режим тунелює gateway WebSocket через SSH/Tailscale.
|
||||
- Не потрібно запускати окремий сервер WebChat.
|
||||
|
||||
## Довідник конфігурації (WebChat)
|
||||
|
||||
@ -74,20 +75,20 @@ x-i18n:
|
||||
|
||||
Параметри WebChat:
|
||||
|
||||
- `gateway.webchat.chatHistoryMaxChars`: максимальна кількість символів для текстових полів у відповідях `chat.history`. Коли запис транскрипту перевищує це обмеження, Gateway обрізає довгі текстові поля та може замінити завеликі повідомлення заповнювачем. Клієнт також може надіслати `maxChars` для окремого запиту, щоб перевизначити це значення за замовчуванням для одного виклику `chat.history`.
|
||||
- `gateway.webchat.chatHistoryMaxChars`: максимальна кількість символів для текстових полів у відповідях `chat.history`. Коли запис транскрипту перевищує цей ліміт, Gateway обрізає довгі текстові поля й може замінити завеликі повідомлення placeholder. Клієнт також може надіслати `maxChars` для окремого запиту, щоб перевизначити це типове значення для одного виклику `chat.history`.
|
||||
|
||||
Пов’язані глобальні параметри:
|
||||
|
||||
- `gateway.port`, `gateway.bind`: хост/порт WebSocket.
|
||||
- `gateway.auth.mode`, `gateway.auth.token`, `gateway.auth.password`:
|
||||
автентифікація WebSocket зі спільним секретом.
|
||||
автентифікація WebSocket через shared-secret.
|
||||
- `gateway.auth.allowTailscale`: вкладка чату браузерного Control UI може використовувати заголовки ідентичності Tailscale
|
||||
Serve, коли це ввімкнено.
|
||||
- `gateway.auth.mode: "trusted-proxy"`: автентифікація через зворотний проксі для браузерних клієнтів за identity-aware **non-loopback** джерелом проксі (див. [автентифікація довіреного проксі](/uk/gateway/trusted-proxy-auth)).
|
||||
- `gateway.remote.url`, `gateway.remote.token`, `gateway.remote.password`: ціль віддаленого шлюзу.
|
||||
- `gateway.auth.mode: "trusted-proxy"`: автентифікація reverse-proxy для браузерних клієнтів за identity-aware джерелом proxy **non-loopback** (див. [Автентифікація Trusted Proxy](/uk/gateway/trusted-proxy-auth)).
|
||||
- `gateway.remote.url`, `gateway.remote.token`, `gateway.remote.password`: ціль віддаленого gateway.
|
||||
- `session.*`: сховище сесій і типові значення основного ключа.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Control UI](/uk/web/control-ui)
|
||||
- [Панель моніторингу](/uk/web/dashboard)
|
||||
- [Dashboard](/uk/web/dashboard)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user