Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openclaw doctor — це інструмент виправлення та міграції для OpenClaw. Він виправляє застарілі конфігурацію/стан, перевіряє справність і надає практичні кроки з виправлення.
Швидкий старт
Режими без інтерфейсу та автоматизації
- --yes
- --repair
- --repair --force
- --non-interactive
- --deep
Що він робить (підсумок)
Справність, UI та оновлення
Справність, UI та оновлення
- Необов’язкове попереднє оновлення для інсталяцій із git (лише інтерактивно).
- Перевірка актуальності протоколу UI (перезбирає Control UI, коли схема протоколу новіша).
- Перевірка справності + запит на перезапуск.
- Підсумок стану Skills (придатні/відсутні/заблоковані) і стан плагінів.
Конфігурація та міграції
Конфігурація та міграції
- Нормалізація конфігурації для застарілих значень.
- Міграція конфігурації Talk із застарілих пласких полів
talk.*уtalk.provider+talk.providers.<provider>. - Перевірки міграції браузера для застарілих конфігурацій розширення Chrome і готовності Chrome MCP.
- Попередження щодо перевизначення провайдера OpenCode (
models.providers.opencode/models.providers.opencode-go). - Попередження щодо затінення OAuth Codex (
models.providers.openai-codex). - Перевірка передумов OAuth TLS для профілів OpenAI Codex OAuth.
- Попередження щодо списку дозволів Plugin/інструментів, коли
plugins.allowобмежувальний, але політика інструментів усе ще запитує маску або інструменти, що належать плагіну. - Міграція застарілого стану на диску (сеанси/каталог агента/автентифікація WhatsApp).
- Міграція ключів контракту застарілого маніфесту плагіна (
speechProviders,realtimeTranscriptionProviders,realtimeVoiceProviders,mediaUnderstandingProviders,imageGenerationProviders,videoGenerationProviders,webFetchProviders,webSearchProviders→contracts). - Міграція застарілого сховища Cron (
jobId,schedule.cron, поля доставки/навантаження верхнього рівня,providerу навантаженні, прості резервні завдання Webhooknotify: true). - Очищення застарілої політики runtime для всього агента; політика runtime провайдера/моделі є активним селектором маршруту.
- Очищення застарілої конфігурації плагінів, коли плагіни ввімкнено; коли
plugins.enabled=false, застарілі посилання на плагіни вважаються інертною конфігурацією containment і зберігаються.
Стан і цілісність
Стан і цілісність
- Перевірка файлів блокування сеансів і очищення застарілих блокувань.
- Виправлення транскриптів сеансів для дубльованих гілок переписування промпта, створених ураженими збірками 2026.4.24.
- Виявлення маркерів завершення для відновлення після перезапуску завислого субагента, з підтримкою
--fixдля очищення застарілих прапорців перерваного відновлення, щоб запуск не продовжував вважати дочірній процес перерваним під час перезапуску. - Перевірки цілісності стану та дозволів (сеанси, транскрипти, каталог стану).
- Перевірки дозволів файлу конфігурації (chmod 600) під час локального запуску.
- Справність автентифікації моделей: перевіряє завершення терміну OAuth, може оновлювати токени, що скоро спливають, і повідомляє про стани паузи/вимкнення профілю автентифікації.
- Виявлення додаткового каталогу робочого простору (
~/openclaw).
Gateway, служби та супервізори
Gateway, служби та супервізори
- Виправлення образу пісочниці, коли пісочницю ввімкнено.
- Міграція застарілої служби та виявлення додаткового Gateway.
- Міграція застарілого стану каналу Matrix (у режимі
--fix/--repair). - Перевірки runtime Gateway (службу встановлено, але не запущено; кешована мітка launchd).
- Попередження про стан каналів (перевіряються з запущеного Gateway).
- Перевірки дозволів для конкретних каналів розміщено в
openclaw channels capabilities; наприклад, дозволи голосового каналу Discord перевіряються за допомогоюopenclaw channels capabilities --channel discord --target channel:<channel-id>. - Перевірки чутливості WhatsApp для погіршеної справності циклу подій Gateway, коли локальні клієнти TUI все ще запущені;
--fixзупиняє лише перевірені локальні клієнти TUI. - Виправлення маршруту Codex для застарілих посилань на моделі
openai-codex/*в основних моделях, резервних варіантах, перевизначеннях Heartbeat/субагента/Compaction, хуках, перевизначеннях моделей каналів і закріпленнях маршрутів сеансів;--fixпереписує їх наopenai/*, видаляє застарілі закріплення runtime сеансів/усього агента й залишає канонічні посилання агентів OpenAI на типовій обв’язці Codex. - Аудит конфігурації супервізора (launchd/systemd/schtasks) з необов’язковим виправленням.
- Очищення середовища вбудованого проксі для служб Gateway, які захопили значення оболонки
HTTP_PROXY/HTTPS_PROXY/NO_PROXYпід час встановлення або оновлення. - Перевірки найкращих практик runtime Gateway (Node проти Bun, шляхи менеджера версій).
- Діагностика конфлікту порту Gateway (типово
18789).
Автентифікація, безпека та спарювання
Автентифікація, безпека та спарювання
- Попередження безпеки для відкритих політик DM.
- Перевірки автентифікації Gateway для режиму локального токена (пропонує генерацію токена, коли джерела токена не існує; не перезаписує конфігурації токена SecretRef).
- Виявлення проблем зі спарюванням пристроїв (очікувані перші запити на спарювання, очікувані підвищення ролі/обсягу, дрейф застарілого локального кешу токенів пристрою та дрейф автентифікації запису спарювання).
Робочий простір і оболонка
Робочий простір і оболонка
- Перевірка systemd linger на Linux.
- Перевірка розміру bootstrap-файлу робочого простору (попередження про обрізання/наближення до ліміту для файлів контексту).
- Перевірка готовності Skills для типового агента; повідомляє про дозволені Skills з відсутніми бінарними файлами, env, конфігурацією або вимогами ОС, а
--fixможе вимкнути недоступні Skills уskills.entries. - Перевірка стану автодоповнення оболонки та автоматичне встановлення/оновлення.
- Перевірка готовності провайдера ембедингів пошуку пам’яті (локальна модель, віддалений ключ API або бінарний файл QMD).
- Перевірки інсталяції з джерела (невідповідність робочого простору pnpm, відсутні ресурси UI, відсутній бінарний файл tsx).
- Записує оновлену конфігурацію + метадані майстра.
Зворотне заповнення та скидання в UI Dreams
Сцена Dreams в Control UI містить дії Зворотне заповнення, Скидання та Очистити обґрунтоване для робочого процесу обґрунтованого Dreaming. Ці дії використовують RPC-методи в стилі doctor для Gateway, але вони не є частиною виправлення/міграції CLIopenclaw doctor.
Що вони роблять:
- Зворотне заповнення сканує історичні файли
memory/YYYY-MM-DD.mdв активному робочому просторі, запускає обґрунтований прохід REM-щоденника та записує оборотні записи зворотного заповнення вDREAMS.md. - Скидання видаляє лише ці позначені записи щоденника зворотного заповнення з
DREAMS.md. - Очистити обґрунтоване видаляє лише підготовлені короткострокові записи, призначені тільки для обґрунтованого режиму, які походять з історичного відтворення й ще не накопичили live recall або щоденну підтримку.
- вони не редагують
MEMORY.md - вони не запускають повні міграції doctor
- вони не додають автоматично обґрунтованих кандидатів до активного короткострокового сховища просування, якщо ви явно не запустите спершу підготовлений шлях CLI
DREAMS.md як поверхню перегляду.
Детальна поведінка та обґрунтування
0. Необов’язкове оновлення (інсталяції з git)
0. Необов’язкове оновлення (інсталяції з git)
1. Нормалізація конфігурації
1. Нормалізація конфігурації
messages.ackReaction без перевизначення для конкретного каналу), doctor нормалізує їх до поточної схеми.Це включає застарілі пласкі поля Talk. Поточна публічна конфігурація мовлення Talk — це talk.provider + talk.providers.<provider>, а конфігурація голосу в реальному часі — talk.realtime.*. Doctor переписує старі форми talk.voiceId / talk.voiceAliases / talk.modelId / talk.outputFormat / talk.apiKey у мапу провайдерів і переписує застарілі селектори реального часу верхнього рівня (talk.mode, talk.transport, talk.brain, talk.model, talk.voice) у talk.realtime.Doctor також попереджає, коли plugins.allow не порожній, а політика інструментів використовує
маску або записи інструментів, що належать плагіну. tools.allow: ["*"] відповідає лише інструментам
із плагінів, які фактично завантажуються; він не обходить ексклюзивний
список дозволених плагінів. Doctor записує plugins.bundledDiscovery: "compat" для мігрованих
застарілих конфігурацій списку дозволів, щоб зберегти наявну поведінку вбудованих провайдерів, а
потім вказує на суворіше налаштування "allowlist".2. Міграції застарілих ключів конфігурації
2. Міграції застарілих ключів конфігурації
openclaw doctor.Doctor:- Пояснить, які застарілі ключі знайдено.
- Покаже міграцію, яку він застосував.
- Перепише
~/.openclaw/openclaw.jsonз оновленою схемою.
openclaw doctor --fix; він не переписує openclaw.json під час запуску. Міграції сховища завдань Cron також обробляються через openclaw doctor --fix.Поточні міграції:routing.allowFrom→channels.whatsapp.allowFromrouting.groupChat.requireMention→channels.whatsapp/telegram/imessage.groups."*".requireMentionrouting.groupChat.historyLimit→messages.groupChat.historyLimitrouting.groupChat.mentionPatterns→messages.groupChat.mentionPatternschannels.telegram.requireMention→channels.telegram.groups."*".requireMention- конфіги налаштованих каналів без видимої політики відповідей →
messages.groupChat.visibleReplies: "message_tool" routing.queue→messages.queuerouting.bindings→ верхньорівневіbindingsrouting.agents/routing.defaultAgentId→agents.list+agents.list[].default- застарілі
talk.voiceId/talk.voiceAliases/talk.modelId/talk.outputFormat/talk.apiKey→talk.provider+talk.providers.<provider> - застарілі верхньорівневі селектори Talk реального часу (
talk.mode/talk.transport/talk.brain/talk.model/talk.voice) +talk.provider/talk.providers→talk.realtime routing.agentToAgent→tools.agentToAgentrouting.transcribeAudio→tools.media.audio.modelsmessages.tts.<provider>(openai/elevenlabs/microsoft/edge) →messages.tts.providers.<provider>messages.tts.provider: "edge"іmessages.tts.providers.edge→messages.tts.provider: "microsoft"іmessages.tts.providers.microsoftchannels.discord.voice.tts.<provider>(openai/elevenlabs/microsoft/edge) →channels.discord.voice.tts.providers.<provider>channels.discord.accounts.<id>.voice.tts.<provider>(openai/elevenlabs/microsoft/edge) →channels.discord.accounts.<id>.voice.tts.providers.<provider>plugins.entries.voice-call.config.tts.<provider>(openai/elevenlabs/microsoft/edge) →plugins.entries.voice-call.config.tts.providers.<provider>plugins.entries.voice-call.config.tts.provider: "edge"іplugins.entries.voice-call.config.tts.providers.edge→provider: "microsoft"іproviders.microsoftplugins.entries.voice-call.config.provider: "log"→"mock"plugins.entries.voice-call.config.twilio.from→plugins.entries.voice-call.config.fromNumberplugins.entries.voice-call.config.streaming.sttProvider→plugins.entries.voice-call.config.streaming.providerplugins.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 може зберегти наявну відповідну іменовану/default ціль) identity→agents.list[].identityagent.*→agents.defaults+tools.*(tools/elevated/exec/sandbox/subagents)agent.model/allowedModels/modelAliases/modelFallbacks/imageModelFallbacks→agents.defaults.models+agents.defaults.model.primary/fallbacks+agents.defaults.imageModel.primary/fallbacks- видалити
agents.defaults.llm; використовуйтеmodels.providers.<id>.timeoutSecondsдля тайм-аутів повільного провайдера/моделі browser.ssrfPolicy.allowPrivateNetwork→browser.ssrfPolicy.dangerouslyAllowPrivateNetworkbrowser.profiles.*.driver: "extension"→"existing-session"- видалити
browser.relayBindHost(застаріле налаштування ретрансляції розширення) - застаріле
models.providers.*.api: "openai"→"openai-completions"(запуск gateway також пропускає провайдери, у якихapiвстановлено на майбутнє або невідоме значення enum, замість того щоб аварійно завершуватися із закритою відмовою) - видалити
plugins.entries.codex.config.codexDynamicToolsProfile; сервер застосунку Codex завжди зберігає нативні інструменти робочого простору Codex нативними
- Якщо налаштовано два або більше записів
channels.<channel>.accountsбезchannels.<channel>.defaultAccountабоaccounts.default, doctor попереджає, що резервна маршрутизація може вибрати неочікуваний обліковий запис. - Якщо
channels.<channel>.defaultAccountвстановлено на невідомий ID облікового запису, doctor попереджає і перелічує налаштовані ID облікових записів.
2b. Перевизначення провайдера OpenCode
2b. Перевизначення провайдера OpenCode
models.providers.opencode, opencode-zen або opencode-go, це перевизначає вбудований каталог OpenCode з @earendil-works/pi-ai. Це може примусово спрямувати моделі на неправильний API або обнулити витрати. Doctor попереджає, щоб ви могли видалити перевизначення й відновити маршрутизацію API + витрати для кожної моделі.2c. Міграція браузера та готовність Chrome MCP
2c. Міграція браузера та готовність Chrome MCP
browser.profiles.*.driver: "extension"стає"existing-session"browser.relayBindHostвидаляється
defaultProfile: "user" або налаштований профіль existing-session:- перевіряє, чи встановлено Google Chrome на тому самому хості для типових профілів автопідключення
- перевіряє виявлену версію Chrome і попереджає, якщо вона нижча за Chrome 144
- нагадує ввімкнути віддалене налагодження на сторінці інспектування браузера (наприклад,
chrome://inspect/#remote-debugging,brave://inspect/#remote-debuggingабоedge://inspect/#remote-debugging)
- браузера на базі Chromium 144+ на хості gateway/node
- локально запущеного браузера
- увімкненого віддаленого налагодження в цьому браузері
- підтвердження першого запиту згоди на підключення в браузері
responsebody, експорт PDF, перехоплення завантажень і пакетні дії, все ще потребують керованого браузера або raw CDP profile.Ця перевірка не застосовується до Docker, sandbox, remote-browser або інших headless-потоків. Вони й надалі використовують raw CDP.2d. Передумови OAuth TLS
2d. Передумови OAuth TLS
UNABLE_TO_GET_ISSUER_CERT_LOCALLY, прострочений сертифікат або самопідписаний сертифікат), doctor виводить інструкції з виправлення для конкретної платформи. На macOS із Homebrew Node виправлення зазвичай таке: brew postinstall ca-certificates. З --deep перевірка виконується навіть тоді, коли gateway справний.2e. Перевизначення провайдера Codex OAuth
2e. Перевизначення провайдера Codex OAuth
models.providers.openai-codex, вони можуть затіняти вбудований шлях провайдера Codex OAuth, який новіші випуски використовують автоматично. Doctor попереджає, коли бачить ці старі транспортні налаштування разом із Codex OAuth, щоб ви могли видалити або переписати застаріле перевизначення транспорту й повернути вбудовану поведінку маршрутизації/резервування. Користувацькі proxy та перевизначення лише заголовків і далі підтримуються й не запускають це попередження.2f. Виправлення маршруту Codex
2f. Виправлення маршруту Codex
openai-codex/*. Нативна маршрутизація Codex harness використовує канонічні посилання на моделі openai/*; ходи агентів OpenAI проходять через Codex app-server harness замість шляху OpenClaw PI OpenAI.У режимі --fix / --repair doctor переписує зачеплені посилання типового агента й окремих агентів, зокрема основні моделі, резервні варіанти, перевизначення Heartbeat/subagent/Compaction, hooks, перевизначення моделей каналів і застарілий збережений стан маршруту сесії:openai-codex/gpt-*стаєopenai/gpt-*.- Намір Codex переноситься в записи
agentRuntime.id: "codex"на рівні провайдера/моделі для виправлених посилань на модель агента, щоб профілі авторизаціїopenai-codex:...і надалі можна було вибирати після того, як посилання на модель станеopenai/*. - Застаріла конфігурація runtime всього агента й збережені прив’язки runtime сесії видаляються, оскільки вибір runtime прив’язаний до провайдера/моделі.
- Наявна політика runtime провайдера/моделі зберігається, якщо тільки виправлене застаріле посилання на модель не потребує маршрутизації Codex, щоб зберегти старий шлях авторизації.
- Наявні списки резервних моделей зберігаються з переписаними застарілими записами; скопійовані налаштування для кожної моделі переміщуються із застарілого ключа до канонічного ключа
openai/*. - Збережені сесійні
modelProvider/providerOverride,model/modelOverride, повідомлення про fallback і прив’язки auth-profile виправляються в усіх виявлених сховищах сесій агентів. /codex ...означає «керувати або прив’язати нативну розмову Codex із чату»./acp ...абоruntime: "acp"означає «використовувати зовнішній адаптер ACP/acpx».
2g. Очищення маршруту сесії
2g. Очищення маршруту сесії
openclaw doctor --fix може очищати автоматично створений застарілий стан, як-от прив’язки моделей modelOverrideSource: "auto", метадані моделей runtime, закріплені ID harness, прив’язки сесій CLI та автоматичні перевизначення auth-profile, коли маршрут-власник більше не налаштовано. Явні користувацькі або застарілі вибори моделей сесії повідомляються для ручного перегляду й залишаються без змін; перемикайте їх через /model ..., /new або скидайте сесію, коли цей маршрут більше не планується використовувати.3. Міграції застарілого стану (структура диска)
3. Міграції застарілого стану (структура диска)
- Сховище сесій + транскрипти:
- з
~/.openclaw/sessions/до~/.openclaw/agents/<agentId>/sessions/
- з
- Каталог агента:
- з
~/.openclaw/agent/до~/.openclaw/agents/<agentId>/agent/
- з
- Стан авторизації WhatsApp (Baileys):
- із застарілих
~/.openclaw/credentials/*.json(крімoauth.json) - до
~/.openclaw/credentials/whatsapp/<accountId>/...(ID типового облікового запису:default)
- із застарілих
openclaw doctor. Нормалізація провайдера/мапи провайдерів Talk тепер порівнює за структурною рівністю, тож відмінності лише в порядку ключів більше не запускають повторні no-op зміни doctor --fix.3a. Міграції застарілого маніфесту Plugin
3a. Міграції застарілого маніфесту Plugin
speechProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, mediaUnderstandingProviders, imageGenerationProviders, videoGenerationProviders, webFetchProviders, webSearchProviders). Коли їх знайдено, він пропонує перемістити їх в об’єкт contracts і переписати файл маніфесту на місці. Ця міграція ідемпотентна; якщо ключ contracts уже має ті самі значення, застарілий ключ видаляється без дублювання даних.3b. Міграції застарілого сховища cron
3b. Міграції застарілого сховища cron
~/.openclaw/cron/jobs.json за замовчуванням або cron.store, якщо перевизначено) на старі форми завдань, які планувальник і досі приймає для сумісності.Поточні очищення cron включають:jobId→idschedule.cron→schedule.expr- поля payload верхнього рівня (
message,model,thinking, …) →payload - поля delivery верхнього рівня (
deliver,channel,to,provider, …) →delivery - delivery-аліаси
providerу payload → явнеdelivery.channel - прості застарілі fallback-завдання Webhook
notify: true→ явнеdelivery.mode="webhook"зdelivery.to=cron.webhook
notify: true, коли може зробити це без зміни поведінки. Якщо завдання поєднує застарілий fallback notify з наявним режимом доставки не через Webhook, doctor попереджає і залишає це завдання для ручного перегляду.У Linux doctor також попереджає, коли crontab користувача досі викликає застарілий ~/.openclaw/bin/ensure-whatsapp.sh. Цей локальний для хоста скрипт не підтримується поточним OpenClaw і може записувати хибні повідомлення Gateway inactive у ~/.openclaw/logs/whatsapp-health.log, коли cron не може дістатися до користувацької шини systemd. Видаліть застарілий запис crontab за допомогою crontab -e; використовуйте openclaw channels status --probe, openclaw doctor і openclaw gateway status для поточних перевірок стану.3c. Очищення блокувань сеансів
3c. Очищення блокувань сеансів
--fix / --repair він автоматично видаляє застарілі файли блокування; інакше друкує примітку й просить повторно запустити з --fix.3d. Відновлення гілки транскрипту сеансу
3d. Відновлення гілки транскрипту сеансу
--fix / --repair doctor створює резервну копію кожного зачепленого файлу поруч з оригіналом і переписує транскрипт на активну гілку, щоб історія Gateway та читачі пам’яті більше не бачили дубльовані ходи.4. Перевірки цілісності стану (збереження сеансів, маршрутизація та безпека)
4. Перевірки цілісності стану (збереження сеансів, маршрутизація та безпека)
- Каталог стану відсутній: попереджає про катастрофічну втрату стану, пропонує повторно створити каталог і нагадує, що не може відновити відсутні дані.
- Дозволи каталогу стану: перевіряє можливість запису; пропонує виправити дозволи (і виводить підказку
chown, коли виявлено невідповідність власника/групи). - Синхронізований із хмарою каталог стану macOS: попереджає, коли стан розміщується під iCloud Drive (
~/Library/Mobile Documents/com~apple~CloudDocs/...) або~/Library/CloudStorage/..., оскільки шляхи з синхронізацією можуть спричиняти повільніше I/O та гонки блокування/синхронізації. - Каталог стану Linux на SD або eMMC: попереджає, коли стан розміщується на джерелі монтування
mmcblk*, оскільки випадкове I/O на SD або eMMC може бути повільнішим і швидше зношувати носій під час запису сеансів та облікових даних. - Каталоги сеансів відсутні:
sessions/і каталог сховища сеансів потрібні для збереження історії та уникнення аварійENOENT. - Невідповідність транскрипту: попереджає, коли нещодавні записи сеансів мають відсутні файли транскриптів.
- Головний сеанс “1-line JSONL”: позначає випадок, коли головний транскрипт має лише один рядок (історія не накопичується).
- Кілька каталогів стану: попереджає, коли кілька папок
~/.openclawіснують у різних домашніх каталогах або колиOPENCLAW_STATE_DIRвказує в інше місце (історія може розділитися між інсталяціями). - Нагадування про віддалений режим: якщо
gateway.mode=remote, doctor нагадує запустити його на віддаленому хості (стан живе там). - Дозволи файлу конфігурації: попереджає, якщо
~/.openclaw/openclaw.jsonдоступний для читання групі/всім, і пропонує посилити дозволи до600.
5. Стан автентифікації моделей (закінчення OAuth)
5. Стан автентифікації моделей (закінчення OAuth)
--non-interactive пропускає спроби оновлення.Коли оновлення OAuth завершується остаточною помилкою (наприклад refresh_token_reused, invalid_grant або провайдер просить увійти знову), doctor повідомляє, що потрібна повторна автентифікація, і друкує точну команду openclaw models auth login --provider ..., яку треба виконати.Doctor також повідомляє про профілі автентифікації, що тимчасово непридатні через:- короткі періоди очікування (обмеження швидкості/таймаути/помилки автентифікації)
- довші вимкнення (помилки білінгу/кредитів)
6. Валідація моделі hooks
6. Валідація моделі hooks
hooks.gmail.model задано, doctor перевіряє посилання на модель за каталогом і allowlist та попереджає, коли воно не розв’язується або заборонене.7. Відновлення образу sandbox
7. Відновлення образу sandbox
7b. Очищення встановлення Plugin
7b. Очищення встановлення Plugin
openclaw doctor --fix / openclaw doctor --repair. Це охоплює застарілі згенеровані корені залежностей, старі каталоги етапу встановлення, локальне для пакета сміття з попереднього коду відновлення залежностей bundled-plugin, а також осиротілі або відновлені керовані npm-копії bundled @openclaw/* plugins, які можуть затіняти поточний bundled manifest. Doctor також повторно зв’язує хостовий пакет openclaw у керовані npm plugins, що оголошують peerDependencies.openclaw, щоб локальні runtime-імпорти пакета, як-от openclaw/plugin-sdk/*, продовжували розв’язуватися після оновлень або ремонтів npm.Doctor також може перевстановити відсутні завантажувані plugins, коли конфігурація посилається на них, але локальний реєстр plugin не може їх знайти. Приклади включають матеріальні plugins.entries, налаштовані параметри каналів/провайдерів/пошуку та налаштовані runtime агентів. Під час оновлень пакета doctor уникає запуску відновлення plugin через менеджер пакетів, доки основний пакет замінюється; запустіть openclaw doctor --fix ще раз після оновлення, якщо налаштований plugin досі потребує відновлення. Запуск Gateway і перезавантаження конфігурації не запускають менеджери пакетів; встановлення plugin залишаються явною роботою doctor/install/update.8. Міграції сервісу Gateway і підказки з очищення
8. Міграції сервісу Gateway і підказки з очищення
openclaw gateway status --deep або openclaw doctor --deep, потім видаліть дублікат або задайте OPENCLAW_SERVICE_REPAIR_POLICY=external, коли системний supervisor відповідає за життєвий цикл gateway.8b. Міграція Startup Matrix
8b. Міграція Startup Matrix
--fix / --repair) створює знімок перед міграцією, а потім запускає найкращі можливі кроки міграції: міграцію застарілого стану Matrix і підготовку застарілого зашифрованого стану. Обидва кроки не є фатальними; помилки записуються в журнал, а запуск продовжується. У режимі лише читання (openclaw doctor без --fix) ця перевірка повністю пропускається.8c. Сполучення пристроїв і дрейф автентифікації
8c. Сполучення пристроїв і дрейф автентифікації
- очікувані запити на перше сполучення
- очікувані підвищення ролі для вже сполучених пристроїв
- очікувані підвищення scope для вже сполучених пристроїв
- виправлення невідповідності публічного ключа, коли id пристрою все ще збігається, але ідентичність пристрою більше не відповідає затвердженому запису
- сполучені записи без активного токена для затвердженої ролі
- сполучені токени, чиї scope відхилилися за межі затвердженої базової лінії сполучення
- локальні кешовані записи device-token для поточної машини, що передують ротації токена на боці gateway або містять застарілі метадані scope
- перегляньте очікувані запити за допомогою
openclaw devices list - схваліть точний запит за допомогою
openclaw devices approve <requestId> - згенеруйте свіжий токен ротацією за допомогою
openclaw devices rotate --device <deviceId> --role <role> - видаліть і повторно схваліть застарілий запис за допомогою
openclaw devices remove <deviceId>
9. Попередження безпеки
9. Попередження безпеки
10. systemd linger (Linux)
10. systemd linger (Linux)
11. Стан робочого простору (Skills, plugins і застарілі каталоги)
11. Стан робочого простору (Skills, plugins і застарілі каталоги)
- Стан Skills: підраховує придатні, з відсутніми вимогами та заблоковані allowlist skills.
- Застарілі каталоги робочого простору: попереджає, коли
~/openclawабо інші застарілі каталоги робочого простору існують поруч із поточним робочим простором. - Стан Plugin: підраховує ввімкнені/вимкнені/з помилками plugins; перелічує ID plugin для будь-яких помилок; повідомляє можливості bundled plugin.
- Попередження сумісності Plugin: позначає plugins, що мають проблеми сумісності з поточним runtime.
- Діагностика Plugin: показує всі попередження або помилки часу завантаження, видані реєстром plugin.
11b. Розмір файлу bootstrap
11b. Розмір файлу bootstrap
AGENTS.md, CLAUDE.md або інші впроваджені файли контексту) близькі до налаштованого бюджету символів або перевищують його. Він повідомляє для кожного файлу сирі та впроваджені кількості символів, відсоток обрізання, причину обрізання (max/file або max/total) і загальну кількість впроваджених символів як частку від загального бюджету. Коли файли обрізано або вони близькі до ліміту, doctor друкує поради щодо налаштування agents.defaults.bootstrapMaxChars і agents.defaults.bootstrapTotalMaxChars.11d. Очищення застарілого plugin каналу
11d. Очищення застарілого plugin каналу
openclaw doctor --fix видаляє відсутній plugin каналу, він також видаляє висячу конфігурацію в області каналу, яка посилалася на цей plugin: записи channels.<id>, цілі Heartbeat, що називали канал, і перевизначення agents.*.models["<channel>/*"]. Це запобігає циклам запуску Gateway, коли runtime каналу зник, але конфігурація все ще просить gateway прив’язатися до нього.11c. Автодоповнення оболонки
11c. Автодоповнення оболонки
- Якщо профіль оболонки використовує повільний шаблон динамічного автодоповнення (
source <(openclaw completion ...)), doctor оновлює його до швидшого варіанта з кешованим файлом. - Якщо автодоповнення налаштоване в профілі, але файл кешу відсутній, doctor автоматично регенерує кеш.
- Якщо автодоповнення взагалі не налаштоване, doctor пропонує встановити його (лише в інтерактивному режимі; пропускається з
--non-interactive).
openclaw completion --write-state, щоб регенерувати кеш вручну.12. Перевірки автентифікації Gateway (локальний токен)
12. Перевірки автентифікації Gateway (локальний токен)
- Якщо режим токена потребує токен, а джерело токена відсутнє, doctor пропонує згенерувати його.
- Якщо
gateway.auth.tokenкерується SecretRef, але недоступний, doctor попереджає й не перезаписує його відкритим текстом. openclaw doctor --generate-gateway-tokenпримусово генерує токен лише тоді, коли не налаштовано токен SecretRef.
12b. Виправлення з урахуванням SecretRef лише для читання
12b. Виправлення з урахуванням SecretRef лише для читання
openclaw doctor --fixтепер використовує ту саму модель підсумку SecretRef лише для читання, що й команди сімейства status, для цільових виправлень конфігурації.- Приклад: виправлення Telegram
allowFrom/groupAllowFrom@usernameнамагається використати налаштовані облікові дані бота, коли вони доступні. - Якщо токен бота Telegram налаштований через SecretRef, але недоступний у поточному шляху команди, doctor повідомляє, що облікові дані налаштовані, але недоступні, і пропускає автоматичне визначення замість аварійного завершення або хибного повідомлення, що токен відсутній.
13. Перевірка стану Gateway + перезапуск
13. Перевірка стану Gateway + перезапуск
13b. Готовність пошуку в пам’яті
13b. Готовність пошуку в пам’яті
- Бекенд QMD: перевіряє, чи доступний і придатний до запуску бінарний файл
qmd. Якщо ні, виводить інструкції з виправлення, зокрема npm-пакет і варіант ручного шляху до бінарного файлу. - Явний локальний постачальник: перевіряє наявність локального файлу моделі або розпізнаної віддаленої/доступної для завантаження URL-адреси моделі. Якщо відсутня, пропонує перейти на віддаленого постачальника.
- Явний віддалений постачальник (
openai,voyageтощо): перевіряє, що ключ API присутній у середовищі або сховищі автентифікації. Виводить практичні підказки для виправлення, якщо його немає. - Автоматичний постачальник: спершу перевіряє доступність локальної моделі, потім пробує кожного віддаленого постачальника в порядку автоматичного вибору.
openclaw memory status --deep, щоб перевірити готовність ембедингів під час виконання.14. Попередження про статус каналу
14. Попередження про статус каналу
15. Аудит і виправлення конфігурації супервізора
15. Аудит і виправлення конфігурації супервізора
openclaw doctorзапитує підтвердження перед переписуванням конфігурації супервізора.openclaw doctor --yesприймає типові запити на виправлення.openclaw doctor --repairзастосовує рекомендовані виправлення без запитів.openclaw doctor --repair --forceперезаписує власні конфігурації супервізора.OPENCLAW_SERVICE_REPAIR_POLICY=externalзалишає doctor у режимі лише для читання для життєвого циклу служби Gateway. Він усе ще повідомляє стан служби й виконує виправлення, не пов’язані зі службою, але пропускає встановлення/запуск/перезапуск/bootstrap служби, переписування конфігурації супервізора й очищення застарілих служб, оскільки цим життєвим циклом керує зовнішній супервізор.- У Linux doctor не переписує метадані команди/точки входу, поки відповідний systemd-модуль Gateway активний. Він також ігнорує неактивні незастарілі додаткові модулі, схожі на Gateway, під час сканування дубльованих служб, щоб супровідні файли служб не створювали шум очищення.
- Якщо автентифікація токеном потребує токен і
gateway.auth.tokenкерується SecretRef, встановлення/виправлення служби doctor перевіряє SecretRef, але не зберігає розв’язані значення токена відкритим текстом у метаданих середовища служби супервізора. - Doctor виявляє значення середовища служби, керовані
.env/SecretRef, які старіші встановлення LaunchAgent, systemd або Windows Scheduled Task вбудовували inline, і переписує метадані служби так, щоб ці значення завантажувалися з джерела виконання, а не з визначення супервізора. - Doctor виявляє, коли команда служби все ще закріплює старий
--portпісля зміниgateway.port, і переписує метадані служби на поточний порт. - Якщо автентифікація токеном потребує токен, а налаштований токен SecretRef не розв’язується, doctor блокує шлях встановлення/виправлення з практичними інструкціями.
- Якщо налаштовані і
gateway.auth.token, іgateway.auth.password, аgateway.auth.modeне задано, doctor блокує встановлення/виправлення, доки режим не буде задано явно. - Для користувацьких systemd-модулів Linux перевірки розходження токенів doctor тепер враховують джерела
Environment=іEnvironmentFile=під час порівняння метаданих автентифікації служби. - Виправлення служби doctor відмовляються переписувати, зупиняти або перезапускати службу Gateway зі старішого бінарного файлу OpenClaw, коли конфігурацію востаннє записала новіша версія. Див. усунення несправностей Gateway.
- Ви завжди можете примусово виконати повне переписування через
openclaw gateway install --force.
16. Діагностика виконання Gateway + порту
16. Діагностика виконання Gateway + порту
18789) і повідомляє ймовірні причини (Gateway уже запущений, SSH-тунель).17. Найкращі практики виконання Gateway
17. Найкращі практики виконання Gateway
nvm, fnm, volta, asdf тощо). Канали WhatsApp + Telegram потребують Node, а шляхи менеджера версій можуть зламатися після оновлень, оскільки служба не завантажує ініціалізацію вашої оболонки. Doctor пропонує перейти на системне встановлення Node, коли воно доступне (Homebrew/apt/choco).Ново встановлені або відремонтовані macOS LaunchAgents використовують канонічний системний PATH (/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin) замість копіювання PATH інтерактивної оболонки, тож системні бінарні файли, керовані Homebrew, залишаються доступними, тоді як Volta, asdf, fnm, pnpm та інші каталоги менеджерів версій не змінюють, який Node розв’язують дочірні процеси. Служби Linux усе ще зберігають явні корені середовища (NVM_DIR, FNM_DIR, VOLTA_HOME, ASDF_DATA_DIR, BUN_INSTALL, PNPM_HOME) і стабільні каталоги користувацьких бінарних файлів, але припущені резервні каталоги менеджерів версій записуються в PATH служби лише тоді, коли ці каталоги існують на диску.18. Запис конфігурації + метадані майстра
18. Запис конфігурації + метадані майстра
19. Поради щодо робочої області (резервна копія + система пам’яті)
19. Поради щодо робочої області (резервна копія + система пам’яті)