Перейти до основного вмісту

openclaw doctor

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

Приклади

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 і видаляє невідомі ключі конфігурації, перелічуючи кожне видалення.
  • Перевірки цілісності стану тепер виявляють осиротілі файли transcript у каталозі сеансів і можуть архівувати їх як .deleted.<timestamp>, щоб безпечно звільнити місце.
  • Doctor також сканує ~/.openclaw/cron/jobs.json (або cron.store) на наявність застарілих структур завдань Cron і може переписати їх на місці до того, як планувальнику доведеться автоматично нормалізувати їх під час виконання.
  • Doctor відновлює відсутні залежності середовища виконання вбудованих Plugin без потреби в доступі на запис до встановленого пакета OpenClaw. Для npm-інсталяцій, що належать root, або захищених systemd-юнитів задайте OPENCLAW_PLUGIN_STAGE_DIR у каталозі з правом запису, наприклад /var/lib/openclaw/plugin-runtime-deps.
  • Doctor автоматично мігрує застарілу пласку конфігурацію Talk (talk.voiceId, talk.modelId та подібні) у talk.provider + talk.providers.<provider>.
  • Повторні запуски doctor --fix більше не повідомляють/не застосовують нормалізацію Talk, якщо єдина відмінність — це порядок ключів об’єкта.
  • Doctor містить перевірку готовності пошуку в пам’яті й може рекомендувати openclaw configure --section model, якщо відсутні облікові дані для вбудовувань.
  • Якщо режим sandbox увімкнено, але Docker недоступний, doctor повідомляє чітке попередження з рекомендацією щодо виправлення (install Docker або openclaw config set agents.defaults.sandbox.mode off).
  • Якщо gateway.auth.token/gateway.auth.password керуються через SecretRef і недоступні в поточному шляху команди, doctor повідомляє попередження лише для читання й не записує відкриті резервні облікові дані.
  • Якщо перевірка SecretRef каналу завершується помилкою під час шляху виправлення, doctor продовжує роботу й повідомляє попередження замість дострокового завершення.
  • Автоматичне розпізнавання імен користувачів Telegram allowFrom (doctor --fix) вимагає Telegram-токен, який можна розпізнати в поточному шляху команди. Якщо перевірка токена недоступна, doctor повідомляє попередження й пропускає авторозпізнавання під час цього проходу.

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

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

launchctl unsetenv OPENCLAW_GATEWAY_TOKEN
launchctl unsetenv OPENCLAW_GATEWAY_PASSWORD