Doktor
openclaw doctor är reparationen + migreringsverktyget för OpenClaw. Det fixar inaktuella
config/state, kontrollerar hälsa och ger åtgärdbara reparationssteg.
Snabbstart
Headless / automatisering
Vad den gör (sammanfattning)
- Valfri pre-flight-uppdatering för git-installationer (endast interaktivt).
- Kontroll av UI-protokollens aktualitet (bygger om Control UI när protokollschemat är nyare).
- Hälsokontroll + uppmaning om omstart.
- Sammanfattning av Skills-status (berättigade/saknade/blockerade).
- Konfig-normalisering för äldre värden.
- Varningar för OpenCode Zen-leverantörsöverskrivningar (
models.providers.opencode). - Migrering av äldre tillstånd på disk (sessioner/agentkatalog/WhatsApp-autentisering).
- Kontroller av tillståndsintegritet och behörigheter (sessioner, transkript, tillståndskatalog).
- Kontroller av konfigfilens behörigheter (chmod 600) vid lokal körning.
- Modellautentiseringshälsa: kontrollerar OAuth-utgång, kan uppdatera utgående tokens och rapporterar auth-profilers cooldown/inaktiverade tillstånd.
- Detektering av extra arbetsytekatalog (
~/openclaw). - Reparation av sandbox-avbildning när sandboxing är aktiverat.
- Migrering av äldre tjänster och detektering av extra gateway.
- Kontroller av Gateway-körtid (tjänst installerad men körs inte; cachad launchd-etikett).
- Kanalstatusvarningar (sonderas från den körande gatewayen).
- Granskning av supervisor-konfig (launchd/systemd/schtasks) med valfri reparation.
- Bästa praxis-kontroller för Gateway-körtid (Node vs Bun, sökvägar för versionshanterare).
- Diagnostik för Gateway-portkollisioner (standard
18789). - Säkerhetsvarningar för öppna DM-policyer.
- Gateway-autentiseringsvarningar när ingen
gateway.auth.tokenär satt (lokalt läge; erbjuder token-generering). - systemd linger-kontroll på Linux.
- Kontroller för källinstallation (pnpm workspace-mismatch, saknade UI-tillgångar, saknad tsx-binär).
- Skriver uppdaterad konfig + guide-metadata.
Detaljerat beteende och motiv
0. Valfri uppdatering (git-installationer)
Om detta är en git-utcheckning och doctor körs interaktivt, erbjuder den att uppdatera (fetch/rebase/build) innan doctor körs.1. Konfig-normalisering
Om konfigen innehåller äldre värdeformer (till exempelmessages.ackReaction
utan en kanalspecifik överskrivning) normaliserar doctor dem till det aktuella
schemat.
2. Migreringar av äldre konfig-nycklar
När konfigen innehåller utfasade nycklar vägrar andra kommandon att köras och ber dig köraopenclaw doctor.
Doctor kommer att:
- Förklara vilka äldre nycklar som hittades.
- Visa migreringen som tillämpades.
- Skriva om
~/.openclaw/openclaw.jsonmed det uppdaterade schemat.
routing.allowFrom→channels.whatsapp.allowFromrouting.groupChat.requireMention→channels.whatsapp/telegram/imessage.groups."*".requireMentionrouting.groupChat.historyLimit→messages.groupChat.historyLimitrouting.groupChat.mentionPatterns→messages.groupChat.mentionPatternsrouting.queue→messages.queuerouting.bindings→ toppnivåbindingsrouting.agents/routing.defaultAgentId→agents.list+agents.list[].defaultrouting.agentToAgent→tools.agentToAgentrouting.transcribeAudio→tools.media.audio.modelsbindings[].match.accountID→bindings[].match.accountIdidentity→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
2b) OpenCode Zen-leverantörsöverskrivningar
Om du har lagt tillmodels.providers.opencode (eller opencode-zen) manuellt, åsidosätter det
den inbyggda OpenCode Zen-katalogen från @mariozechner/pi-ai. Det kan
tvinga varje modell på ett enda API eller noll ut kostnader. Läkare varnar så att du kan
ta bort åsidosättning och återställa per modell API-routing + kostnader.
3. Migreringar av äldre tillstånd (disklayout)
Doctor kan migrera äldre layouter på disk till den aktuella strukturen:- Sessionslagring + transkript:
- från
~/.openclaw/sessions/till~/.openclaw/agents/<agentId>/sessions/
- från
- Agentkatalog:
- från
~/.openclaw/agent/till~/.openclaw/agents/<agentId>/agent/
- från
- WhatsApp-autentiseringstillstånd (Baileys):
- från äldre
~/.openclaw/credentials/*.json(utomoauth.json) - till
~/.openclaw/credentials/whatsapp/<accountId>/...(standardkonto-id:default)
- från äldre
openclaw doctor.
4. Kontroller av tillståndsintegritet (sessionspersistens, routning och säkerhet)
Statskatalogen är det operativa brainstemet. Om det försvinner, förlorar du sessioner, autentiseringsuppgifter, loggar och konfiguration (om du inte har säkerhetskopior någon annanstans). Doctor kontrollerar:- Tillståndskatalog saknas: varnar om katastrofal tillståndsförlust, uppmanar att återskapa katalogen och påminner om att den inte kan återställa saknade data.
- Behörigheter för tillståndskatalog: verifierar skrivbarhet; erbjuder att reparera behörigheter
(och ger en
chown-hint när ägare/grupp-mismatch upptäcks). - Sessionskataloger saknas:
sessions/och sessionslagringskatalogen krävs för att bevara historik och undvikaENOENT-krascher. - Transkript-mismatch: varnar när nyliga sessionsposter saknar transkriptfiler.
- Huvudsession ”1-rads JSONL”: flaggar när huvudtranskriptet bara har en rad (historiken ackumuleras inte).
- Flera tillståndskataloger: varnar när flera
~/.openclaw-mappar finns över hemkataloger eller närOPENCLAW_STATE_DIRpekar någon annanstans (historik kan delas mellan installationer). - Påminnelse om fjärrläge: om
gateway.mode=remotepåminner doctor dig att köra den på fjärrvärden (tillståndet finns där). - Konfigfilens behörigheter: varnar om
~/.openclaw/openclaw.jsonär läsbar för grupp/värld och erbjuder att strama åt till600.
5. Modellautentiseringshälsa (OAuth-utgång)
Läkaren inspekterar OAuth profiler i auth butiken, varnar när polletter upphör att gälla, och kan uppdatera dem när det är säkert. Om Anthropic Claude Code -profilen är inaktuell föreslår det att du körclaude setup-token (eller klistrar in en setup-token).
Uppdateringsuppmaningar visas endast när du kör interaktivt (TTY); --non-interactive
hoppar över uppdateringsförsök.
Doctor rapporterar också autentiseringsprofiler som tillfälligt är obrukbara på grund av:
- korta cooldowns (hastighetsbegränsningar/timeouts/autentiseringsfel)
- längre inaktiveringar (fakturering/kreditfel)
6. Validering av Hooks-modell
Omhooks.gmail.model är satt validerar doctor modellreferensen mot
katalogen och tillåtelselistan och varnar när den inte kan lösas eller är otillåten.
7. Reparation av sandbox-avbildning
När sandboxing är aktiverat kontrollerar doctor Docker-avbildningar och erbjuder att bygga eller byta till äldre namn om den aktuella avbildningen saknas.8. Migreringar av Gateway-tjänster och städhints
Doctor detects legacy gateway services (launchd/systemd/schtasks) and offers to remove them and install the OpenClaw service using the current gateway port. Det kan också söka efter extra gateway-liknande tjänster och skriva ut saneringsanvisningar. Profilnamn OpenClaw gateway-tjänster anses vara förstklassiga och är inte flaggade som “extra”.9. Säkerhetsvarningar
Doctor utfärdar varningar när en leverantör är öppen för DM utan en tillåtelselista, eller när en policy är konfigurerad på ett farligt sätt.10. systemd linger (Linux)
Om den körs som en systemd-användartjänst säkerställer doctor att lingering är aktiverat så att gatewayen fortsätter att vara igång efter utloggning.11. Skills-status
Doctor skriver ut en snabb sammanfattning av berättigade/saknade/blockerade Skills för den aktuella arbetsytan.12. Gateway-autentiseringskontroller (lokal token)
Doktorn varnar närgateway.auth saknas på en lokal gateway och erbjuder
att generera en token. Använd openclaw doctor --generate-gateway-token för att tvinga token
att skapa i automation.
13. Gateway-hälsokontroll + omstart
Doctor kör en hälsokontroll och erbjuder att starta om gatewayen när den verkar ohälsosam.14. Kanalstatusvarningar
Om gatewayen är frisk kör doctor en kanalstatussond och rapporterar varningar med föreslagna åtgärder.15. Granskning + reparation av supervisor-konfig
Läkare kontrollerar den installerade övervakarkonfigurationen (launchd/systemd/schtasks) för saknade eller föråldrade standardinställningar (t.ex. systemd-nätberoenden och omstart fördröjning). När den hittar en felmatchning, rekommenderar den en uppdatering och kan skriva om tjänstfilen/uppgiften till de aktuella standardvärdena. Noteringar:openclaw doctorfrågar innan omskrivning av supervisor-konfig.openclaw doctor --yesaccepterar standardreparationsuppmaningar.openclaw doctor --repairtillämpar rekommenderade åtgärder utan frågor.openclaw doctor --repair --forceskriver över anpassade supervisor-konfigar.- Du kan alltid tvinga en fullständig omskrivning via
openclaw gateway install --force.
16. Diagnostik för Gateway-körtid + port
Läkare inspekterar tjänsten körtid (PID, sista utgångsstatus) och varnar när tjänsten är installerad men inte körs. Den söker också efter portkollisioner på gateway-porten (standard18789) och rapporterar troliga orsaker (gateway redan
körs, SSH-tunneln).
17. Bästa praxis för Gateway-körtid
Läkare varnar när gateway-tjänsten körs på Bun eller en versionshanterad nodsökväg (nvm, fnm, volta, asdf, etc.). WhatsApp + Telegram kanaler kräver Node,
och version-manager sökvägar kan bryta efter uppgraderingar eftersom tjänsten inte
ladda ditt skal init. Läkare erbjuder sig att migrera till en systemnodinstallation när
är tillgänglig (Homebrew/apt/choco).