From 6bc17e00d8975cc679ac72230ea23f52d96b2a01 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Tue, 21 Apr 2026 06:42:05 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/automation/cron-jobs.md | 222 ++-- docs/uk/help/faq.md | 1913 +++++++++++++++---------------- 2 files changed, 1067 insertions(+), 1068 deletions(-) diff --git a/docs/uk/automation/cron-jobs.md b/docs/uk/automation/cron-jobs.md index 1552168f9..f04dfce4e 100644 --- a/docs/uk/automation/cron-jobs.md +++ b/docs/uk/automation/cron-jobs.md @@ -6,17 +6,17 @@ read_when: summary: Заплановані завдання, Webhook-и та тригери Gmail PubSub для планувальника Gateway title: Заплановані завдання x-i18n: - generated_at: "2026-04-20T18:25:02Z" + generated_at: "2026-04-21T06:32:46Z" model: gpt-5.4 provider: openai - source_hash: e25f4dc8ee7b8f88e22d5cbc86e4527a9f5ac0ab4921e7874f76b186054682a3 + source_hash: ac08f67af43bc85a1713558899a220c935479620f1ef74aa76336259daac2828 source_path: automation/cron-jobs.md workflow: 15 --- # Заплановані завдання (Cron) -Cron — це вбудований планувальник Gateway. Він зберігає завдання, пробуджує агента в потрібний час і може повертати результат назад у канал чату або на кінцеву точку Webhook. +Cron — це вбудований планувальник Gateway. Він зберігає завдання, пробуджує агента в потрібний час і може повертати результат назад у канал чату або до endpoint Webhook. ## Швидкий старт @@ -32,6 +32,7 @@ openclaw cron add \ # Check your jobs openclaw cron list +openclaw cron show # See run history openclaw cron runs --id @@ -39,41 +40,41 @@ openclaw cron runs --id ## Як працює cron -- Cron працює **всередині процесу Gateway** (а не всередині моделі). +- Cron працює **всередині** процесу Gateway (а не всередині моделі). - Визначення завдань зберігаються в `~/.openclaw/cron/jobs.json`, тому перезапуски не призводять до втрати розкладів. -- Стан виконання під час роботи зберігається поруч у `~/.openclaw/cron/jobs-state.json`. Якщо ви відстежуєте визначення cron у git, відстежуйте `jobs.json`, а `jobs-state.json` додайте в gitignore. -- Після цього розділення старіші версії OpenClaw можуть читати `jobs.json`, але можуть сприймати завдання як нові, оскільки поля стану виконання тепер розміщені в `jobs-state.json`. +- Стан виконання під час роботи зберігається поруч у `~/.openclaw/cron/jobs-state.json`. Якщо ви відстежуєте визначення cron у git, відстежуйте `jobs.json`, а `jobs-state.json` додайте до gitignore. +- Після цього розділення старіші версії OpenClaw можуть читати `jobs.json`, але можуть вважати завдання новими, оскільки поля стану виконання тепер зберігаються в `jobs-state.json`. - Усі виконання cron створюють записи [фонових завдань](/uk/automation/tasks). -- Одноразові завдання (`--at`) після успішного виконання типово автоматично видаляються. -- Ізольовані запуски cron після завершення виконують best-effort закриття відстежуваних вкладок браузера/процесів для своєї сесії `cron:`, щоб відокремлена автоматизація браузера не залишала сирітські процеси. -- Ізольовані запуски cron також захищаються від застарілих відповідей-підтверджень. Якщо - перший результат — це лише проміжне оновлення стану (`on it`, `pulling everything -together` та подібні підказки), і жоден дочірній запуск субагента більше не - відповідає за фінальну відповідь, OpenClaw повторно надсилає запит один раз для отримання фактичного - результату перед доставкою. +- Одноразові завдання (`--at`) типово автоматично видаляються після успішного виконання. +- Ізольовані запуски cron після завершення намагаються закрити відстежувані вкладки браузера/процеси для своєї сесії `cron:`, щоб відокремлена автоматизація браузера не залишала осиротілі процеси. +- Ізольовані запуски cron також захищають від застарілих відповідей-підтверджень. Якщо + перший результат — це лише проміжне оновлення статусу (`on it`, `pulling everything +together` та подібні підказки) і жоден дочірній запуск субагента більше не + відповідає за фінальну відповідь, OpenClaw повторно надсилає запит один раз, щоб отримати фактичний + результат перед доставленням. -Узгодження завдань для cron належить середовищу виконання: активне завдання cron залишається активним, поки -середовище cron усе ще відстежує це завдання як таке, що виконується, навіть якщо старий рядок дочірньої сесії все ще існує. -Щойно середовище виконання перестає володіти завданням і минає 5-хвилинне вікно очікування, обслуговування може +Узгодження завдань для cron належить до середовища виконання: активне завдання cron залишається активним, поки +середовище cron і далі відстежує це завдання як таке, що виконується, навіть якщо старий рядок дочірньої сесії все ще існує. +Щойно середовище виконання перестає володіти цим завданням і спливає 5-хвилинне вікно відстрочки, обслуговування може позначити завдання як `lost`. ## Типи розкладу -| Тип | Прапорець CLI | Опис | -| ------- | ------------- | ------------------------------------------------------- | -| `at` | `--at` | Одноразова часова позначка (ISO 8601 або відносна, наприклад `20m`) | -| `every` | `--every` | Фіксований інтервал | -| `cron` | `--cron` | Cron-вираз із 5 або 6 полів з необов’язковим `--tz` | +| Вид | Прапорець CLI | Опис | +| ------- | ------------- | --------------------------------------------------------- | +| `at` | `--at` | Одноразова позначка часу (ISO 8601 або відносна, наприклад `20m`) | +| `every` | `--every` | Фіксований інтервал | +| `cron` | `--cron` | Вираз cron із 5 або 6 полів з необов’язковим `--tz` | -Часові позначки без часового поясу трактуються як UTC. Додайте `--tz America/New_York` для планування за локальним астрономічним часом. +Позначки часу без часового поясу трактуються як UTC. Додайте `--tz America/New_York` для планування за локальним часом. -Повторювані вирази на початку кожної години автоматично зсуваються на строк до 5 хвилин, щоб зменшити піки навантаження. Використовуйте `--exact`, щоб примусово встановити точний час, або `--stagger 30s` для явного вікна. +Періодичні вирази на початок години автоматично розносяться в межах до 5 хвилин, щоб зменшити піки навантаження. Використовуйте `--exact`, щоб примусово задати точний час, або `--stagger 30s` для явного вікна. -### День місяця та день тижня використовують логіку OR +### День місяця і день тижня використовують логіку OR -Cron-вирази розбираються за допомогою [croner](https://github.com/Hexagon/croner). Коли і поле дня місяця, і поле дня тижня не є wildcard, croner виконує збіг, коли **збігається будь-яке** з полів, а не обидва. Це стандартна поведінка Vixie cron. +Вирази cron парсяться через [croner](https://github.com/Hexagon/croner). Коли і поле дня місяця, і поле дня тижня не є wildcard, croner виконує збіг, якщо **будь-яке** з полів збігається, а не обидва. Це стандартна поведінка Vixie cron. ``` # Intended: "9 AM on the 15th, only if it's a Monday" @@ -81,80 +82,76 @@ Cron-вирази розбираються за допомогою [croner](http 0 9 15 * 1 ``` -Це спрацьовує приблизно 5–6 разів на місяць замість 0–1 разу на місяць. OpenClaw тут використовує стандартну OR-поведінку Croner. Щоб вимагати виконання обох умов, використовуйте модифікатор дня тижня `+` із Croner (`0 9 15 * +1`) або плануйте за одним полем, а інше перевіряйте в prompt чи команді свого завдання. +Це спрацьовує приблизно 5–6 разів на місяць замість 0–1 разу на місяць. OpenClaw тут використовує типову OR-поведінку Croner. Щоб вимагати виконання обох умов, використовуйте модифікатор дня тижня `+` у Croner (`0 9 15 * +1`) або плануйте за одним полем, а інше перевіряйте в prompt чи команді вашого завдання. ## Стилі виконання -| Стиль | Значення `--session` | Виконується в | Найкраще підходить для | -| --------------- | -------------------- | ------------------------ | ------------------------------- | -| Основна сесія | `main` | Наступний такт Heartbeat | Нагадувань, системних подій | -| Ізольований | `isolated` | Виділений `cron:` | Звітів, фонових задач | +| Стиль | Значення `--session` | Виконується в | Найкраще підходить для | +| --------------- | -------------------- | ------------------------- | ----------------------------------- | +| Основна сесія | `main` | Наступний такт heartbeat | Нагадувань, системних подій | +| Ізольований | `isolated` | Виділена `cron:` | Звітів, фонових завдань | | Поточна сесія | `current` | Прив’язується під час створення | Періодичної роботи з урахуванням контексту | -| Користувацька сесія | `session:custom-id` | Постійна іменована сесія | Процесів, що будуються на історії | +| Користувацька сесія | `session:custom-id` | Постійна іменована сесія | Робочих процесів, що спираються на історію | -Завдання **основної сесії** ставлять у чергу системну подію та за потреби пробуджують heartbeat (`--wake now` або `--wake next-heartbeat`). **Ізольовані** завдання запускають окремий хід агента з новою сесією. **Користувацькі сесії** (`session:xxx`) зберігають контекст між запусками, що дає змогу будувати процеси на кшталт щоденних стендапів, які спираються на попередні підсумки. +Завдання **основної сесії** ставлять системну подію в чергу та за потреби пробуджують heartbeat (`--wake now` або `--wake next-heartbeat`). **Ізольовані** завдання виконують окремий хід агента з новою сесією. **Користувацькі сесії** (`session:xxx`) зберігають контекст між запусками, що дає змогу реалізовувати робочі процеси на кшталт щоденних стендапів, які спираються на попередні підсумки. -Для ізольованих завдань завершення середовища виконання тепер включає best-effort очищення браузера для цієї cron-сесії. Помилки очищення ігноруються, щоб пріоритет залишався за фактичним результатом cron. +Для ізольованих завдань завершення виконання тепер включає найкращу спробу очищення браузера для цієї cron-сесії. Помилки очищення ігноруються, щоб фактичний результат cron усе одно мав пріоритет. -Коли ізольовані запуски cron оркеструють субагентів, доставка також надає перевагу фінальному -результату нащадка над застарілим проміжним текстом батьківського процесу. Якщо нащадки все ще -виконуються, OpenClaw пригнічує це часткове батьківське оновлення замість того, щоб оголошувати його. +Коли ізольовані запуски cron оркеструють субагентів, під час доставлення також +перевага надається фінальному результату дочірнього запуску, а не застарілому проміжному тексту батьківського. +Якщо дочірні запуски все ще виконуються, OpenClaw пригнічує це часткове оновлення батьківського процесу, замість того щоб оголошувати його. ### Параметри payload для ізольованих завдань -- `--message`: текст prompt-а (обов’язковий для isolated) +- `--message`: текст prompt (обов’язковий для ізольованих) - `--model` / `--thinking`: перевизначення моделі та рівня thinking -- `--light-context`: пропустити ін’єкцію файла bootstrap робочого простору +- `--light-context`: пропустити ін’єкцію bootstrap-файлів робочого простору - `--tools exec,read`: обмежити, які інструменти може використовувати завдання `--model` використовує вибрану дозволену модель для цього завдання. Якщо запитана модель -не дозволена, cron записує попередження в журнал і повертається до вибору моделі агента/типової -моделі для цього завдання. Налаштовані ланцюжки fallback, як і раніше, застосовуються, але звичайне -перевизначення моделі без явного списку fallback для завдання більше не додає основну модель агента -як приховану додаткову ціль для повторної спроби. +не дозволена, cron записує попередження в журнал і повертається до вибору моделі агента/типової моделі для цього завдання. +Налаштовані ланцюжки fallback, як і раніше, застосовуються, але звичайне перевизначення +моделі без явного списку fallback для конкретного завдання більше не додає основну модель агента як приховану додаткову ціль повторної спроби. Пріоритет вибору моделі для ізольованих завдань такий: -1. Перевизначення моделі Gmail hook (коли запуск надійшов із Gmail і це перевизначення дозволене) +1. Перевизначення моделі hook Gmail (коли запуск походить із Gmail і це перевизначення дозволене) 2. `model` у payload конкретного завдання -3. Збережене перевизначення моделі cron-сесії +3. Збережене перевизначення моделі сесії cron 4. Вибір моделі агента/типової моделі -Fast mode також дотримується визначеного активного вибору. Якщо в конфігурації вибраної моделі -є `params.fastMode`, ізольований cron типово використовує його. Збережене перевизначення -`fastMode` сесії все одно має пріоритет над конфігурацією в будь-який бік. +Швидкий режим також дотримується визначеного активного вибору. Якщо вибрана конфігурація моделі +має `params.fastMode`, ізольований cron використовує його типово. Збережене перевизначення +`fastMode` сесії все одно має пріоритет над конфігурацією в будь-якому напрямку. -Якщо ізольований запуск натрапляє на live-передавання керування перемиканню моделі, cron повторює спробу з -перемкненим провайдером/моделлю та зберігає цей активний вибір перед повтором. Коли перемикання -також містить новий профіль автентифікації, cron зберігає і це перевизначення профілю автентифікації. -Кількість повторів обмежена: після початкової спроби та ще 2 повторів через перемикання cron перериває роботу, -а не входить у нескінченний цикл. +Якщо ізольований запуск потрапляє на живе передавання керування під час перемикання моделі, cron повторює спробу з +перемкненим провайдером/моделлю та зберігає цей активний вибір перед повторною спробою. Коли +перемикання також несе новий профіль автентифікації, cron також зберігає це перевизначення профілю автентифікації. +Кількість повторних спроб обмежена: після початкової спроби та ще 2 повторних спроб через перемикання +cron переривається, а не зациклюється назавжди. -## Доставка та вивід +## Доставлення і результат -| Режим | Що відбувається | -| ---------- | -------------------------------------------------------- | -| `announce` | Доставити підсумок у цільовий канал (типово для isolated) | -| `webhook` | Надіслати payload події завершення методом POST на URL | -| `none` | Лише внутрішнє використання, без доставки | +| Режим | Що відбувається | +| ---------- | ------------------------------------------------------------------ | +| `announce` | Запасне доставлення фінального тексту до цілі, якщо агент не надіслав | +| `webhook` | POST payload завершеної події на URL | +| `none` | Немає запасного доставлення з боку runner | -Використовуйте `--announce --channel telegram --to "-1001234567890"` для доставки в канал. Для тем форуму Telegram використовуйте `-1001234567890:topic:123`. Для цілей Slack/Discord/Mattermost слід використовувати явні префікси (`channel:`, `user:`). +Використовуйте `--announce --channel telegram --to "-1001234567890"` для доставлення в канал. Для тем форуму Telegram використовуйте `-1001234567890:topic:123`. Цілі Slack/Discord/Mattermost мають використовувати явні префікси (`channel:`, `user:`). -Для ізольованих завдань, що належать cron, runner володіє фінальним шляхом доставки. Агент -отримує запит повернути підсумок у вигляді простого тексту, а потім цей підсумок надсилається -через `announce`, `webhook` або зберігається лише внутрішньо для `none`. `--no-deliver` -не повертає доставку під контроль агента; він залишає запуск внутрішнім. +Для ізольованих завдань доставлення в чат є спільним. Якщо маршрут чату доступний, +агент може використовувати інструмент `message` навіть коли завдання використовує `--no-deliver`. Якщо +агент надсилає повідомлення до налаштованої/поточної цілі, OpenClaw пропускає запасне +оголошення. Інакше `announce`, `webhook` і `none` лише керують тим, що +runner робить із фінальною відповіддю після ходу агента. -Якщо початкове завдання явно вказує написати якомусь зовнішньому отримувачу, агент -має зазначити, кому/куди має надійти це повідомлення, у своєму виводі, а не -намагатися надіслати його безпосередньо. - -Сповіщення про помилки використовують окремий шлях призначення: +Сповіщення про помилки йдуть окремим маршрутом призначення: - `cron.failureDestination` задає глобальне типове значення для сповіщень про помилки. -- `job.delivery.failureDestination` перевизначає це для окремого завдання. -- Якщо жодне не задано, а завдання вже доставляє через `announce`, сповіщення про помилки тепер типово використовують цю ж основну ціль `announce`. -- `delivery.failureDestination` підтримується лише для завдань із `sessionTarget="isolated"`, якщо основний режим доставки не є `webhook`. +- `job.delivery.failureDestination` перевизначає це для конкретного завдання. +- Якщо не задано жодного з них і завдання вже доставляє результат через `announce`, сповіщення про помилки тепер запасно надсилаються до цієї ж основної цілі announce. +- `delivery.failureDestination` підтримується лише для завдань із `sessionTarget="isolated"`, якщо основний режим доставлення не є `webhook`. ## Приклади CLI @@ -169,7 +166,7 @@ openclaw cron add \ --wake now ``` -Періодичне ізольоване завдання з доставкою: +Періодичне ізольоване завдання з доставленням: ```bash openclaw cron add \ @@ -199,7 +196,7 @@ openclaw cron add \ ## Webhook-и -Gateway може відкривати кінцеві точки HTTP Webhook для зовнішніх тригерів. Увімкніть це в конфігурації: +Gateway може відкривати HTTP endpoint-и Webhook для зовнішніх тригерів. Увімкніть це в конфігурації: ```json5 { @@ -213,12 +210,12 @@ Gateway може відкривати кінцеві точки HTTP Webhook д ### Автентифікація -Кожен запит має включати токен hook через заголовок: +Кожен запит має містити токен hook через заголовок: - `Authorization: Bearer ` (рекомендовано) - `x-openclaw-token: ` -Токени в рядку запиту відхиляються. +Токени в query string відхиляються. ### POST /hooks/wake @@ -247,25 +244,25 @@ curl -X POST http://127.0.0.1:18789/hooks/agent \ Поля: `message` (обов’язково), `name`, `agentId`, `wakeMode`, `deliver`, `channel`, `to`, `model`, `thinking`, `timeoutSeconds`. -### Відображені hook-и (POST /hooks/\) +### Зіставлені hook-и (POST /hooks/\) -Користувацькі назви hook-ів визначаються через `hooks.mappings` у конфігурації. Відображення можуть перетворювати довільний payload на дії `wake` або `agent` за допомогою шаблонів або перетворень коду. +Користувацькі назви hook-ів визначаються через `hooks.mappings` у конфігурації. Зіставлення можуть перетворювати довільний payload на дії `wake` або `agent` за допомогою шаблонів або кодових трансформацій. ### Безпека -- Тримайте кінцеві точки hook-ів за loopback, tailnet або довіреним reverse proxy. -- Використовуйте окремий токен hook-а; не використовуйте повторно токени автентифікації gateway. +- Тримайте endpoint-и hook-ів за loopback, tailnet або довіреним reverse proxy. +- Використовуйте окремий токен hook-ів; не використовуйте повторно токени автентифікації gateway. - Тримайте `hooks.path` на окремому підшляху; `/` відхиляється. - Встановіть `hooks.allowedAgentIds`, щоб обмежити явну маршрутизацію `agentId`. -- Тримайте `hooks.allowRequestSessionKey=false`, якщо вам не потрібні сесії, які вибирає викликаюча сторона. -- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також встановіть `hooks.allowedSessionKeyPrefixes`, щоб обмежити дозволені форми ключів сесій. -- Payload-и hook-ів типово обгортаються захисними межами. +- Тримайте `hooks.allowRequestSessionKey=false`, якщо вам не потрібні сесії, які вибирає викликач. +- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також установіть `hooks.allowedSessionKeyPrefixes`, щоб обмежити дозволені форми ключів сесії. +- Payload-и hook-ів типово обгортаються межами безпеки. ## Інтеграція Gmail PubSub -Підключіть тригери вхідних Gmail до OpenClaw через Google PubSub. +Підключіть тригери вхідної пошти Gmail до OpenClaw через Google PubSub. -**Передумови**: CLI `gcloud`, `gog` (gogcli), увімкнені hooks OpenClaw, Tailscale для публічної кінцевої точки HTTPS. +**Передумови**: CLI `gcloud`, `gog` (gogcli), увімкнені hooks OpenClaw, Tailscale для публічного HTTPS endpoint. ### Налаштування через майстер (рекомендовано) @@ -273,11 +270,11 @@ curl -X POST http://127.0.0.1:18789/hooks/agent \ openclaw webhooks gmail setup --account openclaw@gmail.com ``` -Це записує конфігурацію `hooks.gmail`, вмикає preset Gmail і використовує Tailscale Funnel для push-кінцевої точки. +Це записує конфігурацію `hooks.gmail`, вмикає preset Gmail і використовує Tailscale Funnel для push endpoint. ### Автозапуск Gateway -Коли `hooks.enabled=true` і задано `hooks.gmail.account`, Gateway під час запуску запускає `gog gmail watch serve` і автоматично поновлює watch. Щоб відмовитися, встановіть `OPENCLAW_SKIP_GMAIL_WATCHER=1`. +Коли `hooks.enabled=true` і `hooks.gmail.account` задано, Gateway під час запуску запускає `gog gmail watch serve` і автоматично поновлює watch. Установіть `OPENCLAW_SKIP_GMAIL_WATCHER=1`, щоб відмовитися від цього. ### Ручне одноразове налаштування @@ -289,7 +286,7 @@ gcloud config set project gcloud services enable gmail.googleapis.com pubsub.googleapis.com ``` -2. Створіть topic і надайте Gmail доступ на push: +2. Створіть topic і надайте Gmail доступ для push: ```bash gcloud pubsub topics create gog-gmail-watch @@ -326,6 +323,9 @@ gog gmail watch start \ # List all jobs openclaw cron list +# Show one job, including resolved delivery route +openclaw cron show + # Edit a job openclaw cron edit --message "Updated prompt" --model "opus" @@ -349,12 +349,12 @@ openclaw cron edit --clear-agent Примітка щодо перевизначення моделі: - `openclaw cron add|edit --model ...` змінює вибрану модель завдання. -- Якщо модель дозволена, саме цей провайдер/модель передається ізольованому +- Якщо модель дозволена, саме цей провайдер/модель використовується в ізольованому запуску агента. -- Якщо вона не дозволена, cron видає попередження і повертається до вибору - моделі агента/типової моделі для цього завдання. +- Якщо її не дозволено, cron попереджає й повертається до вибору моделі + агента/типової моделі завдання. - Налаштовані ланцюжки fallback, як і раніше, застосовуються, але звичайне перевизначення `--model` - без явного списку fallback для завдання більше не переходить до основної моделі агента + без явного списку fallback для конкретного завдання більше не переходить до основної моделі агента як до тихої додаткової цілі повторної спроби. ## Конфігурація @@ -377,21 +377,21 @@ openclaw cron edit --clear-agent } ``` -Файл sidecar стану виконання виводиться з `cron.store`: сховище `.json`, таке як -`~/clawd/cron/jobs.json`, використовує `~/clawd/cron/jobs-state.json`, тоді як до шляху сховища +Sidecar стану виконання виводиться з `cron.store`: сховище `.json`, таке як +`~/clawd/cron/jobs.json`, використовує `~/clawd/cron/jobs-state.json`, а до шляху сховища без суфікса `.json` додається `-state.json`. Вимкнути cron: `cron.enabled: false` або `OPENCLAW_SKIP_CRON=1`. -**Повтор одноразового завдання**: тимчасові помилки (rate limit, overload, network, server error) повторюються до 3 разів з експоненційною затримкою. Постійні помилки вимикаються негайно. +**Повтор одноразового завдання**: тимчасові помилки (обмеження швидкості, перевантаження, мережа, помилка сервера) повторюються до 3 разів з експоненційною затримкою. Постійні помилки одразу вимикають завдання. **Повтор періодичного завдання**: експоненційна затримка (від 30 с до 60 хв) між повторними спробами. Після наступного успішного запуску затримка скидається. **Обслуговування**: `cron.sessionRetention` (типово `24h`) очищає записи сесій ізольованих запусків. `cron.runLog.maxBytes` / `cron.runLog.keepLines` автоматично очищають файли журналу запусків. -## Усунення проблем +## Усунення неполадок -### Послідовність команд +### Набір команд ```bash openclaw status @@ -408,30 +408,30 @@ openclaw doctor - Перевірте `cron.enabled` і змінну середовища `OPENCLAW_SKIP_CRON`. - Переконайтеся, що Gateway працює безперервно. -- Для розкладів `cron` перевірте часовий пояс (`--tz`) у порівнянні з часовим поясом хоста. -- `reason: not-due` у виводі запуску означає, що ручний запуск було перевірено через `openclaw cron run --due`, але час виконання завдання ще не настав. +- Для розкладів `cron` перевірте часовий пояс (`--tz`) відносно часового поясу хоста. +- `reason: not-due` у виводі запуску означає, що ручний запуск було перевірено через `openclaw cron run --due`, і час виконання завдання ще не настав. -### Cron спрацював, але доставки немає +### Cron спрацював, але доставлення немає -- Режим доставки `none` означає, що зовнішнє повідомлення не очікується. -- Відсутня/некоректна ціль доставки (`channel`/`to`) означає, що вихідне надсилання було пропущено. -- Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що доставку було заблоковано обліковими даними. +- Режим доставлення `none` означає, що запасне надсилання з боку runner не очікується. Агент + усе ще може надіслати повідомлення безпосередньо через інструмент `message`, якщо маршрут чату доступний. +- Відсутня/невалідна ціль доставлення (`channel`/`to`) означає, що вихідне надсилання було пропущено. +- Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що доставлення було заблоковано обліковими даними. - Якщо ізольований запуск повертає лише silent token (`NO_REPLY` / `no_reply`), - OpenClaw пригнічує пряме вихідне надсилання, а також пригнічує резервний - шлях доставки підсумку через чергу, тому назад у чат нічого не публікується. -- Для ізольованих завдань, що належать cron, не очікуйте, що агент використовуватиме message tool - як fallback. Runner володіє фінальною доставкою; `--no-deliver` залишає її - внутрішньою замість того, щоб дозволяти пряме надсилання. + OpenClaw пригнічує пряме вихідне доставлення, а також пригнічує запасний + шлях зведення через чергу, тому назад у чат нічого не публікується. +- Якщо агент має сам надіслати повідомлення користувачу, перевірте, що завдання має придатний + маршрут (`channel: "last"` із попереднім чатом або явний канал/ціль). -### Особливості часових поясів +### Поширені проблеми з часовими поясами - Cron без `--tz` використовує часовий пояс хоста gateway. - Розклади `at` без часового поясу трактуються як UTC. -- Heartbeat `activeHours` використовує налаштоване визначення часового поясу. +- `activeHours` Heartbeat використовує налаштоване визначення часового поясу. ## Пов’язане -- [Автоматизація та завдання](/uk/automation) — усі механізми автоматизації з першого погляду +- [Автоматизація й завдання](/uk/automation) — огляд усіх механізмів автоматизації - [Фонові завдання](/uk/automation/tasks) — журнал завдань для виконань cron - [Heartbeat](/uk/gateway/heartbeat) — періодичні ходи основної сесії -- [Часовий пояс](/uk/concepts/timezone) — налаштування часового поясу +- [Часовий пояс](/uk/concepts/timezone) — конфігурація часового поясу diff --git a/docs/uk/help/faq.md b/docs/uk/help/faq.md index e865018c4..fe3589e1a 100644 --- a/docs/uk/help/faq.md +++ b/docs/uk/help/faq.md @@ -1,21 +1,21 @@ --- read_when: - - Відповіді на поширені запитання щодо налаштування, встановлення, онбордингу або підтримки під час роботи + - Відповіді на поширені запитання щодо налаштування, встановлення, онбордингу або підтримки під час виконання - Тріаж проблем, про які повідомляють користувачі, перед глибшим налагодженням summary: Поширені запитання про налаштування, конфігурацію та використання OpenClaw title: Поширені запитання x-i18n: - generated_at: "2026-04-20T18:29:30Z" + generated_at: "2026-04-21T06:32:47Z" model: gpt-5.4 provider: openai - source_hash: 8bde531507540bc91bc131c3e27d72a8be76cc53ef46a5e01aaeaf02a71cc8a2 + source_hash: 3bd1df258baa4b289bc95ba0f7757b61c1412e230d93ebb137cb7117fbc3a2f1 source_path: help/faq.md workflow: 15 --- # Поширені запитання -Швидкі відповіді плюс глибше усунення несправностей для реальних конфігурацій (локальна розробка, VPS, кілька агентів, OAuth/API-ключі, резервування моделей). Для діагностики під час роботи див. [Усунення несправностей](/uk/gateway/troubleshooting). Повний довідник з конфігурації див. у [Конфігурація](/uk/gateway/configuration). +Швидкі відповіді та глибше усунення несправностей для реальних конфігурацій (локальна розробка, VPS, кілька агентів, OAuth/API-ключі, резервне перемикання моделей). Для діагностики під час виконання див. [Усунення несправностей](/uk/gateway/troubleshooting). Для повного довідника з конфігурації див. [Конфігурація](/uk/gateway/configuration). ## Перші 60 секунд, якщо щось зламалося @@ -25,15 +25,15 @@ x-i18n: openclaw status ``` - Швидкий локальний підсумок: ОС + оновлення, доступність gateway/сервісу, агенти/сесії, конфігурація провайдера + проблеми під час роботи (коли gateway доступний). + Швидке локальне зведення: ОС + оновлення, доступність Gateway/сервісу, агенти/сеанси, конфігурація провайдера + проблеми під час виконання (коли Gateway доступний). -2. **Звіт, який можна вставити (безпечно ділитися)** +2. **Звіт, який можна вставити й поширити (безпечний для поширення)** ```bash openclaw status --all ``` - Діагностика лише для читання з хвостом логів (токени замасковані). + Діагностика лише для читання з кінцівкою журналу (токени приховано). 3. **Стан демона + порту** @@ -41,7 +41,7 @@ x-i18n: openclaw gateway status ``` - Показує стан supervisor під час роботи проти доступності RPC, цільовий URL перевірки та яку конфігурацію сервіс імовірно використовував. + Показує стан виконання супервізора порівняно з доступністю RPC, цільову URL-адресу перевірки та те, яку конфігурацію сервіс, імовірно, використовував. 4. **Глибокі перевірки** @@ -49,22 +49,22 @@ x-i18n: openclaw status --deep ``` - Виконує живу перевірку стану gateway, включно з перевірками каналів, коли це підтримується - (потрібен доступний gateway). Див. [Health](/uk/gateway/health). + Виконує живу перевірку стану Gateway, зокрема перевірки каналів, коли це підтримується + (потрібен доступний 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 (виправлення)** @@ -72,44 +72,44 @@ x-i18n: openclaw doctor ``` - Виправляє/мігрує конфігурацію/стан + виконує перевірки здоров’я. Див. [Doctor](/uk/gateway/doctor). + Виправляє/мігрує конфігурацію та стан + виконує перевірки стану. Див. [Doctor](/uk/gateway/doctor). -7. **Знімок стану gateway** +7. **Знімок стану Gateway** ```bash openclaw health --json - openclaw health --verbose # shows the target URL + config path on errors + 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, сервіси, дозволи, файли автентифікації). Надайте їм **повну копію вихідного коду** - через інсталяцію для редагування (git): + Ці інструменти можуть читати репозиторій, виконувати команди, перевіряти журнали та допомагати виправити налаштування + на рівні машини (PATH, сервіси, дозволи, файли автентифікації). Надайте їм **повну вихідну копію репозиторію** через + інсталяцію з можливістю змін (git): ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git ``` - Це встановлює OpenClaw **з git checkout**, тому агент може читати код + документацію та - аналізувати точну версію, яку ви використовуєте. Ви завжди можете повернутися до стабільної версії пізніше, + Це встановлює OpenClaw **із git-копії**, тож агент може читати код + документацію та + міркувати про точну версію, яку ви запускаєте. Ви завжди можете повернутися до стабільної версії пізніше, повторно запустивши інсталятор без `--install-method git`. - Порада: попросіть агента **спланувати та проконтролювати** виправлення (крок за кроком), а потім виконати лише - необхідні команди. Це робить зміни меншими й простішими для аудиту. + Порада: попросіть агента **спланувати та контролювати** виправлення (покроково), а потім виконати лише + потрібні команди. Так зміни залишаються невеликими, і їх легше перевіряти. - Якщо ви знайдете реальну помилку або виправлення, будь ласка, створіть issue на GitHub або надішліть 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) @@ -123,7 +123,7 @@ x-i18n: Що вони роблять: - - `openclaw status`: швидкий знімок стану gateway/агента + базова конфігурація. + - `openclaw status`: швидкий знімок стану Gateway/агента + базова конфігурація. - `openclaw models status`: перевіряє автентифікацію провайдера + доступність моделей. - `openclaw doctor`: перевіряє та виправляє поширені проблеми конфігурації/стану. @@ -131,20 +131,20 @@ x-i18n: `openclaw gateway status`, `openclaw health --verbose`. Швидкий цикл налагодження: [Перші 60 секунд, якщо щось зламалося](#перші-60-секунд-якщо-щось-зламалося). - Документація з інсталяції: [Інсталяція](/uk/install), [Прапорці інсталятора](/uk/install/installer), [Оновлення](/uk/install/updating). + Документація з встановлення: [Встановлення](/uk/install), [Прапорці інсталятора](/uk/install/installer), [Оновлення](/uk/install/updating). Поширені причини пропуску 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). @@ -158,9 +158,9 @@ x-i18n: openclaw onboard --install-daemon ``` - Майстер також може автоматично зібрати UI-ресурси. Після онбордингу ви зазвичай запускаєте Gateway на порту **18789**. + Майстер також може автоматично збирати UI-ресурси. Після онбордингу ви зазвичай запускаєте 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 dashboard одразу після онбордингу, а також виводить посилання в підсумку. Тримайте цю вкладку відкритою; якщо вона не запустилася, скопіюйте й вставте надрукований URL на тій самій машині. + + Майстер відкриває ваш браузер із чистою (без токенів) URL-адресою панелі керування одразу після онбордингу, а також друкує посилання у підсумку. Залиште цю вкладку відкритою; якщо вона не запустилася, скопіюйте та вставте надруковану URL-адресу на тій самій машині. - + **Localhost (та сама машина):** - Відкрийте `http://127.0.0.1:18789/`. - - Якщо запитується автентифікація за спільним секретом, вставте налаштований токен або пароль у налаштуваннях Control UI. + - Якщо запитується автентифікація спільним секретом, вставте налаштований токен або пароль у налаштуваннях Control UI. - Джерело токена: `gateway.auth.token` (або `OPENCLAW_GATEWAY_TOKEN`). - Джерело пароля: `gateway.auth.password` (або `OPENCLAW_GATEWAY_PASSWORD`). - - Якщо спільний секрет ще не налаштовано, згенеруйте токен за допомогою `openclaw doctor --generate-gateway-token`. + - Якщо спільний секрет ще не налаштований, згенеруйте токен за допомогою `openclaw doctor --generate-gateway-token`. **Не на localhost:** - - **Tailscale Serve** (рекомендовано): залиште loopback bind, запустіть `openclaw gateway --tailscale serve`, відкрийте `https:///`. Якщо `gateway.auth.allowTailscale` має значення `true`, заголовки ідентичності задовольняють автентифікацію Control UI/WebSocket (без вставлення спільного секрету, за умови довіреного хоста gateway); API HTTP усе одно вимагають автентифікації за спільним секретом, якщо ви свідомо не використовуєте `none` для private-ingress або HTTP-автентифікацію trusted-proxy. - Некоректні одночасні спроби автентифікації Serve від того самого клієнта серіалізуються до того, як обмежувач невдалих спроб зафіксує їх, тому друга невдала спроба вже може показувати `retry later`. - - **Bind до tailnet**: запустіть `openclaw gateway --bind tailnet --token ""` (або налаштуйте автентифікацію за паролем), відкрийте `http://:18789/`, а потім вставте відповідний спільний секрет у налаштуваннях dashboard. - - **Reverse 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** (рекомендовано): залиште прив'язку до loopback, виконайте `openclaw gateway --tailscale serve`, відкрийте `https:///`. Якщо `gateway.auth.allowTailscale` має значення `true`, заголовки ідентичності задовольняють автентифікацію Control UI/WebSocket (без вставлення спільного секрету, за умови довіреного хоста Gateway); HTTP API усе ще вимагають автентифікації спільним секретом, якщо ви навмисно не використовуєте private-ingress `none` або HTTP-автентифікацію trusted-proxy. + Паралельні невдалі спроби автентифікації Serve від того самого клієнта серіалізуються до того, як обмежувач невдалої автентифікації зафіксує їх, тому вже друга невдала повторна спроба може показати `retry later`. + - **Прив'язка до tailnet**: виконайте `openclaw gateway --bind tailnet --token ""` (або налаштуйте автентифікацію паролем), відкрийте `http://:18789/`, а потім вставте відповідний спільний секрет у налаштуваннях панелі керування. + - **Reverse 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/`. Автентифікація спільним секретом усе ще застосовується через тунель; вставте налаштований токен або пароль, якщо з’явиться запит. - Див. [Dashboard](/web/dashboard) і [Веб-поверхні](/web), щоб дізнатися про режими bind і деталі автентифікації. + Див. [Панель керування](/web/dashboard) і [Веб-поверхні](/web) для подробиць про режими прив'язки й автентифікацію. - + Вони керують різними рівнями: - - `approvals.exec`: пересилає запити на підтвердження до призначень чату - - `channels..execApprovals`: робить цей канал нативним клієнтом підтвердження для exec approvals + - `approvals.exec`: пересилає запити на затвердження до цільових чатів + - `channels..execApprovals`: робить цей канал нативним клієнтом затвердження для exec-затверджень - Політика host exec усе ще є реальним бар’єром підтвердження. Конфігурація чату лише керує тим, - де з’являються запити на підтвердження і як люди можуть на них відповідати. + Політика host exec усе ще є справжнім бар’єром затвердження. Конфігурація чату лише керує тим, + де з’являються запити на затвердження та як люди можуть на них відповідати. - У більшості конфігурацій вам **не** потрібні обидві: + У більшості конфігурацій вам **не** потрібні обидва варіанти: - - Якщо чат уже підтримує команди й відповіді, `/approve` у тому самому чаті працює через спільний шлях. - - Якщо підтримуваний нативний канал може безпечно визначити апруверів, OpenClaw тепер автоматично вмикає нативні підтвердження спочатку через DM, коли `channels..execApprovals.enabled` не задано або дорівнює `"auto"`. - - Коли доступні нативні картки/кнопки підтвердження, цей нативний UI є основним шляхом; агент має включати ручну команду `/approve` лише якщо результат інструмента каже, що chat approvals недоступні або ручне підтвердження — єдиний шлях. - - Використовуйте `approvals.exec` лише тоді, коли запити також потрібно пересилати в інші чати або в окремі кімнати для ops. - - Використовуйте `channels..execApprovals.target: "channel"` або `"both"` лише якщо ви явно хочете, щоб запити на підтвердження публікувалися назад у початкову кімнату/тему. - - Підтвердження Plugin — це ще окрема категорія: вони типово використовують `/approve` у тому самому чаті, необов’язкове пересилання `approvals.plugin`, і лише деякі нативні канали додатково зберігають нативну обробку plugin-підтверджень. + - Якщо чат уже підтримує команди та відповіді, `/approve` у тому самому чаті працює через спільний шлях. + - Якщо підтримуваний нативний канал може безпечно визначати тих, хто затверджує, OpenClaw тепер автоматично вмикає нативні затвердження з пріоритетом DM, коли `channels..execApprovals.enabled` не задано або має значення `"auto"`. + - Коли доступні нативні картки/кнопки затвердження, цей нативний UI є основним шляхом; агент має включати ручну команду `/approve`, лише якщо результат інструмента каже, що затвердження в чаті недоступні або ручне затвердження є єдиним шляхом. + - Використовуйте `approvals.exec` лише тоді, коли запити також мають пересилатися до інших чатів або явних кімнат для операцій. + - Використовуйте `channels..execApprovals.target: "channel"` або `"both"` лише тоді, коли ви явно хочете, щоб запити на затвердження публікувалися назад у вихідну кімнату/тему. + - Затвердження Plugin — це ще окрема історія: вони за замовчуванням використовують `/approve` у тому самому чаті, необов’язкове пересилання `approvals.plugin`, і лише деякі нативні канали додатково підтримують нативну обробку plugin-затверджень. - Коротко: пересилання — це маршрутизація, конфігурація нативного клієнта — це багатший UX, специфічний для каналу. + Коротко: пересилання — для маршрутизації, конфігурація нативного клієнта — для більш зручного UX, специфічного для каналу. Див. [Exec Approvals](/uk/tools/exec-approvals). - Потрібен Node **>= 22**. Рекомендується `pnpm`. Bun **не рекомендується** для Gateway. + Потрібен Node **>= 22**. Рекомендовано `pnpm`. Bun **не рекомендовано** для Gateway. - Так. Gateway легкий — у документації вказано, що для особистого використання достатньо **512 МБ–1 ГБ RAM**, **1 ядра** і приблизно **500 МБ** - диска, а також зазначено, що **Raspberry Pi 4 може його запускати**. + Так. Gateway легкий — у документації вказано, що для особистого використання достатньо **512MB-1GB RAM**, **1 ядра** і приблизно **500MB** + дискового простору, а також зазначено, що **Raspberry Pi 4 може це запускати**. - Якщо вам потрібен додатковий запас (логи, медіа, інші сервіси), **рекомендується 2 ГБ**, але це + Якщо вам потрібен додатковий запас (журнали, медіа, інші сервіси), **рекомендовано 2GB**, але це не жорсткий мінімум. - Порада: невеликий Pi/VPS може хостити Gateway, а ви можете під’єднати **nodes** на ноутбуці/телефоні для + Порада: невеликий Pi/VPS може розміщувати Gateway, а ви можете підключати **nodes** на ноутбуці/телефоні для локального екрана/камери/canvas або виконання команд. Див. [Nodes](/uk/nodes). - - Коротко: це працює, але очікуйте шорстких країв. + + Коротко: це працює, але очікуйте певних гострих кутів. - - Використовуйте **64-бітну** ОС і Node >= 22. - - Надавайте перевагу **інсталяції для редагування (git)**, щоб можна було бачити логи й швидко оновлюватися. + - Використовуйте **64-bit** ОС і Node >= 22. + - Надавайте перевагу **інсталяції з можливістю змін (git)**, щоб мати змогу бачити журнали й швидко оновлюватися. - Починайте без каналів/Skills, а потім додавайте їх по одному. - - Якщо стикаєтеся з дивними проблемами з бінарниками, це зазвичай проблема **сумісності ARM**. + - Якщо ви стикаєтеся з дивними проблемами бінарних файлів, це зазвичай проблема **сумісності ARM**. - Документація: [Linux](/uk/platforms/linux), [Інсталяція](/uk/install). + Документація: [Linux](/uk/platforms/linux), [Встановлення](/uk/install). - - Цей екран залежить від того, чи gateway доступний і автентифікований. TUI також надсилає - «Wake up, my friend!» автоматично під час першого hatch. Якщо ви бачите цей рядок **без відповіді** - і токени залишаються на 0, агент так і не запустився. + + Цей екран залежить від доступності Gateway та проходження автентифікації. TUI також надсилає + «Wake up, my friend!» автоматично під час першого hatch. Якщо ви бачите цей рядок і **немає відповіді**, + а кількість токенів залишається 0, агент так і не запустився. 1. Перезапустіть Gateway: @@ -270,53 +270,53 @@ x-i18n: openclaw logs --follow ``` - 3. Якщо все ще зависає, виконайте: + 3. Якщо це все ще зависає, виконайте: ```bash openclaw doctor ``` - Якщо Gateway віддалений, переконайтеся, що тунель/Tailscale-з’єднання активне і що UI - вказує на правильний Gateway. Див. [Віддалений доступ](/uk/gateway/remote). + Якщо Gateway віддалений, переконайтеся, що тунель/з’єднання Tailscale активне і що UI + спрямований на правильний Gateway. Див. [Віддалений доступ](/uk/gateway/remote). - - Так. Скопіюйте **каталог стану** і **workspace**, а потім один раз запустіть Doctor. Це - збереже вашого бота «точно таким самим» (пам’ять, історію сесій, автентифікацію та стан - каналів), якщо ви скопіюєте **обидва** місця: + + Так. Скопіюйте **каталог стану** та **робочий простір**, а потім один раз запустіть Doctor. Це + збереже вашого бота «точно таким самим» (пам’ять, історію сеансів, автентифікацію та + стан каналу), якщо ви скопіюєте **обидва** розташування: 1. Встановіть OpenClaw на новій машині. 2. Скопіюйте `$OPENCLAW_STATE_DIR` (типово: `~/.openclaw`) зі старої машини. - 3. Скопіюйте ваш workspace (типово: `~/.openclaw/workspace`). + 3. Скопіюйте свій робочий простір (типово: `~/.openclaw/workspace`). 4. Запустіть `openclaw doctor` і перезапустіть сервіс Gateway. - Це зберігає конфігурацію, профілі автентифікації, облікові дані WhatsApp, сесії та пам’ять. Якщо ви працюєте - у віддаленому режимі, пам’ятайте, що session store і workspace належать хосту gateway. + Це зберігає конфігурацію, профілі автентифікації, облікові дані WhatsApp, сеанси та пам’ять. Якщо ви працюєте + у віддаленому режимі, пам’ятайте, що хост Gateway володіє сховищем сеансів і робочим простором. - **Важливо:** якщо ви лише комітите/пушите свій workspace на GitHub, ви робите резервну - копію **пам’яті + bootstrap-файлів**, але **не** історії сесій чи автентифікації. Вони зберігаються + **Важливо:** якщо ви лише комітите/надсилаєте свій робочий простір на GitHub, ви створюєте + резервну копію **пам’яті + bootstrap-файлів**, але **не** історії сеансів або автентифікації. Вони зберігаються у `~/.openclaw/` (наприклад, `~/.openclaw/agents//sessions/`). - Пов’язано: [Міграція](/uk/install/migrating), [Де що зберігається на диску](#where-things-live-on-disk), - [Workspace агента](/uk/concepts/agent-workspace), [Doctor](/uk/gateway/doctor), + Пов’язане: [Міграція](/uk/install/migrating), [Де що зберігається на диску](#where-things-live-on-disk), + [Робочий простір агента](/uk/concepts/agent-workspace), [Doctor](/uk/gateway/doctor), [Віддалений режим](/uk/gateway/remote). - Перевірте changelog на GitHub: + Перегляньте changelog на GitHub: [https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md](https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md) - Найновіші записи розташовані вгорі. Якщо верхній розділ позначено як **Unreleased**, наступний датований - розділ — це остання випущена версія. Записи згруповані за **Highlights**, **Changes** і - **Fixes** (а також за розділами docs/other, коли це потрібно). + Найновіші записи — угорі. Якщо верхній розділ позначено як **Unreleased**, то наступний датований + розділ є останньою випущеною версією. Записи згруповано за **Highlights**, **Changes** і + **Fixes** (а також за розділами документації/іншими розділами за потреби). Деякі з’єднання Comcast/Xfinity помилково блокують `docs.openclaw.ai` через Xfinity - Advanced Security. Вимкніть її або додайте `docs.openclaw.ai` до allowlist, а потім повторіть спробу. + Advanced Security. Вимкніть її або додайте `docs.openclaw.ai` до списку дозволених, а потім повторіть спробу. Будь ласка, допоможіть нам розблокувати сайт, повідомивши тут: [https://spa.xfinity.com/check_url_status](https://spa.xfinity.com/check_url_status). Якщо ви все ще не можете відкрити сайт, документація дзеркалюється на GitHub: @@ -330,19 +330,19 @@ x-i18n: - `latest` = stable - `beta` = рання збірка для тестування - Зазвичай stable-реліз спочатку потрапляє в **beta**, а потім явний - крок просування переміщує цю саму версію в `latest`. За потреби мейнтейнери також можуть - публікувати одразу в `latest`. Саме тому після просування beta і stable можуть - вказувати на **одну й ту саму версію**. + Зазвичай стабільний реліз спочатку потрапляє в **beta**, а потім явний + крок просування переводить ту саму версію в `latest`. Супроводжувачі також можуть + за потреби публікувати одразу в `latest`. Ось чому beta і stable можуть + вказувати на **ту саму версію** після просування. - Подивитися, що змінилося: + Подивіться, що змінилося: [https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md](https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md) - Однорядкові команди встановлення та різницю між beta і dev див. в accordion нижче. + Однорядкові команди для встановлення та різницю між beta і dev дивіться в акордеоні нижче. - + **Beta** — це npm dist-tag `beta` (може збігатися з `latest` після просування). **Dev** — це рухома вершина `main` (git); під час публікації вона використовує npm dist-tag `dev`. @@ -366,7 +366,7 @@ x-i18n: Є два варіанти: - 1. **Dev channel (git checkout):** + 1. **Dev-канал (git checkout):** ```bash openclaw update --channel dev @@ -374,7 +374,7 @@ x-i18n: Це перемикає вас на гілку `main` і оновлює з вихідного коду. - 2. **Інсталяція для редагування (із сайту інсталятора):** + 2. **Інсталяція з можливістю змін (із сайту інсталятора):** ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git @@ -382,7 +382,7 @@ x-i18n: Це дає вам локальний репозиторій, який можна редагувати, а потім оновлювати через git. - Якщо ви віддаєте перевагу чистому ручному clone, використовуйте: + Якщо ви віддаєте перевагу чистому ручному клонуванню, використайте: ```bash git clone https://github.com/openclaw/openclaw.git @@ -392,35 +392,35 @@ x-i18n: ``` Документація: [Оновлення](/cli/update), [Канали розробки](/uk/install/development-channels), - [Інсталяція](/uk/install). + [Встановлення](/uk/install). - - Орієнтовно: + + Приблизна оцінка: - **Встановлення:** 2–5 хвилин - - **Онбординг:** 5–15 хвилин залежно від того, скільки каналів/моделей ви налаштовуєте + - **Onboarding:** 5–15 хвилин залежно від того, скільки каналів/моделей ви налаштовуєте - Якщо все зависає, скористайтеся [Інсталятор завис?](#quick-start-and-first-run-setup) - і швидким циклом налагодження в [Я застряг](#quick-start-and-first-run-setup). + Якщо процес зависає, скористайтеся [Installer stuck](#quick-start-and-first-run-setup) + і швидким циклом налагодження у [Я застряг](#quick-start-and-first-run-setup). - Повторно запустіть інсталятор з **докладним виводом**: + Повторно запустіть інсталятор із **докладним виводом**: ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --verbose ``` - Встановлення beta з докладним виводом: + Установлення beta з докладним виводом: ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --beta --verbose ``` - Для інсталяції для редагування (git): + Для інсталяції з можливістю змін (git): ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git --verbose @@ -429,7 +429,7 @@ x-i18n: Еквівалент для Windows (PowerShell): ```powershell - # install.ps1 has no dedicated -Verbose flag yet. + # install.ps1 поки що не має окремого прапорця -Verbose. Set-PSDebug -Trace 1 & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard Set-PSDebug -Trace 0 @@ -439,17 +439,17 @@ x-i18n: - - Дві поширені проблеми у Windows: + + Дві поширені проблеми Windows: **1) помилка npm spawn git / git not found** - Установіть **Git for Windows** і переконайтеся, що `git` є у вашому PATH. - - Закрийте й знову відкрийте PowerShell, потім повторно запустіть інсталятор. + - Закрийте та знову відкрийте PowerShell, а потім повторно запустіть інсталятор. **2) після встановлення openclaw is not recognized** - - Ваша глобальна папка bin npm не додана в PATH. + - Ваша глобальна папка bin npm відсутня в PATH. - Перевірте шлях: ```powershell @@ -457,9 +457,9 @@ x-i18n: ``` - Додайте цей каталог до свого користувацького PATH (суфікс `\bin` у Windows не потрібен; у більшості систем це `%AppData%\npm`). - - Після оновлення PATH закрийте й знову відкрийте PowerShell. + - Закрийте й знову відкрийте PowerShell після оновлення PATH. - Якщо ви хочете найгладше налаштування у Windows, використовуйте **WSL2** замість нативного Windows. + Якщо вам потрібне найзручніше налаштування у Windows, використовуйте **WSL2** замість нативного Windows. Документація: [Windows](/uk/platforms/windows). @@ -469,8 +469,8 @@ x-i18n: Симптоми: - - Вивід `system.run`/`exec` відображає китайський текст як mojibake - - Та сама команда нормально виглядає в іншому профілі термінала + - вивід `system.run`/`exec` показує китайський текст як mojibake + - та сама команда виглядає нормально в іншому профілі термінала Швидкий обхідний шлях у PowerShell: @@ -494,19 +494,19 @@ x-i18n: - Використовуйте **інсталяцію для редагування (git)**, щоб повний вихідний код і документація були локально, а потім запитайте - свого бота (або Claude/Codex) _з цієї папки_, щоб він міг читати репозиторій і дати точну відповідь. + Використайте **інсталяцію з можливістю змін (git)**, щоб повний вихідний код і документація були у вас локально, а потім запитайте + свого бота (або Claude/Codex) _з цієї папки_, щоб він міг прочитати репозиторій і дати точну відповідь. ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git ``` - Докладніше: [Інсталяція](/uk/install) і [Прапорці інсталятора](/uk/install/installer). + Докладніше: [Встановлення](/uk/install) і [Прапорці інсталятора](/uk/install/installer). - Коротка відповідь: дотримуйтеся інструкції для Linux, а потім запустіть онбординг. + Коротка відповідь: дотримуйтесь інструкції для Linux, а потім запустіть onboarding. - Швидкий шлях для Linux + встановлення сервісу: [Linux](/uk/platforms/linux). - Повний покроковий посібник: [Початок роботи](/uk/start/getting-started). @@ -515,15 +515,15 @@ x-i18n: - Підійде будь-який VPS на Linux. Установіть на сервері, а потім використовуйте SSH/Tailscale для доступу до Gateway. + Підійде будь-який Linux VPS. Установіть на сервері, а потім використовуйте SSH/Tailscale для доступу до Gateway. - Інструкції: [exe.dev](/uk/install/exe-dev), [Hetzner](/uk/install/hetzner), [Fly.io](/uk/install/fly). + Посібники: [exe.dev](/uk/install/exe-dev), [Hetzner](/uk/install/hetzner), [Fly.io](/uk/install/fly). Віддалений доступ: [Віддалений Gateway](/uk/gateway/remote). - - Ми підтримуємо **хаб хостингу** з поширеними провайдерами. Виберіть одного та дотримуйтеся інструкції: + + Ми підтримуємо **хаб хостингу** з популярними провайдерами. Оберіть одного та дотримуйтесь посібника: - [VPS-хостинг](/uk/vps) (усі провайдери в одному місці) - [Fly.io](/uk/install/fly) @@ -531,11 +531,11 @@ x-i18n: - [exe.dev](/uk/install/exe-dev) Як це працює в хмарі: **Gateway працює на сервері**, а ви отримуєте до нього доступ - з ноутбука/телефона через Control UI (або Tailscale/SSH). Ваші стан + workspace - зберігаються на сервері, тому ставтеся до хоста як до джерела істини та робіть його резервні копії. + з ноутбука/телефона через Control UI (або Tailscale/SSH). Ваш стан + робочий простір + живуть на сервері, тому ставтеся до хоста як до джерела істини та створюйте його резервні копії. - Ви можете під’єднати **nodes** (Mac/iOS/Android/headless) до цього хмарного Gateway, щоб отримувати доступ - до локального екрана/камери/canvas або виконувати команди на своєму ноутбуці, залишаючи + Ви можете підключати **nodes** (Mac/iOS/Android/headless) до цього хмарного Gateway, щоб отримувати доступ + до локального екрана/камери/canvas або виконувати команди на ноутбуці, залишаючи Gateway у хмарі. Хаб: [Платформи](/uk/platforms). Віддалений доступ: [Віддалений Gateway](/uk/gateway/remote). @@ -543,10 +543,10 @@ x-i18n: - - Коротка відповідь: **можливо, але не рекомендується**. Процес оновлення може перезапустити - Gateway (що розірве активну сесію), може потребувати чистого git checkout і - може запитати підтвердження. Безпечніше запускати оновлення з оболонки як оператор. + + Коротка відповідь: **можливо, але не рекомендовано**. Процес оновлення може перезапустити + Gateway (що обриває активний сеанс), може потребувати чистого git checkout і + може запитувати підтвердження. Безпечніше запускати оновлення з оболонки як оператор. Використовуйте CLI: @@ -558,7 +558,7 @@ x-i18n: openclaw update --no-restart ``` - Якщо вам обов’язково потрібно автоматизувати це від імені агента: + Якщо вам обов’язково потрібно автоматизувати це з агента: ```bash openclaw update --yes --no-restart @@ -569,35 +569,35 @@ x-i18n: - + `openclaw onboard` — це рекомендований шлях налаштування. У **локальному режимі** він проводить вас через: - - **Налаштування моделі/автентифікації** (OAuth провайдера, API-ключі, setup-token Anthropic, а також локальні варіанти моделей, як-от LM Studio) - - Розташування **workspace** + bootstrap-файли + - **Налаштування моделі/автентифікації** (OAuth провайдера, API-ключі, токен налаштування Anthropic, а також варіанти локальних моделей, як-от LM Studio) + - Розташування **робочого простору** + bootstrap-файли - **Налаштування Gateway** (bind/port/auth/tailscale) - - **Канали** (WhatsApp, Telegram, Discord, Mattermost, Signal, iMessage, а також вбудовані channel plugin, як-от QQ Bot) + - **Канали** (WhatsApp, Telegram, Discord, Mattermost, Signal, iMessage, а також вбудовані channel Plugins, як-от QQ Bot) - **Установлення демона** (LaunchAgent у macOS; systemd user unit у Linux/WSL2) - - **Перевірки здоров’я** і вибір **Skills** + - **Перевірки стану** і вибір **Skills** - Він також попереджає, якщо ваша налаштована модель невідома або для неї бракує автентифікації. + Він також попереджає, якщо ваша налаштована модель невідома або для неї немає автентифікації. - + Ні. Ви можете запускати OpenClaw з **API-ключами** (Anthropic/OpenAI/інші) або з **лише локальними моделями**, щоб ваші дані залишалися на вашому пристрої. Підписки (Claude Pro/Max або OpenAI Codex) — це необов’язкові способи автентифікації в цих провайдерів. Для Anthropic в OpenClaw практичний поділ такий: - - **API-ключ Anthropic**: звичайна тарифікація API Anthropic - - **Claude CLI / автентифікація через підписку Claude в OpenClaw**: співробітники Anthropic + - **API-ключ Anthropic**: звичайне тарифікування Anthropic API + - **Автентифікація Claude CLI / підпискою Claude в OpenClaw**: співробітники Anthropic повідомили нам, що таке використання знову дозволене, і OpenClaw розглядає використання `claude -p` як санкціоноване для цієї інтеграції, якщо Anthropic не опублікує нову політику - Для довготривалих хостів gateway API-ключі Anthropic усе ще є більш - передбачуваним налаштуванням. OAuth OpenAI Codex явно підтримується для зовнішніх + Для довготривалих хостів Gateway API-ключі Anthropic усе ще є більш + передбачуваним варіантом налаштування. OAuth OpenAI Codex явно підтримується для зовнішніх інструментів на кшталт OpenClaw. OpenClaw також підтримує інші розміщені варіанти у стилі підписки, зокрема @@ -606,7 +606,7 @@ x-i18n: Документація: [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). @@ -614,8 +614,8 @@ x-i18n: Так. - Співробітники Anthropic повідомили нам, що використання Claude CLI у стилі OpenClaw знову дозволене, тому - OpenClaw розглядає автентифікацію через підписку Claude і використання `claude -p` як санкціоновані + Співробітники Anthropic повідомили нам, що використання Claude CLI у стилі OpenClaw знову дозволене, тож + OpenClaw вважає автентифікацію через підписку Claude і використання `claude -p` санкціонованими для цієї інтеграції, якщо Anthropic не опублікує нову політику. Якщо вам потрібне найбільш передбачуване серверне налаштування, натомість використовуйте API-ключ Anthropic. @@ -624,44 +624,44 @@ x-i18n: Так. - Співробітники 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 і далі доступний як підтримуваний шлях токена OpenClaw, але тепер OpenClaw надає перевагу повторному використанню Claude CLI та `claude -p`, коли це можливо. + Для production або багатокористувацьких навантажень автентифікація через API-ключ Anthropic все ще є + безпечнішим і більш передбачуваним вибором. Якщо вас цікавлять інші розміщені варіанти у стилі підписки в 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** вичерпано для поточного вікна. Якщо ви -використовуєте **Claude CLI**, зачекайте, поки вікно скинеться, або оновіть свій план. Якщо ви +Це означає, що вашу **квоту/ліміт швидкості Anthropic** вичерпано для поточного вікна. Якщо ви +використовуєте **Claude CLI**, дочекайтеся скидання вікна або оновіть свій план. Якщо ви використовуєте **API-ключ Anthropic**, перевірте Anthropic Console -щодо використання/білінгу та за потреби підвищте ліміти. +щодо використання/білінгу й за потреби підвищте ліміти. Якщо повідомлення конкретно таке: - `Extra usage is required for long context requests`, запит намагається використати - бета-функцію контексту 1M від Anthropic (`context1m: true`). Це працює лише тоді, коли ваші - облікові дані мають право на білінг довгого контексту (білінг за API-ключем або - шлях входу Claude в OpenClaw з увімкненим Extra Usage). + `Extra usage is required for long context requests`, запит намагається використовувати + бета-версію контексту Anthropic на 1M (`context1m: true`). Це працює лише тоді, коли ваші + облікові дані мають право на білінг довгого контексту (білінг API-ключа або + шлях входу в Claude OpenClaw з увімкненим Extra Usage). - Порада: установіть **резервну модель**, щоб OpenClaw міг продовжувати відповідати, поки провайдер обмежений за лімітом запитів. - Див. [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 і об’єднати його як неявного провайдера `amazon-bedrock`; інакше ви можете явно ввімкнути `plugins.entries.amazon-bedrock.config.discovery.enabled` або додати запис провайдера вручну. Див. [Amazon Bedrock](/uk/providers/bedrock) і [Провайдери моделей](/uk/providers/models). Якщо ви віддаєте перевагу керованому потоку ключів, OpenAI-сумісний proxy перед Bedrock теж залишається коректним варіантом. + Так. OpenClaw має вбудованого провайдера **Amazon Bedrock (Converse)**. Якщо присутні маркери середовища AWS, OpenClaw може автоматично виявити каталог потокового/текстового Bedrock і об’єднати його як неявного провайдера `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). @@ -671,63 +671,63 @@ x-i18n: - `openai/gpt-5.4` = прямий API OpenAI Platform В OpenClaw вхід через ChatGPT/Codex прив’язаний до маршруту `openai-codex/*`, - а не до прямого маршруту `openai/*`. Якщо вам потрібен прямий API-шлях в - OpenClaw, установіть `OPENAI_API_KEY` (або еквівалентну конфігурацію провайдера OpenAI). + а не до прямого маршруту `openai/*`. Якщо вам потрібен прямий шлях API в + OpenClaw, встановіть `OPENAI_API_KEY` (або еквівалентну конфігурацію провайдера OpenAI). Якщо вам потрібен вхід через ChatGPT/Codex в OpenClaw, використовуйте `openai-codex/*`. - `openai-codex/*` використовує маршрут Codex OAuth, а його доступні вікна квот - керуються OpenAI і залежать від плану. На практиці ці ліміти можуть відрізнятися від - досвіду на сайті/в застосунку ChatGPT, навіть якщо обидва прив’язані до одного облікового запису. + `openai-codex/*` використовує маршрут Codex OAuth, і доступні вікна квоти для нього + керуються OpenAI та залежать від плану. На практиці ці ліміти можуть відрізнятися від + досвіду використання сайту/застосунку ChatGPT, навіть якщо обидва прив’язані до одного акаунта. OpenClaw може показувати поточні видимі вікна використання/квоти провайдера в - `openclaw models status`, але не вигадує і не нормалізує entitlements ChatGPT web + `openclaw models status`, але не вигадує і не нормалізує entitlement’и ChatGPT web у прямий доступ до API. Якщо вам потрібен прямий шлях білінгу/лімітів OpenAI Platform, використовуйте `openai/*` з API-ключем. - Так. OpenClaw повністю підтримує **OAuth через підписку OpenAI Code (Codex)**. - OpenAI явно дозволяє використання OAuth підписки у зовнішніх інструментах/робочих процесах - на кшталт OpenClaw. Під час онбордингу можна пройти OAuth-потік за вас. + Так. OpenClaw повністю підтримує **OAuth підписки OpenAI Code (Codex)**. + 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 використовує **потік автентифікації Plugin**, а не client id або secret у `openclaw.json`. Кроки: 1. Установіть Gemini CLI локально, щоб `gemini` був у `PATH` - Homebrew: `brew install gemini-cli` - npm: `npm install -g @google/gemini-cli` - 2. Увімкніть plugin: `openclaw plugins enable google` + 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-токени в профілях автентифікації на хості 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). - - Вибирайте endpoints, прив’язані до регіону. OpenRouter надає варіанти, розміщені у США, для MiniMax, Kimi і GLM; виберіть варіант, розміщений у США, щоб зберігати дані в межах регіону. Ви все одно можете перелічувати Anthropic/OpenAI поруч із ними, використовуючи `models.mode: "merge"`, щоб резервні варіанти залишалися доступними, одночасно дотримуючись вибраного регіонального провайдера. + + Вибирайте endpoints із фіксацією регіону. 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). @@ -735,38 +735,38 @@ x-i18n: Вам потрібен **якийсь пристрій macOS**, увійшовший у Messages. Це **не обов’язково** має бути Mac mini — - підійде будь-який Mac. Для iMessage **використовуйте [BlueBubbles](/uk/channels/bluebubbles)** (рекомендовано) — сервер BlueBubbles працює на macOS, тоді як Gateway може працювати на Linux або деінде. + підійде будь-який 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 — вони надають додаткові - можливості, як-от екран/камера/canvas і `system.run` на цьому пристрої. + **Node** (супутній пристрій). Nodes не запускають Gateway — вони надають додаткові + можливості, як-от screen/camera/canvas і `system.run` на цьому пристрої. - Поширений шаблон: + Типовий шаблон: - - Gateway на Mac mini (постійно ввімкнений). - - MacBook Pro запускає застосунок macOS або хост Node і під’єднується до Gateway. - - Використовуйте `openclaw nodes status` / `openclaw nodes list`, щоб побачити його. + - Gateway на Mac mini (завжди увімкнений). + - MacBook Pro запускає застосунок macOS або хост Node і підключається до Gateway. + - Щоб побачити його, використовуйте `openclaw nodes status` / `openclaw nodes list`. Документація: [Nodes](/uk/nodes), [CLI Nodes](/cli/nodes). - - Bun **не рекомендується**. Ми спостерігаємо помилки під час виконання, особливо з WhatsApp і Telegram. - Для стабільних gateway використовуйте **Node**. + + Bun **не рекомендований**. Ми спостерігаємо помилки під час виконання, особливо з WhatsApp і Telegram. + Для стабільних Gateway використовуйте **Node**. - Якщо ви все ж хочете поекспериментувати з Bun, робіть це на gateway не для production + Якщо ви все ж хочете поекспериментувати з Bun, робіть це на не-production Gateway без WhatsApp/Telegram. @@ -778,26 +778,26 @@ x-i18n: Безпечніше (без стороннього бота): - - Напишіть своєму боту в 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`. - Сторонній варіант (менш приватний): + Сторонні сервіси (менш приватно): - - Напишіть у DM `@userinfobot` або `@getidsbot`. + - Надішліть DM `@userinfobot` або `@getidsbot`. Див. [/channels/telegram](/uk/channels/telegram#access-control-and-activation). - Так, через **маршрутизацію кількох агентів**. Прив’яжіть **DM** WhatsApp кожного відправника (peer `kind: "direct"`, E.164 відправника на кшталт `+15551234567`) до іншого `agentId`, щоб кожна людина мала власний workspace і session store. Відповіді все одно надходитимуть з **того самого облікового запису WhatsApp**, а контроль доступу DM (`channels.whatsapp.dmPolicy` / `channels.whatsapp.allowFrom`) є глобальним для кожного облікового запису WhatsApp. Див. [Маршрутизація кількох агентів](/uk/concepts/multi-agent) і [WhatsApp](/uk/channels/whatsapp). + Так, через **маршрутизацію кількох агентів**. Прив’яжіть **DM** WhatsApp кожного відправника (peer `kind: "direct"`, sender E.164 на кшталт `+15551234567`) до іншого `agentId`, щоб кожна людина мала власний робочий простір і сховище сеансів. Відповіді все одно надходитимуть з **того самого акаунта WhatsApp**, а контроль доступу DM (`channels.whatsapp.dmPolicy` / `channels.whatsapp.allowFrom`) є глобальним для кожного акаунта WhatsApp. Див. [Маршрутизація кількох агентів](/uk/concepts/multi-agent) і [WhatsApp](/uk/channels/whatsapp). - - Так. Використовуйте маршрутизацію кількох агентів: надайте кожному агенту власну модель за замовчуванням, а потім прив’яжіть вхідні маршрути (обліковий запис провайдера або конкретних peers) до кожного агента. Приклад конфігурації наведено в [Маршрутизація кількох агентів](/uk/concepts/multi-agent). Див. також [Моделі](/uk/concepts/models) і [Конфігурація](/uk/gateway/configuration). + + Так. Використовуйте маршрутизацію кількох агентів: задайте кожному агенту власну модель за замовчуванням, а потім прив’яжіть вхідні маршрути (акаунт провайдера або конкретні peers) до кожного агента. Приклад конфігурації є в [Маршрутизація кількох агентів](/uk/concepts/multi-agent). Див. також [Моделі](/uk/concepts/models) і [Конфігурація](/uk/gateway/configuration). @@ -810,25 +810,25 @@ x-i18n: brew install ``` - Якщо ви запускаєте OpenClaw через systemd, переконайтеся, що PATH сервісу містить `/home/linuxbrew/.linuxbrew/bin` (або ваш префікс brew), щоб інструменти, встановлені через `brew`, розв’язувалися в non-login оболонках. - Останні збірки також додають на початок поширені користувацькі каталоги bin у 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`, якщо вони задані. + Якщо ви запускаєте OpenClaw через systemd, переконайтеся, що PATH сервісу містить `/home/linuxbrew/.linuxbrew/bin` (або ваш префікс brew), щоб інструменти, встановлені через `brew`, знаходилися в non-login shells. + Останні збірки також додають на початок типові користувацькі bin-каталоги в 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`, якщо вони задані. - - - **Інсталяція git для редагування:** повний checkout вихідного коду, можна редагувати, найкраще для контриб’юторів. - Ви локально запускаєте збірки й можете вносити зміни в код/документацію. - - **npm install:** глобальне встановлення CLI, без репозиторію, найкраще для сценарію «просто запустити». - Оновлення надходять через npm dist-tags. + + - **Інсталяція hackable (git):** повна копія вихідного коду, можна редагувати, найкраще для контриб’юторів. + Ви локально запускаєте збірки й можете патчити код/документацію. + - **npm install:** глобальне встановлення CLI, без репозиторію, найкраще для варіанту «просто запустити». + Оновлення надходять із npm dist-tags. Документація: [Початок роботи](/uk/start/getting-started), [Оновлення](/uk/install/updating). - - Так. Установіть інший варіант, а потім запустіть Doctor, щоб сервіс gateway вказував на нову точку входу. - Це **не видаляє ваші дані** — змінюється лише інсталяція коду OpenClaw. Ваш стан - (`~/.openclaw`) і workspace (`~/.openclaw/workspace`) залишаються недоторканими. + + Так. Установіть інший варіант, а потім запустіть Doctor, щоб сервіс Gateway вказував на нову точку входу. + Це **не видаляє ваші дані** — воно лише змінює інсталяцію коду OpenClaw. Ваш стан + (`~/.openclaw`) і робочий простір (`~/.openclaw/workspace`) залишаються недоторканими. З npm на git: @@ -849,67 +849,67 @@ x-i18n: openclaw gateway restart ``` - Doctor виявляє невідповідність точки входу сервісу gateway і пропонує переписати конфігурацію сервісу відповідно до поточного встановлення (у сценаріях автоматизації використовуйте `--repair`). + Doctor виявляє невідповідність точки входу сервісу Gateway і пропонує переписати конфігурацію сервісу відповідно до поточної інсталяції (використовуйте `--repair` для автоматизації). Поради щодо резервного копіювання: див. [Стратегія резервного копіювання](#where-things-live-on-disk). - Коротка відповідь: **якщо вам потрібна надійність 24/7, використовуйте VPS**. Якщо вам потрібне - мінімальне тертя і вас влаштовують сон/перезапуски, запускайте локально. + Коротка відповідь: **якщо вам потрібна надійність 24/7, використовуйте VPS**. Якщо вам потрібен + мінімальний поріг входу й ви не проти сну/перезапусків, запускайте локально. **Ноутбук (локальний Gateway)** - - **Переваги:** немає витрат на сервер, прямий доступ до локальних файлів, видиме вікно браузера. - - **Недоліки:** сон/обриви мережі = відключення, оновлення/перезавантаження ОС переривають роботу, машина має залишатися активною. + - **Плюси:** без витрат на сервер, прямий доступ до локальних файлів, живе вікно браузера. + - **Мінуси:** сон/обриви мережі = роз’єднання, оновлення/перезавантаження ОС переривають роботу, комп’ютер має залишатися активним. **VPS / хмара** - - **Переваги:** завжди ввімкнено, стабільна мережа, немає проблем через сон ноутбука, простіше підтримувати роботу. - - **Недоліки:** часто headless-режим (використовуйте знімки екрана), лише віддалений доступ до файлів, для оновлень потрібно SSH. + - **Плюси:** завжди увімкнений, стабільна мережа, немає проблем зі сном ноутбука, легше підтримувати безперервну роботу. + - **Мінуси:** часто працює без графічного інтерфейсу (використовуйте скріншоти), лише віддалений доступ до файлів, для оновлень потрібен SSH. - **Примітка для OpenClaw:** WhatsApp/Telegram/Slack/Mattermost/Discord чудово працюють з VPS. Єдиний реальний компроміс — **headless 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** для локальних інструментів екрана/камери/exec. Див. [Nodes](/uk/nodes). + Для рекомендацій із безпеки прочитайте [Безпека](/uk/gateway/security). - + OpenClaw легкий. Для базового Gateway + одного каналу чату: - - **Абсолютний мінімум:** 1 vCPU, 1 ГБ RAM, ~500 МБ диска. - - **Рекомендовано:** 1–2 vCPU, 2 ГБ RAM або більше із запасом (логи, медіа, кілька каналів). Інструменти Node і автоматизація браузера можуть бути вимогливими до ресурсів. + - **Абсолютний мінімум:** 1 vCPU, 1GB RAM, ~500MB диска. + - **Рекомендовано:** 1–2 vCPU, 2GB RAM або більше із запасом (журнали, медіа, кілька каналів). Інструменти Node і автоматизація браузера можуть бути ресурсомісткими. - ОС: використовуйте **Ubuntu LTS** (або будь-який сучасний Debian/Ubuntu). Шлях встановлення для Linux там протестовано найкраще. + ОС: використовуйте **Ubuntu LTS** (або будь-який сучасний Debian/Ubuntu). Шлях інсталяції для Linux найкраще протестовано саме там. Документація: [Linux](/uk/platforms/linux), [VPS-хостинг](/uk/vps). - Так. Ставтеся до VM так само, як до VPS: вона має бути завжди ввімкненою, доступною і мати достатньо - RAM для Gateway та всіх каналів, які ви вмикаєте. + Так. Ставтеся до VM так само, як до VPS: вона має бути завжди увімкненою, доступною та мати достатньо + RAM для Gateway і будь-яких каналів, які ви ввімкнете. Базові рекомендації: - - **Абсолютний мінімум:** 1 vCPU, 1 ГБ RAM. - - **Рекомендовано:** 2 ГБ RAM або більше, якщо ви запускаєте кілька каналів, автоматизацію браузера чи медіаінструменти. + - **Абсолютний мінімум:** 1 vCPU, 1GB RAM. + - **Рекомендовано:** 2GB RAM або більше, якщо ви запускаєте кілька каналів, автоматизацію браузера чи медіаінструменти. - **ОС:** Ubuntu LTS або інший сучасний Debian/Ubuntu. - Якщо ви працюєте у Windows, **WSL2 — найпростіше налаштування у стилі VM** і має найкращу - сумісність інструментів. Див. [Windows](/uk/platforms/windows), [VPS-хостинг](/uk/vps). + Якщо ви працюєте у Windows, **WSL2 — це найпростіший варіант у стилі VM** і він має найкращу + сумісність з інструментами. Див. [Windows](/uk/platforms/windows), [VPS-хостинг](/uk/vps). Якщо ви запускаєте macOS у VM, див. [macOS VM](/uk/install/macos-vm). @@ -919,27 +919,27 @@ x-i18n: - OpenClaw — це персональний AI-помічник, який ви запускаєте на власних пристроях. Він відповідає в тих поверхнях обміну повідомленнями, якими ви вже користуєтеся (WhatsApp, Telegram, Slack, Mattermost, Discord, Google Chat, Signal, iMessage, WebChat і вбудовані channel plugin, як-от QQ Bot), а також може працювати з голосом + живим Canvas на підтримуваних платформах. **Gateway** — це постійно ввімкнена контрольна площина; помічник — це сам продукт. + OpenClaw — це персональний AI-помічник, якого ви запускаєте на власних пристроях. Він відповідає в тих середовищах обміну повідомленнями, якими ви вже користуєтеся (WhatsApp, Telegram, Slack, Mattermost, Discord, Google Chat, Signal, iMessage, WebChat, а також вбудовані channel Plugins, як-от QQ Bot) і також може працювати з голосом + живим Canvas на підтримуваних платформах. **Gateway** — це завжди увімкнена площина керування; помічник і є продуктом. - OpenClaw — це не «просто обгортка для Claude». Це **локальна контрольна площина з пріоритетом локальності**, яка дає змогу запускати - потужного помічника на **вашому власному обладнанні**, доступного з чат-застосунків, якими ви вже користуєтеся, з - сесійним станом, пам’яттю та інструментами — без передачі контролю над вашими робочими процесами розміщеному + OpenClaw — це не «просто обгортка над Claude». Це **локальна насамперед площина керування**, яка дає змогу запускати + потужного помічника на **вашому власному обладнанні**, доступного з тих чат-застосунків, якими ви вже користуєтеся, з + сесійною історією, пам’яттю та інструментами — без передавання контролю над вашими процесами розміщеному SaaS. Основні переваги: - - **Ваші пристрої, ваші дані:** запускайте Gateway де завгодно (Mac, Linux, VPS) і зберігайте - workspace + історію сесій локально. - - **Справжні канали, а не веб-пісочниця:** WhatsApp/Telegram/Slack/Discord/Signal/iMessage тощо, + - **Ваші пристрої, ваші дані:** запускайте Gateway там, де хочете (Mac, Linux, VPS), і зберігайте + робочий простір + історію сеансів локально. + - **Реальні канали, а не веб-пісочниця:** WhatsApp/Telegram/Slack/Discord/Signal/iMessage тощо, а також мобільний голос і Canvas на підтримуваних платформах. - - **Незалежність від моделі:** використовуйте Anthropic, OpenAI, MiniMax, OpenRouter тощо, з маршрутизацією - і резервуванням на рівні агента. + - **Незалежність від моделі:** використовуйте Anthropic, OpenAI, MiniMax, OpenRouter тощо з маршрутизацією + та резервним перемиканням для кожного агента. - **Варіант лише локально:** запускайте локальні моделі, щоб **усі дані могли залишатися на вашому пристрої**, якщо ви цього хочете. - - **Маршрутизація кількох агентів:** окремі агенти для кожного каналу, облікового запису або завдання, кожен зі своїм - workspace і параметрами за замовчуванням. - - **Відкритий код і можливість змінювати:** перевіряйте, розширюйте й самостійно хостіть без vendor lock-in. + - **Маршрутизація кількох агентів:** окремі агенти для кожного каналу, акаунта або завдання, кожен із власним + робочим простором і параметрами за замовчуванням. + - **Відкритий код і можливість змін:** перевіряйте, розширюйте й self-host без vendor lock-in. Документація: [Gateway](/uk/gateway), [Канали](/uk/channels), [Кілька агентів](/uk/concepts/multi-agent), [Пам’ять](/uk/concepts/memory). @@ -947,36 +947,36 @@ x-i18n: - Гарні перші проєкти: + Хороші перші проєкти: - Створити вебсайт (WordPress, Shopify або простий статичний сайт). - - Прототипувати мобільний застосунок (структура, екрани, план API). - - Організувати файли та папки (очищення, іменування, теги). - - Підключити Gmail і автоматизувати зведення або подальші дії. + - Зробити прототип мобільного застосунку (структура, екрани, план API). + - Упорядкувати файли та папки (очищення, іменування, теги). + - Підключити Gmail та автоматизувати підсумки або подальші дії. - Він може обробляти великі завдання, але найкраще працює, коли ви розбиваєте їх на етапи й + Він може працювати з великими завданнями, але найкраще це вдається, коли ви ділите їх на фази й використовуєте субагентів для паралельної роботи. - - Щоденні виграші зазвичай виглядають так: + + Щоденна користь зазвичай виглядає так: - - **Персональні зведення:** підсумки вхідних повідомлень, календаря та новин, які вас цікавлять. - - **Дослідження та чернетки:** швидкі дослідження, підсумки й перші чернетки листів або документів. - - **Нагадування та подальші дії:** поштовхи й чеклісти на основі cron або Heartbeat. - - **Автоматизація браузера:** заповнення форм, збирання даних і повторення вебзавдань. + - **Персональні брифінги:** підсумки пошти, календаря та новин, які вас цікавлять. + - **Дослідження й чернетки:** швидкі дослідження, підсумки й перші чернетки для листів або документів. + - **Нагадування та подальші дії:** підказки й чеклісти, керовані Cron або Heartbeat. + - **Автоматизація браузера:** заповнення форм, збір даних і повторювані веб-завдання. - **Координація між пристроями:** надішліть завдання з телефона, дозвольте Gateway виконати його на сервері та отримайте результат назад у чаті. - + Так — для **дослідження, кваліфікації та створення чернеток**. Він може сканувати сайти, складати короткі списки, - підсумовувати потенційних клієнтів і писати чернетки outreach або рекламних текстів. + узагальнювати інформацію про потенційних клієнтів і писати чернетки для outreach або рекламних текстів. - Для **outreach або запуску реклами** тримайте людину в циклі. Уникайте спаму, дотримуйтесь місцевих законів і + Для **outreach або запуску реклами** залишайте людину в циклі. Уникайте спаму, дотримуйтесь місцевих законів і політик платформ та перевіряйте все перед надсиланням. Найбезпечніший шаблон — дозволити - OpenClaw створити чернетку, а вам — затвердити її. + OpenClaw робити чернетку, а вам — затверджувати. Документація: [Безпека](/uk/gateway/security). @@ -984,15 +984,15 @@ x-i18n: OpenClaw — це **персональний помічник** і рівень координації, а не заміна IDE. Використовуйте - Claude Code або Codex для найшвидшого прямого циклу кодування в репозиторії. Використовуйте OpenClaw, коли вам - потрібні стійка пам’ять, доступ між пристроями та оркестрація інструментів. + Claude Code або Codex для найшвидшого прямого циклу кодування всередині репозиторію. Використовуйте OpenClaw, коли вам + потрібні довготривала пам’ять, доступ із різних пристроїв і оркестрація інструментів. Переваги: - - **Постійна пам’ять + workspace** між сесіями + - **Постійна пам’ять + робочий простір** між сеансами - **Доступ із кількох платформ** (WhatsApp, Telegram, TUI, WebChat) - **Оркестрація інструментів** (браузер, файли, планування, hooks) - - **Постійно ввімкнений Gateway** (запуск на VPS, взаємодія звідусіль) + - **Завжди увімкнений Gateway** (запускайте на VPS, взаємодійте звідусіль) - **Nodes** для локального браузера/екрана/камери/exec Вітрина: [https://openclaw.ai/showcase](https://openclaw.ai/showcase) @@ -1003,69 +1003,69 @@ x-i18n: ## Skills і автоматизація - - Використовуйте керовані overrides замість редагування копії в репозиторії. Помістіть свої зміни в `~/.openclaw/skills//SKILL.md` (або додайте папку через `skills.load.extraDirs` у `~/.openclaw/openclaw.json`). Пріоритет такий: `/skills` → `/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → вбудовані → `skills.load.extraDirs`, тому керовані overrides все одно мають вищий пріоритет за вбудовані 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` → вбудовані → `skills.load.extraDirs`, тому керовані перевизначення все одно мають пріоритет над вбудованими skills без зміни git. Якщо вам потрібно, щоб skill був установлений глобально, але видимий лише для певних агентів, тримайте спільну копію в `~/.openclaw/skills` і керуйте видимістю через `agents.defaults.skills` і `agents.list[].skills`. Лише зміни, гідні апстриму, мають жити в репозиторії й надсилатися як 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` → вбудовані → `skills.load.extraDirs`. `clawhub` установлює у `./skills` за замовчуванням, і OpenClaw обробляє це як `/skills` у наступному сеансі. Якщо skill має бути видимим лише для певних агентів, поєднуйте це з `agents.defaults.skills` або `agents.list[].skills`. - + Сьогодні підтримуються такі шаблони: - - **Cron jobs**: ізольовані завдання можуть задавати override `model` для кожного завдання. + - **Завдання Cron**: ізольовані завдання можуть задавати перевизначення `model` для кожного завдання. - **Субагенти**: маршрутизуйте завдання до окремих агентів з різними моделями за замовчуванням. - - **Перемикання на вимогу**: використовуйте `/model`, щоб у будь-який момент змінити модель поточної сесії. + - **Перемикання на вимогу**: використовуйте `/model`, щоб у будь-який момент змінити модель поточного сеансу. - Див. [Cron jobs](/uk/automation/cron-jobs), [Маршрутизація кількох агентів](/uk/concepts/multi-agent) і [Slash commands](/uk/tools/slash-commands). + Див. [Завдання Cron](/uk/automation/cron-jobs), [Маршрутизація кількох агентів](/uk/concepts/multi-agent) і [Slash-команди](/uk/tools/slash-commands). - - Використовуйте **субагентів** для довгих або паралельних завдань. Субагенти працюють у власній сесії, - повертають підсумок і зберігають основний чат чутливим до відповіді. + + Використовуйте **субагентів** для довгих або паралельних завдань. Субагенти працюють у власному сеансі, + повертають підсумок і зберігають чутливість вашого основного чату. Попросіть свого бота «spawn a sub-agent for this task» або використайте `/subagents`. - Використовуйте `/status` у чаті, щоб бачити, що Gateway робить зараз (і чи він зайнятий). + Використовуйте `/status` у чаті, щоб бачити, що Gateway робить прямо зараз (і чи він зайнятий). - Порада щодо токенів: і довгі завдання, і субагенти витрачають токени. Якщо важлива вартість, задайте + Порада щодо токенів: і довгі завдання, і субагенти споживають токени. Якщо вас турбує вартість, задайте дешевшу модель для субагентів через `agents.defaults.subagents.model`. - Документація: [Sub-agents](/uk/tools/subagents), [Фонові завдання](/uk/automation/tasks). + Документація: [Субагенти](/uk/tools/subagents), [Фонові завдання](/uk/automation/tasks). - - Використовуйте прив’язки до гілок. Ви можете прив’язати гілку Discord до субагента або цілі сесії, щоб подальші повідомлення в цій гілці залишалися на цій прив’язаній сесії. + + Використовуйте прив’язки до тредів. Ви можете прив’язати тред Discord до субагента або цілі сеансу, щоб наступні повідомлення в цьому треді залишалися в межах прив’язаного сеансу. Базовий процес: - - Створіть через `sessions_spawn` з `thread: true` (і за потреби `mode: "session"` для постійших подальших повідомлень). - - Або прив’яжіть вручну за допомогою `/focus `. - - Використовуйте `/agents`, щоб перевірити стан прив’язки. - - Використовуйте `/session idle ` і `/session max-age `, щоб керувати автоматичним зняттям фокусу. - - Використовуйте `/unfocus`, щоб від’єднати гілку. + - Створіть через `sessions_spawn` з `thread: true` (і за бажанням `mode: "session"` для постійших подальших повідомлень). + - Або прив’яжіть вручну через `/focus `. + - Використовуйте `/agents`, щоб переглядати стан прив’язки. + - Використовуйте `/session idle ` і `/session max-age `, щоб керувати автоматичним зняттям фокуса. + - Використовуйте `/unfocus`, щоб від’єднати тред. Потрібна конфігурація: - Глобальні параметри за замовчуванням: `session.threadBindings.enabled`, `session.threadBindings.idleHours`, `session.threadBindings.maxAgeHours`. - - Overrides Discord: `channels.discord.threadBindings.enabled`, `channels.discord.threadBindings.idleHours`, `channels.discord.threadBindings.maxAgeHours`. - - Автоприв’язка під час створення: установіть `channels.discord.threadBindings.spawnSubagentSessions: true`. + - Перевизначення Discord: `channels.discord.threadBindings.enabled`, `channels.discord.threadBindings.idleHours`, `channels.discord.threadBindings.maxAgeHours`. + - Автоприв’язка під час створення: задайте `channels.discord.threadBindings.spawnSubagentSessions: true`. - Документація: [Sub-agents](/uk/tools/subagents), [Discord](/uk/channels/discord), [Configuration Reference](/uk/gateway/configuration-reference), [Slash commands](/uk/tools/slash-commands). + Документація: [Субагенти](/uk/tools/subagents), [Discord](/uk/channels/discord), [Довідник із конфігурації](/uk/gateway/configuration-reference), [Slash-команди](/uk/tools/slash-commands). - + Спочатку перевірте розв’язаний маршрут запитувача: - - Доставка субагента в режимі завершення віддає перевагу будь-якій прив’язаній гілці або маршруту розмови, якщо такий існує. - - Якщо джерело завершення містить лише канал, OpenClaw повертається до збереженого маршруту сесії запитувача (`lastChannel` / `lastTo` / `lastAccountId`), щоб пряма доставка все ще могла спрацювати. - - Якщо немає ні прив’язаного маршруту, ні придатного збереженого маршруту, пряма доставка може завершитися невдачею, і результат замість негайної публікації в чаті переходить до доставки через чергу сесії. - - Некоректні або застарілі цілі все одно можуть примусово спричинити перехід до черги або остаточну помилку доставки. - - Якщо остання видима відповідь помічника дитини — це точний тихий токен `NO_REPLY` / `no_reply` або точно `ANNOUNCE_SKIP`, OpenClaw навмисно пригнічує анонс замість публікації застарілого попереднього прогресу. - - Якщо дитина завершилася за тайм-аутом після самих лише викликів інструментів, анонс може згорнути це в короткий підсумок часткового прогресу замість відтворення сирого виводу інструментів. + - Доставка субагента в режимі завершення надає перевагу будь-якому прив’язаному треду або маршруту розмови, якщо такий існує. + - Якщо джерело завершення містить лише канал, OpenClaw використовує як запасний варіант збережений маршрут сеансу запитувача (`lastChannel` / `lastTo` / `lastAccountId`), щоб пряма доставка все ще могла спрацювати. + - Якщо немає ні прив’язаного маршруту, ні придатного збереженого маршруту, пряма доставка може не вдатися, і результат замість негайної публікації в чаті перейде до доставки через чергу сеансу. + - Неприпустимі або застарілі цілі все одно можуть примусово перевести процес до запасного варіанта через чергу або до остаточного збою доставки. + - Якщо остання видима відповідь помічника дочірнього агента — це точний silent token `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). + Документація: [Субагенти](/uk/tools/subagents), [Фонові завдання](/uk/automation/tasks), [Інструмент сеансів](/uk/concepts/session-tool). Cron виконується всередині процесу Gateway. Якщо Gateway не працює безперервно, - заплановані завдання не виконуватимуться. + заплановані завдання не запускатимуться. Контрольний список: - - Підтвердьте, що cron увімкнено (`cron.enabled`) і `OPENCLAW_SKIP_CRON` не встановлено. + - Переконайтеся, що cron увімкнено (`cron.enabled`) і `OPENCLAW_SKIP_CRON` не задано. - Переконайтеся, що Gateway працює 24/7 (без сну/перезапусків). - - Перевірте налаштування часового поясу для завдання (`--tz` проти часового поясу хоста). + - Перевірте налаштування часового поясу для завдання (`--tz` порівняно з часовим поясом хоста). Налагодження: @@ -1094,22 +1094,21 @@ x-i18n: openclaw cron runs --id --limit 50 ``` - Документація: [Cron jobs](/uk/automation/cron-jobs), [Автоматизація та завдання](/uk/automation). + Документація: [Завдання Cron](/uk/automation/cron-jobs), [Автоматизація та завдання](/uk/automation). Спочатку перевірте режим доставки: - - `--no-deliver` / `delivery.mode: "none"` означає, що жодного зовнішнього повідомлення не очікується. - - Відсутня або некоректна ціль анонсу (`channel` / `to`) означає, що runner пропустив вихідну доставку. - - Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що runner намагався доставити, але облікові дані заблокували це. - - Тихий ізольований результат (`NO_REPLY` / `no_reply` only) вважається навмисно недоставним, тому runner також пригнічує резервну доставку через чергу. + - `--no-deliver` / `delivery.mode: "none"` означає, що запасне надсилання з боку виконавця не очікується. + - Відсутня або неприпустима ціль сповіщення (`channel` / `to`) означає, що виконавець пропустив вихідну доставку. + - Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що виконавець намагався доставити повідомлення, але облікові дані це заблокували. + - Тихий ізольований результат (`NO_REPLY` / `no_reply` тільки) вважається навмисно недоставлюваним, тому виконавець також пригнічує запасну доставку через чергу. - Для ізольованих Cron jobs runner керує остаточною доставкою. Очікується, що агент - поверне звичайний текстовий підсумок, який runner зможе надіслати. `--no-deliver` зберігає - цей результат внутрішнім; він не дозволяє агенту натомість напряму надсилати через - message tool. + Для ізольованих завдань cron агент усе ще може надсилати напряму за допомогою інструмента `message`, + коли доступний маршрут чату. `--announce` керує лише запасним шляхом виконавця + для фінального тексту, який агент ще не надіслав сам. Налагодження: @@ -1118,27 +1117,27 @@ x-i18n: openclaw tasks show ``` - Документація: [Cron jobs](/uk/automation/cron-jobs), [Фонові завдання](/uk/automation/tasks). + Документація: [Завдання Cron](/uk/automation/cron-jobs), [Фонові завдання](/uk/automation/tasks). - - Зазвичай це шлях live-перемикання моделі, а не дубльоване планування. + + Зазвичай це шлях живого перемикання моделі, а не дублювання планування. - Ізольований cron може зберегти передачу моделі під час виконання і повторити спробу, коли активний - запуск викидає `LiveSessionModelSwitchError`. Повторна спроба зберігає перемкненого - провайдера/модель, а якщо перемикання несло новий override профілю автентифікації, cron - також зберігає це перед повторною спробою. + Ізольований cron може зберегти передачу моделі під час виконання й повторити спробу, коли активний + запуск викидає `LiveSessionModelSwitchError`. Повторна спроба зберігає переключеного + провайдера/модель, а якщо перемикання містило нове перевизначення профілю автентифікації, cron + також зберігає його перед повторною спробою. Пов’язані правила вибору: - - Override моделі Gmail hook має найвищий пріоритет, коли застосовується. - - Далі — `model` для кожного завдання. - - Потім будь-який збережений override моделі сесії cron. + - Спочатку має пріоритет перевизначення моделі hook Gmail, якщо воно застосовується. + - Потім `model` для конкретного завдання. + - Потім будь-яке збережене перевизначення моделі сеансу cron. - Потім звичайний вибір моделі агента/за замовчуванням. Цикл повторних спроб обмежений. Після початкової спроби плюс 2 повторних спроб перемикання - cron припиняє роботу замість нескінченного циклу. + cron переривається, а не зациклюється назавжди. Налагодження: @@ -1147,13 +1146,13 @@ x-i18n: openclaw tasks show ``` - Документація: [Cron jobs](/uk/automation/cron-jobs), [CLI cron](/cli/cron). + Документація: [Завдання Cron](/uk/automation/cron-jobs), [CLI cron](/cli/cron). - - Використовуйте нативні команди `openclaw skills` або поміщайте Skills у свій workspace. UI Skills для macOS недоступний на Linux. - Переглядати Skills можна на [https://clawhub.ai](https://clawhub.ai). + + Використовуйте нативні команди `openclaw skills` або просто поміщайте skills у свій робочий простір. UI Skills для macOS недоступний на Linux. + Переглянути skills можна на [https://clawhub.ai](https://clawhub.ai). ```bash openclaw skills search "calendar" @@ -1167,40 +1166,40 @@ x-i18n: ``` Нативний `openclaw skills install` записує в каталог `skills/` - активного workspace. Окремий CLI `clawhub` встановлюйте лише якщо хочете публікувати або - синхронізувати власні Skills. Для спільних встановлень між агентами помістіть Skill у + активного робочого простору. Окремий CLI `clawhub` потрібен лише тоді, коли ви хочете публікувати або + синхронізувати власні skills. Для спільних інсталяцій між агентами помістіть skill у `~/.openclaw/skills` і використовуйте `agents.defaults.skills` або - `agents.list[].skills`, якщо хочете звузити перелік агентів, які можуть його бачити. + `agents.list[].skills`, якщо хочете звузити набір агентів, які можуть його бачити. Так. Використовуйте планувальник Gateway: - - **Cron jobs** для запланованих або повторюваних завдань (зберігаються після перезапусків). - - **Heartbeat** для періодичних перевірок «основної сесії». - - **Ізольовані завдання** для автономних агентів, які публікують підсумки або доставляють їх у чати. + - **Завдання Cron** для запланованих або повторюваних завдань (зберігаються після перезапусків). + - **Heartbeat** для періодичних перевірок «основного сеансу». + - **Ізольовані завдання** для автономних агентів, які публікують підсумки або доставляють повідомлення в чати. - Документація: [Cron jobs](/uk/automation/cron-jobs), [Автоматизація та завдання](/uk/automation), + Документація: [Завдання Cron](/uk/automation/cron-jobs), [Автоматизація та завдання](/uk/automation), [Heartbeat](/uk/gateway/heartbeat). - - Не напряму. Навички macOS фільтруються через `metadata.openclaw.os` плюс обов’язкові бінарники, і навички з’являються в системному prompt лише тоді, коли вони придатні на **хості Gateway**. На Linux навички лише для `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. Навички завантажаться нормально, тому що хост Gateway — це macOS. + Запустіть Gateway там, де існують бінарні файли macOS, а потім підключайтеся з Linux у [віддаленому режимі](#gateway-ports-already-running-and-remote-mode) або через Tailscale. Skills завантажуються звичайно, тому що хост Gateway — це macOS. **Варіант B — використовувати macOS Node (без SSH).** - Запустіть Gateway на Linux, під’єднайте macOS Node (menubar app) і встановіть **Node Run Commands** на «Always Ask» або «Always Allow» на Mac. OpenClaw може вважати навички лише для macOS придатними, коли потрібні бінарники існують на Node. Агент запускає ці навички через інструмент `nodes`. Якщо ви виберете «Always Ask», підтвердження «Always Allow» у запиті додає цю команду до allowlist. + Запустіть Gateway на Linux, підключіть macOS Node (застосунок менюбару) і встановіть **Node Run Commands** у значення "Always Ask" або "Always Allow" на Mac. OpenClaw може вважати skills лише для macOS придатними, коли потрібні бінарні файли існують на Node. Агент запускає ці skills через інструмент `nodes`. Якщо ви оберете "Always Ask", затвердження "Always Allow" у запиті додасть цю команду до allowlist. - **Варіант C — проксувати бінарники macOS через SSH (просунутий).** - Залиште Gateway на Linux, але зробіть так, щоб потрібні CLI-бінарники розв’язувалися у wrapper-и SSH, які запускаються на Mac. Потім перевизначте навичку так, щоб дозволити Linux і вона залишалася придатною. + **Варіант C — проксувати бінарні файли macOS через SSH (розширений).** + Залиште Gateway на Linux, але зробіть так, щоб потрібні бінарні CLI розв’язувалися в SSH-обгортки, які запускаються на Mac. Потім перевизначте skill, щоб дозволити Linux і зберегти його придатним. - 1. Створіть wrapper SSH для бінарника (приклад: `memo` для Apple Notes): + 1. Створіть SSH-обгортку для бінарного файлу (приклад: `memo` для Apple Notes): ```bash #!/usr/bin/env bash @@ -1208,8 +1207,8 @@ x-i18n: exec ssh -T user@mac-host /opt/homebrew/bin/memo "$@" ``` - 2. Додайте wrapper у `PATH` на хості Linux (наприклад `~/bin/memo`). - 3. Перевизначте метадані навички (workspace або `~/.openclaw/skills`), щоб дозволити Linux: + 2. Додайте обгортку в `PATH` на хості Linux (наприклад, `~/bin/memo`). + 3. Перевизначте metadata skill (у робочому просторі або `~/.openclaw/skills`), щоб дозволити Linux: ```markdown --- @@ -1219,59 +1218,59 @@ x-i18n: --- ``` - 4. Почніть нову сесію, щоб знімок Skills оновився. + 4. Почніть новий сеанс, щоб знімок skills оновився. - + Сьогодні вбудованої немає. Варіанти: - - **Користувацький Skill / Plugin:** найкраще для надійного доступу до API (і Notion, і HeyGen мають API). + - **Власний skill / Plugin:** найкращий варіант для надійного доступу до API (і Notion, і HeyGen мають API). - **Автоматизація браузера:** працює без коду, але повільніше й крихкіше. - Якщо ви хочете зберігати контекст для кожного клієнта (агентські робочі процеси), простий шаблон такий: + Якщо ви хочете зберігати контекст окремо для кожного клієнта (робочі процеси агентства), простий шаблон такий: - - Одна сторінка Notion на клієнта (контекст + налаштування + активна робота). - - Попросіть агента отримувати цю сторінку на початку сесії. + - Одна сторінка Notion на клієнта (контекст + уподобання + активна робота). + - Попросіть агента отримувати цю сторінку на початку сеансу. - Якщо вам потрібна нативна інтеграція, створіть feature request або реалізуйте Skill, + Якщо вам потрібна нативна інтеграція, відкрийте запит на функцію або створіть 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/` активного робочого простору. Для спільних 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). - - Використовуйте вбудований браузерний профіль `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 працює деінде, або запускайте хост Node на машині з браузером, або використовуйте віддалений CDP. + Цей шлях може використовувати локальний браузер хоста або підключений browser Node. Якщо Gateway запускається деінде, або запускайте хост Node на машині з браузером, або використовуйте віддалений CDP. - Поточні обмеження для `existing-session` / `user`: + Поточні обмеження `existing-session` / `user`: - - дії базуються на ref, а не на CSS-селекторах - - завантаження файлів вимагає `ref` / `inputRef` і зараз підтримує лише один файл за раз - - `responsebody`, експорт у PDF, перехоплення завантажень і пакетні дії все ще потребують керованого браузера або сирого профілю CDP + - дії прив’язані до `ref`, а не до CSS-селекторів + - завантаження файлів вимагає `ref` / `inputRef` і наразі підтримує лише один файл за раз + - `responsebody`, експорт PDF, перехоплення завантажень і пакетні дії все ще потребують керованого браузера або сирого профілю CDP @@ -1280,97 +1279,97 @@ x-i18n: - Так. Див. [Ізоляція](/uk/gateway/sandboxing). Для налаштування, специфічного для Docker (повний gateway у Docker або образи ізоляції), див. [Docker](/uk/install/docker). + Так. Див. [Ізоляція](/uk/gateway/sandboxing). Для налаштування, специфічного для Docker (повний Gateway у Docker або образи ізоляції), див. [Docker](/uk/install/docker). Типовий образ орієнтований насамперед на безпеку й працює від імені користувача `node`, тому він не містить системних пакетів, Homebrew або вбудованих браузерів. Для повнішого налаштування: - - Зберігайте `/home/node` через `OPENCLAW_HOME_VOLUME`, щоб кеші переживали перезапуски. - - Додавайте системні залежності до образу через `OPENCLAW_DOCKER_APT_PACKAGES`. - - Установлюйте браузери Playwright через вбудований CLI: + - Зробіть `/home/node` постійним за допомогою `OPENCLAW_HOME_VOLUME`, щоб кеші зберігалися. + - Вмонтуйте системні залежності в образ через `OPENCLAW_DOCKER_APT_PACKAGES`. + - Установіть браузери Playwright через вбудований CLI: `node /app/node_modules/playwright-core/cli.js install chromium` - - Установіть `PLAYWRIGHT_BROWSERS_PATH` і переконайтеся, що цей шлях зберігається. + - Задайте `PLAYWRIGHT_BROWSERS_PATH` і переконайтеся, що цей шлях зберігається постійно. Документація: [Docker](/uk/install/docker), [Браузер](/uk/tools/browser). - - Так — якщо ваш приватний трафік — це **DM**, а публічний трафік — це **групи**. + + Так — якщо ваш приватний трафік це **DM**, а публічний трафік — **групи**. - Використовуйте `agents.defaults.sandbox.mode: "non-main"`, щоб сесії груп/каналів (ключі не-main) працювали у налаштованому backend ізоляції, тоді як основна DM-сесія залишалася на хості. Якщо ви не вибрали backend, Docker буде типовим. Потім обмежте інструменти, доступні в ізольованих сесіях, через `tools.sandbox.tools`. + Використовуйте `agents.defaults.sandbox.mode: "non-main"`, щоб сеанси груп/каналів (ключі не-main) працювали у налаштованому backend ізоляції, а основний сеанс DM залишався на хості. Docker — backend за замовчуванням, якщо ви не виберете інший. Потім обмежте, які інструменти доступні в ізольованих сеансах, через `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` для будь-чого чутливого та пам’ятайте, що прив’язки обходять файлові стіни ізоляції. + + Задайте `agents.defaults.sandbox.docker.binds` як `["host:path:mode"]` (наприклад, `"/home/user/src:/src:ro"`). Глобальні прив’язки й прив’язки для конкретного агента об’єднуються; прив’язки для конкретного агента ігноруються, коли `scope: "shared"`. Використовуйте `:ro` для всього чутливого й пам’ятайте, що прив’язки обходять файлові стіни sandbox. - OpenClaw перевіряє джерела bind і за нормалізованим шляхом, і за канонічним шляхом, розв’язаним через найглибшого наявного предка. Це означає, що виходи через батьківські symlink все одно блокуються за принципом fail closed, навіть коли останній сегмент шляху ще не існує, а перевірки дозволених коренів і далі застосовуються після розв’язання symlink. + OpenClaw перевіряє джерела bind як за нормалізованим шляхом, так і за канонічним шляхом, розв’язаним через найглибшого наявного предка. Це означає, що виходи через symlink-батьківський каталог усе одно блокуються за принципом fail closed, навіть коли останній сегмент шляху ще не існує, а перевірки allowed-root усе одно застосовуються після розв’язання symlink. - Приклади та примітки з безпеки див. у [Ізоляція](/uk/gateway/sandboxing#custom-bind-mounts) і [Ізоляція vs політика інструментів vs elevated](/uk/gateway/sandbox-vs-tool-policy-vs-elevated#bind-mounts-security-quick-check). + Див. [Ізоляція](/uk/gateway/sandboxing#custom-bind-mounts) і [Ізоляція vs Політика інструментів vs Підвищені права](/uk/gateway/sandbox-vs-tool-policy-vs-elevated#bind-mounts-security-quick-check) для прикладів і приміток щодо безпеки. - Пам’ять OpenClaw — це просто Markdown-файли в workspace агента: + Пам’ять OpenClaw — це просто Markdown-файли в робочому просторі агента: - Щоденні нотатки в `memory/YYYY-MM-DD.md` - - Відібрані довгострокові нотатки в `MEMORY.md` (лише для main/private sessions) + - Відібрані довгострокові нотатки в `MEMORY.md` (лише для main/приватних сеансів) - OpenClaw також виконує **тихий злив пам’яті перед Compaction**, щоб нагадати моделі - записати довговічні нотатки перед автоматичною Compaction. Це виконується лише тоді, коли workspace - доступний для запису (sandbox-и лише для читання пропускають це). Див. [Пам’ять](/uk/concepts/memory). + OpenClaw також виконує **тихе скидання пам’яті перед Compaction**, щоб нагадати моделі + записати стійкі нотатки перед автоматичним Compaction. Це працює лише тоді, коли робочий простір + доступний для запису (sandbox у режимі лише читання це пропускають). Див. [Пам’ять](/uk/concepts/memory). - + Попросіть бота **записати факт у пам’ять**. Довгострокові нотатки мають зберігатися в `MEMORY.md`, короткостроковий контекст — у `memory/YYYY-MM-DD.md`. - Це все ще область, яку ми покращуємо. Корисно нагадувати моделі зберігати спогади; - вона знатиме, що робити. Якщо вона продовжує забувати, перевірте, що Gateway використовує той самий - workspace під час кожного запуску. + Це все ще сфера, яку ми вдосконалюємо. Корисно нагадувати моделі зберігати спогади; + вона знатиме, що робити. Якщо вона все одно забуває, перевірте, що Gateway використовує той самий + робочий простір під час кожного запуску. - Документація: [Пам’ять](/uk/concepts/memory), [Workspace агента](/uk/concepts/agent-workspace). + Документація: [Пам’ять](/uk/concepts/memory), [Робочий простір агента](/uk/concepts/agent-workspace). - Файли пам’яті зберігаються на диску й існують, доки ви їх не видалите. Обмеженням є ваш - обсяг сховища, а не модель. **Контекст сесії** все ще обмежений вікном контексту + Файли пам’яті живуть на диску й зберігаються, доки ви їх не видалите. Обмеженням є ваше + сховище, а не модель. **Контекст сеансу** все одно обмежується вікном контексту моделі, тому довгі розмови можуть стискатися або обрізатися. Саме тому - існує semantic memory search — він повертає в контекст лише релевантні частини. + існує пошук у пам’яті — він повертає в контекст лише релевантні частини. Документація: [Пам’ять](/uk/concepts/memory), [Контекст](/uk/concepts/context). - - Лише якщо ви використовуєте **OpenAI embeddings**. Codex OAuth покриває chat/completions і - **не** надає доступу до embeddings, тож **вхід через Codex (OAuth або - логін Codex CLI)** не допомагає для semantic memory search. Для OpenAI embeddings - як і раніше потрібен справжній API key (`OPENAI_API_KEY` або `models.providers.openai.apiKey`). + + Лише якщо ви використовуєте **вбудовування OpenAI**. Codex OAuth покриває чат/completions і + **не** надає доступу до вбудовувань, тож **вхід через Codex (OAuth або + вхід через Codex CLI)** не допомагає для семантичного пошуку в пам’яті. Для вбудовувань OpenAI + усе ще потрібен справжній API-ключ (`OPENAI_API_KEY` або `models.providers.openai.apiKey`). Якщо ви явно не задаєте провайдера, OpenClaw автоматично вибирає провайдера, коли - може розв’язати API key (профілі автентифікації, `models.providers.*.apiKey` або змінні середовища). - Він віддає перевагу OpenAI, якщо розв’язується ключ OpenAI, інакше Gemini, якщо розв’язується ключ Gemini, - потім Voyage, потім Mistral. Якщо жоден віддалений ключ недоступний, memory - search залишається вимкненим, доки ви його не налаштуєте. Якщо у вас налаштований і наявний шлях + може знайти API-ключ (профілі автентифікації, `models.providers.*.apiKey` або змінні середовища). + Він надає перевагу OpenAI, якщо знаходиться ключ OpenAI, інакше Gemini, якщо знаходиться ключ Gemini, + потім Voyage, потім Mistral. Якщо жоден віддалений ключ недоступний, пошук у пам’яті + залишається вимкненим, доки ви його не налаштуєте. Якщо у вас налаштовано й доступний шлях до локальної моделі, OpenClaw - віддає перевагу `local`. Ollama підтримується, коли ви явно встановлюєте + надає перевагу `local`. Ollama підтримується, коли ви явно задаєте `memorySearch.provider = "ollama"`. - Якщо ви волієте залишатися локальними, установіть `memorySearch.provider = "local"` (і за потреби - `memorySearch.fallback = "none"`). Якщо вам потрібні embeddings Gemini, установіть + Якщо ви хочете залишатися локально, задайте `memorySearch.provider = "local"` (і за бажанням + `memorySearch.fallback = "none"`). Якщо вам потрібні вбудовування Gemini, задайте `memorySearch.provider = "gemini"` і надайте `GEMINI_API_KEY` (або - `memorySearch.remote.apiKey`). Ми підтримуємо моделі embeddings **OpenAI, Gemini, Voyage, Mistral, Ollama або local** — - докладні інструкції з налаштування див. у [Пам’ять](/uk/concepts/memory). + `memorySearch.remote.apiKey`). Ми підтримуємо моделі вбудовувань **OpenAI, Gemini, Voyage, Mistral, Ollama або local** — + деталі налаштування див. у [Пам’ять](/uk/concepts/memory). @@ -1381,49 +1380,49 @@ x-i18n: Ні — **стан OpenClaw локальний**, але **зовнішні сервіси все одно бачать те, що ви їм надсилаєте**. - - **Локально за замовчуванням:** сесії, файли пам’яті, конфігурація та workspace живуть на хості Gateway - (`~/.openclaw` + каталог вашого workspace). - - **Віддалено за необхідністю:** повідомлення, які ви надсилаєте провайдерам моделей (Anthropic/OpenAI тощо), ідуть до + - **Локально за замовчуванням:** сеанси, файли пам’яті, конфігурація та робочий простір живуть на хості Gateway + (`~/.openclaw` + каталог вашого робочого простору). + - **Віддалено за потребою:** повідомлення, які ви надсилаєте провайдерам моделей (Anthropic/OpenAI тощо), ідуть до їхніх API, а чат-платформи (WhatsApp/Telegram/Slack тощо) зберігають дані повідомлень на своїх серверах. - - **Ви контролюєте поверхню:** використання локальних моделей зберігає prompt-и на вашій машині, але трафік - каналів усе одно проходить через сервери відповідного каналу. + - **Ви керуєте обсягом:** використання локальних моделей залишає prompt-и на вашій машині, але трафік + каналів усе одно проходить через сервери цього каналу. - Пов’язано: [Workspace агента](/uk/concepts/agent-workspace), [Пам’ять](/uk/concepts/memory). + Пов’язане: [Робочий простір агента](/uk/concepts/agent-workspace), [Пам’ять](/uk/concepts/memory). Усе зберігається в `$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 keys та необов’язкові `keyRef`/`tokenRef`) | - | `$OPENCLAW_STATE_DIR/secrets.json` | Необов’язкове файлове секретне навантаження для провайдерів SecretRef типу `file` | - | `$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_STATE_DIR/agents//agent/auth-profiles.json` | Профілі автентифікації (OAuth, API-ключі та необов’язкові `keyRef`/`tokenRef`) | + | `$OPENCLAW_STATE_DIR/secrets.json` | Необов’язкове сховище секретів у файлі для провайдерів SecretRef типу `file` | + | `$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`). + Ваш **робочий простір** (`AGENTS.md`, файли пам’яті, skills тощо) відокремлений і налаштовується через `agents.defaults.workspace` (типово: `~/.openclaw/workspace`). - Ці файли мають зберігатися у **workspace агента**, а не в `~/.openclaw`. + Ці файли зберігаються в **робочому просторі агента**, а не в `~/.openclaw`. - - **Workspace (для кожного агента)**: `AGENTS.md`, `SOUL.md`, `IDENTITY.md`, `USER.md`, - `MEMORY.md` (або застарілий резервний варіант `memory.md`, коли `MEMORY.md` відсутній), - `memory/YYYY-MM-DD.md`, необов’язковий `HEARTBEAT.md`. - - **State dir (`~/.openclaw`)**: конфігурація, стан каналу/провайдера, профілі автентифікації, сесії, логи - і спільні Skills (`~/.openclaw/skills`). + - **Робочий простір (для кожного агента):** `AGENTS.md`, `SOUL.md`, `IDENTITY.md`, `USER.md`, + `MEMORY.md` (або застарілий запасний варіант `memory.md`, коли `MEMORY.md` відсутній), + `memory/YYYY-MM-DD.md`, необов’язково `HEARTBEAT.md`. + - **Каталог стану (`~/.openclaw`)**: конфігурація, стан каналу/провайдера, профілі автентифікації, сеанси, журнали, + і спільні skills (`~/.openclaw/skills`). - Типовий workspace — `~/.openclaw/workspace`, налаштовується через: + Типовий робочий простір — `~/.openclaw/workspace`, його можна налаштувати через: ```json5 { @@ -1432,43 +1431,43 @@ x-i18n: ``` Якщо бот «забуває» після перезапуску, переконайтеся, що Gateway використовує той самий - workspace під час кожного запуску (і пам’ятайте: віддалений режим використовує **workspace хоста gateway**, + робочий простір під час кожного запуску (і пам’ятайте: віддалений режим використовує **робочий простір хоста gateway**, а не вашого локального ноутбука). - Порада: якщо ви хочете зберегти поведінку чи вподобання надовго, попросіть бота **записати це в + Порада: якщо вам потрібна стійка поведінка або вподобання, попросіть бота **записати це в AGENTS.md або MEMORY.md**, а не покладатися на історію чату. - Див. [Workspace агента](/uk/concepts/agent-workspace) і [Пам’ять](/uk/concepts/memory). + Див. [Робочий простір агента](/uk/concepts/agent-workspace) і [Пам’ять](/uk/concepts/memory). - Помістіть свій **workspace агента** у **приватний** git-репозиторій і робіть його резервну копію десь - приватно (наприклад, у приватному GitHub). Це збереже пам’ять + файли AGENTS/SOUL/USER - і дасть змогу пізніше відновити «розум» помічника. + Помістіть свій **робочий простір агента** в **приватний** git-репозиторій і створюйте його резервну копію + у приватному місці (наприклад, у приватному GitHub). Це збереже пам’ять + файли AGENTS/SOUL/USER + і дозволить пізніше відновити «свідомість» помічника. - **Не** комітьте нічого з `~/.openclaw` (облікові дані, сесії, токени або зашифровані секретні payload-и). - Якщо вам потрібно повне відновлення, робіть резервні копії і workspace, і state directory - окремо (див. питання про міграцію вище). + **Не** комітьте нічого з `~/.openclaw` (облікові дані, сеанси, токени або зашифровані секретні payload-и). + Якщо вам потрібне повне відновлення, окремо створюйте резервні копії і робочого простору, і каталогу стану + (див. питання про міграцію вище). - Документація: [Workspace агента](/uk/concepts/agent-workspace). + Документація: [Робочий простір агента](/uk/concepts/agent-workspace). - Див. окрему інструкцію: [Видалення](/uk/install/uninstall). + Див. окремий посібник: [Видалення](/uk/install/uninstall). - - Так. Workspace — це **cwd за замовчуванням** і якір пам’яті, а не жорсткий sandbox. - Відносні шляхи розв’язуються всередині workspace, але абсолютні шляхи можуть звертатися до інших - місць хоста, якщо ізоляцію не ввімкнено. Якщо вам потрібна ізоляція, використовуйте + + Так. Робочий простір — це **типовий cwd** і якір пам’яті, а не жорстка sandbox. + Відносні шляхи розв’язуються всередині робочого простору, але абсолютні шляхи можуть отримувати доступ до інших + розташувань хоста, якщо sandboxing не ввімкнено. Якщо вам потрібна ізоляція, використовуйте [`agents.defaults.sandbox`](/uk/gateway/sandboxing) або налаштування sandbox для конкретного агента. Якщо ви - хочете, щоб репозиторій був робочим каталогом за замовчуванням, вкажіть для цього агента - `workspace` на корінь репозиторію. Репозиторій OpenClaw — це лише вихідний код; тримайте - workspace окремо, якщо тільки ви навмисно не хочете, щоб агент працював усередині нього. + хочете, щоб репозиторій був типовим робочим каталогом, вкажіть `workspace` + цього агента на корінь репозиторію. Репозиторій OpenClaw — це лише вихідний код; тримайте + робочий простір окремо, якщо тільки ви навмисно не хочете, щоб агент працював усередині нього. - Приклад (репозиторій як cwd за замовчуванням): + Приклад (репозиторій як типовий cwd): ```json5 { @@ -1482,30 +1481,30 @@ x-i18n: - - Стан сесій належить **хосту gateway**. Якщо ви у віддаленому режимі, потрібний вам session store розташований на віддаленій машині, а не на локальному ноутбуці. Див. [Керування сесіями](/uk/concepts/session). + + Стан сеансів належить **хосту gateway**. Якщо ви працюєте у віддаленому режимі, потрібне вам сховище сеансів розташоване на віддаленій машині, а не на вашому локальному ноутбуці. Див. [Керування сеансами](/uk/concepts/session). ## Основи конфігурації - + OpenClaw читає необов’язкову конфігурацію **JSON5** з `$OPENCLAW_CONFIG_PATH` (типово: `~/.openclaw/openclaw.json`): ``` $OPENCLAW_CONFIG_PATH ``` - Якщо файл відсутній, використовуються відносно безпечні значення за замовчуванням (зокрема workspace за замовчуванням `~/.openclaw/workspace`). + Якщо файл відсутній, використовуються відносно безпечні значення за замовчуванням (зокрема типовий робочий простір `~/.openclaw/workspace`). - - Bind-и не на loopback **вимагають коректного шляху автентифікації gateway**. На практиці це означає: + + Прив’язки не-loopback **вимагають дійсного шляху автентифікації gateway**. На практиці це означає: - - автентифікація спільним секретом: токен або пароль - - `gateway.auth.mode: "trusted-proxy"` за правильно налаштованим reverse proxy з урахуванням ідентичності без loopback + - автентифікацію спільним секретом: токен або пароль + - `gateway.auth.mode: "trusted-proxy"` за правильно налаштованим non-loopback reverse proxy з урахуванням ідентичності ```json5 { @@ -1522,31 +1521,31 @@ x-i18n: Примітки: - `gateway.remote.token` / `.password` самі по собі **не** вмикають локальну автентифікацію gateway. - - Локальні шляхи виклику можуть використовувати `gateway.remote.*` як резервний варіант лише тоді, коли `gateway.auth.*` не задано. - - Для автентифікації за паролем натомість установіть `gateway.auth.mode: "password"` разом із `gateway.auth.password` (або `OPENCLAW_GATEWAY_PASSWORD`). - - Якщо `gateway.auth.token` / `gateway.auth.password` явно налаштовано через SecretRef і не розв’язується, розв’язання завершується fail closed (без маскування резервним remote-варіантом). - - Конфігурації Control UI зі спільним секретом автентифікуються через `connect.params.auth.token` або `connect.params.auth.password` (зберігаються в налаштуваннях app/UI). Режими з ідентичністю, як-от Tailscale Serve або `trusted-proxy`, натомість використовують заголовки запитів. Уникайте розміщення спільних секретів в URL. - - З `gateway.auth.mode: "trusted-proxy"` reverse proxy loopback на тому самому хості все одно **не** задовольняють автентифікацію trusted-proxy. Trusted proxy має бути налаштованим джерелом без loopback. + - Локальні шляхи виклику можуть використовувати `gateway.remote.*` як запасний варіант лише тоді, коли `gateway.auth.*` не задано. + - Для автентифікації паролем натомість задайте `gateway.auth.mode: "password"` плюс `gateway.auth.password` (або `OPENCLAW_GATEWAY_PASSWORD`). + - Якщо `gateway.auth.token` / `gateway.auth.password` явно налаштовано через SecretRef, але не розв’язано, розв’язання завершується fail closed (без маскування запасним варіантом remote). + - Конфігурації 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 має бути налаштованим non-loopback джерелом. - - OpenClaw типово примусово вимагає автентифікацію gateway, зокрема й для loopback. У звичайному типовому сценарії це означає автентифікацію токеном: якщо явний шлях автентифікації не налаштовано, під час запуску gateway визначається режим токена і токен генерується автоматично, зберігаючись у `gateway.auth.token`, тож **локальні WS-клієнти мають проходити автентифікацію**. Це блокує іншим локальним процесам виклики до Gateway. + + OpenClaw примусово вимагає автентифікацію gateway за замовчуванням, зокрема й для loopback. У звичайному типовому сценарії це означає автентифікацію токеном: якщо явний шлях автентифікації не налаштований, запуск gateway переходить у режим токена й автоматично генерує його, зберігаючи в `gateway.auth.token`, тож **локальні WS-клієнти повинні проходити автентифікацію**. Це блокує інші локальні процеси від виклику Gateway. - Якщо ви віддаєте перевагу іншому шляху автентифікації, можете явно вибрати режим пароля (або, для reverse proxy без loopback з урахуванням ідентичності, `trusted-proxy`). Якщо ви **справді** хочете відкритий loopback, явно встановіть у конфігурації `gateway.auth.mode: "none"`. Doctor може згенерувати токен у будь-який час: `openclaw doctor --generate-gateway-token`. + Якщо ви віддаєте перевагу іншому шляху автентифікації, можете явно вибрати режим пароля (або, для non-loopback reverse proxy з урахуванням ідентичності, `trusted-proxy`). Якщо ви **справді** хочете відкритий loopback, явно задайте `gateway.auth.mode: "none"` у своїй конфігурації. Doctor може згенерувати токен у будь-який час: `openclaw doctor --generate-gateway-token`. - Gateway стежить за конфігурацією і підтримує hot reload: + Gateway відстежує конфігурацію й підтримує гаряче перезавантаження: - - `gateway.reload.mode: "hybrid"` (типово): безпечно застосовує зміни на гарячу, для критичних робить перезапуск + - `gateway.reload.mode: "hybrid"` (типово): безпечно застосовує зміни в гарячому режимі, а для критичних виконує перезапуск - також підтримуються `hot`, `restart`, `off` - - Установіть `cli.banner.taglineMode` у конфігурації: + + Задайте `cli.banner.taglineMode` у конфігурації: ```json5 { @@ -1560,22 +1559,22 @@ x-i18n: - `off`: приховує текст слогана, але залишає рядок заголовка/версії банера. - `default`: щоразу використовує `All your chats, one OpenClaw.`. - - `random`: ротаційні кумедні/сезонні слогани (поведінка за замовчуванням). - - Якщо ви взагалі не хочете банер, установіть змінну середовища `OPENCLAW_HIDE_BANNER=1`. + - `random`: ротація кумедних/сезонних слоганів (типова поведінка). + - Якщо ви хочете прибрати банер повністю, задайте змінну середовища `OPENCLAW_HIDE_BANNER=1`. - `web_fetch` працює без API key. `web_search` залежить від вибраного + `web_fetch` працює без API-ключа. `web_search` залежить від вибраного провайдера: - - Провайдери на основі API, як-от Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Perplexity і Tavily, потребують звичайного налаштування API key. - - Ollama Web Search не потребує ключа, але використовує налаштований хост Ollama і вимагає `ollama signin`. + - Провайдери на основі API, як-от Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Perplexity і Tavily, вимагають звичайного налаштування їхніх API-ключів. + - 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` і виберіть провайдера. - Альтернативи через змінні середовища: + Альтернативи через середовище: - Brave: `BRAVE_API_KEY` - Exa: `EXA_API_KEY` @@ -1610,76 +1609,76 @@ x-i18n: }, fetch: { enabled: true, - provider: "firecrawl", // optional; omit for auto-detect + provider: "firecrawl", // необов’язково; пропустіть для авто-виявлення }, }, }, } ``` - Специфічна для провайдера конфігурація web search тепер живе під `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. + - Якщо ви використовуєте allowlist, додайте `web_search`/`web_fetch`/`x_search` або `group:web`. + - `web_fetch` увімкнено за замовчуванням (якщо його явно не вимкнено). + - Якщо `tools.web.fetch.provider` пропущено, OpenClaw автоматично виявляє першого готового запасного провайдера fetch серед доступних облікових даних. Наразі вбудований провайдер — Firecrawl. - Демони читають змінні середовища з `~/.openclaw/.env` (або із середовища сервісу). Документація: [Веб-інструменти](/uk/tools/web). - - `config.apply` замінює **всю конфігурацію**. Якщо ви надсилаєте частковий об’єкт, усе + + `config.apply` замінює **всю конфігурацію цілком**. Якщо ви надсилаєте частковий об’єкт, усе інше буде видалено. - Поточний OpenClaw захищає від багатьох випадкових затирань: + Поточний OpenClaw захищає від багатьох випадкових перезаписів: - - Записи конфігурації, якими керує OpenClaw, перевіряють повну конфігурацію після зміни перед записом. - - Некоректні або руйнівні записи, якими керує OpenClaw, відхиляються і зберігаються як `openclaw.json.rejected.*`. - - Якщо пряме редагування ламає запуск або hot reload, Gateway відновлює останню відому робочу конфігурацію і зберігає відхилений файл як `openclaw.json.clobbered.*`. - - Після відновлення головний агент отримує попередження під час запуску, щоб не записати погану конфігурацію знову навмання. + - Записи конфігурації, що належать OpenClaw, перевіряють повну конфігурацію після змін перед записом. + - Неприпустимі або руйнівні записи, що належать OpenClaw, відхиляються й зберігаються як `openclaw.json.rejected.*`. + - Якщо пряме редагування ламає запуск або гаряче перезавантаження, Gateway відновлює останню відому робочу конфігурацію й зберігає відхилений файл як `openclaw.json.clobbered.*`. + - Після відновлення основний агент отримує попередження під час запуску, щоб не записати ту саму погану конфігурацію повторно навмання. Відновлення: - Перевірте `openclaw logs --follow` на наявність `Config auto-restored from last-known-good`, `Config write rejected:` або `config reload restored last-known-good config`. - Перегляньте найновіший `openclaw.json.clobbered.*` або `openclaw.json.rejected.*` поруч з активною конфігурацією. - - Якщо відновлена активна конфігурація працює, залиште її, а потім поверніть лише потрібні ключі через `openclaw config set` або `config.patch`. + - Залиште активну відновлену конфігурацію, якщо вона працює, а потім поверніть назад лише потрібні ключі через `openclaw config set` або `config.patch`. - Запустіть `openclaw config validate` і `openclaw doctor`. - - Якщо у вас немає ані останньої відомої робочої конфігурації, ані відхиленого payload, відновіть із резервної копії або знову запустіть `openclaw doctor` і повторно налаштуйте канали/моделі. - - Якщо це було неочікувано, створіть bug report і додайте свою останню відому конфігурацію або будь-яку резервну копію. - - Локальний coding agent часто може відновити працездатну конфігурацію з логів або історії. + - Якщо у вас немає ані останньої відомої робочої конфігурації, ані відхиленого payload, відновіть із резервної копії або повторно запустіть `openclaw doctor` і знову налаштуйте канали/моделі. + - Якщо це сталося неочікувано, створіть bug report і додайте свою останню відому конфігурацію або будь-яку резервну копію. + - Локальний coding agent часто може відновити робочу конфігурацію з журналів або історії. - Як уникнути: + Як уникнути цього: - Використовуйте `openclaw config set` для невеликих змін. - - Використовуйте `openclaw configure` для інтерактивного редагування. - - Спочатку використовуйте `config.schema.lookup`, коли ви не впевнені в точному шляху чи формі поля; він повертає поверхневий вузол схеми плюс зведення безпосередніх дочірніх елементів для подальшого заглиблення. + - Використовуйте `openclaw configure` для інтерактивних редагувань. + - Спочатку використовуйте `config.schema.lookup`, якщо не впевнені щодо точного шляху або форми поля; він повертає неглибокий вузол схеми плюс короткі підсумки безпосередніх дочірніх елементів для подальшого заглиблення. - Використовуйте `config.patch` для часткових RPC-редагувань; залишайте `config.apply` лише для повної заміни конфігурації. - - Якщо ви використовуєте доступний лише власнику інструмент `gateway` із запуску агента, він усе одно відхилятиме записи до `tools.exec.ask` / `tools.exec.security` (включно із застарілими псевдонімами `tools.bash.*`, які нормалізуються до тих самих захищених шляхів exec). + - Якщо ви використовуєте інструмент `gateway` лише для власника з запуску агента, він усе одно відхиляє записи в `tools.exec.ask` / `tools.exec.security` (зокрема застарілі псевдоніми `tools.bash.*`, які нормалізуються до тих самих захищених шляхів exec). Документація: [Конфігурація](/cli/config), [Налаштування](/cli/configure), [Усунення несправностей Gateway](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config), [Doctor](/uk/gateway/doctor). - - Поширений шаблон — **один Gateway** (наприклад, Raspberry Pi) плюс **nodes** і **agents**: + + Типовий шаблон — **один Gateway** (наприклад, Raspberry Pi) плюс **nodes** і **agents**: - - **Gateway (центральний):** володіє каналами (Signal/WhatsApp), маршрутизацією та сесіями. - - **Nodes (пристрої):** Mac/iOS/Android підключаються як периферія і надають локальні інструменти (`system.run`, `canvas`, `camera`). - - **Agents (воркери):** окремі «мізки»/workspace для спеціальних ролей (наприклад, «Hetzner ops», «Personal data»). - - **Субагенти:** запускають фонову роботу з головного агента, коли вам потрібен паралелізм. - - **TUI:** підключайтеся до Gateway і перемикайте агентів/сесії. + - **Gateway (центральний):** володіє каналами (Signal/WhatsApp), маршрутизацією та сеансами. + - **Nodes (пристрої):** Mac/iOS/Android підключаються як периферія й надають локальні інструменти (`system.run`, `canvas`, `camera`). + - **Agents (робочі вузли):** окремі «мізки»/робочі простори для спеціальних ролей (наприклад, "Hetzner ops", "Personal data"). + - **Субагенти:** запускають фонову роботу з основного агента, коли вам потрібен паралелізм. + - **TUI:** підключається до Gateway і перемикає агентів/сеанси. - Документація: [Nodes](/uk/nodes), [Віддалений доступ](/uk/gateway/remote), [Маршрутизація кількох агентів](/uk/concepts/multi-agent), [Sub-agents](/uk/tools/subagents), [TUI](/web/tui). + Документація: [Nodes](/uk/nodes), [Віддалений доступ](/uk/gateway/remote), [Маршрутизація кількох агентів](/uk/concepts/multi-agent), [Субагенти](/uk/tools/subagents), [TUI](/web/tui). - - Так. Це опція конфігурації: + + Так. Це параметр конфігурації: ```json5 { @@ -1692,18 +1691,18 @@ x-i18n: } ``` - Типове значення — `false` (headful). Headless з більшою ймовірністю запускає anti-bot перевірки на деяких сайтах. Див. [Браузер](/uk/tools/browser). + Типове значення — `false` (із вікном). Режим headless з більшою ймовірністю викликає перевірки anti-bot на деяких сайтах. Див. [Браузер](/uk/tools/browser). - Headless використовує **той самий рушій Chromium** і працює для більшості сценаріїв автоматизації (форми, кліки, скрейпінг, логіни). Основні відмінності: + Режим headless використовує **той самий рушій Chromium** і працює для більшості сценаріїв автоматизації (форми, кліки, збирання даних, входи). Основні відмінності: - - Немає видимого вікна браузера (використовуйте знімки екрана, якщо вам потрібна візуалізація). - - Деякі сайти суворіше ставляться до автоматизації в headless-режимі (CAPTCHA, anti-bot). - Наприклад, X/Twitter часто блокує headless-сесії. + - Немає видимого вікна браузера (використовуйте скріншоти, якщо вам потрібна візуалізація). + - Деякі сайти суворіше ставляться до автоматизації в режимі headless (CAPTCHA, anti-bot). + Наприклад, X/Twitter часто блокує сеанси headless. - Установіть `browser.executablePath` на свій бінарник Brave (або будь-який інший браузер на основі Chromium) і перезапустіть Gateway. + Задайте `browser.executablePath` на ваш бінарний файл Brave (або будь-якого браузера на основі Chromium) і перезапустіть Gateway. Повні приклади конфігурації див. у [Браузер](/uk/tools/browser#use-brave-or-another-chromium-based-browser). @@ -1711,28 +1710,28 @@ x-i18n: ## Віддалені gateway і nodes - + Повідомлення Telegram обробляються **gateway**. Gateway запускає агента і лише потім викликає nodes через **Gateway WebSocket**, коли потрібен інструмент node: Telegram → Gateway → Agent → `node.*` → Node → Gateway → Telegram - Nodes не бачать вхідний трафік провайдера; вони отримують лише RPC-виклики node. + Nodes не бачать вхідного трафіку провайдера; вони отримують лише виклики node RPC. - Коротка відповідь: **під’єднайте свій комп’ютер як 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 доступний (bind tailnet або SSH-тунель). + 4. Локально відкрийте застосунок macOS і підключіться в режимі **Remote over SSH** (або напряму через tailnet), + щоб він міг зареєструватися як node. + 5. Затвердьте node на Gateway: ```bash openclaw devices list @@ -1741,17 +1740,17 @@ x-i18n: Окремий TCP-міст не потрібен; nodes підключаються через Gateway WebSocket. - Нагадування про безпеку: спарювання macOS Node дозволяє `system.run` на цій машині. Під’єднуйте - лише пристрої, яким довіряєте, і перечитайте [Безпека](/uk/gateway/security). + Нагадування про безпеку: підключення macOS node дозволяє `system.run` на цій машині. Підключайте + лише ті пристрої, яким довіряєте, і перегляньте [Безпека](/uk/gateway/security). Документація: [Nodes](/uk/nodes), [Протокол Gateway](/uk/gateway/protocol), [Віддалений режим macOS](/uk/platforms/mac/remote), [Безпека](/uk/gateway/security). - - Перевірте основи: + + Перевірте базові речі: - - Gateway працює: `openclaw gateway status` + - Gateway запущено: `openclaw gateway status` - Стан Gateway: `openclaw status` - Стан каналів: `openclaw channels status` @@ -1759,60 +1758,60 @@ x-i18n: - Якщо ви використовуєте Tailscale Serve, переконайтеся, що `gateway.auth.allowTailscale` налаштовано правильно. - Якщо ви підключаєтеся через SSH-тунель, переконайтеся, що локальний тунель активний і вказує на правильний порт. - - Переконайтеся, що ваші allowlist-и (DM або група) містять ваш обліковий запис. + - Переконайтеся, що ваші allowlist (DM або група) містять ваш акаунт. Документація: [Tailscale](/uk/gateway/tailscale), [Віддалений доступ](/uk/gateway/remote), [Канали](/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): + Приклад шаблону (запускайте з машини, яка може дістатися до цільового Gateway): ```bash openclaw agent --message "Hello from local bot" --deliver --channel telegram --reply-to ``` - Порада: додайте захисне правило, щоб два боти не зациклитися безкінечно (лише згадки, channel - allowlist-и або правило «не відповідати на повідомлення ботів»). + Порада: додайте запобіжник, щоб два боти не зациклювалися безкінечно (лише згадки, allowlist + каналів або правило «не відповідати на повідомлення ботів»). - Документація: [Віддалений доступ](/uk/gateway/remote), [CLI Agent](/cli/agent), [Надсилання Agent](/uk/tools/agent-send). + Документація: [Віддалений доступ](/uk/gateway/remote), [CLI агента](/cli/agent), [Надсилання агентом](/uk/tools/agent-send). - Ні. Один Gateway може хостити кількох агентів, кожен зі своїм workspace, типовими моделями - і маршрутизацією. Це звичайне налаштування, і воно набагато дешевше й простіше, ніж запускати - один VPS на агента. + Ні. Один Gateway може розміщувати кількох агентів, кожен із власним робочим простором, типовими моделями + й маршрутизацією. Це нормальний варіант налаштування, і він значно дешевший і простіший, ніж запуск + одного VPS на кожного агента. Використовуйте окремі VPS лише тоді, коли вам потрібна жорстка ізоляція (межі безпеки) або дуже - різні конфігурації, які ви не хочете спільно використовувати. В іншому разі залишайте один Gateway і + різні конфігурації, якими ви не хочете ділитися. В інших випадках тримайте один Gateway і використовуйте кількох агентів або субагентів. - - Так — nodes є першокласним способом доступу до вашого ноутбука з віддаленого Gateway, і вони + + Так — nodes є основним способом доступу до вашого ноутбука з віддаленого Gateway, і вони дають більше, ніж просто доступ до оболонки. Gateway працює на macOS/Linux (Windows через WSL2) і є - легким (достатньо невеликого VPS або пристрою класу Raspberry Pi; 4 ГБ RAM більш ніж достатньо), тож поширена - конфігурація — це постійно ввімкнений хост плюс ваш ноутбук як Node. + легким (невеликий VPS або пристрій рівня Raspberry Pi цілком підходить; 4 GB RAM більш ніж достатньо), тож поширене + налаштування — це завжди ввімкнений хост плюс ваш ноутбук як node. - - **Не потрібен вхідний 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 локально через хост Node на ноутбуці або підключайтеся до локального Chrome на хості через Chrome MCP. + - **Локальна автоматизація браузера.** Тримайте Gateway на VPS, але запускайте Chrome локально через хост node на ноутбуці або підключайтеся до локального Chrome на хості через Chrome MCP. - SSH підходить для епізодичного доступу до оболонки, але nodes простіші для постійних агентських робочих процесів і + SSH підходить для разового доступу до оболонки, але nodes простіші для постійних робочих процесів агента й автоматизації пристрою. Документація: [Nodes](/uk/nodes), [CLI Nodes](/cli/nodes), [Браузер](/uk/tools/browser). @@ -1820,26 +1819,26 @@ x-i18n: - Ні. На одному хості має працювати лише **один gateway**, якщо тільки ви навмисно не запускаєте ізольовані профілі (див. [Кілька gateway](/uk/gateway/multiple-gateways)). Nodes — це периферійні пристрої, які підключаються - до gateway (nodes iOS/Android або «режим node» macOS у menubar app). Для headless-хостів node - і керування через CLI див. [CLI хоста Node](/cli/node). + Ні. На хості має працювати лише **один gateway**, якщо тільки ви навмисно не запускаєте ізольовані профілі (див. [Кілька gateway](/uk/gateway/multiple-gateways)). Nodes — це периферійні компоненти, які підключаються + до gateway (nodes iOS/Android або режим macOS "node mode" у застосунку менюбару). Для безголових + хостів node і керування через CLI див. [CLI хоста Node](/cli/node). - Повний перезапуск потрібен для змін `gateway`, `discovery` і `canvasHost`. + Для змін `gateway`, `discovery` і `canvasHost` потрібен повний перезапуск. Так. - - `config.schema.lookup`: переглянути одне піддерево конфігурації з його поверхневим вузлом схеми, підібраною UI-підказкою та зведеннями безпосередніх дочірніх елементів перед записом + - `config.schema.lookup`: перевірити одне піддерево конфігурації з його неглибоким вузлом схеми, відповідною підказкою UI та короткими зведеннями безпосередніх дочірніх елементів перед записом - `config.get`: отримати поточний знімок + хеш - - `config.patch`: безпечне часткове оновлення (рекомендовано для більшості RPC-редагувань); виконує hot reload, коли це можливо, і перезапускає, коли потрібно - - `config.apply`: перевірити й замінити повну конфігурацію; виконує hot reload, коли це можливо, і перезапускає, коли потрібно - - Доступний лише власнику runtime-інструмент `gateway` усе ще відмовляється переписувати `tools.exec.ask` / `tools.exec.security`; застарілі псевдоніми `tools.bash.*` нормалізуються до тих самих захищених шляхів exec + - `config.patch`: безпечне часткове оновлення (рекомендовано для більшості RPC-редагувань); виконує гаряче перезавантаження, коли це можливо, і перезапускає, коли потрібно + - `config.apply`: перевіряє й замінює всю конфігурацію; виконує гаряче перезавантаження, коли це можливо, і перезапускає, коли потрібно + - Інструмент виконання `gateway`, доступний лише власнику, усе ще відмовляється переписувати `tools.exec.ask` / `tools.exec.security`; застарілі псевдоніми `tools.bash.*` нормалізуються до тих самих захищених шляхів exec - + ```json5 { agents: { defaults: { workspace: "~/.openclaw/workspace" } }, @@ -1847,22 +1846,22 @@ x-i18n: } ``` - Це задає ваш workspace і обмежує, хто може запускати бота. + Це задає ваш робочий простір і обмежує, хто може активувати бота. Мінімальні кроки: - 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** @@ -1879,15 +1878,15 @@ x-i18n: - - Serve відкриває **Gateway Control UI + WS**. Nodes підключаються через той самий endpoint Gateway WS. + + Serve відкриває **Control UI + WS Gateway**. Nodes підключаються через ту саму кінцеву точку Gateway WS. - Рекомендована конфігурація: + Рекомендоване налаштування: - 1. **Переконайтеся, що VPS і Mac знаходяться в одній tailnet**. + 1. **Переконайтеся, що VPS і Mac знаходяться в одному tailnet**. 2. **Використовуйте застосунок macOS у віддаленому режимі** (ціллю SSH може бути ім’я хоста tailnet). - Застосунок протунелює порт Gateway і підключиться як Node. - 3. **Схваліть Node** на gateway: + Застосунок протунелює порт Gateway і підключиться як node. + 3. **Затвердьте node** на gateway: ```bash openclaw devices list @@ -1898,10 +1897,10 @@ x-i18n: - - Якщо вам потрібні лише **локальні інструменти** (`screen`/`camera`/`exec`) на другому ноутбуці, додайте його як - **Node**. Це зберігає єдиний Gateway і дозволяє уникнути дублювання конфігурації. Локальні інструменти Node - наразі доступні лише на macOS, але ми плануємо поширити їх і на інші ОС. + + Якщо вам потрібні лише **локальні інструменти** (screen/camera/exec) на другому ноутбуці, додайте його як + **node**. Це дозволяє зберегти єдиний Gateway і уникнути дублювання конфігурації. Локальні інструменти node + наразі доступні лише на macOS, але ми плануємо поширити їх на інші ОС. Установлюйте другий Gateway лише тоді, коли вам потрібна **жорстка ізоляція** або два повністю окремі боти. @@ -1910,18 +1909,18 @@ x-i18n: -## Змінні середовища та завантаження .env +## Змінні середовища і завантаження .env - OpenClaw читає змінні середовища з батьківського процесу (shell, launchd/systemd, CI тощо) і додатково завантажує: + OpenClaw читає змінні середовища від батьківського процесу (оболонка, launchd/systemd, CI тощо) і додатково завантажує: - `.env` з поточного робочого каталогу - - глобальний резервний `.env` з `~/.openclaw/.env` (тобто `$OPENCLAW_STATE_DIR/.env`) + - глобальний запасний `.env` з `~/.openclaw/.env` (тобто `$OPENCLAW_STATE_DIR/.env`) - Жоден із `.env`-файлів не перевизначає вже наявні змінні середовища. + Жоден `.env` не перевизначає вже наявні змінні середовища. - Ви також можете визначати вбудовані змінні середовища в конфігурації (застосовуються лише якщо вони відсутні в process env): + Ви також можете визначати вбудовані змінні середовища в конфігурації (застосовуються лише якщо вони відсутні в середовищі процесу): ```json5 { @@ -1932,15 +1931,15 @@ x-i18n: } ``` - Повний пріоритет і джерела див. у [/environment](/uk/help/environment). + Повний порядок пріоритету та джерела див. у [/environment](/uk/help/environment). - Є два поширені виправлення: + Два поширені варіанти виправлення: - 1. Помістіть відсутні ключі в `~/.openclaw/.env`, щоб вони підхоплювалися, навіть коли сервіс не успадковує env вашого shell. - 2. Увімкніть імпорт shell (опціональна зручність): + 1. Додайте відсутні ключі в `~/.openclaw/.env`, щоб вони підхоплювалися, навіть коли сервіс не успадковує середовище вашої оболонки. + 2. Увімкніть імпорт із оболонки (додаткова зручність за бажанням): ```json5 { @@ -1953,18 +1952,18 @@ x-i18n: } ``` - Це запускає ваш login shell та імпортує лише відсутні очікувані ключі (ніколи не перевизначає). Еквіваленти змінних середовища: + Це запускає вашу login shell і імпортує лише відсутні очікувані ключі (ніколи не перевизначає). Еквіваленти змінних середовища: `OPENCLAW_LOAD_SHELL_ENV=1`, `OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000`. - - `openclaw models status` повідомляє, чи увімкнено **імпорт shell env**. «Shell env: off» + + `openclaw models status` повідомляє, чи увімкнено **імпорт середовища оболонки**. "Shell env: off" **не** означає, що ваших змінних середовища немає — це лише означає, що OpenClaw не завантажуватиме - ваш login shell автоматично. + вашу login shell автоматично. Якщо Gateway працює як сервіс (launchd/systemd), він не успадковує середовище - вашого shell. Виправити це можна одним зі способів: + вашої оболонки. Виправити це можна одним із таких способів: 1. Помістіть токен у `~/.openclaw/.env`: @@ -1972,10 +1971,10 @@ x-i18n: COPILOT_GITHUB_TOKEN=... ``` - 2. Або увімкніть імпорт shell (`env.shellEnv.enabled: true`). - 3. Або додайте його в блок `env` конфігурації (застосовується лише якщо відсутній). + 2. Або увімкніть імпорт із оболонки (`env.shellEnv.enabled: true`). + 3. Або додайте його до блоку `env` у конфігурації (застосовується лише якщо змінної немає). - Потім перезапустіть gateway і перевірте ще раз: + Потім перезапустіть gateway і перевірте знову: ```bash openclaw models status @@ -1987,18 +1986,18 @@ x-i18n: -## Сесії та кілька чатів +## Сеанси і кілька чатів - Надішліть `/new` або `/reset` окремим повідомленням. Див. [Керування сесіями](/uk/concepts/session). + Надішліть `/new` або `/reset` як окреме повідомлення. Див. [Керування сеансами](/uk/concepts/session). - - Термін дії сесій може завершуватися після `session.idleMinutes`, але це **типово вимкнено** (типове значення **0**). - Установіть додатне значення, щоб увімкнути завершення після простою. Коли це ввімкнено, **наступне** - повідомлення після періоду простою починає новий ID сесії для цього ключа чату. - Це не видаляє транскрипти — це лише починає нову сесію. + + Термін дії сеансів може завершуватися після `session.idleMinutes`, але це **вимкнено за замовчуванням** (типове значення **0**). + Задайте додатне значення, щоб увімкнути завершення за неактивністю. Коли його увімкнено, **наступне** + повідомлення після періоду неактивності починає новий ідентифікатор сеансу для цього ключа чату. + Це не видаляє транскрипти — лише запускає новий сеанс. ```json5 { @@ -2010,41 +2009,41 @@ x-i18n: - - Так, через **маршрутизацію кількох агентів** і **субагентів**. Ви можете створити одного координувального - агента і кількох робочих агентів із власними workspace та моделями. + + Так, через **маршрутизацію кількох агентів** і **субагентів**. Ви можете створити одного агента-координатора + та кількох агентів-робітників із власними робочими просторами й моделями. - Втім, на це краще дивитися як на **цікавий експеримент**. Це витрачає багато токенів і часто - менш ефективно, ніж використання одного бота з окремими сесіями. Типова модель, яку ми - уявляємо, — один бот, з яким ви спілкуєтеся, з різними сесіями для паралельної роботи. Цей - бот також може запускати субагентів, коли це потрібно. + Втім, це найкраще сприймати як **цікавий експеримент**. Це витрачає багато токенів і часто + менш ефективно, ніж використання одного бота з окремими сеансами. Типова модель, яку ми + бачимо, — це один бот, з яким ви спілкуєтеся, але з різними сеансами для паралельної роботи. Такий + бот також може запускати субагентів за потреби. - Документація: [Маршрутизація кількох агентів](/uk/concepts/multi-agent), [Sub-agents](/uk/tools/subagents), [CLI Agents](/cli/agents). + Документація: [Маршрутизація кількох агентів](/uk/concepts/multi-agent), [Субагенти](/uk/tools/subagents), [CLI Agents](/cli/agents). - - Контекст сесії обмежений вікном моделі. Довгі чати, великі виводи інструментів або багато - файлів можуть викликати compaction або обрізання. + + Контекст сеансу обмежений вікном моделі. Довгі чати, великий вивід інструментів або багато + файлів можуть запускати Compaction або обрізання. Що допомагає: - - Попросіть бота підсумувати поточний стан і записати його у файл. - - Використовуйте `/compact` перед довгими завданнями, а `/new` — під час зміни тем. - - Тримайте важливий контекст у workspace і просіть бота перечитати його. + - Попросіть бота узагальнити поточний стан і записати його у файл. + - Використовуйте `/compact` перед довгими завданнями й `/new` під час зміни теми. + - Тримайте важливий контекст у робочому просторі й просіть бота перечитувати його. - Використовуйте субагентів для довгих або паралельних завдань, щоб основний чат залишався меншим. - Виберіть модель із більшим вікном контексту, якщо це трапляється часто. - + Використовуйте команду скидання: ```bash openclaw reset ``` - Неінтерактивне повне скидання: + Повне неінтерактивне скидання: ```bash openclaw reset --scope full --yes --non-interactive @@ -2058,57 +2057,57 @@ x-i18n: Примітки: - - Онбординг також пропонує **Reset**, якщо бачить наявну конфігурацію. Див. [Онбординг (CLI)](/uk/start/wizard). - - Якщо ви використовували профілі (`--profile` / `OPENCLAW_PROFILE`), скиньте кожен state dir (типово це `~/.openclaw-`). - - Скидання dev: `openclaw gateway --dev --reset` (лише для dev; очищає dev-конфігурацію + облікові дані + сесії + workspace). + - Onboarding також пропонує **Reset**, якщо бачить наявну конфігурацію. Див. [Onboarding (CLI)](/uk/start/wizard). + - Якщо ви використовували профілі (`--profile` / `OPENCLAW_PROFILE`), скиньте кожен каталог стану (типово це `~/.openclaw-`). + - Скидання для розробки: `openclaw gateway --dev --reset` (лише для dev; очищає dev-конфігурацію + облікові дані + сеанси + робочий простір). - Використайте один із варіантів: + Використайте один із таких варіантів: - - **Стиснення** (зберігає розмову, але підсумовує старіші ходи): + - **Compact** (зберігає розмову, але підсумовує старіші ходи): ``` /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`. Зазвичай це означає, що історія сесії застаріла або пошкоджена (часто після довгих гілок + Це помилка валідації провайдера: модель видала блок `tool_use` без обов’язкового + `input`. Зазвичай це означає, що історія сеансу застаріла або пошкоджена (часто після довгих тредів або зміни інструмента/схеми). - Виправлення: почніть нову сесію за допомогою `/new` (окреме повідомлення). + Виправлення: почніть новий сеанс за допомогою `/new` (окреме повідомлення). - Heartbeat типово запускається кожні **30 хв** (**1 год** при використанні OAuth-автентифікації). Налаштуйте або вимкніть його: + Heartbeat запускаються кожні **30m** за замовчуванням (**1h** при використанні OAuth-автентифікації). Налаштуйте або вимкніть їх: ```json5 { agents: { defaults: { heartbeat: { - every: "2h", // or "0m" to disable + every: "2h", // або "0m", щоб вимкнути }, }, }, @@ -2116,16 +2115,16 @@ x-i18n: ``` Якщо `HEARTBEAT.md` існує, але фактично порожній (лише порожні рядки та markdown-заголовки - на кшталт `# Heading`), OpenClaw пропускає запуск Heartbeat, щоб заощадити API-виклики. - Якщо файл відсутній, Heartbeat усе одно запускається, і модель вирішує, що робити. + на кшталт `# Heading`), OpenClaw пропускає запуск heartbeat, щоб заощадити API-виклики. + Якщо файл відсутній, heartbeat все одно запускається, і модель вирішує, що робити. - Overrides для конкретного агента використовують `agents.list[].heartbeat`. Документація: [Heartbeat](/uk/gateway/heartbeat). + Для перевизначень на рівні агента використовуйте `agents.list[].heartbeat`. Документація: [Heartbeat](/uk/gateway/heartbeat). - - Ні. OpenClaw працює від **вашого власного облікового запису**, тому якщо ви є в групі, OpenClaw може її бачити. - Типово відповіді в групах заблоковані, доки ви не дозволите відправників (`groupPolicy: "allowlist"`). + + Ні. OpenClaw працює у **вашому власному акаунті**, тож якщо ви є в групі, OpenClaw може її бачити. + За замовчуванням відповіді в групах заблоковані, доки ви не дозволите відправників (`groupPolicy: "allowlist"`). Якщо ви хочете, щоб запускати відповіді в групі могли лише **ви**: @@ -2143,7 +2142,7 @@ x-i18n: - Варіант 1 (найшвидший): дивіться логи в реальному часі та надішліть тестове повідомлення в групу: + Варіант 1 (найшвидший): відстежуйте журнали й надішліть тестове повідомлення в групу: ```bash openclaw logs --follow --json @@ -2152,59 +2151,59 @@ x-i18n: Шукайте `chatId` (або `from`), що закінчується на `@g.us`, наприклад: `1234567890-1234567890@g.us`. - Варіант 2 (якщо вже налаштовано/додано в allowlist): перегляньте групи з конфігурації: + Варіант 2 (якщо вже налаштовано/додано до allowlist): виведіть список груп із конфігурації: ```bash 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). - - Прямі чати типово згортаються до основної сесії. Групи/канали мають власні ключі сесій, а теми Telegram / гілки Discord є окремими сесіями. Див. [Групи](/uk/channels/groups) і [Групові повідомлення](/uk/channels/group-messages). + + Прямі чати за замовчуванням згортаються до основного сеансу. Групи/канали мають власні ключі сеансів, а теми Telegram / треди Discord є окремими сеансами. Див. [Групи](/uk/channels/groups) і [Групові повідомлення](/uk/channels/group-messages). - - Жорстких обмежень немає. Десятки (навіть сотні) — це нормально, але стежте за: + + Жорстких обмежень немає. Десятки (навіть сотні) — це нормально, але стежте за таким: - - **Зростанням диска:** сесії + транскрипти зберігаються в `~/.openclaw/agents//sessions/`. - - **Вартістю токенів:** більше агентів означає більше одночасного використання моделей. - - **Операційними витратами:** профілі автентифікації, workspace і маршрутизація каналів для кожного агента. + - **Зростання диска:** сеанси + транскрипти живуть у `~/.openclaw/agents//sessions/`. + - **Вартість токенів:** більше агентів означає більше одночасного використання моделей. + - **Операційні витрати:** профілі автентифікації, робочі простори й маршрутизація каналів для кожного агента. Поради: - - Тримайте один **активний** workspace на агента (`agents.defaults.workspace`). - - Очищайте старі сесії (видаляйте JSONL або записи сховища), якщо диск розростається. - - Використовуйте `openclaw doctor`, щоб знаходити зайві workspace і невідповідності профілів. + - Тримайте один **активний** робочий простір на агента (`agents.defaults.workspace`). + - Очищайте старі сеанси (видаляйте JSONL або записи сховища), якщо диск розростається. + - Використовуйте `openclaw doctor`, щоб виявляти зайві робочі простори й невідповідності профілів. - - Так. Використовуйте **Маршрутизацію кількох агентів**, щоб запускати кількох ізольованих агентів і маршрутизувати вхідні повідомлення за - каналом/обліковим записом/peer. Slack підтримується як канал і може бути прив’язаний до конкретних агентів. + + Так. Використовуйте **маршрутизацію кількох агентів**, щоб запускати кількох ізольованих агентів і маршрутизувати вхідні повідомлення за + каналом/акаунтом/peer. Slack підтримується як канал і може бути прив’язаний до конкретних агентів. - Доступ до браузера потужний, але це не «робити все, що може людина» — anti-bot, CAPTCHA і MFA - все ще можуть блокувати автоматизацію. Для найнадійнішого керування браузером використовуйте локальний Chrome MCP на хості, - або використовуйте CDP на машині, яка фактично запускає браузер. + Доступ до браузера дуже потужний, але це не «все, що може людина» — anti-bot, CAPTCHA і MFA + усе ще можуть блокувати автоматизацію. Для найнадійнішого керування браузером використовуйте локальний Chrome MCP на хості + або CDP на машині, яка фактично запускає браузер. - Найкраща практика налаштування: + Налаштування за найкращими практиками: - - Хост Gateway, що завжди ввімкнений (VPS/Mac mini). + - Хост Gateway, що завжди працює (VPS/Mac mini). - Один агент на роль (bindings). - Канал(и) Slack, прив’язані до цих агентів. - - Локальний браузер через Chrome MCP або Node, коли це потрібно. + - Локальний браузер через Chrome MCP або node, коли потрібно. Документація: [Маршрутизація кількох агентів](/uk/concepts/multi-agent), [Slack](/uk/channels/slack), [Браузер](/uk/tools/browser), [Nodes](/uk/nodes). @@ -2212,35 +2211,35 @@ x-i18n: -## Моделі: типові значення, вибір, aliases, перемикання +## Моделі: типові значення, вибір, псевдоніми, перемикання - Типова модель OpenClaw — це те, що ви встановили як: + Модель OpenClaw за замовчуванням — це те, що ви задаєте як: ``` agents.defaults.model.primary ``` - На моделі посилаються у форматі `provider/model` (приклад: `openai/gpt-5.4`). Якщо ви пропускаєте провайдера, OpenClaw спочатку намагається знайти alias, потім унікальний збіг точно цього model id серед налаштованих провайдерів, і лише потім повертається до налаштованого провайдера за замовчуванням як застарілого шляху сумісності. Якщо цей провайдер більше не надає налаштовану типову модель, OpenClaw повертається до першого налаштованого провайдера/моделі замість показу застарілого типового значення від видаленого провайдера. Але вам усе одно слід **явно** вказувати `provider/model`. + На моделі посилаються як `provider/model` (приклад: `openai/gpt-5.4`). Якщо ви пропускаєте провайдера, OpenClaw спочатку намагається використати псевдонім, потім — унікальний збіг налаштованого провайдера для точного id цієї моделі, і лише після цього повертається до налаштованого провайдера за замовчуванням як до застарілого шляху сумісності. Якщо цей провайдер більше не надає налаштовану типову модель, OpenClaw переходить до першого налаштованого провайдера/моделі замість того, щоб показувати застаріле типове значення від видаленого провайдера. Вам усе одно слід **явно** задавати `provider/model`. - **Рекомендована типова:** використовуйте найсильнішу модель останнього покоління, доступну у вашому стеку провайдерів. - **Для агентів з інструментами або недовіреним вхідним потоком:** ставте силу моделі вище за вартість. - **Для рутинного/низькоризикового чату:** використовуйте дешевші резервні моделі та маршрутизуйте за роллю агента. + **Рекомендований варіант за замовчуванням:** використовуйте найсильнішу модель останнього покоління, доступну у вашому стеку провайдерів. + **Для агентів з увімкненими інструментами або недовіреним входом:** ставте силу моделі вище за вартість. + **Для звичайного/низькоризикового чату:** використовуйте дешевші резервні моделі й маршрутизуйте за роллю агента. - MiniMax має власну документацію: [MiniMax](/uk/providers/minimax) і + Для MiniMax є окрема документація: [MiniMax](/uk/providers/minimax) і [Локальні моделі](/uk/gateway/local-models). Практичне правило: використовуйте **найкращу модель, яку можете собі дозволити** для важливих завдань, і дешевшу - модель для рутинного чату або підсумків. Ви можете маршрутизувати моделі за агентами і використовувати субагентів для - паралелізації довгих завдань (кожен субагент витрачає токени). Див. [Моделі](/uk/concepts/models) і - [Sub-agents](/uk/tools/subagents). + модель для повсякденного чату або підсумків. Ви можете маршрутизувати моделі для кожного агента й використовувати субагентів для + паралелізації довгих завдань (кожен субагент споживає токени). Див. [Моделі](/uk/concepts/models) і + [Субагенти](/uk/tools/subagents). - Сильне попередження: слабші/надмірно квантизовані моделі більш вразливі до prompt - injection і небезпечної поведінки. Див. [Безпека](/uk/gateway/security). + Сильне попередження: слабші/надмірно квантизовані моделі вразливіші до prompt injection + і небезпечної поведінки. Див. [Безпека](/uk/gateway/security). Більше контексту: [Моделі](/uk/concepts/models). @@ -2251,13 +2250,13 @@ x-i18n: Безпечні варіанти: - - `/model` у чаті (швидко, для однієї сесії) + - `/model` у чаті (швидко, для поточного сеансу) - `openclaw models set ...` (оновлює лише конфігурацію моделі) - `openclaw configure --section model` (інтерактивно) - редагуйте `agents.defaults.model` у `~/.openclaw/openclaw.json` - Уникайте `config.apply` з частковим об’єктом, якщо тільки ви не хочете замінити всю конфігурацію. - Для RPC-редагувань спочатку перегляньте через `config.schema.lookup` і віддавайте перевагу `config.patch`. payload lookup дає вам нормалізований шлях, поверхневу документацію/обмеження схеми та зведення безпосередніх дочірніх елементів + Уникайте `config.apply` з частковим об’єктом, якщо тільки ви не хочете замінити всю конфігурацію цілком. + Для RPC-редагувань спочатку перегляньте через `config.schema.lookup` і надавайте перевагу `config.patch`. Payload lookup дає вам нормалізований шлях, неглибоку документацію/обмеження схеми та короткі зведення безпосередніх дочірніх елементів для часткових оновлень. Якщо ви все ж перезаписали конфігурацію, відновіть її з резервної копії або повторно запустіть `openclaw doctor` для виправлення. @@ -2266,25 +2265,25 @@ x-i18n: - Так. Ollama — найпростіший шлях для локальних моделей. + Так. Ollama — найпростіший шлях до локальних моделей. Найшвидше налаштування: 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 + Примітка щодо безпеки: менші або сильно квантизовані моделі більш уразливі до prompt injection. Ми наполегливо рекомендуємо **великі моделі** для будь-якого бота, який може використовувати інструменти. - Якщо ви все ж хочете маленькі моделі, увімкніть ізоляцію та суворі allowlist-и інструментів. + Якщо ви все ж хочете малі моделі, увімкніть ізоляцію та строгі allowlist інструментів. Документація: [Ollama](/uk/providers/ollama), [Локальні моделі](/uk/gateway/local-models), [Провайдери моделей](/uk/concepts/model-providers), [Безпека](/uk/gateway/security), @@ -2293,9 +2292,9 @@ x-i18n: - - У цих розгортаннях можуть бути різні налаштування, і вони можуть змінюватися з часом; фіксованої рекомендації щодо провайдера немає. - - Перевіряйте поточне налаштування під час роботи на кожному gateway через `openclaw models status`. - - Для чутливих до безпеки/увімкнених для інструментів агентів використовуйте найсильнішу доступну модель останнього покоління. + - Ці розгортання можуть відрізнятися й змінюватися з часом; фіксованої рекомендації щодо провайдера немає. + - Перевіряйте поточне налаштування під час виконання на кожному gateway за допомогою `openclaw models status`. + - Для агентів, чутливих до безпеки/з інструментами, використовуйте найсильнішу доступну модель останнього покоління. @@ -2311,27 +2310,27 @@ x-i18n: /model gemini-flash-lite ``` - Це вбудовані aliases. Користувацькі aliases можна додати через `agents.defaults.models`. + Це вбудовані псевдоніми. Власні псевдоніми можна додавати через `agents.defaults.models`. Ви можете переглянути доступні моделі через `/model`, `/model list` або `/model status`. - `/model` (і `/model list`) показує компактний нумерований picker. Вибір за номером: + `/model` (і `/model list`) показує компактний нумерований вибір. Вибір за номером: ``` /model 3 ``` - Ви також можете примусово вказати конкретний профіль автентифікації для провайдера (на сесію): + Ви також можете примусово вибрати конкретний профіль автентифікації для провайдера (для сеансу): ``` /model opus@anthropic:default /model opus@anthropic:work ``` - Порада: `/model status` показує, який агент активний, який файл `auth-profiles.json` використовується і який профіль автентифікації буде випробувано наступним. - Він також показує налаштований endpoint провайдера (`baseUrl`) і режим API (`api`), коли це доступно. + Порада: `/model status` показує, який агент активний, який файл `auth-profiles.json` використовується і який профіль автентифікації буде спробовано наступним. + Він також показує налаштований endpoint провайдера (`baseUrl`) і режим API (`api`), коли вони доступні. - **Як зняти закріплення профілю, який я встановив через @profile?** + **Як зняти прив’язку профілю, який я задав через @profile?** Повторно виконайте `/model` **без** суфікса `@profile`: @@ -2344,23 +2343,23 @@ x-i18n: - - Так. Установіть одну як типову і перемикайтеся за потреби: + + Так. Задайте одну як типову й перемикайтеся за потреби: - - **Швидке перемикання (на сесію):** `/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` під час кодування (або навпаки). + - **Швидке перемикання (для сеансу):** `/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` під час кодування (або навпаки). - **Субагенти:** маршрутизуйте завдання кодування до субагентів з іншою типовою моделлю. - Див. [Моделі](/uk/concepts/models) і [Slash commands](/uk/tools/slash-commands). + Див. [Моделі](/uk/concepts/models) і [Slash-команди](/uk/tools/slash-commands). - Використовуйте або перемикач сесії, або типове значення в конфігурації: + Використовуйте або перемикач для сеансу, або типове значення в конфігурації: - - **На сесію:** надішліть `/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`, установіть той самий прапорець і там. + - **Для сеансу:** надішліть `/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`, задайте той самий прапорець і там. Приклад: @@ -2385,15 +2384,15 @@ 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). - Якщо встановлено `agents.defaults.models`, воно стає **allowlist-ом** для `/model` і будь-яких - перевизначень сесії. Вибір моделі, якої немає в цьому списку, повертає: + Якщо задано `agents.defaults.models`, це стає **allowlist** для `/model` і будь-яких + перевизначень сеансу. Вибір моделі, якої немає в цьому списку, повертає: ``` Model "provider/model" is not allowed. Use /model to list available models. @@ -2405,20 +2404,20 @@ x-i18n: - Це означає, що **провайдер не налаштований** (не знайдено ні конфігурації провайдера MiniMax, ні - профілю автентифікації), тому модель не може бути розв’язана. + Це означає, що **провайдер не налаштований** (не знайдено конфігурацію провайдера MiniMax або + профіль автентифікації), тому модель не може бути розв’язана. Контрольний список для виправлення: - 1. Оновіться до поточного релізу OpenClaw (або запускайте з вихідного коду `main`), а потім перезапустіть gateway. - 2. Переконайтеся, що MiniMax налаштований (майстер або JSON), або що автентифікація MiniMax - існує в env/профілях автентифікації, щоб відповідний провайдер міг бути інжектований + 1. Оновіться до актуального релізу OpenClaw (або запускайте з вихідного коду `main`), а потім перезапустіть gateway. + 2. Переконайтеся, що MiniMax налаштовано (через майстер або JSON), або що автентифікація MiniMax + існує в env/профілях автентифікації, щоб відповідний провайдер можна було інжектувати (`MINIMAX_API_KEY` для `minimax`, `MINIMAX_OAUTH_TOKEN` або збережений MiniMax OAuth для `minimax-portal`). - 3. Використовуйте точний model id (з урахуванням регістру) для вашого шляху автентифікації: + 3. Використовуйте точний id моделі (з урахуванням регістру) для вашого шляху автентифікації: `minimax/MiniMax-M2.7` або `minimax/MiniMax-M2.7-highspeed` для налаштування - з API key, або `minimax-portal/MiniMax-M2.7` / - `minimax-portal/MiniMax-M2.7-highspeed` для налаштування з OAuth. + через API-ключ, або `minimax-portal/MiniMax-M2.7` / + `minimax-portal/MiniMax-M2.7-highspeed` для налаштування через OAuth. 4. Виконайте: ```bash @@ -2431,11 +2430,11 @@ x-i18n: - - Так. Використовуйте **MiniMax за замовчуванням** і перемикайте моделі **на сесію** за потреби. - Резервні варіанти — це для **помилок**, а не для «складних завдань», тому використовуйте `/model` або окремого агента. + + Так. Використовуйте **MiniMax як типову модель** і перемикайте моделі **для кожного сеансу** за потреби. + Запасні варіанти використовуються для **помилок**, а не для «складних завдань», тому використовуйте `/model` або окремого агента. - **Варіант A: перемикання на сесію** + **Варіант A: перемикання для кожного сеансу** ```json5 { @@ -2460,16 +2459,16 @@ x-i18n: **Варіант B: окремі агенти** - - Типове значення агента A: MiniMax - - Типове значення агента B: OpenAI + - Типова модель агента A: MiniMax + - Типова модель агента B: OpenAI - Маршрутизуйте за агентом або використовуйте `/agent` для перемикання Документація: [Моделі](/uk/concepts/models), [Маршрутизація кількох агентів](/uk/concepts/multi-agent), [MiniMax](/uk/providers/minimax), [OpenAI](/uk/providers/openai). - - Так. OpenClaw постачається з кількома типовими shorthand-ами (застосовуються лише тоді, коли модель існує в `agents.defaults.models`): + + Так. OpenClaw постачається з кількома типовими скороченнями (застосовуються лише коли модель існує в `agents.defaults.models`): - `opus` → `anthropic/claude-opus-4-6` - `sonnet` → `anthropic/claude-sonnet-4-6` @@ -2480,12 +2479,12 @@ x-i18n: - `gemini-flash` → `google/gemini-3-flash-preview` - `gemini-flash-lite` → `google/gemini-3.1-flash-lite-preview` - Якщо ви задасте власний alias з такою самою назвою, ваше значення матиме пріоритет. + Якщо ви задасте власний псевдонім з тим самим ім’ям, ваше значення матиме пріоритет. - - Aliases беруться з `agents.defaults.models..alias`. Приклад: + + Псевдоніми походять із `agents.defaults.models..alias`. Приклад: ```json5 { @@ -2502,12 +2501,12 @@ x-i18n: } ``` - Тоді `/model sonnet` (або `/`, де це підтримується) розв’язується в цей model ID. + Після цього `/model sonnet` (або `/`, коли це підтримується) розв’язується в цей id моделі. - - OpenRouter (оплата за токен; багато моделей): + + OpenRouter (оплата за токени; багато моделей): ```json5 { @@ -2537,10 +2536,10 @@ x-i18n: Якщо ви посилаєтеся на `provider/model`, але потрібний ключ провайдера відсутній, ви отримаєте помилку автентифікації під час виконання (наприклад, `No API key found for provider "zai"`). - **Після додавання нового агента не знайдено API key для provider** + **No API key found for provider після додавання нового агента** - Зазвичай це означає, що **новий агент** має порожнє сховище автентифікації. Автентифікація прив’язана до агента і - зберігається в: + Зазвичай це означає, що в **нового агента** порожнє сховище автентифікації. Автентифікація прив’язана до агента і + зберігається тут: ``` ~/.openclaw/agents//agent/auth-profiles.json @@ -2548,120 +2547,120 @@ x-i18n: Варіанти виправлення: - - Виконайте `openclaw agents add ` і налаштуйте автентифікацію в майстрі. - - Або скопіюйте `auth-profiles.json` з `agentDir` головного агента до `agentDir` нового агента. + - Запустіть `openclaw agents add ` і налаштуйте автентифікацію під час майстра. + - Або скопіюйте `auth-profiles.json` з `agentDir` основного агента в `agentDir` нового агента. - **Не** використовуйте спільний `agentDir` для кількох агентів; це спричиняє колізії автентифікації/сесій. + **Не** використовуйте один `agentDir` повторно для кількох агентів; це спричиняє конфлікти автентифікації/сеансів. -## Резервування моделей і "All models failed" +## Резервне перемикання моделей і "All models failed" - - Резервування відбувається у два етапи: + + Резервне перемикання відбувається у два етапи: 1. **Ротація профілів автентифікації** в межах одного провайдера. - 2. **Резервна модель** до наступної моделі в `agents.defaults.model.fallbacks`. + 2. **Резервне перемикання моделі** на наступну модель у `agents.defaults.model.fallbacks`. - До профілів, що завершуються помилкою, застосовуються cooldown-и (експоненційний backoff), тож OpenClaw може продовжувати відповідати, навіть коли провайдер обмежений за rate limit або тимчасово недоступний. + До профілів, що дають збої, застосовуються періоди очікування (експоненційний backoff), тож OpenClaw може продовжувати відповідати, навіть коли провайдер упирається в rate limit або тимчасово дає збої. - Кошик rate limit включає більше, ніж просто відповіді `429`. OpenClaw - також трактує такі повідомлення, як `Too many concurrent requests`, + Кошик rate limit включає не лише звичайні відповіді `429`. OpenClaw + також вважає придатними для резервного перемикання rate limit-ами + повідомлення на кшталт `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, - `workers_ai ... quota limit exceeded`, `resource exhausted` і періодичні - обмеження вікон використання (`weekly/monthly limit reached`) як підставу - для резервування через rate limit. + `workers_ai ... quota limit exceeded`, `resource exhausted` та періодичні + обмеження вікна використання (`weekly/monthly limit reached`). - Деякі відповіді, схожі на проблеми білінгу, не є `402`, а деякі HTTP `402` - також залишаються в цьому транзитному кошику. Якщо провайдер повертає - явний текст про білінг у `401` або `403`, OpenClaw все одно може залишити це - у білінговому кошику, але текстові зіставлення, специфічні для провайдера, залишаються обмеженими - провайдером, якому вони належать (наприклад OpenRouter `Key limit exceeded`). Якщо ж повідомлення `402` + Деякі відповіді, схожі на billing, не є `402`, а деякі HTTP-відповіді `402` + теж залишаються в цьому тимчасовому кошику. Якщо провайдер повертає + явний текст про billing на `401` або `403`, OpenClaw усе одно може залишити це + в смузі billing, але специфічні для провайдера зіставлення тексту залишаються обмеженими + провайдером, якому вони належать (наприклад, OpenRouter `Key limit exceeded`). Якщо повідомлення `402` натомість схоже на повторюване вікно використання або - ліміт витрат organization/workspace (`daily limit reached, resets tomorrow`, + ліміт витрат організації/робочого простору (`daily limit reached, resets tomorrow`, `organization spending limit exceeded`), OpenClaw трактує це як - `rate_limit`, а не як довготривале вимкнення через білінг. + `rate_limit`, а не як довге вимкнення через billing. - Помилки переповнення контексту відрізняються: сигнатури на кшталт + Помилки переповнення контексту — інші: сигнатури на кшталт `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/повторної спроби замість переходу + до резервної моделі. - Узагальнений текст server error навмисно вужчий, ніж «усе, що містить - unknown/error». OpenClaw справді трактує форми транзитних помилок, специфічні для провайдера, - такі як голе повідомлення Anthropic `An unknown error occurred`, голе повідомлення OpenRouter + Узагальнений текст про серверні помилки навмисно вужчий, ніж «усе, що містить + unknown/error». OpenClaw вважає придатними для резервного перемикання + специфічні для провайдера тимчасові форми, як-от Anthropic bare `An unknown error occurred`, OpenRouter bare `Provider returned error`, помилки stop-reason на кшталт `Unhandled stop reason: - error`, JSON payload-и `api_error` із транзитним текстом server error + error`, JSON-payload `api_error` із тимчасовим серверним текстом (`internal server error`, `unknown error, 520`, `upstream error`, `backend - error`) і помилки перевантаження провайдера на кшталт `ModelNotReadyException`, як підставу - для резервування через timeout/перевантаження, коли контекст провайдера + error`) і помилки перевантаження провайдера, як-от `ModelNotReadyException`, + як сигнали timeout/перевантаження, варті резервного перемикання, коли контекст провайдера збігається. - Загальний внутрішній резервний текст на кшталт `LLM request failed with an unknown - error.` залишається консервативним і сам по собі не запускає резервну модель. + Загальний внутрішній fallback-текст на кшталт `LLM request failed with an unknown + error.` залишається консервативним і сам по собі не запускає резервне перемикання моделі. - Це означає, що система спробувала використати ID профілю автентифікації `anthropic:default`, але не змогла знайти облікові дані для нього в очікуваному сховищі автентифікації. + Це означає, що система спробувала використати id профілю автентифікації `anthropic:default`, але не змогла знайти для нього облікові дані в очікуваному сховищі автентифікації. - **Контрольний список для виправлення:** + **Контрольний список виправлення:** - - **Перевірте, де зберігаються профілі автентифікації** (нові чи застарілі шляхи) + - **Перевірте, де живуть профілі автентифікації** (нові та застарілі шляхи) - Поточний: `~/.openclaw/agents//agent/auth-profiles.json` - - Застарілий: `~/.openclaw/agent/*` (мігрується через `openclaw doctor`) - - **Переконайтеся, що ваша змінна середовища завантажується Gateway** - - Якщо ви встановили `ANTHROPIC_API_KEY` у своєму shell, але запускаєте Gateway через systemd/launchd, він може не успадковувати її. Помістіть її в `~/.openclaw/.env` або увімкніть `env.shellEnv`. - - **Переконайтеся, що ви редагуєте правильного агента** - - Налаштування з кількома агентами означають, що може бути кілька файлів `auth-profiles.json`. - - **Перевірте стан моделі/автентифікації** - - Використовуйте `openclaw models status`, щоб побачити налаштовані моделі та чи провайдери автентифіковані. + - Застарілий: `~/.openclaw/agent/*` (мігрується за допомогою `openclaw doctor`) + - **Переконайтеся, що Gateway завантажує вашу змінну середовища** + - Якщо ви задали `ANTHROPIC_API_KEY` у своїй оболонці, але запускаєте Gateway через systemd/launchd, він може не успадковувати її. Додайте її в `~/.openclaw/.env` або увімкніть `env.shellEnv`. + - **Переконайтеся, що редагуєте правильного агента** + - У конфігураціях із кількома агентами може бути кілька файлів `auth-profiles.json`. + - **Швидко перевірте стан моделі/автентифікації** + - Використовуйте `openclaw models status`, щоб побачити налаштовані моделі та чи пройшли провайдери автентифікацію. - **Контрольний список для виправлення "No credentials found for profile anthropic"** + **Контрольний список виправлення для "No credentials found for profile anthropic"** Це означає, що запуск прив’язаний до профілю автентифікації Anthropic, але Gateway не може знайти його у своєму сховищі автентифікації. - **Використовуйте Claude CLI** - - Виконайте `openclaw models auth login --provider anthropic --method cli --set-default` на хості gateway. - - **Якщо ви хочете натомість використовувати API key** - - Помістіть `ANTHROPIC_API_KEY` у `~/.openclaw/.env` на **хості gateway**. - - Очистіть будь-який закріплений порядок, який примусово вимагає відсутній профіль: + - Запустіть `openclaw models auth login --provider anthropic --method cli --set-default` на хості gateway. + - **Якщо ви хочете використовувати API-ключ** + - Додайте `ANTHROPIC_API_KEY` у `~/.openclaw/.env` на **хості gateway**. + - Очистіть будь-який закріплений порядок, який примусово використовує відсутній профіль: ```bash openclaw models auth order clear --provider anthropic ``` - - **Переконайтеся, що ви виконуєте команди на хості gateway** + - **Переконайтеся, що запускаєте команди на хості gateway** - У віддаленому режимі профілі автентифікації живуть на машині gateway, а не на вашому ноутбуці. - Якщо конфігурація вашої моделі включає Google Gemini як резервний варіант (або ви перемкнулися на shorthand 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` / aliases, щоб резервування не маршрутизувалося туди. + Виправлення: або надайте автентифікацію 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` для цього агента. ## Профілі автентифікації: що це таке і як ними керувати -Пов’язано: [/concepts/oauth](/uk/concepts/oauth) (OAuth-потоки, зберігання токенів, шаблони з кількома обліковими записами) +Пов’язане: [/concepts/oauth](/uk/concepts/oauth) (потоки OAuth, зберігання токенів, шаблони для кількох акаунтів) - Профіль автентифікації — це іменований запис облікових даних (OAuth або API key), прив’язаний до провайдера. Профілі зберігаються в: + Профіль автентифікації — це іменований запис облікових даних (OAuth або API-ключ), прив’язаний до провайдера. Профілі зберігаються тут: ``` ~/.openclaw/agents//agent/auth-profiles.json @@ -2669,64 +2668,64 @@ x-i18n: - - OpenClaw використовує ID з префіксом провайдера, наприклад: + + OpenClaw використовує id з префіксом провайдера, наприклад: - - `anthropic:default` (типово, коли немає identity на основі email) - - `anthropic:` для OAuth identity - - користувацькі ID, які ви вибираєте (наприклад `anthropic:work`) + - `anthropic:default` (поширений варіант, коли немає ідентичності email) + - `anthropic:` для OAuth-ідентичностей + - власні id, які ви вибираєте (наприклад `anthropic:work`) - Так. Конфігурація підтримує необов’язкові метадані для профілів і порядок для кожного провайдера (`auth.order.`). Це **не** зберігає секрети; воно зіставляє ID з провайдером/режимом і задає порядок ротації. + Так. Конфігурація підтримує необов’язкові метадані для профілів і порядок для кожного провайдера (`auth.order.`). Це **не** зберігає секрети; воно відображає id у provider/mode і задає порядок ротації. - OpenClaw може тимчасово пропускати профіль, якщо він перебуває в короткому **cooldown** (rate limits/timeouts/auth failures) або в довшому стані **disabled** (billing/insufficient credits). Щоб перевірити це, виконайте `openclaw models status --json` і перегляньте `auth.unusableProfiles`. Налаштування: `auth.cooldowns.billingBackoffHours*`. + OpenClaw може тимчасово пропускати профіль, якщо він перебуває в короткому **cooldown** (rate limit/timeout/збої автентифікації) або в довшому стані **disabled** (billing/недостатньо кредитів). Щоб перевірити це, виконайте `openclaw models status --json` і перегляньте `auth.unusableProfiles`. Налаштування: `auth.cooldowns.billingBackoffHours*`. - Cooldown-и через rate limit можуть бути прив’язані до моделі. Профіль, який перебуває в cooldown - для однієї моделі, усе ще може бути придатним для спорідненої моделі того самого провайдера, + Cooldown через rate limit може бути прив’язаний до моделі. Профіль, який охолоджується + для однієї моделі, усе ще може бути придатним для сусідньої моделі того самого провайдера, тоді як вікна billing/disabled усе ще блокують увесь профіль. - Ви також можете задати **порядок для конкретного агента** (зберігається в `auth-state.json` цього агента) через CLI: + Ви також можете задати **порядок перевизначення для конкретного агента** (зберігається в `auth-state.json` цього агента) через CLI: ```bash - # Defaults to the configured default agent (omit --agent) + # Типово використовується налаштований типовий агент (можна пропустити --agent) openclaw models auth order get --provider anthropic - # Lock rotation to a single profile (only try this one) + # Зафіксувати ротацію на одному профілі (пробувати лише цей) openclaw models auth order set --provider anthropic anthropic:default - # Or set an explicit order (fallback within provider) + # Або задати явний порядок (резервне перемикання в межах провайдера) openclaw models auth order set --provider anthropic anthropic:work anthropic:default - # Clear override (fall back to config auth.order / round-robin) + # Очистити перевизначення (повернутися до config auth.order / round-robin) openclaw models auth order clear --provider anthropic ``` - Щоб націлитися на конкретного агента: + Щоб націлити на конкретного агента: ```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 keys** використовують білінг pay-per-token. + - **API-ключі** використовують білінг pay-per-token. - Майстер явно підтримує Anthropic Claude CLI, OpenAI Codex OAuth і API keys. + Майстер явно підтримує Anthropic Claude CLI, OpenAI Codex OAuth і API-ключі. @@ -2745,19 +2744,19 @@ x-i18n: - - Тому що "running" — це погляд **supervisor-а** (launchd/systemd/schtasks). А connectivity probe — це фактичне підключення CLI до gateway WebSocket. + + Тому що "running" — це погляд **супервізора** (launchd/systemd/schtasks). А перевірка підключення — це CLI, який реально підключається до gateway WebSocket. - Використовуйте `openclaw gateway status` і довіряйте таким рядкам: + Використовуйте `openclaw gateway status` і орієнтуйтеся на ці рядки: - - `Probe target:` (URL, який probe фактично використав) + - `Probe target:` (URL, який перевірка реально використовувала) - `Listening:` (що реально прив’язано до порту) - - `Last gateway error:` (поширена першопричина, коли процес живий, але порт не слухає) + - `Last gateway error:` (типова першопричина, коли процес живий, але порт не слухає) - Ви редагуєте один файл конфігурації, а сервіс працює з іншим (часто через невідповідність `--profile` / `OPENCLAW_STATE_DIR`). + Ви редагуєте один файл конфігурації, тоді як сервіс запускає інший (часто через невідповідність `--profile` / `OPENCLAW_STATE_DIR`). Виправлення: @@ -2765,19 +2764,19 @@ x-i18n: openclaw gateway install --force ``` - Запускайте це з того самого `--profile` / середовища, яке сервіс має використовувати. + Запускайте це з тим самим `--profile` / середовищем, яке ви хочете, щоб використовував сервіс. - OpenClaw примусово використовує runtime-lock, одразу прив’язуючи слухач WebSocket під час запуску (типово `ws://127.0.0.1:18789`). Якщо bind завершується помилкою `EADDRINUSE`, викидається `GatewayLockError`, що означає: інший екземпляр уже слухає. + OpenClaw примусово забезпечує runtime lock, одразу прив’язуючи WebSocket listener під час запуску (типово `ws://127.0.0.1:18789`). Якщо прив’язка завершується з `EADDRINUSE`, він викидає `GatewayLockError`, що означає: інший екземпляр уже слухає. Виправлення: зупиніть інший екземпляр, звільніть порт або запускайте з `openclaw gateway --port `. - Установіть `gateway.mode: "remote"` і вкажіть віддалений URL WebSocket, за потреби з віддаленими обліковими даними на основі спільного секрету: + Задайте `gateway.mode: "remote"` і вкажіть віддалену URL-адресу WebSocket, за бажанням із віддаленими обліковими даними спільного секрету: ```json5 { @@ -2795,89 +2794,89 @@ x-i18n: Примітки: - `openclaw gateway` запускається лише тоді, коли `gateway.mode` має значення `local` (або ви передаєте прапорець перевизначення). - - Застосунок macOS стежить за файлом конфігурації та переключає режими в реальному часі, коли ці значення змінюються. + - Застосунок macOS відстежує файл конфігурації й перемикає режими в реальному часі, коли ці значення змінюються. - `gateway.remote.token` / `.password` — це лише клієнтські віддалені облікові дані; самі по собі вони не вмикають локальну автентифікацію gateway. - + Шлях автентифікації вашого gateway і метод автентифікації UI не збігаються. Факти (з коду): - - Control UI зберігає токен у `sessionStorage` для поточної сесії вкладки браузера та вибраного URL gateway, тому оновлення в тій самій вкладці продовжують працювати без відновлення довготривалого збереження токена в localStorage. - - При `AUTH_TOKEN_MISMATCH` довірені клієнти можуть зробити одну обмежену повторну спробу з кешованим токеном пристрою, коли gateway повертає підказки для повтору (`canRetryWithDeviceToken=true`, `recommendedNextStep=retry_with_device_token`). - - Тепер ця повторна спроба з кешованим токеном повторно використовує кешовані дозволені scopes, збережені разом із токеном пристрою. Виклики з явним `deviceToken` / явними `scopes` усе ще зберігають свій запитаний набір scopes замість успадкування кешованих scopes. - - Поза цим шляхом повторної спроби пріоритет автентифікації connect такий: спочатку явний shared token/password, потім явний `deviceToken`, потім збережений токен пристрою, потім bootstrap token. - - Перевірки scopes для bootstrap token мають префікси ролей. Вбудований allowlist bootstrap operator задовольняє лише запити operator; для node або інших ролей, відмінних від operator, усе ще потрібні scopes під власним префіксом ролі. + - Control UI зберігає токен у `sessionStorage` для поточної сесії вкладки браузера й вибраної URL-адреси gateway, тож оновлення в тій самій вкладці продовжують працювати без відновлення довготривалого збереження токена в localStorage. + - При `AUTH_TOKEN_MISMATCH` довірені клієнти можуть виконати одну обмежену повторну спробу з кешованим токеном пристрою, коли gateway повертає підказки для повтору (`canRetryWithDeviceToken=true`, `recommendedNextStep=retry_with_device_token`). + - Ця повторна спроба з кешованим токеном тепер повторно використовує кешовані затверджені scope, збережені разом із токеном пристрою. Виклики з явним `deviceToken` / явними `scopes` все одно зберігають свій запитаний набір scope замість успадкування кешованих scope. + - Поза цим шляхом повторної спроби пріоритет автентифікації підключення такий: спочатку явний shared token/password, потім явний `deviceToken`, потім збережений токен пристрою, потім bootstrap token. + - Перевірки scope bootstrap token мають префікси ролей. Вбудований allowlist bootstrap operator задовольняє лише запити оператора; node або інші ролі не-оператора все одно потребують scope під власним префіксом ролі. Виправлення: - - Найшвидше: `openclaw dashboard` (виводить + копіює URL dashboard, намагається відкрити; у headless показує підказку для SSH). + - Найшвидше: `openclaw dashboard` (друкує + копіює URL-адресу панелі керування, намагається відкрити; показує підказку SSH, якщо режим headless). - Якщо у вас ще немає токена: `openclaw doctor --generate-gateway-token`. - - Якщо це віддалений режим, спочатку підніміть тунель: `ssh -N -L 18789:127.0.0.1:18789 user@host`, а потім відкрийте `http://127.0.0.1:18789/`. - - Режим shared-secret: установіть `gateway.auth.token` / `OPENCLAW_GATEWAY_TOKEN` або `gateway.auth.password` / `OPENCLAW_GATEWAY_PASSWORD`, а потім вставте відповідний секрет у налаштуваннях Control UI. - - Режим Tailscale Serve: переконайтеся, що `gateway.auth.allowTailscale` увімкнено і ви відкриваєте URL Serve, а не сирий URL loopback/tailnet, який обходить заголовки ідентичності Tailscale. - - Режим trusted-proxy: переконайтеся, що ви заходите через налаштований non-loopback identity-aware proxy, а не через loopback proxy на тому самому хості чи сирий URL gateway. - - Якщо невідповідність зберігається після однієї повторної спроби, перевипустіть/повторно схваліть токен спареного пристрою: + - Якщо режим віддалений, спочатку підніміть тунель: `ssh -N -L 18789:127.0.0.1:18789 user@host`, а потім відкрийте `http://127.0.0.1:18789/`. + - Режим shared-secret: задайте `gateway.auth.token` / `OPENCLAW_GATEWAY_TOKEN` або `gateway.auth.password` / `OPENCLAW_GATEWAY_PASSWORD`, а потім вставте відповідний секрет у налаштуваннях Control UI. + - Режим Tailscale Serve: переконайтеся, що `gateway.auth.allowTailscale` увімкнено і ви відкриваєте URL Serve, а не сиру URL loopback/tailnet, яка обходить заголовки ідентичності Tailscale. + - Режим trusted-proxy: переконайтеся, що ви приходите через налаштований non-loopback proxy з урахуванням ідентичності, а не через loopback proxy на тому самому хості чи сиру URL gateway. + - Якщо невідповідність зберігається після однієї повторної спроби, поверніть/перезатвердьте токен спареного пристрою: - `openclaw devices list` - `openclaw devices rotate --device --role operator` - Якщо цей виклик rotate каже, що його відхилено, перевірте дві речі: - - сесії спарених пристроїв можуть перевипускати лише **власний** пристрій, якщо тільки вони також не мають `operator.admin` - - явні значення `--scope` не можуть перевищувати поточні scopes operator у виклику - - Усе ще застрягли? Виконайте `openclaw status --all` і дотримуйтеся [Усунення несправностей](/uk/gateway/troubleshooting). Подробиці автентифікації див. в [Dashboard](/web/dashboard). + - сесії спареного пристрою можуть повертати лише **власний** пристрій, якщо тільки вони не мають також `operator.admin` + - явні значення `--scope` не можуть перевищувати поточні operator scope викликача + - Досі не вдається? Запустіть `openclaw status --all` і дотримуйтеся [Усунення несправностей](/uk/gateway/troubleshooting). Подробиці автентифікації див. у [Панель керування](/web/dashboard). - - Bind `tailnet` вибирає Tailscale IP з ваших мережевих інтерфейсів (100.64.0.0/10). Якщо машина не в Tailscale (або інтерфейс неактивний), прив’язуватися просто нема до чого. + + Прив’язка `tailnet` вибирає IP Tailscale з ваших мережевих інтерфейсів (100.64.0.0/10). Якщо машина не в Tailscale (або інтерфейс вимкнено), прив’язуватися нема до чого. Виправлення: - Запустіть Tailscale на цьому хості (щоб він мав адресу 100.x), або - Перемкніться на `gateway.bind: "loopback"` / `"lan"`. - Примітка: `tailnet` є явним. `auto` віддає перевагу loopback; використовуйте `gateway.bind: "tailnet"`, коли вам потрібен bind лише до tailnet. + Примітка: `tailnet` є явним варіантом. `auto` надає перевагу loopback; використовуйте `gateway.bind: "tailnet"`, коли хочете прив’язку лише до tailnet. - Зазвичай ні — один Gateway може обслуговувати кілька каналів обміну повідомленнями та агентів. Використовуйте кілька Gateway лише тоді, коли вам потрібна надлишковість (наприклад, rescue bot) або жорстка ізоляція. + Зазвичай ні — один Gateway може запускати кілька каналів повідомлень і агентів. Використовуйте кілька Gateway лише тоді, коли вам потрібна резервність (наприклад, rescue bot) або жорстка ізоляція. - Так, але потрібно ізолювати: + Так, але ви маєте ізолювати: - `OPENCLAW_CONFIG_PATH` (конфігурація для кожного екземпляра) - `OPENCLAW_STATE_DIR` (стан для кожного екземпляра) - - `agents.defaults.workspace` (ізоляція workspace) + - `agents.defaults.workspace` (ізоляція робочого простору) - `gateway.port` (унікальні порти) Швидке налаштування (рекомендовано): - Використовуйте `openclaw --profile ...` для кожного екземпляра (автоматично створює `~/.openclaw-`). - - Установіть унікальний `gateway.port` у конфігурації кожного профілю (або передавайте `--port` для ручних запусків). + - Задайте унікальний `gateway.port` у конфігурації кожного профілю (або передайте `--port` для ручних запусків). - Установіть сервіс для кожного профілю: `openclaw --profile gateway install`. Профілі також додають суфікси до назв сервісів (`ai.openclaw.`; застарілі `com.openclaw.*`, `openclaw-gateway-.service`, `OpenClaw Gateway ()`). - Повна інструкція: [Кілька gateway](/uk/gateway/multiple-gateways). + Повний посібник: [Кілька gateway](/uk/gateway/multiple-gateways). - - Gateway — це **WebSocket-сервер**, і він очікує, що найперше повідомлення буде - фреймом `connect`. Якщо він отримує щось інше, то закриває з’єднання + + Gateway — це **сервер WebSocket**, і він очікує, що найперше повідомлення + буде кадром `connect`. Якщо він отримує щось інше, то закриває з’єднання з **кодом 1008** (порушення політики). Поширені причини: - Ви відкрили URL **HTTP** у браузері (`http://...`) замість клієнта WS. - Ви використали неправильний порт або шлях. - - Proxy або тунель обрізав заголовки автентифікації чи надіслав запит не для Gateway. + - Proxy або тунель обрізав заголовки автентифікації або надіслав запит не для Gateway. Швидкі виправлення: 1. Використовуйте URL WS: `ws://:18789` (або `wss://...`, якщо HTTPS). 2. Не відкривайте порт WS у звичайній вкладці браузера. - 3. Якщо автентифікацію ввімкнено, додайте токен/пароль у фрейм `connect`. + 3. Якщо автентифікацію увімкнено, включіть токен/пароль у кадр `connect`. Якщо ви використовуєте CLI або TUI, URL має виглядати так: @@ -2890,31 +2889,31 @@ 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): + Журнали сервісу/супервізора (коли 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). @@ -2943,7 +2942,7 @@ x-i18n: openclaw gateway restart ``` - Якщо ви ніколи не встановлювали сервіс, запустіть його у foreground: + Якщо ви ніколи не встановлювали сервіс, запустіть його на передньому плані: ```bash openclaw gateway run @@ -2968,7 +2967,7 @@ x-i18n: - + Почніть із швидкої перевірки стану: ```bash @@ -2981,10 +2980,10 @@ x-i18n: Поширені причини: - Автентифікацію моделі не завантажено на **хості gateway** (перевірте `models status`). - - Спарювання каналу/allowlist блокує відповіді (перевірте конфігурацію каналу + логи). - - WebChat/Dashboard відкрито без правильного токена. + - Pairing/allowlist каналу блокує відповіді (перевірте конфігурацію каналу + журнали). + - WebChat/Панель керування відкрито без правильного токена. - Якщо ви у віддаленому режимі, переконайтеся, що тунель/Tailscale-з’єднання активне і + Якщо ви працюєте віддалено, переконайтеся, що тунель/з’єднання Tailscale активне й що Gateway WebSocket доступний. Документація: [Канали](/uk/channels), [Усунення несправностей](/uk/gateway/troubleshooting), [Віддалений доступ](/uk/gateway/remote). @@ -2994,23 +2993,23 @@ 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. Якщо режим віддалений, чи активне з’єднання тунелю/Tailscale? - Потім перегляньте логи в реальному часі: + Потім відстежуйте журнали: ```bash openclaw logs --follow ``` - Документація: [Dashboard](/web/dashboard), [Віддалений доступ](/uk/gateway/remote), [Усунення несправностей](/uk/gateway/troubleshooting). + Документація: [Панель керування](/web/dashboard), [Віддалений доступ](/uk/gateway/remote), [Усунення несправностей](/uk/gateway/troubleshooting). - - Почніть із логів і статусу каналу: + + Почніть із журналів і стану каналу: ```bash openclaw channels status @@ -3019,16 +3018,16 @@ x-i18n: Потім зіставте помилку: - - `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 commands або вимкніть `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 доступний і агент може працювати: ```bash @@ -3037,14 +3036,14 @@ x-i18n: openclaw logs --follow ``` - У TUI використовуйте `/status`, щоб побачити поточний стан. Якщо ви очікуєте відповіді в чат-каналі, - переконайтеся, що доставку ввімкнено (`/deliver on`). + У TUI використовуйте `/status`, щоб побачити поточний стан. Якщо ви очікуєте відповіді в чаті + каналу, переконайтеся, що доставку ввімкнено (`/deliver on`). - Документація: [TUI](/web/tui), [Slash commands](/uk/tools/slash-commands). + Документація: [TUI](/web/tui), [Slash-команди](/uk/tools/slash-commands). - + Якщо ви встановили сервіс: ```bash @@ -3052,10 +3051,10 @@ x-i18n: openclaw gateway start ``` - Це зупиняє/запускає **керований сервіс** (launchd на macOS, systemd на Linux). + Це зупиняє/запускає **сервіс під наглядом** (launchd у macOS, systemd у Linux). Використовуйте це, коли Gateway працює у фоновому режимі як демон. - Якщо ви запускаєте його у foreground, зупиніть через Ctrl-C, а потім: + Якщо ви запускаєте його на передньому плані, зупиніть через Ctrl-C, а потім: ```bash openclaw gateway run @@ -3065,25 +3064,25 @@ x-i18n: - + - `openclaw gateway restart`: перезапускає **фоновий сервіс** (launchd/systemd). - - `openclaw gateway`: запускає gateway **у foreground** для цієї сесії термінала. + - `openclaw gateway`: запускає gateway **на передньому плані** для цієї сесії термінала. Якщо ви встановили сервіс, використовуйте команди gateway. Використовуйте `openclaw gateway`, коли - хочете одноразовий запуск у foreground. + вам потрібен одноразовий запуск на передньому плані. - - Запустіть Gateway з `--verbose`, щоб отримати більше деталей у консолі. Потім перегляньте файл логів для автентифікації каналів, маршрутизації моделей і помилок RPC. + + Запустіть Gateway з `--verbose`, щоб отримати більше подробиць у консолі. Потім перевірте файл журналу на помилки автентифікації каналу, маршрутизації моделі та RPC. ## Медіа та вкладення - - Вихідні вкладення від агента мають містити рядок `MEDIA:` (в окремому рядку). Див. [Налаштування помічника OpenClaw](/uk/start/openclaw) і [Надсилання Agent](/uk/tools/agent-send). + + Вихідні вкладення від агента мають містити рядок `MEDIA:` (в окремому рядку). Див. [Налаштування помічника OpenClaw](/uk/start/openclaw) і [Надсилання агентом](/uk/tools/agent-send). Надсилання через CLI: @@ -3093,10 +3092,10 @@ x-i18n: Також перевірте: - - Цільовий канал підтримує вихідні медіа і не заблокований allowlist-ами. - - Файл не перевищує ліміти розміру провайдера (зображення змінюють розмір до максимуму 2048px). - - `tools.fs.workspaceOnly=true` обмежує надсилання локальних шляхів workspace, temp/media-store і файлами, перевіреними sandbox. - - `tools.fs.workspaceOnly=false` дозволяє `MEDIA:` надсилати локальні файли хоста, які агент уже може читати, але лише для медіа та безпечних типів документів (зображення, аудіо, відео, PDF і Office-документи). Звичайний текст і файли, схожі на секрети, усе одно блокуються. + - Цільовий канал підтримує вихідні медіа й не заблокований allowlist. + - Файл не перевищує лімітів розміру провайдера (зображення зменшуються максимум до 2048px). + - `tools.fs.workspaceOnly=true` обмежує надсилання локальних шляхів робочим простором, temp/media-store і файлами, перевіреними sandbox. + - `tools.fs.workspaceOnly=false` дозволяє `MEDIA:` надсилати локальні файли хоста, які агент уже може читати, але лише для медіа та безпечних типів документів (зображення, аудіо, відео, PDF і документи Office). Звичайний текст і файли, схожі на секрети, усе одно блокуються. Див. [Зображення](/uk/nodes/images). @@ -3107,109 +3106,109 @@ x-i18n: - Ставтеся до вхідних DM як до недовіреного вмісту. Типові значення налаштовані так, щоб зменшувати ризик: + Ставтеся до вхідних DM як до недовіреного вводу. Типові налаштування спроєктовані так, щоб зменшити ризик: - - Типова поведінка на каналах, що підтримують DM, — це **спарювання**: - - Невідомі відправники отримують код спарювання; бот не обробляє їхнє повідомлення. - - Схвалити можна так: `openclaw pairing approve --channel [--account ] ` - - Кількість запитів у черзі обмежена до **3 на канал**; перевірте `openclaw pairing list --channel [--account ]`, якщо код не надійшов. - - Публічне відкриття DM потребує явного opt-in (`dmPolicy: "open"` і allowlist `"*"`). + - Типова поведінка на каналах із підтримкою DM — **pairing**: + - Невідомі відправники отримують код pairing; бот не обробляє їхнє повідомлення. + - Підтвердити можна так: `openclaw pairing approve --channel [--account ] ` + - Кількість очікуваних запитів обмежена **3 на канал**; перевіряйте `openclaw pairing list --channel [--account ]`, якщо код не надійшов. + - Публічне відкриття DM вимагає явного opt-in (`dmPolicy: "open"` і allowlist `"*"`). Запустіть `openclaw doctor`, щоб виявити ризиковані політики DM. - - Ні. Prompt injection стосується **недовіреного вмісту**, а не лише того, хто може надсилати DM боту. - Якщо ваш помічник читає зовнішній вміст (web search/fetch, сторінки браузера, email, - документи, вкладення, вставлені логи), цей вміст може містити інструкції, які намагаються - перехопити контроль над моделлю. Це може статися навіть якщо **ви — єдиний відправник**. + + Ні. Prompt injection стосується **недовіреного контенту**, а не лише того, хто може писати боту в DM. + Якщо ваш помічник читає зовнішній контент (web search/fetch, сторінки браузера, листи, + документи, вкладення, вставлені журнали), цей контент може містити інструкції, які намагаються + перехопити керування моделлю. Це може статися, навіть якщо **єдиний відправник — ви**. - Найбільший ризик виникає, коли увімкнено інструменти: модель можна обманом змусити - ексфільтрувати контекст або викликати інструменти від вашого імені. Зменшуйте радіус ураження так: + Найбільший ризик виникає, коли ввімкнені інструменти: модель можна обманом змусити + ексфільтрувати контекст або викликати інструменти від вашого імені. Зменшити радіус ураження можна так: - - використовуйте агента-"читача" лише для читання або без інструментів, щоб підсумовувати недовірений вміст - - тримайте `web_search` / `web_fetch` / `browser` вимкненими для агентів з увімкненими інструментами - - ставтеся до декодованого тексту файлів/документів також як до недовіреного: OpenResponses + - використовувати «читача» без інструментів або лише для читання для узагальнення недовіреного контенту + - тримати `web_search` / `web_fetch` / `browser` вимкненими для агентів з увімкненими інструментами + - також ставитися до декодованого тексту файлів/документів як до недовіреного: OpenResponses `input_file` і витяг тексту з медіавкладень обгортають витягнутий текст у - явні маркери меж зовнішнього вмісту замість передачі сирого тексту файлу - - використовуйте ізоляцію та суворі allowlist-и інструментів + явні маркери меж зовнішнього контенту замість передавання сирого тексту файлу + - використовувати ізоляцію та суворі allowlist інструментів Подробиці: [Безпека](/uk/gateway/security). - - Так, для більшості конфігурацій. Ізоляція бота окремими обліковими записами й номерами телефонів + + Так, для більшості конфігурацій. Ізоляція бота за допомогою окремих акаунтів і номерів телефону зменшує радіус ураження, якщо щось піде не так. Це також полегшує ротацію - облікових даних або відкликання доступу без впливу на ваші особисті облікові записи. + облікових даних або відкликання доступу без впливу на ваші особисті акаунти. - Починайте з малого. Надавайте доступ лише до тих інструментів і облікових записів, які вам справді потрібні, і розширюйте - пізніше, якщо буде потрібно. + Починайте з малого. Давайте доступ лише до тих інструментів і акаунтів, які вам справді потрібні, і розширюйте + його пізніше, якщо знадобиться. - Документація: [Безпека](/uk/gateway/security), [Спарювання](/uk/channels/pairing). + Документація: [Безпека](/uk/gateway/security), [Pairing](/uk/channels/pairing). - - Ми **не** рекомендуємо повну автономність над вашими особистими повідомленнями. Найбезпечніший шаблон: + + Ми **не** рекомендуємо повну автономію над вашими особистими повідомленнями. Найбезпечніший шаблон: - - Тримайте DM у **режимі спарювання** або в жорсткому allowlist. - - Використовуйте **окремий номер або обліковий запис**, якщо хочете, щоб він писав від вашого імені. - - Нехай він створює чернетку, а ви **підтверджуєте перед надсиланням**. + - Тримайте DM у режимі **pairing** або в жорсткому allowlist. + - Використовуйте **окремий номер або акаунт**, якщо хочете, щоб він надсилав повідомлення від вашого імені. + - Дозвольте йому готувати чернетку, а потім **затверджуйте перед надсиланням**. - Якщо хочете поекспериментувати, робіть це на окремому обліковому записі й тримайте все ізольованим. Див. + Якщо ви хочете поекспериментувати, робіть це на окремому акаунті й тримайте його ізольованим. Див. [Безпека](/uk/gateway/security). - Так, **якщо** агент лише для чату, а вхідні дані довірені. Менші рівні + Так, **якщо** агент працює лише в чаті, а вхідні дані довірені. Менші рівні більш схильні до перехоплення інструкцій, тому уникайте їх для агентів з увімкненими інструментами - або коли читаєте недовірений вміст. Якщо вам усе ж потрібно використовувати меншу модель, жорстко обмежте + або коли читаєте недовірений контент. Якщо вже мусите використовувати меншу модель, жорстко обмежте інструменти й запускайте всередині sandbox. Див. [Безпека](/uk/gateway/security). - - Коди спарювання надсилаються **лише** тоді, коли невідомий відправник пише боту і - `dmPolicy: "pairing"` увімкнено. Сам по собі `/start` не генерує код. + + Коди pairing надсилаються **лише** тоді, коли невідомий відправник пише боту і + ввімкнено `dmPolicy: "pairing"`. Сам по собі `/start` не генерує код. - Перевірте запити в черзі: + Перевірте запити, що очікують: ```bash openclaw pairing list telegram ``` - Якщо вам потрібен негайний доступ, додайте свій sender id в allowlist або встановіть `dmPolicy: "open"` - для цього облікового запису. + Якщо вам потрібен негайний доступ, додайте свій id відправника до allowlist або задайте `dmPolicy: "open"` + для цього акаунта. - - Ні. Типова політика WhatsApp DM — **спарювання**. Невідомі відправники отримують лише код спарювання, а їхнє повідомлення **не обробляється**. OpenClaw відповідає лише на чати, які він отримує, або на явні надсилання, які ви самі запускаєте. + + Ні. Типова політика WhatsApp DM — **pairing**. Невідомі відправники лише отримують код pairing, а їхні повідомлення **не обробляються**. OpenClaw відповідає лише на чати, які він отримує, або на явні надсилання, які ви самі запускаєте. - Схвалити спарювання можна так: + Підтвердити pairing можна так: ```bash openclaw pairing approve whatsapp ``` - Переглянути запити в черзі: + Переглянути запити, що очікують: ```bash openclaw pairing list whatsapp ``` - Запит номера телефону в майстрі: він використовується для налаштування вашого **allowlist/owner**, щоб ваші власні DM були дозволені. Він не використовується для автоматичного надсилання. Якщо ви запускаєте на своєму особистому номері WhatsApp, використовуйте цей номер і ввімкніть `channels.whatsapp.selfChatMode`. + Запит номера телефону в майстрі: він використовується для налаштування вашого **allowlist/власника**, щоб ваші власні DM були дозволені. Він не використовується для автоматичного надсилання. Якщо ви запускаєте це на своєму особистому номері WhatsApp, використовуйте цей номер і ввімкніть `channels.whatsapp.selfChatMode`. -## Команди чату, скасування завдань і "він не зупиняється" +## Команди чату, переривання завдань і "воно не зупиняється" - - Більшість внутрішніх або службових повідомлень з’являються лише тоді, коли для цієї сесії ввімкнено **verbose**, **trace** або **reasoning**. + + Більшість внутрішніх або інструментальних повідомлень з’являються лише тоді, коли для цього сеансу ввімкнено **verbose**, **trace** або **reasoning**. Виправлення в чаті, де ви це бачите: @@ -3219,15 +3218,15 @@ x-i18n: /reasoning off ``` - Якщо все ще занадто шумно, перевірте налаштування сесії в Control UI і встановіть verbose - на **inherit**. Також переконайтеся, що ви не використовуєте профіль бота, де `verboseDefault` у конфігурації встановлено - в `on`. + Якщо все одно занадто шумно, перевірте налаштування сеансу в Control UI і виставте verbose + в **inherit**. Також переконайтеся, що ви не використовуєте профіль бота, у якому `verboseDefault` задано + як `on` у конфігурації. Документація: [Thinking і verbose](/uk/tools/thinking), [Безпека](/uk/gateway/security#reasoning-verbose-output-in-groups). - + Надішліть будь-який із цих варіантів **як окреме повідомлення** (без слеша): ``` @@ -3252,7 +3251,7 @@ x-i18n: interrupt ``` - Це тригери переривання (не slash-команди). + Це тригери переривання, а не slash-команди. Для фонових процесів (з інструмента exec) ви можете попросити агента виконати: @@ -3260,17 +3259,17 @@ x-i18n: process action:kill sessionId:XXX ``` - Огляд slash-команд: див. [Slash commands](/uk/tools/slash-commands). + Огляд slash-команд: див. [Slash-команди](/uk/tools/slash-commands). - Більшість команд треба надсилати як **окреме** повідомлення, яке починається з `/`, але кілька shortcut-ів (як-от `/status`) також працюють inline для відправників з allowlist. + Більшість команд треба надсилати як **окреме** повідомлення, що починається з `/`, але кілька скорочень (як-от `/status`) також працюють inline для відправників з allowlist. - - OpenClaw типово блокує повідомлення **між різними провайдерами**. Якщо виклик інструмента прив’язано - до Telegram, він не надсилатиме до Discord, доки ви явно цього не дозволите. + + OpenClaw за замовчуванням блокує повідомлення **між різними провайдерами**. Якщо виклик інструмента прив’язаний + до Telegram, він не надсилатиме в Discord, доки ви явно цього не дозволите. - Увімкніть міжпровайдерські повідомлення для агента: + Увімкніть міжпровайдерський обмін повідомленнями для агента: ```json5 { @@ -3285,18 +3284,18 @@ x-i18n: } ``` - Перезапустіть gateway після редагування конфігурації. + Після редагування конфігурації перезапустіть gateway. - - Queue mode визначає, як нові повідомлення взаємодіють із уже виконуваним запуском. Використовуйте `/queue`, щоб змінити режими: + + Режим черги керує тим, як нові повідомлення взаємодіють із поточним запуском. Використовуйте `/queue`, щоб змінити режими: - - `steer` - нові повідомлення перенаправляють поточне завдання - - `followup` - повідомлення виконуються по одному - - `collect` - повідомлення збираються в пакет і надсилається одна відповідь (типово) - - `steer-backlog` - перенаправити зараз, а потім обробити чергу - - `interrupt` - перервати поточний запуск і почати заново + - `steer` — нові повідомлення перенаправляють поточне завдання + - `followup` — повідомлення виконуються по одному + - `collect` — пакетування повідомлень і одна відповідь (типово) + - `steer-backlog` — спочатку перенаправити, потім обробити беклог + - `interrupt` — перервати поточний запуск і почати заново Ви можете додавати параметри на кшталт `debounce:2s cap:25 drop:summarize` для режимів followup. @@ -3306,8 +3305,8 @@ x-i18n: ## Різне - - У OpenClaw облікові дані та вибір моделі розділені. Установлення `ANTHROPIC_API_KEY` (або збереження API key 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` (або збереження 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` для агента, який зараз працює.