chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-08 16:06:15 +00:00
parent 2ae1f25788
commit 3d5bc53603

View File

@ -5,18 +5,18 @@ read_when:
summary: 'Команда Doctor: перевірки стану, міграції конфігурації та кроки відновлення'
title: Doctor
x-i18n:
generated_at: "2026-04-08T02:10:27Z"
generated_at: "2026-04-08T16:06:15Z"
model: gpt-5.4
provider: openai
source_hash: 3761a222d9db7088f78215575fa84e5896794ad701aa716e8bf9039a4424dca6
source_hash: a2f701f5c22cd5afc6b62cf2d916f183155ee55b5cebf03ef0d1272b94121cf7
source_path: gateway/doctor.md
workflow: 15
---
# Doctor
`openclaw doctor` — це інструмент відновлення та міграції для OpenClaw. Він виправляє застарілий
конфігураційний файл/стан, перевіряє працездатність і надає практичні кроки для відновлення.
`openclaw doctor` — це інструмент відновлення та міграції для OpenClaw. Він виправляє застарілі
конфігурації/стан, перевіряє стан системи та надає практичні кроки для відновлення.
## Швидкий старт
@ -24,13 +24,13 @@ x-i18n:
openclaw doctor
```
### Безголовий режим / автоматизація
### Без інтерфейсу / автоматизація
```bash
openclaw doctor --yes
```
Прийняти типові значення без запитів (зокрема кроки відновлення перезапуску/служб/пісочниці, де це застосовно).
Прийняти типові значення без запитів (зокрема кроки відновлення перезапуску/сервісів/пісочниці, якщо застосовно).
```bash
openclaw doctor --repair
@ -42,20 +42,20 @@ openclaw doctor --repair
openclaw doctor --repair --force
```
Застосувати також агресивні виправлення (перезаписує користувацькі конфігурації supervisor).
Застосувати також агресивні виправлення (перезаписує власні конфігурації supervisor).
```bash
openclaw doctor --non-interactive
```
Запустити без запитів і застосувати лише безпечні міграції (нормалізація конфігурації + переміщення стану на диску). Пропускає дії з перезапуском/службами/пісочницею, які потребують підтвердження людини.
Запустити без запитів і застосовувати лише безпечні міграції (нормалізація конфігурації + переміщення стану на диску). Пропускає дії з перезапуском/сервісами/пісочницею, які потребують підтвердження людини.
Міграції застарілого стану запускаються автоматично, якщо їх виявлено.
```bash
openclaw doctor --deep
```
Просканувати системні служби на наявність додаткових встановлень gateway (launchd/systemd/schtasks).
Сканувати системні сервіси на наявність додаткових інсталяцій gateway (launchd/systemd/schtasks).
Якщо ви хочете переглянути зміни перед записом, спочатку відкрийте файл конфігурації:
@ -63,49 +63,49 @@ openclaw doctor --deep
cat ~/.openclaw/openclaw.json
```
## Що він робить (стисло)
## Що це робить (коротко)
- Необов’язкове попереднє оновлення для git-встановлень (лише в інтерактивному режимі).
- Перевірка актуальності протоколу UI (перезбирає Control UI, якщо схема протоколу новіша).
- Перевірка працездатності + запит на перезапуск.
- Зведення стану Skills (доступні/відсутні/заблоковані) і стану plugin.
- Необов’язкове попереднє оновлення для git-інсталяцій (лише в інтерактивному режимі).
- Перевірка актуальності UI-протоколу (перебудовує Control UI, якщо схема протоколу новіша).
- Перевірка стану + запит на перезапуск.
- Підсумок стану Skills (доступні/відсутні/заблоковані) і стану plugin.
- Нормалізація конфігурації для застарілих значень.
- Міграція конфігурації Talk зі старих плоских полів `talk.*` у `talk.provider` + `talk.providers.<provider>`.
- Перевірки міграції браузера для застарілих конфігурацій розширення Chrome і готовності Chrome MCP.
- Міграція конфігурації Talk із застарілих плоских полів `talk.*` до `talk.provider` + `talk.providers.<provider>`.
- Перевірки міграції браузера для застарілих конфігурацій розширення Chrome та готовності Chrome MCP.
- Попередження про перевизначення провайдера OpenCode (`models.providers.opencode` / `models.providers.opencode-go`).
- Попередження про затінення Codex OAuth (`models.providers.openai-codex`).
- Перевірка вимог TLS для профілів OpenAI Codex OAuth.
- Міграція застарілого стану на диску (сесії/каталог агента/автентифікація WhatsApp).
- Міграція застарілих ключів контракту маніфесту plugin (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders``contracts`).
- Перевірка TLS-передумов OAuth для профілів OpenAI Codex OAuth.
- Міграція застарілого стану на диску (sessions/каталог agent/автентифікація WhatsApp).
- Міграція застарілих ключів контрактів у маніфестах plugin (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders``contracts`).
- Міграція застарілого сховища cron (`jobId`, `schedule.cron`, поля delivery/payload верхнього рівня, `provider` у payload, прості резервні webhook jobs з `notify: true`).
- Перевірка файлів блокування сесій і очищення застарілих блокувань.
- Перевірки цілісності стану та прав доступу (sessions, transcripts, каталог стану).
- Перевірки цілісності стану та прав доступу (sessions, transcripts, каталог state).
- Перевірки прав доступу до файлу конфігурації (`chmod 600`) під час локального запуску.
- Стан автентифікації моделей: перевіряє строк дії OAuth, може оновлювати токени, що скоро спливають, і повідомляє про стани cooldown/disabled профілів автентифікації.
- Стан автентифікації моделей: перевіряє строк дії OAuth, може оновити токени, строк дії яких спливає, і повідомляє про cooldown/disabled стани профілю автентифікації.
- Виявлення додаткового каталогу workspace (`~/openclaw`).
- Відновлення образу sandbox, якщо sandboxing увімкнено.
- Міграція застарілих служб і виявлення додаткових gateway.
- Відновлення образу пісочниці, коли пісочницю увімкнено.
- Міграція застарілих сервісів і виявлення додаткових gateway.
- Міграція застарілого стану каналу Matrix (у режимі `--fix` / `--repair`).
- Перевірки середовища виконання gateway (службу встановлено, але вона не запущена; кешована мітка launchd).
- Попередження про стан каналів (отримані з запущеного gateway).
- Перевірки runtime gateway (сервіс встановлено, але не запущено; кешована мітка launchd).
- Попередження про стан каналів (отримані через пробу із запущеного gateway).
- Аудит конфігурації supervisor (launchd/systemd/schtasks) з необов’язковим відновленням.
- Перевірки рекомендованих практик середовища виконання gateway (Node проти Bun, шляхи менеджерів версій).
- Діагностика конфліктів портів gateway (типово `18789`).
- Перевірки рекомендацій для runtime gateway (Node проти Bun, шляхи менеджерів версій).
- Діагностика конфліктів порту gateway (типово `18789`).
- Попередження безпеки для відкритих політик DM.
- Перевірки автентифікації gateway для локального режиму токена (пропонує згенерувати токен, коли джерело токена відсутнє; не перезаписує конфігурації токенів SecretRef).
- Перевірка systemd linger у Linux.
- Перевірки автентифікації gateway для локального режиму токена (пропонує згенерувати токен, якщо джерело токена відсутнє; не перезаписує конфігурації токена через SecretRef).
- Перевірка `linger` systemd у Linux.
- Перевірка розміру bootstrap-файлів workspace (попередження про обрізання/наближення до ліміту для контекстних файлів).
- Перевірка стану shell completion і автоматичне встановлення/оновлення.
- Перевірка готовності провайдера embedding для пошуку в пам’яті (локальна модель, віддалений API key або бінарний файл QMD).
- Перевірки встановлення з вихідного коду (невідповідність pnpm workspace, відсутні UI assets, відсутній бінарний файл tsx).
- Перевірка стану автодоповнення shell та автоматичне встановлення/оновлення.
- Перевірка готовності провайдера embedding для memory search (локальна модель, віддалений API-ключ або бінарник QMD).
- Перевірки source-інсталяції (невідповідність pnpm workspace, відсутні UI-ресурси, відсутній бінарник tsx).
- Записує оновлену конфігурацію + метадані майстра.
## Докладна поведінка та обґрунтування
## Детальна поведінка та обґрунтування
### 0) Необов’язкове оновлення (git-встановлення)
### 0) Необов’язкове оновлення (git-інсталяції)
Якщо це git checkout і doctor запущено в інтерактивному режимі, він пропонує
оновити систему (fetch/rebase/build) перед запуском doctor.
оновитися (fetch/rebase/build) перед запуском doctor.
### 1) Нормалізація конфігурації
@ -113,24 +113,25 @@ cat ~/.openclaw/openclaw.json
без перевизначення для конкретного каналу), doctor нормалізує їх до поточної
схеми.
Сюди також входять застарілі плоскі поля Talk. Поточна публічна конфігурація Talk —
це `talk.provider` + `talk.providers.<provider>`. Doctor переписує старі
форми `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` /
Це також охоплює застарілі плоскі поля Talk. Поточна публічна конфігурація Talk —
це `talk.provider` + `talk.providers.<provider>`. Doctor переписує старі форми
`talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` /
`talk.apiKey` у мапу провайдерів.
### 2) Міграції застарілих ключів конфігурації
Коли конфігурація містить застарілі ключі, інші команди відмовляються виконуватися та просять
запустити `openclaw doctor`.
Коли конфігурація містить застарілі ключі, інші команди відмовляються запускатися
і просять вас виконати `openclaw doctor`.
Doctor:
- Пояснить, які застарілі ключі було знайдено.
- Покажe міграцію, яку він застосував.
- Перезапише `~/.openclaw/openclaw.json` за оновленою схемою.
- Покаже міграцію, яку він застосував.
- Перезапише `~/.openclaw/openclaw.json` оновленою схемою.
Gateway також автоматично запускає міграції doctor під час старту, коли виявляє
застарілий формат конфігурації, тому старі конфігурації відновлюються без ручного втручання.
застарілий формат конфігурації, тож застарілі конфігурації виправляються без
ручного втручання.
Міграції сховища cron jobs обробляються через `openclaw doctor --fix`.
Поточні міграції:
@ -140,7 +141,7 @@ Gateway також автоматично запускає міграції doct
- `routing.groupChat.historyLimit``messages.groupChat.historyLimit`
- `routing.groupChat.mentionPatterns``messages.groupChat.mentionPatterns`
- `routing.queue``messages.queue`
- `routing.bindings`верхньорівневий `bindings`
- `routing.bindings``bindings` верхнього рівня
- `routing.agents`/`routing.defaultAgentId` → `agents.list` + `agents.list[].default`
- застарілі `talk.voiceId`/`talk.voiceAliases`/`talk.modelId`/`talk.outputFormat`/`talk.apiKey` → `talk.provider` + `talk.providers.<provider>`
- `routing.agentToAgent``tools.agentToAgent`
@ -155,7 +156,7 @@ Gateway також автоматично запускає міграції doct
- `plugins.entries.voice-call.config.streaming.openaiApiKey|sttModel|silenceDurationMs|vadThreshold`
`plugins.entries.voice-call.config.streaming.providers.openai.*`
- `bindings[].match.accountID``bindings[].match.accountId`
- Для каналів з іменованими `accounts`, але зі збереженими однокористувацькими значеннями каналу верхнього рівня, перемістити ці значення, прив’язані до облікового запису, до вибраного підвищеного облікового запису для цього каналу (`accounts.default` для більшості каналів; Matrix може зберегти наявну відповідну іменовану/типову ціль)
- Для каналів з іменованими `accounts`, але з залишеними значеннями каналу верхнього рівня для одного акаунта, перемістити ці значення, прив’язані до акаунта, до підвищеного акаунта, вибраного для цього каналу (`accounts.default` для більшості каналів; Matrix може зберегти наявну відповідну іменовану/типову ціль)
- `identity``agents.list[].identity`
- `agent.*``agents.defaults` + `tools.*` (tools/elevated/exec/sandbox/subagents)
- `agent.model`/`allowedModels`/`modelAliases`/`modelFallbacks`/`imageModelFallbacks`
@ -164,16 +165,16 @@ Gateway також автоматично запускає міграції doct
- `browser.profiles.*.driver: "extension"``"existing-session"`
- видалити `browser.relayBindHost` (застаріле налаштування relay для розширення)
Попередження doctor також містять рекомендації щодо типового облікового запису для багатокористувацьких каналів:
Попередження doctor також містять рекомендації щодо типового акаунта для багатoакаунтних каналів:
- Якщо налаштовано два або більше записів `channels.<channel>.accounts` без `channels.<channel>.defaultAccount` або `accounts.default`, doctor попереджає, що резервна маршрутизація може вибрати неочікуваний обліковий запис.
- Якщо `channels.<channel>.defaultAccount` установлено на невідомий ID облікового запису, doctor попереджає та перелічує налаштовані ID облікових записів.
- Якщо налаштовано два або більше записів `channels.<channel>.accounts` без `channels.<channel>.defaultAccount` або `accounts.default`, doctor попереджає, що резервна маршрутизація може вибрати неочікуваний акаунт.
- Якщо `channels.<channel>.defaultAccount` вказано на невідомий ID акаунта, doctor попереджає і перелічує налаштовані ID акаунтів.
### 2b) Перевизначення провайдера OpenCode
Якщо ви вручну додали `models.providers.opencode`, `opencode-zen` або `opencode-go`,
це перевизначає вбудований каталог OpenCode з `@mariozechner/pi-ai`.
Це може спрямувати моделі на неправильний API або обнулити вартість. Doctor попереджає, щоб ви
Це може примусово спрямувати моделі на неправильний API або обнулити вартість. Doctor попереджає, щоб ви
могли прибрати перевизначення й відновити маршрутизацію API та вартість для кожної моделі.
### 2c) Міграція браузера та готовність Chrome MCP
@ -188,83 +189,83 @@ Doctor також перевіряє шлях host-local Chrome MCP, коли в
"user"` або налаштований профіль `existing-session`:
- перевіряє, чи встановлено Google Chrome на тому самому хості для типових
профілів автопідключення
профілів автоматичного підключення
- перевіряє виявлену версію Chrome і попереджає, якщо вона нижча за Chrome 144
- нагадує ввімкнути remote debugging на сторінці inspect браузера (наприклад
`chrome://inspect/#remote-debugging`, `brave://inspect/#remote-debugging`
- нагадує увімкнути remote debugging на сторінці inspect браузера (наприклад
`chrome://inspect/#remote-debugging`, `brave://inspect/#remote-debugging`,
або `edge://inspect/#remote-debugging`)
Doctor не може ввімкнути це налаштування в Chrome за вас. Host-local Chrome MCP
усе ще потребує:
Doctor не може увімкнути це налаштування на боці Chrome за вас. Host-local Chrome MCP
досі вимагає:
- браузер на базі Chromium 144+ на хості gateway/node
- браузер, що працює локально
- браузер, запущений локально
- увімкнений remote debugging у цьому браузері
- підтвердження першого запиту на дозвіл attach у браузері
- підтвердження першого запиту на дозвіл підключення в браузері
Готовність тут стосується лише локальних передумов attach. Existing-session зберігає
Готовність тут стосується лише передумов локального підключення. Existing-session зберігає
поточні обмеження маршрутів Chrome MCP; розширені маршрути, як-от `responsebody`, експорт PDF,
перехоплення завантажень і пакетні дії, усе ще потребують керованого
браузера або профілю raw CDP.
перехоплення завантажень і пакетні дії, як і раніше, потребують керованого
браузера або сирого профілю CDP.
Ця перевірка **не** застосовується до Docker, sandbox, remote-browser чи інших
безголових сценаріїв. Вони, як і раніше, використовують raw CDP.
Ця перевірка **не** стосується Docker, sandbox, remote-browser чи інших
безголових сценаріїв. Вони, як і раніше, використовують сирий CDP.
### 2d) Вимоги OAuth TLS
### 2d) TLS-передумови OAuth
Коли налаштовано профіль OpenAI Codex OAuth, doctor перевіряє кінцеву точку
авторизації OpenAI, щоб упевнитися, що локальний стек TLS Node/OpenSSL може
Коли налаштовано профіль OpenAI Codex OAuth, doctor перевіряє endpoint авторизації OpenAI,
щоб упевнитися, що локальний стек TLS Node/OpenSSL може
перевірити ланцюжок сертифікатів. Якщо перевірка завершується помилкою сертифіката (наприклад
`UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, прострочений сертифікат або самопідписаний сертифікат),
doctor виводить інструкції з виправлення для конкретної платформи. У macOS з Node від Homebrew
виправленням зазвичай є `brew postinstall ca-certificates`. З `--deep` перевірка виконується
навіть якщо gateway справний.
doctor виводить платформо-специфічні рекомендації щодо виправлення. На macOS з Node від Homebrew
виправленням зазвичай є `brew postinstall ca-certificates`. З `--deep` перевірка виконується,
навіть якщо gateway працює справно.
### 2c) Перевизначення провайдера Codex OAuth
Якщо ви раніше додали застарілі налаштування транспорту OpenAI у
`models.providers.openai-codex`, вони можуть затіняти вбудований шлях
Якщо ви раніше додали застарілі параметри транспорту OpenAI у
`models.providers.openai-codex`, вони можуть затінити вбудований шлях
провайдера Codex OAuth, який новіші випуски використовують автоматично. Doctor попереджає, коли бачить
ці старі налаштування транспорту разом із Codex OAuth, щоб ви могли видалити або переписати
застаріле перевизначення транспорту та повернути вбудовану поведінку маршрутизації/резервування.
Користувацькі проксі та перевизначення лише заголовків, як і раніше, підтримуються й не
ці старі параметри транспорту поруч із Codex OAuth, щоб ви могли видалити або переписати
застаріле перевизначення транспорту й повернути вбудовану поведінку маршрутизації/резервування.
Власні проксі й перевизначення лише заголовків і далі підтримуються та не
викликають цього попередження.
### 3) Міграції застарілого стану (структура на диску)
Doctor може мігрувати старіші структури на диску до поточної:
- Сховище сесій + стенограми:
- Сховище сесій + transcripts:
- з `~/.openclaw/sessions/` до `~/.openclaw/agents/<agentId>/sessions/`
- Каталог агента:
- Каталог agent:
- з `~/.openclaw/agent/` до `~/.openclaw/agents/<agentId>/agent/`
- Стан автентифікації WhatsApp (Baileys):
- зі старих `~/.openclaw/credentials/*.json` (крім `oauth.json`)
- до `~/.openclaw/credentials/whatsapp/<accountId>/...` (типовий ID облікового запису: `default`)
- до `~/.openclaw/credentials/whatsapp/<accountId>/...` (типовий ID акаунта: `default`)
Ці міграції виконуються за можливості та є ідемпотентними; doctor виведе попередження, якщо
Ці міграції виконуються за принципом best-effort та є ідемпотентними; doctor виведе попередження, якщо
залишить будь-які застарілі каталоги як резервні копії. Gateway/CLI також автоматично мігрує
застарілі сесії та каталог агента під час запуску, тож історія/автентифікація/моделі потрапляють у шлях
для конкретного агента без ручного запуску doctor. Автентифікація WhatsApp навмисно
мігрується лише через `openclaw doctor`. Нормалізація Talk provider/provider-map тепер
порівнює за структурною рівністю, тому відмінності лише в порядку ключів більше не викликають
повторних порожніх змін `doctor --fix`.
застарілі sessions + каталог agent під час старту, щоб history/auth/models потрапляли в
шлях конкретного agent без ручного запуску doctor. Автентифікація WhatsApp навмисно мігрується
лише через `openclaw doctor`. Нормалізація Talk provider/provider-map тепер
порівнює за структурною рівністю, тож відмінності лише в порядку ключів більше не спричиняють
повторних порожніх змін у `doctor --fix`.
### 3a) Міграції застарілих маніфестів plugin
Doctor сканує всі встановлені маніфести plugin на наявність застарілих ключів
можливостей верхнього рівня (`speechProviders`, `realtimeTranscriptionProviders`,
Doctor сканує всі встановлені маніфести plugin на наявність застарілих ключів можливостей верхнього рівня
(`speechProviders`, `realtimeTranscriptionProviders`,
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
`imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`,
`webSearchProviders`). Якщо їх знайдено, він пропонує перемістити їх до об’єкта `contracts`
і переписати файл маніфесту на місці. Ця міграція ідемпотентна;
`webSearchProviders`). Якщо їх знайдено, він пропонує перемістити їх у об’єкт `contracts`
і переписати файл маніфесту безпосередньо на місці. Ця міграція є ідемпотентною;
якщо ключ `contracts` уже містить ті самі значення, застарілий ключ видаляється
без дублювання даних.
### 3b) Міграції застарілого сховища cron
Doctor також перевіряє сховище cron jobs (`~/.openclaw/cron/jobs.json` типово,
або `cron.store`, якщо його перевизначено) на старі форми job, які планувальник усе ще
або `cron.store`, якщо його перевизначено) на старі форми jobs, які планувальник досі
приймає для сумісності.
Поточні очищення cron включають:
@ -273,240 +274,245 @@ Doctor також перевіряє сховище cron jobs (`~/.openclaw/cron
- `schedule.cron``schedule.expr`
- поля payload верхнього рівня (`message`, `model`, `thinking`, ...) → `payload`
- поля delivery верхнього рівня (`deliver`, `channel`, `to`, `provider`, ...) → `delivery`
- псевдоніми delivery `provider` у payload → явний `delivery.channel`
- псевдоніми доставки `provider` у payload → явний `delivery.channel`
- прості застарілі резервні webhook jobs з `notify: true` → явний `delivery.mode="webhook"` з `delivery.to=cron.webhook`
Doctor автоматично мігрує jobs з `notify: true` лише тоді, коли це можна зробити без
зміни поведінки. Якщо job поєднує застарілий резервний notify з наявним
не-webhook режимом delivery, doctor попереджає й залишає цей job для ручної перевірки.
Doctor автоматично мігрує jobs з `notify: true` лише тоді, коли це можна зробити
без зміни поведінки. Якщо job поєднує застарілий резервний notify із наявним
режимом delivery, що не є webhook, doctor попереджає й залишає цей job для ручної перевірки.
### 3c) Очищення блокувань сесій
Doctor сканує каталог сесій кожного агента на наявність застарілих файлів блокування запису — файлів,
що залишилися після аварійного завершення сесії. Для кожного знайденого файлу блокування він повідомляє:
шлях, PID, чи PID усе ще активний, вік блокування та чи
вважається воно застарілим (мертвий PID або вік понад 30 хвилин). У режимі `--fix` / `--repair`
він автоматично видаляє застарілі файли блокування; інакше виводить примітку та
пропонує повторити запуск з `--fix`.
Doctor сканує каталог сесій кожного agent на наявність застарілих файлів блокування запису — файлів, що залишилися
після аварійного завершення сесії. Для кожного знайденого файла блокування він повідомляє:
шлях, PID, чи PID досі живий, вік блокування та чи
вважається воно застарілим (мертвий PID або старше 30 хвилин). У режимі `--fix` / `--repair`
він видаляє застарілі файли блокування автоматично; інакше виводить примітку та
радить перезапустити з `--fix`.
### 4) Перевірки цілісності стану (збереження сесій, маршрутизація та безпека)
Каталог стану — це операційний стовбур мозку системи. Якщо він зникне, ви втратите
Каталог стану — це операційний стовбур мозку. Якщо він зникне, ви втратите
сесії, облікові дані, журнали та конфігурацію (якщо у вас немає резервних копій деінде).
Doctor перевіряє:
- **Відсутній каталог стану**: попереджає про катастрофічну втрату стану, пропонує відтворити
каталог і нагадує, що не може відновити втрачені дані.
- **Каталог стану відсутній**: попереджає про катастрофічну втрату стану, пропонує повторно створити
каталог і нагадує, що він не може відновити втрачені дані.
- **Права доступу до каталогу стану**: перевіряє можливість запису; пропонує виправити права
(і виводить підказку `chown`, якщо виявлено невідповідність власника/групи).
- **Каталог стану macOS у хмарній синхронізації**: попереджає, коли стан розгортається в iCloud Drive
(і виводить підказку `chown`, якщо виявлено невідповідність owner/group).
- **Каталог стану macOS у хмарній синхронізації**: попереджає, якщо стан знаходиться в iCloud Drive
(`~/Library/Mobile Documents/com~apple~CloudDocs/...`) або
`~/Library/CloudStorage/...`, оскільки шляхи із синхронізацією можуть спричиняти повільніший I/O
і конфлікти блокувань/синхронізації.
- **Каталог стану Linux на SD або eMMC**: попереджає, коли стан розгортається на джерелі монтування `mmcblk*`,
оскільки випадковий I/O на SD або eMMC може бути повільнішим і швидше зношувати носій
через записи сесій та облікових даних.
- **Відсутні каталоги сесій**: `sessions/` і каталог сховища сесій
`~/Library/CloudStorage/...`, тому що шляхи з синхронізацією можуть спричиняти повільніший I/O
та гонки блокувань/синхронізації.
- **Каталог стану Linux на SD або eMMC**: попереджає, якщо стан знаходиться на джерелі монтування `mmcblk*`,
тому що випадковий I/O на SD або eMMC може бути повільнішим і швидше зношувати носій
під час записів сесій та облікових даних.
- **Каталоги сесій відсутні**: `sessions/` і каталог сховища сесій
потрібні для збереження історії та уникнення збоїв `ENOENT`.
- **Невідповідність стенограм**: попереджає, коли в недавніх записах сесій відсутні
файли стенограм.
- **Основна сесія “1-line JSONL”**: позначає випадки, коли основна стенограма має лише один
- **Невідповідність transcript**: попереджає, коли в недавніх записах сесій відсутні
файли transcript.
- **Основна сесія “1-line JSONL”**: позначає випадки, коли основний transcript має лише один
рядок (історія не накопичується).
- **Кілька каталогів стану**: попереджає, коли існує кілька папок `~/.openclaw` у різних
домашніх каталогах або коли `OPENCLAW_STATE_DIR` вказує в інше місце (історія може
розділятися між установками).
- **Нагадування про remote mode**: якщо `gateway.mode=remote`, doctor нагадує запустити
його на віддаленому хості (стан зберігається саме там).
- **Права доступу до файлу конфігурації**: попереджає, якщо `~/.openclaw/openclaw.json` є
читабельним для групи/усіх, і пропонує посилити права до `600`.
- **Кілька каталогів стану**: попереджає, коли існує кілька каталогів `~/.openclaw` у різних
домашніх каталогах або коли `OPENCLAW_STATE_DIR` вказує кудись інакше (історія може
розділитися між інсталяціями).
- **Нагадування про віддалений режим**: якщо `gateway.mode=remote`, doctor нагадує запустити
його на віддаленому хості (стан зберігається там).
- **Права доступу до файлу конфігурації**: попереджає, якщо `~/.openclaw/openclaw.json` доступний
для читання групі/усім, і пропонує посилити права до `600`.
### 5) Стан автентифікації моделей (строк дії OAuth)
Doctor перевіряє профілі OAuth у сховищі автентифікації, попереджає, коли строк дії токенів
наближається до завершення або вже завершився, і може оновити їх, якщо це безпечно. Якщо профіль
Anthropic OAuth/token застарів, він пропонує Anthropic API key або
шлях налаштування Anthropic setup-token.
спливає/вже сплив, і може оновити їх, коли це безпечно. Якщо профіль
OAuth/token Anthropic застарів, він пропонує API-ключ Anthropic або
шлях setup-token Anthropic.
Запити на оновлення з’являються лише в інтерактивному режимі (TTY); `--non-interactive`
пропускає спроби оновлення.
Коли оновлення OAuth остаточно завершується невдачею (наприклад `refresh_token_reused`,
`invalid_grant` або коли провайдер просить увійти знову), doctor повідомляє,
що потрібна повторна автентифікація, і виводить точну команду `openclaw models auth login --provider ...`,
яку треба виконати.
Doctor також повідомляє про профілі автентифікації, які тимчасово непридатні до використання через:
- короткі cooldown (обмеження швидкості/тайм-аути/помилки автентифікації)
- довші вимкнення (помилки білінгу/кредитів)
- короткі cooldown-періоди (rate limits/timeouts/auth failures)
- довші відключення (billing/credit failures)
### 6) Перевірка моделі hooks
Якщо встановлено `hooks.gmail.model`, doctor перевіряє посилання на модель за
каталогом і allowlist та попереджає, коли його не вдається розв’язати або воно не дозволене.
Якщо встановлено `hooks.gmail.model`, doctor перевіряє посилання на модель у
каталозі та списку дозволених значень і попереджає, коли її не вдасться зіставити або вона заборонена.
### 7) Відновлення образу sandbox
### 7) Відновлення образу пісочниці
Коли sandboxing увімкнено, doctor перевіряє образи Docker і пропонує зібрати їх або
переключитися на застарілі імена, якщо поточний образ відсутній.
Коли пісочницю увімкнено, doctor перевіряє Docker-образи і пропонує зібрати їх або
перемкнутися на застарілі назви, якщо поточний образ відсутній.
### 7b) Runtime-залежності bundled plugin
### 7b) Runtime-залежності вбудованих plugin
Doctor перевіряє, що runtime-залежності bundled plugin (наприклад
runtime-пакети plugin Discord) присутні в корені встановлення OpenClaw.
Якщо якихось не вистачає, doctor повідомляє про ці пакети та встановлює їх у
Doctor перевіряє, чи присутні runtime-залежності вбудованих plugin (наприклад
runtime-пакети plugin Discord) у корені інсталяції OpenClaw.
Якщо якихось бракує, doctor повідомляє пакети й установлює їх у
режимі `openclaw doctor --fix` / `openclaw doctor --repair`.
### 8) Міграції служб gateway та підказки з очищення
### 8) Міграції сервісів gateway та підказки з очищення
Doctor виявляє застарілі служби gateway (launchd/systemd/schtasks) і
пропонує видалити їх та встановити службу OpenClaw з поточним портом gateway.
Він також може сканувати наявність додаткових gateway-подібних служб і виводити підказки з очищення.
Іменовані за профілем служби OpenClaw gateway вважаються повноцінними і не
Doctor виявляє застарілі сервіси gateway (launchd/systemd/schtasks) і
пропонує видалити їх та встановити сервіс OpenClaw із поточним портом gateway.
Він також може сканувати додаткові схожі на gateway сервіси та виводити підказки з очищення.
Сервіси OpenClaw gateway з назвами профілів вважаються повноцінними й не
позначаються як "додаткові".
### 8b) Стартова міграція Matrix
### 8b) Міграція Matrix під час запуску
Коли обліковий запис каналу Matrix має очікувану або придатну до виконання міграцію застарілого стану,
Коли акаунт каналу Matrix має очікувану або виконувану міграцію застарілого стану,
doctor (у режимі `--fix` / `--repair`) створює знімок стану до міграції, а потім
виконує найкращим можливим способом кроки міграції: міграцію застарілого стану Matrix і підготовку
застарілого зашифрованого стану. Обидва кроки не є фатальними; помилки записуються в журнал, а
виконує кроки міграції за принципом best-effort: міграцію застарілого стану Matrix і підготовку
застарілого зашифрованого стану. Обидва кроки не є фатальними; помилки журналюються, і
запуск триває. У режимі лише читання (`openclaw doctor` без `--fix`) ця перевірка
повністю пропускається.
### 9) Попередження безпеки
Doctor виводить попередження, коли провайдер відкритий для DM без allowlist або
коли політику налаштовано небезпечним чином.
Doctor виводить попередження, коли провайдер відкритий для DM без allowlist,
або коли політику налаштовано небезпечно.
### 10) systemd linger (Linux)
Якщо система працює як користувацька служба systemd, doctor перевіряє, що lingering увімкнено, щоб
Якщо робота ведеться як user-сервіс systemd, doctor перевіряє, що lingering увімкнено, щоб
gateway залишався активним після виходу з системи.
### 11) Стан workspace (Skills, plugins і застарілі каталоги)
Doctor виводить зведення стану workspace для типового агента:
Doctor виводить зведення стану workspace для типового agent:
- **Стан Skills**: кількість доступних, тих, що не відповідають вимогам, і заблокованих allowlist Skills.
- **Стан Skills**: кількість доступних, з відсутніми вимогами та заблокованих allowlist навичок.
- **Застарілі каталоги workspace**: попереджає, коли `~/openclaw` або інші застарілі каталоги workspace
існують поруч із поточним workspace.
- **Стан plugin**: кількість завантажених/вимкнених/plugin із помилками; перелічує ID plugin для будь-яких
- **Стан plugin**: кількість завантажених/вимкнених/помилкових plugins; перелічує ID plugin для всіх
помилок; повідомляє про можливості bundle plugin.
- **Попередження про сумісність plugin**: позначає plugins, які мають проблеми сумісності з
поточним runtime.
- **Діагностика plugin**: показує будь-які попередження або помилки під час завантаження, які надіслав
реєстр plugin.
- **Діагностика plugin**: показує будь-які попередження чи помилки під час завантаження, які
згенерував реєстр plugin.
### 11b) Розмір bootstrap-файлу
Doctor перевіряє, чи bootstrap-файли workspace (наприклад `AGENTS.md`,
`CLAUDE.md` або інші впроваджені контекстні файли) наближаються до налаштованого
ліміту символів або перевищують його. Він повідомляє для кожного файлу сирий та впроваджений обсяг символів, відсоток обрізання,
причину обрізання (`max/file` або `max/total`) і загальну кількість впроваджених
символів як частку від загального бюджету. Коли файли обрізано або вони наближаються до
ліміту, doctor виводить поради щодо налаштування `agents.defaults.bootstrapMaxChars`
`CLAUDE.md` або інші вбудовані контекстні файли) наближаються до
налаштованого бюджету символів або перевищують його. Він повідомляє для кожного файла кількість сирих і
вбудованих символів, відсоток обрізання, причину обрізання (`max/file` або `max/total`) і загальну кількість вбудованих
символів як частку загального бюджету. Коли файли обрізано або вони наближаються до ліміту,
doctor виводить поради щодо налаштування `agents.defaults.bootstrapMaxChars`
і `agents.defaults.bootstrapTotalMaxChars`.
### 11c) Shell completion
### 11c) Автодоповнення shell
Doctor перевіряє, чи встановлено tab completion для поточної оболонки
Doctor перевіряє, чи встановлено автодоповнення для поточної shell
(zsh, bash, fish або PowerShell):
- Якщо профіль оболонки використовує повільний шаблон динамічного completion
- Якщо профіль shell використовує повільний шаблон динамічного автодоповнення
(`source <(openclaw completion ...)`), doctor оновлює його до швидшого
варіанту з кешованим файлом.
- Якщо completion налаштовано в профілі, але файл кешу відсутній,
варіанта з кешованим файлом.
- Якщо автодоповнення налаштовано в профілі, але кешований файл відсутній,
doctor автоматично відновлює кеш.
- Якщо completion взагалі не налаштовано, doctor пропонує встановити його
- Якщо автодоповнення взагалі не налаштовано, doctor пропонує встановити його
(лише інтерактивний режим; пропускається з `--non-interactive`).
Запустіть `openclaw completion --write-state`, щоб відновити кеш вручну.
Виконайте `openclaw completion --write-state`, щоб відновити кеш вручну.
### 12) Перевірки автентифікації gateway (локальний токен)
Doctor перевіряє готовність автентифікації локального токена gateway.
Doctor перевіряє готовність автентифікації локального gateway за токеном.
- Якщо режим токена потребує токен, а джерела токена немає, doctor пропонує згенерувати його.
- Якщо `gateway.auth.token` керується через SecretRef, але недоступний, doctor попереджає й не перезаписує його відкритим текстом.
- `openclaw doctor --generate-gateway-token` примусово генерує токен лише тоді, коли токен SecretRef не налаштовано.
- Якщо режим токена потребує токен, а джерело токена відсутнє, doctor пропонує згенерувати його.
- Якщо `gateway.auth.token` керується через SecretRef, але недоступний, doctor попереджає і не перезаписує його простим текстом.
- `openclaw doctor --generate-gateway-token` примусово генерує токен лише тоді, коли не налаштовано токен SecretRef.
### 12b) Відновлення в режимі лише читання з урахуванням SecretRef
### 12b) Виправлення лише для читання з урахуванням SecretRef
Деяким сценаріям відновлення потрібно перевіряти налаштовані облікові дані без послаблення поведінки швидкої відмови під час виконання.
Деякі сценарії виправлення потребують перевірки налаштованих облікових даних без послаблення поведінки runtime fail-fast.
- `openclaw doctor --fix` тепер використовує ту саму модель зведення SecretRef у режимі лише читання, що й команди сімейства status, для цільових виправлень конфігурації.
- Приклад: виправлення Telegram `allowFrom` / `groupAllowFrom` `@username` намагається використовувати налаштовані облікові дані бота, коли вони доступні.
- Якщо токен Telegram-бота налаштовано через SecretRef, але він недоступний у поточному шляху виконання команди, doctor повідомляє, що облікові дані налаштовано, але вони недоступні, і пропускає автоматичне розв’язання замість аварійного завершення або хибного повідомлення про відсутність токена.
- `openclaw doctor --fix` тепер використовує ту саму модель стислого read-only подання SecretRef, що й команди сімейства status, для цільових виправлень конфігурації.
- Приклад: виправлення Telegram `allowFrom` / `groupAllowFrom` `@username` намагається використати налаштовані облікові дані бота, якщо вони доступні.
- Якщо токен Telegram-бота налаштовано через SecretRef, але він недоступний у поточному шляху виконання команди, doctor повідомляє, що облікові дані налаштовано, але вони недоступні, і пропускає автоматичне зіставлення замість аварійного завершення або хибного повідомлення, що токен відсутній.
### 13) Перевірка працездатності gateway + перезапуск
### 13) Перевірка стану gateway + перезапуск
Doctor запускає перевірку працездатності й пропонує перезапустити gateway, якщо той
виглядає несправним.
Doctor запускає перевірку стану й пропонує перезапустити gateway, якщо
він виглядає несправним.
### 13b) Готовність пошуку в пам’яті
### 13b) Готовність memory search
Doctor перевіряє, чи готовий налаштований провайдер embedding для пошуку в пам’яті
для типового агента. Поведінка залежить від налаштованого backend і провайдера:
Doctor перевіряє, чи готовий налаштований провайдер embedding для memory search
для типового agent. Поведінка залежить від налаштованого backend і провайдера:
- **QMD backend**: перевіряє, чи доступний і чи запускається бінарний файл `qmd`.
Якщо ні, виводить інструкції з виправлення, зокрема npm package та варіант ручного шляху до бінарного файла.
- **Явно локальний провайдер**: перевіряє наявність локального файлу моделі або розпізнаваного
- **QMD backend**: перевіряє, чи бінарник `qmd` доступний і чи його можна запустити.
Якщо ні, виводить рекомендації щодо виправлення, зокрема npm-пакет і варіант ручного шляху до бінарника.
- **Явний локальний провайдер**: перевіряє наявність локального файла моделі або розпізнаного
URL віддаленої/завантажуваної моделі. Якщо його немає, пропонує перейти на віддаленого провайдера.
- **Явно віддалений провайдер** (`openai`, `voyage` тощо): перевіряє, чи присутній API key
у середовищі або сховищі автентифікації. Якщо його немає, виводить практичні підказки для виправлення.
- **Автоматичний провайдер**: спочатку перевіряє доступність локальної моделі, а потім намагається використати кожного віддаленого
- **Явний віддалений провайдер** (`openai`, `voyage` тощо): перевіряє, чи є API-ключ
у середовищі або сховищі автентифікації. Якщо його немає, виводить практичні підказки щодо виправлення.
- **Auto provider**: спочатку перевіряє доступність локальної моделі, а потім пробує кожного віддаленого
провайдера в порядку автоматичного вибору.
Коли доступний результат перевірки gateway (gateway був справний на момент
перевірки), doctor зіставляє його з конфігурацією, видимою CLI, і вказує
на будь-які розбіжності.
Коли доступний результат перевірки gateway (gateway був справним на момент
перевірки), doctor звіряє його результат із конфігурацією, видимою CLI, і позначає
будь-які розбіжності.
Використовуйте `openclaw memory status --deep`, щоб перевірити готовність embedding під час виконання.
Використайте `openclaw memory status --deep`, щоб перевірити готовність embedding під час runtime.
### 14) Попередження про стан каналів
Якщо gateway справний, doctor запускає перевірку стану каналів і повідомляє
про попередження разом із пропозиціями щодо виправлення.
Якщо gateway справний, doctor запускає пробу стану каналів і повідомляє
попередження з рекомендованими виправленнями.
### 15) Аудит конфігурації supervisor + відновлення
Doctor перевіряє встановлену конфігурацію supervisor (launchd/systemd/schtasks) на наявність
відсутніх або застарілих типових значень (наприклад, systemd network-online dependencies та
затримка перезапуску). Коли він знаходить невідповідність, то
рекомендує оновлення й може переписати файл служби/завдання відповідно до поточних типових значень.
Doctor перевіряє встановлену конфігурацію supervisor (launchd/systemd/schtasks) на
відсутні або застарілі типові значення (наприклад залежності systemd від network-online та
затримку перезапуску). Коли він знаходить невідповідність, рекомендує оновлення і може
перезаписати файл сервісу/завдання до поточних типових значень.
Примітки:
- `openclaw doctor` запитує підтвердження перед переписуванням конфігурації supervisor.
- `openclaw doctor --yes` приймає типові запити на відновлення.
- `openclaw doctor` запитує підтвердження перед перезаписом конфігурації supervisor.
- `openclaw doctor --yes` приймає типові запити на виправлення.
- `openclaw doctor --repair` застосовує рекомендовані виправлення без запитів.
- `openclaw doctor --repair --force` перезаписує користувацькі конфігурації supervisor.
- Якщо автентифікація токеном вимагає токен, а `gateway.auth.token` керується через SecretRef, під час встановлення/відновлення служби doctor перевіряє SecretRef, але не зберігає розв’язані відкриті значення токена в метадані середовища служби supervisor.
- Якщо автентифікація токеном вимагає токен, а налаштований токен SecretRef не розв’язується, doctor блокує шлях встановлення/відновлення та надає практичні вказівки.
- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password`, а `gateway.auth.mode` не встановлено, doctor блокує встановлення/відновлення, доки режим не буде явно задано.
- Для користувацьких systemd unit у Linux перевірки розбіжності токенів у doctor тепер включають обидва джерела `Environment=` і `EnvironmentFile=` під час порівняння метаданих автентифікації служби.
- `openclaw doctor --repair --force` перезаписує власні конфігурації supervisor.
- Якщо автентифікація за токеном потребує токен, а `gateway.auth.token` керується через SecretRef, doctor під час встановлення/відновлення сервісу перевіряє SecretRef, але не зберігає розв’язані значення plaintext token у метаданих середовища сервісу supervisor.
- Якщо автентифікація за токеном потребує токен, а налаштований token SecretRef не розв’язується, doctor блокує шлях встановлення/відновлення та надає практичні рекомендації.
- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password`, а `gateway.auth.mode` не задано, doctor блокує встановлення/відновлення, доки режим не буде явно встановлено.
- Для user-systemd units у Linux перевірки розходжень токена в doctor тепер охоплюють і джерела `Environment=`, і `EnvironmentFile=` під час порівняння метаданих автентифікації сервісу.
- Ви завжди можете примусово виконати повний перезапис через `openclaw gateway install --force`.
### 16) Діагностика runtime gateway + порту
Doctor перевіряє runtime служби (PID, останній статус завершення) і попереджає, коли
службу встановлено, але вона фактично не запущена. Він також перевіряє конфлікти портів
Doctor перевіряє runtime сервісу (PID, останній статус виходу) і попереджає, коли
сервіс встановлено, але фактично не запущено. Він також перевіряє конфлікти
на порту gateway (типово `18789`) і повідомляє ймовірні причини (gateway уже
працює, SSH tunnel).
запущено, SSH-тунель).
### 17) Рекомендовані практики runtime gateway
### 17) Рекомендації для runtime gateway
Doctor попереджає, коли служба gateway працює на Bun або через шлях Node, керований менеджером версій
(`nvm`, `fnm`, `volta`, `asdf` тощо). Канали WhatsApp + Telegram вимагають Node,
а шляхи менеджерів версій можуть ламатися після оновлень, оскільки служба не
завантажує вашу ініціалізацію оболонки. Doctor пропонує перейти на системне встановлення Node,
якщо воно доступне (Homebrew/apt/choco).
Doctor попереджає, коли сервіс gateway працює на Bun або на шляху Node, керованому менеджером версій
(`nvm`, `fnm`, `volta`, `asdf` тощо). Канали WhatsApp + Telegram потребують Node,
а шляхи менеджерів версій можуть ламатися після оновлень, тому що сервіс не
завантажує ініціалізацію вашої shell. Doctor пропонує перейти на системну інсталяцію Node, якщо
вона доступна (Homebrew/apt/choco).
### 18) Запис конфігурації + метадані майстра
Doctor зберігає будь-які зміни конфігурації та проставляє метадані майстра, щоб зафіксувати
запуск doctor.
### 19) Поради щодо workspace (резервне копіювання + система пам’яті)
### 19) Поради щодо workspace (резервне копіювання + memory system)
Doctor пропонує систему пам’яті workspace, якщо її немає, і виводить пораду щодо резервного копіювання,
Doctor пропонує memory system для workspace, якщо його немає, і виводить пораду щодо резервного копіювання,
якщо workspace ще не перебуває під git.
Див. [/concepts/agent-workspace](/uk/concepts/agent-workspace), щоб отримати повний посібник зі
структури workspace та резервного копіювання через git (рекомендовано приватний GitHub або GitLab).
структури workspace та резервного копіювання в git (рекомендовано приватний GitHub або GitLab).