openclaw doctor ist das Reparatur- und Migrationstool für OpenClaw. Es behebt veraltete Konfigurationen und Zustände, prüft den Systemzustand und stellt umsetzbare Reparaturschritte bereit.
Schnellstart
Headless- und Automatisierungsmodi
- --yes
- --fix
- --lint
- --fix --force
- --non-interactive
- --deep
Schreibgeschützter Lint-Modus
openclaw doctor --lint ist das automatisierungsfreundliche Gegenstück zu
openclaw doctor --fix. Beide verwenden dieselbe Doctor-Regelregistrierung, wählen
Regeln jedoch nicht auf dieselbe Weise aus und führen sie nicht auf dieselbe Weise aus:
doctor --lint verwendet das umfassende und sichere Automatisierungsprofil: Prüfungen, die
statisch und lokal sowie für CI- oder Preflight-Ausgaben nützlich sind. Opt-in-Prüfungen werden übersprungen, wenn sie
nur empfehlenden Charakter haben, von der Umgebung abhängen, von einem aktiven Dienst abhängen, den Konto-/Workspace-
Bestand betreffen oder historische Bereinigungen durchführen. Verwenden Sie doctor --lint --all, wenn Sie das
vollständige registrierte Lint-Audit einschließlich dieser Opt-in-Prüfungen wünschen, oder --only <id> für
eine gezielte Prüfung.
doctor --fix verwendet nicht das standardmäßige Lint-Profil und akzeptiert
--all nicht. Es führt den geordneten Reparaturpfad von Doctor aus: Moderne Systemzustandsprüfungen können
eine optionale repair()-Implementierung bereitstellen, während ältere Bereiche weiterhin ihren bisherigen
Doctor-Reparaturablauf verwenden. Einige Lint-Befunde dienen absichtlich nur der Diagnose. Daher bedeutet eine
in --lint --all enthaltene Prüfung nicht, dass --fix diesen Bereich verändert.
Der Vertrag trennt detect() (meldet Befunde) von repair() (meldet
Änderungen/Diffs/Nebenwirkungen). Dadurch bleibt ein Pfad für ein zukünftiges
doctor --fix --dry-run offen, ohne Lint-Prüfungen in Änderungsplaner umzuwandeln.
Einige integrierte Prüfungen sind intern standardmäßig deaktiviert, damit sie für
--all, --only und Doctor-Reparaturabläufe verfügbar bleiben, ohne Teil des standardmäßigen
doctor --lint-Automatisierungsprofils zu werden. Der Schweregrad wird weiterhin für jeden
Befund ausgegeben (info, warning oder error); die Standardauswahl ist keine
Schweregradstufe.
ok: ob ein Befund den ausgewählten Schweregradschwellenwert erreicht hatchecksRun/checksSkipped: Anzahlen (übersprungen aufgrund des Profils,--onlyoder--skip)findings: strukturierte Diagnosen mitcheckId,severity,messageund optionalpath,line,column,ocPath,source,target,requirement,fixHint
--severity-min info|warning|error(Standardwertwarning): steuert sowohl die Ausgabe als auch, was einen Exit-Code ungleich null verursacht.--all: führt jede registrierte Lint-Prüfung aus, einschließlich Opt-in-Prüfungen, die nicht in der standardmäßigen Automatisierungsgruppe enthalten sind.--only <id>(wiederholbar): nur die benannten Prüfungs-IDs ausführen; eine unbekannte ID wird als Fehlerbefund gemeldet.--skip <id>(wiederholbar): eine Prüfung ausschließen, während der restliche Lauf aktiv bleibt.--json,--severity-min,--all,--onlyund--skiperfordern--lint; einfache Läufe vonopenclaw doctorund--fixlehnen sie ab.
Funktionsübersicht
Systemzustand, Benutzeroberfläche und Updates
Systemzustand, Benutzeroberfläche und Updates
- Optionale Preflight-Aktualisierung für Git-Installationen (nur interaktiv).
- Prüfung der Aktualität des UI-Protokolls (erstellt die Control UI neu, wenn das Protokollschema neuer ist).
- Systemzustandsprüfung + Aufforderung zum Neustart.
- Nur problembezogene Hinweise zu Skills und Plugins; der fehlerfreie Bestand verbleibt in
openclaw skills checkundopenclaw plugins list.
Konfiguration und Migrationen
Konfiguration und Migrationen
- Konfigurationsnormalisierung für veraltete Wertstrukturen.
- Migration der Talk-Konfiguration von veralteten flachen
talk.*-Feldern zutalk.provider+talk.providers.<provider>. - Browser-Migrationsprüfungen für veraltete Chrome-Erweiterungskonfigurationen und die Bereitschaft von Chrome MCP.
- Warnungen zu Provider-Überschreibungen für OpenCode (
models.providers.opencode/opencode-zen/opencode-go). - Migration veralteter OpenAI-Codex-Provider/-Profile (
openai-codex→openai) und Warnungen vor Überschattung durch veraltetemodels.providers.openai-codex. - Prüfung der OAuth-TLS-Voraussetzungen für OpenAI-Codex-OAuth-Profile.
- Warnungen zur Plugin-/Tool-Zulassungsliste, wenn
plugins.allowrestriktiv ist, die Tool-Richtlinie aber weiterhin Platzhalter oder Plugin-eigene Tools anfordert. - Migration veralteter Zustände auf dem Datenträger (Sitzungen/Agentenverzeichnis/WhatsApp-Authentifizierung).
- Migration veralteter Vertragsschlüssel im Plugin-Manifest (
speechProviders,realtimeTranscriptionProviders,realtimeVoiceProviders,mediaUnderstandingProviders,imageGenerationProviders,videoGenerationProviders,webFetchProviders,webSearchProviders→contracts). - Migration des veralteten Cron-Speichers (
jobId,schedule.cron, Zustellungs-/Nutzlastfelder auf oberster Ebene, Nutzlastprovider,notify: true-Webhook-Fallback-Aufträge). - Reparatur der Codex-CLI-Laufzeitfixierung (
agentRuntime.id: "codex-cli"→"codex") inagents.defaults,agents.entries.*undmodels.providers.*(einschließlich modellspezifischer Einträge). - Bereinigung veralteter Plugin-Konfigurationen, wenn Plugins aktiviert sind; bei
plugins.enabled=falsebleiben veraltete Plugin-Referenzen als inaktive Eindämmungskonfiguration erhalten.
Zustand und Integrität
Zustand und Integrität
- Prüfung von Sitzungssperrdateien und Bereinigung veralteter Sperren.
- Reparatur von Sitzungsprotokollen mit duplizierten Prompt-Umschreibungszweigen, die von betroffenen Builds der Version 2026.4.24 erstellt wurden.
- Erkennung von Tombstones zur Neustartwiederherstellung für blockierte Hauptsitzungen und Subagenten. Doctor meldet die blockierten Sitzungen und repariert nur veraltete Abbruch-Flags, die einem vorhandenen Tombstone widersprechen; die automatische Wiederherstellung wird nicht erneut aktiviert.
- Prüfungen von Zustandsintegrität und Berechtigungen (Sitzungen, Protokolle, Zustandsverzeichnis).
- Prüfungen der Berechtigungen der Konfigurationsdatei (chmod 600) bei lokaler Ausführung.
- Systemzustand der Modellauthentifizierung: prüft den OAuth-Ablauf, kann bald ablaufende Token aktualisieren und meldet Abkling-/Deaktivierungszustände von Authentifizierungsprofilen.
Gateway, Dienste und Supervisoren
Gateway, Dienste und Supervisoren
- Reparatur des Sandbox-Images, wenn Sandboxing aktiviert ist.
- Migration veralteter Dienste und Erkennung zusätzlicher Gateways.
- Migration des veralteten Matrix-Kanalzustands (im Modus
--fix/--repair). - Gateway-Laufzeitprüfungen (Dienst installiert, aber nicht aktiv; zwischengespeichertes launchd-Label).
- Warnungen zum Kanalstatus (vom laufenden Gateway abgefragt).
- Kanalspezifische Berechtigungsprüfungen befinden sich unter
openclaw channels capabilities; beispielsweise werden Discord-Sprachkanalberechtigungen mitopenclaw channels capabilities --channel discord --target channel:<channel-id>geprüft. - Prüfungen der WhatsApp-Reaktionsfähigkeit bei beeinträchtigtem Zustand der Gateway-Ereignisschleife, während lokale TUI-Clients noch ausgeführt werden;
--fixbeendet nur verifizierte lokale TUI-Clients. - Reparatur von Codex-Routen für veraltete
openai-codex/*-Modellreferenzen in primären Modellen, Fallbacks, Bild-/Videogenerierungsmodellen, Heartbeat-/Subagenten-/Compaction-Überschreibungen, Hooks, Kanalmodellüberschreibungen und Sitzungsroutenfixierungen;--fixschreibt sie zuopenai/*um, migriertopenai-codex:*-Authentifizierungsprofile/-Reihenfolge zuopenai:*, entfernt veraltete Laufzeitfixierungen für Sitzungen/gesamte Agenten und lässt die reparierte effektive Route bestimmen, ob Codex kompatibel ist. - Audit der Supervisor-Konfiguration (launchd/systemd/schtasks) mit optionaler Reparatur.
- Bereinigung eingebetteter Proxy-Umgebungen für Gateway-Dienste, die während der Installation oder Aktualisierung Shell-Werte für
HTTP_PROXY/HTTPS_PROXY/NO_PROXYübernommen haben. - Gateway-Laufzeitprüfungen (nicht unterstützte veraltete Bun-Dienste, Pfade von Versionsmanagern).
- Diagnose von Gateway-Portkonflikten (Standardwert
18789).
Authentifizierung, Sicherheit und Kopplung
Authentifizierung, Sicherheit und Kopplung
- Sicherheitswarnungen bei offenen DM-Richtlinien.
- Gateway-Authentifizierungsprüfungen für den lokalen Token-Modus (bietet die Token-Generierung an, wenn keine Token-Quelle vorhanden ist; überschreibt keine Token-SecretRef-Konfigurationen).
- Erkennung von Problemen bei der Gerätekopplung (ausstehende erstmalige Kopplungsanfragen, ausstehende Rollen-/Bereichserweiterungen, Abweichungen in veralteten lokalen Geräte-Token-Caches und Authentifizierungsabweichungen in Kopplungsdatensätzen).
Workspace und Shell
Workspace und Shell
- Prüfung von systemd-Linger unter Linux.
- Prüfung der Größe von Workspace-Bootstrap-Dateien (Warnungen bei Kürzung oder Annäherung an das Limit für Kontextdateien).
- Bereitschaftsprüfung der Skills für den Standardagenten; meldet zulässige Skills, bei denen Binärdateien, Umgebung, Konfiguration oder Betriebssystemanforderungen fehlen, und
--fixkann nicht verfügbare Skills inskills.entriesdeaktivieren. - Statusprüfung der Shell-Vervollständigung und automatische Installation/Aktualisierung.
- Bereitschaftsprüfung des Embedding-Providers für die Speichersuche (lokales Modell, Remote-API-Schlüssel oder QMD-Binärdatei).
- Prüfungen der Quellinstallation (Abweichung im pnpm-Workspace, fehlende UI-Assets, fehlende tsx-Binärdatei).
- Schreibt aktualisierte Konfiguration + Assistentenmetadaten.
Nachträgliche Befüllung und Zurücksetzung der Dreams-Benutzeroberfläche
Die Dreams-Szene der Control UI enthält die Aktionen Backfill, Reset und Clear Grounded für den Grounded-Dreaming-Workflow. Diese verwenden RPC-Methoden im Stil des Gateway-Doctors, sind jedoch nicht Teil der CLI-Reparatur/Migration vonopenclaw doctor.
MEMORY.md, führt vollständige Doctor-Migrationen aus oder stellt eigenständig Grounded-Kandidaten im Live-Speicher für die Kurzzeit-Promotion bereit. Um eine historische Grounded-Wiedergabe in den normalen Deep-Promotion-Pfad einzuspeisen, verwenden Sie stattdessen den CLI-Ablauf:
DREAMS.md die Prüfoberfläche bleibt.
Detailliertes Verhalten und Begründung
0. Optionale Aktualisierung (Git-Installationen)
0. Optionale Aktualisierung (Git-Installationen)
1. Konfigurationsnormalisierung
1. Konfigurationsnormalisierung
talk.provider + talk.providers.<provider>, wobei sich die Echtzeit-Sprachkonfiguration unter talk.realtime.* befindet. Doctor überführt alte Strukturen von talk.voiceId / talk.voiceAliases / talk.modelId / talk.outputFormat / talk.apiKey in die Provider-Zuordnung und überführt veraltete Echtzeit-Selektoren auf oberster Ebene (talk.mode, talk.transport, talk.brain, talk.model, talk.voice) in talk.realtime.Doctor warnt außerdem, wenn plugins.allow nicht leer ist und die Tool-Richtlinie Platzhalter- oder Plugin-eigene Tool-Einträge verwendet. tools.allow: ["*"] stimmt nur mit Tools aus tatsächlich geladenen Plugins überein; die exklusive Plugin-Zulassungsliste wird dadurch nicht umgangen.2. Migrationen veralteter Konfigurationsschlüssel
2. Migrationen veralteter Konfigurationsschlüssel
openclaw doctor auszuführen. Doctor erläutert, welche veralteten Schlüssel gefunden wurden, zeigt die angewendete Migration an und schreibt ~/.openclaw/openclaw.json mit dem aktualisierten Schema neu. Der Gateway-Start verweigert veraltete Konfigurationsformate und fordert Sie auf, openclaw doctor --fix auszuführen; openclaw.json wird beim Start nicht neu geschrieben. Migrationen des Cron-Auftragsspeichers werden ebenfalls von openclaw doctor --fix verarbeitet.routing.queue, routing.bindings,
routing.agents/defaultAgentId, routing.transcribeAudio,
agent.* auf oberster Ebene oder identity auf oberster
Ebene aus der Konfigurationsstruktur vor der Multi-Agent-Unterstützung)
gibt es keinen Migrationspfad mehr; Konfigurationen, die sie verwenden,
schlagen nun bei der Validierung fehl, statt neu geschrieben zu werden.
Korrigieren Sie diese Schlüssel anhand der aktuellen Konfigurationsreferenz
manuell, bevor Doctor fortfahren kann.plugins.entries.voice-call.config.*-Zeilen werden bei jedem Laden der Konfiguration vom
Voice-Call-Plugin selbst normalisiert, nicht von openclaw doctor. Das Plugin protokolliert außerdem beim Start eine Warnung, die auf openclaw doctor --fix verweist, aber Doctor schreibt
openclaw.json für diese Schlüssel derzeit nicht neu; die eigene Normalisierung des Plugins
wendet die Änderung zur Laufzeit an.- Wenn zwei oder mehr
channels.<channel>.accounts-Einträge ohnechannels.<channel>.defaultAccountoderaccounts.defaultkonfiguriert sind, warnt Doctor, dass das Fallback-Routing ein unerwartetes Konto auswählen kann. - Wenn
channels.<channel>.defaultAccountauf eine unbekannte Konto-ID gesetzt ist, warnt Doctor und listet die konfigurierten Konto-IDs auf.
2b. OpenCode-Provider-Überschreibungen
2b. OpenCode-Provider-Überschreibungen
models.providers.opencode, opencode-zen oder opencode-go manuell hinzugefügt haben, überschreibt dies den integrierten OpenCode-Katalog aus openclaw/plugin-sdk/llm. Dadurch können Modelle zur falschen API gezwungen oder Kosten auf null gesetzt werden. Doctor warnt Sie, damit Sie die Überschreibung entfernen und das API-Routing sowie die Kosten pro Modell wiederherstellen können.2c. Browsermigration und Chrome-MCP-Bereitschaft
2c. Browsermigration und Chrome-MCP-Bereitschaft
browser.profiles.*.driver: "extension" → "existing-session"; browser.relayBindHost entfernt).Doctor prüft außerdem den hostlokalen Chrome-MCP-Pfad, wenn Sie defaultProfile: "user" oder ein konfiguriertes existing-session-Profil verwenden:- prüft bei standardmäßigen Profilen mit automatischer Verbindung, ob Google Chrome auf demselben Host installiert ist
- prüft die erkannte Chrome-Version und warnt, wenn sie älter als Chrome 144 ist
- erinnert Sie daran, das Remote-Debugging auf der Inspektionsseite des Browsers zu aktivieren (zum Beispiel
chrome://inspect/#remote-debugging,brave://inspect/#remote-debuggingoderedge://inspect/#remote-debugging)
responsebody, PDF-Export, Download-Abfang und Stapelaktionen erfordern weiterhin einen verwalteten Browser oder ein Raw-CDP-Profil. Diese Prüfung gilt nicht für Docker-, Sandbox-, Remote-Browser- oder andere Headless-Abläufe, die weiterhin Raw CDP verwenden.2d. OAuth-TLS-Voraussetzungen
2d. OAuth-TLS-Voraussetzungen
UNABLE_TO_GET_ISSUER_CERT_LOCALLY, ein abgelaufenes oder selbstsigniertes Zertifikat), gibt Doctor plattformspezifische Hinweise zur Behebung aus. Unter macOS mit einem Homebrew-Node lautet die Korrektur normalerweise brew postinstall ca-certificates. Mit --deep wird die Prüfung auch ausgeführt, wenn das Gateway fehlerfrei arbeitet.2e. Codex-OAuth-Provider-Überschreibungen
2e. Codex-OAuth-Provider-Überschreibungen
models.providers.openai-codex hinzugefügt haben, können diese den integrierten Codex-OAuth-Provider-Pfad überlagern. Doctor warnt, wenn diese alten Transporteinstellungen zusammen mit Codex OAuth vorhanden sind, damit Sie die veraltete Transportüberschreibung entfernen oder neu schreiben und das aktuelle Routingverhalten wiederherstellen können. Benutzerdefinierte Proxys und reine Header-Überschreibungen werden weiterhin unterstützt und lösen diese Warnung nicht aus; diese selbst definierten Anfragerouten kommen jedoch nicht für die implizite Codex-Auswahl infrage.2f. Reparatur von Codex-Routen
2f. Reparatur von Codex-Routen
openai-codex/*-Modellreferenzen. Das native Routing des Codex-Harness verwendet kanonische openai/*-Modellreferenzen, aber das Präfix allein wählt niemals Codex aus. Wenn die Laufzeitrichtlinie nicht gesetzt oder auto ist, kommt nur eine exakt übereinstimmende offizielle HTTPS-Route für Platform Responses oder ChatGPT Responses ohne selbst definierte Anfrageüberschreibung infrage. Siehe Implizite OpenAI-Agentenlaufzeit.Im Modus --fix / --repair schreibt Doctor betroffene Referenzen des Standardagenten und einzelner Agenten neu, einschließlich primärer Modelle, Fallbacks, Modelle zur Bild-/Videogenerierung, Heartbeat-/Subagent-/Compaction-Überschreibungen, Hooks, Kanalmodellüberschreibungen und veraltetem persistiertem Sitzungsroutenstatus:openai-codex/gpt-*wird zuopenai/gpt-*.- Die Codex-Absicht wird für reparierte Agentenmodellreferenzen in Provider-/modellbezogene
agentRuntime.id: "codex"-Einträge verschoben. - Veraltete Laufzeitkonfigurationen für den gesamten Agenten und persistierte Laufzeitfixierungen von Sitzungen werden entfernt, da die Laufzeitauswahl Provider-/modellbezogen ist.
- Bestehende Provider-/Modell-Laufzeitrichtlinien bleiben erhalten, sofern die reparierte veraltete Modellreferenz kein Codex-Routing benötigt, um den alten Authentifizierungspfad beizubehalten.
- Bestehende Modell-Fallback-Listen bleiben erhalten, wobei ihre veralteten Einträge neu geschrieben werden; kopierte Einstellungen pro Modell werden vom veralteten Schlüssel in den kanonischen Schlüssel
openai/*verschoben. - Persistierte Sitzungswerte für
modelProvider/providerOverride,model/modelOverride, Fallback-Hinweise und Authentifizierungsprofilfixierungen werden in allen gefundenen Sitzungsspeichern der Agenten repariert. - Doctor repariert separat veraltete
agentRuntime.id: "codex-cli"-Fixierungen (eine eigenständige veraltete Laufzeit-ID) zu"codex"in den Modelleinträgenagents.defaults,agents.entries.*undmodels.providers.*. /codex ...bedeutet „eine native Codex-Konversation aus dem Chat steuern oder anbinden“./acp ...oderruntime: "acp"bedeutet „den externen ACP-/acpx-Adapter verwenden“.
2g. Bereinigung von Sitzungsrouten
2g. Bereinigung von Sitzungsrouten
openclaw doctor --fix kann automatisch erstellten veralteten Status löschen, etwa modelOverrideSource: "auto"-Modellfixierungen, Laufzeitmodellmetadaten, fixierte Harness-IDs, CLI-Sitzungsbindungen und automatische Authentifizierungsprofilüberschreibungen, wenn die zugehörige Route nicht mehr konfiguriert ist. Explizite benutzerdefinierte oder veraltete Sitzungsmodelloptionen werden zur manuellen Prüfung gemeldet und nicht verändert; wechseln Sie sie mit /model ..., /new oder setzen Sie die Sitzung zurück, wenn diese Route nicht mehr vorgesehen ist.3. Migrationen veralteter Zustände (Datenträgerlayout)
3. Migrationen veralteter Zustände (Datenträgerlayout)
- Sitzungsspeicher und Transkripte: von
~/.openclaw/sessions/nach~/.openclaw/agents/<agentId>/sessions/ - Agentenverzeichnis: von
~/.openclaw/agent/nach~/.openclaw/agents/<agentId>/agent/ - WhatsApp-Authentifizierungsstatus (Baileys): vom veralteten
~/.openclaw/credentials/*.json(außeroauth.json) nach~/.openclaw/credentials/whatsapp/<accountId>/...(Standardkonto-ID:default) - Signierte Geräteidentität: von
~/.openclaw/identity/device.jsonin dieprimary-Zeiledevice_identitiesinstate/openclaw.sqlite; die separate Geräteauthentifizierungsdatei bleibt unverändert
openclaw doctor migriert. Die Normalisierung des Talk-Providers/der Provider-Zuordnung vergleicht anhand struktureller Gleichheit, sodass Unterschiede ausschließlich in der Schlüsselreihenfolge nicht mehr wiederholt wirkungslose doctor --fix-Änderungen auslösen.3a. Migrationen veralteter Plugin-Manifeste
3a. Migrationen veralteter Plugin-Manifeste
speechProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, mediaUnderstandingProviders, imageGenerationProviders, videoGenerationProviders, webFetchProviders, webSearchProviders). Wenn solche Schlüssel gefunden werden, bietet Doctor an, sie in das Objekt contracts zu verschieben und die Manifestdatei direkt neu zu schreiben. Diese Migration ist idempotent; wenn contracts bereits dieselben Werte enthält, wird der veraltete Schlüssel entfernt, ohne Daten zu duplizieren.3b. Migrationen veralteter Cron-Speicher
3b. Migrationen veralteter Cron-Speicher
~/.openclaw/cron/jobs.json) auf alte Auftragsstrukturen, bevor kanonische Zeilen in SQLite importiert werden.Aktuelle Cron-Bereinigungen umfassen:jobId→idschedule.cron→schedule.expr- Payload-Felder auf oberster Ebene (
message,model,thinking, …) →payload - Zustellungsfelder auf oberster Ebene (
deliver,channel,to,provider, …) →delivery - Zustellungsaliase in Payload
provider→ explizitesdelivery.channel - veraltete
notify: true-Webhook-Fallback-Aufträge → explizite Webhook-Zustellung aus dem stillgelegten Raw-Wertcron.webhook, sofern gültig; Ankündigungsaufträge behalten ihre Chat-Zustellung und erhaltendelivery.completionDestination. Doctor entfernt anschließend den alten Konfigurationsschlüssel. Ohne einen verwendbaren veralteten Webhook wird die wirkungslose Markierungnotifyauf oberster Ebene bei Aufträgen ohne Ziel entfernt (die vorhandene Zustellung einschließlich Ankündigungen bleibt erhalten), da die Laufzeitzustellung sie niemals liest.
jobs.json nach jobs-quarantine.json neben dem aktiven Speicher kopiert; Doctor meldet unter Quarantäne gestellte Zeilen, damit Sie sie manuell prüfen oder reparieren können.Beim Start normalisiert das Gateway die Laufzeitprojektion und ignoriert die Markierung notify auf oberster Ebene, belässt den persistierten Cron-Status jedoch zur Reparatur durch Doctor. Doctor entfernt wirkungslose Markierungen für Aufträge ohne Migrationsziel (delivery.mode nicht vorhanden/fehlend, ein nicht verwendbares veraltetes Webhook-Ziel oder eine vorhandene Ankündigungs-/Chat-Zustellung), ohne die vorhandene Zustellung zu verändern, sodass wiederholte doctor --fix-Läufe nicht mehr vor demselben Auftrag warnen.Unter Linux warnt Doctor außerdem, wenn die Crontab des Benutzers weiterhin das veraltete ~/.openclaw/bin/ensure-whatsapp.sh aufruft. Dieses hostlokale Skript wird vom aktuellen OpenClaw nicht gepflegt und kann falsche Gateway inactive-Meldungen in ~/.openclaw/logs/whatsapp-health.log schreiben, wenn Cron den systemd-Benutzerbus nicht erreichen kann. Entfernen Sie den veralteten Crontab-Eintrag mit crontab -e; verwenden Sie openclaw channels status --probe, openclaw doctor und openclaw gateway status für aktuelle Zustandsprüfungen.3c. Bereinigung von Sitzungssperren
3c. Bereinigung von Sitzungssperren
--fix / --repair entfernt er automatisch Sperren mit inaktiven, verwaisten, wiederverwendeten, fehlerhaft-alten oder nicht zu OpenClaw gehörenden Eigentümern. Alte Sperren, die weiterhin einem aktiven OpenClaw-Prozess gehören, werden gemeldet, aber beibehalten, damit Doctor keinen aktiven Transkript-Schreibprozess unterbricht.3d. Reparatur von Sitzungstranskript-Zweigen
3d. Reparatur von Sitzungstranskript-Zweigen
--fix / --repair sichert Doctor jede betroffene Datei neben dem Original und schreibt das Transkript auf den aktiven Zweig um, sodass Gateway-Verlauf und Speicherleser keine doppelten Eingaben mehr sehen.4. Zustandsintegritätsprüfungen (Sitzungspersistenz, Routing und Sicherheit)
4. Zustandsintegritätsprüfungen (Sitzungspersistenz, Routing und Sicherheit)
- Fehlendes Zustandsverzeichnis: warnt vor katastrophalem Zustandsverlust, fordert zur Neuerstellung des Verzeichnisses auf und weist darauf hin, dass fehlende Daten nicht wiederhergestellt werden können.
- Berechtigungen des Zustandsverzeichnisses: überprüft die Schreibbarkeit; bietet an, die Berechtigungen zu reparieren (und gibt einen Hinweis
chownaus, wenn eine Abweichung bei Eigentümer oder Gruppe erkannt wird). - Mit der Cloud synchronisiertes macOS-Zustandsverzeichnis: warnt, wenn der Zustand unter iCloud Drive (
~/Library/Mobile Documents/com~apple~CloudDocs/...) oder~/Library/CloudStorage/...aufgelöst wird, da synchronisierte Pfade langsamere E/A sowie Sperr-/Synchronisationskonflikte verursachen können. - Linux-Zustandsverzeichnis auf SD oder eMMC: warnt, wenn der Zustand auf eine
mmcblk*-Mount-Quelle aufgelöst wird, da zufällige E/A auf SD-/eMMC-Speichern langsamer sein kann und diese durch Schreibvorgänge für Sitzungen und Anmeldedaten schneller verschleißen können. - Flüchtiges Linux-Zustandsverzeichnis: warnt, wenn der Zustand auf
tmpfsoderramfsaufgelöst wird, da Sitzungen, Anmeldedaten, Konfiguration und SQLite-Zustand (mit WAL-/Journal-Begleitdateien) bei einem Neustart verschwinden. Docker-overlay-Mounts werden bewusst nicht markiert, da ihre beschreibbaren Schichten Neustarts des Hosts überdauern, solange der Container bestehen bleibt. - Fehlende Sitzungsverzeichnisse:
sessions/und das Sitzungsspeicherverzeichnis sind erforderlich, um den Verlauf dauerhaft zu speichern undENOENT-Abstürze zu vermeiden. - Transkriptabweichung: warnt, wenn bei aktuellen Sitzungseinträgen Transkriptdateien fehlen.
- Hauptsitzung mit „einzeiliger JSONL-Datei“: kennzeichnet, wenn das Haupttranskript nur eine Zeile enthält (der Verlauf wächst nicht an).
- Mehrere Zustandsverzeichnisse: warnt, wenn mehrere
~/.openclaw-Ordner in verschiedenen Home-Verzeichnissen vorhanden sind oder wennOPENCLAW_STATE_DIRauf einen anderen Ort verweist (der Verlauf kann zwischen Installationen aufgeteilt werden). - Hinweis zum Remote-Modus: Wenn
gateway.mode=remote, erinnert Doctor daran, ihn auf dem Remote-Host auszuführen (dort befindet sich der Zustand). - Berechtigungen der Konfigurationsdatei: warnt, wenn
~/.openclaw/openclaw.jsonfür Gruppe oder alle Benutzer lesbar ist, und bietet an, die Berechtigungen auf600zu beschränken.
5. Zustand der Modellauthentifizierung (OAuth-Ablauf)
5. Zustand der Modellauthentifizierung (OAuth-Ablauf)
--non-interactive überspringt Aktualisierungsversuche.Wenn eine OAuth-Aktualisierung dauerhaft fehlschlägt (beispielsweise refresh_token_reused, invalid_grant oder wenn ein Provider zur erneuten Anmeldung auffordert), meldet Doctor, dass eine erneute Authentifizierung erforderlich ist, und gibt den exakten auszuführenden Befehl openclaw models auth login --provider ... aus.Doctor meldet außerdem Authentifizierungsprofile, die aufgrund kurzer Abkühlzeiten (Ratenbegrenzungen/Zeitüberschreitungen/Authentifizierungsfehler) oder längerer Deaktivierungen (Abrechnungs-/Guthabenfehler) vorübergehend nicht verwendbar sind.Veraltete Codex-OAuth-Profile, deren Tokens sich im macOS-Schlüsselbund befinden (älteres Onboarding vor dem dateibasierten Begleitdatei-Layout), werden ausschließlich von Doctor repariert. Führen Sie openclaw doctor --fix einmal in einem interaktiven Terminal aus, um veraltete, im Schlüsselbund gespeicherte Tokens direkt nach auth-profiles.json zu migrieren; anschließend werden sie von eingebetteten Vorgängen (Telegram, Cron, Sub-Agent-Verteilung) als kanonische OpenAI-OAuth-Profile aufgelöst.6. Modellvalidierung für Hooks
6. Modellvalidierung für Hooks
hooks.gmail.model festgelegt ist, validiert Doctor die Modellreferenz anhand des Katalogs und der Zulassungsliste und warnt, wenn sie nicht aufgelöst werden kann oder nicht zulässig ist.7. Reparatur von Sandbox-Images
7. Reparatur von Sandbox-Images
7b. Bereinigung von Plugin-Installationen
7b. Bereinigung von Plugin-Installationen
openclaw doctor --fix / openclaw doctor --repair entfernt Doctor veraltete, von OpenClaw erzeugte Bereitstellungszustände für Plugin-Abhängigkeiten: veraltete erzeugte Abhängigkeitswurzeln, alte Installations-Staging-Verzeichnisse, paketlokale Rückstände aus früherem Reparaturcode für Abhängigkeiten gebündelter Plugins sowie verwaiste oder wiederhergestellte verwaltete npm-Kopien gebündelter @openclaw/*-Plugins, die das aktuelle gebündelte Manifest überlagern können. Doctor verknüpft außerdem das Host-Paket openclaw erneut mit verwalteten npm-Plugins, die peerDependencies.openclaw deklarieren, damit paketlokale Laufzeitimporte wie openclaw/plugin-sdk/* nach Aktualisierungen oder npm-Reparaturen weiterhin aufgelöst werden.Doctor kann außerdem fehlende herunterladbare Plugins neu installieren, wenn die Konfiguration auf sie verweist, die lokale Plugin-Registrierung sie jedoch nicht finden kann (wesentliche plugins.entries, konfigurierte Kanal-/Provider-/Sucheinstellungen, konfigurierte Agent-Laufzeiten). Während Paketaktualisierungen vermeidet Doctor die Neuinstallation von Plugin-Paketen, solange das Kernpaket ausgetauscht wird; führen Sie openclaw doctor --fix nach der Aktualisierung erneut aus, wenn ein konfiguriertes Plugin weiterhin wiederhergestellt werden muss. Außerhalb der nachfolgend beschriebenen Ausnahme für den Start eines Container-Images führen Gateway-Start und erneutes Laden der Konfiguration keine Paketreparatur aus; Plugin-Installationen bleiben explizite Doctor-/Installations-/Aktualisierungsaufgaben.Der Start eines containerisierten Gateways verfügt über eine eng begrenzte Upgrade-Ausnahme: Wenn openclaw gateway run mit einer neuen OpenClaw-Version startet, führt es vor der Bereitschaft sichere Zustandsmigrationen und die bestehende Plugin-Konvergenz nach der Kernaktualisierung aus und zeichnet anschließend einen versionsbezogenen Prüfpunkt auf. Dieser Startdurchlauf kann veraltete Datensätze gebündelter Plugins bereinigen, lokale Plugin-Verknüpfungen reparieren, konfigurierte Plugin-Pakete neu installieren, wenn der Konvergenzpfad dies erfordert, und aktive Plugin-Nutzlasten prüfen. Wenn der Start keine sichere Reparatur durchführen kann, führen Sie dasselbe Image einmal mit openclaw doctor --fix und demselben eingebundenen Zustand und derselben eingebundenen Konfiguration aus, bevor Sie den Container normal neu starten.8. Migrationen von Gateway-Diensten und Bereinigungshinweise
8. Migrationen von Gateway-Diensten und Bereinigungshinweise
openclaw gateway status --deep oder openclaw doctor --deep und entfernen Sie anschließend das Duplikat oder legen Sie OPENCLAW_SERVICE_REPAIR_POLICY=external fest, wenn ein System-Supervisor den Gateway-Lebenszyklus verwaltet.8b. Matrix-Migration beim Start
8b. Matrix-Migration beim Start
--fix / --repair) eine Momentaufnahme vor der Migration und führt anschließend die bestmöglichen Migrationsschritte aus: die Migration des veralteten Matrix-Zustands und die Vorbereitung des veralteten verschlüsselten Zustands. Beide Schritte sind nicht schwerwiegend; Fehler werden protokolliert und der Start wird fortgesetzt. Im schreibgeschützten Modus (openclaw doctor ohne --fix) wird diese Prüfung vollständig übersprungen.8c. Gerätekopplung und Authentifizierungsabweichungen
8c. Gerätekopplung und Authentifizierungsabweichungen
- ausstehende erstmalige Kopplungsanfragen
- ausstehende Rollen- oder Bereichserweiterungen für bereits gekoppelte Geräte
- Reparaturen bei Abweichungen des öffentlichen Schlüssels, bei denen die Geräte-ID weiterhin übereinstimmt, die Geräteidentität jedoch nicht mehr mit dem genehmigten Datensatz übereinstimmt
- gekoppelte Datensätze, denen ein aktives Token für eine genehmigte Rolle fehlt
- gekoppelte Tokens, deren Bereiche von der genehmigten Kopplungsgrundlage abweichen
- lokal zwischengespeicherte Gerätetoken-Einträge für den aktuellen Computer, die älter als eine Gateway-seitige Token-Rotation sind oder veraltete Bereichsmetadaten enthalten
- ausstehende Anfragen mit
openclaw devices listprüfen - die genaue Anfrage mit
openclaw devices approve <requestId>genehmigen - ein neues Token mit
openclaw devices rotate --device <deviceId> --role <role>rotieren - einen veralteten Datensatz mit
openclaw devices remove <deviceId>entfernen und erneut genehmigen
9. Sicherheitswarnungen
9. Sicherheitswarnungen
openclaw security audit für das vollständige Sicherheitsinventar.10. systemd-Linger (Linux)
10. systemd-Linger (Linux)
11. Workspace-Status (Skills, Plugins und TaskFlows)
11. Workspace-Status (Skills, Plugins und TaskFlows)
- Skills: listet zulässige, aber nicht verwendbare Skill-Namen auf; verwenden Sie
openclaw skills checkfür Anforderungsdetails und vollständige Anzahlen. - Plugins: meldet nur fehlerhafte Plugin-IDs; verwenden Sie
openclaw plugins listfür das Inventar geladener, importierter, deaktivierter und gebündelter Plugins. - Warnungen zur Plugin-Kompatibilität: kennzeichnet Plugins, die Kompatibilitätsprobleme mit der aktuellen Laufzeit aufweisen.
- Plugin-Diagnose: zeigt alle beim Laden von der Plugin-Registrierung ausgegebenen Warnungen oder Fehler an.
- TaskFlow-Wiederherstellung: zeigt verdächtige verwaltete TaskFlows an, die manuell geprüft oder abgebrochen werden müssen.
- Claude CLI: meldet nur Probleme mit Binärdatei, Authentifizierung, Profil, Workspace oder Projektverzeichnis; Details erfolgreicher Prüfungen werden ausgelassen.
11b. Größe der Bootstrap-Dateien
11b. Größe der Bootstrap-Dateien
AGENTS.md, CLAUDE.md oder andere eingefügte Kontextdateien) nahe am konfigurierten Zeichenbudget liegen oder dieses überschreiten. Er meldet für jede Datei die rohe und die eingefügte Zeichenzahl, den Kürzungsprozentsatz, die Kürzungsursache (max/file oder max/total) sowie die Gesamtzahl der eingefügten Zeichen als Anteil am Gesamtbudget. Wenn Dateien gekürzt werden oder nahe am Grenzwert liegen, gibt Doctor Tipps zur Abstimmung von agents.defaults.bootstrapMaxChars und agents.defaults.bootstrapTotalMaxChars aus.11c. Shell-Vervollständigung
11c. Shell-Vervollständigung
- Wenn das Shell-Profil ein langsames dynamisches Vervollständigungsmuster verwendet (
source <(openclaw completion ...)), aktualisiert Doctor es auf die schnellere Variante mit zwischengespeicherter Datei. - Wenn die Vervollständigung im Profil konfiguriert ist, aber die Cache-Datei fehlt, erstellt Doctor den Cache automatisch neu.
- Wenn überhaupt keine Vervollständigung konfiguriert ist, fordert Doctor zur Installation auf (nur im interaktiven Modus; wird mit
--non-interactiveübersprungen).
openclaw completion --write-state aus, um den Cache manuell neu zu erstellen.11d. Bereinigung veralteter Channel-Plugins
11d. Bereinigung veralteter Channel-Plugins
openclaw doctor --fix ein fehlendes Channel-Plugin entfernt, wird auch die verwaiste Channel-spezifische Konfiguration entfernt, die auf dieses Plugin verwiesen hat: channels.<id>-Einträge, Heartbeat-Ziele, die den Channel nannten, und agents.*.models["<channel>/*"]-Überschreibungen. Dies verhindert Gateway-Startschleifen, bei denen die Channel-Laufzeit nicht mehr vorhanden ist, die Konfiguration das Gateway aber weiterhin auffordert, sich daran zu binden.12. Gateway-Authentifizierungsprüfungen (lokales Token)
12. Gateway-Authentifizierungsprüfungen (lokales Token)
- Wenn der Token-Modus ein Token benötigt und keine Token-Quelle vorhanden ist, bietet Doctor an, eines zu generieren.
- Wenn
gateway.auth.tokenvon SecretRef verwaltet wird, aber nicht verfügbar ist, warnt Doctor und überschreibt es nicht mit Klartext. openclaw doctor --generate-gateway-tokenerzwingt die Generierung nur, wenn keine Token-SecretRef konfiguriert ist.
12b. Schreibgeschützte SecretRef-fähige Reparaturen
12b. Schreibgeschützte SecretRef-fähige Reparaturen
openclaw doctor --fixverwendet dasselbe schreibgeschützte SecretRef-Zusammenfassungsmodell wie Befehle der Statusfamilie für gezielte Konfigurationsreparaturen.- Beispiel: Die Reparatur von Telegram
allowFrom/groupAllowFrom@usernameversucht, konfigurierte Bot-Anmeldedaten zu verwenden, sofern diese verfügbar sind. - Wenn das Telegram-Bot-Token über SecretRef konfiguriert ist, im aktuellen Befehlspfad jedoch nicht zur Verfügung steht, meldet Doctor, dass die Anmeldedaten konfiguriert, aber nicht verfügbar sind, und überspringt die automatische Auflösung, statt abzustürzen oder das Token fälschlicherweise als fehlend zu melden.
13. Gateway-Integritätsprüfung und Neustart
13. Gateway-Integritätsprüfung und Neustart
13b. Bereitschaft der Speichersuche
13b. Bereitschaft der Speichersuche
- QMD-Backend: Prüft, ob die Binärdatei
qmdverfügbar und startfähig ist. Falls nicht, werden Hinweise zur Behebung ausgegeben, einschließlichnpm install -g @tobilu/qmd(oder des Bun-Äquivalents) sowie einer Option für einen manuellen Binärpfad. - Expliziter lokaler Provider: Prüft auf eine lokale Modelldatei oder eine erkannte Remote- bzw. herunterladbare Modell-URL. Falls sie fehlt, wird der Wechsel zu einem Remote-Provider vorgeschlagen.
- Expliziter Remote-Provider (
openai,voyageusw.): Überprüft, ob ein API-Schlüssel in der Umgebung oder im Authentifizierungsspeicher vorhanden ist. Gibt umsetzbare Hinweise zur Behebung aus, wenn er fehlt. - Veralteter automatischer Provider: Behandelt
memorySearch.provider: "auto"als OpenAI, prüft die OpenAI-Bereitschaft und schreibt es mitdoctor --fixinprovider: "openai"um.
openclaw memory status --deep, um die Embedding-Bereitschaft zur Laufzeit zu überprüfen.14. Warnungen zum Channel-Status
14. Warnungen zum Channel-Status
15. Prüfung und Reparatur der Supervisor-Konfiguration
15. Prüfung und Reparatur der Supervisor-Konfiguration
openclaw doctorfragt vor dem Neuschreiben der Supervisor-Konfiguration nach.openclaw doctor --yesakzeptiert die standardmäßigen Reparaturabfragen.openclaw doctor --fixwendet empfohlene Korrekturen ohne Abfragen an (--repairist ein Alias).openclaw doctor --fix --forceüberschreibt benutzerdefinierte Supervisor-Konfigurationen.OPENCLAW_SERVICE_REPAIR_POLICY=externallässt Doctor für den Lebenszyklus des Gateway-Dienstes schreibgeschützt. Der Dienstzustand wird weiterhin gemeldet und Reparaturen außerhalb des Dienstes werden weiterhin ausgeführt, aber Installation, Start, Neustart und Bootstrap des Dienstes, das Neuschreiben der Supervisor-Konfiguration sowie die Bereinigung veralteter Dienste werden übersprungen, da ein externer Supervisor diesen Lebenszyklus verwaltet.- Unter Linux schreibt Doctor Befehls-/Einstiegspunkt-Metadaten nicht neu, solange die zugehörige systemd-Gateway-Unit aktiv ist. Bei der Suche nach doppelten Diensten werden außerdem inaktive, nicht veraltete zusätzliche Gateway-ähnliche Units ignoriert, damit begleitende Dienstdateien keine unnötigen Bereinigungshinweise erzeugen.
- Wenn die Token-Authentifizierung ein Token erfordert und
gateway.auth.tokenvon SecretRef verwaltet wird, validiert die Installation bzw. Reparatur des Dienstes durch Doctor die SecretRef, speichert jedoch keine aufgelösten Klartext-Tokenwerte in den Umgebungsmetadaten des Supervisor-Dienstes. - Doctor erkennt verwaltete
.env-/SecretRef-gestützte Dienstumgebungswerte, die ältere Installationen von LaunchAgent, systemd oder geplanten Windows-Aufgaben inline eingebettet haben, und schreibt die Dienstmetadaten so um, dass diese Werte aus der Laufzeitquelle statt aus der Supervisor-Definition geladen werden. - Doctor erkennt, wenn der Dienstbefehl nach Änderungen an
gateway.portweiterhin einen alten--portfest vorgibt, und schreibt die Dienstmetadaten auf den aktuellen Port um. - Wenn die Token-Authentifizierung ein Token erfordert und die konfigurierte Token-SecretRef nicht aufgelöst werden kann, blockiert Doctor den Installations-/Reparaturpfad und gibt umsetzbare Hinweise.
- Wenn sowohl
gateway.auth.tokenals auchgateway.auth.passwordkonfiguriert sind undgateway.auth.modenicht festgelegt ist, blockiert Doctor die Installation/Reparatur, bis der Modus ausdrücklich festgelegt wurde. - Bei Linux-Benutzer-systemd-Units berücksichtigen die Prüfungen von Doctor auf Token-Abweichungen beim Vergleich der Dienst-Authentifizierungsmetadaten sowohl
Environment=- als auchEnvironmentFile=-Quellen. - Doctor-Dienstreparaturen verweigern das Neuschreiben, Stoppen oder Neustarten eines Gateway-Dienstes durch eine ältere OpenClaw-Binärdatei, wenn die Konfiguration zuletzt von einer neueren Version geschrieben wurde. Siehe Gateway-Fehlerbehebung.
- Sie können ein vollständiges Neuschreiben jederzeit über
openclaw gateway install --forceerzwingen.
16. Gateway-Laufzeit- und Portdiagnose
16. Gateway-Laufzeit- und Portdiagnose
18789) und meldet wahrscheinliche Ursachen (Gateway wird bereits ausgeführt, SSH-Tunnel).17. Bewährte Verfahren für die Gateway-Laufzeit
17. Bewährte Verfahren für die Gateway-Laufzeit
nvm, fnm, volta, asdf usw.) ausgeführt wird. Bun kann den node:sqlite-Zustandsspeicher von OpenClaw nicht öffnen, daher migrieren Reparaturen veraltete Bun-Dienste zu Node. Pfade von Versionsmanagern können nach Aktualisierungen nicht mehr funktionieren, weil der Dienst Ihre Shell-Initialisierung nicht lädt. Doctor bietet an, zu einer systemweiten Node-Installation zu migrieren, sofern verfügbar (Homebrew/apt/choco).Neu installierte oder reparierte macOS-LaunchAgents verwenden einen kanonischen System-PATH (/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin), statt den PATH der interaktiven Shell zu kopieren. Dadurch bleiben von Homebrew verwaltete Systembinärdateien verfügbar, während Volta, asdf, fnm, pnpm und andere Verzeichnisse von Versionsmanagern nicht beeinflussen, welche Node-Version von untergeordneten Prozessen aufgelöst wird. Linux-Dienste behalten weiterhin explizite Umgebungsstammverzeichnisse (NVM_DIR, FNM_DIR, VOLTA_HOME, ASDF_DATA_DIR, BUN_INSTALL, PNPM_HOME) und stabile Benutzer-Binärverzeichnisse bei; vermutete Fallback-Verzeichnisse von Versionsmanagern werden jedoch nur dann in den Dienst-PATH geschrieben, wenn diese Verzeichnisse auf dem Datenträger vorhanden sind.18. Schreiben der Konfiguration und Assistenten-Metadaten
18. Schreiben der Konfiguration und Assistenten-Metadaten
19. Tipps zum Arbeitsbereich (Sicherung und Speichersystem)
19. Tipps zum Arbeitsbereich (Sicherung und Speichersystem)