diff --git a/docs/uk/help/faq.md b/docs/uk/help/faq.md index 500aa27a7..8b64ea2ce 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-24T04:14:14Z" + generated_at: "2026-04-24T07:11:34Z" model: gpt-5.4 provider: openai - source_hash: dd0e951ed4accd924b94d6aa2963547e06b6961c7c3c98563397a9b6d36e4979 + source_hash: 0ae635d7ade265e3e79d1f5489ae23034a341843bd784f68a985b18bee5bdf6f source_path: help/faq.md workflow: 15 --- -Короткі відповіді плюс глибше усунення проблем для реальних сценаріїв налаштування (локальна розробка, VPS, multi-agent, OAuth/API keys, model failover). Для діагностики під час виконання див. [Troubleshooting](/uk/gateway/troubleshooting). Для повної довідки з конфігурації див. [Configuration](/uk/gateway/configuration). +Швидкі відповіді плюс глибше усунення несправностей для реальних сценаріїв налаштування (локальна розробка, VPS, multi-agent, OAuth/API keys, резервне перемикання моделей). Для діагностики під час виконання див. [Усунення несправностей](/uk/gateway/troubleshooting). Повний довідник з конфігурації див. у [Конфігурація](/uk/gateway/configuration). -## Перші 60 секунд, якщо щось зламалося +## Перші 60 секунд, якщо щось зламано 1. **Швидкий статус (перша перевірка)** @@ -23,46 +23,46 @@ x-i18n: openclaw status ``` - Швидке локальне зведення: ОС + оновлення, доступність gateway/service, agents/sessions, конфігурація провайдера + проблеми під час виконання (коли gateway доступний). + Швидке локальне зведення: ОС + оновлення, доступність gateway/сервісу, агенти/сесії, конфігурація провайдера + проблеми під час виконання (коли Gateway доступний). -2. **Звіт, який можна вставити (безпечний для поширення)** +2. **Звіт, який можна вставити та надіслати (безпечний для поширення)** ```bash openclaw status --all ``` - Діагностика лише для читання з хвостом логів (токени замасковано). + Діагностика лише для читання з хвостом логу (токени замасковано). -3. **Стан daemon + порту** +3. **Стан демона + порту** ```bash openclaw gateway status ``` - Показує середовище виконання supervisor порівняно з доступністю RPC, цільовий URL перевірки та те, яку конфігурацію сервіс, імовірно, використовував. + Показує runtime supervisor-а порівняно з доступністю RPC, URL цілі для probe та яку конфігурацію сервіс, імовірно, використав. -4. **Глибокі перевірки** +4. **Глибокі probe-перевірки** ```bash openclaw status --deep ``` - Запускає живу перевірку стану gateway, зокрема перевірки каналів, коли це підтримується - (потрібен доступний gateway). Див. [Health](/uk/gateway/health). + Виконує live probe-перевірку здоров’я gateway, включно з channel probe-перевірками, коли це підтримується + (потрібен доступний Gateway). Див. [Health](/uk/gateway/health). -5. **Перегляньте останній лог у реальному часі** +5. **Перегляньте хвіст останнього логу** ```bash openclaw logs --follow ``` - Якщо RPC недоступний, використовуйте натомість: + Якщо RPC недоступний, використайте запасний варіант: ```bash tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)" ``` - Файлові логи відокремлені від логів сервісу; див. [Logging](/uk/logging) і [Troubleshooting](/uk/gateway/troubleshooting). + Логи файлів відокремлені від логів сервісу; див. [Логування](/uk/logging) і [Усунення несправностей](/uk/gateway/troubleshooting). 6. **Запустіть doctor (виправлення)** @@ -70,104 +70,103 @@ x-i18n: openclaw doctor ``` - Виправляє/мігрує конфігурацію/стан + запускає перевірки стану. Див. [Doctor](/uk/gateway/doctor). + Виправляє/мігрує конфігурацію/стан + запускає перевірки здоров’я. Див. [Doctor](/uk/gateway/doctor). -7. **Знімок Gateway** +7. **Знімок стану Gateway** ```bash openclaw health --json - openclaw health --verbose # показує цільовий URL + шлях до конфігурації у разі помилок + openclaw health --verbose # shows the target URL + config path on errors ``` - Запитує в запущеного gateway повний знімок (лише WS). Див. [Health](/uk/gateway/health). + Запитує в запущеного gateway повний знімок стану (лише WS). Див. [Health](/uk/gateway/health). ## Швидкий старт і початкове налаштування -Q&A для першого запуску — встановлення, онбординг, маршрути автентифікації, підписки, початкові -збої — перенесено на окрему сторінку: -[FAQ — швидкий старт і початкове налаштування](/uk/help/faq-first-run). +Запитання й відповіді для першого запуску — встановлення, онбординг, шляхи автентифікації, підписки, початкові збої — +розміщено в [FAQ для першого запуску](/uk/help/faq-first-run). ## Що таке OpenClaw? - OpenClaw — це персональний AI-асистент, який ви запускаєте на власних пристроях. Він відповідає у вже знайомих вам середовищах обміну повідомленнями (WhatsApp, Telegram, Slack, Mattermost, Discord, Google Chat, Signal, iMessage, WebChat і вбудовані channel Plugins, такі як QQ Bot), а також може працювати з voice + живим Canvas на підтримуваних платформах. **Gateway** — це завжди активна control plane; асистент і є продуктом. + OpenClaw — це персональний AI-асистент, який ви запускаєте на власних пристроях. Він відповідає в тих поверхнях обміну повідомленнями, якими ви вже користуєтеся (WhatsApp, Telegram, Slack, Mattermost, Discord, Google Chat, Signal, iMessage, WebChat, а також bundled channel plugins, наприклад QQ Bot) і також може працювати з голосом + live Canvas на підтримуваних платформах. **Gateway** — це завжди увімкнена control plane; асистент — це продукт. - OpenClaw — це не «просто обгортка над Claude». Це **local-first control plane**, яка дає змогу запускати - потужного асистента на **вашому власному обладнанні**, доступного з уже звичних вам чат-застосунків, із - сесійним станом, пам’яттю та інструментами — без передачі контролю над вашими робочими процесами - хостинговому SaaS. + OpenClaw — це не «просто обгортка для Claude». Це **local-first control plane**, яка дає змогу запускати + потужного асистента на **вашому власному обладнанні**, доступного з чат-застосунків, якими ви вже користуєтеся, зі + сесіями зі станом, пам’яттю та інструментами — без передавання контролю над вашими робочими процесами + хмарному SaaS. Основні переваги: - **Ваші пристрої, ваші дані:** запускайте Gateway де завгодно (Mac, Linux, VPS) і зберігайте робочий простір + історію сесій локально. - - **Реальні канали, а не веб-пісочниця:** WhatsApp/Telegram/Slack/Discord/Signal/iMessage тощо, - плюс мобільний voice і Canvas на підтримуваних платформах. - - **Незалежність від моделі:** використовуйте Anthropic, OpenAI, MiniMax, OpenRouter тощо, з маршрутизацією - і failover на рівні agent. - - **Лише локальний варіант:** запускайте локальні моделі, щоб **усі дані могли залишатися на вашому пристрої**, якщо ви цього хочете. - - **Маршрутизація multi-agent:** окремі agents для кожного каналу, облікового запису або завдання, кожен зі своїм - робочим простором і типовими значеннями. - - **Відкритий код і гнучкість для змін:** перевіряйте, розширюйте та self-host без прив’язки до постачальника. + - **Реальні канали, а не веб-пісочниця:** WhatsApp/Telegram/Slack/Discord/Signal/iMessage/etc, + а також мобільний голос і Canvas на підтримуваних платформах. + - **Не прив’язано до моделі:** використовуйте Anthropic, OpenAI, MiniMax, OpenRouter тощо, з маршрутизацією + та резервним перемиканням для кожного агента. + - **Варіант лише локально:** запускайте локальні моделі, щоб **усі дані могли залишатися на вашому пристрої**, якщо ви цього хочете. + - **Маршрутизація multi-agent:** окремі агенти для кожного каналу, облікового запису чи завдання, кожен зі своїм + робочим простором і типовими параметрами. + - **Відкритий код і гнучкість для модифікацій:** перевіряйте, розширюйте та self-host без прив’язки до постачальника. - Документація: [Gateway](/uk/gateway), [Channels](/uk/channels), [Multi-agent](/uk/concepts/multi-agent), - [Memory](/uk/concepts/memory). + Документація: [Gateway](/uk/gateway), [Канали](/uk/channels), [Multi-agent](/uk/concepts/multi-agent), + [Пам’ять](/uk/concepts/memory). - + Хороші перші проєкти: - Створити вебсайт (WordPress, Shopify або простий статичний сайт). - - Прототипувати мобільний застосунок (план, екрани, план API). - - Організувати файли та папки (очищення, найменування, теги). + - Створити прототип мобільного застосунку (структура, екрани, план API). + - Упорядкувати файли та папки (очищення, найменування, теги). - Підключити Gmail і автоматизувати зведення або подальші дії. - Він може виконувати великі завдання, але працює найкраще, коли ви ділите їх на фази та - використовуєте sub-agents для паралельної роботи. + Він може впоратися з великими завданнями, але працює найкраще, коли ви розбиваєте їх на етапи й + використовуєте sub agents для паралельної роботи. - Повсякденна користь зазвичай виглядає так: + Найчастіші повсякденні переваги виглядають так: - - **Персональні зведення:** підсумки вхідних, календаря та новин, які для вас важливі. - - **Дослідження та чернетки:** швидкі дослідження, підсумки та перші чернетки для листів або документів. - - **Нагадування та подальші дії:** підказки та контрольні списки на основі cron або heartbeat. - - **Автоматизація браузера:** заповнення форм, збирання даних і повторювані вебзавдання. - - **Координація між пристроями:** надішліть завдання з телефона, дозвольте Gateway виконати його на сервері та отримайте результат назад у чаті. + - **Персональні брифінги:** зведення вхідних листів, календаря та важливих для вас новин. + - **Дослідження та підготовка чернеток:** швидке дослідження, підсумки та перші чернетки для листів або документів. + - **Нагадування та подальші дії:** підказки й чеклісти, керовані cron або heartbeat. + - **Автоматизація браузера:** заповнення форм, збирання даних і повторення вебзавдань. + - **Координація між пристроями:** надішліть завдання з телефона, дайте Gateway виконати його на сервері й отримайте результат назад у чаті. - - Так — для **дослідження, кваліфікації та підготовки чернеток**. Він може сканувати сайти, створювати короткі списки, - узагальнювати інформацію про потенційних клієнтів і писати чернетки outreach або рекламних текстів. + + Так — для **дослідження, кваліфікації та підготовки чернеток**. Він може сканувати сайти, формувати короткі списки, + підсумовувати інформацію про потенційних клієнтів і писати чернетки аутрічу або рекламних текстів. - Для **outreach або запуску реклами** залишайте людину в циклі. Уникайте спаму, дотримуйтеся місцевих законів і - правил платформ та перевіряйте все перед надсиланням. Найбезпечніший підхід — дати - OpenClaw підготувати чернетку, а вам — схвалити її. + Для **аутрічу чи запуску реклами** залишайте людину в циклі ухвалення рішень. Уникайте спаму, дотримуйтеся місцевих законів і + політик платформ, а також перевіряйте все перед надсиланням. Найбезпечніший шаблон — дозволити + OpenClaw створити чернетку, а вам — затвердити її. - Документація: [Security](/uk/gateway/security). + Документація: [Безпека](/uk/gateway/security). OpenClaw — це **персональний асистент** і шар координації, а не заміна IDE. Використовуйте - Claude Code або Codex для найшвидшого безпосереднього циклу кодування в репозиторії. Використовуйте OpenClaw, коли вам - потрібні стійка пам’ять, доступ між пристроями та оркестрація інструментів. + Claude Code або Codex для найшвидшого прямого циклу кодування в репозиторії. Використовуйте OpenClaw, коли вам + потрібні довготривала пам’ять, доступ із різних пристроїв і оркестрація інструментів. Переваги: - **Постійна пам’ять + робочий простір** між сесіями - - **Доступ із багатьох платформ** (WhatsApp, Telegram, TUI, WebChat) + - **Доступ із різних платформ** (WhatsApp, Telegram, TUI, WebChat) - **Оркестрація інструментів** (браузер, файли, планування, hooks) - - **Завжди активний Gateway** (запуск на VPS, взаємодія звідусіль) - - **Nodes** для локального браузера/екрана/камери/exec + - **Постійно увімкнений Gateway** (запускайте на VPS, взаємодійте звідусіль) + - **Nodes** для локального браузера/екрана/камери/виконання - Приклади: [https://openclaw.ai/showcase](https://openclaw.ai/showcase) + Вітрина: [https://openclaw.ai/showcase](https://openclaw.ai/showcase) @@ -175,69 +174,69 @@ Q&A для першого запуску — встановлення, онбо ## Skills і автоматизація - - Використовуйте керовані override замість редагування копії в репозиторії. Розміщуйте свої зміни в `~/.openclaw/skills//SKILL.md` (або додайте папку через `skills.load.extraDirs` у `~/.openclaw/openclaw.json`). Пріоритет такий: `/skills` → `/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → вбудовані → `skills.load.extraDirs`, тому керовані override однаково мають вищий пріоритет за вбудовані Skills без змін у git. Якщо вам потрібно встановити skill глобально, але зробити його видимим лише для певних agents, зберігайте спільну копію в `~/.openclaw/skills` і керуйте видимістю через `agents.defaults.skills` і `agents.list[].skills`. Лише зміни, варті внесення в апстрим, мають жити в репозиторії та надсилатися як PR. + + Використовуйте керовані overrides замість редагування копії в репозиторії. Помістіть свої зміни в `~/.openclaw/skills//SKILL.md` (або додайте папку через `skills.load.extraDirs` у `~/.openclaw/openclaw.json`). Пріоритет такий: `/skills` → `/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → bundled → `skills.load.extraDirs`, тому керовані overrides все одно мають вищий пріоритет за bundled 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, поєднайте це з `agents.defaults.skills` або `agents.list[].skills`. + + Так. Додайте додаткові каталоги через `skills.load.extraDirs` у `~/.openclaw/openclaw.json` (найнижчий пріоритет). Типовий порядок пріоритету: `/skills` → `/.agents/skills` → `~/.agents/skills` → `~/.openclaw/skills` → bundled → `skills.load.extraDirs`. `clawhub` типово встановлює в `./skills`, що OpenClaw розпізнає як `/skills` у наступній сесії. Якщо skill має бути видимий лише певним агентам, поєднайте це з `agents.defaults.skills` або `agents.list[].skills`. Наразі підтримуються такі шаблони: - - **Завдання Cron**: ізольовані завдання можуть задавати override `model` для кожного завдання. - - **Sub-agents**: спрямовуйте завдання до окремих agents із різними типовими моделями. - - **Перемикання на вимогу**: використовуйте `/model`, щоб будь-коли змінити модель поточної сесії. + - **Cron jobs**: ізольовані завдання можуть задавати override `model` для кожного завдання. + - **Sub-agents**: маршрутизуйте завдання до окремих агентів із різними типовими моделями. + - **Перемикання на вимогу**: використовуйте `/model`, щоб у будь-який момент змінити модель поточної сесії. - Див. [Cron jobs](/uk/automation/cron-jobs), [Multi-Agent Routing](/uk/concepts/multi-agent) і [Slash commands](/uk/tools/slash-commands). + Див. [Cron jobs](/uk/automation/cron-jobs), [Маршрутизація Multi-Agent](/uk/concepts/multi-agent) і [Slash commands](/uk/tools/slash-commands). - + Використовуйте **sub-agents** для довгих або паралельних завдань. Sub-agents працюють у власній сесії, - повертають підсумок і не дають вашому основному чату втратити чутливість. + повертають підсумок і не дають вашому основному чату зависати. - Попросіть бота «spawn a sub-agent for this task» або використайте `/subagents`. - Використовуйте `/status` у чаті, щоб побачити, що Gateway робить просто зараз (і чи він зайнятий). + Попросіть свого бота «створити sub-agent для цього завдання» або використайте `/subagents`. + Використовуйте `/status` у чаті, щоб побачити, що Gateway зараз робить (і чи зайнятий він). - Порада щодо токенів: і довгі завдання, і sub-agents споживають токени. Якщо вас турбує вартість, задайте + Порада щодо токенів: і довгі завдання, і sub-agents споживають токени. Якщо вартість має значення, задайте дешевшу модель для sub-agents через `agents.defaults.subagents.model`. - Документація: [Sub-agents](/uk/tools/subagents), [Background Tasks](/uk/automation/tasks). + Документація: [Sub-agents](/uk/tools/subagents), [Фонові завдання](/uk/automation/tasks). - - Використовуйте прив’язки до гілок. Ви можете прив’язати гілку Discord до subagent або цільової сесії, щоб подальші повідомлення в цій гілці залишалися в межах прив’язаної сесії. + + Використовуйте прив’язки тредів. Ви можете прив’язати тред Discord до subagent або цілі сесії, щоб подальші повідомлення в цьому треді залишалися в межах прив’язаної сесії. Базовий процес: - - Створіть через `sessions_spawn`, використовуючи `thread: true` (і, за потреби, `mode: "session"` для постійших подальших дій). - - Або прив’яжіть вручну за допомогою `/focus `. + - Створіть через `sessions_spawn` з `thread: true` (і за потреби `mode: "session"` для постійших подальших повідомлень). + - Або прив’яжіть вручну через `/focus `. - Використовуйте `/agents`, щоб переглянути стан прив’язки. - - Використовуйте `/session idle ` і `/session max-age `, щоб керувати автоматичним скасуванням фокуса. - - Використовуйте `/unfocus`, щоб від’єднати гілку. + - Використовуйте `/session idle ` і `/session max-age `, щоб керувати автоматичним зняттям фокуса. + - Використовуйте `/unfocus`, щоб відв’язати тред. Потрібна конфігурація: - - Глобальні типові значення: `session.threadBindings.enabled`, `session.threadBindings.idleHours`, `session.threadBindings.maxAgeHours`. - - Override для Discord: `channels.discord.threadBindings.enabled`, `channels.discord.threadBindings.idleHours`, `channels.discord.threadBindings.maxAgeHours`. - - Автоматична прив’язка під час spawn: установіть `channels.discord.threadBindings.spawnSubagentSessions: true`. + - Глобальні типові параметри: `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`. Документація: [Sub-agents](/uk/tools/subagents), [Discord](/uk/channels/discord), [Configuration Reference](/uk/gateway/configuration-reference), [Slash commands](/uk/tools/slash-commands). - + Спочатку перевірте визначений маршрут запитувача: - - Доставка subagent у режимі завершення віддає перевагу будь-якій прив’язаній гілці або маршруту розмови, якщо такий існує. - - Якщо джерело завершення містить лише канал, OpenClaw повертається до збереженого маршруту сесії запитувача (`lastChannel` / `lastTo` / `lastAccountId`), тож пряма доставка все одно може спрацювати. - - Якщо немає ні прив’язаного маршруту, ні придатного збереженого маршруту, пряма доставка може завершитися невдачею, і результат повернеться до доставки через чергу сесії замість негайної публікації в чат. - - Невалідні або застарілі цілі все одно можуть змусити перейти до резервної доставки через чергу або до остаточного збою доставки. - - Якщо остання видима відповідь assistant у дочірній сесії — це точний тихий токен `NO_REPLY` / `no_reply` або рівно `ANNOUNCE_SKIP`, OpenClaw навмисно пригнічує оголошення замість публікації застарілого попереднього прогресу. - - Якщо дочірня сесія завершилася за тайм-аутом після одних лише викликів інструментів, оголошення може згорнути це до короткого підсумку часткового прогресу замість відтворення сирого виводу інструментів. + - Доставка subagent у режимі завершення надає перевагу будь-якому прив’язаному треду або маршруту розмови, якщо такий існує. + - Якщо джерело завершення містить лише канал, OpenClaw повертається до збереженого маршруту сесії запитувача (`lastChannel` / `lastTo` / `lastAccountId`), щоб пряма доставка все одно могла спрацювати. + - Якщо немає ані прив’язаного маршруту, ані придатного збереженого маршруту, пряма доставка може не вдатися, і тоді результат повернеться до queued session delivery замість негайної публікації в чаті. + - Недійсні або застарілі цілі все ще можуть примусово перевести в queue fallback або спричинити остаточний збій доставки. + - Якщо остання видима відповідь асистента від дочірнього процесу — це точний silent token `NO_REPLY` / `no_reply` або точно `ANNOUNCE_SKIP`, OpenClaw навмисно пригнічує анонс замість публікації застарілого попереднього прогресу. + - Якщо дочірній процес досяг тайм-ауту після одних лише викликів інструментів, анонс може згорнути це в короткий підсумок часткового прогресу замість відтворення сирого виводу інструментів. Налагодження: @@ -245,7 +244,7 @@ Q&A для першого запуску — встановлення, онбо openclaw tasks show ``` - Документація: [Sub-agents](/uk/tools/subagents), [Background Tasks](/uk/automation/tasks), [Session Tools](/uk/concepts/session-tool). + Документація: [Sub-agents](/uk/tools/subagents), [Фонові завдання](/uk/automation/tasks), [Session Tools](/uk/concepts/session-tool). @@ -255,9 +254,9 @@ Q&A для першого запуску — встановлення, онбо Контрольний список: - - Переконайтеся, що cron увімкнено (`cron.enabled`) і `OPENCLAW_SKIP_CRON` не встановлено. - - Перевірте, що Gateway працює 24/7 (без сну/перезапусків). - - Перевірте налаштування часового поясу для завдання (`--tz` порівняно з часовим поясом хоста). + - Підтвердьте, що cron увімкнено (`cron.enabled`) і `OPENCLAW_SKIP_CRON` не встановлено. + - Переконайтеся, що Gateway працює 24/7 (без сну/перезапусків). + - Перевірте налаштування часового поясу для завдання (`--tz` проти часового поясу хоста). Налагодження: @@ -266,21 +265,21 @@ Q&A для першого запуску — встановлення, онбо openclaw cron runs --id --limit 50 ``` - Документація: [Cron jobs](/uk/automation/cron-jobs), [Automation & Tasks](/uk/automation). + Документація: [Cron jobs](/uk/automation/cron-jobs), [Автоматизація та завдання](/uk/automation). Спочатку перевірте режим доставки: - - `--no-deliver` / `delivery.mode: "none"` означає, що резервне надсилання через runner не очікується. - - Відсутня або невалідна ціль оголошення (`channel` / `to`) означає, що runner пропустив вихідну доставку. - - Збої автентифікації каналу (`unauthorized`, `Forbidden`) означають, що runner намагався доставити повідомлення, але облікові дані це заблокували. - - Тихий ізольований результат (`NO_REPLY` / `no_reply` і нічого більше) вважається навмисно непридатним для доставки, тому runner також пригнічує резервну доставку через чергу. + - `--no-deliver` / `delivery.mode: "none"` означає, що запасне надсилання через runner не очікується. + - Відсутня або недійсна ціль анонсу (`channel` / `to`) означає, що runner пропустив вихідну доставку. + - Помилки автентифікації каналу (`unauthorized`, `Forbidden`) означають, що runner спробував виконати доставку, але облікові дані це заблокували. + - Тихий ізольований результат (`NO_REPLY` / `no_reply` і нічого більше) вважається навмисно недоставним, тому runner також пригнічує запасну доставку через чергу. - Для ізольованих завдань Cron agent усе одно може надсилати безпосередньо через інструмент `message`, - коли маршрут чату доступний. `--announce` керує лише резервним шляхом runner - для фінального тексту, який agent ще не надіслав самостійно. + Для ізольованих Cron jobs агент усе ще може надсилати повідомлення напряму через інструмент `message`, + коли доступний маршрут чату. `--announce` керує лише запасним шляхом runner-а + для фінального тексту, який агент ще не надіслав самостійно. Налагодження: @@ -289,27 +288,27 @@ Q&A для першого запуску — встановлення, онбо openclaw tasks show ``` - Документація: [Cron jobs](/uk/automation/cron-jobs), [Background Tasks](/uk/automation/tasks). + Документація: [Cron jobs](/uk/automation/cron-jobs), [Фонові завдання](/uk/automation/tasks). - + Зазвичай це шлях live-перемикання моделі, а не дубльоване планування. - Ізольований cron може зберегти передачу моделі під час виконання та повторити спробу, коли активний - запуск викидає `LiveSessionModelSwitchError`. Повторна спроба зберігає переключеного - провайдера/модель, а якщо перемикання містило новий override профілю автентифікації, cron - також зберігає його перед повторною спробою. + Ізольований Cron може зберегти runtime-передавання моделі й виконати повторну спробу, коли активний + запуск викидає `LiveSessionModelSwitchError`. Повторна спроба зберігає перемкнуті + провайдер/модель, а якщо перемикання також містило новий override профілю автентифікації, cron + теж зберігає його перед повторною спробою. Пов’язані правила вибору: - Override моделі Gmail hook має найвищий пріоритет, коли застосовний. - - Потім іде `model` для окремого завдання. - - Потім будь-який збережений override моделі cron-session. - - Потім звичайний вибір моделі agent/default. + - Далі — `model` для конкретного завдання. + - Потім — будь-який збережений override моделі cron-session. + - Потім — звичайний вибір моделі агента/типової моделі. Цикл повторних спроб обмежений. Після початкової спроби плюс 2 повторних спроб через перемикання - cron переривається замість нескінченного циклу. + cron припиняє роботу замість нескінченного циклу. Налагодження: @@ -323,8 +322,8 @@ Q&A для першого запуску — встановлення, онбо - Використовуйте вбудовані команди `openclaw skills` або розміщуйте Skills у своєму workspace. UI Skills для macOS недоступний у Linux. - Переглядайте Skills на [https://clawhub.ai](https://clawhub.ai). + Використовуйте нативні команди `openclaw skills` або помістіть Skills у свій workspace. UI Skills для macOS недоступний на Linux. + Переглянути Skills можна на [https://clawhub.ai](https://clawhub.ai). ```bash openclaw skills search "calendar" @@ -337,39 +336,39 @@ Q&A для першого запуску — встановлення, онбо openclaw skills check ``` - Вбудоване `openclaw skills install` записує у каталог `skills/` - активного workspace. Окремий CLI `clawhub` установлюйте лише тоді, якщо хочете публікувати або - синхронізувати власні Skills. Для спільних установлень між agents розміщуйте skill у + Нативний `openclaw skills install` записує у каталог `skills/` + активного workspace. Окремий CLI `clawhub` встановлюйте лише якщо хочете публікувати або + синхронізувати власні Skills. Для спільних встановлень між агентами помістіть skill у `~/.openclaw/skills` і використовуйте `agents.defaults.skills` або - `agents.list[].skills`, якщо хочете звузити список agents, які можуть його бачити. + `agents.list[].skills`, якщо хочете обмежити, які агенти можуть його бачити. - + Так. Використовуйте планувальник Gateway: - **Cron jobs** для запланованих або повторюваних завдань (зберігаються після перезапусків). - **Heartbeat** для періодичних перевірок «основної сесії». - - **Ізольовані завдання** для автономних agents, які публікують підсумки або доставляють їх у чати. + - **Ізольовані завдання** для автономних агентів, які публікують підсумки або доставляють їх у чати. - Документація: [Cron jobs](/uk/automation/cron-jobs), [Automation & Tasks](/uk/automation), + Документація: [Cron jobs](/uk/automation/cron-jobs), [Автоматизація та завдання](/uk/automation), [Heartbeat](/uk/gateway/heartbeat). - - Не напряму. Skills для macOS контролюються через `metadata.openclaw.os` плюс потрібні бінарні файли, і Skills з’являються в системному prompt лише тоді, коли вони придатні на **хості Gateway**. У Linux Skills лише для `darwin` (наприклад, `apple-notes`, `apple-reminders`, `things-mac`) не завантажаться, якщо ви не перевизначите ці обмеження. + + Не безпосередньо. Skills для macOS обмежуються через `metadata.openclaw.os` і необхідні бінарні файли, а Skills з’являються в системному prompt лише тоді, коли вони придатні на **хості Gateway**. У Linux Skills лише для `darwin` (наприклад, `apple-notes`, `apple-reminders`, `things-mac`) не завантажаться, якщо не перевизначити це обмеження. - Підтримуються три шаблони: + Є три підтримувані варіанти: - **Варіант A — запускати Gateway на Mac (найпростіше).** - Запустіть Gateway там, де існують бінарні файли macOS, а потім підключайтеся з Linux у [віддаленому режимі](#gateway-ports-already-running-and-remote-mode) або через Tailscale. Skills завантажуються нормально, тому що хост Gateway — це macOS. + **Варіант A — запустити Gateway на Mac (найпростіше).** + Запустіть Gateway там, де існують бінарні файли macOS, а потім підключайтеся з Linux у [віддаленому режимі](#gateway-ports-already-running-and-remote-mode) або через Tailscale. Skills завантажаться нормально, тому що хост Gateway — macOS. - **Варіант B — використовувати node macOS (без SSH).** - Запустіть Gateway на Linux, сполучіть node macOS (застосунок у рядку меню) і встановіть **Node Run Commands** у значення "Always Ask" або "Always Allow" на Mac. OpenClaw може вважати Skills лише для macOS придатними, коли потрібні бінарні файли існують на node. Agent запускає ці Skills через інструмент `nodes`. Якщо ви виберете "Always Ask", схвалення "Always Allow" у prompt додасть цю команду до allowlist. + **Варіант B — використати macOS node (без SSH).** + Запустіть Gateway на Linux, спарте macOS node (застосунок рядка меню) і встановіть для **Node Run Commands** значення "Always Ask" або "Always Allow" на Mac. OpenClaw може вважати macOS-only Skills придатними, коли потрібні бінарні файли існують на node. Агент запускає ці Skills через інструмент `nodes`. Якщо ви оберете "Always Ask", підтвердження "Always Allow" у prompt додасть цю команду до списку дозволених. - **Варіант C — проксіювати бінарні файли macOS через SSH (просунутий).** - Залиште Gateway на Linux, але зробіть так, щоб потрібні бінарні CLI визначалися як SSH-обгортки, що виконуються на Mac. Потім перевизначте skill, щоб дозволити Linux, і він залишався придатним. + **Варіант C — проксувати бінарні файли macOS через SSH (для досвідчених користувачів).** + Залиште Gateway на Linux, але зробіть так, щоб потрібні CLI-бінарні файли резолвилися у SSH-обгортки, які запускаються на Mac. Потім перевизначте skill, щоб дозволити Linux і він залишався придатним. 1. Створіть SSH-обгортку для бінарного файла (приклад: `memo` для Apple Notes): @@ -379,35 +378,35 @@ Q&A для першого запуску — встановлення, онбо exec ssh -T user@mac-host /opt/homebrew/bin/memo "$@" ``` - 2. Додайте обгортку до `PATH` на хості Linux (наприклад, `~/bin/memo`). - 3. Перевизначте метадані skill (workspace або `~/.openclaw/skills`), щоб дозволити Linux: + 2. Додайте обгортку до `PATH` на Linux-хості (наприклад, `~/bin/memo`). + 3. Перевизначте метадані skill-а (у workspace або `~/.openclaw/skills`), щоб дозволити Linux: ```markdown --- name: apple-notes - description: Керування Apple Notes через CLI memo на macOS. + description: Manage Apple Notes via the memo CLI on macOS. metadata: { "openclaw": { "os": ["darwin", "linux"], "requires": { "bins": ["memo"] } } } --- ``` - 4. Запустіть нову сесію, щоб знімок Skills оновився. + 4. Почніть нову сесію, щоб знімок Skills оновився. - - Наразі вбудованої немає. + + Вбудованої інтеграції наразі немає. Варіанти: - **Власний skill / Plugin:** найкраще для надійного доступу до API (і Notion, і HeyGen мають API). - **Автоматизація браузера:** працює без коду, але повільніше й менш надійно. - Якщо ви хочете зберігати контекст окремо для кожного клієнта (робочі процеси агентства), простий шаблон такий: + Якщо ви хочете зберігати контекст окремо для кожного клієнта (агентські робочі процеси), простий шаблон такий: - - Одна сторінка Notion на клієнта (контекст + налаштування + активна робота). - - Попросіть agent отримувати цю сторінку на початку сесії. + - Одна сторінка Notion на клієнта (контекст + уподобання + активна робота). + - Попросіть агента отримувати цю сторінку на початку сесії. - Якщо вам потрібна нативна інтеграція, створіть запит на функцію або побудуйте skill, + Якщо вам потрібна нативна інтеграція, створіть запит на нову функцію або побудуйте skill, орієнтований на ці API. Установлення Skills: @@ -417,11 +416,14 @@ Q&A для першого запуску — встановлення, онбо openclaw skills update --all ``` - Вбудовані встановлення потрапляють у каталог `skills/` активного workspace. Для спільних Skills між agents розміщуйте їх у `~/.openclaw/skills//SKILL.md`. Якщо спільне встановлення мають бачити лише деякі agents, налаштуйте `agents.defaults.skills` або `agents.list[].skills`. Деякі Skills очікують бінарні файли, установлені через Homebrew; у Linux це означає Linuxbrew (див. запис FAQ про Homebrew для Linux вище). Див. [Skills](/uk/tools/skills), [Skills config](/uk/tools/skills-config) і [ClawHub](/uk/tools/clawhub). + Нативні встановлення потрапляють у каталог `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). - + Використовуйте вбудований профіль браузера `user`, який підключається через Chrome DevTools MCP: ```bash @@ -429,20 +431,20 @@ Q&A для першого запуску — встановлення, онбо 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 host на машині з браузером, або натомість використовуйте віддалений CDP. Поточні обмеження `existing-session` / `user`: - - дії керуються через ref, а не через CSS-селектори - - вивантаження файлів потребує `ref` / `inputRef` і наразі підтримує лише один файл за раз - - `responsebody`, експорт PDF, перехоплення завантажень і пакетні дії все ще потребують керованого браузера або необробленого профілю CDP + - дії виконуються на основі ref, а не CSS-селекторів + - завантаження файлів потребує `ref` / `inputRef` і наразі підтримує лише один файл за раз + - `responsebody`, експорт PDF, перехоплення завантажень і пакетні дії все ще потребують керованого браузера або сирого профілю CDP @@ -450,117 +452,117 @@ Q&A для першого запуску — встановлення, онбо ## Ізоляція та пам’ять - - Так. Див. [Sandboxing](/uk/gateway/sandboxing). Для налаштування, специфічного для Docker (повний gateway у Docker або образи sandbox), див. [Docker](/uk/install/docker). + + Так. Див. [Ізоляція](/uk/gateway/sandboxing). Для налаштування, специфічного для Docker (повний gateway у Docker або образи ізоляції), див. [Docker](/uk/install/docker). - - Типовий образ орієнтований на безпеку й запускається від користувача `node`, тому він не + + Типовий образ орієнтований насамперед на безпеку й запускається від користувача `node`, тому не містить системних пакетів, Homebrew або вбудованих браузерів. Для повнішого налаштування: - - Збережіть `/home/node` через `OPENCLAW_HOME_VOLUME`, щоб кеші переживали перезапуски. - - Додайте системні залежності в образ через `OPENCLAW_DOCKER_APT_PACKAGES`. + - Збережіть `/home/node` через `OPENCLAW_HOME_VOLUME`, щоб кеші не втрачалися. + - Вбудуйте системні залежності в образ через `OPENCLAW_DOCKER_APT_PACKAGES`. - Установіть браузери Playwright через вбудований CLI: `node /app/node_modules/playwright-core/cli.js install chromium` - Установіть `PLAYWRIGHT_BROWSERS_PATH` і переконайтеся, що цей шлях зберігається. - Документація: [Docker](/uk/install/docker), [Browser](/uk/tools/browser). + Документація: [Docker](/uk/install/docker), [Браузер](/uk/tools/browser). - - Так — якщо ваш приватний трафік — це **DM**, а публічний трафік — це **групи**. + + Так — якщо ваш приватний трафік це **DM**, а публічний трафік — **групи**. - Використовуйте `agents.defaults.sandbox.mode: "non-main"`, щоб сесії груп/каналів (ключі не main) працювали у вибраному backend sandbox, а основна DM-сесія залишалася на хості. Docker є типовим backend, якщо ви не виберете інший. Потім обмежте набір інструментів, доступних в ізольованих сесіях, через `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/config-agents#agentsdefaultssandbox) + Довідник з основної конфігурації: [Конфігурація Gateway](/uk/gateway/config-agents#agentsdefaultssandbox) - - Установіть `agents.defaults.sandbox.docker.binds` у значення `["host:path:mode"]` (наприклад, `"/home/user/src:/src:ro"`). Глобальні прив’язки та прив’язки для окремого agent об’єднуються; прив’язки для окремого agent ігноруються, коли `scope: "shared"`. Використовуйте `:ro` для всього чутливого й пам’ятайте, що прив’язки обходять бар’єри файлової системи sandbox. + + Установіть `agents.defaults.sandbox.docker.binds` у `["host:path:mode"]` (наприклад, `"/home/user/src:/src:ro"`). Глобальні прив’язки та прив’язки для конкретного агента об’єднуються; прив’язки для конкретного агента ігноруються, коли `scope: "shared"`. Використовуйте `:ro` для всього чутливого й пам’ятайте, що прив’язки обходять файлові стіни ізоляції. - OpenClaw перевіряє джерела прив’язок як щодо нормалізованого шляху, так і щодо канонічного шляху, визначеного через найглибший наявний батьківський елемент. Це означає, що вихід через батьківський symlink усе одно завершиться закритою відмовою, навіть якщо останній сегмент шляху ще не існує, і перевірки дозволених коренів усе одно застосовуються після визначення symlink. + OpenClaw перевіряє джерела прив’язки як за нормалізованим шляхом, так і за канонічним шляхом, визначеним через найглибший наявний предок. Це означає, що виходи через батьківські symlink усе одно надійно блокуються, навіть коли останній сегмент шляху ще не існує, а перевірки дозволених коренів усе одно застосовуються після резолюції symlink. - Див. [Sandboxing](/uk/gateway/sandboxing#custom-bind-mounts) і [Sandbox vs Tool Policy vs Elevated](/uk/gateway/sandbox-vs-tool-policy-vs-elevated#bind-mounts-security-quick-check) для прикладів і приміток щодо безпеки. + Див. [Ізоляція](/uk/gateway/sandboxing#custom-bind-mounts) і [Ізоляція vs Політика інструментів vs Підвищені привілеї](/uk/gateway/sandbox-vs-tool-policy-vs-elevated#bind-mounts-security-quick-check) для прикладів і приміток щодо безпеки. - Пам’ять OpenClaw — це просто файли Markdown у workspace agent: + Пам’ять OpenClaw — це просто Markdown-файли в workspace агента: - Щоденні нотатки в `memory/YYYY-MM-DD.md` - - Керовані довгострокові нотатки в `MEMORY.md` (лише основні/приватні сесії) + - Відібрані довгострокові нотатки в `MEMORY.md` (лише основні/приватні сесії) - OpenClaw також запускає **тихе скидання пам’яті перед Compaction**, щоб нагадати моделі - записати довговічні нотатки перед автоматичною Compaction. Це виконується лише тоді, коли workspace - доступний для запису (sandbox лише для читання це пропускають). Див. [Memory](/uk/concepts/memory). + OpenClaw також запускає **тихий flush пам’яті перед Compaction**, щоб нагадати моделі + записати довготривалі нотатки перед автоматичною Compaction. Це працює лише тоді, коли workspace + доступний для запису (ізольовані середовища лише для читання пропускають це). Див. [Пам’ять](/uk/concepts/memory). - - Попросіть бота **записати факт у пам’ять**. Довгострокові нотатки мають зберігатися в `MEMORY.md`, + + Попросіть бота **записати факт у пам’ять**. Довготривалі нотатки мають зберігатися в `MEMORY.md`, короткостроковий контекст — у `memory/YYYY-MM-DD.md`. Це все ще напрям, який ми вдосконалюємо. Корисно нагадувати моделі зберігати спогади; - вона знатиме, що робити. Якщо вона й далі все забуває, перевірте, що Gateway використовує той самий + вона знатиме, що робити. Якщо вона продовжує забувати, перевірте, що Gateway використовує той самий workspace під час кожного запуску. - Документація: [Memory](/uk/concepts/memory), [Agent workspace](/uk/concepts/agent-workspace). + Документація: [Пам’ять](/uk/concepts/memory), [Workspace агента](/uk/concepts/agent-workspace). Файли пам’яті живуть на диску й зберігаються, доки ви їх не видалите. Обмеженням є - ваше сховище, а не модель. **Контекст сесії** усе ще обмежений вікном контексту - моделі, тому довгі розмови можуть проходити Compaction або обрізання. Саме тому - існує пошук у пам’яті — він повертає в контекст лише релевантні частини. + ваше сховище, а не модель. **Контекст сесії** все одно обмежується вікном контексту + моделі, тому довгі розмови можуть стискатися або обрізатися. Саме тому існує + пошук пам’яті — він повертає в контекст лише релевантні частини. - Документація: [Memory](/uk/concepts/memory), [Context](/uk/concepts/context). + Документація: [Пам’ять](/uk/concepts/memory), [Контекст](/uk/concepts/context). - + Лише якщо ви використовуєте **OpenAI embeddings**. Codex OAuth покриває chat/completions і **не** надає доступу до embeddings, тому **вхід через Codex (OAuth або вхід через Codex CLI)** не допомагає для семантичного пошуку в пам’яті. OpenAI embeddings - усе одно потребують справжнього ключа API (`OPENAI_API_KEY` або `models.providers.openai.apiKey`). + усе одно потребують справжнього API key (`OPENAI_API_KEY` або `models.providers.openai.apiKey`). Якщо ви явно не задаєте провайдера, OpenClaw автоматично вибирає провайдера, коли - може визначити ключ API (профілі автентифікації, `models.providers.*.apiKey` або змінні середовища). - Він віддає перевагу OpenAI, якщо визначається ключ OpenAI, інакше Gemini, якщо визначається ключ Gemini, - потім Voyage, потім Mistral. Якщо жоден віддалений ключ недоступний, пошук у - пам’яті залишається вимкненим, доки ви його не налаштуєте. Якщо у вас налаштовано і доступний + може визначити API key (профілі автентифікації, `models.providers.*.apiKey` або env vars). + Він надає перевагу OpenAI, якщо доступний ключ OpenAI, інакше Gemini, якщо доступний ключ Gemini, + потім Voyage, потім Mistral. Якщо жоден віддалений ключ недоступний, пошук у пам’яті + залишається вимкненим, доки ви його не налаштуєте. Якщо у вас налаштовано й доступний шлях до локальної моделі, OpenClaw - віддає перевагу `local`. Ollama підтримується, коли ви явно задаєте + надає перевагу `local`. Ollama підтримується, якщо ви явно задаєте `memorySearch.provider = "ollama"`. - Якщо ви хочете залишатися локально, задайте `memorySearch.provider = "local"` (і за бажанням - `memorySearch.fallback = "none"`). Якщо вам потрібні Gemini embeddings, задайте + Якщо ви хочете залишатися локально, установіть `memorySearch.provider = "local"` (і за потреби + `memorySearch.fallback = "none"`). Якщо ви хочете embeddings Gemini, задайте `memorySearch.provider = "gemini"` і надайте `GEMINI_API_KEY` (або - `memorySearch.remote.apiKey`). Ми підтримуємо embedding-моделі **OpenAI, Gemini, Voyage, Mistral, Ollama або local** - — подробиці налаштування див. у [Memory](/uk/concepts/memory). + `memorySearch.remote.apiKey`). Ми підтримуємо моделі embeddings **OpenAI, Gemini, Voyage, Mistral, Ollama або local** — + деталі налаштування див. у [Пам’ять](/uk/concepts/memory). -## Де все зберігається на диску +## Де що зберігається на диску Ні — **стан OpenClaw локальний**, але **зовнішні сервіси все одно бачать те, що ви їм надсилаєте**. - **Локально за замовчуванням:** сесії, файли пам’яті, конфігурація та workspace живуть на хості Gateway - (`~/.openclaw` + ваш каталог workspace). - - **Віддалено за необхідністю:** повідомлення, які ви надсилаєте провайдерам моделей (Anthropic/OpenAI тощо), потрапляють - до їхніх API, а чат-платформи (WhatsApp/Telegram/Slack тощо) зберігають дані повідомлень на + (`~/.openclaw` + каталог вашого workspace). + - **Віддалено за необхідністю:** повідомлення, які ви надсилаєте провайдерам моделей (Anthropic/OpenAI/etc.), потрапляють до + їхніх API, а чат-платформи (WhatsApp/Telegram/Slack/etc.) зберігають дані повідомлень на своїх серверах. - - **Ви контролюєте обсяг:** використання локальних моделей залишає prompts на вашій машині, але трафік - каналів усе одно проходить через сервери відповідного каналу. + - **Ви контролюєте обсяг:** використання локальних моделей залишає prompt-и на вашій машині, але трафік каналів + усе одно проходить через сервери відповідного каналу. - Пов’язане: [Agent workspace](/uk/concepts/agent-workspace), [Memory](/uk/concepts/memory). + Пов’язано: [Workspace агента](/uk/concepts/agent-workspace), [Пам’ять](/uk/concepts/memory). @@ -570,29 +572,29 @@ Q&A для першого запуску — встановлення, онбо | Path | Призначення | | --------------------------------------------------------------- | ------------------------------------------------------------------ | | `$OPENCLAW_STATE_DIR/openclaw.json` | Основна конфігурація (JSON5) | - | `$OPENCLAW_STATE_DIR/credentials/oauth.json` | Застарілий імпорт OAuth (копіюється в профілі автентифікації під час першого використання) | + | `$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` | Необов’язковий payload секрету на основі файла для провайдерів `file` SecretRef | - | `$OPENCLAW_STATE_DIR/agents//agent/auth.json` | Застарілий файл сумісності (статичні записи `api_key` очищено) | + | `$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/` | Стан для кожного agent (agentDir + sessions) | - | `$OPENCLAW_STATE_DIR/agents//sessions/` | Історія розмов і стан (для кожного agent) | - | `$OPENCLAW_STATE_DIR/agents//sessions/sessions.json` | Метадані сесій (для кожного agent) | + | `$OPENCLAW_STATE_DIR/agents/` | Стан для кожного агента (agentDir + сесії) | + | `$OPENCLAW_STATE_DIR/agents//sessions/` | Історія розмов і стан (для кожного агента) | + | `$OPENCLAW_STATE_DIR/agents//sessions/sessions.json` | Метадані сесій (для кожного агента) | - Застарілий шлях для single-agent: `~/.openclaw/agent/*` (мігрується через `openclaw doctor`). + Застарілий шлях для одного агента: `~/.openclaw/agent/*` (мігрується через `openclaw doctor`). - Ваш **workspace** (`AGENTS.md`, файли пам’яті, Skills тощо) зберігається окремо та налаштовується через `agents.defaults.workspace` (типово: `~/.openclaw/workspace`). + Ваш **workspace** (`AGENTS.md`, файли пам’яті, Skills тощо) зберігається окремо й налаштовується через `agents.defaults.workspace` (типово: `~/.openclaw/workspace`). - Ці файли живуть у **workspace agent**, а не в `~/.openclaw`. + Ці файли зберігаються у **workspace агента**, а не в `~/.openclaw`. - - **Workspace (для кожного agent):** `AGENTS.md`, `SOUL.md`, `IDENTITY.md`, `USER.md`, + - **Workspace (для кожного агента)**: `AGENTS.md`, `SOUL.md`, `IDENTITY.md`, `USER.md`, `MEMORY.md`, `memory/YYYY-MM-DD.md`, необов’язково `HEARTBEAT.md`. - Кореневий `memory.md` у нижньому регістрі — лише застарілий вхід для виправлення; `openclaw doctor --fix` + Кореневий `memory.md` у нижньому регістрі — лише вхід для відновлення сумісності зі старими версіями; `openclaw doctor --fix` може об’єднати його в `MEMORY.md`, коли існують обидва файли. - - **Каталог стану (`~/.openclaw`)**: конфігурація, стан каналу/провайдера, профілі автентифікації, сесії, логи, + - **Каталог стану (`~/.openclaw`)**: конфігурація, стан каналів/провайдерів, профілі автентифікації, сесії, логи і спільні Skills (`~/.openclaw/skills`). Типовий workspace — `~/.openclaw/workspace`, налаштовується через: @@ -604,43 +606,43 @@ Q&A для першого запуску — встановлення, онбо ``` Якщо бот «забуває» після перезапуску, переконайтеся, що Gateway використовує той самий - workspace при кожному запуску (і пам’ятайте: віддалений режим використовує workspace **хоста gateway**, + workspace під час кожного запуску (і пам’ятайте: віддалений режим використовує workspace **хоста gateway**, а не вашого локального ноутбука). - Порада: якщо вам потрібна стійка поведінка або налаштування, попросіть бота **записати це в + Порада: якщо ви хочете зберегти тривалу поведінку або вподобання, попросіть бота **записати це в AGENTS.md або MEMORY.md**, а не покладайтеся на історію чату. - Див. [Agent workspace](/uk/concepts/agent-workspace) і [Memory](/uk/concepts/memory). + Див. [Workspace агента](/uk/concepts/agent-workspace) і [Пам’ять](/uk/concepts/memory). - Зберігайте свій **workspace agent** у **приватному** git-репозиторії та робіть його резервну копію - у приватному місці (наприклад, приватний GitHub). Це зберігає пам’ять + файли AGENTS/SOUL/USER - і дає змогу пізніше відновити «розум» асистента. + Зберігайте свій **workspace агента** у **приватному** git-репозиторії та робіть резервні копії в + приватному місці (наприклад, GitHub private). Це збереже пам’ять + файли AGENTS/SOUL/USER + і дасть змогу пізніше відновити «розум» асистента. - **Не** комітьте нічого з `~/.openclaw` (облікові дані, сесії, токени або зашифровані payload секретів). + **Не** комітьте нічого з `~/.openclaw` (облікові дані, сесії, токени або зашифровані корисні навантаження секретів). Якщо вам потрібне повне відновлення, окремо створюйте резервні копії і workspace, і каталогу стану (див. питання про міграцію вище). - Документація: [Agent workspace](/uk/concepts/agent-workspace). + Документація: [Workspace агента](/uk/concepts/agent-workspace). - Див. окремий посібник: [Uninstall](/uk/install/uninstall). + Див. окремий посібник: [Видалення](/uk/install/uninstall). - - Так. Workspace — це **типовий cwd** і точка прив’язки пам’яті, а не жорстка sandbox. - Відносні шляхи визначаються всередині workspace, але абсолютні шляхи можуть звертатися до інших - розташувань хоста, якщо ізоляцію не ввімкнено. Якщо вам потрібна ізоляція, використовуйте - [`agents.defaults.sandbox`](/uk/gateway/sandboxing) або налаштування sandbox для окремого agent. Якщо ви - хочете, щоб репозиторій був типовим робочим каталогом, вкажіть `workspace` - цього agent на корінь репозиторію. Репозиторій OpenClaw — це лише вихідний код; тримайте - workspace окремо, якщо лише ви навмисно не хочете, щоб agent працював усередині нього. + + Так. Workspace — це **типовий cwd** і якір пам’яті, а не жорстка ізоляція. + Відносні шляхи розв’язуються всередині workspace, але абсолютні шляхи можуть звертатися до інших + розташувань хоста, якщо не ввімкнено ізоляцію. Якщо вам потрібна ізоляція, використовуйте + [`agents.defaults.sandbox`](/uk/gateway/sandboxing) або налаштування ізоляції для конкретного агента. Якщо ви + хочете, щоб репозиторій був типовим робочим каталогом, укажіть + `workspace` цього агента як корінь репозиторію. Репозиторій OpenClaw — це лише вихідний код; тримайте + workspace окремо, якщо тільки ви навмисно не хочете, щоб агент працював усередині нього. - Приклад (репозиторій як типовий cwd): + Приклад (repo як типовий cwd): ```json5 { @@ -654,30 +656,30 @@ Q&A для першого запуску — встановлення, онбо - - Станом сесій керує **хост gateway**. Якщо ви в віддаленому режимі, потрібне вам сховище сесій розташоване на віддаленій машині, а не на вашому локальному ноутбуці. Див. [Session management](/uk/concepts/session). + + Станом сесій володіє **хост gateway**. Якщо ви працюєте у віддаленому режимі, сховище сесій, яке вам потрібне, розташоване на віддаленій машині, а не на вашому локальному ноутбуці. Див. [Керування сесіями](/uk/concepts/session). ## Основи конфігурації - - OpenClaw читає необов’язкову конфігурацію **JSON5** із `$OPENCLAW_CONFIG_PATH` (типово: `~/.openclaw/openclaw.json`): + + OpenClaw читає необов’язкову конфігурацію у форматі **JSON5** з `$OPENCLAW_CONFIG_PATH` (типово: `~/.openclaw/openclaw.json`): ``` $OPENCLAW_CONFIG_PATH ``` - Якщо файл відсутній, використовуються відносно безпечні типові значення (зокрема типовий workspace `~/.openclaw/workspace`). + Якщо файл відсутній, використовуються достатньо безпечні типові значення (зокрема типовий workspace `~/.openclaw/workspace`). - Прив’язки не до loopback **потребують валідного шляху автентифікації gateway**. На практиці це означає: + Bind-адреси не loopback **потребують дійсного шляху автентифікації gateway**. На практиці це означає: - - автентифікація спільним секретом: токен або пароль - - `gateway.auth.mode: "trusted-proxy"` за правильно налаштованим identity-aware reverse proxy не на loopback + - автентифікація за спільним секретом: токен або пароль + - `gateway.auth.mode: "trusted-proxy"` за правильно налаштованим reverse proxy з підтримкою ідентифікації, який не використовує loopback ```json5 { @@ -694,31 +696,31 @@ Q&A для першого запуску — встановлення, онбо Примітки: - `gateway.remote.token` / `.password` **самі по собі** не вмикають локальну автентифікацію gateway. - - Локальні шляхи виклику можуть використовувати `gateway.remote.*` як fallback лише тоді, коли `gateway.auth.*` не задано. - - Для автентифікації паролем задайте `gateway.auth.mode: "password"` плюс `gateway.auth.password` (або `OPENCLAW_GATEWAY_PASSWORD`). - - Якщо `gateway.auth.token` / `gateway.auth.password` явно налаштовано через SecretRef і його не вдається визначити, визначення завершується закритою відмовою (без маскування через віддалений fallback). - - Налаштування Control UI зі спільним секретом проходять автентифікацію через `connect.params.auth.token` або `connect.params.auth.password` (зберігаються в налаштуваннях 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 і його не вдається визначити, визначення завершується в закритому стані (без маскування через віддалений запасний варіант). + - Налаштування Control UI зі спільним секретом автентифікуються через `connect.params.auth.token` або `connect.params.auth.password` (зберігаються в налаштуваннях застосунку/UI). Режими з передаванням ідентичності, як-от Tailscale Serve або `trusted-proxy`, замість цього використовують заголовки запиту. Уникайте розміщення спільних секретів в URL. + - За `gateway.auth.mode: "trusted-proxy"` reverse proxy з loopback на тому самому хості все одно **не** задовольняє вимоги автентифікації trusted-proxy. Trusted proxy має бути налаштованим джерелом не loopback. - OpenClaw примусово вимагає автентифікацію gateway за замовчуванням, зокрема і на loopback. У звичайному типовому шляху це означає автентифікацію токеном: якщо явний шлях автентифікації не налаштовано, під час запуску gateway вибирається режим токена й автоматично генерується токен, який зберігається в `gateway.auth.token`, тому **локальні WS-клієнти мають проходити автентифікацію**. Це блокує іншим локальним процесам виклик Gateway. + OpenClaw за замовчуванням вимагає автентифікацію gateway, зокрема й для loopback. У звичайному типовому сценарії це означає автентифікацію токеном: якщо явний шлях автентифікації не налаштовано, під час запуску gateway вибирається режим токена й автоматично генерується токен, який зберігається в `gateway.auth.token`, тому **локальні WS-клієнти повинні автентифікуватися**. Це блокує іншим локальним процесам можливість викликати Gateway. - Якщо вам більше підходить інший шлях автентифікації, ви можете явно вибрати режим пароля (або, для identity-aware reverse proxy не на loopback, `trusted-proxy`). Якщо ви **справді** хочете відкритий loopback, явно задайте `gateway.auth.mode: "none"` у своїй конфігурації. Doctor може будь-коли згенерувати токен за вас: `openclaw doctor --generate-gateway-token`. + Якщо ви віддаєте перевагу іншому шляху автентифікації, можете явно вибрати режим пароля (або, для reverse proxy з підтримкою ідентифікації без loopback, `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 { @@ -732,22 +734,22 @@ Q&A для першого запуску — встановлення, онбо - `off`: приховує текст слогана, але зберігає рядок заголовка/версії банера. - `default`: щоразу використовує `All your chats, one OpenClaw.`. - - `random`: ротація кумедних/сезонних слоганів (типова поведінка). - - Якщо ви взагалі не хочете банера, задайте змінну середовища `OPENCLAW_HIDE_BANNER=1`. + - `random`: змінні кумедні/сезонні слогани (типова поведінка). + - Якщо ви хочете повністю прибрати банер, установіть env `OPENCLAW_HIDE_BANNER=1`. - - `web_fetch` працює без ключа API. `web_search` залежить від вибраного + + `web_fetch` працює без API key. `web_search` залежить від вибраного провайдера: - - Провайдери на основі API, як-от Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Perplexity і Tavily, потребують звичайного налаштування ключів API. - - Ollama Web Search не потребує ключа, але використовує налаштований хост Ollama і вимагає `ollama signin`. - - DuckDuckGo не потребує ключа, але це неофіційна інтеграція на основі HTML. - - SearXNG не потребує ключа / підтримує self-host; налаштуйте `SEARXNG_BASE_URL` або `plugins.entries.searxng.config.webSearch.baseUrl`. + - Провайдери з API, як-от Brave, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Perplexity і Tavily, потребують звичайного налаштування API key. + - Ollama Web Search не потребує ключа, але використовує налаштований у вас хост Ollama й вимагає `ollama signin`. + - DuckDuckGo не потребує ключа, але це неофіційна HTML-інтеграція. + - SearXNG не потребує ключа / може бути self-hosted; налаштуйте `SEARXNG_BASE_URL` або `plugins.entries.searxng.config.webSearch.baseUrl`. **Рекомендовано:** запустіть `openclaw configure --section web` і виберіть провайдера. - Альтернативи через змінні середовища: + Альтернативи через середовище: - Brave: `BRAVE_API_KEY` - Exa: `EXA_API_KEY` @@ -782,71 +784,71 @@ Q&A для першого запуску — встановлення, онбо }, fetch: { enabled: true, - provider: "firecrawl", // необов’язково; пропустіть для auto-detect + provider: "firecrawl", // необов’язково; пропустіть для авто-визначення }, }, }, } ``` - Конфігурація вебпошуку, специфічна для провайдера, тепер зберігається в `plugins.entries..config.webSearch.*`. - Застарілі шляхи провайдерів `tools.web.search.*` поки що все ще завантажуються для сумісності, але їх не слід використовувати в нових конфігураціях. - Конфігурація fallback для Firecrawl web-fetch зберігається в `plugins.entries.firecrawl.config.webFetch.*`. + Специфічна для провайдера конфігурація вебпошуку тепер розміщується в `plugins.entries..config.webSearch.*`. + Застарілі шляхи провайдера `tools.web.search.*` ще тимчасово завантажуються для сумісності, але їх не слід використовувати в нових конфігураціях. + Запасна конфігурація web-fetch для Firecrawl розміщується в `plugins.entries.firecrawl.config.webFetch.*`. Примітки: - - Якщо ви використовуєте allowlist, додайте `web_search`/`web_fetch`/`x_search` або `group:web`. + - Якщо ви використовуєте списки дозволених, додайте `web_search`/`web_fetch`/`x_search` або `group:web`. - `web_fetch` увімкнено за замовчуванням (якщо його явно не вимкнено). - - Якщо `tools.web.fetch.provider` не вказано, OpenClaw автоматично визначає першого готового fallback-провайдера для fetch із доступних облікових даних. Наразі вбудований провайдер — Firecrawl. - - Daemons читають змінні середовища з `~/.openclaw/.env` (або із середовища сервісу). + - Якщо `tools.web.fetch.provider` пропущено, OpenClaw автоматично визначає першого готового запасного провайдера fetch із доступних облікових даних. Наразі вбудованим провайдером є Firecrawl. + - Демони читають env vars з `~/.openclaw/.env` (або з оточення сервісу). - Документація: [Web tools](/uk/tools/web). + Документація: [Вебінструменти](/uk/tools/web). - + `config.apply` замінює **всю конфігурацію**. Якщо ви надсилаєте частковий об’єкт, усе - інше буде видалено. + інше видаляється. - Поточний OpenClaw захищає від багатьох випадкових пошкоджень: + Поточний OpenClaw захищає від багатьох випадкових затирань: - Записи конфігурації, якими керує OpenClaw, перевіряють повну конфігурацію після змін перед записом. - - Невалідні або руйнівні записи, якими керує OpenClaw, відхиляються й зберігаються як `openclaw.json.rejected.*`. - - Якщо пряме редагування ламає запуск або hot reload, Gateway відновлює останню відому коректну конфігурацію й зберігає відхилений файл як `openclaw.json.clobbered.*`. - - Після відновлення основний agent отримує попередження під час запуску, щоб не записати погану конфігурацію знову навмання. + - Недійсні або руйнівні записи конфігурації, якими керує 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` і заново налаштуйте channels/models. - - Якщо це сталося неочікувано, створіть bug report і додайте свою останню відому конфігурацію або будь-яку резервну копію. - - Локальний coding agent часто може відновити працездатну конфігурацію з логів або історії. + - Якщо у вас немає ані останньої відомої робочої конфігурації, ані відхиленого вмісту, відновіть із резервної копії або знову запустіть `openclaw doctor` і повторно налаштуйте канали/моделі. + - Якщо це було неочікувано, створіть bug-report і додайте останню відому конфігурацію або будь-яку резервну копію. + - Локальний агент для коду часто може відновити робочу конфігурацію з логів або історії. - Як уникнути цього: + Як уникнути: - Використовуйте `openclaw config set` для невеликих змін. - Використовуйте `openclaw configure` для інтерактивного редагування. - - Спочатку використовуйте `config.schema.lookup`, якщо не впевнені в точному шляху або формі поля; він повертає поверхневий вузол схеми плюс підсумки безпосередніх дочірніх елементів для подальшого заглиблення. - - Використовуйте `config.patch` для часткових редагувань через RPC; залишайте `config.apply` лише для повної заміни конфігурації. - - Якщо ви використовуєте owner-only інструмент `gateway` із запуску agent, він усе одно відхилятиме записи в `tools.exec.ask` / `tools.exec.security` (зокрема застарілі псевдоніми `tools.bash.*`, які нормалізуються до тих самих захищених шляхів exec). + - Спочатку використовуйте `config.schema.lookup`, якщо не впевнені щодо точного шляху чи форми поля; він повертає вузол неглибокої схеми плюс зведення безпосередніх дочірніх елементів для подальшого занурення. + - Використовуйте `config.patch` для часткових RPC-редагувань; залишайте `config.apply` лише для повної заміни конфігурації. + - Якщо ви використовуєте owner-only інструмент `gateway` під час запуску агента, він усе одно відхилятиме записи в `tools.exec.ask` / `tools.exec.security` (включно із застарілими псевдонімами `tools.bash.*`, які нормалізуються до тих самих захищених шляхів exec). - Документація: [Config](/uk/cli/config), [Configure](/uk/cli/configure), [Gateway troubleshooting](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config), [Doctor](/uk/gateway/doctor). + Документація: [Config](/uk/cli/config), [Configure](/uk/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 (центральний):** керує channels (Signal/WhatsApp), маршрутизацією та sessions. - - **Nodes (пристрої):** Mac/iOS/Android підключаються як периферія й надають локальні інструменти (`system.run`, `canvas`, `camera`). - - **Agents (працівники):** окремі «мізки»/workspace для спеціальних ролей (наприклад, "Hetzner ops", "Personal data"). - - **Sub-agents:** запускають фонову роботу з основного agent, коли вам потрібен паралелізм. - - **TUI:** підключається до Gateway і перемикає agents/sessions. + - **Gateway (центральний):** володіє каналами (Signal/WhatsApp), маршрутизацією та сесіями. + - **Nodes (пристрої):** Macs/iOS/Android підключаються як периферія й надають локальні інструменти (`system.run`, `canvas`, `camera`). + - **Agents (worker-и):** окремі мізки/workspace-и для спеціальних ролей (наприклад, «Hetzner ops», «Personal data»). + - **Sub-agents:** запускають фонову роботу з основного агента, коли вам потрібен паралелізм. + - **TUI:** підключається до Gateway і дає змогу перемикати агентів/сесії. - Документація: [Nodes](/uk/nodes), [Remote access](/uk/gateway/remote), [Multi-Agent Routing](/uk/concepts/multi-agent), [Sub-agents](/uk/tools/subagents), [TUI](/uk/web/tui). + Документація: [Nodes](/uk/nodes), [Віддалений доступ](/uk/gateway/remote), [Маршрутизація Multi-Agent](/uk/concepts/multi-agent), [Sub-agents](/uk/tools/subagents), [TUI](/uk/web/tui). @@ -864,11 +866,11 @@ Q&A для першого запуску — встановлення, онбо } ``` - Типове значення — `false` (headful). Headless-режим частіше викликає anti-bot-перевірки на деяких сайтах. Див. [Browser](/uk/tools/browser). + Значення за замовчуванням — `false` (з інтерфейсом). Headless-режим частіше викликає перевірки anti-bot на деяких сайтах. Див. [Браузер](/uk/tools/browser). - Headless використовує **той самий рушій Chromium** і працює для більшості сценаріїв автоматизації (форми, кліки, скрейпінг, входи). Основні відмінності: + Headless використовує **той самий рушій Chromium** і працює для більшості сценаріїв автоматизації (форми, кліки, скрапінг, логіни). Основні відмінності: - - Немає видимого вікна браузера (використовуйте screenshots, якщо потрібна візуалізація). + - Немає видимого вікна браузера (якщо потрібна візуалізація, використовуйте знімки екрана). - Деякі сайти суворіше ставляться до автоматизації в headless-режимі (CAPTCHA, anti-bot). Наприклад, X/Twitter часто блокує headless-сесії. @@ -876,54 +878,54 @@ Q&A для першого запуску — встановлення, онбо Установіть `browser.executablePath` на ваш бінарний файл Brave (або будь-якого браузера на основі Chromium) і перезапустіть Gateway. - Повні приклади конфігурації див. у [Browser](/uk/tools/browser#use-brave-or-another-chromium-based-browser). + Повні приклади конфігурації див. у [Браузер](/uk/tools/browser#use-brave-or-another-chromium-based-browser). -## Віддалені gateway і nodes +## Віддалені gateway та nodes - - Повідомлення Telegram обробляє **gateway**. Gateway запускає agent і + + Повідомлення 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 доступний (прив’язка tailnet або SSH-тунель). + 1. Запустіть Gateway на постійно увімкненому хості (VPS/домашній сервер). + 2. Розмістіть хост Gateway і ваш комп’ютер в одній tailnet. + 3. Переконайтеся, що Gateway WS доступний (bind через tailnet або SSH-тунель). 4. Відкрийте застосунок macOS локально й підключіться в режимі **Remote over SSH** (або напряму через tailnet), щоб він міг зареєструватися як node. - 5. Схваліть node на Gateway: + 5. Підтвердьте node на Gateway: ```bash openclaw devices list openclaw devices approve ``` - Окремий TCP bridge не потрібен; nodes підключаються через Gateway WebSocket. + Окремий TCP-міст не потрібен; nodes підключаються через Gateway WebSocket. - Нагадування про безпеку: сполучення node macOS дозволяє `system.run` на цій машині. Сполучайте - лише пристрої, яким довіряєте, і перегляньте [Security](/uk/gateway/security). + Нагадування щодо безпеки: спарювання macOS node дозволяє `system.run` на цій машині. Підключайте + лише ті пристрої, яким довіряєте, і перегляньте [Безпека](/uk/gateway/security). - Документація: [Nodes](/uk/nodes), [Gateway protocol](/uk/gateway/protocol), [macOS remote mode](/uk/platforms/mac/remote), [Security](/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` @@ -931,83 +933,83 @@ Q&A для першого запуску — встановлення, онбо - Якщо ви використовуєте Tailscale Serve, переконайтеся, що `gateway.auth.allowTailscale` налаштовано правильно. - Якщо ви підключаєтеся через SSH-тунель, переконайтеся, що локальний тунель активний і вказує на правильний порт. - - Переконайтеся, що ваші allowlist (DM або група) включають ваш обліковий запис. + - Переконайтеся, що ваші списки дозволених (DM або групи) містять ваш обліковий запис. - Документація: [Tailscale](/uk/gateway/tailscale), [Remote access](/uk/gateway/remote), [Channels](/uk/channels). + Документація: [Tailscale](/uk/gateway/tailscale), [Віддалений доступ](/uk/gateway/remote), [Канали](/uk/channels). - - Так. Вбудованого bridge «бот-до-бота» немає, але це можна організувати кількома + + Так. Вбудованого мосту «бот-до-бота» немає, але це можна налаштувати кількома надійними способами: **Найпростіше:** використовуйте звичайний чат-канал, до якого мають доступ обидва боти (Telegram/Slack/WhatsApp). - Нехай Bot A надішле повідомлення Bot B, а потім Bot B відповість як зазвичай. + Нехай Bot A надсилає повідомлення Bot B, а Bot B відповідає як зазвичай. - **CLI bridge (загальний):** запустіть скрипт, який викликає інший Gateway через - `openclaw agent --message ... --deliver`, націлюючись на чат, де інший бот - слухає. Якщо один бот працює на віддаленому VPS, спрямуйте свій CLI на цей віддалений Gateway - через SSH/Tailscale (див. [Remote access](/uk/gateway/remote)). + **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 ``` - Порада: додайте захист, щоб два боти не зациклилися без кінця (лише відповіді на згадки, allowlist каналів + Порада: додайте захисне правило, щоб два боти не зациклилися безкінечно (відповідати лише на згадки, списки дозволених каналів або правило «не відповідати на повідомлення ботів»). - Документація: [Remote access](/uk/gateway/remote), [Agent CLI](/uk/cli/agent), [Agent send](/uk/tools/agent-send). + Документація: [Віддалений доступ](/uk/gateway/remote), [Agent CLI](/uk/cli/agent), [Надсилання агентом](/uk/tools/agent-send). - - Ні. Один Gateway може розміщувати кількох agents, кожен зі своїм workspace, типовими моделями - і маршрутизацією. Це нормальне налаштування, і воно значно дешевше та простіше, ніж запускати - один VPS на кожного agent. + + Ні. Один Gateway може хостити кількох агентів, кожен зі своїм workspace, типовими моделями + і маршрутизацією. Це нормальне налаштування, і воно значно дешевше й простіше, ніж запускати + один VPS на агента. Використовуйте окремі VPS лише тоді, коли вам потрібна жорстка ізоляція (межі безпеки) або дуже - різні конфігурації, якими ви не хочете ділитися. В іншому разі залишайте один Gateway і - використовуйте кількох agents або sub-agents. + різні конфігурації, які ви не хочете спільно використовувати. В інших випадках тримайте один Gateway і + використовуйте кількох агентів або sub-agents. Так — nodes є основним способом доступу до вашого ноутбука з віддаленого Gateway, і вони - дають більше, ніж просто доступ до shell. Gateway працює на macOS/Linux (Windows через WSL2) і є - легким (достатньо невеликого VPS або пристрою класу Raspberry Pi; 4 GB RAM цілком вистачає), тому поширене - налаштування — це хост, який завжди ввімкнений, плюс ваш ноутбук як node. + відкривають більше, ніж просто доступ до оболонки. Gateway працює на macOS/Linux (Windows через WSL2) і є + легким (достатньо невеликого VPS або пристрою класу Raspberry Pi; 4 ГБ RAM цілком вистачає), тому поширене + налаштування — це постійно увімкнений хост плюс ваш ноутбук як node. - - **Не потрібен вхідний SSH.** Nodes самі підключаються до Gateway WebSocket і використовують сполучення пристроїв. - - **Безпечніший контроль виконання.** `system.run` контролюється allowlist/схваленнями node на цьому ноутбуці. + - **Не потрібен вхідний SSH.** Nodes самі підключаються до Gateway WebSocket і використовують спарювання пристроїв. + - **Безпечніший контроль виконання.** `system.run` обмежується списками дозволених/підтвердженнями node на цьому ноутбуці. - **Більше інструментів пристрою.** Nodes надають `canvas`, `camera` і `screen` на додачу до `system.run`. - - **Локальна автоматизація браузера.** Тримайте Gateway на VPS, але запускайте Chrome локально через хост node на ноутбуці або підключайтеся до локального Chrome на хості через Chrome MCP. + - **Локальна автоматизація браузера.** Тримайте Gateway на VPS, але запускайте Chrome локально через node host на ноутбуці або під’єднуйтеся до локального Chrome на хості через Chrome MCP. - SSH підходить для разового доступу до shell, але nodes простіші для постійних робочих процесів agent і + SSH підходить для разового доступу до оболонки, але nodes простіші для постійних робочих процесів агентів і автоматизації пристроїв. - Документація: [Nodes](/uk/nodes), [Nodes CLI](/uk/cli/nodes), [Browser](/uk/tools/browser). + Документація: [Nodes](/uk/nodes), [CLI Nodes](/uk/cli/nodes), [Браузер](/uk/tools/browser). - Ні. На хості має працювати лише **один gateway**, якщо тільки ви навмисно не запускаєте ізольовані профілі (див. [Multiple gateways](/uk/gateway/multiple-gateways)). Nodes — це периферійні компоненти, які підключаються - до gateway (nodes iOS/Android або «node mode» на macOS у застосунку рядка меню). Для безголових - хостів node і керування через CLI див. [Node host CLI](/uk/cli/node). + Ні. На кожному хості має працювати лише **один gateway**, якщо ви навмисно не запускаєте ізольовані профілі (див. [Кілька gateway](/uk/gateway/multiple-gateways)). Nodes — це периферійні пристрої, які підключаються + до gateway (nodes для iOS/Android або режим «node mode» у застосунку рядка меню macOS). Для headless node + host-ів і керування через CLI див. [CLI Node host](/uk/cli/node). - Для змін `gateway`, `discovery` і `canvasHost` потрібен повний перезапуск. + Повний перезапуск потрібен для змін `gateway`, `discovery` і `canvasHost`. Так. - - `config.schema.lookup`: перевірити одне піддерево конфігурації з його поверхневим вузлом схеми, відповідною підказкою UI і підсумками безпосередніх дочірніх елементів перед записом + - `config.schema.lookup`: переглянути одне піддерево конфігурації з його вузлом неглибокої схеми, відповідною UI-підказкою та зведеннями безпосередніх дочірніх елементів перед записом - `config.get`: отримати поточний знімок + hash - - `config.patch`: безпечне часткове оновлення (переважний варіант для більшості редагувань через RPC); виконує hot-reload, коли можливо, і перезапуск, коли потрібно - - `config.apply`: перевіряє й замінює всю конфігурацію; виконує hot-reload, коли можливо, і перезапуск, коли потрібно - - Інструмент runtime `gateway`, доступний лише owner, як і раніше відмовляється переписувати `tools.exec.ask` / `tools.exec.security`; застарілі псевдоніми `tools.bash.*` нормалізуються до тих самих захищених шляхів exec + - `config.patch`: безпечне часткове оновлення (бажаний варіант для більшості RPC-редагувань); застосовує гаряче перезавантаження, коли можливо, і перезапускає, коли потрібно + - `config.apply`: перевіряє й замінює повну конфігурацію; застосовує гаряче перезавантаження, коли можливо, і перезапускає, коли потрібно + - Owner-only runtime tool `gateway` усе ще відмовляється перезаписувати `tools.exec.ask` / `tools.exec.security`; застарілі псевдоніми `tools.bash.*` нормалізуються до тих самих захищених шляхів exec @@ -1034,14 +1036,14 @@ Q&A для першого запуску — встановлення, онбо ``` 2. **Установіть і виконайте вхід на Mac** - - Використайте застосунок Tailscale і ввійдіть у ту саму tailnet. + - Використайте застосунок Tailscale і увійдіть до тієї самої tailnet. 3. **Увімкніть MagicDNS (рекомендовано)** - В адмін-консолі Tailscale увімкніть MagicDNS, щоб VPS мав стабільне ім’я. 4. **Використовуйте ім’я хоста tailnet** - SSH: `ssh user@your-vps.tailnet-xxxx.ts.net` - Gateway WS: `ws://your-vps.tailnet-xxxx.ts.net:18789` - Якщо ви хочете Control UI без SSH, використовуйте Tailscale Serve на VPS: + Якщо ви хочете Control UI без SSH, використайте Tailscale Serve на VPS: ```bash openclaw gateway --tailscale serve @@ -1051,49 +1053,49 @@ Q&A для першого запуску — встановлення, онбо - - Serve відкриває **Gateway Control UI + WS**. Nodes підключаються через той самий endpoint Gateway WS. + + Serve відкриває **Gateway Control UI + WS**. Nodes підключаються через ту саму кінцеву точку Gateway WS. Рекомендоване налаштування: - 1. **Переконайтеся, що VPS і Mac знаходяться в одній tailnet**. + 1. **Переконайтеся, що VPS і Mac перебувають в одній tailnet**. 2. **Використовуйте застосунок macOS у віддаленому режимі** (ціллю SSH може бути ім’я хоста tailnet). - Застосунок тунелюватиме порт Gateway і підключиться як node. - 3. **Схваліть node** на gateway: + Застосунок протунелює порт Gateway і підключиться як node. + 3. **Підтвердьте node** на gateway: ```bash openclaw devices list openclaw devices approve ``` - Документація: [Gateway protocol](/uk/gateway/protocol), [Discovery](/uk/gateway/discovery), [macOS remote mode](/uk/platforms/mac/remote). + Документація: [Протокол Gateway](/uk/gateway/protocol), [Discovery](/uk/gateway/discovery), [Віддалений режим macOS](/uk/platforms/mac/remote). - + Якщо вам потрібні лише **локальні інструменти** (екран/камера/exec) на другому ноутбуці, додайте його як - **node**. Це дозволяє зберегти єдиний Gateway і уникнути дублювання конфігурації. Локальні інструменти node - зараз доступні лише на macOS, але ми плануємо поширити їх і на інші ОС. + **node**. Це зберігає єдиний Gateway і уникає дублювання конфігурації. Локальні інструменти node + наразі доступні лише на macOS, але ми плануємо поширити їх на інші ОС. Установлюйте другий Gateway лише тоді, коли вам потрібна **жорстка ізоляція** або два повністю окремі боти. - Документація: [Nodes](/uk/nodes), [Nodes CLI](/uk/cli/nodes), [Multiple gateways](/uk/gateway/multiple-gateways). + Документація: [Nodes](/uk/nodes), [CLI Nodes](/uk/cli/nodes), [Кілька gateway](/uk/gateway/multiple-gateways). -## Змінні середовища і завантаження .env +## Env vars і завантаження .env - OpenClaw читає змінні середовища з батьківського процесу (shell, launchd/systemd, CI тощо) і додатково завантажує: + OpenClaw читає env vars із батьківського процесу (shell, launchd/systemd, CI тощо) і додатково завантажує: - `.env` з поточного робочого каталогу - - глобальний fallback `.env` з `~/.openclaw/.env` (тобто `$OPENCLAW_STATE_DIR/.env`) + - глобальний запасний `.env` з `~/.openclaw/.env` (тобто `$OPENCLAW_STATE_DIR/.env`) - Жоден файл `.env` не перевизначає вже наявні змінні середовища. + Жоден із файлів `.env` не перевизначає наявні env vars. - Ви також можете визначити вбудовані змінні середовища в конфігурації (застосовуються лише якщо вони відсутні в середовищі процесу): + Ви також можете визначати вбудовані env vars у конфігурації (застосовуються лише якщо вони відсутні в process env): ```json5 { @@ -1104,15 +1106,15 @@ Q&A для першого запуску — встановлення, онбо } ``` - Повний порядок пріоритетів і джерела див. в [/environment](/uk/help/environment). + Повний порядок пріоритетів і джерела див. у [/environment](/uk/help/environment). - - Два поширені способи виправлення: + + Є два поширені варіанти виправлення: - 1. Додайте відсутні ключі в `~/.openclaw/.env`, щоб вони підхоплювалися навіть тоді, коли сервіс не успадковує змінні середовища вашого shell. - 2. Увімкніть імпорт shell (зручність за явною згодою): + 1. Помістіть відсутні ключі в `~/.openclaw/.env`, щоб вони підхоплювалися, навіть коли сервіс не успадковує env вашого shell. + 2. Увімкніть імпорт shell (зручність за бажанням): ```json5 { @@ -1125,27 +1127,27 @@ Q&A для першого запуску — встановлення, онбо } ``` - Це запускає ваш login shell і імпортує лише відсутні очікувані ключі (ніколи не перевизначає). Еквіваленти через змінні середовища: + Це запускає ваш login shell і імпортує лише відсутні очікувані ключі (ніколи не перевизначає). Відповідники env vars: `OPENCLAW_LOAD_SHELL_ENV=1`, `OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000`. - - `openclaw models status` повідомляє, чи ввімкнено **імпорт змінних середовища shell**. "Shell env: off" - **не** означає, що ваших змінних середовища немає — це лише означає, що OpenClaw не буде - автоматично завантажувати ваш login shell. + + `openclaw models status` показує, чи ввімкнено **імпорт shell env**. "Shell env: off" + **не** означає, що ваших env vars немає — це лише означає, що OpenClaw не завантажуватиме + ваш login shell автоматично. Якщо Gateway працює як сервіс (launchd/systemd), він не успадковує середовище - вашого shell. Виправте це одним із таких способів: + вашого shell. Виправити це можна одним із таких способів: - 1. Додайте токен у `~/.openclaw/.env`: + 1. Помістіть токен у `~/.openclaw/.env`: ``` COPILOT_GITHUB_TOKEN=... ``` 2. Або увімкніть імпорт shell (`env.shellEnv.enabled: true`). - 3. Або додайте його до блоку `env` у своїй конфігурації (застосовується лише якщо змінна відсутня). + 3. Або додайте його до блоку `env` у конфігурації (застосовується лише якщо значення відсутнє). Потім перезапустіть gateway і перевірте ще раз: @@ -1163,14 +1165,14 @@ Q&A для першого запуску — встановлення, онбо - Надішліть `/new` або `/reset` як окреме повідомлення. Див. [Session management](/uk/concepts/session). + Надішліть `/new` або `/reset` як окреме повідомлення. Див. [Керування сесіями](/uk/concepts/session). - Термін дії сесій може завершуватися після `session.idleMinutes`, але це **вимкнено за замовчуванням** (типове значення **0**). - Установіть додатне значення, щоб увімкнути завершення за неактивністю. Коли це ввімкнено, **наступне** - повідомлення після періоду неактивності починає новий id сесії для цього ключа чату. - Це не видаляє транскрипти — це лише запускає нову сесію. + Термін дії сесій може спливати після `session.idleMinutes`, але це **вимкнено за замовчуванням** (типове значення **0**). + Установіть додатне значення, щоб увімкнути завершення після простою. Коли цю функцію ввімкнено, **наступне** + повідомлення після періоду простою починає новий ідентифікатор сесії для цього ключа чату. + Це не видаляє транскрипти — лише починає нову сесію. ```json5 { @@ -1182,41 +1184,41 @@ Q&A для першого запуску — встановлення, онбо - - Так, через **маршрутизацію multi-agent** і **sub-agents**. Ви можете створити одного координатора - agent і кількох agents-працівників із власними workspace і моделями. + + Так, через **маршрутизацію multi-agent** і **sub-agents**. Ви можете створити одного координувального + агента і кількох worker-агентів зі своїми workspace та моделями. - Водночас це краще сприймати як **цікавий експеримент**. Це важко за токенами й часто + Втім, це краще сприймати як **цікавий експеримент**. Це витрачає багато токенів і часто менш ефективно, ніж використання одного бота з окремими сесіями. Типова модель, яку ми - уявляємо, — це один бот, з яким ви спілкуєтеся, але з різними сесіями для паралельної роботи. Цей - бот також може за потреби запускати sub-agents. + бачимо, — це один бот, з яким ви спілкуєтеся, з різними сесіями для паралельної роботи. Цей + бот також може запускати sub-agents за потреби. - Документація: [Multi-agent routing](/uk/concepts/multi-agent), [Sub-agents](/uk/tools/subagents), [Agents CLI](/uk/cli/agents). + Документація: [Маршрутизація multi-agent](/uk/concepts/multi-agent), [Sub-agents](/uk/tools/subagents), [CLI Agents](/uk/cli/agents). - + Контекст сесії обмежений вікном моделі. Довгі чати, великі виводи інструментів або велика кількість файлів можуть спричинити compaction або обрізання. Що допомагає: - Попросіть бота підсумувати поточний стан і записати його у файл. - - Використовуйте `/compact` перед довгими завданнями і `/new` під час зміни теми. - - Зберігайте важливий контекст у workspace і просіть бота перечитати його. + - Використовуйте `/compact` перед довгими завданнями, а `/new` — під час зміни теми. + - Зберігайте важливий контекст у workspace і попросіть бота перечитати його. - Використовуйте sub-agents для довгої або паралельної роботи, щоб основний чат залишався меншим. - Виберіть модель із більшим вікном контексту, якщо це трапляється часто. - Використовуйте команду скидання: + Використайте команду скидання: ```bash openclaw reset ``` - Повне неінтерактивне скидання: + Неінтерактивне повне скидання: ```bash openclaw reset --scope full --yes --non-interactive @@ -1230,50 +1232,50 @@ Q&A для першого запуску — встановлення, онбо Примітки: - - Онбординг також пропонує **Reset**, якщо бачить наявну конфігурацію. Див. [Onboarding (CLI)](/uk/start/wizard). - - Якщо ви використовували профілі (`--profile` / `OPENCLAW_PROFILE`), скиньте кожен каталог стану (типові: `~/.openclaw-`). - - Скидання для розробки: `openclaw gateway --dev --reset` (лише для розробки; очищує dev-конфігурацію + облікові дані + сесії + workspace). + - Онбординг також пропонує **Reset**, якщо бачить наявну конфігурацію. Див. [Онбординг (CLI)](/uk/start/wizard). + - Якщо ви використовували профілі (`--profile` / `OPENCLAW_PROFILE`), скиньте кожен каталог стану (типово це `~/.openclaw-`). + - Скидання для розробки: `openclaw gateway --dev --reset` (лише для розробки; очищає конфігурацію розробки + облікові дані + сесії + workspace). - - Використайте один із цих варіантів: + + Використайте один із варіантів: - - **Compaction** (зберігає розмову, але підсумовує старіші ходи): + - **Compaction** (зберігає розмову, але підсумовує старіші повідомлення): ``` /compact ``` - або `/compact `, щоб скерувати підсумовування. + або `/compact `, щоб спрямувати підсумок. - - **Скидання** (новий id сесії для того самого ключа чату): + - **Скидання** (новий ідентифікатор сесії для того самого ключа чату): ``` /new /reset ``` - Якщо це повторюється: + Якщо це продовжує траплятися: - - Увімкніть або налаштуйте **обрізання сесій** (`agents.defaults.contextPruning`), щоб скорочувати старий вивід інструментів. + - Увімкніть або налаштуйте **обрізання сесії** (`agents.defaults.contextPruning`) для скорочення старого виводу інструментів. - Використовуйте модель із більшим вікном контексту. - Документація: [Compaction](/uk/concepts/compaction), [Session pruning](/uk/concepts/session-pruning), [Session management](/uk/concepts/session). + Документація: [Compaction](/uk/concepts/compaction), [Обрізання сесії](/uk/concepts/session-pruning), [Керування сесіями](/uk/concepts/session). - Це помилка валідації провайдера: модель видала блок `tool_use` без обов’язкового - `input`. Зазвичай це означає, що історія сесії застаріла або пошкоджена (часто після довгих гілок + Це помилка перевірки провайдера: модель видала блок `tool_use` без обов’язкового + `input`. Зазвичай це означає, що історія сесії застаріла або пошкоджена (часто після довгих тредів або зміни інструмента/схеми). Виправлення: почніть нову сесію за допомогою `/new` (окремим повідомленням). - - Heartbeat запускаються кожні **30m** за замовчуванням (**1h** при використанні автентифікації OAuth). Налаштуйте або вимкніть їх: + + Heartbeat запускається кожні **30 хв** за замовчуванням (**1 год**, якщо використовується OAuth-автентифікація). Налаштуйте або вимкніть його: ```json5 { @@ -1287,19 +1289,19 @@ Q&A для першого запуску — встановлення, онбо } ``` - Якщо `HEARTBEAT.md` існує, але фактично порожній (лише порожні рядки та заголовки - Markdown на кшталт `# Heading`), OpenClaw пропускає запуск heartbeat, щоб заощадити виклики API. - Якщо файл відсутній, heartbeat усе одно запускається, і модель сама вирішує, що робити. + Якщо `HEARTBEAT.md` існує, але фактично порожній (лише порожні рядки та markdown-заголовки + на кшталт `# Heading`), OpenClaw пропускає запуск heartbeat, щоб заощадити виклики API. + Якщо файл відсутній, heartbeat все одно запускається, і модель сама вирішує, що робити. - Override для окремого agent використовують `agents.list[].heartbeat`. Документація: [Heartbeat](/uk/gateway/heartbeat). + Overrides для конкретного агента задаються через `agents.list[].heartbeat`. Документація: [Heartbeat](/uk/gateway/heartbeat). - Ні. OpenClaw працює з **вашим власним обліковим записом**, тож якщо ви є в групі, OpenClaw може її бачити. + Ні. OpenClaw працює від **вашого власного облікового запису**, тому якщо ви є в групі, OpenClaw може її бачити. За замовчуванням відповіді в групах заблоковані, доки ви не дозволите відправників (`groupPolicy: "allowlist"`). - Якщо ви хочете, щоб відповіді в групі міг ініціювати лише **ви**: + Якщо ви хочете, щоб запускати відповіді в групі могли лише **ви**: ```json5 { @@ -1324,73 +1326,72 @@ Q&A для першого запуску — встановлення, онбо Шукайте `chatId` (або `from`), що закінчується на `@g.us`, наприклад: `1234567890-1234567890@g.us`. - Варіант 2 (якщо вже налаштовано/додано в allowlist): перелічіть групи з конфігурації: + Варіант 2 (якщо вже налаштовано/додано до allowlist): отримайте список груп із конфігурації: ```bash openclaw directory groups list --channel whatsapp ``` - Документація: [WhatsApp](/uk/channels/whatsapp), [Directory](/uk/cli/directory), [Logs](/uk/cli/logs). + Документація: [WhatsApp](/uk/channels/whatsapp), [Directory](/uk/cli/directory), [Логи](/uk/cli/logs). - Дві поширені причини: + Є дві поширені причини: - - Увімкнено перевірку згадок (за замовчуванням). Ви маєте згадати бота через @ (або відповідати `mentionPatterns`). - - Ви налаштували `channels.whatsapp.groups` без `"*"`, і групу не додано в allowlist. + - Увімкнено обмеження за згадкою (типово). Ви повинні @згадати бота (або відповідати `mentionPatterns`). + - Ви налаштували `channels.whatsapp.groups` без `"*"`, і група не входить до allowlist. - Див. [Groups](/uk/channels/groups) і [Group messages](/uk/channels/group-messages). + Див. [Групи](/uk/channels/groups) і [Групові повідомлення](/uk/channels/group-messages). - - Прямі чати за замовчуванням згортаються в основну сесію. Групи/канали мають власні ключі сесій, а теми Telegram / гілки Discord — це окремі сесії. Див. [Groups](/uk/channels/groups) і [Group messages](/uk/channels/group-messages). + + Прямі чати за замовчуванням згортаються до основної сесії. Групи/канали мають власні ключі сесій, а теми Telegram / треди Discord є окремими сесіями. Див. [Групи](/uk/channels/groups) і [Групові повідомлення](/uk/channels/group-messages). - - Жорстких обмежень немає. Десятки (і навіть сотні) — це нормально, але звертайте увагу на: + + Жорстких обмежень немає. Десятки (навіть сотні) — це нормально, але звертайте увагу на: - - **Зростання диска:** sessions + транскрипти зберігаються в `~/.openclaw/agents//sessions/`. - - **Вартість токенів:** більше agents означає більше одночасного використання моделей. - - **Операційні накладні витрати:** профілі автентифікації для окремих agents, workspace і маршрутизація каналів. + - **Зростання дискового простору:** сесії + транскрипти зберігаються в `~/.openclaw/agents//sessions/`. + - **Вартість токенів:** більше агентів означає більше одночасного використання моделей. + - **Операційне навантаження:** профілі автентифікації для кожного агента, workspace і маршрутизація каналів. Поради: - - Зберігайте один **активний** workspace на кожного agent (`agents.defaults.workspace`). - - Очищуйте старі sessions (видаляйте JSONL або записи сховища), якщо диск розростається. + - Тримайте один **активний** workspace на агента (`agents.defaults.workspace`). + - Обрізайте старі сесії (видаляйте JSONL або записи сховища), якщо зростає використання диска. - Використовуйте `openclaw doctor`, щоб виявляти зайві workspace і невідповідності профілів. - - Так. Використовуйте **Multi-Agent Routing**, щоб запускати кілька ізольованих agents і маршрутизувати вхідні повідомлення за - channel/account/peer. Slack підтримується як канал і може бути прив’язаний до конкретних agents. + + Так. Використовуйте **маршрутизацію Multi-Agent**, щоб запускати кількох ізольованих агентів і маршрутизувати вхідні повідомлення за + каналом/обліковим записом/peer. Slack підтримується як канал і може бути прив’язаний до конкретних агентів. - Доступ до браузера потужний, але це не означає «робити все, що може людина» — anti-bot, CAPTCHA та MFA + Доступ до браузера дуже потужний, але це не «зробити все, що може людина» — anti-bot, CAPTCHA і MFA усе ще можуть блокувати автоматизацію. Для найнадійнішого керування браузером використовуйте локальний Chrome MCP на хості - або CDP на машині, яка фактично запускає браузер. + або використовуйте CDP на машині, яка фактично запускає браузер. - Рекомендоване налаштування: + Налаштування за найкращими практиками: - - Хост Gateway, який завжди ввімкнений (VPS/Mac mini). - - Один agent на роль (bindings). - - Канал(и) Slack, прив’язані до цих agents. + - Постійно увімкнений хост Gateway (VPS/Mac mini). + - Один агент на роль (bindings). + - Канал(и) Slack, прив’язані до цих агентів. - Локальний браузер через Chrome MCP або node за потреби. - Документація: [Multi-Agent Routing](/uk/concepts/multi-agent), [Slack](/uk/channels/slack), - [Browser](/uk/tools/browser), [Nodes](/uk/nodes). + Документація: [Маршрутизація Multi-Agent](/uk/concepts/multi-agent), [Slack](/uk/channels/slack), + [Браузер](/uk/tools/browser), [Nodes](/uk/nodes). -## Моделі, failover і профілі автентифікації +## Моделі, резервне перемикання та профілі автентифікації -Q&A про моделі — типові значення, вибір, псевдоніми, перемикання, failover, профілі автентифікації — -перенесено на окрему сторінку: -[FAQ — моделі та профілі автентифікації](/uk/help/faq-models). +Запитання й відповіді про моделі — типові значення, вибір, псевдоніми, перемикання, резервне перемикання, профілі автентифікації — +розміщено в [FAQ про моделі](/uk/help/faq-models). -## Gateway: порти, «вже запущено» і віддалений режим +## Gateway: порти, «already running» і віддалений режим @@ -1399,24 +1400,24 @@ Q&A про моделі — типові значення, вибір, псев Пріоритет: ``` - --port > OPENCLAW_GATEWAY_PORT > gateway.port > default 18789 + --port > OPENCLAW_GATEWAY_PORT > gateway.port > типово 18789 ``` - Тому що "running" — це погляд **supervisor** (launchd/systemd/schtasks). А перевірка доступності — це коли CLI реально підключається до WebSocket gateway. + Тому що «running» — це погляд **supervisor-а** (launchd/systemd/schtasks). Connectivity probe — це фактичне підключення CLI до gateway WebSocket. - Використовуйте `openclaw gateway status` і довіряйте таким рядкам: + Використовуйте `openclaw gateway status` і довіряйте цим рядкам: - - `Probe target:` (URL, який перевірка фактично використала) - - `Listening:` (що реально прив’язано до порту) + - `Probe target:` (URL, який probe фактично використав) + - `Listening:` (що фактично прив’язано до порту) - `Last gateway error:` (поширена першопричина, коли процес живий, але порт не слухає) - Ви редагуєте один файл конфігурації, тоді як сервіс працює з іншим (часто через невідповідність `--profile` / `OPENCLAW_STATE_DIR`). + Ви редагуєте один файл конфігурації, а сервіс запускає інший (часто через невідповідність `--profile` / `OPENCLAW_STATE_DIR`). Виправлення: @@ -1424,19 +1425,19 @@ Q&A про моделі — типові значення, вибір, псев openclaw gateway install --force ``` - Запустіть це з тим самим `--profile` / середовищем, яке ви хочете, щоб використовував сервіс. + Запустіть це з тим самим `--profile` / середовищем, яке має використовувати сервіс. - OpenClaw примусово забезпечує блокування під час виконання, одразу прив’язуючи listener WebSocket на старті (типово `ws://127.0.0.1:18789`). Якщо прив’язка завершується помилкою `EADDRINUSE`, виникає `GatewayLockError`, що означає: інша інсталяція вже слухає цей порт. + OpenClaw забезпечує блокування runtime, одразу прив’язуючи WebSocket listener під час запуску (типово `ws://127.0.0.1:18789`). Якщо прив’язка завершується з `EADDRINUSE`, викидається `GatewayLockError`, що означає, що інший екземпляр уже слухає. - Виправлення: зупиніть іншу інсталяцію, звільніть порт або запустіть з `openclaw gateway --port `. + Виправлення: зупиніть інший екземпляр, звільніть порт або запускайте з `openclaw gateway --port `. - Задайте `gateway.mode: "remote"` і вкажіть віддалений URL WebSocket, за потреби також віддалені облікові дані зі спільним секретом: + Установіть `gateway.mode: "remote"` і вкажіть віддалений WebSocket URL, за потреби з віддаленими обліковими даними зі спільним секретом: ```json5 { @@ -1453,90 +1454,90 @@ Q&A про моделі — типові значення, вибір, псев Примітки: - - `openclaw gateway` запускається лише тоді, коли `gateway.mode` має значення `local` (або ви передаєте прапорець перевизначення). - - Застосунок macOS стежить за файлом конфігурації й у реальному часі перемикає режими, коли ці значення змінюються. - - `gateway.remote.token` / `.password` — це лише віддалені облікові дані на боці клієнта; самі по собі вони не вмикають локальну автентифікацію gateway. + - `openclaw gateway` запускається лише коли `gateway.mode` має значення `local` (або якщо ви передасте прапорець перевизначення). + - Застосунок 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` і далі зберігають свій запитаний набір scope замість успадкування кешованих scopes. + - Control UI зберігає токен у `sessionStorage` для поточної сесії вкладки браузера та вибраного URL gateway, тому оновлення в тій самій вкладці продовжують працювати без відновлення довготривалого збереження токена в localStorage. + - За `AUTH_TOKEN_MISMATCH` довірені клієнти можуть виконати одну обмежену повторну спробу з кешованим токеном пристрою, коли gateway повертає підказки для повтору (`canRetryWithDeviceToken=true`, `recommendedNextStep=retry_with_device_token`). + - Ця повторна спроба з кешованим токеном тепер повторно використовує кешовані затверджені scopes, збережені разом із токеном пристрою. Явні виклики `deviceToken` / явні `scopes` усе одно зберігають свій запитаний набір scope замість успадкування кешованих scopes. - Поза цим шляхом повторної спроби пріоритет автентифікації підключення такий: спочатку явний спільний токен/пароль, потім явний `deviceToken`, потім збережений токен пристрою, потім bootstrap token. - - Перевірки scope bootstrap token мають префікс ролі. Вбудований allowlist bootstrap operator задовольняє лише запити operator; для node або інших ролей, які не є operator, усе одно потрібні scopes із префіксом власної ролі. + - Перевірки scope для bootstrap token мають префікс ролі. Вбудований allowlist bootstrap operator задовольняє лише запити operator; для node або інших ролей, відмінних від operator, усе одно потрібні scopes із власним префіксом ролі. Виправлення: - - Найшвидше: `openclaw dashboard` (виводить і копіює URL dashboard, намагається відкрити; якщо режим headless — показує підказку SSH). + - Найшвидше: `openclaw dashboard` (виводить + копіює URL dashboard, намагається відкрити; у headless показує підказку SSH). - Якщо у вас ще немає токена: `openclaw doctor --generate-gateway-token`. - - Якщо віддалено — спочатку створіть тунель: `ssh -N -L 18789:127.0.0.1:18789 user@host`, а потім відкрийте `http://127.0.0.1:18789/`. + - Якщо віддалено, спочатку створіть тунель: `ssh -N -L 18789:127.0.0.1:18789 user@host`, потім відкрийте `http://127.0.0.1:18789/`. - Режим спільного секрету: задайте `gateway.auth.token` / `OPENCLAW_GATEWAY_TOKEN` або `gateway.auth.password` / `OPENCLAW_GATEWAY_PASSWORD`, а потім вставте відповідний секрет у налаштуваннях Control UI. - - Режим Tailscale Serve: переконайтеся, що `gateway.auth.allowTailscale` увімкнено і ви відкриваєте URL Serve, а не сирий URL loopback/tailnet, який обходить заголовки ідентичності Tailscale. - - Режим trusted-proxy: переконайтеся, що ви заходите через налаштований identity-aware proxy не на loopback, а не через proxy loopback на тому самому хості чи сирий URL gateway. - - Якщо невідповідність зберігається після однієї повторної спроби, виконайте ротацію/повторне схвалення токена сполученого пристрою: + - Режим Tailscale Serve: переконайтеся, що `gateway.auth.allowTailscale` увімкнено, і що ви відкриваєте URL Serve, а не сирий URL loopback/tailnet, який обходить заголовки ідентичності Tailscale. + - Режим trusted-proxy: переконайтеся, що ви приходите через налаштований non-loopback reverse proxy з підтримкою ідентичності, а не через loopback proxy на тому самому хості або сирий URL gateway. + - Якщо невідповідність зберігається після однієї повторної спроби, перевипустіть/перествердіть токен спареного пристрою: - `openclaw devices list` - `openclaw devices rotate --device --role operator` - - Якщо цей виклик rotate каже, що було відмовлено, перевірте дві речі: - - сесії сполучених пристроїв можуть виконувати ротацію лише для **власного** пристрою, якщо тільки вони не мають `operator.admin` - - явні значення `--scope` не можуть перевищувати поточні operator scopes викликача - - Усе ще застрягли? Запустіть `openclaw status --all` і дотримуйтеся [Troubleshooting](/uk/gateway/troubleshooting). Подробиці автентифікації див. у [Dashboard](/uk/web/dashboard). + - Якщо ця команда rotate каже, що запит відхилено, перевірте дві речі: + - сесії спарених пристроїв можуть перевипускати лише **власний** пристрій, якщо в них немає також `operator.admin` + - явні значення `--scope` не можуть перевищувати поточні scopes operator викликача + - Усе ще не виходить? Запустіть `openclaw status --all` і дотримуйтеся [Усунення несправностей](/uk/gateway/troubleshooting). Подробиці автентифікації див. у [Dashboard](/uk/web/dashboard). - - Прив’язка `tailnet` вибирає IP Tailscale з ваших мережевих інтерфейсів (100.64.0.0/10). Якщо машина не в Tailscale (або інтерфейс вимкнено), прив’язуватися просто нікуди. + + Прив’язка `tailnet` вибирає IP-адресу Tailscale з мережевих інтерфейсів вашої машини (100.64.0.0/10). Якщо машина не підключена до Tailscale (або інтерфейс вимкнений), немає адреси, до якої можна прив’язатися. Виправлення: - - Запустіть Tailscale на цьому хості (щоб він отримав адресу 100.x), або + - Запустіть Tailscale на цьому хості (щоб він мав адресу 100.x), або - Перемкніться на `gateway.bind: "loopback"` / `"lan"`. - Примітка: `tailnet` — це явний вибір. `auto` віддає перевагу loopback; використовуйте `gateway.bind: "tailnet"`, коли хочете прив’язку лише до tailnet. + Примітка: `tailnet` задається явно. `auto` надає перевагу loopback; використовуйте `gateway.bind: "tailnet"`, коли хочете прив’язку лише до tailnet. - Зазвичай ні — один Gateway може обслуговувати кілька каналів обміну повідомленнями та agents. Використовуйте кілька Gateway лише тоді, коли вам потрібна надлишковість (наприклад, rescue bot) або жорстка ізоляція. + Зазвичай ні — один Gateway може запускати кілька каналів обміну повідомленнями та агентів. Використовуйте кілька Gateway лише коли вам потрібна надлишковість (наприклад, rescue bot) або жорстка ізоляція. - Так, але вам треба ізолювати: + Так, але ви повинні ізолювати: - - `OPENCLAW_CONFIG_PATH` (конфігурація для кожної інсталяції) - - `OPENCLAW_STATE_DIR` (стан для кожної інсталяції) + - `OPENCLAW_CONFIG_PATH` (конфігурація для кожного екземпляра) + - `OPENCLAW_STATE_DIR` (стан для кожного екземпляра) - `agents.defaults.workspace` (ізоляція workspace) - `gateway.port` (унікальні порти) Швидке налаштування (рекомендовано): - - Використовуйте `openclaw --profile ...` для кожної інсталяції (автоматично створює `~/.openclaw-`). - - Установіть унікальний `gateway.port` у конфігурації кожного профілю (або передавайте `--port` для ручних запусків). + - Використовуйте `openclaw --profile ...` для кожного екземпляра (автоматично створює `~/.openclaw-`). + - Установіть унікальний `gateway.port` у конфігурації кожного профілю (або передайте `--port` для ручних запусків). - Установіть сервіс для кожного профілю: `openclaw --profile gateway install`. Профілі також додають суфікси до назв сервісів (`ai.openclaw.`; застарілі `com.openclaw.*`, `openclaw-gateway-.service`, `OpenClaw Gateway ()`). - Повний посібник: [Multiple gateways](/uk/gateway/multiple-gateways). + Повний посібник: [Кілька gateway](/uk/gateway/multiple-gateways). - Gateway — це **сервер WebSocket**, і він очікує, що найперше повідомлення + Gateway — це **WebSocket server**, і він очікує, що найперше повідомлення буде фреймом `connect`. Якщо він отримує щось інше, то закриває з’єднання - з **кодом 1008** (порушення політики). + з **code 1008** (порушення політики). Поширені причини: - - Ви відкрили URL **HTTP** у браузері (`http://...`) замість WS-клієнта. + - Ви відкрили **HTTP** URL у браузері (`http://...`) замість WS-клієнта. - Ви використали неправильний порт або шлях. - - Proxy або тунель видалив заголовки автентифікації або надіслав не-Gateway-запит. + - Проксі або тунель прибрав заголовки автентифікації чи надіслав запит, що не належить Gateway. Швидкі виправлення: - 1. Використовуйте URL WS: `ws://:18789` (або `wss://...`, якщо HTTPS). - 2. Не відкривайте порт WS у звичайній вкладці браузера. - 3. Якщо автентифікацію ввімкнено, включіть токен/пароль у фрейм `connect`. + 1. Використовуйте WS URL: `ws://:18789` (або `wss://...`, якщо HTTPS). + 2. Не відкривайте WS-порт у звичайній вкладці браузера. + 3. Якщо автентифікацію ввімкнено, додайте токен/пароль у фрейм `connect`. Якщо ви використовуєте CLI або TUI, URL має виглядати так: @@ -1544,7 +1545,7 @@ Q&A про моделі — типові значення, вибір, псев openclaw tui --url ws://:18789 --token ``` - Подробиці протоколу: [Gateway protocol](/uk/gateway/protocol). + Подробиці протоколу: [Протокол Gateway](/uk/gateway/protocol). @@ -1552,28 +1553,28 @@ Q&A про моделі — типові значення, вибір, псев ## Логування та налагодження - + Файлові логи (структуровані): ``` /tmp/openclaw/openclaw-YYYY-MM-DD.log ``` - Ви можете задати стабільний шлях через `logging.file`. Рівень файлового логування керується `logging.level`. Деталізація консолі керується `--verbose` і `logging.consoleLevel`. + Ви можете задати стабільний шлях через `logging.file`. Рівень файлового логування контролюється `logging.level`. Детальність виводу в консоль контролюється через `--verbose` і `logging.consoleLevel`. - Найшвидший перегляд хвоста логів: + Найшвидший перегляд хвоста логу: ```bash openclaw logs --follow ``` - Логи сервісу/supervisor (коли gateway працює через launchd/systemd): + Логи сервісу/supervisor-а (коли gateway запускається через launchd/systemd): - macOS: `$OPENCLAW_STATE_DIR/logs/gateway.log` і `gateway.err.log` (типово: `~/.openclaw/logs/...`; профілі використовують `~/.openclaw-/logs/...`) - Linux: `journalctl --user -u openclaw-gateway[-].service -n 200 --no-pager` - Windows: `schtasks /Query /TN "OpenClaw Gateway ()" /V /FO LIST` - Докладніше див. в [Troubleshooting](/uk/gateway/troubleshooting). + Докладніше див. [Усунення несправностей](/uk/gateway/troubleshooting). @@ -1590,11 +1591,11 @@ Q&A про моделі — типові значення, вибір, псев - Є **два режими встановлення у Windows**: + Існує **два режими встановлення Windows**: **1) WSL2 (рекомендовано):** Gateway працює всередині Linux. - Відкрийте PowerShell, увійдіть у WSL, а потім перезапустіть: + Відкрийте PowerShell, увійдіть у WSL, потім перезапустіть: ```powershell wsl @@ -1602,7 +1603,7 @@ Q&A про моделі — типові значення, вибір, псев openclaw gateway restart ``` - Якщо ви ніколи не встановлювали сервіс, запустіть його на передньому плані: + Якщо ви ніколи не встановлювали сервіс, запустіть його у передньому плані: ```bash openclaw gateway run @@ -1623,7 +1624,7 @@ Q&A про моделі — типові значення, вибір, псев openclaw gateway run ``` - Документація: [Windows (WSL2)](/uk/platforms/windows), [Gateway service runbook](/uk/gateway). + Документація: [Windows (WSL2)](/uk/platforms/windows), [Посібник із сервісу Gateway](/uk/gateway). @@ -1639,24 +1640,24 @@ Q&A про моделі — типові значення, вибір, псев Поширені причини: - - Автентифікація моделі не завантажена на **хості gateway** (перевірте `models status`). - - Сполучення каналу/allowlist блокує відповіді (перевірте конфігурацію каналу + логи). + - Автентифікацію моделі не завантажено на **хості gateway** (перевірте `models status`). + - Спарювання каналу/allowlist блокує відповіді (перевірте конфігурацію каналу + логи). - WebChat/Dashboard відкрито без правильного токена. - Якщо ви працюєте віддалено, переконайтеся, що тунель/підключення Tailscale активне і + Якщо ви працюєте віддалено, переконайтеся, що тунель/підключення Tailscale активне і що Gateway WebSocket доступний. - Документація: [Channels](/uk/channels), [Troubleshooting](/uk/gateway/troubleshooting), [Remote access](/uk/gateway/remote). + Документація: [Канали](/uk/channels), [Усунення несправностей](/uk/gateway/troubleshooting), [Віддалений доступ](/uk/gateway/remote). - + Зазвичай це означає, що UI втратив з’єднання WebSocket. Перевірте: - 1. Чи запущено Gateway? `openclaw gateway status` - 2. Чи Gateway справний? `openclaw status` + 1. Gateway запущений? `openclaw gateway status` + 2. Gateway справний? `openclaw status` 3. Чи має UI правильний токен? `openclaw dashboard` - 4. Якщо віддалено, чи активне з’єднання тунелю/Tailscale? + 4. Якщо віддалено, чи активний тунель/канал Tailscale? Потім перегляньте логи в реальному часі: @@ -1664,31 +1665,31 @@ Q&A про моделі — типові значення, вибір, псев openclaw logs --follow ``` - Документація: [Dashboard](/uk/web/dashboard), [Remote access](/uk/gateway/remote), [Troubleshooting](/uk/gateway/troubleshooting). + Документація: [Dashboard](/uk/web/dashboard), [Віддалений доступ](/uk/gateway/remote), [Усунення несправностей](/uk/gateway/troubleshooting). - - Почніть із логів і стану каналу: + + Почніть з логів і статусу каналу: ```bash openclaw channels status openclaw channels logs --channel telegram ``` - Потім звірте помилку: + Потім зіставте помилку: - - `BOT_COMMANDS_TOO_MUCH`: у меню Telegram забагато записів. OpenClaw вже обрізає список до ліміту Telegram і повторює спробу з меншою кількістю команд, але деякі записи меню все одно потрібно прибрати. Зменште кількість команд plugin/skill/custom або вимкніть `channels.telegram.commands.native`, якщо меню вам не потрібне. - - `TypeError: fetch failed`, `Network request for 'setMyCommands' failed!` або подібні мережеві помилки: якщо ви на VPS або за proxy, переконайтеся, що вихідний HTTPS дозволено і DNS працює для `api.telegram.org`. + - `BOT_COMMANDS_TOO_MUCH`: у меню Telegram забагато записів. OpenClaw уже обрізає список до ліміту Telegram і повторює спробу з меншою кількістю команд, але деякі записи меню все одно потрібно прибрати. Зменште кількість plugin/skill/custom команд або вимкніть `channels.telegram.commands.native`, якщо меню вам не потрібне. + - `TypeError: fetch failed`, `Network request for 'setMyCommands' failed!` або подібні мережеві помилки: якщо ви на VPS або за проксі, переконайтеся, що вихідний HTTPS дозволений і DNS працює для `api.telegram.org`. Якщо Gateway віддалений, переконайтеся, що ви дивитеся логи на хості Gateway. - Документація: [Telegram](/uk/channels/telegram), [Channel troubleshooting](/uk/channels/troubleshooting). + Документація: [Telegram](/uk/channels/telegram), [Усунення несправностей каналів](/uk/channels/troubleshooting). - Спочатку переконайтеся, що Gateway доступний і agent може працювати: + Спочатку переконайтеся, що Gateway доступний і агент може виконуватися: ```bash openclaw status @@ -1712,7 +1713,7 @@ Q&A про моделі — типові значення, вибір, псев ``` Це зупиняє/запускає **керований сервіс** (launchd на macOS, systemd на Linux). - Використовуйте це, коли Gateway працює у фоновому режимі як daemon. + Використовуйте це, коли Gateway працює у фоновому режимі як демон. Якщо ви запускаєте його на передньому плані, зупиніть через Ctrl-C, а потім: @@ -1720,21 +1721,21 @@ Q&A про моделі — типові значення, вибір, псев openclaw gateway run ``` - Документація: [Gateway service runbook](/uk/gateway). + Документація: [Посібник із сервісу Gateway](/uk/gateway). - + - `openclaw gateway restart`: перезапускає **фоновий сервіс** (launchd/systemd). - - `openclaw gateway`: запускає gateway **на передньому плані** для цієї сесії термінала. + - `openclaw gateway`: запускає gateway **на передньому плані** в цій сесії термінала. Якщо ви встановили сервіс, використовуйте команди gateway. Використовуйте `openclaw gateway`, коли вам потрібен разовий запуск на передньому плані. - - Запустіть Gateway з `--verbose`, щоб отримати детальніший вивід у консолі. Потім перегляньте файл логів на предмет автентифікації каналу, маршрутизації моделі та помилок RPC. + + Запустіть Gateway з `--verbose`, щоб отримати більше подробиць у консолі. Потім перегляньте файл логів для перевірки автентифікації каналу, маршрутизації моделі та помилок RPC. @@ -1742,7 +1743,7 @@ Q&A про моделі — типові значення, вибір, псев - Вихідні вкладення від agent мають містити рядок `MEDIA:` (в окремому рядку). Див. [OpenClaw assistant setup](/uk/start/openclaw) і [Agent send](/uk/tools/agent-send). + Вихідні вкладення від агента мають містити рядок `MEDIA:` (в окремому рядку). Див. [Налаштування асистента OpenClaw](/uk/start/openclaw) і [Надсилання агентом](/uk/tools/agent-send). Надсилання через CLI: @@ -1752,12 +1753,12 @@ Q&A про моделі — типові значення, вибір, псев Також перевірте: - - Цільовий канал підтримує вихідні медіа й не заблокований allowlist. - - Файл укладається в обмеження розміру провайдера (зображення змінюються до максимуму 2048px). - - `tools.fs.workspaceOnly=true` обмежує надсилання локальних шляхів workspace, temp/media-store і файлами, перевіреними через sandbox. - - `tools.fs.workspaceOnly=false` дозволяє `MEDIA:` надсилати локальні файли хоста, які agent уже може читати, але лише для медіа та безпечних типів документів (зображення, аудіо, відео, PDF і документи Office). Звичайний текст і файли, схожі на секрети, як і раніше блокуються. + - Цільовий канал підтримує вихідні медіа і не блокується allowlist-ами. + - Файл не перевищує обмежень розміру провайдера (зображення змінюють розмір до максимуму 2048px). + - `tools.fs.workspaceOnly=true` обмежує надсилання локальних шляхів workspace, temp/media-store і файлами, перевіреними sandbox. + - `tools.fs.workspaceOnly=false` дозволяє `MEDIA:` надсилати локальні файли хоста, які агент уже може читати, але лише для медіа плюс безпечних типів документів (зображення, аудіо, відео, PDF і документи Office). Звичайний текст і файли, схожі на секрети, усе одно блокуються. - Див. [Images](/uk/nodes/images). + Див. [Зображення](/uk/nodes/images). @@ -1766,100 +1767,100 @@ Q&A про моделі — типові значення, вибір, псев - Ставтеся до вхідних DM як до недовіреного вводу. Типові значення налаштовані так, щоб зменшити ризик: + Сприймайте вхідні DM як недовірений ввід. Значення за замовчуванням розроблені для зменшення ризику: - - Типова поведінка на каналах, що підтримують DM, — **сполучення**: - - Невідомі відправники отримують код сполучення; бот не обробляє їхнє повідомлення. - - Схвалення: `openclaw pairing approve --channel [--account ] ` - - Кількість очікувальних запитів обмежена **3 на канал**; перевірте `openclaw pairing list --channel [--account ]`, якщо код не надійшов. - - Відкриття DM публічно потребує явної згоди (`dmPolicy: "open"` і allowlist `"*"`). + - Типова поведінка на каналах, що підтримують DM, — це **спарювання**: + - Невідомі відправники отримують код спарювання; бот не обробляє їхнє повідомлення. + - Підтвердити можна так: `openclaw pairing approve --channel [--account ] ` + - Кількість очікуваних запитів обмежена **3 на канал**; перевірте `openclaw pairing list --channel [--account ]`, якщо код не надійшов. + - Публічне відкриття DM потребує явної згоди (`dmPolicy: "open"` і allowlist `"*"`). Запустіть `openclaw doctor`, щоб виявити ризиковані політики DM. - - Ні. Prompt injection стосується **недовіреного вмісту**, а не лише того, хто може писати боту в DM. - Якщо ваш assistant читає зовнішній вміст (web search/fetch, сторінки браузера, листи, - документи, вкладення, вставлені логи), цей вміст може містити інструкції, які намагаються - перехопити модель. Це може статися навіть якщо **ви єдиний відправник**. + + Ні. Prompt injection стосується **недовіреного контенту**, а не лише того, хто може написати боту в DM. + Якщо ваш асистент читає зовнішній контент (web search/fetch, сторінки браузера, email, + документи, вкладення, вставлені логи), цей контент може містити інструкції, які намагаються + перехопити контроль над моделлю. Це може трапитися, навіть якщо **ви єдиний відправник**. - Найбільший ризик виникає, коли ввімкнені інструменти: модель можна обдурити й змусити - ексфільтрувати контекст або викликати інструменти від вашого імені. Зменшуйте зону ураження, якщо: + Найбільший ризик виникає, коли ввімкнено інструменти: модель можна обманом змусити + витягнути контекст або викликати інструменти від вашого імені. Зменшуйте радіус ураження так: - - використовуєте agent «читача» лише для читання або без інструментів, щоб підсумовувати недовірений вміст - - тримаєте `web_search` / `web_fetch` / `browser` вимкненими для agents з увімкненими інструментами - - ставитеся до декодованого тексту файлів/документів також як до недовіреного: OpenResponses - `input_file` і витягування тексту з медіавкладень обгортають витягнутий текст - у явні маркери меж зовнішнього вмісту замість передачі сирого тексту файла - - використовуєте sandbox і суворі allowlist інструментів + - використовуйте агента-«читача» лише для читання або без інструментів, щоб підсумовувати недовірений контент + - тримайте `web_search` / `web_fetch` / `browser` вимкненими для агентів з увімкненими інструментами + - також вважайте декодований текст файлів/документів недовіреним: OpenResponses + `input_file` і витягування з тексту медіавкладень обгортають витягнутий текст + явними маркерами меж зовнішнього контенту замість передавання сирого тексту файла + - використовуйте sandboxing і суворі allowlist-и інструментів - Подробиці: [Security](/uk/gateway/security). + Подробиці: [Безпека](/uk/gateway/security). - - Так, для більшості сценаріїв. Ізоляція бота окремими обліковими записами й номерами телефону - зменшує зону ураження, якщо щось піде не так. Також це спрощує ротацію - облікових даних або відкликання доступу без впливу на ваші особисті акаунти. + + Так, для більшості сценаріїв. Ізоляція бота окремими обліковими записами та номерами телефону + зменшує радіус ураження, якщо щось піде не так. Це також спрощує ротацію + облікових даних або відкликання доступу без впливу на ваші особисті облікові записи. - Починайте з малого. Надавайте доступ лише до тих інструментів і акаунтів, які вам справді потрібні, а розширюйте - пізніше, якщо буде потрібно. + Починайте з малого. Надавайте доступ лише до тих інструментів і облікових записів, які вам справді потрібні, і розширюйте + доступ пізніше за потреби. - Документація: [Security](/uk/gateway/security), [Pairing](/uk/channels/pairing). + Документація: [Безпека](/uk/gateway/security), [Спарювання](/uk/channels/pairing). - - Ми **не** рекомендуємо повну автономію над вашими особистими повідомленнями. Найбезпечніший шаблон: + + Ми **не** рекомендуємо повну автономність над вашими особистими повідомленнями. Найбезпечніший підхід такий: - - Тримайте DM у режимі **сполучення** або під суворим allowlist. - - Використовуйте **окремий номер або обліковий запис**, якщо хочете, щоб він писав від вашого імені. - - Дозвольте йому створити чернетку, а потім **схваліть перед надсиланням**. + - Тримайте DM у **режимі спарювання** або в жорсткому allowlist. + - Використовуйте **окремий номер або обліковий запис**, якщо хочете, щоб він надсилав повідомлення від вашого імені. + - Нехай він створює чернетку, а ви **затверджуєте перед надсиланням**. - Якщо хочете поекспериментувати, робіть це на окремому акаунті й тримайте його ізольованим. Див. - [Security](/uk/gateway/security). + Якщо хочете поекспериментувати, робіть це в окремому обліковому записі й тримайте все ізольованим. Див. + [Безпека](/uk/gateway/security). - Так, **якщо** agent працює лише в чаті, а вхідні дані є довіреними. Менші моделі - більш вразливі до перехоплення інструкцій, тому уникайте їх для agents з інструментами - або під час читання недовіреного вмісту. Якщо вам все ж потрібна менша модель, жорстко обмежте - інструменти й запускайте всередині sandbox. Див. [Security](/uk/gateway/security). + Так, **якщо** агент працює лише в чаті, а ввід є довіреним. Менші моделі + більш вразливі до перехоплення інструкціями, тому уникайте їх для агентів з увімкненими інструментами + або під час читання недовіреного контенту. Якщо все ж потрібно використовувати меншу модель, жорстко обмежте + інструменти й запускайте все в sandbox. Див. [Безпека](/uk/gateway/security). - - Коди сполучення надсилаються **лише** тоді, коли невідомий відправник пише боту і + + Коди спарювання надсилаються **лише** тоді, коли невідомий відправник пише боту і ввімкнено `dmPolicy: "pairing"`. Сам по собі `/start` не генерує код. - Перевірте очікувальні запити: + Перевірте очікувані запити: ```bash openclaw pairing list telegram ``` - Якщо вам потрібен негайний доступ, додайте свій sender id в allowlist або встановіть `dmPolicy: "open"` + Якщо ви хочете негайний доступ, додайте свій sender id до allowlist або встановіть `dmPolicy: "open"` для цього облікового запису. - - Ні. Типова політика WhatsApp DM — **сполучення**. Невідомі відправники отримують лише код сполучення, а їхнє повідомлення **не обробляється**. OpenClaw відповідає лише на чати, які отримує, або на явні надсилання, які ініціюєте ви. + + Ні. Типова політика для WhatsApp DM — **спарювання**. Невідомі відправники отримують лише код спарювання, а їхнє повідомлення **не обробляється**. OpenClaw відповідає лише на чати, які сам отримує, або на явні надсилання, які запускаєте ви. - Схвалення сполучення: + Підтвердити спарювання можна так: ```bash openclaw pairing approve whatsapp ``` - Список очікувальних запитів: + Переглянути очікувані запити: ```bash openclaw pairing list whatsapp ``` - Запит номера телефону у wizard: він використовується для налаштування вашого **allowlist/owner**, щоб ваші власні DM були дозволені. Він не використовується для автоматичного надсилання. Якщо ви працюєте зі своїм особистим номером WhatsApp, використовуйте цей номер і ввімкніть `channels.whatsapp.selfChatMode`. + Запит номера телефону у wizard: він використовується для налаштування вашого **allowlist/owner**, щоб дозволити ваші власні DM. Він не використовується для автоматичного надсилання. Якщо ви запускаєте все на своєму особистому номері WhatsApp, використайте цей номер і ввімкніть `channels.whatsapp.selfChatMode`. @@ -1867,8 +1868,8 @@ Q&A про моделі — типові значення, вибір, псев ## Команди чату, переривання завдань і «воно не зупиняється» - - Більшість внутрішніх або службових повідомлень з’являються лише тоді, коли для цієї сесії ввімкнено **verbose**, **trace** або **reasoning**. + + Більшість внутрішніх або інструментальних повідомлень з’являються лише тоді, коли для цієї сесії ввімкнено **verbose**, **trace** або **reasoning**. Виправлення в чаті, де ви це бачите: @@ -1878,16 +1879,16 @@ Q&A про моделі — типові значення, вибір, псев /reasoning off ``` - Якщо все ще надто шумно, перевірте налаштування сесії в Control UI і встановіть verbose - у значення **inherit**. Також переконайтеся, що ви не використовуєте профіль бота, де `verboseDefault` у конфігурації встановлено - в `on`. + Якщо все одно занадто шумно, перевірте налаштування сесії в Control UI і встановіть verbose + у значення **inherit**. Також переконайтеся, що ви не використовуєте профіль бота з `verboseDefault`, встановленим + у `on` в конфігурації. - Документація: [Thinking and verbose](/uk/tools/thinking), [Security](/uk/gateway/security#reasoning-verbose-output-in-groups). + Документація: [Мислення та verbose](/uk/tools/thinking), [Безпека](/uk/gateway/security#reasoning-verbose-output-in-groups). - - Надішліть будь-що з цього **як окреме повідомлення** (без слеша): + + Надішліть будь-яке з наведеного **як окреме повідомлення** (без слеша): ``` stop @@ -1911,9 +1912,9 @@ Q&A про моделі — типові значення, вибір, псев interrupt ``` - Це тригери переривання (а не slash commands). + Це тригери переривання (не slash commands). - Для фонових процесів (з інструмента exec) ви можете попросити agent виконати: + Для фонових процесів (з інструмента exec) ви можете попросити агента виконати: ``` process action:kill sessionId:XXX @@ -1921,15 +1922,15 @@ Q&A про моделі — типові значення, вибір, псев Огляд slash commands: див. [Slash commands](/uk/tools/slash-commands). - Більшість команд потрібно надсилати як **окреме** повідомлення, що починається з `/`, але деякі скорочення (наприклад, `/status`) також працюють inline для відправників з allowlist. + Більшість команд треба надсилати як **окреме** повідомлення, що починається з `/`, але деякі скорочення (наприклад, `/status`) також працюють inline для відправників з allowlist. - OpenClaw блокує повідомлення **між різними провайдерами** за замовчуванням. Якщо виклик інструмента прив’язаний + OpenClaw за замовчуванням блокує повідомлення **між різними провайдерами**. Якщо виклик інструмента прив’язаний до Telegram, він не надсилатиме в Discord, доки ви явно цього не дозволите. - Увімкніть міжпровайдерний обмін повідомленнями для agent: + Увімкніть міжпровайдерний обмін повідомленнями для агента: ```json5 { @@ -1948,25 +1949,25 @@ Q&A про моделі — типові значення, вибір, псев - - Режим черги визначає, як нові повідомлення взаємодіють із уже запущеним виконанням. Використовуйте `/queue`, щоб змінити режими: + + Режим черги визначає, як нові повідомлення взаємодіють із поточним запуском. Використовуйте `/queue`, щоб змінити режими: - - `steer` - нові повідомлення перенаправляють поточне завдання - - `followup` - запускати повідомлення по одному - - `collect` - накопичувати повідомлення й відповідати один раз (типово) - - `steer-backlog` - перенаправити зараз, а потім обробити чергу - - `interrupt` - перервати поточне виконання й почати заново + - `steer` — нові повідомлення перенаправляють поточне завдання + - `followup` — повідомлення виконуються по одному + - `collect` — повідомлення збираються в пакет, і відповідь надсилається один раз (типово) + - `steer-backlog` — спочатку перенаправити, потім обробити накопичені повідомлення + - `interrupt` — перервати поточний запуск і почати заново - Ви можете додавати параметри на кшталт `debounce:2s cap:25 drop:summarize` для режимів followup. + Для режимів followup можна додати параметри на кшталт `debounce:2s cap:25 drop:summarize`. -## Різне +## Інше - - В 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` для agent, який зараз виконується. + + В 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` для агента, який зараз виконується. @@ -1976,6 +1977,6 @@ Q&A про моделі — типові значення, вибір, псев ## Пов’язане -- [FAQ — швидкий старт і початкове налаштування](/uk/help/faq-first-run) -- [FAQ — моделі та профілі автентифікації](/uk/help/faq-models) -- [Усунення проблем](/uk/help/troubleshooting) +- [FAQ для першого запуску](/uk/help/faq-first-run) — встановлення, онбординг, автентифікація, підписки, ранні збої +- [FAQ про моделі](/uk/help/faq-models) — вибір моделі, резервне перемикання, профілі автентифікації +- [Усунення несправностей](/uk/help/troubleshooting) — сортування за симптомами diff --git a/docs/uk/help/index.md b/docs/uk/help/index.md index 399ca169e..ad01d33ee 100644 --- a/docs/uk/help/index.md +++ b/docs/uk/help/index.md @@ -1,33 +1,45 @@ --- read_when: - - Ви новачок і хочете посібник у стилі «що мені натиснути/запустити» - - Щось зламалося, і вам потрібен найшвидший шлях до виправлення -summary: 'Центр довідки: типові виправлення, базова перевірка встановлення та де шукати, коли щось ламається' -title: Довідка + - Ви новачок і хочете інструкцію «що натискати/запускати» + - Щось зламалося, і ви хочете найшвидший шлях до виправлення +summary: 'Центр допомоги: поширені виправлення, перевірка коректності встановлення і де шукати, коли щось ламається' +title: Допомога x-i18n: - generated_at: "2026-04-23T20:55:51Z" + generated_at: "2026-04-24T07:11:33Z" model: gpt-5.4 provider: openai - source_hash: 22d4649ba47cfbd8ca3e415a1ae99884867ca80c44cbe39f8a30b29d64e95a05 + source_hash: f4ea596c304ceee2422fd0ba67f61ad6e38c423a476a41cabec06f53f7a55b38 source_path: help/index.md workflow: 15 --- -Якщо вам потрібен швидкий сценарій «розблокуватися», почніть звідси: +Швидкий шлях «розблокуватися» для найпоширеніших проблем: -- **Усунення несправностей:** [Почніть тут](/uk/help/troubleshooting) -- **Базова перевірка встановлення (Node/npm/PATH):** [Встановлення](/uk/install/node#troubleshooting) -- **Проблеми з Gateway:** [Усунення несправностей Gateway](/uk/gateway/troubleshooting) -- **Логи:** [Логування](/uk/logging) і [Логування Gateway](/uk/gateway/logging) -- **Виправлення:** [Doctor](/uk/gateway/doctor) +- [Усунення несправностей](/uk/help/troubleshooting) — дерево рішень, побудоване за симптомами +- [Налагодження](/uk/help/debugging) — режим спостереження, сирі потоки, профіль розробника +- [Перевірка коректності встановлення](/uk/install/node#troubleshooting) — перевірки Node / npm / PATH +- [Усунення несправностей Gateway](/uk/gateway/troubleshooting) — проблеми, специфічні для Gateway +- [Doctor](/uk/gateway/doctor) — автоматичне виправлення + діагностичний пакет -Якщо вас цікавлять концептуальні питання (а не «щось зламалося»): +## Поширені запитання -- [FAQ (концепції)](/uk/help/faq) +- [Поширені запитання](/uk/help/faq) — повсякденні концепції та операційні запитання +- [Поширені запитання для першого запуску](/uk/help/faq-first-run) — встановлення, початкове налаштування, автентифікація, підписки, ранні збої +- [Поширені запитання про моделі](/uk/help/faq-models) — вибір моделей, перемикання при збоях, профілі автентифікації -## Середовище та налагодження +## Діагностика -- **Змінні середовища:** [Де OpenClaw завантажує змінні середовища та їхній пріоритет](/uk/help/environment) -- **Налагодження:** [Режим watch, сирі потоки та dev profile](/uk/help/debugging) -- **Тестування:** [Набори тестів, live-тести та Docker runners](/uk/help/testing) -- **Скрипти:** [Допоміжні скрипти репозиторію](/uk/help/scripts) +- [Змінні середовища](/uk/help/environment) — звідки OpenClaw завантажує змінні середовища і який пріоритет застосовується +- [Прапорці діагностики](/uk/diagnostics/flags) — діагностика під час виконання та докладні режими +- [Збій Node + tsx](/uk/debug/node-issue) — конкретні сценарії збоїв середовища виконання Node / tsx + +## Тестування + +- [Тестування](/uk/help/testing) — набори тестів і Docker runners +- [Live tests](/uk/help/testing-live) — перевірки provider і CLI, що звертаються до мережі + +## Спільнота та мета + +- [історія OpenClaw](/uk/start/lore) — історія +- [Центри документації](/uk/start/hubs) — як організована ця документація +- [Каталог документації](/uk/start/docs-directory) — повна карта файлів diff --git a/docs/uk/help/troubleshooting.md b/docs/uk/help/troubleshooting.md index f33497f76..fa54b5b0b 100644 --- a/docs/uk/help/troubleshooting.md +++ b/docs/uk/help/troubleshooting.md @@ -1,25 +1,23 @@ --- read_when: - - OpenClaw не працює, і вам потрібен найшвидший шлях до виправлення - - Ви хочете пройти етап тріажу перед зануренням у детальні runbook-и -summary: Центр усунення несправностей OpenClaw з підходом «від симптому» -title: Загальне усунення несправностей + - OpenClaw не працює, і вам потрібен найшвидший шлях до виправлення проблеми + - Ви хочете пройти шлях первинної діагностики, перш ніж занурюватися в детальні інструкції усунення неполадок +summary: Центр усунення неполадок OpenClaw за симптомами +title: Загальне усунення неполадок x-i18n: - generated_at: "2026-04-23T20:56:05Z" + generated_at: "2026-04-24T07:11:40Z" model: gpt-5.4 provider: openai - source_hash: ce06ddce9de9e5824b4c5e8c182df07b29ce3ff113eb8e29c62aef9a4682e8e9 + source_hash: c832c3f7609c56a5461515ed0f693d2255310bf2d3958f69f57c482bcbef97f0 source_path: help/troubleshooting.md workflow: 15 --- -# Усунення несправностей - -Якщо у вас є лише 2 хвилини, використовуйте цю сторінку як вхідну точку для тріажу. +Якщо у вас є лише 2 хвилини, використовуйте цю сторінку як вхідну точку для первинної діагностики. ## Перші 60 секунд -Виконайте цей точний ланцюжок команд по порядку: +Виконайте цю точну послідовність команд по порядку: ```bash openclaw status @@ -31,15 +29,15 @@ openclaw channels status --probe openclaw logs --follow ``` -Хороший результат в одному рядку: +Ознаки коректного виводу в одному рядку: -- `openclaw status` → показує налаштовані канали та не має очевидних помилок auth. -- `openclaw status --all` → повний звіт присутній і його можна поширити. -- `openclaw gateway probe` → очікувана ціль gateway доступна (`Reachable: yes`). `Capability: ...` показує, який рівень auth probe змогла підтвердити, а `Read probe: limited - missing scope: operator.read` означає деградовану діагностику, а не збій підключення. -- `openclaw gateway status` → `Runtime: running`, `Connectivity probe: ok` і правдоподібний рядок `Capability: ...`. Використовуйте `--require-rpc`, якщо вам також потрібне підтвердження RPC з областю доступу читання. -- `openclaw doctor` → немає блокуючих помилок config/service. -- `openclaw channels status --probe` → доступний gateway повертає live-стан транспорту для кожного облікового запису плюс результати probe/audit, як-от `works` або `audit ok`; якщо gateway недоступний, команда повертається до зведень лише з конфігурації. -- `openclaw logs --follow` → стабільна активність, без повторюваних фатальних помилок. +- `openclaw status` → показує налаштовані канали й відсутність явних помилок автентифікації. +- `openclaw status --all` → повний звіт присутній і ним можна поділитися. +- `openclaw gateway probe` → очікувана ціль Gateway досяжна (`Reachable: yes`). `Capability: ...` показує, який рівень автентифікації вдалося підтвердити під час перевірки, а `Read probe: limited - missing scope: operator.read` означає погіршену діагностику, а не збій з’єднання. +- `openclaw gateway status` → `Runtime: running`, `Connectivity probe: ok` і правдоподібний рядок `Capability: ...`. Використайте `--require-rpc`, якщо вам також потрібне підтвердження RPC з областю читання. +- `openclaw doctor` → немає блокувальних помилок конфігурації чи сервісу. +- `openclaw channels status --probe` → досяжний Gateway повертає стан транспорту для кожного облікового запису в реальному часі, а також результати перевірки/аудиту, як-от `works` або `audit ok`; якщо Gateway недосяжний, команда повертається до зведень лише за конфігурацією. +- `openclaw logs --follow` → стабільна активність, без повторюваних критичних помилок. ## Anthropic long context 429 @@ -47,31 +45,31 @@ openclaw logs --follow `HTTP 429: rate_limit_error: Extra usage is required for long context requests`, перейдіть до [/gateway/troubleshooting#anthropic-429-extra-usage-required-for-long-context](/uk/gateway/troubleshooting#anthropic-429-extra-usage-required-for-long-context). -## Локальний backend, сумісний з OpenAI, працює напряму, але не працює в OpenClaw +## Локальний OpenAI-compatible backend працює напряму, але не працює в OpenClaw -Якщо ваш локальний або self-hosted backend `/v1` відповідає на малі прямі -probe `/v1/chat/completions`, але не працює з `openclaw infer model run` або на звичайних -ходах агента: +Якщо ваш локальний або self-hosted бекенд `/v1` відповідає на невеликі прямі +перевірки `/v1/chat/completions`, але завершується помилкою під час `openclaw infer model run` або звичайних +ходів агента: 1. Якщо помилка згадує, що `messages[].content` очікує рядок, установіть `models.providers..models[].compat.requiresStringContent: true`. -2. Якщо backend усе ще не працює лише на ходах агента OpenClaw, установіть +2. Якщо бекенд усе ще збоїть лише під час ходів агента OpenClaw, установіть `models.providers..models[].compat.supportsTools: false` і повторіть спробу. -3. Якщо малі прямі виклики все ще працюють, а більші prompt OpenClaw аварійно - завершують backend, розглядайте залишкову проблему як обмеження моделі/сервера на стороні upstream і - переходьте до детального runbook: +3. Якщо крихітні прямі виклики все ще працюють, але більші запити OpenClaw аварійно зупиняють + бекенд, розглядайте решту проблеми як обмеження моделі/сервера на боці апстриму і + продовжуйте в детальній інструкції: [/gateway/troubleshooting#local-openai-compatible-backend-passes-direct-probes-but-agent-runs-fail](/uk/gateway/troubleshooting#local-openai-compatible-backend-passes-direct-probes-but-agent-runs-fail) -## Встановлення Plugin завершується помилкою через відсутні openclaw extensions +## Установлення Plugin завершується помилкою через відсутність openclaw extensions -Якщо встановлення завершується помилкою `package.json missing openclaw.extensions`, пакет Plugin -використовує стару форму, яку OpenClaw більше не приймає. +Якщо встановлення завершується помилкою `package.json missing openclaw.extensions`, пакет plugin +використовує стару структуру, яку OpenClaw більше не приймає. -Виправлення в пакеті Plugin: +Виправлення в пакеті plugin: -1. Додайте `openclaw.extensions` у `package.json`. +1. Додайте `openclaw.extensions` до `package.json`. 2. Спрямуйте записи на зібрані runtime-файли (зазвичай `./dist/index.js`). -3. Повторно опублікуйте Plugin і знову виконайте `openclaw plugins install `. +3. Перевидайте plugin і знову виконайте `openclaw plugins install `. Приклад: @@ -85,7 +83,7 @@ probe `/v1/chat/completions`, але не працює з `openclaw infer model } ``` -Довідка: [Plugin architecture](/uk/plugins/architecture) +Довідка: [Архітектура Plugin](/uk/plugins/architecture) ## Дерево рішень @@ -94,19 +92,19 @@ flowchart TD A[OpenClaw не працює] --> B{Що ламається першим} B --> C[Немає відповідей] B --> D[Dashboard або Control UI не підключається] - B --> E[Gateway не запускається або service не працює] + B --> E[Gateway не запускається або сервіс не працює] B --> F[Канал підключається, але повідомлення не проходять] - B --> G[Cron або Heartbeat не спрацювали або не доставили] - B --> H[Node спарено, але camera canvas screen exec не працює] - B --> I[Не працює інструмент браузера] + B --> G[Cron або Heartbeat не спрацював чи не доставив повідомлення] + B --> H[Node спарений, але не працюють інструменти camera canvas screen exec] + B --> I[Не працює інструмент browser] - C --> C1[/Розділ Без відповідей/] - D --> D1[/Розділ Control UI/] - E --> E1[/Розділ Gateway/] - F --> F1[/Розділ Потік каналу/] - G --> G1[/Розділ Автоматизація/] - H --> H1[/Розділ Інструменти Node/] - I --> I1[/Розділ Браузер/] + C --> C1[/Розділ «Немає відповідей»/] + D --> D1[/Розділ «Control UI»/] + E --> E1[/Розділ «Gateway»/] + F --> F1[/Розділ «Потік каналу»/] + G --> G1[/Розділ «Автоматизація»/] + H --> H1[/Розділ «Інструменти Node»/] + I --> I1[/Розділ «Browser»/] ``` @@ -119,19 +117,19 @@ flowchart TD openclaw logs --follow ``` - Хороший результат виглядає так: + Ознаки коректного виводу: - `Runtime: running` - `Connectivity probe: ok` - `Capability: read-only`, `write-capable` або `admin-capable` - - Ваш канал показує підключений транспорт і, де це підтримується, `works` або `audit ok` у `channels status --probe` - - Відправник позначений як схвалений (або політика DM — open/allowlist) + - Ваш канал показує підключений транспорт і, де підтримується, `works` або `audit ok` у `channels status --probe` + - Відправник позначений як схвалений (або політика DM відкрита/є allowlist) - Поширені сигнатури в журналах: + Типові сигнатури в журналах: - - `drop guild message (mention required` → перевірка згадки заблокувала повідомлення в Discord. - - `pairing request` → відправника не схвалено, і він очікує погодження спарювання DM. - - `blocked` / `allowlist` у журналах каналу → відправника, кімнату або групу відфільтровано. + - `drop guild message (mention required` → фільтрація за згадками заблокувала повідомлення в Discord. + - `pairing request` → відправник не схвалений і очікує схвалення спарювання в DM. + - `blocked` / `allowlist` у журналах каналу → відправник, кімната або група відфільтровані. Детальні сторінки: @@ -150,29 +148,25 @@ flowchart TD openclaw channels status --probe ``` - Хороший результат виглядає так: + Ознаки коректного виводу: - - `Dashboard: http://...` показано в `openclaw gateway status` + - `Dashboard: http://...` показується в `openclaw gateway status` - `Connectivity probe: ok` - `Capability: read-only`, `write-capable` або `admin-capable` - - У журналах немає циклу auth + - У журналах немає циклу автентифікації - Поширені сигнатури в журналах: + Типові сигнатури в журналах: - `device identity required` → HTTP/незахищений контекст не може завершити автентифікацію пристрою. - - `origin not allowed` → browser `Origin` не дозволений для - цілі gateway Control UI. - - `AUTH_TOKEN_MISMATCH` з підказками повторної спроби (`canRetryWithDeviceToken=true`) → одна повторна спроба з кешованим токеном пристрою може відбутися автоматично. - - Ця повторна спроба з кешованим токеном повторно використовує набір scope, кешований разом із paired - device token. Виклики з явним `deviceToken` / явними `scopes` зберігають - власний запитаний набір scope. - - На асинхронному шляху Tailscale Serve Control UI невдалі спроби для того самого - `{scope, ip}` серіалізуються до того, як обмежувач зафіксує помилку, тож + - `origin not allowed` → `Origin` браузера не дозволений для цілі Gateway у Control UI. + - `AUTH_TOKEN_MISMATCH` із підказками повторної спроби (`canRetryWithDeviceToken=true`) → може автоматично відбутися одна повторна спроба з довіреним токеном пристрою. + - Ця повторна спроба з кешованим токеном повторно використовує кешований набір областей доступу, збережений разом зі спареним токеном пристрою. Виклики з явним `deviceToken` / явними `scopes` натомість зберігають запитаний ними набір областей. + - В асинхронному шляху Control UI через Tailscale Serve невдалі спроби для того самого + `{scope, ip}` серіалізуються до того, як лімітер зафіксує невдачу, тому друга одночасна невдала повторна спроба вже може показати `retry later`. - - `too many failed authentication attempts (retry later)` з localhost-origin браузера → повторні збої з того самого `Origin` тимчасово - блокуються; інший localhost-origin використовує окремий bucket. - - повторюване `unauthorized` після цієї повторної спроби → неправильний токен/пароль, невідповідність режиму auth або застарілий paired device token. - - `gateway connect failed:` → UI націлений на неправильний URL/port або недоступний gateway. + - `too many failed authentication attempts (retry later)` з браузерного localhost origin → повторні невдалі спроби з того самого `Origin` тимчасово блокуються; інший localhost origin використовує окремий bucket. + - повторюване `unauthorized` після цієї повторної спроби → неправильний токен/пароль, невідповідність режиму автентифікації або застарілий токен спареного пристрою. + - `gateway connect failed:` → UI націлений на неправильну URL-адресу/порт або на недосяжний Gateway. Детальні сторінки: @@ -182,7 +176,7 @@ flowchart TD - + ```bash openclaw status openclaw gateway status @@ -191,18 +185,18 @@ flowchart TD openclaw channels status --probe ``` - Хороший результат виглядає так: + Ознаки коректного виводу: - `Service: ... (loaded)` - `Runtime: running` - `Connectivity probe: ok` - `Capability: read-only`, `write-capable` або `admin-capable` - Поширені сигнатури в журналах: + Типові сигнатури в журналах: - - `Gateway start blocked: set gateway.mode=local` або `existing config is missing gateway.mode` → режим gateway — remote, або у файлі конфігурації немає позначки локального режиму, і його слід відновити. - - `refusing to bind gateway ... without auth` → bind не в loopback без валідного шляху auth gateway (токен/пароль або trusted-proxy, якщо це налаштовано). - - `another gateway instance is already listening` або `EADDRINUSE` → порт уже зайнято. + - `Gateway start blocked: set gateway.mode=local` або `existing config is missing gateway.mode` → режим gateway є remote, або у файлі конфігурації відсутня позначка local-mode, і його слід виправити. + - `refusing to bind gateway ... without auth` → прив’язка не до loopback без чинного шляху автентифікації gateway (токен/пароль або trusted-proxy, якщо налаштовано). + - `another gateway instance is already listening` або `EADDRINUSE` → порт уже зайнятий. Детальні сторінки: @@ -221,16 +215,16 @@ flowchart TD openclaw channels status --probe ``` - Хороший результат виглядає так: + Ознаки коректного виводу: - - Транспорт каналу підключено. - - Перевірки pairing/allowlist проходять. - - Згадки визначаються там, де вони потрібні. + - Транспорт каналу підключений. + - Перевірки pairing/allowlist проходять успішно. + - Згадки виявляються там, де це потрібно. - Поширені сигнатури в журналах: + Типові сигнатури в журналах: - - `mention required` → перевірка згадки в групі заблокувала обробку. - - `pairing` / `pending` → відправника DM ще не схвалено. + - `mention required` → фільтрація групових згадок заблокувала обробку. + - `pairing` / `pending` → відправник DM ще не схвалений. - `not_in_channel`, `missing_scope`, `Forbidden`, `401/403` → проблема з токеном дозволів каналу. Детальні сторінки: @@ -240,7 +234,7 @@ flowchart TD - + ```bash openclaw status openclaw gateway status @@ -250,21 +244,21 @@ flowchart TD openclaw logs --follow ``` - Хороший результат виглядає так: + Ознаки коректного виводу: - - `cron.status` показує, що планувальник увімкнено й є наступне пробудження. - - `cron runs` показує недавні записи `ok`. + - `cron.status` показує, що функцію ввімкнено і є час наступного пробудження. + - `cron runs` показує нещодавні записи `ok`. - Heartbeat увімкнено й він не поза активними годинами. - Поширені сигнатури в журналах: + Типові сигнатури в журналах: - `cron: scheduler disabled; jobs will not run automatically` → cron вимкнено. - `heartbeat skipped` з `reason=quiet-hours` → поза налаштованими активними годинами. - - `heartbeat skipped` з `reason=empty-heartbeat-file` → `HEARTBEAT.md` існує, але містить лише порожній вміст/каркас із заголовків. - - `heartbeat skipped` з `reason=no-tasks-due` → у `HEARTBEAT.md` активний режим завдань, але для жодного інтервалу завдань ще не настав час. - - `heartbeat skipped` з `reason=alerts-disabled` → усю видимість heartbeat вимкнено (`showOk`, `showAlerts` і `useIndicator` одночасно вимкнені). - - `requests-in-flight` → основна доріжка зайнята; пробудження heartbeat відкладено. - - `unknown accountId` → цільовий account для доставки heartbeat не існує. + - `heartbeat skipped` з `reason=empty-heartbeat-file` → `HEARTBEAT.md` існує, але містить лише порожній каркас або лише заголовки. + - `heartbeat skipped` з `reason=no-tasks-due` → у `HEARTBEAT.md` активний режим завдань, але для жодного з інтервалів завдань ще не настав час. + - `heartbeat skipped` з `reason=alerts-disabled` → уся видимість Heartbeat вимкнена (`showOk`, `showAlerts` і `useIndicator` усі вимкнені). + - `requests-in-flight` → основна смуга зайнята; пробудження heartbeat було відкладене. + - `unknown accountId` → цільовий обліковий запис доставки heartbeat не існує. Детальні сторінки: @@ -274,7 +268,7 @@ flowchart TD - + ```bash openclaw status openclaw gateway status @@ -283,18 +277,18 @@ flowchart TD openclaw logs --follow ``` - Хороший результат виглядає так: + Ознаки коректного виводу: - - Node позначено як підключений і спарений для ролі `node`. - - Для команди, яку ви викликаєте, існує відповідна можливість. - - Для інструмента надано потрібний стан дозволу. + - Node указано як підключений і спарений для ролі `node`. + - Для команди, яку ви викликаєте, існує відповідна capability. + - Для інструмента надано стан дозволу. - Поширені сигнатури в журналах: + Типові сигнатури в журналах: - - `NODE_BACKGROUND_UNAVAILABLE` → переведіть застосунок Node на передній план. - - `*_PERMISSION_REQUIRED` → дозвіл ОС було відхилено або не надано. - - `SYSTEM_RUN_DENIED: approval required` → погодження exec очікує. - - `SYSTEM_RUN_DENIED: allowlist miss` → команда відсутня в allowlist exec. + - `NODE_BACKGROUND_UNAVAILABLE` → переведіть застосунок node на передній план. + - `*_PERMISSION_REQUIRED` → дозвіл ОС було відхилено або він відсутній. + - `SYSTEM_RUN_DENIED: approval required` → схвалення exec очікує надання. + - `SYSTEM_RUN_DENIED: allowlist miss` → команда відсутня в allowlist для exec. Детальні сторінки: @@ -304,7 +298,7 @@ flowchart TD - + ```bash openclaw config get tools.exec.host openclaw config get tools.exec.security @@ -314,14 +308,14 @@ flowchart TD Що змінилося: - - Якщо `tools.exec.host` не задано, типове значення — `auto`. - - `host=auto` визначається як `sandbox`, коли активний runtime sandbox, і як `gateway` в іншому випадку. - - `host=auto` відповідає лише за маршрутизацію; поведінка без запиту в стилі "YOLO" походить від `security=full` плюс `ask=off` на gateway/node. - - Для `gateway` і `node` незадане `tools.exec.security` типово дорівнює `full`. - - Незадане `tools.exec.ask` типово дорівнює `off`. - - Результат: якщо ви бачите запити на погодження, значить якась локальна для хоста або для сесії policy зробила exec суворішим порівняно з поточними типовими значеннями. + - Якщо `tools.exec.host` не задано, значенням за замовчуванням є `auto`. + - `host=auto` визначається як `sandbox`, коли активне sandbox runtime, і як `gateway` — у протилежному випадку. + - `host=auto` відповідає лише за маршрутизацію; поведінка "YOLO" без запиту підтвердження походить від `security=full` разом із `ask=off` на gateway/node. + - Для `gateway` і `node`, якщо `tools.exec.security` не задано, значенням за замовчуванням є `full`. + - Якщо `tools.exec.ask` не задано, значенням за замовчуванням є `off`. + - Результат: якщо ви бачите запити на схвалення, значить якась локальна для хоста або поточної сесії політика зробила exec суворішим порівняно з поточними значеннями за замовчуванням. - Відновіть поточну типову поведінку без погодження: + Відновіть поточну поведінку за замовчуванням без схвалення: ```bash openclaw config set tools.exec.host gateway @@ -332,14 +326,14 @@ flowchart TD Безпечніші альтернативи: - - Установіть лише `tools.exec.host=gateway`, якщо вам просто потрібна стабільна маршрутизація через хост. - - Використовуйте `security=allowlist` з `ask=on-miss`, якщо хочете host exec, але все ж хочете перевірку при пропусках allowlist. + - Установіть лише `tools.exec.host=gateway`, якщо вам потрібна просто стабільна маршрутизація хоста. + - Використайте `security=allowlist` разом із `ask=on-miss`, якщо ви хочете exec на хості, але при цьому хочете перевірку в разі промахів по allowlist. - Увімкніть режим sandbox, якщо хочете, щоб `host=auto` знову визначався як `sandbox`. - Поширені сигнатури в журналах: + Типові сигнатури в журналах: - `Approval required.` → команда очікує на `/approve ...`. - - `SYSTEM_RUN_DENIED: approval required` → очікує погодження exec на хості node. + - `SYSTEM_RUN_DENIED: approval required` → очікує схвалення exec на хості node. - `exec host=sandbox requires a sandbox runtime for this session` → неявно/явно вибрано sandbox, але режим sandbox вимкнено. Детальні сторінки: @@ -350,7 +344,7 @@ flowchart TD - + ```bash openclaw status openclaw gateway status @@ -359,22 +353,22 @@ flowchart TD openclaw doctor ``` - Хороший результат виглядає так: + Ознаки коректного виводу: - - У статусі браузера показано `running: true` і вибраний browser/profile. - - `openclaw` запускається, або `user` бачить локальні вкладки Chrome. + - Статус browser показує `running: true` і вибраний browser/profile. + - `openclaw` запускається, або `user` може бачити локальні вкладки Chrome. - Поширені сигнатури в журналах: + Типові сигнатури в журналах: - - `unknown command "browser"` або `unknown command 'browser'` → задано `plugins.allow`, і він не включає `browser`. - - `Failed to start Chrome CDP on port` → не вдалося запустити локальний браузер. - - `browser.executablePath not found` → налаштовано неправильний шлях до бінарного файла. - - `browser.cdpUrl must be http(s) or ws(s)` → налаштований CDP URL використовує непідтримувану схему. - - `browser.cdpUrl has invalid port` → налаштований CDP URL має некоректний або вихідний за межі діапазону port. - - `No Chrome tabs found for profile="user"` → для profile підключення Chrome MCP немає відкритих локальних вкладок Chrome. - - `Remote CDP for profile "" is not reachable` → налаштований endpoint віддаленого CDP недоступний із цього хоста. - - `Browser attachOnly is enabled ... not reachable` або `Browser attachOnly is enabled and CDP websocket ... is not reachable` → profile attach-only не має живої цілі CDP. - - застарілі перевизначення viewport / dark-mode / locale / offline для attach-only або profile віддаленого CDP → виконайте `openclaw browser stop --browser-profile `, щоб закрити активну керувальну сесію й звільнити стан емуляції без перезапуску gateway. + - `unknown command "browser"` або `unknown command 'browser'` → установлено `plugins.allow`, і воно не містить `browser`. + - `Failed to start Chrome CDP on port` → не вдалося запустити локальний browser. + - `browser.executablePath not found` → налаштований шлях до бінарного файла неправильний. + - `browser.cdpUrl must be http(s) or ws(s)` → налаштований URL CDP використовує непідтримувану схему. + - `browser.cdpUrl has invalid port` → налаштований URL CDP має некоректний або неприпустимий порт. + - `No Chrome tabs found for profile="user"` → профіль підключення Chrome MCP не має відкритих локальних вкладок Chrome. + - `Remote CDP for profile "" is not reachable` → налаштована віддалена кінцева точка CDP недосяжна з цього хоста. + - `Browser attachOnly is enabled ... not reachable` або `Browser attachOnly is enabled and CDP websocket ... is not reachable` → профіль attach-only не має живої цілі CDP. + - застарілі перевизначення viewport / dark-mode / locale / offline на профілях attach-only або remote CDP → виконайте `openclaw browser stop --browser-profile `, щоб закрити активну керівну сесію та скинути стан емуляції без перезапуску gateway. Детальні сторінки: @@ -389,8 +383,8 @@ flowchart TD ## Пов’язане -- [FAQ](/uk/help/faq) — поширені запитання -- [Gateway Troubleshooting](/uk/gateway/troubleshooting) — проблеми, специфічні для gateway -- [Doctor](/uk/gateway/doctor) — автоматизовані перевірки стану й відновлення -- [Channel Troubleshooting](/uk/channels/troubleshooting) — проблеми з підключенням каналів -- [Automation Troubleshooting](/uk/automation/cron-jobs#troubleshooting) — проблеми з cron і Heartbeat +- [FAQ](/uk/help/faq) — часті запитання +- [Усунення неполадок Gateway](/uk/gateway/troubleshooting) — проблеми, пов’язані з gateway +- [Doctor](/uk/gateway/doctor) — автоматизовані перевірки стану та виправлення +- [Усунення неполадок каналів](/uk/channels/troubleshooting) — проблеми з підключенням каналів +- [Усунення неполадок автоматизації](/uk/automation/cron-jobs#troubleshooting) — проблеми з cron і Heartbeat diff --git a/docs/uk/plugins/sdk-subpaths.md b/docs/uk/plugins/sdk-subpaths.md index 1f85547ca..84bdf6c97 100644 --- a/docs/uk/plugins/sdk-subpaths.md +++ b/docs/uk/plugins/sdk-subpaths.md @@ -1,27 +1,27 @@ --- read_when: - - Вибір правильного підшляху plugin-sdk для імпорту Plugin + - Вибір правильного підшляху plugin-sdk для імпорту плагіна - Аудит підшляхів bundled-plugin і допоміжних поверхонь summary: 'Каталог підшляхів Plugin SDK: які імпорти де розміщені, згруповано за областями' title: Підшляхи Plugin SDK x-i18n: - generated_at: "2026-04-24T04:35:26Z" + generated_at: "2026-04-24T07:11:35Z" model: gpt-5.4 provider: openai - source_hash: 753c7202a8a59ae9e420d436c7f3770ea455d810f2af52b716d438b84b8b986e + source_hash: ff4b934501a3163e36b402db72dd75a260fe9f849b3823a7a05e4867a1a5e655 source_path: plugins/sdk-subpaths.md workflow: 15 --- - Plugin SDK доступний як набір вузьких підшляхів у `openclaw/plugin-sdk/`. - На цій сторінці зібрано часто використовувані підшляхи, згруповані за призначенням. Згенерований - повний список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`; - зарезервовані допоміжні підшляхи bundled-plugin також з’являються там, але є + Plugin SDK представлений як набір вузьких підшляхів у `openclaw/plugin-sdk/`. + На цій сторінці зібрано каталог найуживаніших підшляхів, згрупованих за призначенням. Згенерований + повний список із понад 200 підшляхів розміщено в `scripts/lib/plugin-sdk-entrypoints.json`; + зарезервовані підшляхи допоміжних засобів bundled-plugin також наведені там, але вони є деталлю реалізації, якщо лише сторінка документації явно не просуває їх. - Посібник з авторства Plugin див. у [Огляд Plugin SDK](/uk/plugins/sdk-overview). + Посібник з розробки плагінів дивіться в [Огляд Plugin SDK](/uk/plugins/sdk-overview). - ## Точка входу Plugin + ## Точка входу плагіна | Subpath | Key exports | | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | @@ -35,253 +35,253 @@ x-i18n: | Subpath | Key exports | | --- | --- | | `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` | - | `plugin-sdk/config-schema` | Кореневий експорт Zod-схеми `openclaw.json` (`OpenClawSchema`) | + | `plugin-sdk/config-schema` | Експорт кореневої Zod-схеми `openclaw.json` (`OpenClawSchema`) | | `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | - | `plugin-sdk/setup` | Спільні допоміжні функції майстра налаштування, запити allowlist, збирачі статусу налаштування | + | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, запити allowlist, побудовники статусу налаштування | | `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` | | `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` | | `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` | - | `plugin-sdk/account-core` | Допоміжні функції конфігурації/контролю дій для кількох облікових записів, допоміжні функції резервного вибору типового облікового запису | - | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні функції нормалізації ідентифікатора облікового запису | - | `plugin-sdk/account-resolution` | Допоміжні функції пошуку облікового запису + резервного вибору типового | - | `plugin-sdk/account-helpers` | Вузькі допоміжні функції списку облікових записів/дій з обліковими записами | + | `plugin-sdk/account-core` | Допоміжні засоби конфігурації та action-gate для кількох облікових записів, допоміжні засоби fallback для облікового запису за замовчуванням | + | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації id облікового запису | + | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + fallback до облікового запису за замовчуванням | + | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для списку облікових записів і дій з обліковими записами | | `plugin-sdk/channel-pairing` | `createChannelPairingController` | | `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` | | `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` | | `plugin-sdk/channel-config-schema` | Типи схеми конфігурації каналу | - | `plugin-sdk/telegram-command-config` | Допоміжні функції нормалізації/валідації користувацьких команд Telegram із резервним bundled-contract | - | `plugin-sdk/command-gating` | Вузькі допоміжні функції шлюзу авторизації команд | + | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із fallback на bundled-contract | + | `plugin-sdk/command-gating` | Вузькі допоміжні засоби gate авторизації команд | | `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` | - | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні функції життєвого циклу/фіналізації потоку чернеток | - | `plugin-sdk/inbound-envelope` | Спільні допоміжні функції для побудови вхідних маршрутів і конвертів | - | `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні функції запису й диспетчеризації вхідних повідомлень | - | `plugin-sdk/messaging-targets` | Допоміжні функції розбору/зіставлення цілей | - | `plugin-sdk/outbound-media` | Спільні допоміжні функції завантаження вихідних медіа | - | `plugin-sdk/outbound-runtime` | Допоміжні функції вихідної ідентичності, делегата надсилання та планування payload | - | `plugin-sdk/poll-runtime` | Вузькі допоміжні функції нормалізації опитувань | - | `plugin-sdk/thread-bindings-runtime` | Допоміжні функції життєвого циклу прив’язки потоків і адаптерів | - | `plugin-sdk/agent-media-payload` | Застарілий збирач payload медіа агента | - | `plugin-sdk/conversation-runtime` | Допоміжні функції прив’язки розмов/потоків, pairинг і налаштованих прив’язок | - | `plugin-sdk/runtime-config-snapshot` | Допоміжна функція знімка конфігурації часу виконання | - | `plugin-sdk/runtime-group-policy` | Допоміжні функції визначення групової політики часу виконання | - | `plugin-sdk/channel-status` | Спільні допоміжні функції знімка/підсумку статусу каналу | + | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/завершення потоку чернетки | + | `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби маршрутів вхідних повідомлень + побудови envelope | + | `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису й диспетчеризації вхідних відповідей | + | `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення цілей | + | `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіа | + | `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідної ідентичності, делегування надсилання та планування payload | + | `plugin-sdk/poll-runtime` | Вузькі допоміжні засоби нормалізації опитувань | + | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу й адаптера прив’язок потоків | + | `plugin-sdk/agent-media-payload` | Застарілий побудовник медіа-payload агента | + | `plugin-sdk/conversation-runtime` | Допоміжні засоби прив’язки розмов/потоків, pairинг і helpers для налаштованих прив’язок | + | `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації runtime | + | `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення групової політики в runtime | + | `plugin-sdk/channel-status` | Спільні допоміжні засоби знімків/підсумків статусу каналу | | `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації каналу | - | `plugin-sdk/channel-config-writes` | Допоміжні функції авторизації запису конфігурації каналу | - | `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти Plugin каналу | - | `plugin-sdk/allowlist-config-edit` | Допоміжні функції редагування/читання конфігурації allowlist | - | `plugin-sdk/group-access` | Спільні допоміжні функції ухвалення рішень щодо доступу до груп | - | `plugin-sdk/direct-dm` | Спільні допоміжні функції авторизації/захисту прямих DM | - | `plugin-sdk/interactive-runtime` | Семантичне представлення повідомлень, доставка та застарілі допоміжні функції інтерактивної відповіді. Див. [Представлення повідомлень](/uk/plugins/message-presentation) | - | `plugin-sdk/channel-inbound` | Сумісний barrel для debounce вхідних повідомлень, зіставлення згадок, допоміжних функцій політики згадок і допоміжних функцій конвертів | - | `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні функції debounce вхідних повідомлень | - | `plugin-sdk/channel-mention-gating` | Вузькі допоміжні функції політики згадок і тексту згадок без ширшої поверхні часу виконання вхідних повідомлень | - | `plugin-sdk/channel-envelope` | Вузькі допоміжні функції форматування вхідних конвертів | - | `plugin-sdk/channel-location` | Допоміжні функції контексту та форматування розташування каналу | - | `plugin-sdk/channel-logging` | Допоміжні функції логування каналу для відкинутих вхідних повідомлень і збоїв typing/ack | - | `plugin-sdk/channel-send-result` | Типи результату відповіді | - | `plugin-sdk/channel-actions` | Допоміжні функції дій над повідомленнями каналу, а також застарілі допоміжні функції native schema, збережені для сумісності Plugin | - | `plugin-sdk/channel-targets` | Допоміжні функції розбору/зіставлення цілей | - | `plugin-sdk/channel-contract` | Типи контракту каналу | - | `plugin-sdk/channel-feedback` | Підключення зворотного зв’язку/реакцій | - | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні функції secret-contract, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи цілей секретів | + | `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу | + | `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти плагіна каналу | + | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist | + | `plugin-sdk/group-access` | Спільні допоміжні засоби ухвалення рішень щодо доступу груп | + | `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для прямих DM | + | `plugin-sdk/interactive-runtime` | Семантичне представлення повідомлень, доставка та застарілі допоміжні засоби інтерактивних відповідей. Див. [Представлення повідомлень](/uk/plugins/message-presentation) | + | `plugin-sdk/channel-inbound` | Барель сумісності для debounce вхідних повідомлень, зіставлення згадувань, допоміжних засобів політики згадувань і helpers для envelope | + | `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби debounce вхідних повідомлень | + | `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби політики згадувань і тексту згадувань без ширшої поверхні inbound runtime | + | `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування inbound envelope | + | `plugin-sdk/channel-location` | Допоміжні засоби контексту й форматування розташування каналу | + | `plugin-sdk/channel-logging` | Допоміжні засоби журналювання каналу для скидання вхідних повідомлень і збоїв typing/ack | + | `plugin-sdk/channel-send-result` | Типи результатів відповіді | + | `plugin-sdk/channel-actions` | Допоміжні засоби дій із повідомленнями каналу, а також застарілі допоміжні засоби native schema, збережені для сумісності плагінів | + | `plugin-sdk/channel-targets` | Допоміжні засоби розбору/зіставлення цілей | + | `plugin-sdk/channel-contract` | Типи контрактів каналу | + | `plugin-sdk/channel-feedback` | Підключення feedback/reaction | + | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи цілей секретів | | Subpath | Key exports | | --- | --- | | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` | - | `plugin-sdk/provider-setup` | Кураторські допоміжні функції налаштування локальних/self-hosted провайдерів | - | `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні функції налаштування self-hosted провайдерів, сумісних з OpenAI | - | `plugin-sdk/cli-backend` | Типові значення CLI backend + константи watchdog | - | `plugin-sdk/provider-auth-runtime` | Допоміжні функції визначення API-ключів у часі виконання для Plugin провайдерів | - | `plugin-sdk/provider-auth-api-key` | Допоміжні функції onboarding/profile-write для API-ключів, як-от `upsertApiKeyProfile` | - | `plugin-sdk/provider-auth-result` | Стандартний збирач результату OAuth-автентифікації | - | `plugin-sdk/provider-auth-login` | Спільні допоміжні функції інтерактивного входу для Plugin провайдерів | - | `plugin-sdk/provider-env-vars` | Допоміжні функції пошуку env-var автентифікації провайдера | + | `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локальних/self-hosted провайдерів | + | `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted провайдерів, сумісних з OpenAI | + | `plugin-sdk/cli-backend` | Значення CLI backend за замовчуванням + константи watchdog | + | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключа в runtime для плагінів провайдерів | + | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API-ключа, такі як `upsertApiKeyProfile` | + | `plugin-sdk/provider-auth-result` | Стандартний побудовник результату OAuth auth | + | `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для плагінів провайдерів | + | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env vars для auth провайдера | | `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` | - | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні збирачі replay-policy, допоміжні функції endpoint провайдера та допоміжні функції нормалізації model-id, як-от `normalizeNativeXaiModelId` | + | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники політики replay, допоміжні засоби endpoint провайдера та допоміжні засоби нормалізації id моделей, такі як `normalizeNativeXaiModelId` | | `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | - | `plugin-sdk/provider-http` | Загальні допоміжні функції HTTP/можливостей endpoint провайдера, включно з допоміжними функціями multipart form для транскрипції аудіо | - | `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні функції контракту конфігурації/вибору web-fetch, як-от `enablePluginInConfig` і `WebFetchProviderPlugin` | - | `plugin-sdk/provider-web-fetch` | Допоміжні функції реєстрації/кешування провайдерів web-fetch | - | `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні функції конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення ввімкнення Plugin | - | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні функції контракту конфігурації/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter/getter для облікових даних | - | `plugin-sdk/provider-web-search` | Допоміжні функції реєстрації/кешування/часу виконання провайдерів web-search | - | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика, а також допоміжні функції сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | - | `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібне | - | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоку та спільні допоміжні функції обгорток для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | - | `plugin-sdk/provider-transport-runtime` | Власні допоміжні функції транспорту провайдера, як-от guarded fetch, перетворення транспортних повідомлень і доступні для запису потоки транспортних подій | - | `plugin-sdk/provider-onboard` | Допоміжні функції patch конфігурації onboarding | - | `plugin-sdk/global-singleton` | Допоміжні функції локальних для процесу singleton/map/cache | - | `plugin-sdk/group-activation` | Вузькі допоміжні функції режиму активації груп і розбору команд | + | `plugin-sdk/provider-http` | Загальні допоміжні засоби HTTP/можливостей endpoint провайдера, включно з helpers для multipart form транскрипції аудіо | + | `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту конфігурації/вибору web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` | + | `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешу провайдера web-fetch | + | `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення ввімкнення плагіна | + | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setters/getters облікових даних | + | `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешу/runtime провайдера web-search | + | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | + | `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні | + | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоків і спільні допоміжні засоби обгорток для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | + | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби нативного транспорту провайдера, такі як guarded fetch, трансформації транспортних повідомлень і записувані потоки транспортних подій | + | `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації онбордингу | + | `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache | + | `plugin-sdk/group-activation` | Вузькі допоміжні засоби режиму активації груп і розбору команд | - + | Subpath | Key exports | | --- | --- | - | `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні функції реєстру команд, допоміжні функції авторизації відправника | - | `plugin-sdk/command-status` | Збирачі команд/довідкових повідомлень, як-от `buildCommandsMessagePaginated` і `buildHelpMessage` | - | `plugin-sdk/approval-auth-runtime` | Допоміжні функції визначення затверджувача та автентифікації дій у межах того самого чату | - | `plugin-sdk/approval-client-runtime` | Допоміжні функції профілів/фільтрів native exec approval | - | `plugin-sdk/approval-delivery-runtime` | Native-адаптери можливостей/доставки approval | - | `plugin-sdk/approval-gateway-runtime` | Спільна допоміжна функція визначення approval gateway | - | `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні функції завантаження native approval adapter для гарячих точок входу каналів | - | `plugin-sdk/approval-handler-runtime` | Ширші допоміжні функції часу виконання обробника approval; віддавайте перевагу вужчим adapter/gateway-швам, коли їх достатньо | - | `plugin-sdk/approval-native-runtime` | Допоміжні функції native approval target + account-binding | - | `plugin-sdk/approval-reply-runtime` | Допоміжні функції payload відповіді для exec/plugin approval | - | `plugin-sdk/reply-dedupe` | Вузькі допоміжні функції скидання дедуплікації вхідних відповідей | - | `plugin-sdk/channel-contract-testing` | Вузькі допоміжні функції тестування контракту каналу без широкого testing barrel | - | `plugin-sdk/command-auth-native` | Допоміжні функції native command auth + native session-target | - | `plugin-sdk/command-detection` | Спільні допоміжні функції виявлення команд | - | `plugin-sdk/command-primitives-runtime` | Полегшені предикати тексту команд для гарячих шляхів каналів | - | `plugin-sdk/command-surface` | Допоміжні функції нормалізації тіла команди та command-surface | + | `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, допоміжні засоби авторизації відправника | + | `plugin-sdk/command-status` | Побудовники повідомлень команд/довідки, такі як `buildCommandsMessagePaginated` і `buildHelpMessage` | + | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення затверджувача та auth дій у межах того самого чату | + | `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра native exec approval | + | `plugin-sdk/approval-delivery-runtime` | Адаптери можливостей/доставки native approval | + | `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення gateway для approval | + | `plugin-sdk/approval-handler-adapter-runtime` | Легковагові допоміжні засоби завантаження адаптера native approval для гарячих точок входу каналів | + | `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби approval handler runtime; віддавайте перевагу вужчим seams адаптера/gateway, якщо їх достатньо | + | `plugin-sdk/approval-native-runtime` | Допоміжні засоби native approval target + account-binding | + | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді для exec/plugin approval | + | `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання дедуплікації вхідних відповідей | + | `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контрактів каналу без широкого testing barrel | + | `plugin-sdk/command-auth-native` | Native command auth + допоміжні засоби native session-target | + | `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд | + | `plugin-sdk/command-primitives-runtime` | Легковагові предикати тексту команд для гарячих шляхів каналів | + | `plugin-sdk/command-surface` | Допоміжні засоби нормалізації command-body і command-surface | | `plugin-sdk/allow-from` | `formatAllowFromLowercase` | - | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні функції збирання secret-contract для поверхонь секретів каналу/plugin | - | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні функції типізації `coerceSecretRef` і SecretRef для розбору secret-contract/config | - | `plugin-sdk/security-runtime` | Спільні допоміжні функції довіри, DM gating, external-content і збирання секретів | - | `plugin-sdk/ssrf-policy` | Допоміжні функції host allowlist і політики SSRF для приватних мереж | - | `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні функції pinned-dispatcher без широкої infra runtime-поверхні | - | `plugin-sdk/ssrf-runtime` | Допоміжні функції pinned-dispatcher, SSRF-захищеного fetch і політики SSRF | - | `plugin-sdk/secret-input` | Допоміжні функції розбору введення секретів | - | `plugin-sdk/webhook-ingress` | Допоміжні функції Webhook request/target | - | `plugin-sdk/webhook-request-guards` | Допоміжні функції для розміру тіла запиту/тайм-аутів | + | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збору secret-contract для поверхонь секретів каналу/плагіна | + | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору secret-contract/config | + | `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, DM gating, external-content і збирання секретів | + | `plugin-sdk/ssrf-policy` | Допоміжні засоби policy SSRF для allowlist хостів і приватної мережі | + | `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої infra runtime surface | + | `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із SSRF-захистом і policy SSRF | + | `plugin-sdk/secret-input` | Допоміжні засоби розбору вводу секретів | + | `plugin-sdk/webhook-ingress` | Допоміжні засоби запиту/цілі Webhook | + | `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру body запиту/timeout | - + | Subpath | Key exports | | --- | --- | - | `plugin-sdk/runtime` | Широкі допоміжні функції часу виконання/логування/резервного копіювання/встановлення plugin | - | `plugin-sdk/runtime-env` | Вузькі допоміжні функції runtime env, logger, timeout, retry і backoff | - | `plugin-sdk/channel-runtime-context` | Загальні допоміжні функції реєстрації та пошуку channel runtime-context | + | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/встановлення плагінів | + | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, logger, timeout, retry і backoff | + | `plugin-sdk/channel-runtime-context` | Загальні допоміжні засоби реєстрації та пошуку channel runtime-context | | `plugin-sdk/runtime-store` | `createPluginRuntimeStore` | - | `plugin-sdk/plugin-runtime` | Спільні допоміжні функції команд/hook/http/interactive для plugin | - | `plugin-sdk/hook-runtime` | Спільні допоміжні функції pipeline для webhook/internal hook | - | `plugin-sdk/lazy-runtime` | Допоміжні функції lazy runtime import/binding, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` | - | `plugin-sdk/process-runtime` | Допоміжні функції виконання процесів | - | `plugin-sdk/cli-runtime` | Допоміжні функції форматування CLI, очікування та версій | - | `plugin-sdk/gateway-runtime` | Допоміжні функції клієнта Gateway і patch статусу каналу | - | `plugin-sdk/config-runtime` | Допоміжні функції завантаження/запису конфігурації та пошуку plugin-config | - | `plugin-sdk/telegram-command-config` | Нормалізація назв/описів команд Telegram і перевірки на дублікати/конфлікти, навіть коли поверхня bundled Telegram contract недоступна | - | `plugin-sdk/text-autolink-runtime` | Виявлення autolink посилань на файли без широкого text-runtime barrel | - | `plugin-sdk/approval-runtime` | Допоміжні функції exec/plugin approval, збирачі approval-capability, допоміжні функції auth/profile, native routing/runtime | - | `plugin-sdk/reply-runtime` | Спільні допоміжні функції часу виконання для inbound/reply, chunking, dispatch, Heartbeat, planner відповіді | - | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні функції dispatch/finalize відповіді | - | `plugin-sdk/reply-history` | Спільні допоміжні функції коротковіконної історії відповідей, як-от `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` | + | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/hook/http/interactive для плагінів | + | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби pipeline webhook/internal hook | + | `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy імпорту/прив’язки runtime, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` | + | `plugin-sdk/process-runtime` | Допоміжні засоби exec процесів | + | `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування та версій | + | `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway і патчів статусу каналу | + | `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису конфігурації та lookup конфігурації плагіна | + | `plugin-sdk/telegram-command-config` | Нормалізація назви/опису команди Telegram і перевірки дублікатів/конфліктів, навіть коли поверхня bundled Telegram contract недоступна | + | `plugin-sdk/text-autolink-runtime` | Виявлення автопосилань на файлові посилання без широкого text-runtime barrel | + | `plugin-sdk/approval-runtime` | Допоміжні засоби exec/plugin approval, побудовники можливостей approval, допоміжні засоби auth/profile, native routing/runtime | + | `plugin-sdk/reply-runtime` | Спільні допоміжні засоби inbound/reply runtime, chunking, dispatch, Heartbeat, планувальник відповідей | + | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповіді | + | `plugin-sdk/reply-history` | Спільні допоміжні засоби history відповідей для короткого вікна, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` | | `plugin-sdk/reply-reference` | `createReplyReferencePlanner` | - | `plugin-sdk/reply-chunking` | Вузькі допоміжні функції chunking тексту/markdown | - | `plugin-sdk/session-store-runtime` | Допоміжні функції шляху до сховища сесій + updated-at | - | `plugin-sdk/state-paths` | Допоміжні функції шляхів до каталогів State/OAuth | - | `plugin-sdk/routing` | Допоміжні функції route/session-key/account binding, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` | - | `plugin-sdk/status-helpers` | Спільні допоміжні функції підсумку статусу каналу/облікового запису, типові стани runtime-state і допоміжні функції метаданих проблем | - | `plugin-sdk/target-resolver-runtime` | Спільні допоміжні функції target resolver | - | `plugin-sdk/string-normalization-runtime` | Допоміжні функції нормалізації slug/рядків | - | `plugin-sdk/request-url` | Витягування рядкових URL із fetch/request-подібних входів | - | `plugin-sdk/run-command` | Запускач команд із таймуванням і нормалізованими результатами stdout/stderr | - | `plugin-sdk/param-readers` | Поширені читачі параметрів tool/CLI | - | `plugin-sdk/tool-payload` | Витягування нормалізованих payload з об’єктів результатів tool | + | `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/markdown | + | `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху session store + `updated-at` | + | `plugin-sdk/state-paths` | Допоміжні засоби шляхів до директорій state/OAuth | + | `plugin-sdk/routing` | Допоміжні засоби route/session-key/account binding, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` | + | `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумку статусу каналу/облікового запису, значення runtime-state за замовчуванням і допоміжні засоби метаданих проблем | + | `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби resolver цілей | + | `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/рядків | + | `plugin-sdk/request-url` | Витягування рядкових URL із fetch/request-подібних вхідних даних | + | `plugin-sdk/run-command` | Запускач команд із таймером і нормалізованими результатами stdout/stderr | + | `plugin-sdk/param-readers` | Поширені readers параметрів tool/CLI | + | `plugin-sdk/tool-payload` | Витягування нормалізованих payload із об’єктів результатів tool | | `plugin-sdk/tool-send` | Витягування канонічних полів цілі надсилання з аргументів tool | - | `plugin-sdk/temp-path` | Спільні допоміжні функції шляхів тимчасового завантаження | - | `plugin-sdk/logging-core` | Допоміжні функції логера підсистеми та редагування чутливих даних | - | `plugin-sdk/markdown-table-runtime` | Допоміжні функції режиму та конвертації таблиць Markdown | - | `plugin-sdk/json-store` | Невеликі допоміжні функції читання/запису JSON state | - | `plugin-sdk/file-lock` | Допоміжні функції повторно вхідного file-lock | - | `plugin-sdk/persistent-dedupe` | Допоміжні функції кешу дедуплікації на диску | - | `plugin-sdk/acp-runtime` | Допоміжні функції ACP runtime/session і reply-dispatch | - | `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання read-only ACP binding без імпортів запуску життєвого циклу | - | `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema часу виконання агента | - | `plugin-sdk/boolean-param` | Гнучкий читач boolean-параметрів | - | `plugin-sdk/dangerous-name-runtime` | Допоміжні функції зіставлення та розв’язання небезпечних назв | - | `plugin-sdk/device-bootstrap` | Допоміжні функції bootstrap пристрою та pairing token | - | `plugin-sdk/extension-shared` | Спільні примітиви допоміжних функцій passive-channel, status і ambient proxy | - | `plugin-sdk/models-provider-runtime` | Допоміжні функції відповіді для команди `/models`/провайдера | - | `plugin-sdk/skill-commands-runtime` | Допоміжні функції переліку команд Skills | - | `plugin-sdk/native-command-registry` | Допоміжні функції native command registry/build/serialize | - | `plugin-sdk/agent-harness` | Експериментальна trusted-plugin-поверхня для низькорівневих agent harness: типи harness, допоміжні функції steer/abort для active-run, допоміжні функції bridge інструментів OpenClaw і утиліти результатів спроб | - | `plugin-sdk/provider-zai-endpoint` | Допоміжні функції виявлення endpoint Z.AI | - | `plugin-sdk/infra-runtime` | Допоміжні функції системних подій/Heartbeat | - | `plugin-sdk/collection-runtime` | Невеликі допоміжні функції обмеженого кешу | - | `plugin-sdk/diagnostic-runtime` | Допоміжні функції діагностичних прапорців і подій | - | `plugin-sdk/error-runtime` | Допоміжні функції графа помилок, форматування, спільної класифікації помилок, `isApprovalNotFoundError` | - | `plugin-sdk/fetch-runtime` | Допоміжні функції обгорнутого fetch, proxy і pinned lookup | - | `plugin-sdk/runtime-fetch` | Runtime fetch з урахуванням dispatcher без імпортів proxy/guarded-fetch | - | `plugin-sdk/response-limit-runtime` | Читач обмеженого тіла відповіді без широкої media runtime-поверхні | - | `plugin-sdk/session-binding-runtime` | Поточний стан binding розмови без routing налаштованих binding або pairing store | - | `plugin-sdk/session-store-runtime` | Допоміжні функції читання session-store без широких імпортів запису/обслуговування конфігурації | - | `plugin-sdk/context-visibility-runtime` | Допоміжні функції розв’язання видимості контексту та фільтрації додаткового контексту без широких імпортів config/security | - | `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні функції примусового приведення й нормалізації primitive record/string без імпортів markdown/logging | - | `plugin-sdk/host-runtime` | Допоміжні функції нормалізації імен хостів і SCP host | - | `plugin-sdk/retry-runtime` | Допоміжні функції конфігурації retry і запуску retry | - | `plugin-sdk/agent-runtime` | Допоміжні функції каталогу/ідентичності/робочого простору агента | - | `plugin-sdk/directory-runtime` | Запити/дедуплікація каталогів на основі конфігурації | + | `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів до тимчасових завантажень | + | `plugin-sdk/logging-core` | Допоміжні засоби subsystem logger і редагування чутливих даних | + | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму таблиць Markdown і конвертації | + | `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису JSON state | + | `plugin-sdk/file-lock` | Допоміжні засоби повторного входу для file-lock | + | `plugin-sdk/persistent-dedupe` | Допоміжні засоби дискового dedupe cache | + | `plugin-sdk/acp-runtime` | Допоміжні засоби ACP runtime/session і reply-dispatch | + | `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання ACP binding лише для читання без імпортів запуску lifecycle | + | `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema runtime агента | + | `plugin-sdk/boolean-param` | Гнучкий reader булевих параметрів | + | `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення збігів небезпечних імен | + | `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та pairing token | + | `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів passive-channel, status і ambient proxy | + | `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді провайдера/команди `/models` | + | `plugin-sdk/skill-commands-runtime` | Допоміжні засоби переліку команд Skills | + | `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize нативних команд | + | `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих agent harness: типи harness, допоміжні засоби steer/abort для активних запусків, міст OpenClaw tool, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб | + | `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.A.I | + | `plugin-sdk/infra-runtime` | Допоміжні засоби системних подій/Heartbeat | + | `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу | + | `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичних прапорців і подій | + | `plugin-sdk/error-runtime` | Граф помилок, форматування, спільні допоміжні засоби класифікації помилок, `isApprovalNotFoundError` | + | `plugin-sdk/fetch-runtime` | Обгорнутий fetch, proxy і допоміжні засоби pinned lookup | + | `plugin-sdk/runtime-fetch` | Dispatcher-aware runtime fetch без імпортів proxy/guarded-fetch | + | `plugin-sdk/response-limit-runtime` | Reader обмеженого response-body без широкої media runtime surface | + | `plugin-sdk/session-binding-runtime` | Поточний стан binding розмови без routing налаштованого binding або pairing stores | + | `plugin-sdk/session-store-runtime` | Допоміжні засоби читання session-store без широких імпортів запису/обслуговування конфігурації | + | `plugin-sdk/context-visibility-runtime` | Допоміжні засоби визначення видимості контексту та фільтрації додаткового контексту без широких імпортів config/security | + | `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення та нормалізації primitive record/string без імпортів markdown/logging | + | `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і SCP host | + | `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і запуску retry | + | `plugin-sdk/agent-runtime` | Допоміжні засоби директорії/ідентичності/workspace агента | + | `plugin-sdk/directory-runtime` | Запит/dedup директорій на основі конфігурації | | `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` | | Subpath | Key exports | | --- | --- | - | `plugin-sdk/media-runtime` | Спільні допоміжні функції fetch/transform/store для медіа, а також збирачі media payload | - | `plugin-sdk/media-store` | Вузькі допоміжні функції media store, як-от `saveMediaBuffer` | - | `plugin-sdk/media-generation-runtime` | Спільні допоміжні функції failover для генерації медіа, вибір candidate і повідомлення про відсутню модель | - | `plugin-sdk/media-understanding` | Типи провайдерів media understanding, а також експорти допоміжних функцій для зображень/аудіо, орієнтованих на провайдера | - | `plugin-sdk/text-runtime` | Спільні допоміжні функції text/markdown/logging, як-от видалення assistant-visible text, допоміжні функції render/chunking/table для Markdown, допоміжні функції редагування чутливих даних, directive-tag і safe-text утиліти | - | `plugin-sdk/text-chunking` | Допоміжна функція chunking вихідного тексту | - | `plugin-sdk/speech` | Типи провайдерів speech, а також допоміжні функції directive, registry і validation, орієнтовані на провайдера | - | `plugin-sdk/speech-core` | Спільні типи провайдерів speech і допоміжні функції registry, directive та normalizації | - | `plugin-sdk/realtime-transcription` | Типи провайдерів realtime transcription, допоміжні функції registry і спільна допоміжна функція WebSocket session | - | `plugin-sdk/realtime-voice` | Типи провайдерів realtime voice і допоміжні функції registry | - | `plugin-sdk/image-generation` | Типи провайдерів генерації зображень | - | `plugin-sdk/image-generation-core` | Спільні типи генерації зображень і допоміжні функції failover, auth і registry | + | `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store медіа, а також побудовники media payload | + | `plugin-sdk/media-store` | Вузькі допоміжні засоби media store, такі як `saveMediaBuffer` | + | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибір кандидатів і повідомлення про відсутню модель | + | `plugin-sdk/media-understanding` | Типи провайдера media understanding плюс provider-facing експорти допоміжних засобів для зображень/аудіо | + | `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, такі як видалення assistant-visible-text, допоміжні засоби render/chunking/table для markdown, засоби редагування чутливих даних, допоміжні засоби тегів директив і утиліти безпечного тексту | + | `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту | + | `plugin-sdk/speech` | Типи провайдера мовлення плюс provider-facing допоміжні засоби директив, реєстру та валідації | + | `plugin-sdk/speech-core` | Спільні допоміжні засоби типів, реєстру, директив і нормалізації для провайдерів мовлення | + | `plugin-sdk/realtime-transcription` | Типи провайдера транскрипції в реальному часі, допоміжні засоби реєстру та спільний допоміжний засіб WebSocket session | + | `plugin-sdk/realtime-voice` | Типи провайдера голосу в реальному часі та допоміжні засоби реєстру | + | `plugin-sdk/image-generation` | Типи провайдера генерації зображень | + | `plugin-sdk/image-generation-core` | Спільні допоміжні засоби типів, failover, auth і реєстру для генерації зображень | | `plugin-sdk/music-generation` | Типи провайдера/запиту/результату генерації музики | - | `plugin-sdk/music-generation-core` | Спільні типи генерації музики і допоміжні функції failover, lookup провайдера та розбору model-ref | + | `plugin-sdk/music-generation-core` | Спільні допоміжні засоби типів, failover, lookup провайдера та розбору model-ref для генерації музики | | `plugin-sdk/video-generation` | Типи провайдера/запиту/результату генерації відео | - | `plugin-sdk/video-generation-core` | Спільні типи генерації відео і допоміжні функції failover, lookup провайдера та розбору model-ref | - | `plugin-sdk/webhook-targets` | Допоміжні функції реєстру Webhook target і встановлення route | - | `plugin-sdk/webhook-path` | Допоміжні функції нормалізації шляху Webhook | - | `plugin-sdk/web-media` | Спільні допоміжні функції завантаження віддалених/локальних медіа | - | `plugin-sdk/zod` | Повторно експортований `zod` для споживачів plugin SDK | + | `plugin-sdk/video-generation-core` | Спільні допоміжні засоби типів, failover, lookup провайдера та розбору model-ref для генерації відео | + | `plugin-sdk/webhook-targets` | Допоміжні засоби реєстру цілей Webhook і встановлення маршрутів | + | `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху Webhook | + | `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа | + | `plugin-sdk/zod` | Повторно експортований `zod` для користувачів plugin SDK | | `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` | | Subpath | Key exports | | --- | --- | - | `plugin-sdk/memory-core` | Поверхня допоміжних функцій bundled memory-core для менеджера/конфігурації/файлів/CLI | - | `plugin-sdk/memory-core-engine-runtime` | Runtime-фасад індексу/пошуку пам’яті | + | `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для helpers менеджера/конфігурації/файлів/CLI | + | `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексації/пошуку пам’яті | | `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста пам’яті | - | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до registry, локальний провайдер і загальні допоміжні функції batch/remote | + | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до реєстру, локальний провайдер і загальні helpers для пакетної/віддаленої роботи | | `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста пам’яті | | `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста пам’яті | - | `plugin-sdk/memory-core-host-multimodal` | Багатомодальні допоміжні функції хоста пам’яті | - | `plugin-sdk/memory-core-host-query` | Допоміжні функції запитів хоста пам’яті | - | `plugin-sdk/memory-core-host-secret` | Допоміжні функції секретів хоста пам’яті | - | `plugin-sdk/memory-core-host-events` | Допоміжні функції журналу подій хоста пам’яті | - | `plugin-sdk/memory-core-host-status` | Допоміжні функції статусу хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні функції CLI runtime хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-core` | Допоміжні функції core runtime хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні функції файлів/runtime хоста пам’яті | - | `plugin-sdk/memory-host-core` | Нейтральний до вендора псевдонім для допоміжних функцій core runtime хоста пам’яті | - | `plugin-sdk/memory-host-events` | Нейтральний до вендора псевдонім для допоміжних функцій журналу подій хоста пам’яті | - | `plugin-sdk/memory-host-files` | Нейтральний до вендора псевдонім для допоміжних функцій файлів/runtime хоста пам’яті | - | `plugin-sdk/memory-host-markdown` | Спільні допоміжні функції керованого Markdown для plugin, суміжних із пам’яттю | - | `plugin-sdk/memory-host-search` | Runtime-фасад Active Memory для доступу до менеджера пошуку | - | `plugin-sdk/memory-host-status` | Нейтральний до вендора псевдонім для допоміжних функцій статусу хоста пам’яті | - | `plugin-sdk/memory-lancedb` | Поверхня допоміжних функцій bundled memory-lancedb | + | `plugin-sdk/memory-core-host-multimodal` | Мультимодальні helpers хоста пам’яті | + | `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста пам’яті | + | `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті | + | `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті | + | `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби CLI runtime хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста пам’яті | + | `plugin-sdk/memory-host-core` | Нейтральний до вендора псевдонім для допоміжних засобів core runtime хоста пам’яті | + | `plugin-sdk/memory-host-events` | Нейтральний до вендора псевдонім для допоміжних засобів журналу подій хоста пам’яті | + | `plugin-sdk/memory-host-files` | Нейтральний до вендора псевдонім для допоміжних засобів файлів/runtime хоста пам’яті | + | `plugin-sdk/memory-host-markdown` | Спільні helpers керованого markdown для плагінів, пов’язаних із пам’яттю | + | `plugin-sdk/memory-host-search` | Фасад runtime Active Memory для доступу до менеджера пошуку | + | `plugin-sdk/memory-host-status` | Нейтральний до вендора псевдонім для допоміжних засобів статусу хоста пам’яті | + | `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb | | Family | Current subpaths | Intended use | | --- | --- | --- | - | Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні функції підтримки bundled browser plugin (`browser-support` залишається compatibility barrel) | - | Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня допоміжних функцій/runtime bundled Matrix | - | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних функцій/runtime bundled LINE | - | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних функцій bundled IRC | - | Channel-specific helpers | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Шви сумісності/допоміжних функцій bundled channel | - | Auth/plugin-specific helpers | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Шви допоміжних функцій bundled feature/plugin; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` | + | Браузер | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні засоби підтримки bundled browser plugin (`browser-support` залишається compatibility barrel) | + | Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня helpers/runtime bundled Matrix | + | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня helpers/runtime bundled LINE | + | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних засобів bundled IRC | + | Допоміжні засоби, специфічні для каналів | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Bundled seams сумісності/допоміжних засобів каналів | + | Допоміжні засоби, специфічні для auth/плагінів | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Bundled seams допоміжних засобів функцій/плагінів; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` | -## Пов’язане +## Пов’язані матеріали - [Огляд Plugin SDK](/uk/plugins/sdk-overview) - [Налаштування Plugin SDK](/uk/plugins/sdk-setup) -- [Створення plugin](/uk/plugins/building-plugins) +- [Створення плагінів](/uk/plugins/building-plugins)