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 to narzędzie naprawy i migracji dla OpenClaw. Naprawia nieaktualną konfigurację/stan, sprawdza kondycję i podaje praktyczne kroki naprawcze.
Szybki start
Tryby bez interfejsu i automatyzacji
- --yes
- --repair
- --repair --force
- --non-interactive
- --deep
Co robi (podsumowanie)
Health, UI, and updates
Health, UI, and updates
- Opcjonalna aktualizacja przed uruchomieniem dla instalacji git (tylko interaktywnie).
- Sprawdzenie aktualności protokołu UI (przebudowuje Control UI, gdy schemat protokołu jest nowszy).
- Sprawdzenie kondycji + monit o restart.
- Podsumowanie statusu Skills (kwalifikujące się/brakujące/zablokowane) i status Plugin.
Config and migrations
Config and migrations
- Normalizacja konfiguracji dla starszych wartości.
- Migracja konfiguracji Talk ze starszych płaskich pól
talk.*dotalk.provider+talk.providers.<provider>. - Sprawdzenia migracji przeglądarki dla starszych konfiguracji rozszerzenia Chrome i gotowości Chrome MCP.
- Ostrzeżenia o nadpisaniach dostawcy OpenCode (
models.providers.opencode/models.providers.opencode-go). - Ostrzeżenia o przesłanianiu OAuth Codex (
models.providers.openai-codex). - Sprawdzenie wymagań wstępnych TLS OAuth dla profili OAuth OpenAI Codex.
- Ostrzeżenia listy dozwolonych Plugin/narzędzi, gdy
plugins.allowjest restrykcyjne, ale polityka narzędzi nadal wymaga symbolu wieloznacznego lub narzędzi należących do Plugin. - Migracja starszego stanu na dysku (sesje/katalog agenta/autoryzacja WhatsApp).
- Migracja starszego klucza kontraktu manifestu Plugin (
speechProviders,realtimeTranscriptionProviders,realtimeVoiceProviders,mediaUnderstandingProviders,imageGenerationProviders,videoGenerationProviders,webFetchProviders,webSearchProviders→contracts). - Migracja starszego magazynu cron (
jobId,schedule.cron, pola najwyższego poziomu delivery/payload, payloadprovider, proste zadania awaryjne webhooknotify: true). - Czyszczenie starszej polityki uruchomieniowej całego agenta; polityka uruchomieniowa dostawcy/modelu jest aktywnym selektorem trasy.
- Czyszczenie nieaktualnej konfiguracji Plugin, gdy wtyczki są włączone; gdy
plugins.enabled=false, nieaktualne odwołania do Plugin są traktowane jako bezwładna konfiguracja izolacji i zachowywane.
State and integrity
State and integrity
- Inspekcja plików blokady sesji i czyszczenie nieaktualnych blokad.
- Naprawa transkryptów sesji dla zduplikowanych gałęzi przepisywania promptów utworzonych przez dotknięte kompilacje 2026.4.24.
- Wykrywanie tombstone’ów odzyskiwania po restarcie zablokowanego subagenta, z obsługą
--fixdo czyszczenia nieaktualnych przerwanych flag odzyskiwania, aby start nie traktował dalej procesu potomnego jako przerwanego przez restart. - Sprawdzenia integralności stanu i uprawnień (sesje, transkrypty, katalog stanu).
- Sprawdzenia uprawnień pliku konfiguracji (chmod 600) przy uruchomieniu lokalnym.
- Kondycja autoryzacji modelu: sprawdza wygaśnięcie OAuth, może odświeżać wygasające tokeny i raportuje stany cooldown/wyłączenia profilu autoryzacji.
- Wykrywanie dodatkowego katalogu workspace (
~/openclaw).
Gateway, services, and supervisors
Gateway, services, and supervisors
- Naprawa obrazu piaskownicy, gdy piaskownica jest włączona.
- Migracja starszej usługi i wykrywanie dodatkowych gatewayów.
- Migracja starszego stanu kanału Matrix (w trybie
--fix/--repair). - Sprawdzenia środowiska uruchomieniowego Gateway (usługa zainstalowana, ale niedziałająca; buforowana etykieta launchd).
- Ostrzeżenia statusu kanału (sprawdzane z działającego gatewaya).
- Sprawdzenia uprawnień specyficzne dla kanału znajdują się pod
openclaw channels capabilities; na przykład uprawnienia kanału głosowego Discord są audytowane przezopenclaw channels capabilities --channel discord --target channel:<channel-id>. - Sprawdzenia responsywności WhatsApp dla pogorszonej kondycji pętli zdarzeń Gateway przy nadal działających lokalnych klientach TUI;
--fixzatrzymuje tylko zweryfikowanych lokalnych klientów TUI. - Naprawa tras Codex dla starszych referencji modeli
openai-codex/*w modelach podstawowych, fallbackach, nadpisaniach Heartbeat/subagent/Compaction, hookach, nadpisaniach modeli kanałów i przypięciach tras sesji;--fixprzepisuje je naopenai/*, usuwa nieaktualne przypięcia uruchomieniowe sesji/całego agenta i pozostawia kanoniczne referencje agentów OpenAI na domyślnym harnessie Codex. - Audyt konfiguracji supervisora (launchd/systemd/schtasks) z opcjonalną naprawą.
- Czyszczenie środowiska osadzonego proxy dla usług gatewaya, które przechwyciły wartości shell
HTTP_PROXY/HTTPS_PROXY/NO_PROXYpodczas instalacji lub aktualizacji. - Sprawdzenia najlepszych praktyk środowiska uruchomieniowego Gateway (Node kontra Bun, ścieżki menedżera wersji).
- Diagnostyka kolizji portu Gateway (domyślnie
18789).
Auth, security, and pairing
Auth, security, and pairing
- Ostrzeżenia bezpieczeństwa dla otwartych polityk wiadomości prywatnych.
- Sprawdzenia autoryzacji Gateway dla trybu tokena lokalnego (oferuje generowanie tokena, gdy nie istnieje źródło tokena; nie nadpisuje konfiguracji tokenów SecretRef).
- Wykrywanie problemów z parowaniem urządzeń (oczekujące pierwsze żądania parowania, oczekujące podniesienia roli/zakresu, dryf nieaktualnej lokalnej pamięci podręcznej tokena urządzenia oraz dryf autoryzacji sparowanego rekordu).
Workspace and shell
Workspace and shell
- Sprawdzenie systemd linger w systemie Linux.
- Sprawdzenie rozmiaru pliku bootstrapu workspace (ostrzeżenia o obcięciu/bliskości limitu dla plików kontekstu).
- Sprawdzenie gotowości Skills dla domyślnego agenta; raportuje dozwolone umiejętności z brakującymi binariami, zmiennymi środowiskowymi, konfiguracją lub wymaganiami systemu operacyjnego, a
--fixmoże wyłączyć niedostępne umiejętności wskills.entries. - Sprawdzenie statusu uzupełniania powłoki oraz automatyczna instalacja/aktualizacja.
- Sprawdzenie gotowości dostawcy embeddingów wyszukiwania pamięci (model lokalny, klucz zdalnego API lub binarium QMD).
- Sprawdzenia instalacji ze źródeł (niezgodność workspace pnpm, brakujące zasoby UI, brakujące binarium tsx).
- Zapisuje zaktualizowaną konfigurację + metadane kreatora.
Uzupełnienie i reset UI Dreams
Scena Dreams w Control UI zawiera akcje Uzupełnij, Resetuj i Wyczyść ugruntowane dla przepływu pracy grounded dreaming. Te akcje używają metod RPC w stylu gateway doctor, ale nie są częścią naprawy/migracji CLIopenclaw doctor.
Co robią:
- Uzupełnij skanuje historyczne pliki
memory/YYYY-MM-DD.mdw aktywnym workspace, uruchamia przebieg ugruntowanego dziennika REM i zapisuje odwracalne wpisy uzupełnienia wDREAMS.md. - Resetuj usuwa z
DREAMS.mdtylko te oznaczone wpisy dziennika uzupełnienia. - Wyczyść ugruntowane usuwa tylko przygotowane krótkoterminowe wpisy wyłącznie ugruntowane, które pochodzą z historycznego odtworzenia i nie zgromadziły jeszcze żywego przypomnienia ani dziennego wsparcia.
- nie edytują
MEMORY.md - nie uruchamiają pełnych migracji doctor
- nie przygotowują automatycznie kandydatów ugruntowanych do aktywnego magazynu promocji krótkoterminowej, chyba że najpierw jawnie uruchomisz przygotowaną ścieżkę CLI
DREAMS.md jako powierzchnię przeglądu.
Szczegółowe zachowanie i uzasadnienie
0. Optional update (git installs)
0. Optional update (git installs)
1. Config normalization
1. Config normalization
messages.ackReaction bez nadpisania specyficznego dla kanału), doctor normalizuje je do bieżącego schematu.Obejmuje to starsze płaskie pola Talk. Bieżąca publiczna konfiguracja mowy Talk to talk.provider + talk.providers.<provider>, a konfiguracja głosu w czasie rzeczywistym to talk.realtime.*. Doctor przepisuje stare kształty talk.voiceId / talk.voiceAliases / talk.modelId / talk.outputFormat / talk.apiKey do mapy dostawców oraz przepisuje starsze selektory czasu rzeczywistego najwyższego poziomu (talk.mode, talk.transport, talk.brain, talk.model, talk.voice) do talk.realtime.Doctor ostrzega też, gdy plugins.allow nie jest puste, a polityka narzędzi używa
symbolu wieloznacznego lub wpisów narzędzi należących do Plugin. tools.allow: ["*"] pasuje tylko do narzędzi
z pluginów, które faktycznie się ładują; nie omija wyłącznej listy dozwolonych pluginów.
Doctor zapisuje plugins.bundledDiscovery: "compat" dla zmigrowanych
starszych konfiguracji list dozwolonych, aby zachować istniejące zachowanie dostawców wbudowanych, a
następnie wskazuje bardziej rygorystyczne ustawienie "allowlist".2. Legacy config key migrations
2. Legacy config key migrations
openclaw doctor.Doctor:- Wyjaśni, które starsze klucze znaleziono.
- Pokaże zastosowaną migrację.
- Przepisze
~/.openclaw/openclaw.jsonze zaktualizowanym schematem.
openclaw doctor --fix; nie przepisuje openclaw.json podczas startu. Migracje magazynu zadań Cron są również obsługiwane przez openclaw doctor --fix.Bieżące migracje: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- konfiguracje skonfigurowanych kanałów bez widocznej polityki odpowiedzi →
messages.groupChat.visibleReplies: "message_tool" routing.queue→messages.queuerouting.bindings→ najwyższego poziomubindingsrouting.agents/routing.defaultAgentId→agents.list+agents.list[].default- starsze
talk.voiceId/talk.voiceAliases/talk.modelId/talk.outputFormat/talk.apiKey→talk.provider+talk.providers.<provider> - starsze selektory Talk realtime najwyższego poziomu (
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"imessages.tts.providers.edge→messages.tts.provider: "microsoft"imessages.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"iplugins.entries.voice-call.config.tts.providers.edge→provider: "microsoft"iproviders.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- Dla kanałów z nazwanymi
accounts, ale z utrzymującymi się wartościami kanału najwyższego poziomu dla pojedynczego konta, przenieś te wartości o zakresie konta do promowanego konta wybranego dla tego kanału (accounts.defaultdla większości kanałów; Matrix może zachować istniejący pasujący nazwany/domyślny cel) 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- usuń
agents.defaults.llm; użyjmodels.providers.<id>.timeoutSecondsdla limitów czasu powolnych dostawców/modeli browser.ssrfPolicy.allowPrivateNetwork→browser.ssrfPolicy.dangerouslyAllowPrivateNetworkbrowser.profiles.*.driver: "extension"→"existing-session"- usuń
browser.relayBindHost(starsze ustawienie przekaźnika rozszerzenia) - starsze
models.providers.*.api: "openai"→"openai-completions"(uruchamianie Gateway pomija też dostawców, którychapijest ustawione na przyszłą lub nieznaną wartość enum, zamiast kończyć się błędem) - usuń
plugins.entries.codex.config.codexDynamicToolsProfile; serwer aplikacji Codex zawsze pozostawia narzędzia obszaru roboczego natywne dla Codex jako natywne
- Jeśli skonfigurowano co najmniej dwa wpisy
channels.<channel>.accountsbezchannels.<channel>.defaultAccountlubaccounts.default, doctor ostrzega, że trasowanie awaryjne może wybrać nieoczekiwane konto. - Jeśli
channels.<channel>.defaultAccountjest ustawione na nieznany identyfikator konta, doctor ostrzega i wyświetla skonfigurowane identyfikatory kont.
2b. Nadpisania dostawcy OpenCode
2b. Nadpisania dostawcy OpenCode
models.providers.opencode, opencode-zen lub opencode-go, nadpisuje to wbudowany katalog OpenCode z @earendil-works/pi-ai. Może to wymusić użycie niewłaściwego API przez modele albo wyzerować koszty. Doctor ostrzega, aby można było usunąć nadpisanie i przywrócić trasowanie API oraz koszty dla poszczególnych modeli.2c. Migracja przeglądarki i gotowość Chrome MCP
2c. Migracja przeglądarki i gotowość Chrome MCP
browser.profiles.*.driver: "extension"staje się"existing-session"browser.relayBindHostjest usuwane
defaultProfile: "user" lub skonfigurowanego profilu existing-session:- sprawdza, czy Google Chrome jest zainstalowany na tym samym hoście dla domyślnych profili automatycznego łączenia
- sprawdza wykrytą wersję Chrome i ostrzega, gdy jest niższa niż Chrome 144
- przypomina o włączeniu zdalnego debugowania na stronie inspekcji przeglądarki (na przykład
chrome://inspect/#remote-debugging,brave://inspect/#remote-debugginglubedge://inspect/#remote-debugging)
- przeglądarki opartej na Chromium 144+ na hoście gateway/node
- przeglądarki działającej lokalnie
- zdalnego debugowania włączonego w tej przeglądarce
- zatwierdzenia pierwszego monitu o zgodę na dołączenie w przeglądarce
responsebody, eksport PDF, przechwytywanie pobierania i akcje wsadowe, nadal wymagają zarządzanej przeglądarki lub profilu raw CDP.Ta kontrola nie dotyczy przepływów Docker, sandbox, remote-browser ani innych przepływów bezgłowych. One nadal używają raw CDP.2d. Wymagania wstępne OAuth TLS
2d. Wymagania wstępne OAuth TLS
UNABLE_TO_GET_ISSUER_CERT_LOCALLY, wygasły certyfikat lub certyfikat z podpisem własnym), doctor wyświetla wskazówki naprawy specyficzne dla platformy. W systemie macOS z Node z Homebrew poprawką jest zwykle brew postinstall ca-certificates. Z --deep sonda działa nawet wtedy, gdy Gateway jest sprawny.2e. Nadpisania dostawcy Codex OAuth
2e. Nadpisania dostawcy Codex OAuth
models.providers.openai-codex, mogą one przesłaniać wbudowaną ścieżkę dostawcy Codex OAuth, której nowsze wydania używają automatycznie. Doctor ostrzega, gdy widzi te stare ustawienia transportu obok Codex OAuth, aby można było usunąć lub przepisać przestarzałe nadpisanie transportu i odzyskać wbudowane zachowanie trasowania/awaryjne. Niestandardowe proxy i nadpisania obejmujące wyłącznie nagłówki są nadal obsługiwane i nie wyzwalają tego ostrzeżenia.2f. Naprawa tras Codex
2f. Naprawa tras Codex
openai-codex/*. Natywne trasowanie harnessa Codex używa kanonicznych referencji modeli openai/*; tury agenta OpenAI przechodzą przez harness serwera aplikacji Codex zamiast przez ścieżkę OpenClaw PI OpenAI.W trybie --fix / --repair doctor przepisuje objęte zmianą referencje agenta domyślnego i poszczególnych agentów, w tym modele podstawowe, fallbacki, nadpisania heartbeat/subagent/compaction, hooki, nadpisania modeli kanałów i przestarzały utrwalony stan trasy sesji:openai-codex/gpt-*staje sięopenai/gpt-*.- Intencja Codex przechodzi do wpisów
agentRuntime.id: "codex"o zakresie dostawcy/modelu dla naprawionych referencji modeli agentów, dzięki czemu profile authopenai-codex:...nadal mogą zostać wybrane po zmianie referencji modelu naopenai/*. - Przestarzała konfiguracja runtime całego agenta i utrwalone przypięcia runtime sesji są usuwane, ponieważ wybór runtime ma zakres dostawcy/modelu.
- Istniejąca polityka runtime dostawcy/modelu jest zachowywana, chyba że naprawiona starsza referencja modelu wymaga trasowania Codex, aby zachować starą ścieżkę auth.
- Istniejące listy fallbacków modeli są zachowywane z przepisanymi starszymi wpisami; skopiowane ustawienia dla poszczególnych modeli przechodzą ze starszego klucza do kanonicznego klucza
openai/*. - Utrwalone w sesji
modelProvider/providerOverride,model/modelOverride, powiadomienia o fallbackach i przypięcia profili auth są naprawiane we wszystkich wykrytych magazynach sesji agentów. /codex ...oznacza „kontroluj lub powiąż natywną konwersację Codex z czatu”./acp ...lubruntime: "acp"oznacza „użyj zewnętrznego adaptera ACP/acpx”.
2g. Czyszczenie tras sesji
2g. Czyszczenie tras sesji
openclaw doctor --fix może wyczyścić automatycznie utworzony przestarzały stan, taki jak przypięcia modeli modelOverrideSource: "auto", metadane modeli runtime, przypięte identyfikatory harnessów, powiązania sesji CLI i automatyczne nadpisania profili auth, gdy ich trasa właścicielska nie jest już skonfigurowana. Jawne wybory modeli użytkownika lub starszej sesji są zgłaszane do ręcznego przeglądu i pozostawiane bez zmian; przełącz je za pomocą /model ..., /new albo zresetuj sesję, gdy ta trasa nie jest już zamierzona.3. Migracje starszego stanu (układ dysku)
3. Migracje starszego stanu (układ dysku)
- Magazyn sesji + transkrypcje:
- z
~/.openclaw/sessions/do~/.openclaw/agents/<agentId>/sessions/
- z
- Katalog agenta:
- z
~/.openclaw/agent/do~/.openclaw/agents/<agentId>/agent/
- z
- Stan auth WhatsApp (Baileys):
- ze starszego
~/.openclaw/credentials/*.json(z wyjątkiemoauth.json) - do
~/.openclaw/credentials/whatsapp/<accountId>/...(domyślny identyfikator konta:default)
- ze starszego
doctor --fix.3a. Migracje starszych manifestów Pluginów
3a. Migracje starszych manifestów Pluginów
speechProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, mediaUnderstandingProviders, imageGenerationProviders, videoGenerationProviders, webFetchProviders, webSearchProviders). Gdy je znajdzie, oferuje przeniesienie ich do obiektu contracts i przepisanie pliku manifestu w miejscu. Ta migracja jest idempotentna; jeśli klucz contracts ma już te same wartości, starszy klucz jest usuwany bez duplikowania danych.3b. Migracje starszego magazynu cron
3b. Migracje starszego magazynu cron
~/.openclaw/cron/jobs.json domyślnie albo cron.store, gdy jest nadpisany) pod kątem starych kształtów zadań, które harmonogram nadal akceptuje dla zgodności.Bieżące czyszczenia cron obejmują:jobId→idschedule.cron→schedule.expr- pola ładunku najwyższego poziomu (
message,model,thinking, …) →payload - pola dostarczania najwyższego poziomu (
deliver,channel,to,provider, …) →delivery - aliasy dostarczania
providerw ładunku → jawnedelivery.channel - proste starsze zadania awaryjne Webhook
notify: true→ jawnedelivery.mode="webhook"zdelivery.to=cron.webhook
notify: true tylko wtedy, gdy może to zrobić bez zmiany zachowania. Jeśli zadanie łączy starszy awaryjny mechanizm powiadomień z istniejącym trybem dostarczania innym niż Webhook, doctor ostrzega i pozostawia to zadanie do ręcznego przeglądu.W systemie Linux doctor ostrzega też, gdy crontab użytkownika nadal wywołuje starszy skrypt ~/.openclaw/bin/ensure-whatsapp.sh. Ten lokalny dla hosta skrypt nie jest utrzymywany przez bieżący OpenClaw i może zapisywać fałszywe komunikaty Gateway inactive do ~/.openclaw/logs/whatsapp-health.log, gdy cron nie może połączyć się z magistralą użytkownika systemd. Usuń przestarzały wpis crontab za pomocą crontab -e; do bieżących kontroli kondycji używaj openclaw channels status --probe, openclaw doctor i openclaw gateway status.3c. Czyszczenie blokad sesji
3c. Czyszczenie blokad sesji
--fix / --repair automatycznie usuwa przestarzałe pliki blokad; w przeciwnym razie wypisuje notatkę i instruuje, aby uruchomić ponownie z --fix.3d. Naprawa gałęzi transkryptu sesji
3d. Naprawa gałęzi transkryptu sesji
--fix / --repair doctor tworzy kopię zapasową każdego dotkniętego pliku obok oryginału i przepisuje transkrypt do aktywnej gałęzi, aby historia gateway i czytniki pamięci nie widziały już zduplikowanych tur.4. Kontrole integralności stanu (utrwalanie sesji, routing i bezpieczeństwo)
4. Kontrole integralności stanu (utrwalanie sesji, routing i bezpieczeństwo)
- Brak katalogu stanu: ostrzega przed katastrofalną utratą stanu, prosi o ponowne utworzenie katalogu i przypomina, że nie może odzyskać brakujących danych.
- Uprawnienia katalogu stanu: weryfikuje możliwość zapisu; proponuje naprawę uprawnień (i emituje podpowiedź
chown, gdy wykryje niezgodność właściciela/grupy). - Katalog stanu synchronizowany z chmurą w macOS: ostrzega, gdy stan rozwiązuje się pod iCloud Drive (
~/Library/Mobile Documents/com~apple~CloudDocs/...) lub~/Library/CloudStorage/..., ponieważ ścieżki oparte na synchronizacji mogą powodować wolniejsze I/O oraz wyścigi blokad/synchronizacji. - Katalog stanu na SD lub eMMC w Linux: ostrzega, gdy stan rozwiązuje się do źródła montowania
mmcblk*, ponieważ losowe I/O oparte na SD lub eMMC może być wolniejsze i szybciej zużywać nośnik podczas zapisów sesji i poświadczeń. - Brak katalogów sesji:
sessions/i katalog magazynu sesji są wymagane do utrwalania historii i unikania awariiENOENT. - Niezgodność transkryptu: ostrzega, gdy niedawne wpisy sesji mają brakujące pliki transkryptów.
- Główna sesja „1-wierszowy JSONL”: zgłasza, gdy główny transkrypt ma tylko jeden wiersz (historia się nie akumuluje).
- Wiele katalogów stanu: ostrzega, gdy istnieje wiele folderów
~/.openclaww różnych katalogach domowych lub gdyOPENCLAW_STATE_DIRwskazuje gdzie indziej (historia może rozdzielić się między instalacje). - Przypomnienie o trybie zdalnym: jeśli
gateway.mode=remote, doctor przypomina, aby uruchomić go na zdalnym hoście (stan znajduje się tam). - Uprawnienia pliku konfiguracji: ostrzega, jeśli
~/.openclaw/openclaw.jsonjest czytelny dla grupy/świata, i proponuje zaostrzenie do600.
5. Kondycja uwierzytelniania modeli (wygaśnięcie OAuth)
5. Kondycja uwierzytelniania modeli (wygaśnięcie OAuth)
--non-interactive pomija próby odświeżenia.Gdy odświeżenie OAuth trwale się nie powiedzie (na przykład refresh_token_reused, invalid_grant albo dostawca każe zalogować się ponownie), doctor zgłasza, że wymagane jest ponowne uwierzytelnienie, i wypisuje dokładne polecenie openclaw models auth login --provider ... do uruchomienia.Doctor zgłasza też profile uwierzytelniania, które są tymczasowo nieużywalne z powodu:- krótkich okresów wyciszenia (limity szybkości/przekroczenia czasu/niepowodzenia uwierzytelniania)
- dłuższych wyłączeń (niepowodzenia rozliczeń/kredytów)
6. Walidacja modelu hooks
6. Walidacja modelu hooks
hooks.gmail.model, doctor waliduje referencję modelu względem katalogu i listy dozwolonych oraz ostrzega, gdy nie da się jej rozwiązać albo jest niedozwolona.7. Naprawa obrazu sandbox
7. Naprawa obrazu sandbox
7b. Czyszczenie instalacji Plugin
7b. Czyszczenie instalacji Plugin
openclaw doctor --fix / openclaw doctor --repair. Obejmuje to przestarzałe wygenerowane korzenie zależności, stare katalogi etapu instalacji, lokalne dla pakietu pozostałości po wcześniejszym kodzie naprawy zależności wbudowanych pluginów oraz osierocone lub odzyskane zarządzane kopie npm wbudowanych pluginów @openclaw/*, które mogą przesłaniać bieżący wbudowany manifest. Doctor ponownie dowiązuje też pakiet hosta openclaw do zarządzanych pluginów npm, które deklarują peerDependencies.openclaw, aby lokalne dla pakietu importy runtime, takie jak openclaw/plugin-sdk/*, nadal rozwiązywały się po aktualizacjach lub naprawach npm.Doctor może też ponownie zainstalować brakujące pobieralne pluginy, gdy konfiguracja się do nich odwołuje, ale lokalny rejestr pluginów nie może ich znaleźć. Przykłady obejmują materialne plugins.entries, skonfigurowane ustawienia kanałów/dostawców/wyszukiwania oraz skonfigurowane runtime agentów. Podczas aktualizacji pakietów doctor unika uruchamiania naprawy pluginów przez menedżera pakietów, gdy pakiet core jest podmieniany; uruchom ponownie openclaw doctor --fix po aktualizacji, jeśli skonfigurowany Plugin nadal wymaga odzyskania. Uruchamianie Gateway i przeładowanie konfiguracji nie uruchamiają menedżerów pakietów; instalacje pluginów pozostają jawną pracą doctor/install/update.8. Migracje usługi Gateway i wskazówki czyszczenia
8. Migracje usługi Gateway i wskazówki czyszczenia
openclaw gateway status --deep lub openclaw doctor --deep, a następnie usuń duplikat albo ustaw OPENCLAW_SERVICE_REPAIR_POLICY=external, gdy zewnętrzny nadzorca systemowy odpowiada za cykl życia Gateway.8b. Migracja uruchomieniowa Matrix
8b. Migracja uruchomieniowa Matrix
--fix / --repair) tworzy migawkę przed migracją, a następnie uruchamia najlepsze możliwe kroki migracji: migrację starszego stanu Matrix i przygotowanie starszego zaszyfrowanego stanu. Oba kroki nie są krytyczne; błędy są logowane, a uruchamianie trwa dalej. W trybie tylko do odczytu (openclaw doctor bez --fix) ta kontrola jest całkowicie pomijana.8c. Parowanie urządzeń i dryf uwierzytelniania
8c. Parowanie urządzeń i dryf uwierzytelniania
- oczekujące żądania pierwszego parowania
- oczekujące podniesienia roli dla już sparowanych urządzeń
- oczekujące podniesienia zakresu dla już sparowanych urządzeń
- naprawy niezgodności klucza publicznego, gdy identyfikator urządzenia nadal pasuje, ale tożsamość urządzenia nie pasuje już do zatwierdzonego rekordu
- sparowane rekordy bez aktywnego tokena dla zatwierdzonej roli
- sparowane tokeny, których zakresy odbiegają od zatwierdzonej bazowej konfiguracji parowania
- lokalnie buforowane wpisy tokenów urządzenia dla bieżącej maszyny, które poprzedzają rotację tokena po stronie gateway lub zawierają przestarzałe metadane zakresu
- sprawdź oczekujące żądania za pomocą
openclaw devices list - zatwierdź dokładne żądanie za pomocą
openclaw devices approve <requestId> - zrotuj świeży token za pomocą
openclaw devices rotate --device <deviceId> --role <role> - usuń i ponownie zatwierdź przestarzały rekord za pomocą
openclaw devices remove <deviceId>
9. Ostrzeżenia bezpieczeństwa
9. Ostrzeżenia bezpieczeństwa
10. systemd linger (Linux)
10. systemd linger (Linux)
11. Stan obszaru roboczego (Skills, pluginy i starsze katalogi)
11. Stan obszaru roboczego (Skills, pluginy i starsze katalogi)
- Stan Skills: zlicza Skills kwalifikujące się, z brakującymi wymaganiami i blokowane przez listę dozwolonych.
- Starsze katalogi obszaru roboczego: ostrzega, gdy
~/openclawlub inne starsze katalogi obszaru roboczego istnieją obok bieżącego obszaru roboczego. - Stan Plugin: zlicza włączone/wyłączone/błędne pluginy; wypisuje identyfikatory pluginów dla wszelkich błędów; zgłasza możliwości pluginów z pakietu.
- Ostrzeżenia zgodności Plugin: wskazuje pluginy, które mają problemy ze zgodnością z bieżącym runtime.
- Diagnostyka Plugin: ujawnia wszelkie ostrzeżenia lub błędy z czasu ładowania emitowane przez rejestr pluginów.
11b. Rozmiar pliku bootstrap
11b. Rozmiar pliku bootstrap
AGENTS.md, CLAUDE.md lub inne wstrzykiwane pliki kontekstu) są blisko skonfigurowanego budżetu znaków albo go przekraczają. Zgłasza dla każdego pliku liczbę znaków surowych względem wstrzykniętych, procent obcięcia, przyczynę obcięcia (max/file lub max/total) oraz łączną liczbę wstrzykniętych znaków jako ułamek całkowitego budżetu. Gdy pliki są obcięte lub blisko limitu, doctor wypisuje wskazówki dotyczące dostrajania agents.defaults.bootstrapMaxChars i agents.defaults.bootstrapTotalMaxChars.11d. Czyszczenie przestarzałego Plugin kanału
11d. Czyszczenie przestarzałego Plugin kanału
openclaw doctor --fix usuwa brakujący Plugin kanału, usuwa też wiszącą konfigurację o zakresie kanału, która odwoływała się do tego Plugin: wpisy channels.<id>, cele Heartbeat nazwane kanałem oraz nadpisania agents.*.models["<channel>/*"]. Zapobiega to pętlom rozruchowym Gateway, w których runtime kanału zniknął, ale konfiguracja nadal każe gateway powiązać się z nim.11c. Uzupełnianie powłoki
11c. Uzupełnianie powłoki
- Jeśli profil powłoki używa powolnego wzorca dynamicznego uzupełniania (
source <(openclaw completion ...)), narzędzie doctor aktualizuje go do szybszego wariantu z plikiem w pamięci podręcznej. - Jeśli uzupełnianie jest skonfigurowane w profilu, ale brakuje pliku pamięci podręcznej, narzędzie doctor automatycznie regeneruje pamięć podręczną.
- Jeśli uzupełnianie nie jest w ogóle skonfigurowane, narzędzie doctor pyta o jego instalację (tylko tryb interaktywny; pomijane z
--non-interactive).
openclaw completion --write-state, aby ręcznie zregenerować pamięć podręczną.12. Kontrole uwierzytelniania Gateway (token lokalny)
12. Kontrole uwierzytelniania Gateway (token lokalny)
- Jeśli tryb tokenu wymaga tokenu i nie istnieje żadne źródło tokenu, narzędzie doctor proponuje jego wygenerowanie.
- Jeśli
gateway.auth.tokenjest zarządzany przez SecretRef, ale niedostępny, narzędzie doctor ostrzega i nie nadpisuje go tekstem jawnym. openclaw doctor --generate-gateway-tokenwymusza generowanie tylko wtedy, gdy nie skonfigurowano tokenu SecretRef.
12b. Naprawy tylko do odczytu świadome SecretRef
12b. Naprawy tylko do odczytu świadome SecretRef
openclaw doctor --fixużywa teraz tego samego modelu podsumowania SecretRef tylko do odczytu co polecenia z rodziny statusu na potrzeby ukierunkowanych napraw konfiguracji.- Przykład: naprawa Telegram
allowFrom/groupAllowFrom@usernamepróbuje użyć skonfigurowanych danych uwierzytelniających bota, gdy są dostępne. - Jeśli token bota Telegram jest skonfigurowany przez SecretRef, ale niedostępny w bieżącej ścieżce polecenia, narzędzie doctor zgłasza, że dane uwierzytelniające są skonfigurowane, ale niedostępne, i pomija automatyczne rozwiązywanie zamiast ulegać awarii albo błędnie zgłaszać brak tokenu.
13. Kontrola kondycji Gateway + restart
13. Kontrola kondycji Gateway + restart
13b. Gotowość wyszukiwania pamięci
13b. Gotowość wyszukiwania pamięci
- Backend QMD: sprawdza, czy plik binarny
qmdjest dostępny i można go uruchomić. Jeśli nie, drukuje wskazówki naprawy obejmujące pakiet npm i opcję ręcznej ścieżki do pliku binarnego. - Jawny dostawca lokalny: sprawdza lokalny plik modelu albo rozpoznany zdalny/pobieralny adres URL modelu. Jeśli go brakuje, sugeruje przełączenie na dostawcę zdalnego.
- Jawny dostawca zdalny (
openai,voyageitd.): weryfikuje, czy klucz API jest obecny w środowisku lub magazynie uwierzytelniania. Drukuje praktyczne wskazówki naprawy, jeśli go brakuje. - Dostawca automatyczny: najpierw sprawdza dostępność modelu lokalnego, a następnie próbuje kolejno każdego dostawcy zdalnego w kolejności automatycznego wyboru.
openclaw memory status --deep, aby zweryfikować gotowość osadzania w czasie wykonywania.14. Ostrzeżenia o statusie kanałów
14. Ostrzeżenia o statusie kanałów
15. Audyt konfiguracji nadzorcy + naprawa
15. Audyt konfiguracji nadzorcy + naprawa
openclaw doctorpyta przed przepisaniem konfiguracji nadzorcy.openclaw doctor --yesakceptuje domyślne monity naprawy.openclaw doctor --repairstosuje zalecane poprawki bez monitów.openclaw doctor --repair --forcenadpisuje niestandardowe konfiguracje nadzorcy.OPENCLAW_SERVICE_REPAIR_POLICY=externalutrzymuje narzędzie doctor w trybie tylko do odczytu dla cyklu życia usługi Gateway. Nadal zgłasza kondycję usługi i uruchamia naprawy niezwiązane z usługą, ale pomija instalację/uruchomienie/restart/bootstrap usługi, przepisywanie konfiguracji nadzorcy i czyszczenie starszych usług, ponieważ zewnętrzny nadzorca jest właścicielem tego cyklu życia.- W systemie Linux narzędzie doctor nie przepisuje metadanych polecenia/punktu wejścia, gdy zgodna jednostka systemd Gateway jest aktywna. Ignoruje także nieaktywne dodatkowe jednostki podobne do Gateway, które nie są starszymi jednostkami, podczas skanowania zduplikowanych usług, aby pliki usług towarzyszących nie generowały szumu czyszczenia.
- Jeśli uwierzytelnianie tokenem wymaga tokenu, a
gateway.auth.tokenjest zarządzany przez SecretRef, instalacja/naprawa usługi przez narzędzie doctor weryfikuje SecretRef, ale nie utrwala rozwiązanych wartości tokenu w tekście jawnym w metadanych środowiska usługi nadzorcy. - Narzędzie doctor wykrywa zarządzane wartości środowiska usługi oparte na
.env/SecretRef, które starsze instalacje LaunchAgent, systemd lub Windows Scheduled Task osadzały inline, i przepisuje metadane usługi tak, aby te wartości były ładowane ze źródła czasu wykonywania zamiast z definicji nadzorcy. - Narzędzie doctor wykrywa, gdy polecenie usługi nadal przypina stary
--portpo zmianachgateway.port, i przepisuje metadane usługi na bieżący port. - Jeśli uwierzytelnianie tokenem wymaga tokenu, a skonfigurowany token SecretRef jest nierozwiązany, narzędzie doctor blokuje ścieżkę instalacji/naprawy z praktycznymi wskazówkami.
- Jeśli skonfigurowano zarówno
gateway.auth.token, jak igateway.auth.password, agateway.auth.modenie jest ustawiony, narzędzie doctor blokuje instalację/naprawę do czasu jawnego ustawienia trybu. - Dla jednostek Linux user-systemd kontrole dryfu tokenu narzędzia doctor obejmują teraz zarówno źródła
Environment=, jak iEnvironmentFile=podczas porównywania metadanych uwierzytelniania usługi. - Naprawy usług przez narzędzie doctor odmawiają przepisania, zatrzymania lub ponownego uruchomienia usługi Gateway ze starszego pliku binarnego OpenClaw, gdy konfiguracja została ostatnio zapisana przez nowszą wersję. Zobacz rozwiązywanie problemów z Gateway.
- Zawsze możesz wymusić pełne przepisanie za pomocą
openclaw gateway install --force.
16. Diagnostyka czasu wykonywania Gateway + portu
16. Diagnostyka czasu wykonywania Gateway + portu
18789) i zgłasza prawdopodobne przyczyny (Gateway już działa, tunel SSH).17. Najlepsze praktyki czasu wykonywania Gateway
17. Najlepsze praktyki czasu wykonywania Gateway
nvm, fnm, volta, asdf itd.). Kanały WhatsApp + Telegram wymagają Node, a ścieżki menedżerów wersji mogą przestać działać po aktualizacjach, ponieważ usługa nie ładuje inicjalizacji powłoki. Narzędzie doctor proponuje migrację do systemowej instalacji Node, gdy jest dostępna (Homebrew/apt/choco).Nowo zainstalowane lub naprawione macOS LaunchAgents używają kanonicznego systemowego PATH (/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin) zamiast kopiowania PATH interaktywnej powłoki, więc systemowe pliki binarne zarządzane przez Homebrew pozostają dostępne, podczas gdy Volta, asdf, fnm, pnpm i inne katalogi menedżerów wersji nie zmieniają tego, który Node jest rozwiązywany przez procesy potomne. Usługi Linux nadal zachowują jawne korzenie środowiska (NVM_DIR, FNM_DIR, VOLTA_HOME, ASDF_DATA_DIR, BUN_INSTALL, PNPM_HOME) i stabilne katalogi binarne użytkownika, ale odgadywane katalogi zapasowe menedżerów wersji są zapisywane do PATH usługi tylko wtedy, gdy te katalogi istnieją na dysku.18. Zapis konfiguracji + metadane kreatora
18. Zapis konfiguracji + metadane kreatora
19. Wskazówki dotyczące obszaru roboczego (kopia zapasowa + system pamięci)
19. Wskazówki dotyczące obszaru roboczego (kopia zapasowa + system pamięci)