From f43278c7dec1ea21e7112d29d5d8db98b0534a71 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Mon, 20 Apr 2026 04:45:14 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/channels/telegram.md | 679 ++++++------ docs/uk/help/faq.md | 1978 +++++++++++++++++----------------- 2 files changed, 1328 insertions(+), 1329 deletions(-) diff --git a/docs/uk/channels/telegram.md b/docs/uk/channels/telegram.md index 3918b0c70..489d9c72d 100644 --- a/docs/uk/channels/telegram.md +++ b/docs/uk/channels/telegram.md @@ -1,30 +1,30 @@ --- read_when: - - Робота над функціями Telegram або вебхуками -summary: Статус підтримки Telegram bot, можливості та конфігурація + - Робота над функціями Telegram або Webhook'ами +summary: Статус підтримки бота Telegram, можливості та налаштування title: Telegram x-i18n: - generated_at: "2026-04-05T18:01:02Z" + generated_at: "2026-04-20T04:35:13Z" model: gpt-5.4 provider: openai - source_hash: 39fbf328375fbc5d08ec2e3eed58b19ee0afa102010ecbc02e074a310ced157e + source_hash: b9903fae98bca0c345aa86d5c29015539c375442524a34d26bd28181470b8477 source_path: channels/telegram.md workflow: 15 --- # Telegram (Bot API) -Статус: готово до продакшну для DM ботів + груп через grammY. Long polling — типовий режим; webhook-режим необов’язковий. +Статус: готовий до продакшн-використання для DM бота + груп через grammY. Довге опитування є режимом за замовчуванням; режим Webhook є необов’язковим. - - Типова політика DM для Telegram — pairing. + + Політика DM за замовчуванням для Telegram — сполучення. - - Діагностика між каналами та сценарії відновлення. + + Міжканальна діагностика та сценарії відновлення. - - Повні шаблони та приклади конфігурації каналів. + + Повні шаблони та приклади конфігурації каналу. @@ -32,7 +32,7 @@ x-i18n: - Відкрийте Telegram і почніть чат з **@BotFather** (переконайтеся, що handle точно `@BotFather`). + Відкрийте Telegram і почніть чат із **@BotFather** (переконайтеся, що це саме `@BotFather`). Виконайте `/newbot`, дотримуйтеся підказок і збережіть токен. @@ -53,12 +53,12 @@ x-i18n: } ``` - Резервне значення з Env: `TELEGRAM_BOT_TOKEN=...` (лише для типового облікового запису). + Резервний варіант через env: `TELEGRAM_BOT_TOKEN=...` (лише для облікового запису за замовчуванням). Telegram **не** використовує `openclaw channels login telegram`; налаштуйте токен у config/env, а потім запустіть gateway. - + ```bash openclaw gateway @@ -66,7 +66,7 @@ openclaw pairing list telegram openclaw pairing approve telegram ``` - Коди pairing дійсні 1 годину. + Коди сполучення діють 1 годину. @@ -76,63 +76,63 @@ openclaw pairing approve telegram -Порядок визначення токена враховує обліковий запис. На практиці значення з config мають пріоритет над резервним значенням з env, а `TELEGRAM_BOT_TOKEN` застосовується лише до типового облікового запису. +Порядок визначення токена враховує обліковий запис. На практиці значення з config мають пріоритет над резервним варіантом через env, а `TELEGRAM_BOT_TOKEN` застосовується лише до облікового запису за замовчуванням. ## Налаштування на боці Telegram - Telegram bot типово працюють у **Privacy Mode**, що обмежує, які повідомлення з груп вони отримують. + За замовчуванням Telegram-боти працюють у **Privacy Mode**, який обмежує, які повідомлення з груп вони отримують. - Якщо бот має бачити всі повідомлення групи, виконайте одну з дій: + Якщо бот має бачити всі повідомлення групи, зробіть одне з такого: - вимкніть режим приватності через `/setprivacy`, або - зробіть бота адміністратором групи. - Після перемикання режиму приватності видаліть бота з кожної групи й додайте знову, щоб Telegram застосував зміну. + Після зміни режиму приватності видаліть бота й знову додайте його в кожну групу, щоб Telegram застосував зміну. - + Статус адміністратора керується в налаштуваннях групи Telegram. - Боти-адміністратори отримують усі повідомлення групи, що корисно для постійної поведінки в групі. + Боти-адміністратори отримують усі повідомлення групи, що корисно для постійно активної поведінки в групі. - - `/setjoingroups`, щоб дозволити/заборонити додавання до груп - - `/setprivacy` для поведінки видимості в групах + - `/setjoingroups` щоб дозволити/заборонити додавання в групи + - `/setprivacy` для керування видимістю в групах -## Керування доступом і активація +## Контроль доступу та активація - `channels.telegram.dmPolicy` керує доступом до особистих повідомлень: + `channels.telegram.dmPolicy` керує доступом до прямих повідомлень: - - `pairing` (типово) - - `allowlist` (потрібен щонайменше один ID відправника в `allowFrom`) + - `pairing` (за замовчуванням) + - `allowlist` (потрібен принаймні один ID відправника в `allowFrom`) - `open` (потрібно, щоб `allowFrom` містив `"*"`) - `disabled` - `channels.telegram.allowFrom` приймає числові ID користувачів Telegram. Префікси `telegram:` / `tg:` приймаються та нормалізуються. - `dmPolicy: "allowlist"` з порожнім `allowFrom` блокує всі DM і відхиляється перевіркою конфігурації. - Onboarding приймає введення `@username` і перетворює його на числові ID. - Якщо ви оновилися і ваш config містить записи allowlist у вигляді `@username`, виконайте `openclaw doctor --fix`, щоб перетворити їх (best-effort; потрібен токен Telegram bot). - Якщо ви раніше покладалися на файли allowlist зі сховища pairing, `openclaw doctor --fix` може відновити записи до `channels.telegram.allowFrom` у сценаріях allowlist (наприклад, коли `dmPolicy: "allowlist"` ще не має явних ID). + `channels.telegram.allowFrom` приймає числові ID користувачів Telegram. Префікси `telegram:` / `tg:` підтримуються й нормалізуються. + `dmPolicy: "allowlist"` з порожнім `allowFrom` блокує всі DM і відхиляється валідацією config. + Під час налаштування запитуються лише числові ID користувачів. + Якщо ви оновилися й ваш config містить записи allowlist у форматі `@username`, виконайте `openclaw doctor --fix`, щоб розв’язати їх (у межах можливого; потрібен токен бота Telegram). + Якщо ви раніше покладалися на файли allowlist у pairing-store, `openclaw doctor --fix` може відновити записи в `channels.telegram.allowFrom` для потоків allowlist (наприклад, коли `dmPolicy: "allowlist"` ще не має явних ID). - Для bot, якими володіє одна особа, краще використовувати `dmPolicy: "allowlist"` з явними числовими ID в `allowFrom`, щоб політика доступу стабільно зберігалася в конфігурації (замість залежності від попередніх схвалень pairing). + Для ботів з одним власником віддавайте перевагу `dmPolicy: "allowlist"` з явними числовими ID в `allowFrom`, щоб політика доступу надійно зберігалася в config (замість залежності від попередніх підтверджень сполучення). - Поширене непорозуміння: схвалення pairing у DM не означає, що «цей відправник авторизований всюди». - Pairing надає доступ лише до DM. Авторизація відправника в групі, як і раніше, визначається явними allowlist у конфігурації. - Якщо ви хочете модель «я авторизований один раз, і працюють і DM, і команди в групі», додайте свій числовий Telegram user ID до `channels.telegram.allowFrom`. + Поширена плутанина: підтвердження сполучення DM не означає, що «цей відправник авторизований всюди». + Сполучення надає доступ лише до DM. Авторизація відправників у групах і далі визначається явними allowlist у config. + Якщо ви хочете, щоб «я був авторизований один раз, і працювали і DM, і команди в групах», додайте свій числовий ID користувача Telegram у `channels.telegram.allowFrom`. - ### Як знайти свій Telegram user ID + ### Як знайти свій ID користувача Telegram Безпечніший спосіб (без стороннього бота): @@ -140,41 +140,41 @@ openclaw pairing approve telegram 2. Виконайте `openclaw logs --follow`. 3. Прочитайте `from.id`. - Офіційний спосіб через Bot API: + Офіційний метод Bot API: ```bash curl "https://api.telegram.org/bot/getUpdates" ``` - Сторонній спосіб (менш приватний): `@userinfobot` або `@getidsbot`. + Сторонній метод (менш приватний): `@userinfobot` або `@getidsbot`. - - Разом застосовуються два механізми: + + Разом застосовуються два механізми керування: 1. **Які групи дозволені** (`channels.telegram.groups`) - - без конфігурації `groups`: - - з `groupPolicy: "open"`: будь-яка група може пройти перевірки group-ID - - з `groupPolicy: "allowlist"` (типово): групи блокуються, доки ви не додасте записи до `groups` (або `"*"`) + - немає config `groups`: + - з `groupPolicy: "open"`: будь-яка група може пройти перевірки ID групи + - з `groupPolicy: "allowlist"` (за замовчуванням): групи блокуються, доки ви не додасте записи `groups` (або `"*"`) - `groups` налаштовано: діє як allowlist (явні ID або `"*"`) 2. **Які відправники дозволені в групах** (`channels.telegram.groupPolicy`) - `open` - - `allowlist` (типово) + - `allowlist` (за замовчуванням) - `disabled` - `groupAllowFrom` використовується для фільтрації відправників у групах. Якщо його не задано, Telegram використовує резервне значення `allowFrom`. - Записи в `groupAllowFrom` мають бути числовими ID користувачів Telegram (`telegram:` / `tg:` префікси нормалізуються). - Не вказуйте ID Telegram group або supergroup у `groupAllowFrom`. Від’ємні chat ID мають бути в `channels.telegram.groups`. - Нечислові записи ігноруються під час авторизації відправника. - Межа безпеки (`2026.2.25+`): групова авторизація відправника **не** успадковує схвалення зі сховища pairing для DM. - Pairing залишається лише для DM. Для груп задайте `groupAllowFrom` або `allowFrom` для групи/теми. - Якщо `groupAllowFrom` не задано, Telegram використовує резервне значення з config `allowFrom`, а не сховище pairing. - Практичний шаблон для bot одного власника: задайте свій user ID у `channels.telegram.allowFrom`, не задавайте `groupAllowFrom` і дозвольте потрібні групи в `channels.telegram.groups`. - Примітка про runtime: якщо `channels.telegram` повністю відсутній, runtime типово працює за fail-closed із `groupPolicy="allowlist"`, якщо явно не задано `channels.defaults.groupPolicy`. + `groupAllowFrom` використовується для фільтрації відправників у групах. Якщо його не задано, Telegram використовує `allowFrom` як резервний варіант. + Записи `groupAllowFrom` мають бути числовими ID користувачів Telegram (префікси `telegram:` / `tg:` нормалізуються). + Не вказуйте ID груп Telegram або супергруп у `groupAllowFrom`. Від’ємні ID чатів мають бути в `channels.telegram.groups`. + Нечислові записи ігноруються для авторизації відправників. + Межа безпеки (`2026.2.25+`): авторизація відправників у групах **не** успадковує підтвердження з pairing-store для DM. + Сполучення залишається лише для DM. Для груп задайте `groupAllowFrom` або `allowFrom` для конкретної групи/теми. + Якщо `groupAllowFrom` не задано, Telegram використовує config `allowFrom`, а не pairing store. + Практичний шаблон для ботів з одним власником: задайте свій ID користувача в `channels.telegram.allowFrom`, не задавайте `groupAllowFrom` і дозвольте цільові групи в `channels.telegram.groups`. + Примітка про runtime: якщо `channels.telegram` повністю відсутній, у runtime за замовчуванням використовується fail-closed `groupPolicy="allowlist"`, якщо лише `channels.defaults.groupPolicy` не задано явно. - Приклад: дозволити будь-якого учасника в одній конкретній групі: + Приклад: дозволити будь-якому учаснику в одній конкретній групі: ```json5 { @@ -191,7 +191,7 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Приклад: дозволити лише певних користувачів в одній конкретній групі: + Приклад: дозволити лише конкретним користувачам в одній конкретній групі: ```json5 { @@ -211,20 +211,20 @@ curl "https://api.telegram.org/bot/getUpdates" Поширена помилка: `groupAllowFrom` — це не allowlist груп Telegram. - - Вказуйте від’ємні ID Telegram group або supergroup, наприклад `-1001234567890`, у `channels.telegram.groups`. - - Вказуйте ID користувачів Telegram, наприклад `8734062810`, у `groupAllowFrom`, якщо хочете обмежити, хто саме в межах дозволеної групи може активувати бота. - - Використовуйте `groupAllowFrom: ["*"]` лише коли хочете, щоб будь-який учасник дозволеної групи міг звертатися до бота. + - Вказуйте від’ємні ID груп Telegram або супергруп, як-от `-1001234567890`, у `channels.telegram.groups`. + - Вказуйте ID користувачів Telegram, як-от `8734062810`, у `groupAllowFrom`, коли хочете обмежити, які люди всередині дозволеної групи можуть звертатися до бота. + - Використовуйте `groupAllowFrom: ["*"]` лише тоді, коли хочете, щоб будь-який учасник дозволеної групи міг спілкуватися з ботом. - - Відповіді в групах типово вимагають згадування. + + За замовчуванням відповіді в групах потребують згадки. - Згадування може надходити з: + Згадка може надходити з: - - нативного згадування `@botusername`, або - - шаблонів згадувань у: + - нативної згадки `@botusername`, або + - шаблонів згадок у: - `agents.list[].groupChat.mentionPatterns` - `messages.groupChat.mentionPatterns` @@ -233,7 +233,7 @@ curl "https://api.telegram.org/bot/getUpdates" - `/activation always` - `/activation mention` - Вони оновлюють лише стан сесії. Для постійного збереження використовуйте конфігурацію. + Вони оновлюють лише стан сесії. Для постійного збереження використовуйте config. Приклад постійної конфігурації: @@ -249,11 +249,11 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Як отримати ID групового чату: + Як отримати ID чату групи: - перешліть повідомлення з групи в `@userinfobot` / `@getidsbot` - або прочитайте `chat.id` з `openclaw logs --follow` - - або перевірте `getUpdates` у Bot API + - або перевірте Bot API `getUpdates` @@ -261,11 +261,11 @@ curl "https://api.telegram.org/bot/getUpdates" ## Поведінка runtime - Telegram належить процесу gateway. -- Маршрутизація детермінована: вхідні відповіді Telegram повертаються назад у Telegram (модель не вибирає канали). -- Вхідні повідомлення нормалізуються до спільного канального envelope з метаданими відповіді та placeholder медіа. -- Групові сесії ізольовані за ID групи. Для тем форуму додається `:topic:`, щоб ізолювати теми. -- DM-повідомлення можуть містити `message_thread_id`; OpenClaw маршрутизує їх із session key, що враховують thread, і зберігає ID thread для відповідей. -- Long polling використовує grammY runner з послідовністю на рівні chat/per-thread. Загальна sink-конкурентність runner використовує `agents.defaults.maxConcurrent`. +- Маршрутизація детермінована: вхідні відповіді з Telegram повертаються в Telegram (модель не вибирає канали). +- Вхідні повідомлення нормалізуються у спільну channel envelope з метаданими відповіді та заповнювачами медіа. +- Групові сесії ізольовані за ID групи. Теми форуму додають `:topic:`, щоб теми були ізольовані. +- Повідомлення DM можуть містити `message_thread_id`; OpenClaw маршрутизує їх із ключами сесій, що враховують потоки, і зберігає ID потоку для відповідей. +- Довге опитування використовує grammY runner із послідовністю на рівні чату/потоку. Загальна sink-конкурентність runner використовує `agents.defaults.maxConcurrent`. - Telegram Bot API не підтримує підтвердження прочитання (`sendReadReceipts` не застосовується). ## Довідник функцій @@ -279,55 +279,55 @@ curl "https://api.telegram.org/bot/getUpdates" Вимога: - - `channels.telegram.streaming` має значення `off | partial | block | progress` (типово: `partial`) - - `progress` у Telegram відображається як `partial` (сумісність із міжканальним найменуванням) - - застарілі значення `channels.telegram.streamMode` і boolean-значення `streaming` автоматично зіставляються + - `channels.telegram.streaming` має значення `off | partial | block | progress` (за замовчуванням: `partial`) + - `progress` у Telegram зіставляється з `partial` (сумісність із міжканальним іменуванням) + - застарілі значення `channels.telegram.streamMode` і булеві значення `streaming` автоматично зіставляються - Для лише текстових відповідей: + Для відповідей лише з текстом: - DM: OpenClaw зберігає те саме повідомлення попереднього перегляду і виконує фінальне редагування на місці (без другого повідомлення) - група/тема: OpenClaw зберігає те саме повідомлення попереднього перегляду і виконує фінальне редагування на місці (без другого повідомлення) - Для складних відповідей (наприклад, з медіапейлоадами) OpenClaw повертається до звичайної фінальної доставки, а потім прибирає повідомлення попереднього перегляду. + Для складних відповідей (наприклад, медіа-пейлоадів) OpenClaw повертається до звичайної фінальної доставки, а потім очищує повідомлення попереднього перегляду. - Потоковий попередній перегляд відокремлений від block streaming. Коли для Telegram явно ввімкнено block streaming, OpenClaw пропускає preview stream, щоб уникнути подвійного стримінгу. + Потоковий попередній перегляд відокремлений від block streaming. Якщо для Telegram явно увімкнено block streaming, OpenClaw пропускає попередній перегляд stream, щоб уникнути подвійного stream. - Якщо нативний транспорт чернетки недоступний/відхилений, OpenClaw автоматично повертається до `sendMessage` + `editMessageText`. + Якщо нативний транспорт чернеток недоступний/відхилений, OpenClaw автоматично переходить до `sendMessage` + `editMessageText`. - Потік reasoning лише для Telegram: + Потік міркувань лише для Telegram: - - `/reasoning stream` надсилає reasoning у live preview під час генерації - - фінальна відповідь надсилається без тексту reasoning + - `/reasoning stream` надсилає міркування в live preview під час генерації + - фінальна відповідь надсилається без тексту міркувань - + Вихідний текст використовує Telegram `parse_mode: "HTML"`. - - Текст у стилі Markdown рендериться у безпечний для Telegram HTML. - - Сирий HTML моделі екранується, щоб зменшити кількість помилок парсингу в Telegram. + - Текст у стилі Markdown рендериться в HTML, безпечний для Telegram. + - Сирий HTML моделі екранується, щоб зменшити збої парсингу в Telegram. - Якщо Telegram відхиляє розібраний HTML, OpenClaw повторює спробу як звичайний текст. - Попередній перегляд посилань увімкнено типово, його можна вимкнути через `channels.telegram.linkPreview: false`. + Попередній перегляд посилань увімкнено за замовчуванням, і його можна вимкнути через `channels.telegram.linkPreview: false`. - + Реєстрація меню команд Telegram виконується під час запуску через `setMyCommands`. - Типові значення нативних команд: + Налаштування нативних команд за замовчуванням: - `commands.native: "auto"` вмикає нативні команди для Telegram - Додайте власні записи меню команд: + Додайте власні записи до меню команд: ```json5 { channels: { telegram: { customCommands: [ - { command: "backup", description: "Git backup" }, - { command: "generate", description: "Create an image" }, + { command: "backup", description: "Git-резервне копіювання" }, + { command: "generate", description: "Створити зображення" }, ], }, }, @@ -336,45 +336,45 @@ curl "https://api.telegram.org/bot/getUpdates" Правила: - - назви нормалізуються (знімається початковий `/`, переводяться в нижній регістр) + - імена нормалізуються (прибирається початковий `/`, нижній регістр) - допустимий шаблон: `a-z`, `0-9`, `_`, довжина `1..32` - - кастомні команди не можуть перевизначати нативні команди + - користувацькі команди не можуть перевизначати нативні команди - конфлікти/дублікати пропускаються та логуються Примітки: - - кастомні команди — це лише записи меню; вони не реалізують поведінку автоматично - - команди plugin/Skills можуть працювати при ручному введенні, навіть якщо не показані в меню Telegram + - користувацькі команди — це лише записи меню; вони не реалізують поведінку автоматично + - команди Plugin/Skills все одно можуть працювати при введенні, навіть якщо їх не показано в меню Telegram - Якщо нативні команди вимкнені, вбудовані команди видаляються. Кастомні/plugin-команди все ще можуть реєструватися, якщо налаштовані. + Якщо нативні команди вимкнено, вбудовані команди видаляються. Користувацькі команди/команди Plugin усе ще можуть реєструватися, якщо це налаштовано. Поширені збої під час налаштування: - - `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що меню Telegram усе ще переповнене після обрізання; зменште кількість команд plugin/Skills/кастомних або вимкніть `channels.telegram.commands.native`. - - `setMyCommands failed` з помилками network/fetch зазвичай означає, що заблоковано вихідний DNS/HTTPS до `api.telegram.org`. + - `setMyCommands failed` із `BOT_COMMANDS_TOO_MUCH` означає, що меню Telegram усе ще переповнене після скорочення; зменште кількість команд Plugin/Skills/користувацьких команд або вимкніть `channels.telegram.commands.native`. + - `setMyCommands failed` із помилками network/fetch зазвичай означає, що вихідний DNS/HTTPS до `api.telegram.org` заблоковано. - ### Команди pairing пристрою (`device-pair` plugin) + ### Команди сполучення пристроїв (`device-pair` Plugin) - Коли встановлено plugin `device-pair`: + Коли встановлено Plugin `device-pair`: 1. `/pair` генерує код налаштування 2. вставте код у застосунок iOS - 3. `/pair pending` показує запити, що очікують підтвердження (включно з role/scopes) - 4. схваліть запит: - - `/pair approve ` для явного схвалення - - `/pair approve`, коли є лише один запит, що очікує + 3. `/pair pending` показує список запитів, що очікують на розгляд (включно з роллю/scopes) + 4. підтвердьте запит: + - `/pair approve ` для явного підтвердження + - `/pair approve`, коли є лише один запит, що очікує на розгляд - `/pair approve latest` для найновішого - Код налаштування містить короткоживучий bootstrap token. Вбудована передача bootstrap зберігає token основного вузла з `scopes: []`; будь-який переданий operator token залишається обмеженим до `operator.approvals`, `operator.read`, `operator.talk.secrets` і `operator.write`. Перевірки bootstrap scope використовують префікси role, тому цей allowlist operator задовольняє лише запити operator; ролі, що не є operator, усе ще потребують scopes під власним префіксом ролі. + Код налаштування містить короткоживучий bootstrap token. Вбудована bootstrap-передача зберігає primary Node token на `scopes: []`; будь-який переданий operator token залишається обмеженим `operator.approvals`, `operator.read`, `operator.talk.secrets` і `operator.write`. Перевірки bootstrap scope мають префікс ролі, тому цей operator allowlist задовольняє лише operator-запити; ролі, що не є operator, усе одно потребують scopes під власним префіксом ролі. - Якщо пристрій повторює спробу зі зміненими деталями auth (наприклад role/scopes/public key), попередній запит, що очікує, замінюється, а новий запит використовує інший `requestId`. Перед схваленням повторно виконайте `/pair pending`. + Якщо пристрій повторює спробу зі зміненими даними auth (наприклад, role/scopes/public key), попередній запит, що очікує на розгляд, замінюється, а новий запит використовує інший `requestId`. Перед підтвердженням знову виконайте `/pair pending`. - Докладніше: [Pairing](/channels/pairing#pair-via-telegram-recommended-for-ios). + Докладніше: [Сполучення](/uk/channels/pairing#pair-via-telegram-recommended-for-ios). - Налаштуйте область застосування вбудованої клавіатури: + Налаштуйте область дії вбудованої клавіатури: ```json5 { @@ -406,13 +406,13 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Області: + Області дії: - `off` - `dm` - `group` - `all` - - `allowlist` (типово) + - `allowlist` (за замовчуванням) Застаріле `capabilities: ["inlineButtons"]` зіставляється з `inlineButtons: "all"`. @@ -423,13 +423,13 @@ curl "https://api.telegram.org/bot/getUpdates" action: "send", channel: "telegram", to: "123456789", - message: "Choose an option:", + message: "Виберіть варіант:", buttons: [ [ - { text: "Yes", callback_data: "yes" }, - { text: "No", callback_data: "no" }, + { text: "Так", callback_data: "yes" }, + { text: "Ні", callback_data: "no" }, ], - [{ text: "Cancel", callback_data: "cancel" }], + [{ text: "Скасувати", callback_data: "cancel" }], ], } ``` @@ -439,64 +439,64 @@ curl "https://api.telegram.org/bot/getUpdates" - - Дії інструментів Telegram включають: + + Дії інструмента Telegram включають: - - `sendMessage` (`to`, `content`, необов’язково `mediaUrl`, `replyToMessageId`, `messageThreadId`) + - `sendMessage` (`to`, `content`, необов’язкові `mediaUrl`, `replyToMessageId`, `messageThreadId`) - `react` (`chatId`, `messageId`, `emoji`) - `deleteMessage` (`chatId`, `messageId`) - `editMessage` (`chatId`, `messageId`, `content`) - - `createForumTopic` (`chatId`, `name`, необов’язково `iconColor`, `iconCustomEmojiId`) + - `createForumTopic` (`chatId`, `name`, необов’язкові `iconColor`, `iconCustomEmojiId`) - Дії канальних повідомлень надають зручні псевдоніми (`send`, `react`, `delete`, `edit`, `sticker`, `sticker-search`, `topic-create`). + Дії повідомлень каналу надають зручні псевдоніми (`send`, `react`, `delete`, `edit`, `sticker`, `sticker-search`, `topic-create`). - Керування gating: + Керування дозволами: - `channels.telegram.actions.sendMessage` - `channels.telegram.actions.deleteMessage` - `channels.telegram.actions.reactions` - - `channels.telegram.actions.sticker` (типово: вимкнено) + - `channels.telegram.actions.sticker` (за замовчуванням: вимкнено) - Примітка: `edit` і `topic-create` наразі типово ввімкнені й не мають окремих перемикачів `channels.telegram.actions.*`. - Надсилання runtime використовують активний знімок config/secrets (startup/reload), тому шляхи дій не виконують ad hoc повторного визначення SecretRef для кожного надсилання. + Примітка: `edit` і `topic-create` наразі увімкнені за замовчуванням і не мають окремих перемикачів `channels.telegram.actions.*`. + Надсилання в runtime використовують активний знімок config/secrets (startup/reload), тому шляхи дій не виконують ad hoc повторне розв’язання SecretRef для кожного надсилання. - Семантика видалення реакцій: [/tools/reactions](/tools/reactions) + Семантика видалення реакцій: [/tools/reactions](/uk/tools/reactions) - - Telegram підтримує явні теги тредів відповідей у згенерованому виводі: + + Telegram підтримує явні теги потоків відповідей у згенерованому виводі: - - `[[reply_to_current]]` відповідає на повідомлення, яке викликало дію + - `[[reply_to_current]]` відповідає на повідомлення, що спричинило виклик - `[[reply_to:]]` відповідає на конкретний ID повідомлення Telegram `channels.telegram.replyToMode` керує обробкою: - - `off` (типово) + - `off` (за замовчуванням) - `first` - `all` - Примітка: `off` вимикає неявний трединг відповідей. Явні теги `[[reply_to_*]]` усе одно враховуються. + Примітка: `off` вимикає неявний потік відповідей. Явні теги `[[reply_to_*]]` усе одно враховуються. - - Для forum supergroup: + + Супергрупи форуму: - - до ключів сесії теми додається `:topic:` - - відповіді й індикатор набору спрямовуються в thread теми - - шлях конфігурації теми: + - ключі сесій тем додають `:topic:` + - відповіді та введення тексту спрямовуються в потік теми + - шлях config теми: `channels.telegram.groups..topics.` - Спеціальний випадок загальної теми (`threadId=1`): + Особливий випадок загальної теми (`threadId=1`): - надсилання повідомлень пропускає `message_thread_id` (Telegram відхиляє `sendMessage(...thread_id=1)`) - - дії набору тексту все одно включають `message_thread_id` + - дії введення тексту все одно включають `message_thread_id` - Успадкування тем: записи тем успадковують налаштування групи, якщо їх не перевизначено (`requireMention`, `allowFrom`, `skills`, `systemPrompt`, `enabled`, `groupPolicy`). - `agentId` діє лише для теми й не успадковується з типових значень групи. + Успадкування тем: записи тем успадковують налаштування групи, якщо не перевизначені (`requireMention`, `allowFrom`, `skills`, `systemPrompt`, `enabled`, `groupPolicy`). + `agentId` є лише для теми й не успадковується з налаштувань групи за замовчуванням. - **Маршрутизація агента для окремої теми**: кожна тема може маршрутизуватися до іншого агента, якщо задати `agentId` у конфігурації теми. Це дає кожній темі власний ізольований workspace, memory і session. Приклад: + **Маршрутизація агентів для окремих тем**: Кожна тема може маршрутизуватися до іншого агента через `agentId` у config теми. Це надає кожній темі власний ізольований workspace, memory і session. Приклад: ```json5 { @@ -505,8 +505,8 @@ curl "https://api.telegram.org/bot/getUpdates" groups: { "-1001234567890": { topics: { - "1": { agentId: "main" }, // Загальна тема → агент main - "3": { agentId: "zu" }, // Тема dev → агент zu + "1": { agentId: "main" }, // Загальна тема → головний агент + "3": { agentId: "zu" }, // Тема розробки → агент zu "5": { agentId: "coder" } // Code review → агент coder } } @@ -516,9 +516,9 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Тоді кожна тема має власний session key: `agent:zu:telegram:group:-1001234567890:topic:3` + Тоді кожна тема має власний ключ сесії: `agent:zu:telegram:group:-1001234567890:topic:3` - **Постійна прив’язка ACP до теми**: теми форуму можуть закріплювати сесії harness ACP через типізовані прив’язки ACP верхнього рівня: + **Постійна прив’язка тем ACP**: Теми форуму можуть закріплювати сесії harness ACP через типізовані прив’язки ACP верхнього рівня: - `bindings[]` з `type: "acp"` і `match.channel: "telegram"` @@ -569,13 +569,13 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Наразі це обмежено темами форуму в групах і supergroup. + Наразі це обмежено темами форумів у групах і супергрупах. - **Запуск ACP, прив’язаний до thread, з чату**: + **ACP spawn, прив’язаний до потоку, із чату**: - `/acp spawn --thread here|auto` може прив’язати поточну тему Telegram до нової сесії ACP. - - Подальші повідомлення в темі маршрутизуються безпосередньо до прив’язаної сесії ACP (без потреби в `/acp steer`). - - Після успішної прив’язки OpenClaw закріплює в темі повідомлення-підтвердження запуску. + - Наступні повідомлення в темі маршрутизуються безпосередньо до прив’язаної сесії ACP (без потреби в `/acp steer`). + - Після успішної прив’язки OpenClaw закріплює в темі повідомлення з підтвердженням spawn. - Потрібно `channels.telegram.threadBindings.spawnAcpSessions=true`. Контекст шаблону включає: @@ -583,19 +583,19 @@ curl "https://api.telegram.org/bot/getUpdates" - `MessageThreadId` - `IsForum` - Поведінка DM thread: + Поведінка потоків DM: - - приватні чати з `message_thread_id` зберігають маршрутизацію DM, але використовують session key і цілі відповіді з урахуванням thread. + - приватні чати з `message_thread_id` зберігають DM-маршрутизацію, але використовують ключі сесій і цілі відповідей з урахуванням потоків. - + ### Аудіоповідомлення - Telegram розрізняє voice note та аудіофайли. + Telegram розрізняє голосові повідомлення та аудіофайли. - - типово: поведінка аудіофайлу - - тег `[[audio_as_voice]]` у відповіді агента примусово надсилає як voice note + - за замовчуванням: поведінка аудіофайлу + - тег `[[audio_as_voice]]` у відповіді агента примусово надсилає як голосове повідомлення Приклад дії повідомлення: @@ -611,7 +611,7 @@ curl "https://api.telegram.org/bot/getUpdates" ### Відеоповідомлення - Telegram розрізняє відеофайли та video note. + Telegram розрізняє відеофайли та video notes. Приклад дії повідомлення: @@ -625,17 +625,17 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Video note не підтримують підписи; наданий текст повідомлення надсилається окремо. + Video notes не підтримують підписи; наданий текст повідомлення надсилається окремо. - ### Стикери + ### Стікери - Обробка вхідних стикерів: + Обробка вхідних стікерів: - - статичний WEBP: завантажується й обробляється (placeholder ``) + - статичний WEBP: завантажується й обробляється (заповнювач ``) - анімований TGS: пропускається - відео WEBM: пропускається - Поля контексту стикера: + Поля контексту стікера: - `Sticker.emoji` - `Sticker.setName` @@ -643,13 +643,13 @@ curl "https://api.telegram.org/bot/getUpdates" - `Sticker.fileUniqueId` - `Sticker.cachedDescription` - Файл кешу стикерів: + Файл кешу стікерів: - `~/.openclaw/telegram/sticker-cache.json` - Стикери описуються один раз (коли це можливо) і кешуються, щоб зменшити повторні виклики vision. + Стікери описуються один раз (коли це можливо) і кешуються, щоб зменшити повторні виклики vision. - Увімкніть дії зі стикерами: + Увімкніть дії зі стікерами: ```json5 { @@ -663,7 +663,7 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Дія надсилання стикера: + Дія надсилання стікера: ```json5 { @@ -674,13 +674,13 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Пошук у кеші стикерів: + Пошук кешованих стікерів: ```json5 { action: "sticker-search", channel: "telegram", - query: "cat waving", + query: "кіт махає лапою", limit: 5, } ``` @@ -688,53 +688,53 @@ curl "https://api.telegram.org/bot/getUpdates" - Реакції Telegram надходять як оновлення `message_reaction` (окремо від payload повідомлень). + Реакції Telegram надходять як оновлення `message_reaction` (окремо від пейлоадів повідомлень). - Коли їх увімкнено, OpenClaw ставить у чергу системні події на кшталт: + Коли ввімкнено, OpenClaw ставить у чергу системні події на кшталт: - `Telegram reaction added: 👍 by Alice (@alice) on msg 42` - Конфігурація: + Config: - - `channels.telegram.reactionNotifications`: `off | own | all` (типово: `own`) - - `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` (типово: `minimal`) + - `channels.telegram.reactionNotifications`: `off | own | all` (за замовчуванням: `own`) + - `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` (за замовчуванням: `minimal`) Примітки: - - `own` означає лише реакції користувачів на повідомлення, надіслані ботом (best-effort через кеш надісланих повідомлень). - - Події реакцій усе одно враховують механізми доступу Telegram (`dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`); неавторизовані відправники відкидаються. - - Telegram не надає ID thread в оновленнях реакцій. - - у нефорумних групах маршрут іде до сесії групового чату - - у форумних групах маршрут іде до сесії загальної теми групи (`:topic:1`), а не до точного початкового thread + - `own` означає лише реакції користувачів на повідомлення, надіслані ботом (за можливості, через кеш надісланих повідомлень). + - Події реакцій усе одно дотримуються контролю доступу Telegram (`dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`); неавторизовані відправники відкидаються. + - Telegram не надає ID потоку в оновленнях реакцій. + - групи нефорумного типу маршрутизуються до сесії групового чату + - групи форумного типу маршрутизуються до сесії загальної теми групи (`:topic:1`), а не до точної початкової теми `allowed_updates` для polling/webhook автоматично включають `message_reaction`. - - `ackReaction` надсилає емодзі-підтвердження, поки OpenClaw обробляє вхідне повідомлення. + + `ackReaction` надсилає emoji-підтвердження, поки OpenClaw обробляє вхідне повідомлення. Порядок визначення: - `channels.telegram.accounts..ackReaction` - `channels.telegram.ackReaction` - `messages.ackReaction` - - резервне значення з emoji identity агента (`agents.list[].identity.emoji`, інакше `"👀"`) + - резервний варіант emoji ідентичності агента (`agents.list[].identity.emoji`, інакше "👀") Примітки: - - Telegram очікує emoji Unicode (наприклад, `"👀"`). + - Telegram очікує Unicode emoji (наприклад, "👀"). - Використовуйте `""`, щоб вимкнути реакцію для каналу або облікового запису. - - Записи конфігурації каналу типово ввімкнені (`configWrites !== false`). + + Записи в config каналу ввімкнені за замовчуванням (`configWrites !== false`). Записи, ініційовані Telegram, включають: - події міграції груп (`migrate_to_chat_id`) для оновлення `channels.telegram.groups` - - `/config set` і `/config unset` (потрібне ввімкнення команд) + - `/config set` і `/config unset` (потребує ввімкнення команд) Вимкнення: @@ -750,45 +750,45 @@ curl "https://api.telegram.org/bot/getUpdates" - - Типово: long polling. + + За замовчуванням: довге опитування. - Режим webhook: + Режим Webhook: - задайте `channels.telegram.webhookUrl` - - задайте `channels.telegram.webhookSecret` (обов’язково, коли задано webhook URL) - - необов’язково `channels.telegram.webhookPath` (типово `/telegram-webhook`) - - необов’язково `channels.telegram.webhookHost` (типово `127.0.0.1`) - - необов’язково `channels.telegram.webhookPort` (типово `8787`) + - задайте `channels.telegram.webhookSecret` (обов’язково, якщо задано URL Webhook) + - необов’язково `channels.telegram.webhookPath` (за замовчуванням `/telegram-webhook`) + - необов’язково `channels.telegram.webhookHost` (за замовчуванням `127.0.0.1`) + - необов’язково `channels.telegram.webhookPort` (за замовчуванням `8787`) - Типовий локальний listener для режиму webhook прив’язується до `127.0.0.1:8787`. + Локальний слухач за замовчуванням для режиму Webhook прив’язується до `127.0.0.1:8787`. - Якщо ваш публічний ендпоїнт відрізняється, поставте перед ним reverse proxy і вкажіть у `webhookUrl` публічний URL. - Задайте `webhookHost` (наприклад, `0.0.0.0`), коли свідомо потребуєте зовнішнього ingress. + Якщо ваша публічна кінцева точка відрізняється, розмістіть перед нею reverse proxy і спрямуйте `webhookUrl` на публічний URL. + Задайте `webhookHost` (наприклад, `0.0.0.0`), коли вам свідомо потрібен зовнішній вхідний доступ. - - - Типове значення `channels.telegram.textChunkLimit` — 4000. - - `channels.telegram.chunkMode="newline"` надає перевагу межам абзаців (порожнім рядкам) перед розбиттям за довжиною. - - `channels.telegram.mediaMaxMb` (типово 100) обмежує розмір вхідних і вихідних медіа Telegram. - - `channels.telegram.timeoutSeconds` перевизначає timeout клієнта Telegram API (якщо не задано, використовується типове значення grammY). - - історія групового контексту використовує `channels.telegram.historyLimit` або `messages.groupChat.historyLimit` (типово 50); `0` вимикає. - - додатковий контекст reply/quote/forward наразі передається як отриманий. - - Telegram allowlist передусім обмежують, хто може активувати агента, а не є повною межею редагування додаткового контексту. - - керування історією DM: + + - Значення за замовчуванням для `channels.telegram.textChunkLimit` — 4000. + - `channels.telegram.chunkMode="newline"` віддає перевагу межам абзаців (порожнім рядкам) перед поділом за довжиною. + - `channels.telegram.mediaMaxMb` (за замовчуванням 100) обмежує розмір вхідних і вихідних медіа Telegram. + - `channels.telegram.timeoutSeconds` перевизначає таймаут клієнта Telegram API (якщо не задано, застосовується значення grammY за замовчуванням). + - Історія контексту групи використовує `channels.telegram.historyLimit` або `messages.groupChat.historyLimit` (за замовчуванням 50); `0` вимикає її. + - Додатковий контекст відповіді/цитати/пересилання наразі передається як отримано. + - Telegram allowlist насамперед керують тим, хто може активувати агента, а не є повною межею редагування додаткового контексту. + - Керування історією DM: - `channels.telegram.dmHistoryLimit` - `channels.telegram.dms[""].historyLimit` - - конфігурація `channels.telegram.retry` застосовується до допоміжних функцій надсилання Telegram (CLI/tools/actions) для відновлюваних вихідних помилок API. + - Config `channels.telegram.retry` застосовується до допоміжних функцій надсилання Telegram (CLI/tools/actions) для відновлюваних вихідних помилок API. - Ціль CLI send може бути числовим chat ID або username: + Ціллю надсилання в CLI може бути числовий ID чату або ім’я користувача: ```bash openclaw message send --channel telegram --target 123456789 --message "hi" openclaw message send --channel telegram --target @name --message "hi" ``` - Telegram polls використовують `openclaw message poll` і підтримують теми форуму: + Telegram polling використовує `openclaw message poll` і підтримує теми форуму: ```bash openclaw message poll --channel telegram --target 123456789 \ @@ -805,72 +805,72 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \ - `--poll-public` - `--thread-id` для тем форуму (або використовуйте ціль `:topic:`) - Telegram send також підтримує: + Надсилання Telegram також підтримує: - - `--buttons` для вбудованих клавіатур, коли це дозволяє `channels.telegram.capabilities.inlineButtons` - - `--force-document`, щоб надсилати вихідні зображення та GIF як документи замість стиснених фото або завантажень анімованих медіа + - `--buttons` для вбудованих клавіатур, коли `channels.telegram.capabilities.inlineButtons` це дозволяє + - `--force-document`, щоб надсилати вихідні зображення й GIF як документи замість стиснених фото або завантажень анімованих медіа - Керування діями: + Керування дозволами дій: - - `channels.telegram.actions.sendMessage=false` вимикає вихідні повідомлення Telegram, включно з polls - - `channels.telegram.actions.poll=false` вимикає створення Telegram poll, залишаючи звичайні надсилання ввімкненими + - `channels.telegram.actions.sendMessage=false` вимикає вихідні повідомлення Telegram, зокрема poll + - `channels.telegram.actions.poll=false` вимикає створення poll у Telegram, залишаючи звичайне надсилання ввімкненим - - Telegram підтримує погодження exec у DM погоджувачів і за бажання може публікувати запити на погодження в початковому чаті або темі. + + Telegram підтримує підтвердження exec у DM тих, хто підтверджує, і за потреби може публікувати запити на підтвердження у вихідному чаті або темі. - Шлях конфігурації: + Шлях config: - `channels.telegram.execApprovals.enabled` - - `channels.telegram.execApprovals.approvers` (необов’язково; використовує резервне значення числових ID власників, визначених із `allowFrom` і прямого `defaultTo`, коли це можливо) - - `channels.telegram.execApprovals.target` (`dm` | `channel` | `both`, типово: `dm`) + - `channels.telegram.execApprovals.approvers` (необов’язково; використовує як резервний варіант числові ID власника, виведені з `allowFrom` і прямого `defaultTo`, коли це можливо) + - `channels.telegram.execApprovals.target` (`dm` | `channel` | `both`, за замовчуванням: `dm`) - `agentFilter`, `sessionFilter` - Погоджувачі мають бути числовими ID користувачів Telegram. Telegram автоматично вмикає нативні погодження exec, коли `enabled` не задано або має значення `"auto"` і можна визначити щонайменше одного погоджувача — або з `execApprovals.approvers`, або з числової конфігурації власника облікового запису (`allowFrom` і DM `defaultTo`). Задайте `enabled: false`, щоб явно вимкнути Telegram як нативний клієнт погодження. В інших випадках запити на погодження повертаються до інших налаштованих маршрутів погодження або до резервної політики погодження exec. + Ті, хто підтверджує, мають бути числовими ID користувачів Telegram. Telegram автоматично вмикає нативні підтвердження exec, коли `enabled` не задано або має значення `"auto"` і можна визначити принаймні одного підтверджувача — або з `execApprovals.approvers`, або з числового config власника облікового запису (`allowFrom` і DM `defaultTo`). Задайте `enabled: false`, щоб явно вимкнути Telegram як нативний клієнт підтвердження. Інакше запити на підтвердження переходять до інших налаштованих маршрутів підтвердження або до fallback policy для підтверджень exec. - Telegram також відображає спільні кнопки погодження, які використовують інші чат-канали. Нативний адаптер Telegram переважно додає маршрутизацію в DM погоджувачів, fanout у канал/тему та підказки набору тексту перед доставкою. - Коли ці кнопки присутні, вони є основним UX погодження; OpenClaw - має включати ручну команду `/approve` лише тоді, коли результат інструмента каже, - що погодження в чаті недоступні або ручне погодження — єдиний шлях. + Telegram також рендерить спільні кнопки підтвердження, які використовують інші канали чату. Нативний адаптер Telegram головним чином додає маршрутизацію DM для підтверджувачів, fanout на канали/теми та підказки введення перед доставкою. + Коли ці кнопки присутні, вони є основним UX підтвердження; OpenClaw + має включати ручну команду `/approve` лише тоді, коли результат інструмента вказує, + що підтвердження в чаті недоступні або ручне підтвердження є єдиним шляхом. Правила доставки: - - `target: "dm"` надсилає запити на погодження лише в DM визначеним погоджувачам - - `target: "channel"` надсилає запит назад у початковий чат/тему Telegram - - `target: "both"` надсилає в DM погоджувачів і в початковий чат/тему + - `target: "dm"` надсилає запити на підтвердження лише в DM визначеним підтверджувачам + - `target: "channel"` надсилає запит назад у вихідний чат/тему Telegram + - `target: "both"` надсилає в DM підтверджувачам і у вихідний чат/тему - Лише визначені погоджувачі можуть схвалювати або відхиляти. Особи, які не є погоджувачами, не можуть використовувати `/approve` і не можуть використовувати кнопки погодження Telegram. + Лише визначені підтверджувачі можуть схвалювати або відхиляти. Інші користувачі не можуть використовувати `/approve` і не можуть використовувати кнопки підтвердження Telegram. - Поведінка визначення погодження: + Поведінка визначення підтвердження: - - ID з префіксом `plugin:` завжди визначаються через погодження plugin. - - Інші ID спочатку пробують `exec.approval.resolve`. - - Якщо Telegram також авторизовано для погоджень plugin і gateway повідомляє, - що погодження exec невідоме/прострочене, Telegram один раз повторює спробу через + - ID з префіксом `plugin:` завжди визначаються через підтвердження Plugin. + - Інші ID спочатку намагаються пройти через `exec.approval.resolve`. + - Якщо Telegram також авторизований для підтверджень Plugin і gateway повідомляє, + що підтвердження exec невідоме/прострочене, Telegram повторює спробу один раз через `plugin.approval.resolve`. - - Справжні відмови/помилки погодження exec не переходять мовчки до визначення - погодження plugin. + - Справжні відмови/помилки підтвердження exec не переходять мовчки до визначення + підтвердження Plugin. - Доставка в канал показує текст команди в чаті, тому вмикайте `channel` або `both` лише в довірених групах/темах. Коли запит потрапляє в тему форуму, OpenClaw зберігає тему як для запиту погодження, так і для дій після погодження. Погодження exec типово спливають через 30 хвилин. + Доставка в канал показує текст команди в чаті, тому вмикайте `channel` або `both` лише в довірених групах/темах. Коли запит потрапляє в тему форуму, OpenClaw зберігає тему як для запиту на підтвердження, так і для подальшої дії після підтвердження. За замовчуванням підтвердження exec спливають через 30 хвилин. - Вбудовані кнопки погодження також залежать від того, чи дозволяє `channels.telegram.capabilities.inlineButtons` цільову поверхню (`dm`, `group` або `all`). + Вбудовані кнопки підтвердження також залежать від того, що `channels.telegram.capabilities.inlineButtons` дозволяє цільову поверхню (`dm`, `group` або `all`). - Пов’язана документація: [Exec approvals](/tools/exec-approvals) + Пов’язана документація: [Підтвердження exec](/uk/tools/exec-approvals) -## Керування відповідями на помилки +## Керування відповідями про помилки -Коли агент стикається з помилкою доставки або провайдера, Telegram може або відповісти текстом помилки, або приховати її. Цю поведінку контролюють два ключі конфігурації: +Коли агент стикається з помилкою доставки або provider, Telegram може або відповісти текстом помилки, або приховати її. Цю поведінку контролюють два ключі config: -| Ключ | Значення | Типово | Опис | -| ------------------------------------ | ----------------- | ------- | ----------------------------------------------------------------------------------------------------- | -| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` надсилає в чат дружнє повідомлення про помилку. `silent` повністю пригнічує відповіді з помилками. | -| `channels.telegram.errorCooldownMs` | number (ms) | `60000` | Мінімальний час між відповідями з помилками в одному чаті. Запобігає спаму помилками під час збоїв. | +| Ключ | Значення | За замовчуванням | Опис | +| ----------------------------------- | ----------------- | ---------------- | --------------------------------------------------------------------------------------------- | +| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` надсилає дружнє повідомлення про помилку в чат. `silent` повністю пригнічує відповіді про помилки. | +| `channels.telegram.errorCooldownMs` | число (мс) | `60000` | Мінімальний час між відповідями про помилки в тому самому чаті. Запобігає спаму помилками під час збоїв. | -Підтримуються перевизначення для окремого облікового запису, групи й теми (те саме успадкування, що й для інших ключів конфігурації Telegram). +Підтримуються перевизначення для окремого облікового запису, окремої групи та окремої теми (таке саме успадкування, як і для інших ключів config Telegram). ```json5 { @@ -880,7 +880,7 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \ errorCooldownMs: 120000, groups: { "-1001234567890": { - errorPolicy: "silent", // suppress errors in this group + errorPolicy: "silent", // приглушити помилки в цій групі }, }, }, @@ -888,23 +888,23 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \ } ``` -## Усунення несправностей +## Усунення проблем - + - Якщо `requireMention=false`, режим приватності Telegram має дозволяти повну видимість. - BotFather: `/setprivacy` -> Disable - - потім видаліть бота з групи й додайте знову - - `openclaw channels status` попереджає, коли конфігурація очікує повідомлення групи без згадувань. - - `openclaw channels status --probe` може перевіряти явні числові ID груп; wildcard `"*"` не можна перевірити на членство. - - швидкий тест сесії: `/activation always`. + - потім видаліть бота й додайте його знову до групи + - `openclaw channels status` попереджає, коли config очікує повідомлення в групі без згадки. + - `openclaw channels status --probe` може перевіряти явні числові ID груп; wildcard `"*"` не можна перевірити на членство через probe. + - швидка перевірка сесії: `/activation always`. - - коли існує `channels.telegram.groups`, група має бути вказана там (або має бути `"*"`) + - коли `channels.telegram.groups` існує, група має бути вказана в списку (або має бути `"*"`) - перевірте, що бот є учасником групи - перегляньте логи: `openclaw logs --follow` для причин пропуску @@ -912,19 +912,19 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \ - - авторизуйте свою ідентичність відправника (pairing та/або числовий `allowFrom`) - - авторизація команд застосовується навіть тоді, коли групова політика має значення `open` - - `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що нативне меню має забагато записів; зменште кількість команд plugin/Skills/кастомних або вимкніть нативні меню - - `setMyCommands failed` з помилками network/fetch зазвичай вказує на проблеми досяжності DNS/HTTPS до `api.telegram.org` + - авторизуйте свою ідентичність відправника (сполучення та/або числовий `allowFrom`) + - авторизація команд усе одно застосовується, навіть якщо політика групи — `open` + - `setMyCommands failed` із `BOT_COMMANDS_TOO_MUCH` означає, що нативне меню має занадто багато записів; зменште кількість команд Plugin/Skills/користувацьких команд або вимкніть нативні меню + - `setMyCommands failed` із помилками network/fetch зазвичай вказує на проблеми досяжності DNS/HTTPS до `api.telegram.org` - - Node 22+ + кастомний fetch/proxy можуть спричиняти негайне переривання, якщо типи AbortSignal не збігаються. - - На деяких хостах `api.telegram.org` спочатку визначається в IPv6; зламаний вихідний IPv6 може спричиняти періодичні збої Telegram API. - - Якщо логи містять `TypeError: fetch failed` або `Network request for 'getUpdates' failed!`, OpenClaw тепер повторює їх як відновлювані мережеві помилки. - - На VPS-хостах з нестабільним прямим egress/TLS маршрутизуйте виклики Telegram API через `channels.telegram.proxy`: + - Node 22+ + custom fetch/proxy можуть викликати негайне переривання, якщо типи AbortSignal не збігаються. + - Деякі хости спочатку визначають `api.telegram.org` у IPv6; несправний вихідний IPv6 може спричиняти періодичні збої Telegram API. + - Якщо логи містять `TypeError: fetch failed` або `Network request for 'getUpdates' failed!`, OpenClaw тепер повторює такі спроби як відновлювані помилки мережі. + - На VPS-хостах із нестабільним прямим виходом/TLS маршрутизуйте виклики Telegram API через `channels.telegram.proxy`: ```yaml channels: @@ -932,8 +932,8 @@ channels: proxy: socks5://:@proxy-host:1080 ``` - - Node 22+ типово використовує `autoSelectFamily=true` (окрім WSL2) і `dnsResultOrder=ipv4first`. - - Якщо ваш хост — WSL2 або явно краще працює лише з IPv4, примусово задайте вибір family: + - У Node 22+ за замовчуванням `autoSelectFamily=true` (крім WSL2) і `dnsResultOrder=ipv4first`. + - Якщо ваш хост — WSL2 або йому явно краще працювати в режимі лише IPv4, примусово задайте вибір сімейства: ```yaml channels: @@ -942,11 +942,11 @@ channels: autoSelectFamily: false ``` - - Відповіді з benchmark-діапазону RFC 2544 (`198.18.0.0/15`) уже типово дозволені - для завантажень медіа Telegram. Якщо довірений fake-IP або + - Відповіді з benchmark-range RFC 2544 (`198.18.0.0/15`) уже дозволені + за замовчуванням для завантажень медіа Telegram. Якщо довірений fake-IP або transparent proxy переписує `api.telegram.org` на якусь іншу приватну/внутрішню/special-use адресу під час завантаження медіа, ви можете - явно ввімкнути цей обхід лише для Telegram: + явно ввімкнути обхід лише для Telegram: ```yaml channels: @@ -955,24 +955,25 @@ channels: dangerouslyAllowPrivateNetwork: true ``` - - Те саме явне ввімкнення доступне для окремого облікового запису за шляхом + - Така сама явна опція доступна для окремого облікового запису в `channels.telegram.accounts..network.dangerouslyAllowPrivateNetwork`. - Якщо ваш proxy визначає медіахости Telegram у `198.18.x.x`, спочатку залиште - небезпечний прапорець вимкненим. Telegram media уже типово дозволяє benchmark-діапазон RFC 2544. + небезпечний прапорець вимкненим. Медіа Telegram уже дозволяють діапазон RFC 2544 + за замовчуванням. `channels.telegram.network.dangerouslyAllowPrivateNetwork` послаблює захист Telegram - media від SSRF. Використовуйте це лише в довірених середовищах proxy, - контрольованих оператором, як-от Clash, Mihomo або fake-IP-маршрутизація Surge, - коли вони синтезують приватні або special-use відповіді поза benchmark-діапазоном RFC 2544. - Для звичайного публічного доступу Telegram через інтернет залишайте це вимкненим. + media SSRF. Використовуйте це лише в довірених середовищах із proxy, контрольованих оператором, + таких як маршрутизація fake-IP у Clash, Mihomo або Surge, коли вони синтезують + приватні або special-use відповіді поза межами benchmark range RFC 2544. Для звичайного + доступу до Telegram через публічний інтернет залишайте це вимкненим. - - Тимчасові перевизначення через змінні середовища: + - Перевизначення середовища (тимчасові): - `OPENCLAW_TELEGRAM_DISABLE_AUTO_SELECT_FAMILY=1` - `OPENCLAW_TELEGRAM_ENABLE_AUTO_SELECT_FAMILY=1` - `OPENCLAW_TELEGRAM_DNS_RESULT_ORDER=ipv4first` - - Перевірка DNS-відповідей: + - Перевірте відповіді DNS: ```bash dig +short api.telegram.org A @@ -982,83 +983,83 @@ dig +short api.telegram.org AAAA -Додаткова допомога: [Усунення несправностей каналів](/channels/troubleshooting). +Додаткова допомога: [Усунення проблем каналу](/uk/channels/troubleshooting). -## Вказівники на довідник конфігурації Telegram +## Вказівники на довідник config Telegram Основний довідник: -- `channels.telegram.enabled`: увімкнення/вимкнення запуску каналу. +- `channels.telegram.enabled`: увімкнути/вимкнути запуск каналу. - `channels.telegram.botToken`: токен бота (BotFather). -- `channels.telegram.tokenFile`: читання токена зі звичайного шляху до файлу. Символічні посилання відхиляються. -- `channels.telegram.dmPolicy`: `pairing | allowlist | open | disabled` (типово: pairing). -- `channels.telegram.allowFrom`: allowlist DM (числові ID користувачів Telegram). Для `allowlist` потрібен щонайменше один ID відправника. Для `open` потрібен `"*"`. `openclaw doctor --fix` може перетворити застарілі записи `@username` на ID і може відновити записи allowlist із файлів pairing-store у сценаріях міграції allowlist. -- `channels.telegram.actions.poll`: увімкнення або вимкнення створення Telegram poll (типово: увімкнено; усе одно потребує `sendMessage`). -- `channels.telegram.defaultTo`: типова ціль Telegram, яку використовує CLI `--deliver`, коли не задано явний `--reply-to`. -- `channels.telegram.groupPolicy`: `open | allowlist | disabled` (типово: allowlist). -- `channels.telegram.groupAllowFrom`: allowlist відправників у групах (числові ID користувачів Telegram). `openclaw doctor --fix` може перетворити застарілі записи `@username` на ID. Нечислові записи ігноруються під час авторизації. Групова авторизація не використовує резервне значення зі сховища pairing для DM (`2026.2.25+`). -- Пріоритет для кількох облікових записів: - - Коли налаштовано два або більше account ID, задайте `channels.telegram.defaultAccount` (або включіть `channels.telegram.accounts.default`), щоб явно визначити типову маршрутизацію. - - Якщо не задано жодного з них, OpenClaw використовує резервне значення першого нормалізованого account ID, а `openclaw doctor` видає попередження. +- `channels.telegram.tokenFile`: читати токен зі шляху до звичайного файла. Symlink відхиляються. +- `channels.telegram.dmPolicy`: `pairing | allowlist | open | disabled` (за замовчуванням: pairing). +- `channels.telegram.allowFrom`: DM allowlist (числові ID користувачів Telegram). `allowlist` потребує принаймні одного ID відправника. `open` потребує `"*"`. `openclaw doctor --fix` може перетворити застарілі записи `@username` на ID, а також може відновити записи allowlist із файлів pairing-store у потоках міграції allowlist. +- `channels.telegram.actions.poll`: увімкнути або вимкнути створення poll у Telegram (за замовчуванням: увімкнено; усе одно потребує `sendMessage`). +- `channels.telegram.defaultTo`: ціль Telegram за замовчуванням, яку використовує CLI `--deliver`, коли не задано явний `--reply-to`. +- `channels.telegram.groupPolicy`: `open | allowlist | disabled` (за замовчуванням: allowlist). +- `channels.telegram.groupAllowFrom`: allowlist відправників у групах (числові ID користувачів Telegram). `openclaw doctor --fix` може перетворити застарілі записи `@username` на ID. Нечислові записи ігноруються під час auth. Auth у групах не використовує резервний варіант DM pairing-store (`2026.2.25+`). +- Пріоритетність multi-account: + - Коли налаштовано два або більше ID облікових записів, задайте `channels.telegram.defaultAccount` (або включіть `channels.telegram.accounts.default`), щоб зробити маршрутизацію за замовчуванням явною. + - Якщо не задано ні те, ні інше, OpenClaw використовує перший нормалізований ID облікового запису як резервний варіант, а `openclaw doctor` показує попередження. - `channels.telegram.accounts.default.allowFrom` і `channels.telegram.accounts.default.groupAllowFrom` застосовуються лише до облікового запису `default`. - - Іменовані облікові записи успадковують `channels.telegram.allowFrom` і `channels.telegram.groupAllowFrom`, коли значення на рівні облікового запису не задані. + - Іменовані облікові записи успадковують `channels.telegram.allowFrom` і `channels.telegram.groupAllowFrom`, коли значення на рівні облікового запису не задано. - Іменовані облікові записи не успадковують `channels.telegram.accounts.default.allowFrom` / `groupAllowFrom`. -- `channels.telegram.groups`: типові значення для груп + allowlist (використовуйте `"*"` для глобальних типових значень). +- `channels.telegram.groups`: значення за замовчуванням для окремих груп + allowlist (використовуйте `"*"` для глобальних значень за замовчуванням). - `channels.telegram.groups..groupPolicy`: перевизначення groupPolicy для окремої групи (`open | allowlist | disabled`). - - `channels.telegram.groups..requireMention`: типове gating згадувань. - - `channels.telegram.groups..skills`: фільтр skill (omit = усі Skills, empty = жодного). + - `channels.telegram.groups..requireMention`: значення за замовчуванням для обов’язкової згадки. + - `channels.telegram.groups..skills`: фільтр Skills (не вказано = усі Skills, порожньо = жодного). - `channels.telegram.groups..allowFrom`: перевизначення allowlist відправників для окремої групи. - - `channels.telegram.groups..systemPrompt`: додатковий system prompt для групи. - - `channels.telegram.groups..enabled`: вимикає групу, коли має значення `false`. - - `channels.telegram.groups..topics..*`: перевизначення для окремої теми (поля групи + `agentId`, що діє лише для теми). - - `channels.telegram.groups..topics..agentId`: маршрутизує цю тему до конкретного агента (перевизначає маршрутизацію на рівні групи й через binding). + - `channels.telegram.groups..systemPrompt`: додатковий системний prompt для групи. + - `channels.telegram.groups..enabled`: вимкнути групу, якщо `false`. + - `channels.telegram.groups..topics..*`: перевизначення для окремої теми (поля групи + `agentId`, який доступний лише для теми). + - `channels.telegram.groups..topics..agentId`: маршрутизувати цю тему до конкретного агента (перевизначає маршрутизацію на рівні групи та binding). - `channels.telegram.groups..topics..groupPolicy`: перевизначення groupPolicy для окремої теми (`open | allowlist | disabled`). -- `channels.telegram.groups..topics..requireMention`: перевизначення gating згадувань для окремої теми. -- `bindings[]` верхнього рівня з `type: "acp"` і канонічним ID теми `chatId:topic:topicId` у `match.peer.id`: поля постійної прив’язки ACP до теми (див. [ACP Agents](/tools/acp-agents#channel-specific-settings)). -- `channels.telegram.direct..topics..agentId`: маршрутизує теми DM до конкретного агента (та сама поведінка, що й для тем форуму). -- `channels.telegram.execApprovals.enabled`: увімкнення Telegram як клієнта погодження exec через чат для цього облікового запису. -- `channels.telegram.execApprovals.approvers`: ID користувачів Telegram, яким дозволено схвалювати або відхиляти запити exec. Необов’язково, якщо `channels.telegram.allowFrom` або прямий `channels.telegram.defaultTo` уже ідентифікує власника. -- `channels.telegram.execApprovals.target`: `dm | channel | both` (типово: `dm`). `channel` і `both` зберігають початкову тему Telegram, якщо вона є. -- `channels.telegram.execApprovals.agentFilter`: необов’язковий фільтр ID агента для пересланих запитів на погодження. -- `channels.telegram.execApprovals.sessionFilter`: необов’язковий фільтр ключа сесії (substring або regex) для пересланих запитів на погодження. -- `channels.telegram.accounts..execApprovals`: перевизначення на рівні облікового запису для маршрутизації погодження exec у Telegram та авторизації погоджувачів. -- `channels.telegram.capabilities.inlineButtons`: `off | dm | group | all | allowlist` (типово: allowlist). -- `channels.telegram.accounts..capabilities.inlineButtons`: перевизначення на рівні облікового запису. -- `channels.telegram.commands.nativeSkills`: увімкнення/вимкнення нативних команд Skills у Telegram. -- `channels.telegram.replyToMode`: `off | first | all` (типово: `off`). -- `channels.telegram.textChunkLimit`: розмір вихідного chunk (символи). -- `channels.telegram.chunkMode`: `length` (типово) або `newline`, щоб розбивати за порожніми рядками (межами абзаців) перед розбиттям за довжиною. -- `channels.telegram.linkPreview`: перемикач попереднього перегляду посилань для вихідних повідомлень (типово: true). -- `channels.telegram.streaming`: `off | partial | block | progress` (live preview stream; типово: `partial`; `progress` зіставляється з `partial`; `block` — сумісність із застарілим режимом preview). Telegram preview streaming використовує одне повідомлення попереднього перегляду, яке редагується на місці. -- `channels.telegram.mediaMaxMb`: ліміт вхідних/вихідних медіа Telegram (МБ, типово: 100). -- `channels.telegram.retry`: політика повторних спроб для допоміжних функцій надсилання Telegram (CLI/tools/actions) при відновлюваних вихідних помилках API (attempts, minDelayMs, maxDelayMs, jitter). -- `channels.telegram.network.autoSelectFamily`: перевизначення Node autoSelectFamily (true=увімкнути, false=вимкнути). Типово ввімкнено на Node 22+, а у WSL2 типово вимкнено. -- `channels.telegram.network.dnsResultOrder`: перевизначення порядку результатів DNS (`ipv4first` або `verbatim`). Типово `ipv4first` на Node 22+. -- `channels.telegram.network.dangerouslyAllowPrivateNetwork`: небезпечне явне ввімкнення для довірених середовищ fake-IP або transparent proxy, де завантаження медіа Telegram визначає `api.telegram.org` у приватні/внутрішні/special-use адреси поза типовим дозволеним benchmark-діапазоном RFC 2544. +- `channels.telegram.groups..topics..requireMention`: перевизначення обов’язкової згадки для окремої теми. +- верхньорівневий `bindings[]` з `type: "acp"` і канонічним ID теми `chatId:topic:topicId` у `match.peer.id`: поля постійної прив’язки тем ACP (див. [ACP Agents](/uk/tools/acp-agents#channel-specific-settings)). +- `channels.telegram.direct..topics..agentId`: маршрутизувати теми DM до конкретного агента (така сама поведінка, як у тем форуму). +- `channels.telegram.execApprovals.enabled`: увімкнути Telegram як клієнт підтвердження exec на основі чату для цього облікового запису. +- `channels.telegram.execApprovals.approvers`: ID користувачів Telegram, яким дозволено схвалювати або відхиляти запити exec. Необов’язково, якщо `channels.telegram.allowFrom` або прямий `channels.telegram.defaultTo` уже визначає власника. +- `channels.telegram.execApprovals.target`: `dm | channel | both` (за замовчуванням: `dm`). `channel` і `both` зберігають вихідну тему Telegram, якщо вона є. +- `channels.telegram.execApprovals.agentFilter`: необов’язковий фільтр ID агента для пересланих запитів на підтвердження. +- `channels.telegram.execApprovals.sessionFilter`: необов’язковий фільтр ключа сесії (підрядок або regex) для пересланих запитів на підтвердження. +- `channels.telegram.accounts..execApprovals`: перевизначення для окремого облікового запису для маршрутизації підтверджень exec у Telegram та авторизації тих, хто підтверджує. +- `channels.telegram.capabilities.inlineButtons`: `off | dm | group | all | allowlist` (за замовчуванням: allowlist). +- `channels.telegram.accounts..capabilities.inlineButtons`: перевизначення для окремого облікового запису. +- `channels.telegram.commands.nativeSkills`: увімкнути/вимкнути нативні команди Skills у Telegram. +- `channels.telegram.replyToMode`: `off | first | all` (за замовчуванням: `off`). +- `channels.telegram.textChunkLimit`: розмір вихідного фрагмента (символів). +- `channels.telegram.chunkMode`: `length` (за замовчуванням) або `newline`, щоб розбивати за порожніми рядками (межами абзаців) перед розбиттям за довжиною. +- `channels.telegram.linkPreview`: перемикач попереднього перегляду посилань для вихідних повідомлень (за замовчуванням: true). +- `channels.telegram.streaming`: `off | partial | block | progress` (live stream preview; за замовчуванням: `partial`; `progress` зіставляється з `partial`; `block` — сумісність із застарілим режимом preview). Preview streaming у Telegram використовує одне повідомлення попереднього перегляду, яке редагується на місці. +- `channels.telegram.mediaMaxMb`: обмеження медіа Telegram для вхідних/вихідних даних (МБ, за замовчуванням: 100). +- `channels.telegram.retry`: політика повторних спроб для допоміжних функцій надсилання Telegram (CLI/tools/actions) у разі відновлюваних вихідних помилок API (`attempts`, `minDelayMs`, `maxDelayMs`, `jitter`). +- `channels.telegram.network.autoSelectFamily`: перевизначити Node autoSelectFamily (true=увімкнути, false=вимкнути). За замовчуванням увімкнено в Node 22+, а для WSL2 за замовчуванням вимкнено. +- `channels.telegram.network.dnsResultOrder`: перевизначити порядок результатів DNS (`ipv4first` або `verbatim`). За замовчуванням `ipv4first` у Node 22+. +- `channels.telegram.network.dangerouslyAllowPrivateNetwork`: небезпечний явний дозвіл для довірених середовищ із fake-IP або transparent proxy, де завантаження медіа Telegram визначають `api.telegram.org` у приватні/внутрішні/special-use адреси поза межами дозволеного за замовчуванням benchmark-range RFC 2544. - `channels.telegram.proxy`: URL proxy для викликів Bot API (SOCKS/HTTP). -- `channels.telegram.webhookUrl`: увімкнення режиму webhook (потрібен `channels.telegram.webhookSecret`). -- `channels.telegram.webhookSecret`: секрет webhook (обов’язковий, коли задано webhookUrl). -- `channels.telegram.webhookPath`: локальний шлях webhook (типово `/telegram-webhook`). -- `channels.telegram.webhookHost`: локальний хост прив’язки webhook (типово `127.0.0.1`). -- `channels.telegram.webhookPort`: локальний порт прив’язки webhook (типово `8787`). -- `channels.telegram.actions.reactions`: gating реакцій інструментів Telegram. -- `channels.telegram.actions.sendMessage`: gating надсилання повідомлень інструментами Telegram. -- `channels.telegram.actions.deleteMessage`: gating видалення повідомлень інструментами Telegram. -- `channels.telegram.actions.sticker`: gating дій зі стикерами Telegram — надсилання та пошук (типово: false). -- `channels.telegram.reactionNotifications`: `off | own | all` — керує, які реакції запускають системні події (типово: `own`, якщо не задано). -- `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` — керує можливістю реакцій агента (типово: `minimal`, якщо не задано). -- `channels.telegram.errorPolicy`: `reply | silent` — керує поведінкою відповіді на помилки (типово: `reply`). Підтримуються перевизначення для облікового запису/групи/теми. -- `channels.telegram.errorCooldownMs`: мінімальна кількість мс між відповідями з помилками в одному чаті (типово: `60000`). Запобігає спаму помилками під час збоїв. +- `channels.telegram.webhookUrl`: увімкнути режим Webhook (потребує `channels.telegram.webhookSecret`). +- `channels.telegram.webhookSecret`: секрет Webhook (обов’язковий, коли задано webhookUrl). +- `channels.telegram.webhookPath`: локальний шлях Webhook (за замовчуванням `/telegram-webhook`). +- `channels.telegram.webhookHost`: локальний хост прив’язки Webhook (за замовчуванням `127.0.0.1`). +- `channels.telegram.webhookPort`: локальний порт прив’язки Webhook (за замовчуванням `8787`). +- `channels.telegram.actions.reactions`: керування дозволами для реакцій інструмента Telegram. +- `channels.telegram.actions.sendMessage`: керування дозволами для надсилання повідомлень інструментом Telegram. +- `channels.telegram.actions.deleteMessage`: керування дозволами для видалення повідомлень інструментом Telegram. +- `channels.telegram.actions.sticker`: керування дозволами для дій зі стікерами Telegram — надсилання та пошук (за замовчуванням: false). +- `channels.telegram.reactionNotifications`: `off | own | all` — керує тим, які реакції запускають системні події (за замовчуванням: `own`, якщо не задано). +- `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` — керує можливістю агента працювати з реакціями (за замовчуванням: `minimal`, якщо не задано). +- `channels.telegram.errorPolicy`: `reply | silent` — керує поведінкою відповіді на помилки (за замовчуванням: `reply`). Підтримуються перевизначення для окремого облікового запису/групи/теми. +- `channels.telegram.errorCooldownMs`: мінімальна кількість мс між відповідями про помилки в тому самому чаті (за замовчуванням: `60000`). Запобігає спаму помилками під час збоїв. -- [Довідник конфігурації - Telegram](/gateway/configuration-reference#telegram) +- [Довідник конфігурації - Telegram](/uk/gateway/configuration-reference#telegram) -Специфічні для Telegram поля з високим сигналом: +Поля Telegram із високим сигналом: -- startup/auth: `enabled`, `botToken`, `tokenFile`, `accounts.*` (`tokenFile` має вказувати на звичайний файл; символічні посилання відхиляються) -- керування доступом: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`, `groups.*.topics.*`, `bindings[]` верхнього рівня (`type: "acp"`) -- погодження exec: `execApprovals`, `accounts.*.execApprovals` -- команди/меню: `commands.native`, `commands.nativeSkills`, `customCommands` -- thread/відповіді: `replyToMode` +- startup/auth: `enabled`, `botToken`, `tokenFile`, `accounts.*` (`tokenFile` має вказувати на звичайний файл; symlink відхиляються) +- контроль доступу: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`, `groups.*.topics.*`, верхньорівневий `bindings[]` (`type: "acp"`) +- підтвердження exec: `execApprovals`, `accounts.*.execApprovals` +- команда/меню: `commands.native`, `commands.nativeSkills`, `customCommands` +- потоки/відповіді: `replyToMode` - streaming: `streaming` (preview), `blockStreaming` - форматування/доставка: `textChunkLimit`, `chunkMode`, `linkPreview`, `responsePrefix` - медіа/мережа: `mediaMaxMb`, `timeoutSeconds`, `retry`, `network.autoSelectFamily`, `network.dangerouslyAllowPrivateNetwork`, `proxy` @@ -1070,9 +1071,9 @@ dig +short api.telegram.org AAAA ## Пов’язане -- [Pairing](/channels/pairing) -- [Групи](/channels/groups) -- [Безпека](/gateway/security) -- [Маршрутизація каналів](/channels/channel-routing) -- [Маршрутизація з кількома агентами](/concepts/multi-agent) -- [Усунення несправностей](/channels/troubleshooting) +- [Сполучення](/uk/channels/pairing) +- [Групи](/uk/channels/groups) +- [Безпека](/uk/gateway/security) +- [Маршрутизація каналів](/uk/channels/channel-routing) +- [Маршрутизація multi-agent](/uk/concepts/multi-agent) +- [Усунення проблем](/uk/channels/troubleshooting) diff --git a/docs/uk/help/faq.md b/docs/uk/help/faq.md index 091511359..e9d2742e8 100644 --- a/docs/uk/help/faq.md +++ b/docs/uk/help/faq.md @@ -1,21 +1,21 @@ --- read_when: - - Відповіді на поширені запитання щодо налаштування, встановлення, онбордингу або підтримки під час роботи системи - - Тріаж проблем, про які повідомляють користувачі, перед глибшим налагодженням -summary: Часті запитання про налаштування, конфігурацію та використання OpenClaw + - Відповіді на поширені запитання щодо налаштування, встановлення, онбордингу або підтримки під час виконання. + - Сортування проблем, про які повідомляють користувачі, перед глибшим налагодженням +summary: Поширені запитання про налаштування, конфігурацію та використання OpenClaw title: Поширені запитання x-i18n: - generated_at: "2026-04-19T10:22:59Z" + generated_at: "2026-04-20T04:35:11Z" model: gpt-5.4 provider: openai - source_hash: de5a3b612607fc86c883466ff803b82466415644b7211d1c176f87e07641bb97 + source_hash: 6bdb17fc4d8c61a36f3a9fc3ca4a20f723cfa6c9bbbc92f963d6e313181f3451 source_path: help/faq.md workflow: 15 --- # Поширені запитання -Швидкі відповіді та глибше усунення несправностей для реальних сценаріїв налаштування (локальна розробка, VPS, multi-agent, OAuth/API-ключі, резервне перемикання моделей). Для діагностики під час роботи див. [Усунення несправностей](/uk/gateway/troubleshooting). Повний довідник із конфігурації див. у [Конфігурація](/uk/gateway/configuration). +Швидкі відповіді плюс глибше усунення проблем для реальних середовищ (локальна розробка, VPS, multi-agent, OAuth/API keys, резервне перемикання моделей). Для діагностики під час виконання див. [Усунення несправностей](/uk/gateway/troubleshooting). Для повного довідника з конфігурації див. [Конфігурація](/uk/gateway/configuration). ## Перші 60 секунд, якщо щось зламалося @@ -25,15 +25,15 @@ x-i18n: openclaw status ``` - Швидкий локальний підсумок: ОС + оновлення, доступність gateway/сервісу, агенти/сесії, конфігурація провайдера + проблеми під час роботи (коли gateway доступний). + Швидке локальне зведення: ОС + оновлення, доступність gateway/service, agents/sessions, конфігурація провайдера + проблеми під час виконання (коли gateway доступний). -2. **Звіт, який можна вставити (безпечний для поширення)** +2. **Звіт, який можна вставити й поділитися ним (безпечний для поширення)** ```bash openclaw status --all ``` - Діагностика в режимі лише читання з хвостом журналу (токени приховано). + Діагностика в режимі лише читання з хвостом логів (токени замасковано). 3. **Стан демона + порту** @@ -41,7 +41,7 @@ x-i18n: openclaw gateway status ``` - Показує час роботи supervisor у порівнянні з доступністю RPC, цільову URL-адресу probe та те, яку конфігурацію сервіс імовірно використовував. + Показує середовище виконання supervisor порівняно з доступністю RPC, цільову URL-адресу probe та те, яку конфігурацію служба, ймовірно, використовувала. 4. **Глибокі probe-перевірки** @@ -49,22 +49,22 @@ x-i18n: openclaw status --deep ``` - Виконує живу probe-перевірку стану gateway, зокрема probe-перевірки каналів, якщо підтримуються - (потрібен доступний gateway). Див. [Health](/uk/gateway/health). + Виконує живу probe-перевірку стану gateway, включно з probe-перевірками каналів, коли це підтримується + (потрібен доступний gateway). Див. [Стан](/uk/gateway/health). -5. **Перегляд останнього журналу** +5. **Показати хвіст останнього логу** ```bash openclaw logs --follow ``` - Якщо RPC недоступний, використайте запасний варіант: + Якщо RPC недоступний, скористайтеся запасним варіантом: ```bash tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)" ``` - Журнали у файлах відокремлені від журналів сервісу; див. [Логування](/uk/logging) і [Усунення несправностей](/uk/gateway/troubleshooting). + Файлові логи відокремлені від логів служби; див. [Логування](/uk/logging) і [Усунення несправностей](/uk/gateway/troubleshooting). 6. **Запустіть doctor (виправлення)** @@ -74,29 +74,29 @@ x-i18n: Виправляє/мігрує конфігурацію/стан + виконує перевірки стану. Див. [Doctor](/uk/gateway/doctor). -7. **Знімок стану gateway** +7. **Знімок стану Gateway** ```bash openclaw health --json - openclaw health --verbose # показує цільову URL-адресу + шлях до конфігурації в разі помилок + openclaw health --verbose # показує цільову URL-адресу + шлях до конфігурації у разі помилок ``` - Запитує у запущеного gateway повний знімок стану (лише WS). Див. [Health](/uk/gateway/health). + Запитує в запущеного gateway повний знімок стану (лише WS). Див. [Стан](/uk/gateway/health). ## Швидкий старт і початкове налаштування - - Використайте локального AI-агента, який може **бачити вашу машину**. Це набагато ефективніше, ніж запитувати - у Discord, тому що більшість випадків "я застряг" — це **проблеми локальної конфігурації або середовища**, + + Використайте локального AI-агента, який може **бачити вашу машину**. Це набагато ефективніше, ніж питати + у Discord, тому що більшість випадків "я застряг" — це **локальні проблеми з конфігурацією або середовищем**, які віддалені помічники не можуть перевірити. - **Claude Code**: [https://www.anthropic.com/claude-code/](https://www.anthropic.com/claude-code/) - **OpenAI Codex**: [https://openai.com/codex/](https://openai.com/codex/) - Ці інструменти можуть читати репозиторій, виконувати команди, перевіряти журнали та допомагати виправляти - налаштування на рівні машини (PATH, сервіси, дозволи, файли автентифікації). Надайте їм **повний checkout вихідного коду** - через hackable (git) install: + Ці інструменти можуть читати репозиторій, запускати команди, перевіряти логи й допомагати виправити + налаштування на рівні машини (PATH, служби, дозволи, auth-файли). Надайте їм **повний checkout вихідного коду** через + зламуваний (git) спосіб встановлення: ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git @@ -106,14 +106,14 @@ x-i18n: аналізувати точну версію, яку ви використовуєте. Ви завжди можете повернутися до стабільної версії пізніше, повторно запустивши інсталятор без `--install-method git`. - Порада: попросіть агента **спланувати й проконтролювати** виправлення (крок за кроком), а потім виконати лише + Порада: попросіть агента **спланувати та супроводжувати** виправлення (покроково), а потім виконати лише потрібні команди. Так зміни залишаться невеликими, і їх буде простіше перевірити. - Якщо ви виявили справжню помилку або виправлення, будь ласка, створіть GitHub issue або надішліть PR: + Якщо ви виявили справжню помилку або виправлення, будь ласка, створіть issue на GitHub або надішліть PR: [https://github.com/openclaw/openclaw/issues](https://github.com/openclaw/openclaw/issues) [https://github.com/openclaw/openclaw/pulls](https://github.com/openclaw/openclaw/pulls) - Почніть із цих команд (поділіться виводом, коли звертаєтеся по допомогу): + Почніть із цих команд (поділіться виводом, коли просите про допомогу): ```bash openclaw status @@ -123,9 +123,9 @@ x-i18n: Що вони роблять: - - `openclaw status`: швидкий знімок стану gateway/агента + базова конфігурація. - - `openclaw models status`: перевіряє автентифікацію провайдера + доступність моделей. - - `openclaw doctor`: перевіряє та виправляє поширені проблеми конфігурації/стану. + - `openclaw status`: швидкий знімок стану gateway/agent + базової конфігурації. + - `openclaw models status`: перевіряє auth провайдера + доступність моделі. + - `openclaw doctor`: перевіряє та виправляє типові проблеми з конфігурацією/станом. Інші корисні перевірки CLI: `openclaw status --all`, `openclaw logs --follow`, `openclaw gateway status`, `openclaw health --verbose`. @@ -138,29 +138,29 @@ x-i18n: Поширені причини пропуску Heartbeat: - - `quiet-hours`: поза межами налаштованого вікна active-hours - - `empty-heartbeat-file`: `HEARTBEAT.md` існує, але містить лише порожню/заголовкову заготовку - - `no-tasks-due`: режим завдань `HEARTBEAT.md` активний, але жоден із інтервалів завдань ще не настав - - `alerts-disabled`: усю видимість heartbeat вимкнено (`showOk`, `showAlerts` і `useIndicator` усі вимкнені) + - `quiet-hours`: поза налаштованим вікном active-hours + - `empty-heartbeat-file`: `HEARTBEAT.md` існує, але містить лише порожню/лише-заголовкову заготовку + - `no-tasks-due`: режим задач у `HEARTBEAT.md` активний, але жоден з інтервалів задач ще не настав + - `alerts-disabled`: уся видимість heartbeat вимкнена (`showOk`, `showAlerts` і `useIndicator` усі вимкнені) - У режимі завдань часові позначки настання оновлюються лише після завершення - реального запуску heartbeat. Пропущені запуски не позначають завдання як виконані. + У режимі задач мітки часу настання оновлюються лише після завершення + реального запуску heartbeat. Пропущені запуски не позначають задачі як виконані. - Документація: [Heartbeat](/uk/gateway/heartbeat), [Автоматизація й завдання](/uk/automation). + Документація: [Heartbeat](/uk/gateway/heartbeat), [Автоматизація та задачі](/uk/automation). - Репозиторій рекомендує запуск із вихідного коду та використання онбордингу: + Репозиторій рекомендує запуск із вихідного коду та використання onboarding: ```bash curl -fsSL https://openclaw.ai/install.sh | bash openclaw onboard --install-daemon ``` - Майстер також може автоматично збирати UI-ресурси. Після онбордингу зазвичай Gateway працює на порту **18789**. + Майстер також може автоматично зібрати UI assets. Після onboarding ви зазвичай запускаєте Gateway на порту **18789**. - Із вихідного коду (контриб'ютори/розробка): + Із вихідного коду (для контриб'юторів/розробників): ```bash git clone https://github.com/openclaw/openclaw.git @@ -171,90 +171,90 @@ x-i18n: openclaw onboard ``` - Якщо у вас ще немає глобального встановлення, запустіть через `pnpm openclaw onboard`. + Якщо у вас ще немає глобального встановлення, запустіть це через `pnpm openclaw onboard`. - - Майстер відкриває ваш браузер із чистою (без токенів) URL-адресою панелі керування одразу після онбордингу, а також виводить посилання в підсумку. Залиште цю вкладку відкритою; якщо вона не запустилася, скопіюйте й вставте надруковану URL-адресу на цій самій машині. + + Майстер відкриває браузер із чистою (без токена) URL-адресою dashboard одразу після onboarding, а також виводить посилання у зведенні. Тримайте цю вкладку відкритою; якщо її не було запущено, скопіюйте/вставте надруковану URL-адресу на тій самій машині. - + **Localhost (та сама машина):** - Відкрийте `http://127.0.0.1:18789/`. - - Якщо система просить автентифікацію спільним секретом, вставте налаштований токен або пароль у налаштуваннях Control UI. + - Якщо запитується auth зі спільним секретом, вставте налаштований токен або пароль у налаштуваннях Control UI. - Джерело токена: `gateway.auth.token` (або `OPENCLAW_GATEWAY_TOKEN`). - Джерело пароля: `gateway.auth.password` (або `OPENCLAW_GATEWAY_PASSWORD`). - Якщо спільний секрет ще не налаштовано, згенеруйте токен за допомогою `openclaw doctor --generate-gateway-token`. **Не на localhost:** - - **Tailscale Serve** (рекомендовано): залиште bind loopback, запустіть `openclaw gateway --tailscale serve`, відкрийте `https:///`. Якщо `gateway.auth.allowTailscale` має значення `true`, заголовки ідентифікації задовольняють автентифікацію Control UI/WebSocket (без вставлення спільного секрету, за умови довіреного хоста gateway); HTTP API, як і раніше, вимагають автентифікації спільним секретом, якщо ви навмисно не використовуєте private-ingress `none` або trusted-proxy HTTP auth. - Невдалі одночасні спроби автентифікації Serve від того самого клієнта серіалізуються до того, як обмежувач невдалих автентифікацій їх зафіксує, тому друга невдала повторна спроба вже може показати `retry later`. - - **Bind до tailnet**: запустіть `openclaw gateway --bind tailnet --token ""` (або налаштуйте автентифікацію паролем), відкрийте `http://:18789/`, а потім вставте відповідний спільний секрет у налаштуваннях панелі. - - **Зворотний proxy з урахуванням ідентифікації**: залиште Gateway за trusted proxy не в loopback, налаштуйте `gateway.auth.mode: "trusted-proxy"`, а потім відкрийте URL proxy. - - **SSH-тунель**: `ssh -N -L 18789:127.0.0.1:18789 user@host`, а потім відкрийте `http://127.0.0.1:18789/`. Автентифікація спільним секретом і надалі застосовується через тунель; вставте налаштований токен або пароль, якщо система запросить. + - **Tailscale Serve** (рекомендовано): залиште bind loopback, запустіть `openclaw gateway --tailscale serve`, відкрийте `https:///`. Якщо `gateway.auth.allowTailscale` має значення `true`, заголовки identity задовольняють auth для Control UI/WebSocket (без вставлення спільного секрету, за умови довіри до хоста gateway); HTTP API усе одно вимагають auth зі спільним секретом, якщо ви навмисно не використовуєте private-ingress `none` або auth HTTP trusted-proxy. + Некоректні одночасні спроби auth від того самого клієнта серіалізуються до того, як обмежувач failed-auth зафіксує їх, тож друга невдала повторна спроба вже може показувати `retry later`. + - **Прив’язка до tailnet**: запустіть `openclaw gateway --bind tailnet --token ""` (або налаштуйте auth за паролем), відкрийте `http://:18789/`, а потім вставте відповідний спільний секрет у налаштуваннях dashboard. + - **Reverse proxy з awareness identity**: залиште Gateway за trusted proxy не на loopback, налаштуйте `gateway.auth.mode: "trusted-proxy"`, а потім відкрийте URL-адресу proxy. + - **SSH tunnel**: `ssh -N -L 18789:127.0.0.1:18789 user@host`, а потім відкрийте `http://127.0.0.1:18789/`. Auth зі спільним секретом усе одно застосовується через tunnel; якщо буде запит, вставте налаштований токен або пароль. - Див. [Панель керування](/web/dashboard) і [Веб-поверхні](/web) для деталей режимів bind і автентифікації. + Див. [Dashboard](/web/dashboard) і [Web surfaces](/web) щодо режимів bind та деталей auth. - - Вони керують різними рівнями: + + Вони керують різними шарами: - - `approvals.exec`: пересилає запити на погодження до чат-призначень - - `channels..execApprovals`: робить цей канал нативним клієнтом погодження для погоджень exec + - `approvals.exec`: пересилає запити на схвалення до призначень у чаті + - `channels..execApprovals`: робить цей канал нативним клієнтом схвалення для exec approvals - Політика host exec і далі є справжнім шлюзом погодження. Конфігурація чату лише керує тим, - де з'являються запити на погодження та як люди можуть на них відповідати. + Політика host exec усе одно залишається справжнім бар’єром схвалення. Конфігурація чату лише визначає, де з’являються + запити на схвалення і як люди можуть на них відповідати. - У більшості налаштувань вам **не** потрібні обидві: + У більшості середовищ вам **не** потрібні обидві: - - Якщо чат уже підтримує команди та відповіді, `/approve` у тому ж чаті працює через спільний шлях. - - Якщо підтримуваний нативний канал може безпечно визначати тих, хто погоджує, OpenClaw тепер автоматично вмикає нативні погодження DM-first, коли `channels..execApprovals.enabled` не задано або має значення `"auto"`. - - Коли доступні нативні картки/кнопки погодження, цей нативний UI є основним шляхом; агент має включати ручну команду `/approve` лише в тому разі, якщо результат інструмента вказує, що погодження в чаті недоступні або ручне погодження є єдиним шляхом. - - Використовуйте `approvals.exec` лише тоді, коли запити також потрібно пересилати в інші чати або окремі ops-кімнати. - - Використовуйте `channels..execApprovals.target: "channel"` або `"both"` лише тоді, коли ви явно хочете, щоб запити на погодження публікувалися назад у вихідну кімнату/тему. - - Погодження Plugin — це ще окрема категорія: за замовчуванням вони використовують `/approve` у тому ж чаті, необов'язкове пересилання `approvals.plugin`, і лише деякі нативні канали додатково підтримують нативну обробку погоджень Plugin. + - Якщо чат уже підтримує команди та відповіді, `/approve` у тому самому чаті працює через спільний шлях. + - Якщо підтримуваний нативний канал може безпечно визначати тих, хто схвалює, OpenClaw тепер автоматично вмикає нативні схвалення DM-first, коли `channels..execApprovals.enabled` не задано або має значення `"auto"`. + - Коли доступні нативні картки/кнопки схвалення, цей нативний UI є основним шляхом; агент має включати ручну команду `/approve` лише якщо результат інструмента повідомляє, що chat approvals недоступні або ручне схвалення є єдиним шляхом. + - Використовуйте `approvals.exec` лише тоді, коли запити також потрібно пересилати в інші чати або явні кімнати ops. + - Використовуйте `channels..execApprovals.target: "channel"` або `"both"` лише тоді, коли ви явно хочете, щоб запити на схвалення публікувалися назад у вихідну кімнату/тему. + - Схвалення Plugin знову ж окремі: за замовчуванням вони використовують `/approve` у тому самому чаті, необов’язкове пересилання `approvals.plugin`, і лише деякі нативні канали додатково зберігають нативну обробку plugin-approval. - Коротко: пересилання потрібне для маршрутизації, а конфігурація нативного клієнта — для багатшого UX, специфічного для каналу. - Див. [Погодження Exec](/uk/tools/exec-approvals). + Коротко: пересилання — для маршрутизації, конфігурація нативного клієнта — для багатшого UX, специфічного для каналу. + Див. [Схвалення Exec](/uk/tools/exec-approvals). - Потрібен Node **>= 22**. Рекомендовано `pnpm`. Bun **не рекомендовано** для Gateway. + Потрібен Node **>= 22**. Рекомендується `pnpm`. Bun **не рекомендується** для Gateway. - Так. Gateway є легким — у документації вказано, що для особистого використання достатньо **512MB-1GB RAM**, **1 core** і приблизно **500MB** - диска, а також зазначено, що **Raspberry Pi 4 може його запускати**. + Так. Gateway є легким — у документації вказано, що для персонального використання достатньо **512MB-1GB RAM**, **1 core** та приблизно **500MB** + дискового простору, а також зазначено, що **Raspberry Pi 4 може це запускати**. - Якщо вам потрібен додатковий запас ресурсів (журнали, медіа, інші сервіси), **рекомендовано 2GB**, - але це не жорсткий мінімум. + Якщо вам потрібен додатковий запас (логи, медіа, інші служби), **рекомендується 2GB**, але це + не жорсткий мінімум. - Порада: невеликий Pi/VPS може розміщувати Gateway, а ви можете під'єднувати **nodes** на ноутбуці/телефоні для + Порада: невеликий Pi/VPS може хостити Gateway, а ви можете підключити **nodes** на ноутбуці/телефоні для локального екрана/камери/canvas або виконання команд. Див. [Nodes](/uk/nodes). - - Коротко: це працює, але очікуйте певних труднощів. + + Коротко: це працює, але очікуйте шорсткі моменти. - - Використовуйте **64-bit** ОС і тримайте Node >= 22. - - Віддавайте перевагу **hackable (git) install**, щоб мати змогу бачити журнали та швидко оновлюватися. + - Використовуйте **64-bit** ОС і Node >= 22. + - Віддавайте перевагу **зламуваному (git) встановленню**, щоб бачити логи та швидко оновлюватися. - Починайте без channels/Skills, а потім додавайте їх по одному. - - Якщо натрапите на дивні проблеми з бінарними файлами, зазвичай це проблема **ARM compatibility**. + - Якщо натрапите на дивні проблеми з бінарниками, зазвичай це проблема **сумісності ARM**. Документація: [Linux](/uk/platforms/linux), [Встановлення](/uk/install). - - Цей екран залежить від того, чи доступний Gateway і чи пройдено автентифікацію. TUI також надсилає - "Wake up, my friend!" автоматично під час першого запуску. Якщо ви бачите цей рядок **без відповіді** - і кількість токенів залишається 0, агент так і не запустився. + + Цей екран залежить від того, чи доступний Gateway і чи пройдено auth. TUI також автоматично надсилає + "Wake up, my friend!" під час першого hatch. Якщо ви бачите цей рядок **без відповіді** + і токени залишаються на 0, agent так і не запустився. 1. Перезапустіть Gateway: @@ -262,7 +262,7 @@ x-i18n: openclaw gateway restart ``` - 2. Перевірте статус + автентифікацію: + 2. Перевірте статус + auth: ```bash openclaw status @@ -270,33 +270,33 @@ x-i18n: openclaw logs --follow ``` - 3. Якщо все ще зависає, виконайте: + 3. Якщо це все ще зависає, виконайте: ```bash openclaw doctor ``` - Якщо Gateway віддалений, переконайтеся, що тунель/Tailscale-з'єднання працює і що UI + Якщо Gateway віддалений, переконайтеся, що tunnel/Tailscale з’єднання активне і що UI вказує на правильний Gateway. Див. [Віддалений доступ](/uk/gateway/remote). - - Так. Скопіюйте **каталог стану** і **workspace**, а потім один раз запустіть Doctor. Це - збереже вашого бота "точно таким самим" (пам'ять, історія сесій, автентифікація та стан - каналу), якщо ви скопіюєте **обидва** розташування: + + Так. Скопіюйте **каталог стану** та **workspace**, а потім один раз запустіть Doctor. Це + збереже вашого бота "точно таким самим" (пам’ять, історію сесій, auth і стан + каналів), якщо ви скопіюєте **обидва** розташування: - 1. Встановіть OpenClaw на новій машині. + 1. Встановіть OpenClaw на нову машину. 2. Скопіюйте `$OPENCLAW_STATE_DIR` (типово: `~/.openclaw`) зі старої машини. - 3. Скопіюйте свій workspace (типово: `~/.openclaw/workspace`). - 4. Запустіть `openclaw doctor` і перезапустіть сервіс Gateway. + 3. Скопіюйте ваш workspace (типово: `~/.openclaw/workspace`). + 4. Виконайте `openclaw doctor` і перезапустіть службу Gateway. - Це зберігає конфігурацію, профілі автентифікації, облікові дані WhatsApp, сесії та пам’ять. Якщо ви працюєте - у віддаленому режимі, пам’ятайте, що хост gateway є власником сховища сесій і workspace. + Це зберігає конфігурацію, auth-профілі, облікові дані WhatsApp, сесії та пам’ять. Якщо ви працюєте + у віддаленому режимі, пам’ятайте, що хост gateway зберігає сховище сесій і workspace. **Важливо:** якщо ви лише commit/push свій workspace на GitHub, ви створюєте резервну копію - **пам’яті + bootstrap-файлів**, але **не** історії сесій чи автентифікації. Вони зберігаються - у `~/.openclaw/` (наприклад, `~/.openclaw/agents//sessions/`). + **пам’яті + bootstrap-файлів**, але **не** історії сесій чи auth. Вони зберігаються + у `~/.openclaw/` (наприклад `~/.openclaw/agents//sessions/`). Пов’язане: [Міграція](/uk/install/migrating), [Де що зберігається на диску](#де-що-зберігається-на-диску), [Workspace агента](/uk/concepts/agent-workspace), [Doctor](/uk/gateway/doctor), @@ -308,16 +308,16 @@ x-i18n: Перегляньте changelog на GitHub: [https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md](https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md) - Найновіші записи розміщені вгорі. Якщо верхній розділ позначено як **Unreleased**, тоді наступний датований - розділ — це остання випущена версія. Записи згруповано за **Highlights**, **Changes** і - **Fixes** (а також за розділами документації/іншими, коли потрібно). + Найновіші записи зверху. Якщо верхній розділ позначено як **Unreleased**, то наступний датований + розділ — це остання випущена версія. Записи згруповані за **Основне**, **Зміни** та + **Виправлення** (а також розділами документації/іншими, коли потрібно). Деякі з’єднання Comcast/Xfinity помилково блокують `docs.openclaw.ai` через Xfinity Advanced Security. Вимкніть її або додайте `docs.openclaw.ai` до allowlist, а потім повторіть спробу. - Будь ласка, допоможіть нам розблокувати сайт, повідомивши тут: [https://spa.xfinity.com/check_url_status](https://spa.xfinity.com/check_url_status). + Будь ласка, допоможіть нам розблокувати це, повідомивши тут: [https://spa.xfinity.com/check_url_status](https://spa.xfinity.com/check_url_status). Якщо ви все ще не можете відкрити сайт, документація дзеркалюється на GitHub: [https://github.com/openclaw/openclaw/tree/main/docs](https://github.com/openclaw/openclaw/tree/main/docs) @@ -331,19 +331,19 @@ x-i18n: - `beta` = рання збірка для тестування Зазвичай stable-реліз спочатку потрапляє в **beta**, а потім явний - крок просування переводить цю саму версію в `latest`. За потреби супроводжувачі також можуть - публікувати одразу в `latest`. Саме тому beta і stable можуть - вказувати на **одну й ту саму версію** після просування. + крок підвищення переміщує ту саму версію в `latest`. Мейнтейнери також можуть + опублікувати одразу в `latest`, коли це потрібно. Ось чому beta і stable можуть + вказувати на **одну й ту саму версію** після підвищення. - Подивіться, що змінилося: + Дивіться, що змінилося: [https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md](https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md) - Однорядкові команди встановлення та різницю між beta і dev див. в акордеоні нижче. + Однорядкові команди для встановлення та різницю між beta і dev дивіться в акордеоні нижче. - - **Beta** — це npm dist-tag `beta` (може збігатися з `latest` після просування). + + **Beta** — це npm dist-tag `beta` (може збігатися з `latest` після підвищення). **Dev** — це рухома вершина `main` (git); коли її публікують, вона використовує npm dist-tag `dev`. Однорядкові команди (macOS/Linux): @@ -363,10 +363,10 @@ x-i18n: - + Є два варіанти: - 1. **Канал dev (git checkout):** + 1. **Dev channel (git checkout):** ```bash openclaw update --channel dev @@ -374,7 +374,7 @@ x-i18n: Це перемикає вас на гілку `main` і оновлює з вихідного коду. - 2. **Hackable install (із сайту інсталятора):** + 2. **Зламуване встановлення (із сайту інсталятора):** ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git @@ -382,7 +382,7 @@ x-i18n: Це дає вам локальний репозиторій, який можна редагувати, а потім оновлювати через git. - Якщо ви віддаєте перевагу чистому клонуванню вручну, використайте: + Якщо ви віддаєте перевагу чистому клонуванню вручну, скористайтеся: ```bash git clone https://github.com/openclaw/openclaw.git @@ -396,13 +396,13 @@ x-i18n: - - Орієнтовно: + + Приблизний орієнтир: - **Встановлення:** 2–5 хвилин - - **Онбординг:** 5–15 хвилин залежно від кількості channels/models, які ви налаштовуєте + - **Onboarding:** 5–15 хвилин залежно від того, скільки каналів/моделей ви налаштовуєте - Якщо все зависає, скористайтеся [Інсталятор завис?](#швидкий-старт-і-початкове-налаштування) + Якщо все зависло, скористайтеся [Інсталятор завис?](#швидкий-старт-і-початкове-налаштування) і швидким циклом налагодження в [Я застряг](#швидкий-старт-і-початкове-налаштування). @@ -420,7 +420,7 @@ x-i18n: curl -fsSL https://openclaw.ai/install.sh | bash -s -- --beta --verbose ``` - Для hackable (git) install: + Для зламуваного (git) встановлення: ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git --verbose @@ -429,48 +429,48 @@ x-i18n: Еквівалент для Windows (PowerShell): ```powershell - # install.ps1 поки що не має окремого прапорця -Verbose. + # install.ps1 поки не має окремого прапорця -Verbose. Set-PSDebug -Trace 1 & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard Set-PSDebug -Trace 0 ``` - Інші параметри: [Прапорці інсталятора](/uk/install/installer). + Більше варіантів: [Прапорці інсталятора](/uk/install/installer). - + Дві поширені проблеми у Windows: **1) npm error spawn git / git not found** - - Установіть **Git for Windows** і переконайтеся, що `git` є у вашому PATH. + - Встановіть **Git for Windows** і переконайтеся, що `git` є у вашому PATH. - Закрийте й знову відкрийте PowerShell, а потім повторно запустіть інсталятор. - **2) після встановлення openclaw is not recognized** + **2) Після встановлення openclaw не розпізнається** - - Ваша глобальна папка bin для npm відсутня в PATH. + - Ваша глобальна папка npm bin відсутня в PATH. - Перевірте шлях: ```powershell npm config get prefix ``` - - Додайте цей каталог до свого PATH користувача (суфікс `\bin` у Windows не потрібен; у більшості систем це `%AppData%\npm`). + - Додайте цей каталог до вашого користувацького PATH (суфікс `\bin` у Windows не потрібен; у більшості систем це `%AppData%\npm`). - Закрийте й знову відкрийте PowerShell після оновлення PATH. - Якщо ви хочете найзручніше налаштування у Windows, використовуйте **WSL2** замість нативної Windows. + Якщо ви хочете найплавніше налаштування у Windows, використовуйте **WSL2** замість нативної Windows. Документація: [Windows](/uk/platforms/windows). - - Зазвичай це невідповідність кодової сторінки консолі в нативних оболонках Windows. + + Зазвичай це невідповідність code page консолі в нативних оболонках Windows. Симптоми: - - вивід `system.run`/`exec` показує китайський текст як mojibake - - та сама команда має нормальний вигляд в іншому профілі термінала + - Вивід `system.run`/`exec` показує китайський текст як mojibake + - Та сама команда нормально виглядає в іншому профілі термінала Швидкий обхідний шлях у PowerShell: @@ -487,15 +487,15 @@ x-i18n: openclaw gateway restart ``` - Якщо це все ще відтворюється в останній версії OpenClaw, відстежуйте/повідомляйте тут: + Якщо ви все ще відтворюєте це в останній версії OpenClaw, відстежуйте/повідомляйте тут: - [Issue #30640](https://github.com/openclaw/openclaw/issues/30640) - Використайте **hackable (git) install**, щоб мати повний вихідний код і документацію локально, а потім запитайте - свого бота (або Claude/Codex) _з цієї папки_, щоб він міг читати репозиторій і відповідати точно. + Використайте **зламуване (git) встановлення**, щоб мати локально повний вихідний код і документацію, а потім запитайте + свого бота (або Claude/Codex) _з цієї папки_, щоб він міг прочитати репозиторій і дати точну відповідь. ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git @@ -505,48 +505,48 @@ x-i18n: - - Коротка відповідь: дотримуйтеся посібника для Linux, а потім запустіть онбординг. + + Коротка відповідь: дотримуйтесь інструкції для Linux, а потім запустіть onboarding. - - Швидкий шлях для Linux + встановлення сервісу: [Linux](/uk/platforms/linux). + - Швидкий шлях для Linux + встановлення служби: [Linux](/uk/platforms/linux). - Повний покроковий посібник: [Початок роботи](/uk/start/getting-started). - Інсталятор + оновлення: [Встановлення й оновлення](/uk/install/updating). - - Підійде будь-який Linux VPS. Установіть на сервері, а потім використовуйте SSH/Tailscale для доступу до Gateway. + + Підійде будь-який Linux VPS. Встановіть на сервері, а потім використовуйте SSH/Tailscale для доступу до Gateway. - Посібники: [exe.dev](/uk/install/exe-dev), [Hetzner](/uk/install/hetzner), [Fly.io](/uk/install/fly). - Віддалений доступ: [Віддалений gateway](/uk/gateway/remote). + Інструкції: [exe.dev](/uk/install/exe-dev), [Hetzner](/uk/install/hetzner), [Fly.io](/uk/install/fly). + Віддалений доступ: [Віддалений Gateway](/uk/gateway/remote). - - Ми підтримуємо **хаб хостингу** з поширеними провайдерами. Виберіть один і дотримуйтеся посібника: + + Ми підтримуємо **хаб хостингу** з поширеними провайдерами. Оберіть потрібного й дотримуйтесь інструкції: - - [VPS hosting](/uk/vps) (усі провайдери в одному місці) + - [Хостинг VPS](/uk/vps) (усі провайдери в одному місці) - [Fly.io](/uk/install/fly) - [Hetzner](/uk/install/hetzner) - [exe.dev](/uk/install/exe-dev) Як це працює в хмарі: **Gateway працює на сервері**, а ви отримуєте до нього доступ - зі свого ноутбука/телефона через Control UI (або Tailscale/SSH). Ваші state + workspace - зберігаються на сервері, тож вважайте хост джерелом істини та створюйте його резервні копії. + зі свого ноутбука/телефона через Control UI (або Tailscale/SSH). Ваш стан + workspace + зберігаються на сервері, тож вважайте хост джерелом істини й робіть його резервні копії. Ви можете під’єднати **nodes** (Mac/iOS/Android/headless) до цього хмарного Gateway, щоб отримати доступ - до локального екрана/камери/canvas або виконувати команди на своєму ноутбуці, зберігаючи + до локального екрана/камери/canvas або виконувати команди на ноутбуці, зберігаючи Gateway у хмарі. - Хаб: [Платформи](/uk/platforms). Віддалений доступ: [Віддалений gateway](/uk/gateway/remote). - Nodes: [Nodes](/uk/nodes), [CLI Nodes](/cli/nodes). + Хаб: [Платформи](/uk/platforms). Віддалений доступ: [Віддалений Gateway](/uk/gateway/remote). + Nodes: [Nodes](/uk/nodes), [Nodes CLI](/cli/nodes). - - Коротка відповідь: **можливо, але не рекомендовано**. Процес оновлення може перезапустити - Gateway (що розірве активну сесію), може потребувати чистого git checkout і - може запитувати підтвердження. Безпечніше запускати оновлення з оболонки від імені оператора. + + Коротка відповідь: **можливо, але не рекомендується**. Процес оновлення може перезапустити + Gateway (що розірве активну сесію), може вимагати чистого git checkout і + може запитувати підтвердження. Безпечніше запускати оновлення з оболонки як оператор. Використовуйте CLI: @@ -558,7 +558,7 @@ x-i18n: openclaw update --no-restart ``` - Якщо вам усе ж потрібно автоматизувати це через агента: + Якщо вам обов’язково потрібна автоматизація з agent: ```bash openclaw update --yes --no-restart @@ -569,235 +569,235 @@ x-i18n: - - `openclaw onboard` — рекомендований шлях налаштування. У **локальному режимі** він проводить вас через: + + `openclaw onboard` — це рекомендований шлях налаштування. У **локальному режимі** він проводить вас через: - - **Налаштування моделі/автентифікації** (OAuth провайдера, API-ключі, setup-token Anthropic, а також варіанти локальних моделей, як-от LM Studio) + - **Налаштування моделі/auth** (OAuth провайдера, API keys, Anthropic setup-token, а також локальні варіанти моделей, як-от LM Studio) - Розташування **workspace** + bootstrap-файли - **Налаштування Gateway** (bind/port/auth/tailscale) - - **Channels** (WhatsApp, Telegram, Discord, Mattermost, Signal, iMessage, а також вбудовані channel plugins, наприклад QQ Bot) - - **Установлення демона** (LaunchAgent у macOS; користувацький systemd unit у Linux/WSL2) + - **Channels** (WhatsApp, Telegram, Discord, Mattermost, Signal, iMessage, а також bundled channel plugins, як-от QQ Bot) + - **Встановлення демона** (LaunchAgent у macOS; systemd user unit у Linux/WSL2) - **Перевірки стану** та вибір **Skills** - Він також попереджає, якщо ваша налаштована модель невідома або для неї відсутня автентифікація. + Він також попереджає, якщо налаштована вами модель невідома або для неї відсутній auth. - - Ні. Ви можете використовувати OpenClaw з **API-ключами** (Anthropic/OpenAI/інші) або з + + Ні. Ви можете запускати OpenClaw з **API keys** (Anthropic/OpenAI/інші) або з **лише локальними моделями**, щоб ваші дані залишалися на вашому пристрої. Підписки (Claude - Pro/Max або OpenAI Codex) — це необов’язкові способи автентифікації в цих провайдерів. + Pro/Max або OpenAI Codex) — це необов’язкові способи автентифікації у цих провайдерів. Для Anthropic в OpenClaw практичний поділ такий: - - **API-ключ Anthropic**: звичайна оплата Anthropic API - - **Claude CLI / автентифікація через підписку Claude в OpenClaw**: співробітники Anthropic + - **Anthropic API key**: звичайна оплата Anthropic API + - **Claude CLI / auth підписки Claude в OpenClaw**: співробітники Anthropic повідомили нам, що таке використання знову дозволене, і OpenClaw розглядає використання `claude -p` як санкціоноване для цієї інтеграції, якщо Anthropic не опублікує нову політику - Для довготривалих хостів gateway API-ключі Anthropic все ще є - більш передбачуваним варіантом. OAuth OpenAI Codex явно підтримується для зовнішніх + Для довготривалих хостів gateway ключі Anthropic API все ще залишаються + більш передбачуваним варіантом налаштування. OpenAI Codex OAuth явно підтримується для зовнішніх інструментів на кшталт OpenClaw. - OpenClaw також підтримує інші розміщені варіанти у стилі підписки, зокрема + OpenClaw також підтримує інші розміщені варіанти на основі підписки, зокрема **Qwen Cloud Coding Plan**, **MiniMax Coding Plan** і **Z.AI / GLM Coding Plan**. Документація: [Anthropic](/uk/providers/anthropic), [OpenAI](/uk/providers/openai), [Qwen Cloud](/uk/providers/qwen), - [MiniMax](/uk/providers/minimax), [GLM Models](/uk/providers/glm), + [MiniMax](/uk/providers/minimax), [Моделі GLM](/uk/providers/glm), [Локальні моделі](/uk/gateway/local-models), [Моделі](/uk/concepts/models). - + Так. Співробітники Anthropic повідомили нам, що використання Claude CLI у стилі OpenClaw знову дозволене, тож - OpenClaw вважає автентифікацію через підписку Claude та використання `claude -p` санкціонованими + OpenClaw вважає auth через підписку Claude та використання `claude -p` санкціонованими для цієї інтеграції, якщо Anthropic не опублікує нову політику. Якщо вам потрібне - максимально передбачуване серверне налаштування, натомість використовуйте API-ключ Anthropic. + найбільш передбачуване серверне налаштування, використовуйте ключ Anthropic API. - + Так. - Співробітники Anthropic повідомили нам, що таке використання знову дозволене, тож OpenClaw вважає - повторне використання Claude CLI і використання `claude -p` санкціонованими для цієї інтеграції, + Співробітники Anthropic повідомили нам, що таке використання знову дозволене, тому OpenClaw вважає + повторне використання Claude CLI та використання `claude -p` санкціонованими для цієї інтеграції, якщо Anthropic не опублікує нову політику. - setup-token Anthropic і далі доступний як підтримуваний шлях токена OpenClaw, але тепер OpenClaw надає перевагу повторному використанню Claude CLI та `claude -p`, коли це можливо. - Для production або багатокористувацьких навантажень автентифікація за API-ключем Anthropic і далі є - безпечнішим і більш передбачуваним вибором. Якщо вам потрібні інші розміщені + Anthropic setup-token усе ще доступний як підтримуваний шлях токена OpenClaw, але тепер OpenClaw надає перевагу повторному використанню Claude CLI та `claude -p`, коли це доступно. + Для production або multi-user навантажень auth за ключем Anthropic API усе ще є + безпечнішим і більш передбачуваним вибором. Якщо вас цікавлять інші розміщені варіанти у стилі підписки в OpenClaw, див. [OpenAI](/uk/providers/openai), [Qwen / Model - Cloud](/uk/providers/qwen), [MiniMax](/uk/providers/minimax) і [GLM - Models](/uk/providers/glm). + Cloud](/uk/providers/qwen), [MiniMax](/uk/providers/minimax) і [Моделі + GLM](/uk/providers/glm). -Це означає, що вашу **квоту/ліміт запитів Anthropic** вичерпано для поточного вікна. Якщо ви +Це означає, що ваша **квота/обмеження швидкості Anthropic** вичерпано для поточного вікна. Якщо ви використовуєте **Claude CLI**, дочекайтеся скидання вікна або оновіть свій план. Якщо ви -використовуєте **API-ключ Anthropic**, перевірте Anthropic Console -щодо використання/оплати та за потреби збільште ліміти. +використовуєте **ключ Anthropic API**, перевірте Anthropic Console +щодо використання/білінгу та за потреби збільште ліміти. Якщо повідомлення конкретно таке: - `Extra usage is required for long context requests`, запит намагається використати - бета-функцію Anthropic 1M context (`context1m: true`). Це працює лише тоді, коли ваші - облікові дані мають право на виставлення рахунків за довгий контекст (оплата через API-ключ або - шлях входу Claude в OpenClaw з увімкненим Extra Usage). + `Extra usage is required for long context requests`, запит намагається використовувати + 1M context beta від Anthropic (`context1m: true`). Це працює лише тоді, коли ваш + обліковий запис має право на білінг long-context (білінг за API key або + шлях входу в Claude через OpenClaw з увімкненим Extra Usage). - Порада: задайте **резервну модель**, щоб OpenClaw міг і далі відповідати, поки провайдер обмежений rate limit. - Див. [Models](/cli/models), [OAuth](/uk/concepts/oauth) і + Порада: задайте **резервну модель**, щоб OpenClaw міг продовжувати відповідати, поки провайдер обмежений rate limit. + Див. [Моделі](/cli/models), [OAuth](/uk/concepts/oauth) і [/gateway/troubleshooting#anthropic-429-extra-usage-required-for-long-context](/uk/gateway/troubleshooting#anthropic-429-extra-usage-required-for-long-context). - Так. OpenClaw має вбудований провайдер **Amazon Bedrock (Converse)**. Якщо присутні маркери середовища AWS, OpenClaw може автоматично виявити каталог Bedrock для streaming/text і об’єднати його як неявний провайдер `amazon-bedrock`; інакше ви можете явно ввімкнути `plugins.entries.amazon-bedrock.config.discovery.enabled` або додати запис провайдера вручну. Див. [Amazon Bedrock](/uk/providers/bedrock) і [Провайдери моделей](/uk/providers/models). Якщо ви віддаєте перевагу керованому потоку ключів, OpenAI-сумісний proxy перед Bedrock також залишається дійсним варіантом. + Так. OpenClaw має bundled провайдер **Amazon Bedrock (Converse)**. Якщо присутні маркери середовища AWS, OpenClaw може автоматично виявляти каталог Bedrock для streaming/text і об’єднувати його як неявного провайдера `amazon-bedrock`; інакше ви можете явно ввімкнути `plugins.entries.amazon-bedrock.config.discovery.enabled` або додати запис провайдера вручну. Див. [Amazon Bedrock](/uk/providers/bedrock) і [Провайдери моделей](/uk/providers/models). Якщо ви віддаєте перевагу керованому потоку з ключем, OpenAI-сумісний proxy перед Bedrock також залишається коректним варіантом. - - OpenClaw підтримує **OpenAI Code (Codex)** через OAuth (вхід через ChatGPT). Онбординг може виконати OAuth-потік і встановить модель за замовчуванням на `openai-codex/gpt-5.4`, коли це доречно. Див. [Провайдери моделей](/uk/concepts/model-providers) і [Онбординг (CLI)](/uk/start/wizard). + + OpenClaw підтримує **OpenAI Code (Codex)** через OAuth (вхід через ChatGPT). Onboarding може запустити OAuth-потік і за потреби встановить модель за замовчуванням `openai-codex/gpt-5.4`. Див. [Провайдери моделей](/uk/concepts/model-providers) і [Onboarding (CLI)](/uk/start/wizard). - + OpenClaw розглядає ці два шляхи окремо: - `openai-codex/gpt-5.4` = OAuth ChatGPT/Codex - `openai/gpt-5.4` = прямий API OpenAI Platform - В OpenClaw вхід через ChatGPT/Codex прив’язано до маршруту `openai-codex/*`, - а не до прямого маршруту `openai/*`. Якщо вам потрібен прямий API-шлях в + В OpenClaw вхід через ChatGPT/Codex прив’язаний до маршруту `openai-codex/*`, + а не до прямого маршруту `openai/*`. Якщо ви хочете прямий API-шлях в OpenClaw, задайте `OPENAI_API_KEY` (або еквівалентну конфігурацію провайдера OpenAI). - Якщо вам потрібен вхід ChatGPT/Codex в OpenClaw, використовуйте `openai-codex/*`. + Якщо ви хочете вхід ChatGPT/Codex в OpenClaw, використовуйте `openai-codex/*`. - `openai-codex/*` використовує маршрут Codex OAuth, а його придатні до використання вікна квот - керуються OpenAI і залежать від плану. На практиці ці ліміти можуть відрізнятися від - досвіду на вебсайті/в застосунку ChatGPT, навіть якщо обидва прив’язані до одного облікового запису. + `openai-codex/*` використовує маршрут Codex OAuth, і його доступні вікна квот + керуються OpenAI та залежать від плану. На практиці ці ліміти можуть відрізнятися від + досвіду використання сайту/застосунку ChatGPT, навіть якщо обидва прив’язані до одного облікового запису. - OpenClaw може показувати поточні видимі вікна використання/квот провайдера в - `openclaw models status`, але не вигадує і не нормалізує - можливості ChatGPT web у прямий API-доступ. Якщо вам потрібен прямий шлях - оплати/лімітів OpenAI Platform, використовуйте `openai/*` з API-ключем. + OpenClaw може показувати поточні видимі вікна використання/квоти провайдера в + `openclaw models status`, але він не вигадує і не нормалізує права ChatGPT-web + у прямий доступ до API. Якщо вам потрібен прямий шлях білінгу/лімітів OpenAI Platform, + використовуйте `openai/*` з API key. - + Так. OpenClaw повністю підтримує **OAuth підписки OpenAI Code (Codex)**. - OpenAI явно дозволяє використання OAuth підписки в зовнішніх інструментах/процесах - на кшталт OpenClaw. Онбординг може виконати OAuth-потік за вас. + OpenAI прямо дозволяє використання OAuth підписки в зовнішніх інструментах/процесах + на кшталт OpenClaw. Onboarding може запустити OAuth-потік за вас. - Див. [OAuth](/uk/concepts/oauth), [Провайдери моделей](/uk/concepts/model-providers) і [Онбординг (CLI)](/uk/start/wizard). + Див. [OAuth](/uk/concepts/oauth), [Провайдери моделей](/uk/concepts/model-providers) і [Onboarding (CLI)](/uk/start/wizard). - Gemini CLI використовує **потік автентифікації Plugin**, а не client id чи secret у `openclaw.json`. + Gemini CLI використовує **потік auth Plugin**, а не client id чи secret у `openclaw.json`. Кроки: - 1. Установіть Gemini CLI локально, щоб `gemini` був у `PATH` + 1. Встановіть Gemini CLI локально, щоб `gemini` був у `PATH` - Homebrew: `brew install gemini-cli` - npm: `npm install -g @google/gemini-cli` 2. Увімкніть Plugin: `openclaw plugins enable google` 3. Увійдіть: `openclaw models auth login --provider google-gemini-cli --set-default` 4. Модель за замовчуванням після входу: `google-gemini-cli/gemini-3-flash-preview` - 5. Якщо запити не вдаються, задайте `GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості gateway + 5. Якщо запити не працюють, задайте `GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості gateway - Це зберігає OAuth-токени в профілях автентифікації на хості gateway. Докладніше: [Провайдери моделей](/uk/concepts/model-providers). + Це зберігає токени OAuth у auth-профілях на хості gateway. Деталі: [Провайдери моделей](/uk/concepts/model-providers). - Зазвичай ні. OpenClaw потребує великого контексту + сильної безпеки; малі карти обрізають контекст і дають витоки. Якщо вже потрібно, запускайте **найбільшу** збірку моделі, яку можете локально (LM Studio), і див. [/gateway/local-models](/uk/gateway/local-models). Менші/квантовані моделі підвищують ризик prompt injection — див. [Безпека](/uk/gateway/security). + Зазвичай ні. OpenClaw потребує великого контексту + сильної безпеки; малі картки обрізають і пропускають витоки. Якщо все ж потрібно, запускайте **найбільшу** збірку моделі, яку можете локально (LM Studio), і див. [/gateway/local-models](/uk/gateway/local-models). Менші/квантизовані моделі підвищують ризик prompt-injection — див. [Безпека](/uk/gateway/security). - - Обирайте endpoint-и, закріплені за регіоном. OpenRouter надає варіанти з хостингом у США для MiniMax, Kimi і GLM; виберіть варіант із хостингом у США, щоб дані залишалися в регіоні. Ви все одно можете перелічувати Anthropic/OpenAI поряд із ними, використовуючи `models.mode: "merge"`, щоб резервні варіанти залишалися доступними, водночас дотримуючись вибраного регіонального провайдера. + + Обирайте endpoint-и, прив’язані до регіону. OpenRouter надає варіанти з розміщенням у США для MiniMax, Kimi та GLM; оберіть варіант із розміщенням у США, щоб зберігати дані в межах регіону. Ви все одно можете перелічити Anthropic/OpenAI поряд із ними, використавши `models.mode: "merge"`, щоб резервні варіанти залишалися доступними з повагою до вибраного вами регіонального провайдера. - - Ні. OpenClaw працює на macOS або Linux (Windows через WSL2). Mac mini — необов’язковий варіант: дехто - купує його як хост, що завжди ввімкнений, але також підійде невеликий VPS, домашній сервер або пристрій класу Raspberry Pi. + + Ні. OpenClaw працює на macOS або Linux (Windows через WSL2). Mac mini — необов’язковий: дехто + купує його як постійно ввімкнений хост, але також підійде невеликий VPS, домашній сервер або пристрій класу Raspberry Pi. - Mac потрібен лише **для інструментів тільки для macOS**. Для iMessage використовуйте [BlueBubbles](/uk/channels/bluebubbles) (рекомендовано) — сервер BlueBubbles працює на будь-якому Mac, а Gateway може працювати на Linux чи деінде. Якщо вам потрібні інші інструменти лише для macOS, запускайте Gateway на Mac або під’єднайте macOS node. + Mac потрібен лише **для інструментів тільки для macOS**. Для iMessage використовуйте [BlueBubbles](/uk/channels/bluebubbles) (рекомендовано) — сервер BlueBubbles працює на будь-якому Mac, а Gateway може працювати на Linux або деінде. Якщо вам потрібні інші інструменти лише для macOS, запускайте Gateway на Mac або підключіть macOS Node. Документація: [BlueBubbles](/uk/channels/bluebubbles), [Nodes](/uk/nodes), [Віддалений режим Mac](/uk/platforms/mac/remote). - Вам потрібен **якийсь пристрій macOS**, у якому виконано вхід у Messages. Це **не обов’язково** має бути Mac mini — - підійде будь-який Mac. Для iMessage **використовуйте [BlueBubbles](/uk/channels/bluebubbles)** (рекомендовано) — сервер BlueBubbles працює на macOS, а Gateway може працювати на Linux або деінде. + Вам потрібен **якийсь пристрій з macOS**, увійдений у Messages. Це **не обов’язково** має бути Mac mini — + підійде будь-який Mac. **Використовуйте [BlueBubbles](/uk/channels/bluebubbles)** (рекомендовано) для iMessage — сервер BlueBubbles працює на macOS, а Gateway може працювати на Linux або деінде. - Поширені варіанти налаштування: + Типові варіанти: - - Запускайте Gateway на Linux/VPS, а сервер BlueBubbles — на будь-якому Mac, у якому виконано вхід у Messages. - - Запускайте все на Mac, якщо хочете найпростішу конфігурацію з однією машиною. + - Запустіть Gateway на Linux/VPS, а сервер BlueBubbles — на будь-якому Mac, увійденому в Messages. + - Запустіть усе на Mac, якщо хочете найпростішу конфігурацію на одній машині. Документація: [BlueBubbles](/uk/channels/bluebubbles), [Nodes](/uk/nodes), [Віддалений режим Mac](/uk/platforms/mac/remote). - - Так. **Mac mini може запускати Gateway**, а ваш MacBook Pro може під’єднуватися як - **node** (додатковий пристрій). Nodes не запускають Gateway — вони надають додаткові + + Так. **Mac mini може запускати Gateway**, а ваш MacBook Pro може підключатися як + **Node** (супутній пристрій). Nodes не запускають Gateway — вони надають додаткові можливості, як-от screen/camera/canvas і `system.run` на цьому пристрої. - Поширений сценарій: + Типовий шаблон: - - Gateway на Mac mini (завжди ввімкнений). - - MacBook Pro запускає застосунок macOS або host node і під’єднується до Gateway. + - Gateway на Mac mini (постійно ввімкнений). + - MacBook Pro запускає застосунок macOS або хост Node і підключається до Gateway. - Використовуйте `openclaw nodes status` / `openclaw nodes list`, щоб побачити його. - Документація: [Nodes](/uk/nodes), [CLI Nodes](/cli/nodes). + Документація: [Nodes](/uk/nodes), [Nodes CLI](/cli/nodes). - Bun **не рекомендовано**. Ми спостерігаємо помилки під час роботи, особливо з WhatsApp і Telegram. - Для стабільних gateway використовуйте **Node**. + Bun **не рекомендується**. Ми бачимо помилки під час виконання, особливо з WhatsApp і Telegram. + Використовуйте **Node** для стабільних gateway. - Якщо ви все ж хочете поекспериментувати з Bun, робіть це на неproduction gateway + Якщо ви все ж хочете експериментувати з Bun, робіть це на non-production gateway без WhatsApp/Telegram. - - `channels.telegram.allowFrom` — це **Telegram user ID** людини-відправника (числовий). Це не ім’я користувача бота. + + `channels.telegram.allowFrom` — це **Telegram user ID людини-відправника** (числовий). Це не ім’я користувача бота. - Онбординг приймає введення `@username` і перетворює його на числовий ID, але авторизація OpenClaw використовує лише числові ID. + Налаштування запитує лише числові user ID. Якщо у вашій конфігурації вже є застарілі записи `@username`, `openclaw doctor --fix` може спробувати розв’язати їх. - Безпечніше (без стороннього бота): + Безпечніший варіант (без стороннього бота): - - Напишіть своєму боту в DM, а потім виконайте `openclaw logs --follow` і прочитайте `from.id`. + - Напишіть своєму боту в DM, потім виконайте `openclaw logs --follow` і прочитайте `from.id`. Офіційний Bot API: - - Напишіть своєму боту в DM, а потім викличте `https://api.telegram.org/bot/getUpdates` і прочитайте `message.from.id`. + - Напишіть своєму боту в DM, потім викличте `https://api.telegram.org/bot/getUpdates` і прочитайте `message.from.id`. Сторонній варіант (менш приватний): - - Напишіть `@userinfobot` або `@getidsbot`. + - Напишіть у DM `@userinfobot` або `@getidsbot`. Див. [/channels/telegram](/uk/channels/telegram#access-control-and-activation). - Так, через **маршрутизацію multi-agent**. Прив’яжіть **DM** WhatsApp кожного відправника (peer `kind: "direct"`, E.164 відправника на кшталт `+15551234567`) до іншого `agentId`, щоб кожна людина мала власний workspace і сховище сесій. Відповіді все одно надходитимуть з **того самого облікового запису WhatsApp**, а контроль доступу DM (`channels.whatsapp.dmPolicy` / `channels.whatsapp.allowFrom`) є глобальним для кожного облікового запису WhatsApp. Див. [Маршрутизація Multi-Agent](/uk/concepts/multi-agent) і [WhatsApp](/uk/channels/whatsapp). + Так, через **маршрутизацію multi-agent**. Прив’яжіть WhatsApp **DM** кожного відправника (peer `kind: "direct"`, E.164 відправника на кшталт `+15551234567`) до іншого `agentId`, щоб кожна людина мала власний workspace і сховище сесій. Відповіді все одно надходитимуть з **того самого облікового запису WhatsApp**, а контроль доступу DM (`channels.whatsapp.dmPolicy` / `channels.whatsapp.allowFrom`) є глобальним для кожного облікового запису WhatsApp. Див. [Маршрутизація Multi-Agent](/uk/concepts/multi-agent) і [WhatsApp](/uk/channels/whatsapp). - - Так. Використовуйте маршрутизацію multi-agent: призначте кожному агенту власну модель за замовчуванням, а потім прив’яжіть вхідні маршрути (обліковий запис провайдера або конкретні peers) до кожного агента. Приклад конфігурації наведено в [Маршрутизація Multi-Agent](/uk/concepts/multi-agent). Див. також [Моделі](/uk/concepts/models) і [Конфігурація](/uk/gateway/configuration). + + Так. Використовуйте маршрутизацію multi-agent: призначте кожному agent власну модель за замовчуванням, а потім прив’яжіть вхідні маршрути (обліковий запис провайдера або конкретні peers) до кожного agent. Приклад конфігурації наведено в [Маршрутизації Multi-Agent](/uk/concepts/multi-agent). Див. також [Моделі](/uk/concepts/models) і [Конфігурація](/uk/gateway/configuration). @@ -810,14 +810,14 @@ x-i18n: brew install ``` - Якщо ви запускаєте OpenClaw через systemd, переконайтеся, що PATH сервісу містить `/home/linuxbrew/.linuxbrew/bin` (або ваш префікс brew), щоб інструменти, встановлені через `brew`, визначалися в non-login оболонках. - Останні збірки також додають поширені каталоги bin користувача на Linux у сервіси systemd (наприклад, `~/.local/bin`, `~/.npm-global/bin`, `~/.local/share/pnpm`, `~/.bun/bin`) і враховують `PNPM_HOME`, `NPM_CONFIG_PREFIX`, `BUN_INSTALL`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `NVM_DIR` і `FNM_DIR`, якщо вони задані. + Якщо ви запускаєте OpenClaw через systemd, переконайтеся, що PATH служби містить `/home/linuxbrew/.linuxbrew/bin` (або ваш префікс brew), щоб інструменти, встановлені через `brew`, знаходилися в non-login shells. + Нещодавні збірки також додають на початок типові user bin directories у Linux systemd services (наприклад `~/.local/bin`, `~/.npm-global/bin`, `~/.local/share/pnpm`, `~/.bun/bin`) і враховують `PNPM_HOME`, `NPM_CONFIG_PREFIX`, `BUN_INSTALL`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `NVM_DIR` і `FNM_DIR`, якщо вони задані. - - - **Hackable (git) install:** повний checkout вихідного коду, можна редагувати, найкраще для контриб’юторів. - Ви локально виконуєте збірки та можете вносити зміни в код/документацію. + + - **Зламуване (git) встановлення:** повний checkout вихідного коду, можна редагувати, найкраще для контриб’юторів. + Ви локально запускаєте збірки й можете вносити виправлення в код/документацію. - **npm install:** глобальне встановлення CLI, без репозиторію, найкраще для сценарію "просто запустити". Оновлення надходять із npm dist-tags. @@ -825,9 +825,9 @@ x-i18n: - - Так. Установіть інший варіант, а потім запустіть Doctor, щоб сервіс gateway вказував на нову точку входу. - Це **не видаляє ваші дані** — воно лише змінює встановлення коду OpenClaw. Ваш state + + Так. Встановіть інший варіант, а потім запустіть Doctor, щоб служба gateway вказувала на нову точку входу. + Це **не видаляє ваші дані** — змінюється лише встановлений код OpenClaw. Ваш стан (`~/.openclaw`) і workspace (`~/.openclaw/workspace`) залишаються недоторканими. З npm на git: @@ -849,48 +849,48 @@ x-i18n: openclaw gateway restart ``` - Doctor виявляє невідповідність точки входу сервісу gateway і пропонує переписати конфігурацію сервісу відповідно до поточного встановлення (в automation використовуйте `--repair`). + Doctor виявляє невідповідність точки входу служби gateway і пропонує переписати конфігурацію служби відповідно до поточного встановлення (використовуйте `--repair` в автоматизації). Поради щодо резервного копіювання: див. [Стратегія резервного копіювання](#де-що-зберігається-на-диску). - Коротка відповідь: **якщо вам потрібна надійність 24/7, використовуйте VPS**. Якщо ви хочете - найменше тертя і вас влаштовують сон/перезапуски, запускайте локально. + Коротка відповідь: **якщо вам потрібна надійність 24/7, використовуйте VPS**. Якщо вам потрібен + найменший поріг входу і вас влаштовують режим сну/перезапуски, запускайте локально. **Ноутбук (локальний Gateway)** - - **Переваги:** немає витрат на сервер, прямий доступ до локальних файлів, видиме вікно браузера. - - **Недоліки:** сон/мережеві збої = відключення, оновлення ОС/перезавантаження переривають роботу, пристрій має залишатися активним. + - **Плюси:** немає витрат на сервер, прямий доступ до локальних файлів, видиме вікно браузера. + - **Мінуси:** сон/обриви мережі = відключення, оновлення ОС/перезавантаження переривають роботу, комп’ютер має залишатися активним. **VPS / хмара** - - **Переваги:** постійно ввімкнено, стабільна мережа, немає проблем через сон ноутбука, простіше підтримувати безперервну роботу. - - **Недоліки:** часто працює headless (використовуйте знімки екрана), доступ до файлів лише віддалено, для оновлень потрібно підключатися через SSH. + - **Плюси:** завжди ввімкнено, стабільна мережа, немає проблем із режимом сну ноутбука, простіше підтримувати роботу. + - **Мінуси:** часто працює без голови (використовуйте знімки екрана), лише віддалений доступ до файлів, для оновлень треба підключатися через SSH. - **Примітка щодо OpenClaw:** WhatsApp/Telegram/Slack/Mattermost/Discord чудово працюють із VPS. Єдина справжня відмінність — **headless browser** проти видимого вікна. Див. [Browser](/uk/tools/browser). + **Примітка, специфічна для OpenClaw:** WhatsApp/Telegram/Slack/Mattermost/Discord чудово працюють з VPS. Єдиний реальний компроміс — **безголовий браузер** проти видимого вікна. Див. [Браузер](/uk/tools/browser). - **Рекомендований варіант за замовчуванням:** VPS, якщо раніше у вас були відключення gateway. Локальний запуск чудово підходить, коли ви активно користуєтеся Mac і хочете мати доступ до локальних файлів або автоматизацію UI з видимим браузером. + **Рекомендований варіант за замовчуванням:** VPS, якщо у вас уже були розриви gateway. Локальний запуск чудово підходить, коли ви активно працюєте на Mac і хочете мати локальний доступ до файлів або автоматизацію UI через видимий браузер. - - Це не обов’язково, але **рекомендовано для надійності та ізоляції**. + + Не обов’язково, але **рекомендується для надійності та ізоляції**. - - **Виділений хост (VPS/Mac mini/Pi):** завжди ввімкнений, менше переривань через сон/перезавантаження, чистіші дозволи, простіше підтримувати безперервну роботу. - - **Спільний ноутбук/настільний ПК:** цілком підходить для тестування й активного використання, але очікуйте пауз, коли машина засинає або оновлюється. + - **Виділений хост (VPS/Mac mini/Pi):** завжди ввімкнений, менше переривань через сон/перезавантаження, чистіші дозволи, простіше підтримувати роботу. + - **Спільний ноутбук/настільний ПК:** цілком нормально для тестування й активного використання, але очікуйте пауз, коли машина переходить у сон або оновлюється. - Якщо хочете поєднати найкраще з обох варіантів, тримайте Gateway на виділеному хості, а ноутбук під’єднайте як **node** для локальних інструментів screen/camera/exec. Див. [Nodes](/uk/nodes). - Рекомендації з безпеки див. у [Безпека](/uk/gateway/security). + Якщо ви хочете найкраще з обох світів, тримайте Gateway на виділеному хості, а ноутбук підключайте як **Node** для локальних інструментів screen/camera/exec. Див. [Nodes](/uk/nodes). + Для рекомендацій із безпеки прочитайте [Безпека](/uk/gateway/security). - - OpenClaw є легким. Для базового Gateway + одного чат-каналу: + + OpenClaw є легким. Для базового Gateway + одного каналу чату: - **Абсолютний мінімум:** 1 vCPU, 1GB RAM, ~500MB диска. - - **Рекомендовано:** 1–2 vCPU, 2GB RAM або більше із запасом (журнали, медіа, кілька каналів). Інструменти Node та автоматизація браузера можуть бути ресурсомісткими. + - **Рекомендовано:** 1–2 vCPU, 2GB RAM або більше із запасом (логи, медіа, кілька каналів). Інструменти Node та автоматизація браузера можуть бути ресурсомісткими. ОС: використовуйте **Ubuntu LTS** (або будь-який сучасний Debian/Ubuntu). Шлях встановлення для Linux там протестовано найкраще. @@ -899,17 +899,17 @@ x-i18n: - Так. Ставтеся до VM так само, як до VPS: вона має бути постійно ввімкнена, доступна та мати достатньо - RAM для Gateway і будь-яких channels, які ви вмикаєте. + Так. Ставтеся до VM так само, як до VPS: вона має бути завжди ввімкнена, доступна й мати достатньо + RAM для Gateway і будь-яких каналів, які ви вмикаєте. Базові рекомендації: - **Абсолютний мінімум:** 1 vCPU, 1GB RAM. - - **Рекомендовано:** 2GB RAM або більше, якщо ви запускаєте кілька каналів, автоматизацію браузера або медіаінструменти. + - **Рекомендовано:** 2GB RAM або більше, якщо ви запускаєте кілька каналів, автоматизацію браузера чи медіаінструменти. - **ОС:** Ubuntu LTS або інший сучасний Debian/Ubuntu. - Якщо ви використовуєте Windows, **WSL2 — це найпростіший варіант налаштування у стилі VM** і він має найкращу - сумісність інструментів. Див. [Windows](/uk/platforms/windows), [VPS hosting](/uk/vps). + Якщо ви використовуєте Windows, **WSL2 — це найпростіше середовище у стилі VM** з найкращою + сумісністю інструментів. Див. [Windows](/uk/platforms/windows), [VPS hosting](/uk/vps). Якщо ви запускаєте macOS у VM, див. [macOS VM](/uk/install/macos-vm). @@ -918,82 +918,82 @@ x-i18n: ## Що таке OpenClaw? - - OpenClaw — це персональний AI-помічник, який ви запускаєте на власних пристроях. Він відповідає у вже знайомих вам каналах обміну повідомленнями (WhatsApp, Telegram, Slack, Mattermost, Discord, Google Chat, Signal, iMessage, WebChat, а також у вбудованих channel plugins, наприклад QQ Bot) і також може працювати з голосом + live Canvas на підтримуваних платформах. **Gateway** — це постійно ввімкнена площина керування; асистент і є продуктом. + + OpenClaw — це персональний AI-помічник, який ви запускаєте на власних пристроях. Він відповідає у вже знайомих вам каналах обміну повідомленнями (WhatsApp, Telegram, Slack, Mattermost, Discord, Google Chat, Signal, iMessage, WebChat і bundled channel plugins, таких як QQ Bot), а також може працювати з голосом + live Canvas на підтримуваних платформах. **Gateway** — це завжди ввімкнена control plane; помічник — це продукт. - OpenClaw — це не "просто обгортка для Claude". Це **локальна control plane**, яка дає змогу запускати - потужного асистента на **вашому власному обладнанні**, доступного з чат-застосунків, якими ви вже користуєтеся, із - сесійною історією, пам’яттю та інструментами — без передачі контролю над вашими робочими процесами - SaaS-сервісу. + OpenClaw — це не "просто обгортка для Claude". Це **local-first control plane**, яка дає змогу запускати + потужного помічника на **вашому власному обладнанні**, доступного з чат-застосунків, якими ви вже користуєтеся, зі + сесіями зі станом, пам’яттю та інструментами — без передачі контролю над вашими робочими процесами розміщеному + SaaS. - Основні переваги: + Основне: - **Ваші пристрої, ваші дані:** запускайте Gateway де завгодно (Mac, Linux, VPS) і зберігайте workspace + історію сесій локально. - - **Реальні канали, а не вебпісочниця:** WhatsApp/Telegram/Slack/Discord/Signal/iMessage тощо, + - **Справжні канали, а не веб-пісочниця:** WhatsApp/Telegram/Slack/Discord/Signal/iMessage тощо, а також мобільний голос і Canvas на підтримуваних платформах. - **Незалежність від моделі:** використовуйте Anthropic, OpenAI, MiniMax, OpenRouter тощо, з маршрутизацією - та резервним перемиканням на рівні агентів. + та резервним перемиканням на рівні agent. - **Варіант лише локально:** запускайте локальні моделі, щоб **усі дані могли залишатися на вашому пристрої**, якщо хочете. - - **Маршрутизація multi-agent:** окремі агенти для каналу, облікового запису чи завдання, кожен зі своїм - workspace і параметрами за замовчуванням. - - **Відкритий код і гнучкість:** перевіряйте, розширюйте та self-host без прив’язки до постачальника. + - **Маршрутизація multi-agent:** окремі agents за каналом, обліковим записом або задачею, кожен із власним + workspace і типовими налаштуваннями. + - **Відкритий код і можливість змінювати:** перевіряйте, розширюйте та self-host без прив’язки до постачальника. - Документація: [Gateway](/uk/gateway), [Channels](/uk/channels), [Multi-agent](/uk/concepts/multi-agent), + Документація: [Gateway](/uk/gateway), [Канали](/uk/channels), [Multi-agent](/uk/concepts/multi-agent), [Пам’ять](/uk/concepts/memory). - + Хороші перші проєкти: - - Створити сайт (WordPress, Shopify або простий статичний сайт). - - Прототипувати мобільний застосунок (структура, екрани, план API). - - Упорядкувати файли та папки (очищення, іменування, теги). - - Підключити Gmail і автоматизувати зведення або follow-up. + - Створити вебсайт (WordPress, Shopify або простий статичний сайт). + - Зробити прототип мобільного застосунку (структура, екрани, план API). + - Упорядкувати файли й папки (очищення, найменування, теги). + - Підключити Gmail і автоматизувати зведення або подальші дії. - Він може працювати з великими завданнями, але найкраще працює, коли ви розбиваєте їх на етапи і - використовуєте sub agents для паралельної роботи. + Він може впоратися з великими задачами, але найкраще працює, коли ви ділите їх на етапи й + використовуєте sub-agents для паралельної роботи. Щоденні виграші зазвичай виглядають так: - - **Персональні зведення:** підсумки inbox, календаря та новин, які для вас важливі. - - **Дослідження й чернетки:** швидкий пошук інформації, підсумки та перші чернетки для листів або документів. - - **Нагадування та follow-up:** підштовхування й чеклісти на основі cron або Heartbeat. - - **Автоматизація браузера:** заповнення форм, збирання даних і повторювані вебзавдання. - - **Координація між пристроями:** надішліть завдання з телефону, дозвольте Gateway виконати його на сервері та отримайте результат назад у чаті. + - **Персональні зведення:** підсумки inbox, календаря та новин, які вас цікавлять. + - **Дослідження та чернетки:** швидке дослідження, підсумки й перші чернетки листів або документів. + - **Нагадування та подальші дії:** підштовхування й чеклісти на основі cron або heartbeat. + - **Автоматизація браузера:** заповнення форм, збирання даних і повторення вебзадач. + - **Координація між пристроями:** надішліть задачу з телефона, дозвольте Gateway виконати її на сервері й отримайте результат назад у чат. - - Так, для **дослідження, кваліфікації та створення чернеток**. Він може сканувати сайти, формувати короткі списки, - підсумовувати потенційних клієнтів і писати чернетки outreach або рекламних текстів. + + Так — для **дослідження, кваліфікації та підготовки чернеток**. Він може сканувати сайти, створювати короткі списки, + підсумовувати інформацію про потенційних клієнтів і писати чернетки outreach або рекламних текстів. - Для **outreach або рекламних кампаній** залишайте людину в циклі. Уникайте спаму, дотримуйтеся місцевих законів і - політик платформ та перевіряйте все перед надсиланням. Найбезпечніший підхід — - коли OpenClaw готує чернетку, а ви її погоджуєте. + Для **outreach або запуску реклами** тримайте людину в циклі. Уникайте спаму, дотримуйтеся місцевих законів і + політик платформ, і переглядайте все перед відправленням. Найбезпечніший шаблон — дозволити + OpenClaw підготувати чернетку, а вам її схвалити. Документація: [Безпека](/uk/gateway/security). - OpenClaw — це **персональний асистент** і рівень координації, а не заміна IDE. Використовуйте - Claude Code або Codex для найшвидшого прямого циклу програмування в репозиторії. Використовуйте OpenClaw, коли вам - потрібні довготривала пам’ять, доступ із різних пристроїв і оркестрація інструментів. + OpenClaw — це **персональний помічник** і рівень координації, а не заміна IDE. Використовуйте + Claude Code або Codex для найшвидшого прямого циклу кодування всередині репозиторію. Використовуйте OpenClaw, коли вам + потрібні тривала пам’ять, доступ з різних пристроїв і оркестрація інструментів. Переваги: - **Постійна пам’ять + workspace** між сесіями - - **Багатоплатформний доступ** (WhatsApp, Telegram, TUI, WebChat) + - **Доступ із різних платформ** (WhatsApp, Telegram, TUI, WebChat) - **Оркестрація інструментів** (браузер, файли, планування, hooks) - - **Постійно ввімкнений Gateway** (запуск на VPS, взаємодія звідусіль) - - **Nodes** для локальних browser/screen/camera/exec + - **Завжди ввімкнений Gateway** (запуск на VPS, взаємодія звідусіль) + - **Nodes** для локального browser/screen/camera/exec Вітрина: [https://openclaw.ai/showcase](https://openclaw.ai/showcase) @@ -1003,69 +1003,69 @@ x-i18n: ## Skills та автоматизація - - Використовуйте керовані override замість редагування копії в репозиторії. Помістіть свої зміни в `~/.openclaw/skills//SKILL.md` (або додайте папку через `skills.load.extraDirs` у `~/.openclaw/openclaw.json`). Пріоритет такий: `/skills` → `/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → вбудовані → `skills.load.extraDirs`, тож керовані override усе одно мають пріоритет над вбудованими Skills без змін у git. Якщо вам потрібно, щоб skill було встановлено глобально, але видно лише деяким агентам, зберігайте спільну копію в `~/.openclaw/skills` і керуйте видимістю через `agents.defaults.skills` та `agents.list[].skills`. Лише зміни, варті апстриму, мають жити в репозиторії та надсилатися як PR. + + Використовуйте керовані перевизначення замість редагування копії в репозиторії. Розміщуйте свої зміни в `~/.openclaw/skills//SKILL.md` (або додайте папку через `skills.load.extraDirs` у `~/.openclaw/openclaw.json`). Пріоритет такий: `/skills` → `/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → bundled → `skills.load.extraDirs`, тож керовані перевизначення все одно мають вищий пріоритет за bundled skills без змін у git. Якщо вам потрібно, щоб skill був установлений глобально, але видимий лише деяким agents, зберігайте спільну копію в `~/.openclaw/skills` і керуйте видимістю через `agents.defaults.skills` та `agents.list[].skills`. Лише зміни, варті додавання в upstream, мають жити в репозиторії й надсилатися як PR. - - Так. Додайте додаткові каталоги через `skills.load.extraDirs` у `~/.openclaw/openclaw.json` (найнижчий пріоритет). Стандартний порядок пріоритету: `/skills` → `/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → вбудовані → `skills.load.extraDirs`. `clawhub` за замовчуванням встановлює в `./skills`, що OpenClaw трактує як `/skills` під час наступної сесії. Якщо skill має бути видимим лише певним агентам, поєднайте це з `agents.defaults.skills` або `agents.list[].skills`. + + Так. Додайте додаткові каталоги через `skills.load.extraDirs` у `~/.openclaw/openclaw.json` (найнижчий пріоритет). Типовий порядок пріоритету: `/skills` → `/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → bundled → `skills.load.extraDirs`. `clawhub` типово встановлює в `./skills`, що OpenClaw розглядає як `/skills` у наступній сесії. Якщо skill має бути видимим лише певним agents, поєднайте це з `agents.defaults.skills` або `agents.list[].skills`. - + Наразі підтримуються такі шаблони: - - **Cron jobs**: ізольовані завдання можуть задавати override `model` для кожного завдання. - - **Sub-agents**: маршрутизуйте завдання до окремих агентів із різними моделями за замовчуванням. - - **Перемикання на вимогу**: використовуйте `/model`, щоб будь-коли змінити модель поточної сесії. + - **Cron jobs**: ізольовані задачі можуть задавати перевизначення `model` для кожної задачі. + - **Sub-agents**: маршрутизуйте задачі до окремих agents з різними типовими моделями. + - **Перемикання на вимогу**: використовуйте `/model`, щоб у будь-який момент змінити модель поточної сесії. - Див. [Cron jobs](/uk/automation/cron-jobs), [Маршрутизація Multi-Agent](/uk/concepts/multi-agent) і [Slash-команди](/uk/tools/slash-commands). + Див. [Cron jobs](/uk/automation/cron-jobs), [Маршрутизація Multi-Agent](/uk/concepts/multi-agent) і [Slash commands](/uk/tools/slash-commands). - - Використовуйте **sub-agents** для довгих або паралельних завдань. Sub-agents працюють у власній сесії, - повертають підсумок і не дають основному чату зависнути. + + Використовуйте **sub-agents** для тривалих або паралельних задач. Sub-agents працюють у власній сесії, + повертають підсумок і зберігають чуйність вашого основного чату. Попросіть бота "spawn a sub-agent for this task" або використайте `/subagents`. - Використовуйте `/status` у чаті, щоб бачити, що Gateway робить зараз (і чи він зайнятий). + Використовуйте `/status` у чаті, щоб побачити, що Gateway робить просто зараз (і чи він зайнятий). - Порада щодо токенів: довгі завдання і sub-agents обидва споживають токени. Якщо вас хвилює вартість, задайте + Порада щодо токенів: і довгі задачі, і sub-agents споживають токени. Якщо вартість має значення, задайте дешевшу модель для sub-agents через `agents.defaults.subagents.model`. - Документація: [Sub-agents](/uk/tools/subagents), [Фонові завдання](/uk/automation/tasks). + Документація: [Sub-agents](/uk/tools/subagents), [Фонові задачі](/uk/automation/tasks). - - Використовуйте прив’язки thread. Ви можете прив’язати Discord thread до subagent або цілі сесії, щоб подальші повідомлення в цьому thread залишалися в межах прив’язаної сесії. + + Використовуйте прив’язки тредів. Ви можете прив’язати тред Discord до subagent або цільової сесії, щоб подальші повідомлення в цьому треді залишалися в межах прив’язаної сесії. Базовий процес: - - Створіть через `sessions_spawn` з `thread: true` (і за потреби `mode: "session"` для постійного follow-up). - - Або прив’яжіть вручну через `/focus `. + - Запустіть через `sessions_spawn` з `thread: true` (і, за потреби, `mode: "session"` для постійної подальшої роботи). + - Або прив’яжіть вручну за допомогою `/focus `. - Використовуйте `/agents`, щоб перевірити стан прив’язки. - - Використовуйте `/session idle ` і `/session max-age ` для керування автоматичним зняттям фокуса. - - Використовуйте `/unfocus`, щоб від’єднати thread. + - Використовуйте `/session idle ` і `/session max-age `, щоб керувати автоматичним зняттям фокусу. + - Використовуйте `/unfocus`, щоб від’єднати тред. Потрібна конфігурація: - Глобальні значення за замовчуванням: `session.threadBindings.enabled`, `session.threadBindings.idleHours`, `session.threadBindings.maxAgeHours`. - - Override для Discord: `channels.discord.threadBindings.enabled`, `channels.discord.threadBindings.idleHours`, `channels.discord.threadBindings.maxAgeHours`. - - Автоприв’язка під час spawn: задайте `channels.discord.threadBindings.spawnSubagentSessions: true`. + - Перевизначення Discord: `channels.discord.threadBindings.enabled`, `channels.discord.threadBindings.idleHours`, `channels.discord.threadBindings.maxAgeHours`. + - Автоматична прив’язка під час spawn: задайте `channels.discord.threadBindings.spawnSubagentSessions: true`. - Документація: [Sub-agents](/uk/tools/subagents), [Discord](/uk/channels/discord), [Довідник із конфігурації](/uk/gateway/configuration-reference), [Slash-команди](/uk/tools/slash-commands). + Документація: [Sub-agents](/uk/tools/subagents), [Discord](/uk/channels/discord), [Довідник із конфігурації](/uk/gateway/configuration-reference), [Slash commands](/uk/tools/slash-commands). - - Спочатку перевірте розв’язаний маршрут запитувача: + + Спочатку перевірте визначений маршрут запитувача: - - Доставка subagent у режимі completion віддає перевагу будь-якому прив’язаному thread або маршруту розмови, якщо такий існує. - - Якщо джерело completion містить лише channel, OpenClaw повертається до збереженого маршруту сесії запитувача (`lastChannel` / `lastTo` / `lastAccountId`), щоб пряма доставка все одно могла спрацювати. - - Якщо немає ні прив’язаного маршруту, ні придатного збереженого маршруту, пряма доставка може не вдатися, і результат замість негайної публікації в чаті перейде до доставки через чергу сесії. - - Некоректні або застарілі цілі все одно можуть примусово спричинити перехід до черги або остаточну невдачу доставки. - - Якщо остання видима відповідь асистента дочірньої сесії — це точний тихий токен `NO_REPLY` / `no_reply` або точно `ANNOUNCE_SKIP`, OpenClaw навмисно пригнічує анонс замість публікації застарілого попереднього прогресу. - - Якщо дочірня сесія завершилася за тайм-аутом лише після викликів інструментів, анонс може згорнути це в короткий підсумок часткового прогресу замість відтворення сирого виводу інструментів. + - Доставка subagent у режимі завершення надає перевагу будь-якому прив’язаному треду або маршруту розмови, якщо такий існує. + - Якщо джерело завершення містить лише канал, OpenClaw повертається до збереженого маршруту сесії запитувача (`lastChannel` / `lastTo` / `lastAccountId`), щоб пряма доставка все ще могла спрацювати. + - Якщо немає ні прив’язаного маршруту, ні придатного збереженого маршруту, пряма доставка може не вдатися, і тоді результат повертається до доставки через чергу сесії замість негайної публікації в чат. + - Некоректні або застарілі цілі все ще можуть примусово перевести доставку в чергу або спричинити остаточну помилку доставки. + - Якщо остання видима відповідь assistant у дочірній сесії — це точний тихий токен `NO_REPLY` / `no_reply` або рівно `ANNOUNCE_SKIP`, OpenClaw навмисно приглушує оголошення замість публікації застарілого попереднього прогресу. + - Якщо дочірня сесія завершилася за тайм-аутом після одних лише викликів інструментів, оголошення може згорнути це до короткого підсумку часткового прогресу замість відтворення сирого виводу інструментів. Налагодження: @@ -1073,19 +1073,19 @@ x-i18n: openclaw tasks show ``` - Документація: [Sub-agents](/uk/tools/subagents), [Фонові завдання](/uk/automation/tasks), [Інструменти сесій](/uk/concepts/session-tool). + Документація: [Sub-agents](/uk/tools/subagents), [Фонові задачі](/uk/automation/tasks), [Інструмент сесій](/uk/concepts/session-tool). - Cron виконується всередині процесу Gateway. Якщо Gateway не працює безперервно, - заплановані завдання не виконуватимуться. + Cron запускається всередині процесу Gateway. Якщо Gateway не працює безперервно, + заплановані задачі не виконуватимуться. Контрольний список: - Переконайтеся, що cron увімкнено (`cron.enabled`) і `OPENCLAW_SKIP_CRON` не задано. - - Перевірте, що Gateway працює 24/7 (без сну/перезапусків). - - Перевірте налаштування часового поясу для завдання (`--tz` проти часового поясу хоста). + - Перевірте, що Gateway працює 24/7 (без режиму сну/перезапусків). + - Перевірте налаштування часового поясу для задачі (`--tz` проти часового поясу хоста). Налагодження: @@ -1094,21 +1094,21 @@ x-i18n: openclaw cron runs --id --limit 50 ``` - Документація: [Cron jobs](/uk/automation/cron-jobs), [Автоматизація й завдання](/uk/automation). + Документація: [Cron jobs](/uk/automation/cron-jobs), [Автоматизація та задачі](/uk/automation). - + Спочатку перевірте режим доставки: - `--no-deliver` / `delivery.mode: "none"` означає, що зовнішнє повідомлення не очікується. - - Відсутня або некоректна ціль анонсу (`channel` / `to`) означає, що runner пропустив вихідну доставку. - - Збої автентифікації channel (`unauthorized`, `Forbidden`) означають, що runner намагався доставити повідомлення, але облікові дані це заблокували. - - Тихий ізольований результат (`NO_REPLY` / `no_reply` only) вважається навмисно непридатним до доставки, тож runner також пригнічує доставку через queued fallback. + - Відсутня або некоректна ціль оголошення (`channel` / `to`) означає, що runner пропустив вихідну доставку. + - Помилки auth каналу (`unauthorized`, `Forbidden`) означають, що runner намагався доставити повідомлення, але облікові дані це заблокували. + - Тихий ізольований результат (`NO_REPLY` / `no_reply` лише) вважається навмисно недоставним, тому runner також приглушує запасну доставку через чергу. - Для ізольованих Cron jobs остаточною доставкою керує runner. Очікується, - що агент поверне текстовий підсумок, який runner надішле. `--no-deliver` залишає - цей результат внутрішнім; він не дозволяє агенту натомість надсилати напряму через + Для ізольованих cron jobs runner відповідає за фінальну доставку. Очікується, + що agent поверне текстовий підсумок, який runner надішле. `--no-deliver` зберігає + цей результат внутрішнім; це не дозволяє agent натомість надсилати напряму через message tool. Налагодження: @@ -1118,27 +1118,27 @@ x-i18n: openclaw tasks show ``` - Документація: [Cron jobs](/uk/automation/cron-jobs), [Фонові завдання](/uk/automation/tasks). + Документація: [Cron jobs](/uk/automation/cron-jobs), [Фонові задачі](/uk/automation/tasks). - + Зазвичай це шлях live-перемикання моделі, а не дубльоване планування. - Ізольований cron може зберегти передачу моделі під час виконання та повторити спробу, коли активний + Ізольований cron може зберегти runtime-передачу моделі та повторити спробу, коли активний запуск викидає `LiveSessionModelSwitchError`. Повторна спроба зберігає перемкнений - provider/model, а якщо перемикання містило новий override профілю автентифікації, cron + provider/model, а якщо перемикання несло нове перевизначення auth-профілю, cron також зберігає його перед повторною спробою. Пов’язані правила вибору: - - Override моделі для Gmail hook має найвищий пріоритет, якщо застосовно. - - Потім `model` для конкретного завдання. - - Потім будь-який збережений override моделі cron-session. - - Потім звичайний вибір моделі агента/за замовчуванням. + - Спочатку застосовується перевизначення моделі Gmail hook, якщо воно доречне. + - Потім `model` для конкретної задачі. + - Потім будь-яке збережене перевизначення моделі cron-сесії. + - Потім звичайний вибір моделі agent/типової моделі. Цикл повторних спроб обмежений. Після початкової спроби плюс 2 повторних спроб перемикання - cron зупиняється замість нескінченного циклу. + cron перериває виконання замість нескінченного циклу. Налагодження: @@ -1147,13 +1147,13 @@ x-i18n: openclaw tasks show ``` - Документація: [Cron jobs](/uk/automation/cron-jobs), [CLI cron](/cli/cron). + Документація: [Cron jobs](/uk/automation/cron-jobs), [cron CLI](/cli/cron). - - Використовуйте нативні команди `openclaw skills` або поміщайте Skills у свій workspace. UI Skills для macOS недоступний на Linux. - Переглянути Skills можна на [https://clawhub.ai](https://clawhub.ai). + + Використовуйте нативні команди `openclaw skills` або просто додавайте skills у свій workspace. UI Skills для macOS недоступний на Linux. + Переглянути skills можна на [https://clawhub.ai](https://clawhub.ai). ```bash openclaw skills search "calendar" @@ -1166,41 +1166,41 @@ x-i18n: openclaw skills check ``` - Нативна команда `openclaw skills install` записує в каталог `skills/` - активного workspace. Окремий CLI `clawhub` установлюйте лише якщо хочете публікувати або - синхронізувати власні Skills. Для спільних установлень між агентами помістіть skill у + Нативна команда `openclaw skills install` записує у каталог `skills/` + активного workspace. Окремий CLI `clawhub` встановлюйте лише якщо хочете публікувати або + синхронізувати власні skills. Для спільного встановлення між agents розміщуйте skill у `~/.openclaw/skills` і використовуйте `agents.defaults.skills` або - `agents.list[].skills`, якщо хочете звузити коло агентів, які можуть його бачити. + `agents.list[].skills`, якщо хочете звузити коло agents, які можуть його бачити. - + Так. Використовуйте планувальник Gateway: - - **Cron jobs** для запланованих або повторюваних завдань (зберігаються після перезапусків). + - **Cron jobs** для запланованих або повторюваних задач (зберігаються після перезапусків). - **Heartbeat** для періодичних перевірок "основної сесії". - - **Ізольовані завдання** для автономних агентів, які публікують підсумки або доставляють їх у чати. + - **Ізольовані jobs** для автономних agents, які публікують підсумки або доставляють їх у чати. - Документація: [Cron jobs](/uk/automation/cron-jobs), [Автоматизація й завдання](/uk/automation), + Документація: [Cron jobs](/uk/automation/cron-jobs), [Автоматизація та задачі](/uk/automation), [Heartbeat](/uk/gateway/heartbeat). - - Не напряму. Skills для macOS обмежуються через `metadata.openclaw.os` плюс потрібні бінарні файли, і Skills з’являються в системному prompt лише тоді, коли вони придатні на **хості Gateway**. На Linux skills лише для `darwin` (як-от `apple-notes`, `apple-reminders`, `things-mac`) не завантажаться, якщо не перевизначити це обмеження. + + Не напряму. Skills для macOS обмежуються через `metadata.openclaw.os` плюс потрібні бінарні файли, і skills з’являються в system prompt лише тоді, коли вони придатні на **хості Gateway**. На Linux skills лише для `darwin` (як-от `apple-notes`, `apple-reminders`, `things-mac`) не завантажуватимуться, якщо ви не перевизначите це обмеження. - Є три підтримувані шаблони: + Є три підтримувані варіанти: **Варіант A — запускати Gateway на Mac (найпростіше).** - Запускайте Gateway там, де існують бінарні файли macOS, а потім підключайтеся з Linux у [віддаленому режимі](#gateway-ports-already-running-and-remote-mode) або через Tailscale. Skills завантажуються нормально, тому що хост Gateway — це macOS. + Запускайте Gateway там, де існують бінарні файли macOS, а потім підключайтеся з Linux у [віддаленому режимі](#gateway-ports-already-running-and-remote-mode) або через Tailscale. Skills завантажуються звичайним чином, оскільки хост Gateway — це macOS. - **Варіант B — використовувати macOS node (без SSH).** - Запускайте Gateway на Linux, під’єднайте macOS node (застосунок у рядку меню) і встановіть **Node Run Commands** у "Always Ask" або "Always Allow" на Mac. OpenClaw може вважати skills лише для macOS придатними, коли потрібні бінарні файли існують на node. Агент запускає ці skills через інструмент `nodes`. Якщо ви виберете "Always Ask", підтвердження "Always Allow" у prompt додасть цю команду до allowlist. + **Варіант B — використовувати macOS Node (без SSH).** + Запустіть Gateway на Linux, підключіть macOS Node (застосунок у menubar) і встановіть **Node Run Commands** у значення "Always Ask" або "Always Allow" на Mac. OpenClaw може вважати macOS-only skills придатними, якщо потрібні бінарні файли існують на Node. Agent запускає ці skills через інструмент `nodes`. Якщо ви оберете "Always Ask", підтвердження "Always Allow" у запиті додає цю команду до allowlist. - **Варіант C — проксувати бінарні файли macOS через SSH (просунутий).** - Залиште Gateway на Linux, але зробіть так, щоб потрібні CLI-бінарні файли визначалися як SSH-обгортки, які запускаються на Mac. Потім перевизначте skill, щоб дозволити Linux і він залишався придатним. + **Варіант C — проксувати бінарні файли macOS через SSH (розширений варіант).** + Залиште Gateway на Linux, але налаштуйте так, щоб потрібні CLI-бінарники розв’язувалися у SSH-обгортки, які запускаються на Mac. Потім перевизначте skill, щоб дозволити Linux і зберегти його придатним. - 1. Створіть SSH-обгортку для бінарного файла (приклад: `memo` для Apple Notes): + 1. Створіть SSH-обгортку для бінарного файлу (приклад: `memo` для Apple Notes): ```bash #!/usr/bin/env bash @@ -1208,70 +1208,70 @@ x-i18n: exec ssh -T user@mac-host /opt/homebrew/bin/memo "$@" ``` - 2. Додайте обгортку до `PATH` на Linux-хості (наприклад, `~/bin/memo`). - 3. Перевизначте метадані skill (у workspace або `~/.openclaw/skills`), щоб дозволити Linux: + 2. Розмістіть обгортку в `PATH` на Linux-хості (наприклад `~/bin/memo`). + 3. Перевизначте metadata skill (workspace або `~/.openclaw/skills`), щоб дозволити Linux: ```markdown --- name: apple-notes - description: Керування Apple Notes через CLI memo на macOS. + description: Керування Apple Notes через CLI `memo` на macOS. metadata: { "openclaw": { "os": ["darwin", "linux"], "requires": { "bins": ["memo"] } } } --- ``` - 4. Запустіть нову сесію, щоб знімок Skills оновився. + 4. Почніть нову сесію, щоб знімок skills оновився. - На сьогодні вбудованої немає. + Вбудованої наразі немає. Варіанти: - - **Користувацький skill / Plugin:** найкращий варіант для надійного доступу до API (і Notion, і HeyGen мають API). - - **Автоматизація браузера:** працює без коду, але повільніше та менш надійно. + - **Власний skill / Plugin:** найкраще для надійного доступу до API (і Notion, і HeyGen мають API). + - **Автоматизація браузера:** працює без коду, але повільніше й крихкіше. - Якщо ви хочете зберігати контекст окремо для кожного клієнта (робочі процеси агентства), простий шаблон такий: + Якщо ви хочете зберігати контекст для кожного клієнта (agency workflows), простий шаблон такий: - Одна сторінка Notion на клієнта (контекст + налаштування + активна робота). - - Попросіть агента отримувати цю сторінку на початку сесії. + - Попросіть agent отримати цю сторінку на початку сесії. - Якщо вам потрібна нативна інтеграція, створіть запит на функцію або створіть skill, - орієнтований на ці API. + Якщо вам потрібна нативна інтеграція, створіть запит на нову функцію або побудуйте skill, + націлений на ці API. - Установлення Skills: + Встановлення skills: ```bash openclaw skills install openclaw skills update --all ``` - Нативні встановлення потрапляють у каталог `skills/` активного workspace. Для спільних Skills між агентами розміщуйте їх у `~/.openclaw/skills//SKILL.md`. Якщо спільне встановлення мають бачити лише деякі агенти, налаштуйте `agents.defaults.skills` або `agents.list[].skills`. Деякі Skills очікують бінарні файли, установлені через Homebrew; на Linux це означає Linuxbrew (див. запис FAQ про Homebrew на Linux вище). Див. [Skills](/uk/tools/skills), [Конфігурація Skills](/uk/tools/skills-config) і [ClawHub](/uk/tools/clawhub). + Нативні встановлення потрапляють у каталог `skills/` активного workspace. Для спільних skills між agents розміщуйте їх у `~/.openclaw/skills//SKILL.md`. Якщо спільне встановлення мають бачити лише деякі agents, налаштуйте `agents.defaults.skills` або `agents.list[].skills`. Деякі skills очікують бінарні файли, встановлені через Homebrew; на Linux це означає Linuxbrew (див. запис FAQ про Homebrew на Linux вище). Див. [Skills](/uk/tools/skills), [Конфігурація Skills](/uk/tools/skills-config) і [ClawHub](/uk/tools/clawhub). - - Використовуйте вбудований профіль браузера `user`, який під’єднується через Chrome DevTools MCP: + + Використовуйте вбудований профіль браузера `user`, який підключається через Chrome DevTools MCP: ```bash openclaw browser --browser-profile user tabs openclaw browser --browser-profile user snapshot ``` - Якщо вам потрібна власна назва, створіть явний MCP-профіль: + Якщо ви хочете власну назву, створіть явний MCP-профіль: ```bash openclaw browser create-profile --name chrome-live --driver existing-session openclaw browser --browser-profile chrome-live tabs ``` - Цей шлях може використовувати браузер локального хоста або під’єднаний browser node. Якщо Gateway працює деінде, або запустіть host node на машині з браузером, або використовуйте віддалений CDP. + Цей шлях може використовувати локальний браузер хоста або підключений browser Node. Якщо Gateway працює деінде, або запустіть хост Node на машині з браузером, або використовуйте віддалений CDP. Поточні обмеження для `existing-session` / `user`: - - дії ґрунтуються на ref, а не на CSS-селекторах + - дії прив’язані до ref, а не до CSS-селекторів - завантаження файлів потребує `ref` / `inputRef` і наразі підтримує лише один файл за раз - - `responsebody`, експорт у PDF, перехоплення завантажень і пакетні дії все ще потребують керованого браузера або сирого CDP-профілю + - `responsebody`, експорт PDF, перехоплення завантажень і пакетні дії все ще потребують керованого браузера або сирого профілю CDP @@ -1279,41 +1279,41 @@ x-i18n: ## Ізоляція та пам’ять - - Так. Див. [Ізоляція](/uk/gateway/sandboxing). Для налаштування, специфічного для Docker (повний gateway у Docker або образи ізоляції), див. [Docker](/uk/install/docker). + + Так. Див. [Ізоляція](/uk/gateway/sandboxing). Для налаштування, специфічного для Docker (повний gateway у Docker або образи sandbox), див. [Docker](/uk/install/docker). - - Образ за замовчуванням орієнтований насамперед на безпеку та запускається від користувача `node`, тому він не - містить системних пакетів, Homebrew або вбудованих браузерів. Для повнішого налаштування: + + Образ за замовчуванням орієнтований на безпеку і запускається від користувача `node`, тож він не + містить системних пакетів, Homebrew або bundled браузерів. Для повнішого налаштування: - - Зберігайте `/home/node` через `OPENCLAW_HOME_VOLUME`, щоб кеші не зникали. - - Додавайте системні залежності до образу через `OPENCLAW_DOCKER_APT_PACKAGES`. - - Установлюйте браузери Playwright через вбудований CLI: + - Зберігайте `/home/node` через `OPENCLAW_HOME_VOLUME`, щоб кеші не втрачалися. + - Додавайте системні залежності в образ через `OPENCLAW_DOCKER_APT_PACKAGES`. + - Встановлюйте браузери Playwright через bundled CLI: `node /app/node_modules/playwright-core/cli.js install chromium` - Задайте `PLAYWRIGHT_BROWSERS_PATH` і переконайтеся, що цей шлях зберігається. - Документація: [Docker](/uk/install/docker), [Browser](/uk/tools/browser). + Документація: [Docker](/uk/install/docker), [Браузер](/uk/tools/browser). - + Так — якщо ваш приватний трафік це **DM**, а публічний трафік це **групи**. - Використовуйте `agents.defaults.sandbox.mode: "non-main"`, щоб сесії груп/channel (ключі не-main) працювали в Docker, а основна DM-сесія залишалася на хості. Потім обмежте, які інструменти доступні в ізольованих сесіях, через `tools.sandbox.tools`. + Використовуйте `agents.defaults.sandbox.mode: "non-main"`, щоб сесії груп/каналів (ключі не-main) запускалися в Docker, а основна сесія DM залишалася на хості. Потім обмежте доступні інструменти в ізольованих сесіях через `tools.sandbox.tools`. Покрокове налаштування + приклад конфігурації: [Групи: приватні DM + публічні групи](/uk/channels/groups#pattern-personal-dms-public-groups-single-agent) - Довідник із ключової конфігурації: [Конфігурація Gateway](/uk/gateway/configuration-reference#agentsdefaultssandbox) + Довідка з ключової конфігурації: [Конфігурація Gateway](/uk/gateway/configuration-reference#agentsdefaultssandbox) - Установіть `agents.defaults.sandbox.docker.binds` у `["host:path:mode"]` (наприклад, `"/home/user/src:/src:ro"`). Глобальні прив’язки й прив’язки для окремого агента об’єднуються; прив’язки для окремого агента ігноруються, коли `scope: "shared"`. Використовуйте `:ro` для будь-чого чутливого й пам’ятайте, що прив’язки обходять файлові межі sandbox. + Задайте `agents.defaults.sandbox.docker.binds` у вигляді `["host:path:mode"]` (наприклад `"/home/user/src:/src:ro"`). Глобальні прив’язки та прив’язки для конкретного agent об’єднуються; прив’язки для конкретного agent ігноруються, коли `scope: "shared"`. Використовуйте `:ro` для всього чутливого й пам’ятайте, що прив’язки обходять файлові стіни sandbox. - OpenClaw перевіряє джерела bind і за нормалізованим шляхом, і за канонічним шляхом, який визначається через найглибший наявний батьківський елемент. Це означає, що виходи за межі через symlink-батьківський шлях однаково надійно блокуються, навіть коли останній сегмент шляху ще не існує, а перевірки allowed-root і далі застосовуються після розв’язання symlink. + OpenClaw перевіряє джерела прив’язок і за нормалізованим шляхом, і за канонічним шляхом, визначеним через найглибшого наявного предка. Це означає, що виходи за межі через батьківський symlink усе одно надійно блокуються, навіть коли останній сегмент шляху ще не існує, а перевірки дозволеного кореня все одно застосовуються після розв’язання symlink. - Приклади та примітки з безпеки див. у [Ізоляція](/uk/gateway/sandboxing#custom-bind-mounts) і [Sandbox vs Tool Policy vs Elevated](/uk/gateway/sandbox-vs-tool-policy-vs-elevated#bind-mounts-security-quick-check). + Див. [Ізоляція](/uk/gateway/sandboxing#custom-bind-mounts) і [Sandbox vs Tool Policy vs Elevated](/uk/gateway/sandbox-vs-tool-policy-vs-elevated#bind-mounts-security-quick-check) для прикладів і приміток щодо безпеки. @@ -1321,20 +1321,20 @@ x-i18n: Пам’ять OpenClaw — це просто Markdown-файли у workspace агента: - Щоденні нотатки в `memory/YYYY-MM-DD.md` - - Кураторські довгострокові нотатки в `MEMORY.md` (лише для main/private-сесій) + - Відібрані довгострокові нотатки в `MEMORY.md` (лише для main/private sessions) - OpenClaw також виконує **тихе попереднє скидання пам’яті перед Compaction**, щоб нагадати моделі + OpenClaw також виконує **тихий flush пам’яті перед Compaction**, щоб нагадати моделі записати стійкі нотатки перед автоматичним Compaction. Це виконується лише тоді, коли workspace - доступний для запису (sandbox лише для читання пропускають це). Див. [Пам’ять](/uk/concepts/memory). + доступний для запису (read-only sandbox це пропускають). Див. [Пам’ять](/uk/concepts/memory). - Попросіть бота **записати факт у пам’ять**. Довготривалі нотатки мають зберігатися в `MEMORY.md`, + Попросіть бота **записати факт у пам’ять**. Довгострокові нотатки мають бути в `MEMORY.md`, короткостроковий контекст — у `memory/YYYY-MM-DD.md`. - Це все ще напрям, який ми вдосконалюємо. Корисно нагадувати моделі зберігати спогади; - вона знатиме, що робити. Якщо вона й далі забуває, перевірте, що Gateway використовує той самий + Це все ще напрям, який ми покращуємо. Корисно нагадувати моделі зберігати спогади; + вона знатиме, що робити. Якщо вона продовжує забувати, перевірте, що Gateway використовує той самий workspace під час кожного запуску. Документація: [Пам’ять](/uk/concepts/memory), [Workspace агента](/uk/concepts/agent-workspace). @@ -1342,35 +1342,35 @@ x-i18n: - Файли пам’яті зберігаються на диску й існують, доки ви їх не видалите. Обмеженням є - ваше сховище, а не модель. **Контекст сесії** все одно обмежений - вікном контексту моделі, тому довгі розмови можуть проходити Compaction або обрізання. Саме тому - існує пошук у пам’яті — він повертає в контекст лише релевантні частини. + Файли пам’яті живуть на диску й зберігаються, доки ви їх не видалите. Обмеженням є ваше + сховище, а не модель. **Контекст сесії** все одно обмежений вікном контексту моделі, + тому довгі розмови можуть ущільнюватися або обрізатися. Саме тому існує + пошук у пам’яті — він повертає в контекст лише релевантні частини. Документація: [Пам’ять](/uk/concepts/memory), [Контекст](/uk/concepts/context). - - Лише якщо ви використовуєте **ембедінги OpenAI**. Codex OAuth покриває чат/completions і - **не** надає доступу до embeddings, тож **вхід через Codex (OAuth або - вхід через Codex CLI)** не допомагає для семантичного пошуку в пам’яті. Для ембедінгів OpenAI - все одно потрібен справжній API-ключ (`OPENAI_API_KEY` або `models.providers.openai.apiKey`). + + Лише якщо ви використовуєте **embeddings OpenAI**. OAuth Codex покриває chat/completions і + **не** надає доступу до embeddings, тому **вхід через Codex (OAuth або + вхід через CLI Codex)** не допомагає для семантичного пошуку в пам’яті. Для embeddings OpenAI + усе одно потрібен справжній API key (`OPENAI_API_KEY` або `models.providers.openai.apiKey`). Якщо ви явно не задаєте провайдера, OpenClaw автоматично вибирає провайдера, коли - може визначити API-ключ (профілі автентифікації, `models.providers.*.apiKey` або змінні середовища). - Він віддає перевагу OpenAI, якщо визначається ключ OpenAI, інакше Gemini, якщо визначається ключ Gemini, - потім Voyage, потім Mistral. Якщо жоден віддалений ключ недоступний, пошук у пам’яті - залишається вимкненим, доки ви його не налаштуєте. Якщо у вас налаштовано й наявний шлях - до локальної моделі, OpenClaw - віддає перевагу `local`. Ollama підтримується, коли ви явно задаєте + може визначити API key (auth-профілі, `models.providers.*.apiKey` або env vars). + Він надає перевагу OpenAI, якщо визначається ключ OpenAI, інакше Gemini, якщо визначається ключ Gemini, + далі Voyage, потім Mistral. Якщо віддалений ключ недоступний, пошук у пам’яті + залишається вимкненим, доки ви його не налаштуєте. Якщо у вас налаштовано локальний шлях до моделі + і він наявний, OpenClaw + надає перевагу `local`. Ollama підтримується, якщо ви явно задаєте `memorySearch.provider = "ollama"`. - Якщо ви хочете залишатися локальними, задайте `memorySearch.provider = "local"` (і за бажанням - `memorySearch.fallback = "none"`). Якщо вам потрібні ембедінги Gemini, задайте + Якщо ви хочете залишитися локально, задайте `memorySearch.provider = "local"` (і за бажанням + `memorySearch.fallback = "none"`). Якщо вам потрібні embeddings Gemini, задайте `memorySearch.provider = "gemini"` і надайте `GEMINI_API_KEY` (або - `memorySearch.remote.apiKey`). Ми підтримуємо моделі ембедінгів **OpenAI, Gemini, Voyage, Mistral, Ollama або local** — - подробиці налаштування див. у [Пам’ять](/uk/concepts/memory). + `memorySearch.remote.apiKey`). Ми підтримуємо embedding-моделі **OpenAI, Gemini, Voyage, Mistral, Ollama або local** — + див. [Пам’ять](/uk/concepts/memory) для деталей налаштування. @@ -1379,14 +1379,14 @@ x-i18n: - Ні — **стан OpenClaw локальний**, але **зовнішні сервіси все одно бачать те, що ви їм надсилаєте**. + Ні — **стан OpenClaw локальний**, але **зовнішні служби все одно бачать те, що ви їм надсилаєте**. - - **Локально за замовчуванням:** сесії, файли пам’яті, конфігурація та workspace живуть на хості Gateway + - **Локально за замовчуванням:** sessions, файли пам’яті, конфігурація та workspace живуть на хості Gateway (`~/.openclaw` + каталог вашого workspace). - - **Віддалено за потребою:** повідомлення, які ви надсилаєте провайдерам моделей (Anthropic/OpenAI тощо), потрапляють до - їхніх API, а чат-платформи (WhatsApp/Telegram/Slack тощо) зберігають дані повідомлень на + - **Віддалено за необхідністю:** повідомлення, які ви надсилаєте провайдерам моделей (Anthropic/OpenAI тощо), надходять до + їхніх API, а платформи чатів (WhatsApp/Telegram/Slack тощо) зберігають дані повідомлень на своїх серверах. - - **Ви контролюєте слід:** використання локальних моделей залишає prompt-и на вашій машині, але трафік + - **Ви контролюєте слід:** використання локальних моделей залишає prompts на вашій машині, але трафік каналів усе одно проходить через сервери відповідного каналу. Пов’язане: [Workspace агента](/uk/concepts/agent-workspace), [Пам’ять](/uk/concepts/memory). @@ -1396,34 +1396,34 @@ x-i18n: Усе зберігається в `$OPENCLAW_STATE_DIR` (типово: `~/.openclaw`): - | Шлях | Призначення | + | Path | Призначення | | --------------------------------------------------------------- | ------------------------------------------------------------------ | | `$OPENCLAW_STATE_DIR/openclaw.json` | Основна конфігурація (JSON5) | - | `$OPENCLAW_STATE_DIR/credentials/oauth.json` | Імпорт застарілого OAuth (копіюється в профілі автентифікації під час першого використання) | - | `$OPENCLAW_STATE_DIR/agents//agent/auth-profiles.json` | Профілі автентифікації (OAuth, API-ключі та необов’язкові `keyRef`/`tokenRef`) | - | `$OPENCLAW_STATE_DIR/secrets.json` | Необов’язкове файлове секретне корисне навантаження для провайдерів `file` SecretRef | - | `$OPENCLAW_STATE_DIR/agents//agent/auth.json` | Файл застарілої сумісності (статичні записи `api_key` очищено) | - | `$OPENCLAW_STATE_DIR/credentials/` | Стан провайдера (наприклад, `whatsapp//creds.json`) | - | `$OPENCLAW_STATE_DIR/agents/` | Стан для кожного агента окремо (agentDir + сесії) | + | `$OPENCLAW_STATE_DIR/credentials/oauth.json` | Імпорт застарілого OAuth (копіюється в auth-профілі під час першого використання) | + | `$OPENCLAW_STATE_DIR/agents//agent/auth-profiles.json` | Auth-профілі (OAuth, API keys та необов’язкові `keyRef`/`tokenRef`) | + | `$OPENCLAW_STATE_DIR/secrets.json` | Необов’язкове файлове сховище секретів для провайдерів `file` SecretRef | + | `$OPENCLAW_STATE_DIR/agents//agent/auth.json` | Файл сумісності із застарілими версіями (статичні записи `api_key` очищені) | + | `$OPENCLAW_STATE_DIR/credentials/` | Стан провайдера (наприклад `whatsapp//creds.json`) | + | `$OPENCLAW_STATE_DIR/agents/` | Стан для кожного агента окремо (agentDir + sessions) | | `$OPENCLAW_STATE_DIR/agents//sessions/` | Історія розмов і стан (для кожного агента) | | `$OPENCLAW_STATE_DIR/agents//sessions/sessions.json` | Метадані сесій (для кожного агента) | - Застарілий шлях для одного агента: `~/.openclaw/agent/*` (мігрується командою `openclaw doctor`). + Застарілий шлях для одного агента: `~/.openclaw/agent/*` (мігрується через `openclaw doctor`). - Ваш **workspace** (`AGENTS.md`, файли пам’яті, Skills тощо) зберігається окремо й налаштовується через `agents.defaults.workspace` (типово: `~/.openclaw/workspace`). + Ваш **workspace** (`AGENTS.md`, файли пам’яті, skills тощо) відокремлений і налаштовується через `agents.defaults.workspace` (типово: `~/.openclaw/workspace`). - Ці файли мають зберігатися в **workspace агента**, а не в `~/.openclaw`. + Ці файли живуть у **workspace агента**, а не в `~/.openclaw`. - **Workspace (для кожного агента):** `AGENTS.md`, `SOUL.md`, `IDENTITY.md`, `USER.md`, - `MEMORY.md` (або застарілий резервний варіант `memory.md`, якщо `MEMORY.md` відсутній), + `MEMORY.md` (або застарілий запасний варіант `memory.md`, коли `MEMORY.md` відсутній), `memory/YYYY-MM-DD.md`, необов’язковий `HEARTBEAT.md`. - - **Каталог state (`~/.openclaw`)**: конфігурація, стан channel/provider, профілі автентифікації, сесії, журнали, - і спільні Skills (`~/.openclaw/skills`). + - **Каталог стану (`~/.openclaw`)**: конфігурація, стан channel/provider, auth-профілі, sessions, логи + і спільні skills (`~/.openclaw/skills`). - Workspace за замовчуванням — `~/.openclaw/workspace`, налаштовується через: + Типовий workspace: `~/.openclaw/workspace`, налаштовується через: ```json5 { @@ -1432,23 +1432,23 @@ x-i18n: ``` Якщо бот "забуває" після перезапуску, переконайтеся, що Gateway використовує той самий - workspace під час кожного запуску (і пам’ятайте: віддалений режим використовує **workspace хоста gateway**, + workspace під час кожного запуску (і пам’ятайте: у віддаленому режимі використовується workspace **хоста gateway**, а не вашого локального ноутбука). - Порада: якщо ви хочете закріпити поведінку або вподобання, попросіть бота **записати це в - AGENTS.md або MEMORY.md**, а не покладайтеся на історію чату. + Порада: якщо ви хочете стійку поведінку або налаштування, попросіть бота **записати це в + AGENTS.md або MEMORY.md**, а не покладатися на історію чату. Див. [Workspace агента](/uk/concepts/agent-workspace) і [Пам’ять](/uk/concepts/memory). - Помістіть свій **workspace агента** в **приватний** git-репозиторій і зберігайте його резервну копію десь - приватно (наприклад, у приватному GitHub). Це охоплює пам’ять + файли AGENTS/SOUL/USER - та дає змогу пізніше відновити "розум" асистента. + Розмістіть свій **workspace агента** в **приватному** git-репозиторії та створюйте його резервні копії десь + у приватному місці (наприклад, у приватному GitHub). Це збереже пам’ять + файли AGENTS/SOUL/USER + і дасть змогу пізніше відновити "мислення" помічника. - **Не** робіть commit нічого з `~/.openclaw` (облікові дані, сесії, токени або зашифровані корисні навантаження секретів). - Якщо вам потрібне повне відновлення, окремо створіть резервні копії і workspace, і каталогу state + **Не** виконуйте commit для будь-чого з `~/.openclaw` (облікові дані, сесії, токени або зашифровані секретні payloads). + Якщо вам потрібне повне відновлення, окремо робіть резервні копії і workspace, і каталогу стану (див. питання про міграцію вище). Документація: [Workspace агента](/uk/concepts/agent-workspace). @@ -1459,16 +1459,16 @@ x-i18n: Див. окремий посібник: [Видалення](/uk/install/uninstall). - - Так. Workspace — це **cwd за замовчуванням** і якір пам’яті, а не жорстка sandbox-ізоляція. - Відносні шляхи розв’язуються всередині workspace, але абсолютні шляхи можуть звертатися до інших - розташувань хоста, якщо sandbox не ввімкнено. Якщо вам потрібна ізоляція, використовуйте - [`agents.defaults.sandbox`](/uk/gateway/sandboxing) або налаштування sandbox для окремого агента. Якщо ви - хочете, щоб репозиторій був робочим каталогом за замовчуванням, вкажіть `workspace` + + Так. Workspace — це **типовий cwd** і якір пам’яті, а не жорсткий sandbox. + Відносні шляхи розв’язуються всередині workspace, але абсолютні шляхи можуть отримувати доступ до інших + розташувань хоста, якщо sandboxing не ввімкнено. Якщо вам потрібна ізоляція, використовуйте + [`agents.defaults.sandbox`](/uk/gateway/sandboxing) або налаштування sandbox для конкретного агента. Якщо ви + хочете, щоб репозиторій був типовим робочим каталогом, вкажіть `workspace` цього агента на корінь репозиторію. Репозиторій OpenClaw — це лише вихідний код; тримайте workspace окремо, якщо тільки ви навмисно не хочете, щоб агент працював усередині нього. - Приклад (репозиторій як cwd за замовчуванням): + Приклад (репозиторій як типовий cwd): ```json5 { @@ -1482,8 +1482,8 @@ x-i18n: - - Станом сесій керує **хост gateway**. Якщо ви працюєте у віддаленому режимі, потрібне вам сховище сесій знаходиться на віддаленій машині, а не на вашому локальному ноутбуці. Див. [Керування сесіями](/uk/concepts/session). + + Стан сесій належить **хосту gateway**. Якщо ви працюєте у віддаленому режимі, потрібне вам сховище сесій розташоване на віддаленій машині, а не на вашому локальному ноутбуці. Див. [Керування сесіями](/uk/concepts/session). @@ -1497,15 +1497,15 @@ x-i18n: $OPENCLAW_CONFIG_PATH ``` - Якщо файл відсутній, використовуються досить безпечні значення за замовчуванням (зокрема workspace за замовчуванням `~/.openclaw/workspace`). + Якщо файл відсутній, використовуються відносно безпечні типові значення (включно з типовим workspace `~/.openclaw/workspace`). - - Bind не-loopback **потребують дійсного шляху автентифікації gateway**. На практиці це означає: + + Прив’язки не до loopback **вимагають дійсного шляху auth gateway**. На практиці це означає: - - автентифікація спільним секретом: токен або пароль - - `gateway.auth.mode: "trusted-proxy"` за правильно налаштованим identity-aware reverse proxy не-loopback + - auth зі спільним секретом: токен або пароль + - `gateway.auth.mode: "trusted-proxy"` за правильно налаштованим reverse proxy з awareness identity не на loopback ```json5 { @@ -1521,31 +1521,31 @@ x-i18n: Примітки: - - `gateway.remote.token` / `.password` самі по собі **не** вмикають локальну автентифікацію gateway. - - Локальні шляхи виклику можуть використовувати `gateway.remote.*` як fallback лише тоді, коли `gateway.auth.*` не задано. - - Для автентифікації паролем замість цього задайте `gateway.auth.mode: "password"` разом із `gateway.auth.password` (або `OPENCLAW_GATEWAY_PASSWORD`). - - Якщо `gateway.auth.token` / `gateway.auth.password` явно налаштовано через SecretRef і не вдається розв’язати, розв’язання завершується надійним блокуванням (без маскування віддаленим fallback). - - Конфігурації Control UI зі спільним секретом проходять автентифікацію через `connect.params.auth.token` або `connect.params.auth.password` (зберігаються в налаштуваннях застосунку/UI). Режими з передаванням ідентичності, як-от Tailscale Serve або `trusted-proxy`, натомість використовують заголовки запиту. Уникайте розміщення спільних секретів в URL. - - З `gateway.auth.mode: "trusted-proxy"` reverse proxy loopback на тому самому хості все одно **не** задовольняють автентифікацію trusted-proxy. Trusted proxy має бути налаштованим джерелом не-loopback. + - `gateway.remote.token` / `.password` **самі по собі** не вмикають локальний auth gateway. + - Локальні шляхи виклику можуть використовувати `gateway.remote.*` як запасний варіант лише тоді, коли `gateway.auth.*` не задано. + - Для auth за паролем задайте натомість `gateway.auth.mode: "password"` плюс `gateway.auth.password` (або `OPENCLAW_GATEWAY_PASSWORD`). + - Якщо `gateway.auth.token` / `gateway.auth.password` явно налаштовано через SecretRef і не розв’язано, розв’язання завершується в закритому режимі (без маскувального запасного варіанту через remote). + - Конфігурації Control UI зі спільним секретом автентифікуються через `connect.params.auth.token` або `connect.params.auth.password` (зберігаються в налаштуваннях app/UI). Режими з identity, такі як Tailscale Serve або `trusted-proxy`, натомість використовують заголовки запитів. Уникайте розміщення спільних секретів в URL. + - При `gateway.auth.mode: "trusted-proxy"` reverse proxy на loopback того ж хоста все одно **не** задовольняють trusted-proxy auth. Trusted proxy має бути налаштованим джерелом не на loopback. - OpenClaw примусово вмикає автентифікацію gateway за замовчуванням, зокрема для loopback. У звичайному типовому сценарії це означає автентифікацію токеном: якщо явний шлях автентифікації не налаштовано, під час запуску gateway використовується режим токена і він автоматично генерується, зберігаючись у `gateway.auth.token`, тож **локальні WS-клієнти мають проходити автентифікацію**. Це блокує інші локальні процеси від виклику Gateway. + OpenClaw примусово застосовує auth gateway за замовчуванням, включно з loopback. У звичайному типовому шляху це означає auth за токеном: якщо явний шлях auth не налаштовано, запуск gateway переходить у режим токена й автоматично генерує його, зберігаючи в `gateway.auth.token`, тож **локальні WS-клієнти мають автентифікуватися**. Це блокує інші локальні процеси від виклику Gateway. - Якщо ви віддаєте перевагу іншому шляху автентифікації, ви можете явно вибрати режим пароля (або, для не-loopback identity-aware reverse proxy, `trusted-proxy`). Якщо ви **справді** хочете відкритий loopback, явно задайте `gateway.auth.mode: "none"` у своїй конфігурації. Doctor може будь-коли згенерувати для вас токен: `openclaw doctor --generate-gateway-token`. + Якщо ви віддаєте перевагу іншому шляху auth, можна явно вибрати режим пароля (або, для reverse proxy з awareness identity не на loopback, `trusted-proxy`). Якщо ви **справді** хочете відкритий loopback, явно задайте `gateway.auth.mode: "none"` у своїй конфігурації. Doctor може згенерувати токен для вас у будь-який момент: `openclaw doctor --generate-gateway-token`. - Gateway відстежує конфігурацію і підтримує гаряче перезавантаження: + Gateway стежить за конфігурацією і підтримує гаряче перезавантаження: - - `gateway.reload.mode: "hybrid"` (типово): безпечно застосовує зміни без перезапуску, а для критичних виконує перезапуск + - `gateway.reload.mode: "hybrid"` (типово): безпечно застосовує зміни на гарячу, перезапускає для критичних - також підтримуються `hot`, `restart`, `off` - + Задайте `cli.banner.taglineMode` у конфігурації: ```json5 @@ -1558,24 +1558,24 @@ x-i18n: } ``` - - `off`: приховує текст слогана, але залишає рядок заголовка/версії банера. + - `off`: приховує текст слогана, але залишає рядок назви/версії банера. - `default`: щоразу використовує `All your chats, one OpenClaw.`. - - `random`: змінні кумедні/сезонні слогани (типова поведінка). - - Якщо ви не хочете жодного банера взагалі, задайте змінну середовища `OPENCLAW_HIDE_BANNER=1`. + - `random`: обертові кумедні/сезонні слогани (типова поведінка). + - Якщо ви не хочете банер узагалі, задайте env `OPENCLAW_HIDE_BANNER=1`. - - `web_fetch` працює без API-ключа. `web_search` залежить від вибраного + + `web_fetch` працює без API key. `web_search` залежить від вибраного провайдера: - - Провайдери на основі API, такі як Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Perplexity і Tavily, потребують звичайного налаштування API-ключа. - - Ollama Web Search не потребує ключа, але використовує налаштований вами хост Ollama і вимагає `ollama signin`. + - Провайдери на основі API, такі як Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Perplexity і Tavily, потребують звичайного налаштування API key. + - Ollama Web Search не потребує ключа, але використовує налаштований хост Ollama і вимагає `ollama signin`. - DuckDuckGo не потребує ключа, але це неофіційна інтеграція на основі HTML. - - SearXNG не потребує ключа / може бути self-hosted; налаштуйте `SEARXNG_BASE_URL` або `plugins.entries.searxng.config.webSearch.baseUrl`. + - SearXNG не потребує ключа/може бути self-hosted; налаштуйте `SEARXNG_BASE_URL` або `plugins.entries.searxng.config.webSearch.baseUrl`. - **Рекомендовано:** виконайте `openclaw configure --section web` і виберіть провайдера. - Альтернативи через змінні середовища: + **Рекомендовано:** запустіть `openclaw configure --section web` і виберіть провайдера. + Альтернативи через середовище: - Brave: `BRAVE_API_KEY` - Exa: `EXA_API_KEY` @@ -1610,65 +1610,65 @@ x-i18n: }, fetch: { enabled: true, - provider: "firecrawl", // необов’язково; пропустіть для авто-визначення + provider: "firecrawl", // необов’язково; пропустіть для auto-detect }, }, }, } ``` - Конфігурація вебпошуку, специфічна для провайдера, тепер розміщується в `plugins.entries..config.webSearch.*`. - Застарілі шляхи провайдера `tools.web.search.*` усе ще тимчасово завантажуються для сумісності, але їх не слід використовувати для нових конфігурацій. - Конфігурація запасного web-fetch Firecrawl розміщується в `plugins.entries.firecrawl.config.webFetch.*`. + Специфічна для провайдера конфігурація web-search тепер розміщується в `plugins.entries..config.webSearch.*`. + Застарілі шляхи провайдера `tools.web.search.*` тимчасово все ще завантажуються для сумісності, але їх не слід використовувати для нових конфігурацій. + Конфігурація запасного варіанта Firecrawl для web-fetch розміщується в `plugins.entries.firecrawl.config.webFetch.*`. Примітки: - Якщо ви використовуєте allowlist, додайте `web_search`/`web_fetch`/`x_search` або `group:web`. - `web_fetch` увімкнено за замовчуванням (якщо його явно не вимкнено). - - Якщо `tools.web.fetch.provider` пропущено, OpenClaw автоматично визначає першого готового запасного провайдера fetch із доступних облікових даних. Наразі вбудований провайдер — Firecrawl. - - Демони читають змінні середовища з `~/.openclaw/.env` (або із середовища сервісу). + - Якщо `tools.web.fetch.provider` пропущено, OpenClaw автоматично визначає першого готового запасного провайдера fetch із доступних облікових даних. Наразі bundled провайдером є Firecrawl. + - Демони читають env vars з `~/.openclaw/.env` (або із середовища служби). - Документація: [Вебінструменти](/uk/tools/web). + Документація: [Web tools](/uk/tools/web). - - `config.apply` замінює **всю конфігурацію**. Якщо ви надсилаєте частковий об’єкт, усе + + `config.apply` замінює **всю конфігурацію цілком**. Якщо ви надсилаєте частковий об’єкт, усе інше буде видалено. Відновлення: - - Відновіть із резервної копії (git або скопійований `~/.openclaw/openclaw.json`). - - Якщо резервної копії немає, повторно запустіть `openclaw doctor` і заново налаштуйте channels/models. - - Якщо це було неочікувано, створіть bug-звіт і додайте свою останню відому конфігурацію або будь-яку резервну копію. - - Локальний агент для кодування часто може відновити працездатну конфігурацію з журналів або історії. + - Відновіть із резервної копії (git або скопійованого `~/.openclaw/openclaw.json`). + - Якщо резервної копії немає, знову запустіть `openclaw doctor` і повторно налаштуйте channels/models. + - Якщо це було неочікувано, створіть bug report і додайте останню відому конфігурацію або будь-яку резервну копію. + - Локальний агент для кодування часто може відновити працездатну конфігурацію з логів або історії. - Як уникнути цього: + Як уникнути: - Використовуйте `openclaw config set` для невеликих змін. - Використовуйте `openclaw configure` для інтерактивного редагування. - - Спершу використовуйте `config.schema.lookup`, коли ви не впевнені щодо точного шляху або форми поля; він повертає вузол поверхневої схеми та короткі підсумки безпосередніх дочірніх елементів для подальшого заглиблення. - - Використовуйте `config.patch` для часткових RPC-редагувань; залишайте `config.apply` лише для повної заміни конфігурації. - - Якщо ви використовуєте доступний лише власнику інструмент `gateway` із запуску агента, він усе одно відхиляє запис у `tools.exec.ask` / `tools.exec.security` (зокрема застарілі псевдоніми `tools.bash.*`, які нормалізуються до тих самих захищених шляхів exec). + - Спочатку використовуйте `config.schema.lookup`, коли ви не впевнені в точному шляху або формі поля; він повертає вузол неглибокої схеми плюс підсумки безпосередніх дочірніх елементів для подальшого заглиблення. + - Використовуйте `config.patch` для часткових редагувань через RPC; залишайте `config.apply` лише для повної заміни конфігурації. + - Якщо ви використовуєте owner-only інструмент `gateway` із запуску agent, він усе одно відхилятиме записи в `tools.exec.ask` / `tools.exec.security` (включно із застарілими псевдонімами `tools.bash.*`, які нормалізуються до тих самих захищених шляхів exec). - Документація: [Конфігурація](/cli/config), [Налаштування](/cli/configure), [Doctor](/uk/gateway/doctor). + Документація: [Config](/cli/config), [Configure](/cli/configure), [Doctor](/uk/gateway/doctor). - - Поширений шаблон — це **один Gateway** (наприклад, Raspberry Pi) плюс **nodes** і **agents**: + + Поширений шаблон — **один Gateway** (наприклад Raspberry Pi) плюс **nodes** і **agents**: - - **Gateway (центральний):** керує channels (Signal/WhatsApp), маршрутизацією та сесіями. + - **Gateway (центральний):** володіє channels (Signal/WhatsApp), маршрутизацією та сесіями. - **Nodes (пристрої):** Mac/iOS/Android підключаються як периферія та надають локальні інструменти (`system.run`, `canvas`, `camera`). - - **Agents (workers):** окремі мозки/workspace для спеціалізованих ролей (наприклад, "Hetzner ops", "Personal data"). - - **Sub-agents:** запускають фонову роботу з основного агента, коли вам потрібен паралелізм. - - **TUI:** підключається до Gateway і дає змогу перемикати agents/sessions. + - **Agents (workers):** окремі інтелекти/workspaces для спеціальних ролей (наприклад "Hetzner ops", "Personal data"). + - **Sub-agents:** запускають фонову роботу з основного agent, коли вам потрібен паралелізм. + - **TUI:** підключається до Gateway і перемикає agents/sessions. Документація: [Nodes](/uk/nodes), [Віддалений доступ](/uk/gateway/remote), [Маршрутизація Multi-Agent](/uk/concepts/multi-agent), [Sub-agents](/uk/tools/subagents), [TUI](/web/tui). - + Так. Це параметр конфігурації: ```json5 @@ -1682,28 +1682,28 @@ x-i18n: } ``` - Типове значення — `false` (з графічним інтерфейсом). Headless-режим з більшою ймовірністю викликає перевірки anti-bot на деяких сайтах. Див. [Browser](/uk/tools/browser). + Типове значення — `false` (з інтерфейсом). Headless-режим частіше викликає anti-bot перевірки на деяких сайтах. Див. [Браузер](/uk/tools/browser). - Headless використовує **той самий рушій Chromium** і працює для більшості сценаріїв автоматизації (форми, кліки, скрапінг, входи). Основні відмінності: + Headless використовує **той самий рушій Chromium** і працює для більшості сценаріїв автоматизації (форми, кліки, скрапінг, логіни). Основні відмінності: - Немає видимого вікна браузера (використовуйте знімки екрана, якщо вам потрібна візуалізація). - Деякі сайти суворіше ставляться до автоматизації в headless-режимі (CAPTCHA, anti-bot). - Наприклад, X/Twitter часто блокує headless-сесії. + Наприклад, X/Twitter часто блокує headless-сеанси. - Установіть `browser.executablePath` на бінарний файл Brave (або будь-якого браузера на основі Chromium) і перезапустіть Gateway. - Повні приклади конфігурації див. у [Browser](/uk/tools/browser#use-brave-or-another-chromium-based-browser). + Задайте `browser.executablePath` для вашого бінарного файлу Brave (або будь-якого браузера на основі Chromium) і перезапустіть Gateway. + Див. повні приклади конфігурації в [Браузер](/uk/tools/browser#use-brave-or-another-chromium-based-browser). ## Віддалені gateway і nodes - - Повідомлення Telegram обробляються **gateway**. Gateway запускає агента і - лише потім викликає nodes через **Gateway WebSocket**, коли потрібен інструмент node: + + Повідомлення Telegram обробляються **gateway**. Gateway запускає agent і + лише потім викликає nodes через **Gateway WebSocket**, коли потрібен інструмент Node: Telegram → Gateway → Agent → `node.*` → Node → Gateway → Telegram @@ -1711,60 +1711,60 @@ x-i18n: - - Коротка відповідь: **під’єднайте свій комп’ютер як node**. Gateway працює в іншому місці, але може + + Коротка відповідь: **підключіть свій комп’ютер як Node**. Gateway працює в іншому місці, але він може викликати інструменти `node.*` (екран, камера, система) на вашій локальній машині через Gateway WebSocket. Типове налаштування: - 1. Запустіть Gateway на хості, який завжди ввімкнено (VPS/домашній сервер). - 2. Додайте хост Gateway і свій комп’ютер до однієї tailnet. - 3. Переконайтеся, що Gateway WS доступний (bind tailnet або SSH-тунель). - 4. Відкрийте локально застосунок macOS і підключіться в режимі **Remote over SSH** (або безпосередньо через tailnet), - щоб він міг зареєструватися як node. - 5. Підтвердьте node на Gateway: + 1. Запустіть Gateway на постійно ввімкненому хості (VPS/домашній сервер). + 2. Додайте хост Gateway і ваш комп’ютер до однієї tailnet. + 3. Переконайтеся, що Gateway WS доступний (прив’язка tailnet або SSH tunnel). + 4. Відкрийте застосунок macOS локально й підключіться в режимі **Remote over SSH** (або напряму через tailnet), + щоб він міг зареєструватися як Node. + 5. Схваліть Node на Gateway: ```bash openclaw devices list openclaw devices approve ``` - Окремий TCP-міст не потрібен; nodes підключаються через Gateway WebSocket. + Окремий TCP bridge не потрібен; nodes підключаються через Gateway WebSocket. - Нагадування щодо безпеки: під’єднання macOS node дозволяє `system.run` на цій машині. Підключайте + Нагадування щодо безпеки: підключення macOS Node дозволяє `system.run` на цій машині. Підключайте лише пристрої, яким довіряєте, і перегляньте [Безпека](/uk/gateway/security). - Документація: [Nodes](/uk/nodes), [Протокол Gateway](/uk/gateway/protocol), [віддалений режим macOS](/uk/platforms/mac/remote), [Безпека](/uk/gateway/security). + Документація: [Nodes](/uk/nodes), [Протокол Gateway](/uk/gateway/protocol), [Віддалений режим macOS](/uk/platforms/mac/remote), [Безпека](/uk/gateway/security). - + Перевірте базові речі: - Gateway запущено: `openclaw gateway status` - Стан Gateway: `openclaw status` - - Стан channels: `openclaw channels status` + - Стан каналів: `openclaw channels status` - Потім перевірте автентифікацію й маршрутизацію: + Потім перевірте auth і маршрутизацію: - Якщо ви використовуєте Tailscale Serve, переконайтеся, що `gateway.auth.allowTailscale` налаштовано правильно. - - Якщо ви підключаєтеся через SSH-тунель, переконайтеся, що локальний тунель працює і вказує на правильний порт. + - Якщо ви підключаєтеся через SSH tunnel, переконайтеся, що локальний tunnel активний і вказує на правильний порт. - Переконайтеся, що ваші allowlist (DM або група) містять ваш обліковий запис. Документація: [Tailscale](/uk/gateway/tailscale), [Віддалений доступ](/uk/gateway/remote), [Channels](/uk/channels). - - Так. Вбудованого мосту "бот-до-бота" немає, але це можна реалізувати кількома + + Так. Вбудованого мосту "бот-до-бота" немає, але це можна організувати кількома надійними способами: - **Найпростіше:** використовуйте звичайний чат-канал, до якого мають доступ обидва боти (Telegram/Slack/WhatsApp). - Нехай Bot A надсилає повідомлення Bot B, а тоді Bot B відповідає як зазвичай. + **Найпростіше:** використовуйте звичайний канал чату, до якого мають доступ обидва боти (Telegram/Slack/WhatsApp). + Нехай Bot A надішле повідомлення Bot B, а тоді Bot B відповість як зазвичай. - **Міст CLI (універсальний):** запустіть скрипт, який викликає інший Gateway через - `openclaw agent --message ... --deliver`, націливши його на чат, де інший бот - слухає. Якщо один бот працює на віддаленому VPS, спрямуйте свій CLI на цей віддалений Gateway + **CLI-міст (універсальний):** запустіть скрипт, який викликає інший Gateway через + `openclaw agent --message ... --deliver`, націлюючись на чат, де слухає інший бот. + Якщо один бот працює на віддаленому VPS, спрямуйте свій CLI на цей віддалений Gateway через SSH/Tailscale (див. [Віддалений доступ](/uk/gateway/remote)). Приклад шаблону (запускається з машини, яка може дістатися до цільового Gateway): @@ -1773,59 +1773,59 @@ x-i18n: openclaw agent --message "Hello from local bot" --deliver --channel telegram --reply-to ``` - Порада: додайте запобіжник, щоб два боти не зациклилися нескінченно (лише згадки, channel + Порада: додайте запобіжник, щоб два боти не зациклилися безкінечно (лише згадки, channel allowlist або правило "не відповідати на повідомлення ботів"). - Документація: [Віддалений доступ](/uk/gateway/remote), [CLI агента](/cli/agent), [Надсилання агентом](/uk/tools/agent-send). + Документація: [Віддалений доступ](/uk/gateway/remote), [Agent CLI](/cli/agent), [Agent send](/uk/tools/agent-send). - - Ні. Один Gateway може розміщувати кількох агентів, кожен зі своїм workspace, моделями за замовчуванням - і маршрутизацією. Це стандартне налаштування, і воно значно дешевше та простіше, ніж запускати - один VPS на кожного агента. + + Ні. Один Gateway може хостити кілька agents, кожен із власним workspace, типовими моделями + та маршрутизацією. Це нормальний варіант налаштування, і він значно дешевший і простіший, ніж запуск + окремого VPS для кожного agent. Використовуйте окремі VPS лише тоді, коли вам потрібна жорстка ізоляція (межі безпеки) або дуже - різні конфігурації, якими ви не хочете ділитися. В інших випадках достатньо одного Gateway і - кількох агентів або sub-agents. + різні конфігурації, які ви не хочете ділити. В інших випадках залишайте один Gateway і + використовуйте кілька agents або sub-agents. - - Так — nodes є основним способом доступу до вашого ноутбука з віддаленого Gateway і вони - дають більше, ніж просто доступ до оболонки. Gateway працює на macOS/Linux (Windows через WSL2) і є - легким (достатньо невеликого VPS або пристрою класу Raspberry Pi; 4 GB RAM більш ніж достатньо), тому поширене - налаштування — це хост, що завжди ввімкнений, плюс ваш ноутбук як node. + + Так — nodes є основним способом доступу до вашого ноутбука з віддаленого Gateway, і вони + відкривають більше, ніж просто доступ до оболонки. Gateway працює на macOS/Linux (Windows через WSL2) і є + легким, тож типовий варіант — це постійно ввімкнений хост плюс ваш ноутбук як Node + (підійде невеликий VPS або пристрій класу Raspberry Pi; 4 GB RAM більш ніж достатньо). - - **Вхідний SSH не потрібен.** Nodes самі підключаються до Gateway WebSocket і використовують сполучення пристроїв. - - **Безпечніший контроль виконання.** `system.run` обмежується allowlist/погодженнями node на цьому ноутбуці. + - **Не потрібен вхідний SSH.** Nodes самі підключаються до Gateway WebSocket і використовують pairing пристроїв. + - **Безпечніший контроль виконання.** `system.run` обмежується allowlist/схваленнями Node на цьому ноутбуці. - **Більше інструментів пристрою.** Nodes надають `canvas`, `camera` і `screen` на додачу до `system.run`. - - **Локальна автоматизація браузера.** Тримайте Gateway на VPS, але запускайте Chrome локально через host node на ноутбуці, або підключайтеся до локального Chrome на хості через Chrome MCP. + - **Локальна автоматизація браузера.** Тримайте Gateway на VPS, але запускайте Chrome локально через хост Node на ноутбуці або підключайтеся до локального Chrome на хості через Chrome MCP. - SSH підходить для разового доступу до оболонки, але nodes простіші для постійних робочих процесів агентів і - автоматизації пристроїв. + SSH підходить для епізодичного доступу до оболонки, але nodes простіші для постійних agent-workflow + та автоматизації пристроїв. - Документація: [Nodes](/uk/nodes), [CLI Nodes](/cli/nodes), [Browser](/uk/tools/browser). + Документація: [Nodes](/uk/nodes), [Nodes CLI](/cli/nodes), [Браузер](/uk/tools/browser). - - Ні. На одному хості має працювати лише **один gateway**, якщо тільки ви навмисно не запускаєте ізольовані профілі (див. [Кілька gateway](/uk/gateway/multiple-gateways)). Nodes — це периферійні елементи, які підключаються - до gateway (nodes iOS/Android або macOS у "режимі node" в застосунку рядка меню). Для headless - host nodes і керування через CLI див. [CLI host node](/cli/node). + + Ні. На одному хості має працювати лише **один gateway**, якщо тільки ви навмисно не запускаєте ізольовані профілі (див. [Кілька gateway](/uk/gateway/multiple-gateways)). Nodes — це периферійні пристрої, які підключаються + до gateway (nodes на iOS/Android або macOS у "режимі Node" в menubar app). Для headless-хостів Node + і керування через CLI див. [Node host CLI](/cli/node). - Повний перезапуск потрібен для змін `gateway`, `discovery` і `canvasHost`. + Для змін `gateway`, `discovery` і `canvasHost` потрібен повний перезапуск. Так. - - `config.schema.lookup`: перевірити одне піддерево конфігурації з його поверхневим вузлом схеми, відповідною UI-підказкою та короткими підсумками безпосередніх дочірніх елементів перед записом - - `config.get`: отримати поточний знімок + хеш - - `config.patch`: безпечне часткове оновлення (бажаний варіант для більшості RPC-редагувань); виконує гаряче перезавантаження, коли це можливо, і перезапуск, коли це потрібно - - `config.apply`: перевірити й замінити всю конфігурацію; виконує гаряче перезавантаження, коли це можливо, і перезапуск, коли це потрібно - - Інструмент runtime `gateway`, доступний лише власнику, як і раніше, відмовляється переписувати `tools.exec.ask` / `tools.exec.security`; застарілі псевдоніми `tools.bash.*` нормалізуються до тих самих захищених шляхів exec + - `config.schema.lookup`: перевірити одне піддерево конфігурації з його неглибоким вузлом схеми, відповідною UI-підказкою та зведеннями безпосередніх дочірніх елементів перед записом + - `config.get`: отримати поточний знімок + hash + - `config.patch`: безпечне часткове оновлення (рекомендовано для більшості RPC-редагувань); по можливості гаряче перезавантажує, а коли потрібно — перезапускає + - `config.apply`: перевіряє й замінює всю конфігурацію; по можливості гаряче перезавантажує, а коли потрібно — перезапускає + - owner-only runtime tool `gateway` усе одно відмовляється переписувати `tools.exec.ask` / `tools.exec.security`; застарілі псевдоніми `tools.bash.*` нормалізуються до тих самих захищених шляхів exec @@ -1844,22 +1844,22 @@ x-i18n: Мінімальні кроки: - 1. **Установіть і виконайте вхід на VPS** + 1. **Встановіть і увійдіть на VPS** ```bash curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up ``` - 2. **Установіть і виконайте вхід на Mac** - - Використайте застосунок Tailscale і ввійдіть у ту саму tailnet. + 2. **Встановіть і увійдіть на Mac** + - Використайте застосунок Tailscale і увійдіть у ту саму tailnet. 3. **Увімкніть MagicDNS (рекомендовано)** - У консолі адміністратора Tailscale увімкніть MagicDNS, щоб VPS мав стабільне ім’я. 4. **Використовуйте ім’я хоста tailnet** - SSH: `ssh user@your-vps.tailnet-xxxx.ts.net` - Gateway WS: `ws://your-vps.tailnet-xxxx.ts.net:18789` - Якщо вам потрібен Control UI без SSH, використовуйте Tailscale Serve на VPS: + Якщо ви хочете Control UI без SSH, використовуйте Tailscale Serve на VPS: ```bash openclaw gateway --tailscale serve @@ -1869,33 +1869,33 @@ x-i18n: - - Serve відкриває **Gateway Control UI + WS**. Nodes підключаються через той самий endpoint Gateway WS. + + Serve відкриває **Gateway Control UI + WS**. Nodes підключаються через ту саму кінцеву точку Gateway WS. Рекомендоване налаштування: - 1. **Переконайтеся, що VPS і Mac перебувають в одній tailnet**. + 1. **Переконайтеся, що VPS і Mac знаходяться в одній tailnet**. 2. **Використовуйте застосунок macOS у віддаленому режимі** (ціллю SSH може бути ім’я хоста tailnet). - Застосунок протунелює порт Gateway і підключиться як node. - 3. **Підтвердьте node** на gateway: + Застосунок прокине порт Gateway через tunnel і підключиться як Node. + 3. **Схваліть Node** на gateway: ```bash openclaw devices list openclaw devices approve ``` - Документація: [Протокол Gateway](/uk/gateway/protocol), [Discovery](/uk/gateway/discovery), [віддалений режим macOS](/uk/platforms/mac/remote). + Документація: [Протокол Gateway](/uk/gateway/protocol), [Виявлення](/uk/gateway/discovery), [Віддалений режим macOS](/uk/platforms/mac/remote). - + Якщо вам потрібні лише **локальні інструменти** (screen/camera/exec) на другому ноутбуці, додайте його як - **node**. Це дозволяє зберегти єдиний Gateway і уникнути дублювання конфігурації. Локальні інструменти node - наразі доступні лише на macOS, але ми плануємо поширити їх і на інші ОС. + **Node**. Це залишає один Gateway і дозволяє уникнути дублювання конфігурації. Локальні інструменти Node + наразі доступні лише на macOS, але ми плануємо розширити їх на інші ОС. - Установлюйте другий Gateway лише тоді, коли вам потрібна **жорстка ізоляція** або два повністю окремі боти. + Встановлюйте другий Gateway лише тоді, коли вам потрібна **жорстка ізоляція** або два повністю окремі боти. - Документація: [Nodes](/uk/nodes), [CLI Nodes](/cli/nodes), [Кілька gateway](/uk/gateway/multiple-gateways). + Документація: [Nodes](/uk/nodes), [Nodes CLI](/cli/nodes), [Кілька gateway](/uk/gateway/multiple-gateways). @@ -1904,14 +1904,14 @@ x-i18n: - OpenClaw читає змінні середовища з батьківського процесу (оболонка, launchd/systemd, CI тощо) і додатково завантажує: + OpenClaw читає env vars із батьківського процесу (shell, launchd/systemd, CI тощо) і додатково завантажує: - `.env` з поточного робочого каталогу - - глобальний резервний `.env` з `~/.openclaw/.env` (тобто `$OPENCLAW_STATE_DIR/.env`) + - глобальний запасний `.env` з `~/.openclaw/.env` (тобто `$OPENCLAW_STATE_DIR/.env`) - Жоден файл `.env` не перевизначає вже наявні змінні середовища. + Жоден із `.env`-файлів не перевизначає наявні env vars. - Ви також можете визначати вбудовані змінні середовища в конфігурації (застосовуються лише за відсутності в середовищі процесу): + Ви також можете визначати вбудовані env vars у конфігурації (застосовуються лише якщо їх немає в env процесу): ```json5 { @@ -1922,15 +1922,15 @@ x-i18n: } ``` - Повний порядок пріоритету й джерела див. у [/environment](/uk/help/environment). + Див. [/environment](/uk/help/environment) для повного порядку пріоритету та джерел. - - Є два поширені способи виправлення: + + Є два поширені виправлення: - 1. Помістіть відсутні ключі в `~/.openclaw/.env`, щоб вони підхоплювалися, навіть коли сервіс не успадковує змінні середовища вашої оболонки. - 2. Увімкніть імпорт із оболонки (зручність із явним увімкненням): + 1. Розмістіть відсутні ключі в `~/.openclaw/.env`, щоб вони підхоплювалися, навіть коли служба не успадковує env вашої оболонки. + 2. Увімкніть імпорт оболонки (зручність за явною згодою): ```json5 { @@ -1943,35 +1943,35 @@ x-i18n: } ``` - Це запускає вашу login-оболонку й імпортує лише відсутні очікувані ключі (ніколи нічого не перевизначає). Еквіваленти змінних середовища: + Це запускає вашу login shell і імпортує лише відсутні очікувані ключі (ніколи не перевизначає). Еквіваленти env var: `OPENCLAW_LOAD_SHELL_ENV=1`, `OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000`. - `openclaw models status` показує, чи ввімкнено **імпорт змінних середовища з оболонки**. "Shell env: off" - **не** означає, що ваших змінних середовища немає — це лише означає, що OpenClaw не завантажуватиме - вашу login-оболонку автоматично. + `openclaw models status` повідомляє, чи ввімкнено **імпорт env оболонки**. "Shell env: off" + **не** означає, що ваші env vars відсутні — це лише означає, що OpenClaw не завантажуватиме + вашу login shell автоматично. - Якщо Gateway працює як сервіс (launchd/systemd), він не успадковує середовище - вашої оболонки. Виправте це одним зі способів: + Якщо Gateway працює як служба (launchd/systemd), він не успадковує середовище + вашої оболонки. Виправити можна одним із таких способів: - 1. Помістіть токен у `~/.openclaw/.env`: + 1. Розмістіть токен у `~/.openclaw/.env`: ``` COPILOT_GITHUB_TOKEN=... ``` - 2. Або ввімкніть імпорт із оболонки (`env.shellEnv.enabled: true`). - 3. Або додайте його до блоку `env` у конфігурації (застосовується лише за відсутності). + 2. Або увімкніть імпорт оболонки (`env.shellEnv.enabled: true`). + 3. Або додайте його в блок `env` вашої конфігурації (застосовується лише якщо значення відсутнє). - Потім перезапустіть gateway і ще раз перевірте: + Потім перезапустіть gateway і перевірте ще раз: ```bash openclaw models status ``` - Токени Copilot читаються з `COPILOT_GITHUB_TOKEN` (а також `GH_TOKEN` / `GITHUB_TOKEN`). + Токени Copilot читаються з `COPILOT_GITHUB_TOKEN` (також `GH_TOKEN` / `GITHUB_TOKEN`). Див. [/concepts/model-providers](/uk/concepts/model-providers) і [/environment](/uk/help/environment). @@ -1981,14 +1981,14 @@ x-i18n: - Надішліть `/new` або `/reset` як окреме повідомлення. Див. [Керування сесіями](/uk/concepts/session). + Надішліть `/new` або `/reset` окремим повідомленням. Див. [Керування сесіями](/uk/concepts/session). - - Термін дії сесій може завершуватися після `session.idleMinutes`, але це **вимкнено за замовчуванням** (типове значення **0**). - Задайте додатне значення, щоб увімкнути завершення після простою. Коли цю функцію ввімкнено, **наступне** - повідомлення після періоду простою починає новий ідентифікатор сесії для цього ключа чату. - Це не видаляє транскрипти — лише починає нову сесію. + + Сесії можуть завершуватися після `session.idleMinutes`, але це **вимкнено за замовчуванням** (типове значення **0**). + Задайте додатне значення, щоб увімкнути завершення за неактивністю. Коли це ввімкнено, **наступне** + повідомлення після періоду неактивності починає новий id сесії для цього ключа чату. + Це не видаляє стенограми — просто починає нову сесію. ```json5 { @@ -2001,28 +2001,28 @@ x-i18n: - Так, через **маршрутизацію multi-agent** і **sub-agents**. Ви можете створити одного агента-координатора - і кількох агентів-worker зі своїми workspace і моделями. + Так, через **маршрутизацію multi-agent** і **sub-agents**. Ви можете створити одного координуючого + agent і кількох робочих agents із власними workspaces і моделями. - Водночас це краще розглядати як **цікавий експеримент**. Це витрачає багато токенів і часто - менш ефективно, ніж використання одного бота з окремими сесіями. Типова модель, яку ми - уявляємо, — це один бот, з яким ви спілкуєтеся, з різними сесіями для паралельної роботи. Цей - бот також може запускати sub-agents, коли потрібно. + Тим не менш, на це краще дивитися як на **цікавий експеримент**. Це дуже + затратне за токенами й часто менш ефективне, ніж використання одного бота з окремими сесіями. Типова модель, яку + ми уявляємо, — це один бот, з яким ви спілкуєтеся, з різними сесіями для паралельної роботи. Цей + бот також може запускати sub-agents за потреби. - Документація: [Маршрутизація multi-agent](/uk/concepts/multi-agent), [Sub-agents](/uk/tools/subagents), [CLI Agents](/cli/agents). + Документація: [Маршрутизація multi-agent](/uk/concepts/multi-agent), [Sub-agents](/uk/tools/subagents), [Agents CLI](/cli/agents). - + Контекст сесії обмежений вікном моделі. Довгі чати, великі виводи інструментів або багато - файлів можуть спричинити Compaction або обрізання. + файлів можуть викликати Compaction або обрізання. Що допомагає: - Попросіть бота підсумувати поточний стан і записати його у файл. - - Використовуйте `/compact` перед довгими завданнями і `/new` під час зміни теми. - - Тримайте важливий контекст у workspace і просіть бота перечитувати його. - - Використовуйте sub-agents для довгих або паралельних завдань, щоб основний чат залишався меншим. + - Використовуйте `/compact` перед довгими задачами, а `/new` — під час зміни тем. + - Зберігайте важливий контекст у workspace і просіть бота знову його прочитати. + - Використовуйте sub-agents для довгої або паралельної роботи, щоб основний чат залишався меншим. - Виберіть модель із більшим вікном контексту, якщо це трапляється часто. @@ -2040,7 +2040,7 @@ x-i18n: openclaw reset --scope full --yes --non-interactive ``` - Потім повторно запустіть налаштування: + Потім знову запустіть налаштування: ```bash openclaw onboard --install-daemon @@ -2048,13 +2048,13 @@ x-i18n: Примітки: - - Онбординг також пропонує **Reset**, якщо бачить наявну конфігурацію. Див. [Онбординг (CLI)](/uk/start/wizard). - - Якщо ви використовували профілі (`--profile` / `OPENCLAW_PROFILE`), скиньте кожен каталог state (типово це `~/.openclaw-`). - - Скидання для dev: `openclaw gateway --dev --reset` (лише для dev; очищає конфігурацію dev + облікові дані + сесії + workspace). + - Onboarding також пропонує **Reset**, якщо бачить наявну конфігурацію. Див. [Onboarding (CLI)](/uk/start/wizard). + - Якщо ви використовували профілі (`--profile` / `OPENCLAW_PROFILE`), скиньте кожен каталог стану (типово це `~/.openclaw-`). + - Скидання для dev: `openclaw gateway --dev --reset` (лише для dev; стирає конфігурацію dev + облікові дані + сесії + workspace). - + Використайте один із цих варіантів: - **Compaction** (зберігає розмову, але підсумовує старіші ходи): @@ -2063,35 +2063,35 @@ x-i18n: /compact ``` - або `/compact `, щоб керувати підсумком. + або `/compact `, щоб спрямувати підсумок. - - **Скидання** (новий ідентифікатор сесії для того самого ключа чату): + - **Скидання** (новий id сесії для того самого ключа чату): ``` /new /reset ``` - Якщо це відбувається й надалі: + Якщо це продовжує траплятися: - - Увімкніть або налаштуйте **обрізання сесії** (`agents.defaults.contextPruning`), щоб скорочувати старий вивід інструментів. + - Увімкніть або налаштуйте **очищення сесії** (`agents.defaults.contextPruning`), щоб обрізати старий вивід інструментів. - Використовуйте модель із більшим вікном контексту. - Документація: [Compaction](/uk/concepts/compaction), [Обрізання сесії](/uk/concepts/session-pruning), [Керування сесіями](/uk/concepts/session). + Документація: [Compaction](/uk/concepts/compaction), [Очищення сесії](/uk/concepts/session-pruning), [Керування сесіями](/uk/concepts/session). - Це помилка перевірки провайдера: модель видала блок `tool_use` без обов’язкового - `input`. Зазвичай це означає, що історія сесії застаріла або пошкоджена (часто після довгих thread - або зміни tool/schema). + Це помилка валідації провайдера: модель вивела блок `tool_use` без обов’язкового + `input`. Зазвичай це означає, що історія сесії застаріла або пошкоджена (часто після довгих тредів + або зміни інструмента/схеми). - Виправлення: почніть нову сесію за допомогою `/new` (окреме повідомлення). + Виправлення: почніть нову сесію за допомогою `/new` (окремим повідомленням). - - Heartbeat виконується кожні **30m** за замовчуванням (**1h** при використанні OAuth-автентифікації). Налаштуйте або вимкніть це: + + Heartbeat запускається кожні **30m** за замовчуванням (**1h** під час використання OAuth auth). Налаштуйте або вимкніть його: ```json5 { @@ -2107,17 +2107,17 @@ x-i18n: Якщо `HEARTBEAT.md` існує, але фактично порожній (лише порожні рядки та markdown-заголовки на кшталт `# Heading`), OpenClaw пропускає запуск heartbeat, щоб заощадити виклики API. - Якщо файл відсутній, heartbeat усе одно виконується, і модель сама вирішує, що робити. + Якщо файл відсутній, heartbeat усе одно виконується, і модель вирішує, що робити. - Override для окремого агента використовують `agents.list[].heartbeat`. Документація: [Heartbeat](/uk/gateway/heartbeat). + Перевизначення для конкретного agent використовують `agents.list[].heartbeat`. Документація: [Heartbeat](/uk/gateway/heartbeat). - - Ні. OpenClaw працює від **вашого власного облікового запису**, тож якщо ви є в групі, OpenClaw може її бачити. - За замовчуванням відповіді в групі блокуються, доки ви не дозволите відправників (`groupPolicy: "allowlist"`). + + Ні. OpenClaw працює на **вашому власному обліковому записі**, тож якщо ви є в групі, OpenClaw може її бачити. + За замовчуванням відповіді в групах заблоковано, доки ви не дозволите відправників (`groupPolicy: "allowlist"`). - Якщо ви хочете, щоб запускати відповіді в групі могли лише **ви**: + Якщо ви хочете, щоб активувати відповіді в групі могли лише **ви**: ```json5 { @@ -2133,13 +2133,13 @@ x-i18n: - Варіант 1 (найшвидший): перегляньте журнали в реальному часі й надішліть тестове повідомлення в групу: + Варіант 1 (найшвидший): перегляньте хвіст логів і надішліть тестове повідомлення в групу: ```bash openclaw logs --follow --json ``` - Знайдіть `chatId` (або `from`), що закінчується на `@g.us`, наприклад: + Шукайте `chatId` (або `from`), що закінчується на `@g.us`, наприклад: `1234567890-1234567890@g.us`. Варіант 2 (якщо вже налаштовано/додано до allowlist): перелічіть групи з конфігурації: @@ -2148,56 +2148,56 @@ x-i18n: openclaw directory groups list --channel whatsapp ``` - Документація: [WhatsApp](/uk/channels/whatsapp), [Directory](/cli/directory), [Журнали](/cli/logs). + Документація: [WhatsApp](/uk/channels/whatsapp), [Directory](/cli/directory), [Логи](/cli/logs). Дві поширені причини: - - Увімкнено вимогу згадки (типово). Ви маєте @згадати бота (або збігтися з `mentionPatterns`). - - Ви налаштували `channels.whatsapp.groups` без `"*"`, і групу не додано до allowlist. + - Увімкнено gating за згадкою (типово). Ви маєте @згадати бота (або збігтися з `mentionPatterns`). + - Ви налаштували `channels.whatsapp.groups` без `"*"`, і цю групу не додано до allowlist. - Див. [Групи](/uk/channels/groups) і [Групові повідомлення](/uk/channels/group-messages). + Див. [Групи](/uk/channels/groups) і [Повідомлення в групах](/uk/channels/group-messages). - - Прямі чати за замовчуванням згортаються в основну сесію. Групи/channels мають власні ключі сесій, а теми Telegram / thread у Discord є окремими сесіями. Див. [Групи](/uk/channels/groups) і [Групові повідомлення](/uk/channels/group-messages). + + Прямі чати за замовчуванням згортаються до основної сесії. Групи/канали мають власні ключі сесій, а теми Telegram / треди Discord є окремими сесіями. Див. [Групи](/uk/channels/groups) і [Повідомлення в групах](/uk/channels/group-messages). - - Жорстких обмежень немає. Десятки (навіть сотні) — це нормально, але звертайте увагу на: + + Жорстких обмежень немає. Десятки (навіть сотні) — це нормально, але зважайте на таке: - - **Зростання диска:** сесії + транскрипти зберігаються в `~/.openclaw/agents//sessions/`. - - **Витрати токенів:** більше агентів означає більше одночасного використання моделей. - - **Операційні накладні витрати:** профілі автентифікації для кожного агента, workspace і маршрутизація каналів. + - **Зростання диска:** sessions + стенограми живуть у `~/.openclaw/agents//sessions/`. + - **Вартість токенів:** більше agents означає більше одночасного використання моделі. + - **Операційні витрати:** auth-профілі, workspaces і маршрутизація каналів для кожного agent окремо. Поради: - - Тримайте один **активний** workspace на агента (`agents.defaults.workspace`). - - Очищайте старі сесії (видаляйте JSONL або записи сховища), якщо диск розростається. - - Використовуйте `openclaw doctor`, щоб виявляти зайві workspace і невідповідності профілів. + - Тримайте один **активний** workspace на agent (`agents.defaults.workspace`). + - Очищуйте старі сесії (видаляйте JSONL або записи сховища), якщо диск розростається. + - Використовуйте `openclaw doctor`, щоб виявляти stray workspaces і невідповідності профілів. - - Так. Використовуйте **Маршрутизацію Multi-Agent**, щоб запускати кількох ізольованих агентів і маршрутизувати вхідні повідомлення за - каналом/обліковим записом/peer. Slack підтримується як канал і може бути прив’язаний до конкретних агентів. + + Так. Використовуйте **Маршрутизацію Multi-Agent**, щоб запускати кількох ізольованих agents і маршрутизувати вхідні повідомлення за + каналом/обліковим записом/peer. Slack підтримується як канал і може бути прив’язаний до конкретних agents. - Доступ до браузера потужний, але це не "зробити все, що може людина" — anti-bot, CAPTCHA і MFA - все ще можуть блокувати автоматизацію. Для найнадійнішого керування браузером використовуйте локальний Chrome MCP на хості, - або використовуйте CDP на машині, яка фактично запускає браузер. + Доступ до браузера є потужним, але це не "зробити все, що може людина" — anti-bot, CAPTCHA і MFA + усе ще можуть блокувати автоматизацію. Для найнадійнішого керування браузером використовуйте локальний Chrome MCP на хості + або CDP на машині, яка реально запускає браузер. - Рекомендоване налаштування: + Найкраща практика налаштування: - Хост Gateway, який завжди ввімкнений (VPS/Mac mini). - - Один агент на роль (bindings). - - Channel(s) Slack, прив’язані до цих агентів. - - Локальний браузер через Chrome MCP або node, коли потрібно. + - Один agent на роль (прив’язки). + - Канал(и) Slack, прив’язані до цих agents. + - Локальний браузер через Chrome MCP або Node, коли це потрібно. Документація: [Маршрутизація Multi-Agent](/uk/concepts/multi-agent), [Slack](/uk/channels/slack), - [Browser](/uk/tools/browser), [Nodes](/uk/nodes). + [Браузер](/uk/tools/browser), [Nodes](/uk/nodes). @@ -2206,75 +2206,75 @@ x-i18n: - Модель OpenClaw за замовчуванням — це те, що ви встановили як: + Типова модель OpenClaw — це те, що ви задаєте як: ``` agents.defaults.model.primary ``` - На моделі посилаються у форматі `provider/model` (наприклад: `openai/gpt-5.4`). Якщо ви пропускаєте провайдера, OpenClaw спочатку намагається знайти псевдонім, потім — унікальний збіг налаштованого провайдера для точного id моделі, і лише після цього повертається до налаштованого провайдера за замовчуванням як до застарілого шляху сумісності. Якщо цей провайдер більше не надає налаштовану модель за замовчуванням, OpenClaw повертається до першого налаштованого провайдера/моделі замість того, щоб показувати застарілу модель за замовчуванням від видаленого провайдера. Вам все одно слід **явно** задавати `provider/model`. + На моделі посилаються як `provider/model` (приклад: `openai/gpt-5.4`). Якщо ви пропускаєте провайдера, OpenClaw спочатку пробує псевдонім, потім унікальний збіг налаштованого провайдера для цього точного id моделі і лише потім повертається до налаштованого провайдера за замовчуванням як застарілого шляху сумісності. Якщо цей провайдер більше не надає налаштовану типову модель, OpenClaw повертається до першого налаштованого провайдера/моделі замість показу застарілого типового значення від видаленого провайдера. Вам усе одно слід **явно** задавати `provider/model`. - **Рекомендований варіант за замовчуванням:** використовуйте найсильнішу модель останнього покоління, доступну у вашому стеку провайдерів. - **Для агентів з увімкненими інструментами або агентів із недовіреним вводом:** ставте силу моделі вище за вартість. - **Для звичайного/низькоризикового чату:** використовуйте дешевші резервні моделі та маршрутизуйте за роллю агента. + **Рекомендоване типове значення:** використовуйте найсильнішу модель останнього покоління, доступну у вашому стеку провайдерів. + **Для agents з інструментами або з недовіреним вхідним вмістом:** віддавайте перевагу силі моделі над вартістю. + **Для рутинних/невисокоризикових чатів:** використовуйте дешевші резервні моделі та маршрутизуйте за роллю agent. Для MiniMax є окрема документація: [MiniMax](/uk/providers/minimax) і [Локальні моделі](/uk/gateway/local-models). - Практичне правило: використовуйте **найкращу модель, яку можете собі дозволити** для важливих завдань, і дешевшу - модель для звичайного чату або підсумків. Ви можете маршрутизувати моделі для кожного агента й використовувати sub-agents для - паралелізації довгих завдань (кожен sub-agent споживає токени). Див. [Моделі](/uk/concepts/models) і + Правило великого пальця: використовуйте **найкращу модель, яку можете собі дозволити** для задач із високими ставками, і дешевшу + модель для рутинних чатів або підсумків. Ви можете маршрутизувати моделі для кожного agent окремо й використовувати sub-agents для + паралелізації довгих задач (кожен sub-agent споживає токени). Див. [Моделі](/uk/concepts/models) і [Sub-agents](/uk/tools/subagents). - Серйозне попередження: слабші/надмірно квантизовані моделі вразливіші до prompt injection - і небезпечної поведінки. Див. [Безпека](/uk/gateway/security). + Сильне попередження: слабші/надмірно квантизовані моделі вразливіші до prompt + injection і небезпечної поведінки. Див. [Безпека](/uk/gateway/security). Більше контексту: [Моделі](/uk/concepts/models). - + Використовуйте **команди моделей** або редагуйте лише поля **model**. Уникайте повної заміни конфігурації. Безпечні варіанти: - - `/model` у чаті (швидко, для окремої сесії) + - `/model` у чаті (швидко, для сесії) - `openclaw models set ...` (оновлює лише конфігурацію моделі) - `openclaw configure --section model` (інтерактивно) - - редагуйте `agents.defaults.model` у `~/.openclaw/openclaw.json` + - відредагуйте `agents.defaults.model` у `~/.openclaw/openclaw.json` Уникайте `config.apply` з частковим об’єктом, якщо тільки ви не хочете замінити всю конфігурацію. - Для RPC-редагувань спочатку перегляньте через `config.schema.lookup` і віддавайте перевагу `config.patch`. Корисне навантаження lookup дає вам нормалізований шлях, документацію/обмеження поверхневої схеми та короткі підсумки безпосередніх дочірніх елементів + Для RPC-редагувань спочатку перевіряйте через `config.schema.lookup` і віддавайте перевагу `config.patch`. Payload lookup дає вам нормалізований шлях, документацію/обмеження неглибокої схеми та зведення безпосередніх дочірніх елементів для часткових оновлень. - Якщо ви все ж перезаписали конфігурацію, відновіть її з резервної копії або повторно запустіть `openclaw doctor` для виправлення. + Якщо ви все ж перезаписали конфігурацію, відновіть її з резервної копії або знову запустіть `openclaw doctor` для виправлення. - Документація: [Моделі](/uk/concepts/models), [Налаштування](/cli/configure), [Конфігурація](/cli/config), [Doctor](/uk/gateway/doctor). + Документація: [Моделі](/uk/concepts/models), [Configure](/cli/configure), [Config](/cli/config), [Doctor](/uk/gateway/doctor). - Так. Ollama — найпростіший шлях до локальних моделей. + Так. Ollama — найпростіший шлях для локальних моделей. Найшвидше налаштування: - 1. Установіть Ollama з `https://ollama.com/download` + 1. Встановіть Ollama з `https://ollama.com/download` 2. Завантажте локальну модель, наприклад `ollama pull gemma4` - 3. Якщо ви також хочете хмарні моделі, виконайте `ollama signin` + 3. Якщо ви хочете також хмарні моделі, виконайте `ollama signin` 4. Запустіть `openclaw onboard` і виберіть `Ollama` 5. Виберіть `Local` або `Cloud + Local` Примітки: - `Cloud + Local` дає вам хмарні моделі плюс ваші локальні моделі Ollama - - хмарні моделі, такі як `kimi-k2.5:cloud`, не потребують локального завантаження + - хмарні моделі, як-от `kimi-k2.5:cloud`, не потребують локального завантаження - для ручного перемикання використовуйте `openclaw models list` і `openclaw models set ollama/` Примітка щодо безпеки: менші або сильно квантизовані моделі вразливіші до prompt injection. Ми наполегливо рекомендуємо **великі моделі** для будь-якого бота, який може використовувати інструменти. - Якщо ви все ж хочете малі моделі, увімкніть sandboxing і суворі allowlist інструментів. + Якщо ви все ж хочете малі моделі, увімкніть sandboxing і строгі allowlist інструментів. Документація: [Ollama](/uk/providers/ollama), [Локальні моделі](/uk/gateway/local-models), [Провайдери моделей](/uk/concepts/model-providers), [Безпека](/uk/gateway/security), @@ -2284,8 +2284,8 @@ x-i18n: - Ці розгортання можуть відрізнятися й змінюватися з часом; фіксованої рекомендації щодо провайдера немає. - - Перевіряйте поточні налаштування під час роботи на кожному gateway через `openclaw models status`. - - Для чутливих до безпеки агентів/агентів з увімкненими інструментами використовуйте найсильнішу модель останнього покоління з доступних. + - Перевіряйте поточне runtime-налаштування на кожному gateway через `openclaw models status`. + - Для чутливих до безпеки agents з інструментами використовуйте найсильнішу доступну модель останнього покоління. @@ -2301,9 +2301,9 @@ x-i18n: /model gemini-flash-lite ``` - Це вбудовані псевдоніми. Користувацькі псевдоніми можна додати через `agents.defaults.models`. + Це вбудовані псевдоніми. Власні псевдоніми можна додати через `agents.defaults.models`. - Ви можете переглянути доступні моделі за допомогою `/model`, `/model list` або `/model status`. + Ви можете перелічити доступні моделі за допомогою `/model`, `/model list` або `/model status`. `/model` (і `/model list`) показує компактний нумерований вибір. Вибір за номером: @@ -2311,17 +2311,17 @@ x-i18n: /model 3 ``` - Ви також можете примусово задати конкретний профіль автентифікації для провайдера (для окремої сесії): + Ви також можете примусово задати конкретний auth-профіль для провайдера (на рівні сесії): ``` /model opus@anthropic:default /model opus@anthropic:work ``` - Порада: `/model status` показує, який агент активний, який файл `auth-profiles.json` використовується і який профіль автентифікації буде спробовано далі. - Він також показує налаштований endpoint провайдера (`baseUrl`) і режим API (`api`), якщо вони доступні. + Порада: `/model status` показує, який agent активний, який файл `auth-profiles.json` використовується та який auth-профіль буде спробовано наступним. + Він також показує налаштований endpoint провайдера (`baseUrl`) і режим API (`api`), коли вони доступні. - **Як відкріпити профіль, який я задав через @profile?** + **Як зняти закріплення профілю, який я задав через @profile?** Повторно виконайте `/model` **без** суфікса `@profile`: @@ -2329,28 +2329,28 @@ x-i18n: /model anthropic/claude-opus-4-6 ``` - Якщо ви хочете повернутися до значення за замовчуванням, виберіть його через `/model` (або надішліть `/model `). - Використовуйте `/model status`, щоб підтвердити, який профіль автентифікації активний. + Якщо ви хочете повернутися до типового значення, виберіть його в `/model` (або надішліть `/model `). + Використовуйте `/model status`, щоб підтвердити, який auth-профіль активний. - - Так. Задайте одну як типову і перемикайтеся за потреби: + + Так. Задайте одну як типову і перемикайте за потреби: - - **Швидке перемикання (для окремої сесії):** `/model gpt-5.4` для щоденних завдань, `/model openai-codex/gpt-5.4` для програмування через Codex OAuth. - - **Типова + перемикання:** задайте `agents.defaults.model.primary` як `openai/gpt-5.4`, а потім перемикайтеся на `openai-codex/gpt-5.4` для програмування (або навпаки). - - **Sub-agents:** маршрутизуйте завдання програмування до sub-agents з іншою типовою моделлю. + - **Швидке перемикання (на рівні сесії):** `/model gpt-5.4` для щоденних задач, `/model openai-codex/gpt-5.4` для кодування з Codex OAuth. + - **Типова + перемикання:** задайте `agents.defaults.model.primary` як `openai/gpt-5.4`, а потім перемикайтеся на `openai-codex/gpt-5.4` під час кодування (або навпаки). + - **Sub-agents:** маршрутизуйте задачі кодування до sub-agents з іншою типовою моделлю. - Див. [Моделі](/uk/concepts/models) і [Slash-команди](/uk/tools/slash-commands). + Див. [Моделі](/uk/concepts/models) і [Slash commands](/uk/tools/slash-commands). Використовуйте або перемикач для сесії, або типове значення в конфігурації: - - **Для окремої сесії:** надішліть `/fast on`, поки сесія використовує `openai/gpt-5.4` або `openai-codex/gpt-5.4`. + - **Для сесії:** надішліть `/fast on`, поки сесія використовує `openai/gpt-5.4` або `openai-codex/gpt-5.4`. - **Типове значення для моделі:** задайте `agents.defaults.models["openai/gpt-5.4"].params.fastMode` як `true`. - - **Також для Codex OAuth:** якщо ви також використовуєте `openai-codex/gpt-5.4`, задайте там той самий прапорець. + - **Також для Codex OAuth:** якщо ви також використовуєте `openai-codex/gpt-5.4`, задайте той самий прапорець і там. Приклад: @@ -2375,40 +2375,40 @@ x-i18n: } ``` - Для OpenAI fast mode відповідає `service_tier = "priority"` у підтримуваних нативних запитах Responses. Параметри сесії `/fast` мають вищий пріоритет за типові значення конфігурації. + Для OpenAI fast mode відображається в `service_tier = "priority"` у підтримуваних нативних запитах Responses. Сесійне `/fast` має пріоритет над типовими значеннями конфігурації. - Див. [Thinking і fast mode](/uk/tools/thinking) і [OpenAI fast mode](/uk/providers/openai#openai-fast-mode). + Див. [Мислення та fast mode](/uk/tools/thinking) і [Fast mode OpenAI](/uk/providers/openai#openai-fast-mode). - + Якщо задано `agents.defaults.models`, це стає **allowlist** для `/model` і будь-яких - перевизначень сесії. Вибір моделі, якої немає в цьому списку, повертає: + перевизначень на рівні сесії. Вибір моделі, якої немає в цьому списку, повертає: ``` Model "provider/model" is not allowed. Use /model to list available models. ``` Ця помилка повертається **замість** звичайної відповіді. Виправлення: додайте модель до - `agents.defaults.models`, видаліть allowlist або виберіть модель із `/model list`. + `agents.defaults.models`, приберіть allowlist або виберіть модель із `/model list`. - Це означає, що **провайдер не налаштований** (не знайдено конфігурацію провайдера MiniMax або профіль - автентифікації), тож модель не вдається визначити. + Це означає, що **провайдера не налаштовано** (не знайдено конфігурацію провайдера MiniMax або auth-профіль), + тому модель не вдається розв’язати. - Контрольний список для виправлення: + Контрольний список виправлення: 1. Оновіться до поточного релізу OpenClaw (або запускайте з вихідного коду `main`), а потім перезапустіть gateway. - 2. Переконайтеся, що MiniMax налаштовано (майстер або JSON), або що автентифікація MiniMax - існує в env/профілях автентифікації, щоб можна було підключити відповідний провайдер - (`MINIMAX_API_KEY` для `minimax`, `MINIMAX_OAUTH_TOKEN` або збережений OAuth MiniMax - для `minimax-portal`). - 3. Використовуйте точний id моделі (з урахуванням регістру) для вашого шляху автентифікації: - `minimax/MiniMax-M2.7` або `minimax/MiniMax-M2.7-highspeed` для налаштування - з API-ключем, або `minimax-portal/MiniMax-M2.7` / - `minimax-portal/MiniMax-M2.7-highspeed` для налаштування OAuth. + 2. Переконайтеся, що MiniMax налаштовано (майстер або JSON), або що auth MiniMax + існує в env/auth-профілях, щоб можна було вставити відповідний провайдер + (`MINIMAX_API_KEY` для `minimax`, `MINIMAX_OAUTH_TOKEN` або збережений MiniMax + OAuth для `minimax-portal`). + 3. Використовуйте точний id моделі (з урахуванням регістру) для вашого шляху auth: + `minimax/MiniMax-M2.7` або `minimax/MiniMax-M2.7-highspeed` для + налаштування через API key, або `minimax-portal/MiniMax-M2.7` / + `minimax-portal/MiniMax-M2.7-highspeed` для налаштування через OAuth. 4. Виконайте: ```bash @@ -2421,11 +2421,11 @@ x-i18n: - - Так. Використовуйте **MiniMax як типову** і перемикайте моделі **для окремої сесії** за потреби. - Резервні варіанти призначені для **помилок**, а не для "складних завдань", тому використовуйте `/model` або окремого агента. + + Так. Використовуйте **MiniMax як типову модель** і перемикайте моделі **на рівні сесії** за потреби. + Резервні варіанти призначені для **помилок**, а не для "складних задач", тож використовуйте `/model` або окремого agent. - **Варіант A: перемикання для окремої сесії** + **Варіант A: перемикання на рівні сесії** ```json5 { @@ -2448,11 +2448,11 @@ x-i18n: /model gpt ``` - **Варіант B: окремі агенти** + **Варіант B: окремі agents** - - Типова модель агента A: MiniMax - - Типова модель агента B: OpenAI - - Маршрутизуйте за агентом або використовуйте `/agent` для перемикання + - Типове значення Agent A: MiniMax + - Типове значення Agent B: OpenAI + - Маршрутизуйте за agent або використовуйте `/agent` для перемикання Документація: [Моделі](/uk/concepts/models), [Маршрутизація Multi-Agent](/uk/concepts/multi-agent), [MiniMax](/uk/providers/minimax), [OpenAI](/uk/providers/openai). @@ -2470,7 +2470,7 @@ x-i18n: - `gemini-flash` → `google/gemini-3-flash-preview` - `gemini-flash-lite` → `google/gemini-3.1-flash-lite-preview` - Якщо ви задасте власний псевдонім із такою самою назвою, використовуватиметься ваше значення. + Якщо ви задасте власний псевдонім із тим самим ім’ям, ваше значення матиме пріоритет. @@ -2492,11 +2492,11 @@ x-i18n: } ``` - Тоді `/model sonnet` (або `/`, коли підтримується) розв’язується до цього ID моделі. + Тоді `/model sonnet` (або `/`, коли це підтримується) розв’язується в цей id моделі. - + OpenRouter (оплата за токени; багато моделей): ```json5 @@ -2525,12 +2525,12 @@ x-i18n: } ``` - Якщо ви посилаєтеся на `provider/model`, але потрібний ключ провайдера відсутній, ви отримаєте помилку автентифікації під час роботи (наприклад, `No API key found for provider "zai"`). + Якщо ви посилаєтесь на `provider/model`, але потрібний ключ провайдера відсутній, ви отримаєте помилку auth під час виконання (наприклад `No API key found for provider "zai"`). - **No API key found for provider після додавання нового агента** + **Не знайдено API key для провайдера після додавання нового agent** - Зазвичай це означає, що в **нового агента** порожнє сховище автентифікації. Автентифікація прив’язана до агента і - зберігається в: + Зазвичай це означає, що **новий agent** має порожнє сховище auth. Auth є прив’язаним до agent і + зберігається тут: ``` ~/.openclaw/agents//agent/auth-profiles.json @@ -2538,10 +2538,10 @@ x-i18n: Варіанти виправлення: - - Виконайте `openclaw agents add ` і налаштуйте автентифікацію під час роботи майстра. - - Або скопіюйте `auth-profiles.json` з `agentDir` основного агента в `agentDir` нового агента. + - Виконайте `openclaw agents add ` і налаштуйте auth під час майстра. + - Або скопіюйте `auth-profiles.json` з `agentDir` основного agent до `agentDir` нового agent. - **Не** використовуйте спільний `agentDir` для кількох агентів; це спричиняє конфлікти автентифікації/сесій. + **Не** використовуйте спільний `agentDir` для кількох agents; це спричиняє колізії auth/сесій. @@ -2552,106 +2552,104 @@ x-i18n: Резервне перемикання відбувається у два етапи: - 1. **Ротація профілів автентифікації** в межах одного провайдера. - 2. **Резервний перехід між моделями** до наступної моделі в `agents.defaults.model.fallbacks`. + 1. **Ротація auth-профілів** у межах одного провайдера. + 2. **Резервна модель** до наступної моделі в `agents.defaults.model.fallbacks`. - До профілів, які дають збій, застосовуються періоди очікування (експоненційний backoff), тож OpenClaw може продовжувати відповідати, навіть коли провайдер обмежений rate limit або тимчасово недоступний. + Для профілів, що дають збої, застосовуються cooldown (експоненційний backoff), тому OpenClaw може продовжувати відповідати, навіть коли провайдер обмежений rate limit або тимчасово не працює. - Кошик rate limit містить не лише звичайні відповіді `429`. OpenClaw - також розглядає такі повідомлення, як `Too many concurrent requests`, + Кошик rate limit включає більше, ніж просто відповіді `429`. OpenClaw + також вважає такими, що заслуговують резервного перемикання, повідомлення на кшталт `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded`, `resource exhausted` і періодичні - обмеження вікна використання (`weekly/monthly limit reached`) як - ліміти, гідні резервного перемикання. + обмеження вікна використання (`weekly/monthly limit reached`). - Деякі відповіді, схожі на billing, мають не `402`, а деякі відповіді HTTP `402` - також лишаються в цьому тимчасовому кошику. Якщо провайдер повертає - явний billing-текст у `401` або `403`, OpenClaw все одно може залишити це в - категорії billing, але текстові зіставлення, специфічні для провайдера, залишаються в межах - провайдера, якому вони належать (наприклад, OpenRouter `Key limit exceeded`). Якщо ж повідомлення `402` - натомість схоже на вікно використання з повторною спробою або + Деякі відповіді, схожі на білінгові, не є `402`, і деякі відповіді HTTP `402` + також залишаються в цьому транзитному кошику. Якщо провайдер повертає + явний білінговий текст на `401` або `403`, OpenClaw усе одно може залишити це + в білінговому напрямку, але специфічні для провайдера текстові збіги залишаються обмеженими + провайдером, якому вони належать (наприклад OpenRouter `Key limit exceeded`). Якщо повідомлення `402` + натомість схоже на повторюване вікно використання або ліміт витрат organization/workspace (`daily limit reached, resets tomorrow`, `organization spending limit exceeded`), OpenClaw трактує це як - `rate_limit`, а не як тривале блокування через billing. + `rate_limit`, а не як довготривале відключення через білінг. - Помилки переповнення контексту — це інше: сигнатури на кшталт + Помилки переповнення контексту — інші: сигнатури на кшталт `request_too_large`, `input exceeds the maximum number of tokens`, `input token count exceeds the maximum number of input tokens`, `input is too long for the model` або `ollama error: context length - exceeded` лишаються на шляху Compaction/повторної спроби замість переходу до + exceeded` залишаються на шляху Compaction/повторної спроби замість переходу до резервної моделі. - Загальний текст серверної помилки навмисно вужчий за "все, що містить - unknown/error". OpenClaw дійсно трактує тимчасові форми, обмежені контекстом провайдера, - такі як порожнє Anthropic `An unknown error occurred`, порожнє OpenRouter - `Provider returned error`, помилки причини зупинки на кшталт `Unhandled stop reason: - error`, JSON-корисні навантаження `api_error` із тимчасовим серверним текстом + Загальний текст серверних помилок навмисно вужчий, ніж "усе, де є + unknown/error". OpenClaw вважає такими, що заслуговують резервного перемикання, тимчасові форми в межах провайдера, + як-от Anthropic bare `An unknown error occurred`, OpenRouter bare + `Provider returned error`, помилки stop-reason, як-от `Unhandled stop reason: + error`, JSON-повідомлення `api_error` із тимчасовим серверним текстом (`internal server error`, `unknown error, 520`, `upstream error`, `backend - error`) і помилки зайнятості провайдера на кшталт `ModelNotReadyException` як - сигнали тайм-ауту/перевантаження, гідні резервного перемикання, коли контекст - провайдера збігається. - Загальний внутрішній fallback-текст на кшталт `LLM request failed with an unknown + error`) і помилки зайнятості провайдера, як-от `ModelNotReadyException`, як сигнали timeout/overloaded, + якщо контекст провайдера збігається. + Загальний внутрішній текст резервного варіанта на кшталт `LLM request failed with an unknown error.` лишається консервативним і сам по собі не запускає резервне перемикання моделі. - Це означає, що система спробувала використати ID профілю автентифікації `anthropic:default`, але не змогла знайти для нього облікові дані в очікуваному сховищі автентифікації. + Це означає, що система намагалася використати id auth-профілю `anthropic:default`, але не змогла знайти для нього облікові дані в очікуваному сховищі auth. - **Контрольний список для виправлення:** + **Контрольний список виправлення:** - - **Підтвердьте, де зберігаються профілі автентифікації** (нові чи застарілі шляхи) + - **Підтвердьте, де живуть auth-профілі** (нові та застарілі шляхи) - Поточний: `~/.openclaw/agents//agent/auth-profiles.json` - - Застарілий: `~/.openclaw/agent/*` (мігрується командою `openclaw doctor`) - - **Переконайтеся, що Gateway завантажує вашу змінну середовища** - - Якщо ви задали `ANTHROPIC_API_KEY` у своїй оболонці, але запускаєте Gateway через systemd/launchd, він може її не успадковувати. Помістіть її в `~/.openclaw/.env` або ввімкніть `env.shellEnv`. - - **Переконайтеся, що ви редагуєте правильного агента** - - У налаштуваннях multi-agent може бути кілька файлів `auth-profiles.json`. - - **Виконайте базову перевірку стану моделі/автентифікації** - - Використовуйте `openclaw models status`, щоб побачити налаштовані моделі та те, чи пройшли провайдери автентифікацію. + - Застарілий: `~/.openclaw/agent/*` (мігрується через `openclaw doctor`) + - **Підтвердьте, що ваша env var завантажується Gateway** + - Якщо ви задали `ANTHROPIC_API_KEY` у своїй оболонці, але запускаєте Gateway через systemd/launchd, він може її не успадковувати. Розмістіть її в `~/.openclaw/.env` або увімкніть `env.shellEnv`. + - **Переконайтеся, що ви редагуєте правильного agent** + - У середовищах multi-agent може бути кілька файлів `auth-profiles.json`. + - **Перевірте стан моделі/auth** + - Використовуйте `openclaw models status`, щоб побачити налаштовані моделі й те, чи автентифіковані провайдери. - **Контрольний список для виправлення "No credentials found for profile anthropic"** + **Контрольний список виправлення для "No credentials found for profile anthropic"** - Це означає, що запуск закріплено за профілем автентифікації Anthropic, але Gateway - не може знайти його у своєму сховищі автентифікації. + Це означає, що виконання закріплене за auth-профілем Anthropic, але Gateway + не може знайти його у своєму сховищі auth. - **Використовуйте Claude CLI** - Виконайте `openclaw models auth login --provider anthropic --method cli --set-default` на хості gateway. - - **Якщо ви натомість хочете використовувати API-ключ** - - Помістіть `ANTHROPIC_API_KEY` у `~/.openclaw/.env` на **хості gateway**. + - **Якщо ви хочете використовувати API key** + - Розмістіть `ANTHROPIC_API_KEY` у `~/.openclaw/.env` на **хості gateway**. - Очистьте будь-який закріплений порядок, який примушує використовувати відсутній профіль: ```bash openclaw models auth order clear --provider anthropic ``` - - **Переконайтеся, що ви виконуєте команди на хості gateway** - - У віддаленому режимі профілі автентифікації зберігаються на машині gateway, а не на вашому ноутбуці. + - **Підтвердьте, що ви запускаєте команди на хості gateway** + - У віддаленому режимі auth-профілі живуть на машині gateway, а не на вашому ноутбуці. - - Якщо у вашій конфігурації моделі Google Gemini вказано як резервний варіант (або ви перемкнулися на скорочення Gemini), OpenClaw спробує його під час резервного перемикання моделі. Якщо ви не налаштували облікові дані Google, побачите `No API key found for provider "google"`. + + Якщо ваша конфігурація моделі включає Google Gemini як резервний варіант (або ви перемкнулися на скорочення Gemini), OpenClaw спробує його під час резервного перемикання моделі. Якщо ви не налаштували облікові дані Google, побачите `No API key found for provider "google"`. - Виправлення: або надайте автентифікацію Google, або видаліть/не використовуйте моделі Google у `agents.defaults.model.fallbacks` / псевдонімах, щоб резервне перемикання не маршрутизувалося туди. + Виправлення: або надайте auth Google, або приберіть/уникайте моделей Google в `agents.defaults.model.fallbacks` / псевдонімах, щоб резервне перемикання не маршрутизувало туди. **LLM request rejected: thinking signature required (Google Antigravity)** - Причина: історія сесії містить **thinking-блоки без сигнатур** (часто через - перерваний/частковий потік). Google Antigravity вимагає сигнатури для thinking-блоків. + Причина: історія сесії містить **thinking-блоки без підписів** (часто через + перерваний/частковий стрім). Google Antigravity вимагає підписів для thinking-блоків. - Виправлення: тепер OpenClaw видаляє thinking-блоки без сигнатур для Google Antigravity Claude. Якщо це все ще з’являється, почніть **нову сесію** або задайте `/thinking off` для цього агента. + Виправлення: OpenClaw тепер видаляє непідписані thinking-блоки для Google Antigravity Claude. Якщо це все одно трапляється, почніть **нову сесію** або задайте `/thinking off` для цього agent. -## Профілі автентифікації: що це таке і як ними керувати +## Auth-профілі: що це таке і як ними керувати -Пов’язане: [/concepts/oauth](/uk/concepts/oauth) (потоки OAuth, зберігання токенів, шаблони для кількох облікових записів) +Пов’язане: [/concepts/oauth](/uk/concepts/oauth) (OAuth-потоки, зберігання токенів, шаблони multi-account) - - Профіль автентифікації — це іменований запис облікових даних (OAuth або API-ключ), прив’язаний до провайдера. Профілі зберігаються в: + + Auth-профіль — це іменований запис облікових даних (OAuth або API key), прив’язаний до провайдера. Профілі зберігаються тут: ``` ~/.openclaw/agents//agent/auth-profiles.json @@ -2659,64 +2657,64 @@ x-i18n: - - OpenClaw використовує ID з префіксом провайдера, наприклад: + + OpenClaw використовує id з префіксом провайдера, наприклад: - - `anthropic:default` (поширено, коли немає ідентичності email) + - `anthropic:default` (поширено, коли немає email-ідентичності) - `anthropic:` для OAuth-ідентичностей - - користувацькі ID, які ви обираєте (наприклад, `anthropic:work`) + - власні id, які ви обираєте (наприклад `anthropic:work`) - - Так. Конфігурація підтримує необов’язкові метадані для профілів і порядок для кожного провайдера (`auth.order.`). Це **не** зберігає секрети; це зіставляє ID з провайдером/режимом і задає порядок ротації. + + Так. Конфігурація підтримує необов’язкові метадані для профілів і порядок для кожного провайдера (`auth.order.`). Це **не** зберігає секрети; воно зіставляє id з провайдером/режимом і задає порядок ротації. - OpenClaw може тимчасово пропустити профіль, якщо він перебуває в короткому **періоді очікування** (rate limit/тайм-аути/збої автентифікації) або в довшому **вимкненому** стані (billing/недостатньо кредитів). Щоб перевірити це, виконайте `openclaw models status --json` і перевірте `auth.unusableProfiles`. Налаштування: `auth.cooldowns.billingBackoffHours*`. + OpenClaw може тимчасово пропускати профіль, якщо він перебуває у короткому **cooldown** (rate limits/timeouts/auth failures) або в довшому стані **disabled** (billing/insufficient credits). Щоб перевірити це, запустіть `openclaw models status --json` і подивіться `auth.unusableProfiles`. Налаштування: `auth.cooldowns.billingBackoffHours*`. - Періоди очікування через rate limit можуть бути обмежені моделлю. Профіль, який перебуває в очікуванні - для однієї моделі, усе ще може бути придатним для спорідненої моделі того самого провайдера, - тоді як billing/вимкнені вікна й далі блокують увесь профіль. + Cooldown через rate limit можуть бути прив’язані до моделі. Профіль, який перебуває на cooldown + для однієї моделі, усе ще може бути придатним для сусідньої моделі того самого провайдера, + тоді як білінгові/disabled-вікна все одно блокують увесь профіль. - Ви також можете задати **перевизначення порядку для окремого агента** (зберігається в `auth-state.json` цього агента) через CLI: + Ви також можете задати **перевизначення порядку для кожного agent окремо** (зберігається в `auth-state.json` цього agent) через CLI: ```bash - # Типово використовує налаштованого агента за замовчуванням (опустіть --agent) + # Типово для налаштованого agent за замовчуванням (опустіть --agent) openclaw models auth order get --provider anthropic # Зафіксувати ротацію на одному профілі (пробувати лише його) openclaw models auth order set --provider anthropic anthropic:default - # Або задати явний порядок (резервний порядок у межах провайдера) + # Або задати явний порядок (резервне перемикання в межах провайдера) openclaw models auth order set --provider anthropic anthropic:work anthropic:default # Очистити перевизначення (повернутися до config auth.order / round-robin) openclaw models auth order clear --provider anthropic ``` - Щоб націлитися на конкретного агента: + Щоб націлитися на конкретного agent: ```bash openclaw models auth order set --provider anthropic --agent main anthropic:default ``` - Щоб перевірити, що буде фактично спробовано, використовуйте: + Щоб перевірити, що насправді пробуватиметься, використовуйте: ```bash openclaw models status --probe ``` - Якщо збережений профіль опущено з явного порядку, probe покаже - `excluded_by_auth_order` для цього профілю замість того, щоб мовчки пробувати його. + Якщо збережений профіль опущено з явного порядку, probe повідомляє + `excluded_by_auth_order` для цього профілю замість мовчазної спроби використати його. - + OpenClaw підтримує обидва варіанти: - **OAuth** часто використовує доступ за підпискою (де це застосовно). - - **API-ключі** використовують оплату за токени. + - **API keys** використовують білінг pay-per-token. - Майстер явно підтримує Anthropic Claude CLI, OpenAI Codex OAuth та API-ключі. + Майстер явно підтримує Anthropic Claude CLI, OpenAI Codex OAuth і API keys. @@ -2736,18 +2734,18 @@ x-i18n: - Тому що "running" — це погляд **supervisor** (launchd/systemd/schtasks). Probe RPC — це фактичне підключення CLI до gateway WebSocket і виклик `status`. + Тому що "running" — це погляд **supervisor** (launchd/systemd/schtasks). RPC probe — це фактичне підключення CLI до gateway WebSocket і виклик `status`. Використовуйте `openclaw gateway status` і довіряйте цим рядкам: - - `Probe target:` (URL, який probe фактично використав) - - `Listening:` (що фактично прив’язано до порту) + - `Probe target:` (URL, який probe реально використав) + - `Listening:` (що реально прив’язано до порту) - `Last gateway error:` (поширена першопричина, коли процес живий, але порт не слухає) - Ви редагуєте один файл конфігурації, тоді як сервіс використовує інший (часто через невідповідність `--profile` / `OPENCLAW_STATE_DIR`). + Ви редагуєте один файл конфігурації, тоді як служба використовує інший (часто це невідповідність `--profile` / `OPENCLAW_STATE_DIR`). Виправлення: @@ -2755,19 +2753,19 @@ x-i18n: openclaw gateway install --force ``` - Запустіть це з тим самим `--profile` / середовищем, яке ви хочете використовувати для сервісу. + Запустіть це з тим самим `--profile` / середовищем, яке ви хочете, щоб використовувала служба. - OpenClaw примусово встановлює блокування під час роботи, одразу прив’язуючи listener WebSocket під час запуску (типово `ws://127.0.0.1:18789`). Якщо bind завершується помилкою `EADDRINUSE`, викидається `GatewayLockError`, що означає, що інший екземпляр уже слухає. + OpenClaw забезпечує runtime-блокування, одразу прив’язуючи прослуховувач WebSocket під час запуску (типово `ws://127.0.0.1:18789`). Якщо прив’язка завершується помилкою `EADDRINUSE`, він викидає `GatewayLockError`, що означає, що інший екземпляр уже слухає. Виправлення: зупиніть інший екземпляр, звільніть порт або запускайте з `openclaw gateway --port `. - - Задайте `gateway.mode: "remote"` і вкажіть віддалену URL-адресу WebSocket, за потреби разом із клієнтськими обліковими даними спільного секрету для віддаленого доступу: + + Задайте `gateway.mode: "remote"` і вкажіть віддалену URL-адресу WebSocket, за потреби з віддаленими обліковими даними спільного секрету: ```json5 { @@ -2784,98 +2782,98 @@ x-i18n: Примітки: - - `openclaw gateway` запускається лише тоді, коли `gateway.mode` має значення `local` (або якщо ви передали прапорець перевизначення). - - Застосунок macOS відстежує файл конфігурації й перемикає режими в реальному часі, коли ці значення змінюються. - - `gateway.remote.token` / `.password` — це лише клієнтські облікові дані для віддаленого доступу; самі по собі вони не вмикають локальну автентифікацію gateway. + - `openclaw gateway` запускається лише тоді, коли `gateway.mode` має значення `local` (або ви передаєте прапорець перевизначення). + - Застосунок macOS стежить за файлом конфігурації і перемикає режими в реальному часі, коли ці значення змінюються. + - `gateway.remote.token` / `.password` — це лише облікові дані клієнта для remote; самі по собі вони не вмикають локальний auth gateway. - Шлях автентифікації вашого gateway і метод автентифікації UI не збігаються. + Ваш шлях auth gateway і метод auth в UI не збігаються. Факти (з коду): - - Control UI зберігає токен у `sessionStorage` для поточної сесії вкладки браузера та вибраної URL-адреси gateway, тож оновлення в цій самій вкладці продовжують працювати без відновлення довготривалого зберігання токена в localStorage. - - За `AUTH_TOKEN_MISMATCH` довірені клієнти можуть виконати одну обмежену повторну спробу з кешованим токеном пристрою, коли gateway повертає підказки для повтору (`canRetryWithDeviceToken=true`, `recommendedNextStep=retry_with_device_token`). - - Ця повторна спроба з кешованим токеном тепер повторно використовує кешовані схвалені scopes, збережені разом із токеном пристрою. Виклики з явними `deviceToken` / явними `scopes` і далі зберігають запитаний ними набір scopes замість успадкування кешованих scopes. - - Поза цим шляхом повторної спроби пріоритет автентифікації підключення такий: спочатку явний спільний токен/пароль, потім явний `deviceToken`, потім збережений токен пристрою, потім bootstrap-токен. - - Перевірки scope bootstrap-токена мають префікс ролі. Вбудований allowlist bootstrap-оператора задовольняє лише запити оператора; node або інші ролі, що не є оператором, і далі потребують scopes під власним префіксом ролі. + - Control UI зберігає токен у `sessionStorage` для поточної сесії вкладки браузера та вибраної URL-адреси gateway, тож оновлення в тій самій вкладці продовжують працювати без відновлення довготривалого зберігання токена в localStorage. + - При `AUTH_TOKEN_MISMATCH` довірені клієнти можуть виконати одну обмежену повторну спробу з кешованим токеном пристрою, коли gateway повертає підказки для повтору (`canRetryWithDeviceToken=true`, `recommendedNextStep=retry_with_device_token`). + - Ця повторна спроба з кешованим токеном тепер повторно використовує кешовані схвалені scopes, збережені разом із токеном пристрою. Явні виклики `deviceToken` / явні `scopes` все одно зберігають свій запитаний набір scopes замість успадкування кешованих scopes. + - Поза цим шляхом повторної спроби порядок auth для підключення такий: спочатку явний спільний токен/пароль, потім явний `deviceToken`, потім збережений токен пристрою, потім bootstrap-токен. + - Перевірки scope bootstrap-токена мають префікси ролей. Вбудований allowlist операторів bootstrap задовольняє лише запити операторів; Node або інші ролі, не пов’язані з оператором, усе одно потребують scopes під власним префіксом ролі. Виправлення: - - Найшвидше: `openclaw dashboard` (виводить і копіює URL-адресу dashboard, намагається відкрити; показує підказку SSH, якщо режим headless). + - Найшвидше: `openclaw dashboard` (виводить + копіює URL-адресу dashboard, намагається відкрити; показує SSH-підказку, якщо середовище без голови). - Якщо у вас ще немає токена: `openclaw doctor --generate-gateway-token`. - - Якщо віддалено, спочатку підніміть тунель: `ssh -N -L 18789:127.0.0.1:18789 user@host`, а потім відкрийте `http://127.0.0.1:18789/`. + - Якщо remote — спочатку підніміть tunnel: `ssh -N -L 18789:127.0.0.1:18789 user@host`, а потім відкрийте `http://127.0.0.1:18789/`. - Режим спільного секрету: задайте `gateway.auth.token` / `OPENCLAW_GATEWAY_TOKEN` або `gateway.auth.password` / `OPENCLAW_GATEWAY_PASSWORD`, а потім вставте відповідний секрет у налаштуваннях Control UI. - - Режим Tailscale Serve: переконайтеся, що `gateway.auth.allowTailscale` увімкнено і ви відкриваєте URL-адресу Serve, а не сирий loopback/tailnet URL, який обходить заголовки ідентичності Tailscale. - - Режим trusted-proxy: переконайтеся, що ви заходите через налаштований identity-aware proxy не-loopback, а не через proxy loopback на тому самому хості чи напряму через URL gateway. - - Якщо невідповідність зберігається після однієї повторної спроби, виконайте ротацію/повторне схвалення токена спареного пристрою: + - Режим Tailscale Serve: переконайтеся, що `gateway.auth.allowTailscale` увімкнено і ви відкриваєте URL-адресу Serve, а не сиру loopback/tailnet URL-адресу, яка обходить заголовки identity Tailscale. + - Режим trusted-proxy: переконайтеся, що ви заходите через налаштований reverse proxy з awareness identity не на loopback, а не через loopback proxy на тому ж хості чи пряму URL-адресу gateway. + - Якщо невідповідність зберігається після однієї повторної спроби, перевипустіть/повторно схваліть paired токен пристрою: - `openclaw devices list` - `openclaw devices rotate --device --role operator` - - Якщо цей виклик ротації повідомляє, що його відхилено, перевірте дві речі: - - сесії спарених пристроїв можуть обертати лише **власний** пристрій, якщо тільки вони також не мають `operator.admin` + - Якщо виклик rotate каже, що йому відмовлено, перевірте дві речі: + - paired-device sessions можуть перевипускати лише **власний** пристрій, якщо тільки вони також не мають `operator.admin` - явні значення `--scope` не можуть перевищувати поточні scopes оператора викликача - - Усе ще застрягли? Виконайте `openclaw status --all` і дотримуйтеся [Усунення несправностей](/uk/gateway/troubleshooting). Подробиці автентифікації див. у [Dashboard](/web/dashboard). + - Усе ще застрягли? Запустіть `openclaw status --all` і дотримуйтеся [Усунення несправностей](/uk/gateway/troubleshooting). Див. [Dashboard](/web/dashboard) для деталей auth. - - Bind `tailnet` вибирає IP-адресу Tailscale з ваших мережевих інтерфейсів (100.64.0.0/10). Якщо машина не підключена до Tailscale (або інтерфейс вимкнено), прив’язуватися нема до чого. + + Прив’язка `tailnet` вибирає Tailscale IP з мережевих інтерфейсів (100.64.0.0/10). Якщо машина не в Tailscale (або інтерфейс вимкнений), прив’язуватися немає до чого. Виправлення: - Запустіть Tailscale на цьому хості (щоб він мав адресу 100.x), або - Перемкніться на `gateway.bind: "loopback"` / `"lan"`. - Примітка: `tailnet` задається явно. `auto` віддає перевагу loopback; використовуйте `gateway.bind: "tailnet"`, коли хочете прив’язку лише до tailnet. + Примітка: `tailnet` є явним. `auto` віддає перевагу loopback; використовуйте `gateway.bind: "tailnet"`, коли хочете прив’язку лише до tailnet. - Зазвичай ні — один Gateway може обслуговувати кілька каналів обміну повідомленнями та агентів. Використовуйте кілька Gateway лише тоді, коли вам потрібна надлишковість (наприклад, rescue bot) або жорстка ізоляція. + Зазвичай ні — один Gateway може запускати кілька каналів обміну повідомленнями та agents. Використовуйте кілька Gateway лише тоді, коли вам потрібна надлишковість (наприклад rescue bot) або жорстка ізоляція. - Так, але вам потрібно ізолювати: + Так, але ви маєте ізолювати: - - `OPENCLAW_CONFIG_PATH` (окрема конфігурація для кожного екземпляра) - - `OPENCLAW_STATE_DIR` (окремий стан для кожного екземпляра) + - `OPENCLAW_CONFIG_PATH` (конфігурація для кожного екземпляра) + - `OPENCLAW_STATE_DIR` (стан для кожного екземпляра) - `agents.defaults.workspace` (ізоляція workspace) - `gateway.port` (унікальні порти) Швидке налаштування (рекомендовано): - Використовуйте `openclaw --profile ...` для кожного екземпляра (автоматично створює `~/.openclaw-`). - - Установіть унікальний `gateway.port` у конфігурації кожного профілю (або передавайте `--port` для ручних запусків). - - Установіть сервіс для кожного профілю: `openclaw --profile gateway install`. + - Задайте унікальний `gateway.port` у конфігурації кожного профілю (або передавайте `--port` для ручних запусків). + - Встановіть службу для конкретного профілю: `openclaw --profile gateway install`. - Профілі також додають суфікси до назв сервісів (`ai.openclaw.`; застарілі `com.openclaw.*`, `openclaw-gateway-.service`, `OpenClaw Gateway ()`). - Повний посібник: [Кілька gateway](/uk/gateway/multiple-gateways). + Профілі також додають суфікси до назв служб (`ai.openclaw.`; застарілі `com.openclaw.*`, `openclaw-gateway-.service`, `OpenClaw Gateway ()`). + Повний посібник: [Кілька Gateway](/uk/gateway/multiple-gateways). - Gateway — це **сервер WebSocket**, і він очікує, що першим повідомленням - буде кадр `connect`. Якщо він отримує щось інше, то закриває з’єднання - з **кодом 1008** (порушення політики). + Gateway — це **сервер WebSocket**, і він очікує, що найперше повідомлення + буде кадром `connect`. Якщо він отримує щось інше, він закриває з’єднання + з **code 1008** (порушення політики). Поширені причини: - - Ви відкрили URL-адресу **HTTP** у браузері (`http://...`) замість клієнта WS. + - Ви відкрили URL-адресу **HTTP** у браузері (`http://...`) замість WS-клієнта. - Ви використали неправильний порт або шлях. - - Proxy або тунель прибрав заголовки автентифікації чи надіслав запит, що не належить Gateway. + - Proxy або tunnel зрізав заголовки auth або надіслав не-Gateway запит. Швидкі виправлення: - 1. Використовуйте URL-адресу WS: `ws://:18789` (або `wss://...`, якщо HTTPS). - 2. Не відкривайте порт WS у звичайній вкладці браузера. - 3. Якщо автентифікацію ввімкнено, передайте токен/пароль у кадрі `connect`. + 1. Використовуйте URL-адресу WS: `ws://:18789` (або `wss://...`, якщо це HTTPS). + 2. Не відкривайте WS-порт у звичайній вкладці браузера. + 3. Якщо auth увімкнено, включіть токен/пароль у кадр `connect`. - Якщо ви використовуєте CLI або TUI, URL має виглядати так: + Якщо ви використовуєте CLI або TUI, URL-адреса має виглядати так: ``` openclaw tui --url ws://:18789 --token ``` - Подробиці протоколу: [Протокол Gateway](/uk/gateway/protocol). + Деталі протоколу: [Протокол Gateway](/uk/gateway/protocol). @@ -2883,32 +2881,32 @@ x-i18n: ## Логування та налагодження - - Файлові журнали (структуровані): + + Файлові логи (структуровані): ``` /tmp/openclaw/openclaw-YYYY-MM-DD.log ``` - Ви можете задати стабільний шлях через `logging.file`. Рівень файлового журналу керується `logging.level`. Докладність консолі керується `--verbose` і `logging.consoleLevel`. + Ви можете задати стабільний шлях через `logging.file`. Рівень файлового логування контролюється `logging.level`. Докладність консолі контролюється `--verbose` і `logging.consoleLevel`. - Найшвидший перегляд журналу в реальному часі: + Найшвидший перегляд хвоста логів: ```bash openclaw logs --follow ``` - Журнали сервісу/supervisor (коли gateway працює через launchd/systemd): + Логи служби/supervisor (коли gateway запускається через launchd/systemd): - macOS: `$OPENCLAW_STATE_DIR/logs/gateway.log` і `gateway.err.log` (типово: `~/.openclaw/logs/...`; профілі використовують `~/.openclaw-/logs/...`) - Linux: `journalctl --user -u openclaw-gateway[-].service -n 200 --no-pager` - Windows: `schtasks /Query /TN "OpenClaw Gateway ()" /V /FO LIST` - Додатково див. [Усунення несправностей](/uk/gateway/troubleshooting). + Докладніше див. [Усунення несправностей](/uk/gateway/troubleshooting). - + Використовуйте допоміжні команди gateway: ```bash @@ -2921,7 +2919,7 @@ x-i18n: - У Windows є **два режими встановлення**: + Є **два режими встановлення у Windows**: **1) WSL2 (рекомендовано):** Gateway працює всередині Linux. @@ -2933,13 +2931,13 @@ x-i18n: openclaw gateway restart ``` - Якщо ви ніколи не встановлювали сервіс, запустіть його на передньому плані: + Якщо ви ніколи не встановлювали службу, запустіть її на передньому плані: ```bash openclaw gateway run ``` - **2) Нативний Windows (не рекомендовано):** Gateway працює безпосередньо у Windows. + **2) Нативна Windows (не рекомендується):** Gateway працює безпосередньо у Windows. Відкрийте PowerShell і виконайте: @@ -2948,17 +2946,17 @@ x-i18n: openclaw gateway restart ``` - Якщо ви запускаєте його вручну (без сервісу), використовуйте: + Якщо ви запускаєте його вручну (без служби), використовуйте: ```powershell openclaw gateway run ``` - Документація: [Windows (WSL2)](/uk/platforms/windows), [Операційний посібник сервісу Gateway](/uk/gateway). + Документація: [Windows (WSL2)](/uk/platforms/windows), [Інструкція зі служби Gateway](/uk/gateway). - + Почніть із швидкої перевірки стану: ```bash @@ -2970,11 +2968,11 @@ x-i18n: Поширені причини: - - Автентифікація моделі не завантажена на **хості gateway** (перевірте `models status`). - - Сполучення каналу/allowlist блокує відповіді (перевірте конфігурацію каналу + журнали). + - Auth моделі не завантажено на **хості gateway** (перевірте `models status`). + - Pairing/allowlist каналу блокує відповіді (перевірте конфігурацію каналу + логи). - WebChat/Dashboard відкрито без правильного токена. - Якщо ви працюєте віддалено, переконайтеся, що тунель/Tailscale-з’єднання працює і що + Якщо ви працюєте віддалено, переконайтеся, що tunnel/Tailscale-з’єднання активне і що Gateway WebSocket доступний. Документація: [Channels](/uk/channels), [Усунення несправностей](/uk/gateway/troubleshooting), [Віддалений доступ](/uk/gateway/remote). @@ -2984,12 +2982,12 @@ x-i18n: Зазвичай це означає, що UI втратив з’єднання WebSocket. Перевірте: - 1. Gateway запущено? `openclaw gateway status` - 2. Gateway справний? `openclaw status` - 3. UI має правильний токен? `openclaw dashboard` - 4. Якщо віддалено, чи працює тунель/Tailscale-з’єднання? + 1. Чи запущений Gateway? `openclaw gateway status` + 2. Чи справний Gateway? `openclaw status` + 3. Чи має UI правильний токен? `openclaw dashboard` + 4. Якщо remote — чи активне з’єднання tunnel/Tailscale? - Потім перегляньте журнали в реальному часі: + Потім перегляньте хвіст логів: ```bash openclaw logs --follow @@ -2999,27 +2997,27 @@ x-i18n: - - Почніть із журналів і стану каналу: + + Почніть з логів і стану каналу: ```bash openclaw channels status openclaw channels logs --channel telegram ``` - Потім зіставте з помилкою: + Потім зіставте помилку: - - `BOT_COMMANDS_TOO_MUCH`: у меню Telegram забагато записів. OpenClaw уже обрізає список до ліміту Telegram і повторює спробу з меншою кількістю команд, але деякі записи меню все одно потрібно прибрати. Зменште кількість команд plugin/skill/custom або вимкніть `channels.telegram.commands.native`, якщо меню вам не потрібне. - - `TypeError: fetch failed`, `Network request for 'setMyCommands' failed!` або подібні мережеві помилки: якщо ви на VPS або за proxy, переконайтеся, що вихідний HTTPS дозволено і DNS працює для `api.telegram.org`. + - `BOT_COMMANDS_TOO_MUCH`: у меню Telegram забагато записів. OpenClaw уже обрізає їх до ліміту Telegram і повторює спробу з меншою кількістю команд, але деякі записи меню все одно треба прибрати. Зменште кількість Plugin/skill/custom-команд або вимкніть `channels.telegram.commands.native`, якщо меню вам не потрібне. + - `TypeError: fetch failed`, `Network request for 'setMyCommands' failed!` або подібні мережеві помилки: якщо ви на VPS або за proxy, переконайтеся, що вихідний HTTPS дозволений і DNS працює для `api.telegram.org`. - Якщо Gateway віддалений, переконайтеся, що ви дивитеся журнали на хості Gateway. + Якщо Gateway віддалений, переконайтеся, що ви дивитеся логи на хості Gateway. Документація: [Telegram](/uk/channels/telegram), [Усунення несправностей каналів](/uk/channels/troubleshooting). - - Спочатку переконайтеся, що Gateway доступний і агент може працювати: + + Спочатку переконайтеся, що Gateway доступний і agent може виконуватися: ```bash openclaw status @@ -3027,45 +3025,45 @@ x-i18n: openclaw logs --follow ``` - У TUI використовуйте `/status`, щоб побачити поточний стан. Якщо ви очікуєте відповіді в чаті - каналу, переконайтеся, що доставку ввімкнено (`/deliver on`). + У TUI використовуйте `/status`, щоб побачити поточний стан. Якщо ви очікуєте відповіді в чат-каналі, + переконайтеся, що доставку ввімкнено (`/deliver on`). - Документація: [TUI](/web/tui), [Slash-команди](/uk/tools/slash-commands). + Документація: [TUI](/web/tui), [Slash commands](/uk/tools/slash-commands). - Якщо ви встановили сервіс: + Якщо ви встановили службу: ```bash openclaw gateway stop openclaw gateway start ``` - Це зупиняє/запускає **керований сервіс** (launchd у macOS, systemd у Linux). + Це зупиняє/запускає **керовану службу** (launchd на macOS, systemd на Linux). Використовуйте це, коли Gateway працює у фоновому режимі як демон. - Якщо ви запускаєте у foreground, зупиніть через Ctrl-C, а потім: + Якщо ви запускаєте у foreground, зупиніть через Ctrl-C, потім: ```bash openclaw gateway run ``` - Документація: [Операційний посібник сервісу Gateway](/uk/gateway). + Документація: [Інструкція зі служби Gateway](/uk/gateway). - - - `openclaw gateway restart`: перезапускає **фоновий сервіс** (launchd/systemd). + + - `openclaw gateway restart`: перезапускає **фонову службу** (launchd/systemd). - `openclaw gateway`: запускає gateway **у foreground** для цієї сесії термінала. - Якщо ви встановили сервіс, використовуйте команди gateway. Використовуйте `openclaw gateway`, коли - вам потрібен одноразовий запуск у foreground. + Якщо ви встановили службу, використовуйте команди gateway. Використовуйте `openclaw gateway`, коли + хочете одноразовий запуск у foreground. - - Запустіть Gateway з `--verbose`, щоб отримати більше подробиць у консолі. Потім перевірте файл журналу на предмет автентифікації каналу, маршрутизації моделей і помилок RPC. + + Запустіть Gateway з `--verbose`, щоб отримати більше деталей у консолі. Потім перевірте лог-файл на помилки auth каналу, маршрутизації моделі та RPC. @@ -3073,7 +3071,7 @@ x-i18n: - Вихідні вкладення від агента мають містити рядок `MEDIA:` (в окремому рядку). Див. [Налаштування асистента OpenClaw](/uk/start/openclaw) і [Надсилання агентом](/uk/tools/agent-send). + Вихідні вкладення від agent мають містити рядок `MEDIA:` (в окремому рядку). Див. [Налаштування помічника OpenClaw](/uk/start/openclaw) і [Agent send](/uk/tools/agent-send). Надсилання через CLI: @@ -3083,10 +3081,10 @@ x-i18n: Також перевірте: - - Цільовий channel підтримує вихідні медіа і не блокується allowlist. - - Файл не перевищує обмеження розміру провайдера (зображення змінюють розмір максимум до 2048 px). - - `tools.fs.workspaceOnly=true` обмежує надсилання локальних шляхів workspace, temp/media-store і файлами, перевіреними sandbox. - - `tools.fs.workspaceOnly=false` дозволяє `MEDIA:` надсилати локальні файли хоста, які агент уже може читати, але лише для медіа і безпечних типів документів (зображення, аудіо, відео, PDF і документи Office). Звичайний текст і файли, схожі на секрети, усе одно блокуються. + - Цільовий канал підтримує вихідні медіа й не заблокований allowlist. + - Файл не перевищує обмежень розміру провайдера (зображення змінюють розмір до максимуму 2048px). + - `tools.fs.workspaceOnly=true` обмежує надсилання локальних шляхів workspace, temp/media-store та файлами, перевіреними sandbox. + - `tools.fs.workspaceOnly=false` дозволяє `MEDIA:` надсилати локальні файли хоста, які agent уже може читати, але лише для медіа та безпечних типів документів (зображення, аудіо, відео, PDF і документи Office). Звичайний текст і файли, схожі на секрети, усе одно блокуються. Див. [Зображення](/uk/nodes/images). @@ -3097,109 +3095,109 @@ x-i18n: - Ставтеся до вхідних DM як до недовіреного вводу. Значення за замовчуванням розроблено так, щоб зменшувати ризик: + Ставтеся до вхідних DM як до недовіреного вмісту. Типові значення спроєктовано так, щоб зменшити ризик: - - Типова поведінка в каналах із підтримкою DM — **pairing**: + - Типова поведінка на каналах, що підтримують DM, — це **pairing**: - Невідомі відправники отримують код pairing; бот не обробляє їхнє повідомлення. - - Підтвердження через: `openclaw pairing approve --channel [--account ] ` - - Кількість pending-запитів обмежена до **3 на channel**; перевіряйте `openclaw pairing list --channel [--account ]`, якщо код не надійшов. - - Відкриття DM публічно вимагає явного opt-in (`dmPolicy: "open"` і allowlist `"*"`). + - Схвалення: `openclaw pairing approve --channel [--account ] ` + - Кількість очікуваних запитів обмежено до **3 на канал**; перевіряйте `openclaw pairing list --channel [--account ]`, якщо код не надійшов. + - Публічне відкриття DM потребує явної згоди (`dmPolicy: "open"` і allowlist `"*"`). Запустіть `openclaw doctor`, щоб виявити ризиковані політики DM. - - Ні. Prompt injection стосується **недовіреного контенту**, а не лише того, хто може написати боту в DM. - Якщо ваш асистент читає зовнішній контент (вебпошук/fetch, сторінки браузера, листи, - документи, вкладення, вставлені журнали), цей контент може містити інструкції, які - намагаються перехопити керування моделлю. Це може статися, навіть якщо **ви єдиний відправник**. + + Ні. Prompt injection стосується **недовіреного вмісту**, а не лише того, хто може написати боту в DM. + Якщо ваш помічник читає зовнішній вміст (web search/fetch, сторінки браузера, email, + документи, вкладення, вставлені логи), цей вміст може містити інструкції, які намагаються + перехопити контроль над моделлю. Це може статися, навіть якщо **ви є єдиним відправником**. - Найбільший ризик виникає, коли увімкнено інструменти: модель можна обманом змусити - витягти контекст або викликати інструменти від вашого імені. Зменште радіус ураження: + Найбільший ризик виникає, коли ввімкнені інструменти: модель можна змусити + витягувати контекст або викликати інструменти від вашого імені. Зменшуйте радіус ураження таким чином: - - використовуйте агента-"читача" лише для читання або без інструментів, щоб підсумовувати недовірений контент - - тримайте `web_search` / `web_fetch` / `browser` вимкненими для агентів з увімкненими інструментами - - також ставтеся до декодованого тексту файлів/документів як до недовіреного: OpenResponses - `input_file` і видобування з медіавкладень обгортають витягнутий текст - у явні маркери меж зовнішнього контенту замість передавання сирого тексту файла + - використовуйте "reader" agent лише для читання або без інструментів, щоб підсумовувати недовірений вміст + - тримайте `web_search` / `web_fetch` / `browser` вимкненими для agents з увімкненими інструментами + - ставтеся до декодованого тексту файлів/документів також як до недовіреного: OpenResponses + `input_file` і витягування з медіавкладень обгортають витягнутий текст + явними маркерами меж зовнішнього вмісту замість передачі сирого тексту файла - використовуйте sandboxing і суворі allowlist інструментів - Подробиці: [Безпека](/uk/gateway/security). + Деталі: [Безпека](/uk/gateway/security). - - Так, для більшості сценаріїв. Ізоляція бота окремими обліковими записами й номерами телефонів + + Так, для більшості налаштувань. Ізоляція бота в окремих облікових записах і номерах телефону зменшує радіус ураження, якщо щось піде не так. Це також полегшує ротацію облікових даних або відкликання доступу без впливу на ваші особисті облікові записи. Починайте з малого. Надавайте доступ лише до тих інструментів і облікових записів, які вам справді потрібні, і розширюйте - пізніше, якщо це знадобиться. + пізніше, якщо знадобиться. Документація: [Безпека](/uk/gateway/security), [Pairing](/uk/channels/pairing). - - Ми **не** рекомендуємо повну автономію над вашими особистими повідомленнями. Найбезпечніший шаблон: + + Ми **не** рекомендуємо повну автономність над вашими особистими повідомленнями. Найбезпечніший шаблон: - - Тримайте DM у режимі **pairing** або з жорстким allowlist. - - Використовуйте **окремий номер або обліковий запис**, якщо хочете, щоб він надсилав повідомлення від вашого імені. - - Нехай він готує чернетку, а ви **погоджуйте перед надсиланням**. + - Тримайте DM у режимі **pairing** або в жорсткому allowlist. + - Використовуйте **окремий номер або обліковий запис**, якщо хочете, щоб він писав від вашого імені. + - Нехай він створює чернетку, а потім **схвалюйте перед надсиланням**. - Якщо хочете експериментувати, робіть це на окремому обліковому записі та зберігайте ізоляцію. Див. + Якщо хочете експериментувати, робіть це на виділеному обліковому записі та тримайте його ізольованим. Див. [Безпека](/uk/gateway/security). - - Так, **якщо** агент працює лише в чаті, а вхідні дані довірені. Менші рівні - більш схильні до перехоплення інструкціями, тому уникайте їх для агентів з увімкненими інструментами - або під час читання недовіреного контенту. Якщо вам усе ж потрібна менша модель, жорстко обмежте - інструменти і запускайте всередині sandbox. Див. [Безпека](/uk/gateway/security). + + Так, **якщо** agent лише для чату і вхідні дані довірені. Менші рівні + більш схильні до перехоплення інструкцій, тому уникайте їх для agents з увімкненими інструментами + або при читанні недовіреного вмісту. Якщо вам усе ж потрібна менша модель, жорстко обмежте + інструменти й запускайте всередині sandbox. Див. [Безпека](/uk/gateway/security). - - Коди pairing надсилаються **лише** коли невідомий відправник пише боту і - ввімкнено `dmPolicy: "pairing"`. Сам по собі `/start` не генерує код. + + Коди pairing надсилаються **лише** тоді, коли невідомий відправник пише боту і + `dmPolicy: "pairing"` увімкнено. Сам по собі `/start` не генерує код. - Перевірте pending-запити: + Перевірте запити в очікуванні: ```bash openclaw pairing list telegram ``` - Якщо вам потрібен негайний доступ, додайте свій ID відправника до allowlist або задайте `dmPolicy: "open"` + Якщо ви хочете негайний доступ, додайте свій id відправника в allowlist або задайте `dmPolicy: "open"` для цього облікового запису. - Ні. Типова політика WhatsApp DM — **pairing**. Невідомі відправники отримують лише код pairing, а їхнє повідомлення **не обробляється**. OpenClaw відповідає лише на чати, які він отримує, або на явні надсилання, які ви запускаєте. + Ні. Типова політика DM у WhatsApp — **pairing**. Невідомі відправники отримують лише код pairing, а їхнє повідомлення **не обробляється**. OpenClaw відповідає лише на чати, які він отримує, або на явні надсилання, які ви ініціюєте. - Підтвердьте pairing через: + Схвалити pairing: ```bash openclaw pairing approve whatsapp ``` - Перелік pending-запитів: + Перелічити запити в очікуванні: ```bash openclaw pairing list whatsapp ``` - Запит номера телефону в майстрі: він використовується для налаштування вашого **allowlist/власника**, щоб ваші власні DM були дозволені. Він не використовується для автоматичного надсилання. Якщо ви запускаєте на своєму особистому номері WhatsApp, використовуйте цей номер і ввімкніть `channels.whatsapp.selfChatMode`. + Запит номера телефону в майстрі: він використовується для налаштування вашого **allowlist/owner**, щоб дозволити ваші власні DM. Він не використовується для автоматичного надсилання. Якщо ви запускаєте на своєму особистому номері WhatsApp, використовуйте цей номер і увімкніть `channels.whatsapp.selfChatMode`. -## Команди чату, переривання завдань і "він не зупиняється" +## Команди чату, переривання задач і "він не зупиняється" - - Більшість внутрішніх або інструментальних повідомлень з’являються лише тоді, коли для цієї сесії увімкнено **verbose**, **trace** або **reasoning**. + + Більшість внутрішніх або інструментальних повідомлень з’являються лише тоді, коли для цієї сесії ввімкнено **verbose**, **trace** або **reasoning**. Виправлення в чаті, де ви це бачите: @@ -3209,16 +3207,16 @@ x-i18n: /reasoning off ``` - Якщо все ще занадто шумно, перевірте налаштування сесії в Control UI і встановіть verbose - на **inherit**. Також переконайтеся, що ви не використовуєте профіль бота з `verboseDefault`, установленим + Якщо все ще надто шумно, перевірте налаштування сесії в Control UI і встановіть verbose + у значення **inherit**. Також переконайтеся, що ви не використовуєте профіль бота з `verboseDefault`, встановленим у `on` у конфігурації. - Документація: [Thinking і verbose](/uk/tools/thinking), [Безпека](/uk/gateway/security#reasoning-verbose-output-in-groups). + Документація: [Thinking and verbose](/uk/tools/thinking), [Безпека](/uk/gateway/security#reasoning-verbose-output-in-groups). - - Надішліть будь-який із цих варіантів **як окреме повідомлення** (без слеша): + + Надішліть будь-яке з цього **окремим повідомленням** (без слеша): ``` stop @@ -3242,25 +3240,25 @@ x-i18n: interrupt ``` - Це тригери переривання, а не slash-команди. + Це тригери переривання (не slash commands). - Для фонових процесів (з інструмента exec) ви можете попросити агента виконати: + Для фонових процесів (з інструмента exec) ви можете попросити agent виконати: ``` process action:kill sessionId:XXX ``` - Огляд slash-команд: див. [Slash-команди](/uk/tools/slash-commands). + Огляд slash commands: див. [Slash commands](/uk/tools/slash-commands). - Більшість команд треба надсилати як **окреме** повідомлення, що починається з `/`, але кілька скорочень (наприклад, `/status`) також працюють inline для відправників з allowlist. + Більшість команд треба надсилати як **окреме** повідомлення, яке починається з `/`, але кілька скорочень (як-от `/status`) також працюють inline для відправників з allowlist. - OpenClaw за замовчуванням блокує повідомлення **між різними провайдерами**. Якщо виклик інструмента прив’язаний - до Telegram, він не надсилатиме в Discord, якщо ви явно це не дозволите. + OpenClaw блокує повідомлення **між різними провайдерами** за замовчуванням. Якщо виклик інструмента прив’язаний + до Telegram, він не надсилатиме в Discord, якщо ви явно цього не дозволите. - Увімкніть міжпровайдерний обмін повідомленнями для агента: + Увімкніть міжпровайдерні повідомлення для agent: ```json5 { @@ -3282,13 +3280,13 @@ x-i18n: Режим черги керує тим, як нові повідомлення взаємодіють із поточним виконанням. Використовуйте `/queue`, щоб змінити режими: - - `steer` - нові повідомлення перенаправляють поточне завдання + - `steer` - нові повідомлення перенаправляють поточну задачу - `followup` - повідомлення виконуються по одному - - `collect` - групує повідомлення і відповідає один раз (типово) - - `steer-backlog` - перенаправляє зараз, а потім обробляє backlog - - `interrupt` - перериває поточне виконання і починає заново + - `collect` - пакетування повідомлень і одна відповідь (типово) + - `steer-backlog` - перенаправити зараз, потім обробити накопичене + - `interrupt` - перервати поточне виконання і почати заново - Ви можете додати параметри на кшталт `debounce:2s cap:25 drop:summarize` для режимів followup. + Ви можете додавати параметри на кшталт `debounce:2s cap:25 drop:summarize` для режимів followup. @@ -3296,8 +3294,8 @@ x-i18n: ## Різне - - В OpenClaw облікові дані та вибір моделі — це окремі речі. Задання `ANTHROPIC_API_KEY` (або збереження API-ключа Anthropic у профілях автентифікації) вмикає автентифікацію, але фактична модель за замовчуванням — це те, що ви налаштували в `agents.defaults.model.primary` (наприклад, `anthropic/claude-sonnet-4-6` або `anthropic/claude-opus-4-6`). Якщо ви бачите `No credentials found for profile "anthropic:default"`, це означає, що Gateway не зміг знайти облікові дані Anthropic в очікуваному `auth-profiles.json` для агента, який виконується. + + В OpenClaw облікові дані та вибір моделі — це окремі речі. Задання `ANTHROPIC_API_KEY` (або збереження ключа Anthropic API в auth-профілях) вмикає автентифікацію, але фактична типова модель — це те, що ви налаштували в `agents.defaults.model.primary` (наприклад `anthropic/claude-sonnet-4-6` або `anthropic/claude-opus-4-6`). Якщо ви бачите `No credentials found for profile "anthropic:default"`, це означає, що Gateway не зміг знайти облікові дані Anthropic в очікуваному `auth-profiles.json` для agent, який виконується.