---
read_when:
    - У вас виникли проблеми з підключенням/автентифікацією, і ви хочете отримати покрокові вказівки з їх виправлення
    - Ви оновили й хочете перевірити коректність
summary: Довідник CLI для `openclaw doctor` (перевірки працездатності + керовані виправлення)
title: Діагностика
x-i18n:
    generated_at: "2026-04-28T11:07:15Z"
    model: gpt-5.5
    provider: openai
    source_hash: 00110787b9320f84aa3b57ea8b85120d412a97779fbf1e3d8f11f78c87d37676
    source_path: cli/doctor.md
    workflow: 16
---

# `openclaw doctor`

Перевірки стану + швидкі виправлення для Gateway і каналів.

Пов’язано:

- Усунення несправностей: [Усунення несправностей](/uk/gateway/troubleshooting)
- Аудит безпеки: [Безпека](/uk/gateway/security)

## Приклади

```bash
openclaw doctor
openclaw doctor --repair
openclaw doctor --deep
openclaw doctor --repair --non-interactive
openclaw doctor --generate-gateway-token
```

## Параметри

- `--no-workspace-suggestions`: вимкнути пропозиції пам’яті/пошуку робочого простору
- `--yes`: приймати значення за замовчуванням без запиту
- `--repair`: застосувати рекомендовані виправлення без запиту
- `--fix`: псевдонім для `--repair`
- `--force`: застосувати агресивні виправлення, зокрема перезаписати власну конфігурацію служби за потреби
- `--non-interactive`: запуск без запитів; лише безпечні міграції
- `--generate-gateway-token`: згенерувати й налаштувати токен Gateway
- `--deep`: сканувати системні служби на додаткові встановлення Gateway

Примітки:

- Інтерактивні запити (наприклад, виправлення keychain/OAuth) виконуються лише тоді, коли stdin є TTY і `--non-interactive` **не** задано. Запуски без інтерфейсу (cron, Telegram, без термінала) пропускатимуть запити.
- Продуктивність: неінтерактивні запуски `doctor` пропускають завчасне завантаження plugin, щоб перевірки стану без інтерфейсу залишалися швидкими. Інтерактивні сеанси все одно повністю завантажують plugins, коли перевірці потрібен їхній внесок.
- `--fix` (псевдонім для `--repair`) записує резервну копію в `~/.openclaw/openclaw.json.bak` і видаляє невідомі ключі конфігурації, перелічуючи кожне видалення.
- Перевірки цілісності стану тепер виявляють осиротілі файли транскриптів у каталозі сеансів. Архівування їх як `.deleted.<timestamp>` потребує інтерактивного підтвердження; `--fix`, `--yes` і запуски без інтерфейсу залишають їх на місці.
- Doctor також сканує `~/.openclaw/cron/jobs.json` (або `cron.store`) на застарілі форми завдань cron і може переписати їх на місці до того, як планувальнику доведеться автоматично нормалізувати їх під час виконання.
- Doctor відновлює відсутні runtime-залежності вбудованих plugin, не записуючи їх у запаковані глобальні встановлення. Для root-owned npm-встановлень або посилених systemd units задайте `OPENCLAW_PLUGIN_STAGE_DIR` як каталог, доступний для запису, наприклад `/var/lib/openclaw/plugin-runtime-deps`; це також може бути список шляхів, наприклад `/opt/openclaw/plugin-runtime-deps:/var/lib/openclaw/plugin-runtime-deps`, де попередні корені є шарами пошуку лише для читання, а останній корінь є ціллю виправлення.
- Doctor відновлює застарілу конфігурацію plugin, видаляючи відсутні ідентифікатори plugin з `plugins.allow`/`plugins.entries`, а також відповідну осиротілу конфігурацію каналів, цілі heartbeat і перевизначення моделей каналів, коли виявлення plugin працює коректно.
- Doctor ізолює недійсну конфігурацію plugin, вимикаючи відповідний запис `plugins.entries.<id>` і видаляючи його недійсне навантаження `config`. Запуск Gateway уже пропускає лише цей несправний plugin, тож інші plugins і канали можуть продовжувати роботу.
- Задайте `OPENCLAW_SERVICE_REPAIR_POLICY=external`, коли життєвим циклом Gateway керує інший супервізор. Doctor і надалі повідомляє про стан Gateway/служби та застосовує виправлення, не пов’язані зі службою, але пропускає встановлення/запуск/перезапуск/bootstrap служби й очищення застарілих служб.
- У Linux doctor ігнорує неактивні додаткові systemd units, схожі на Gateway, і не переписує метадані команди/точки входу для запущеної systemd-служби Gateway під час виправлення. Спершу зупиніть службу або використайте `openclaw gateway install --force`, якщо ви навмисно хочете замінити активний launcher.
- Doctor автоматично мігрує застарілу плоску конфігурацію Talk (`talk.voiceId`, `talk.modelId` та пов’язані параметри) у `talk.provider` + `talk.providers.<provider>`.
- Повторні запуски `doctor --fix` більше не повідомляють і не застосовують нормалізацію Talk, коли єдина відмінність — порядок ключів об’єкта.
- Doctor включає перевірку готовності пошуку в пам’яті й може рекомендувати `openclaw configure --section model`, коли бракує облікових даних для embedding.
- Якщо режим sandbox увімкнено, але Docker недоступний, doctor повідомляє змістовне попередження зі способом усунення (`install Docker` або `openclaw config set agents.defaults.sandbox.mode off`).
- Якщо `gateway.auth.token`/`gateway.auth.password` керуються через SecretRef і недоступні в поточному шляху команди, doctor повідомляє попередження лише для читання й не записує plaintext fallback credentials.
- Якщо перевірка SecretRef каналу не вдається на шляху виправлення, doctor продовжує роботу й повідомляє попередження замість дострокового завершення.
- Автоматичне розв’язання імен користувачів Telegram `allowFrom` (`doctor --fix`) потребує доступного для розв’язання токена Telegram у поточному шляху команди. Якщо перевірка токена недоступна, doctor повідомляє попередження й пропускає автоматичне розв’язання для цього проходу.

## macOS: перевизначення змінних середовища `launchctl`

Якщо ви раніше запускали `launchctl setenv OPENCLAW_GATEWAY_TOKEN ...` (або `...PASSWORD`), це значення перевизначає ваш конфігураційний файл і може спричиняти постійні помилки “unauthorized”.

```bash
launchctl getenv OPENCLAW_GATEWAY_TOKEN
launchctl getenv OPENCLAW_GATEWAY_PASSWORD

launchctl unsetenv OPENCLAW_GATEWAY_TOKEN
launchctl unsetenv OPENCLAW_GATEWAY_PASSWORD
```

## Пов’язано

- [Довідник CLI](/uk/cli)
- [Gateway doctor](/uk/gateway/doctor)
