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 adalah alat perbaikan + migrasi untuk OpenClaw. Alat ini memperbaiki konfigurasi/status yang usang, memeriksa kesehatan, dan menyediakan langkah perbaikan yang dapat ditindaklanjuti.
Mulai cepat
Mode headless dan otomasi
- --yes
- --repair
- --repair --force
- --non-interactive
- --deep
Yang dilakukan (ringkasan)
Kesehatan, UI, dan pembaruan
Kesehatan, UI, dan pembaruan
- Pembaruan pra-jalan opsional untuk instalasi git (hanya interaktif).
- Pemeriksaan kesegaran protokol UI (membangun ulang Control UI saat skema protokol lebih baru).
- Pemeriksaan kesehatan + prompt restart.
- Ringkasan status Skills (memenuhi syarat/hilang/diblokir) dan status plugin.
Konfigurasi dan migrasi
Konfigurasi dan migrasi
- Normalisasi konfigurasi untuk nilai lama.
- Migrasi konfigurasi Talk dari field
talk.*datar lama ketalk.provider+talk.providers.<provider>. - Pemeriksaan migrasi browser untuk konfigurasi ekstensi Chrome lama dan kesiapan Chrome MCP.
- Peringatan override penyedia OpenCode (
models.providers.opencode/models.providers.opencode-go). - Peringatan shadowing OAuth Codex (
models.providers.openai-codex). - Pemeriksaan prasyarat TLS OAuth untuk profil OAuth OpenAI Codex.
- Peringatan allowlist plugin/alat saat
plugins.allowbersifat restriktif tetapi kebijakan alat masih meminta wildcard atau alat milik plugin. - Migrasi status lama di disk (sessions/agent dir/auth WhatsApp).
- Migrasi kunci kontrak manifes plugin lama (
speechProviders,realtimeTranscriptionProviders,realtimeVoiceProviders,mediaUnderstandingProviders,imageGenerationProviders,videoGenerationProviders,webFetchProviders,webSearchProviders→contracts). - Migrasi penyimpanan cron lama (
jobId,schedule.cron, field delivery/payload tingkat atas, payloadprovider, job fallback webhooknotify: truesederhana). - Pembersihan kebijakan runtime seluruh agen lama; kebijakan runtime penyedia/model adalah pemilih rute aktif.
- Pembersihan konfigurasi plugin usang saat plugin diaktifkan; saat
plugins.enabled=false, referensi plugin usang diperlakukan sebagai konfigurasi penahanan inert dan dipertahankan.
Status dan integritas
Status dan integritas
- Inspeksi file kunci sesi dan pembersihan kunci usang.
- Perbaikan transkrip sesi untuk cabang penulisan ulang prompt duplikat yang dibuat oleh build 2026.4.24 yang terdampak.
- Deteksi tombstone pemulihan restart subagen yang macet, dengan dukungan
--fixuntuk menghapus flag pemulihan dibatalkan yang usang agar startup tidak terus memperlakukan anak sebagai dibatalkan restart. - Pemeriksaan integritas status dan izin (sesi, transkrip, direktori status).
- Pemeriksaan izin file konfigurasi (chmod 600) saat berjalan secara lokal.
- Kesehatan auth model: memeriksa kedaluwarsa OAuth, dapat menyegarkan token yang hampir kedaluwarsa, dan melaporkan status cooldown/dinonaktifkan profil auth.
- Deteksi direktori workspace tambahan (
~/openclaw).
Gateway, layanan, dan supervisor
Gateway, layanan, dan supervisor
- Perbaikan image sandbox saat sandboxing diaktifkan.
- Migrasi layanan lama dan deteksi gateway tambahan.
- Migrasi status lama channel Matrix (dalam mode
--fix/--repair). - Pemeriksaan runtime Gateway (layanan terpasang tetapi tidak berjalan; label launchd yang di-cache).
- Peringatan status channel (diprobe dari gateway yang sedang berjalan).
- Pemeriksaan izin spesifik channel berada di bawah
openclaw channels capabilities; misalnya, izin channel suara Discord diaudit denganopenclaw channels capabilities --channel discord --target channel:<channel-id>. - Pemeriksaan responsivitas WhatsApp untuk kesehatan event-loop Gateway yang menurun dengan klien TUI lokal yang masih berjalan;
--fixhanya menghentikan klien TUI lokal yang terverifikasi. - Perbaikan rute Codex untuk ref model
openai-codex/*lama dalam model utama, fallback, override heartbeat/subagen/compaction, hook, override model channel, dan pin rute sesi;--fixmenulis ulangnya keopenai/*, menghapus pin runtime sesi/seluruh agen yang usang, dan membiarkan ref agen OpenAI kanonis pada harness Codex default. - Audit konfigurasi supervisor (launchd/systemd/schtasks) dengan perbaikan opsional.
- Pembersihan lingkungan proxy tertanam untuk layanan gateway yang menangkap nilai shell
HTTP_PROXY/HTTPS_PROXY/NO_PROXYsaat instalasi atau pembaruan. - Pemeriksaan praktik terbaik runtime Gateway (Node vs Bun, path pengelola versi).
- Diagnostik tabrakan port Gateway (default
18789).
Auth, keamanan, dan pairing
Auth, keamanan, dan pairing
- Peringatan keamanan untuk kebijakan DM terbuka.
- Pemeriksaan auth Gateway untuk mode token lokal (menawarkan pembuatan token saat tidak ada sumber token; tidak menimpa konfigurasi token SecretRef).
- Deteksi masalah pairing perangkat (permintaan pairing pertama kali yang tertunda, peningkatan peran/cakupan yang tertunda, drift cache token perangkat lokal yang usang, dan drift auth catatan yang dipasangkan).
Workspace dan shell
Workspace dan shell
- Pemeriksaan linger systemd di Linux.
- Pemeriksaan ukuran file bootstrap workspace (peringatan pemotongan/hampir batas untuk file konteks).
- Pemeriksaan kesiapan Skills untuk agen default; melaporkan skill yang diizinkan dengan bin, env, konfigurasi, atau persyaratan OS yang hilang, dan
--fixdapat menonaktifkan skill yang tidak tersedia diskills.entries. - Pemeriksaan status penyelesaian shell dan pemasangan/peningkatan otomatis.
- Pemeriksaan kesiapan penyedia embedding pencarian memori (model lokal, kunci API jarak jauh, atau biner QMD).
- Pemeriksaan instalasi sumber (ketidakcocokan workspace pnpm, aset UI hilang, biner tsx hilang).
- Menulis konfigurasi yang diperbarui + metadata wizard.
Backfill dan reset UI Dreams
Scene Dreams Control UI menyertakan tindakan Backfill, Reset, dan Clear Grounded untuk alur kerja dreaming grounded. Tindakan ini menggunakan metode RPC bergaya doctor gateway, tetapi bukan bagian dari perbaikan/migrasi CLIopenclaw doctor.
Yang dilakukan:
- Backfill memindai file historis
memory/YYYY-MM-DD.mddi workspace aktif, menjalankan pass diarI REM grounded, dan menulis entri backfill yang dapat dibalik keDREAMS.md. - Reset hanya menghapus entri diari backfill bertanda tersebut dari
DREAMS.md. - Clear Grounded hanya menghapus entri jangka pendek khusus grounded yang sudah distage, yang berasal dari replay historis dan belum mengumpulkan recall live atau dukungan harian.
- tindakan ini tidak mengedit
MEMORY.md - tindakan ini tidak menjalankan migrasi doctor penuh
- tindakan ini tidak otomatis men-stage kandidat grounded ke penyimpanan promosi jangka pendek live kecuali Anda secara eksplisit menjalankan jalur CLI staged terlebih dahulu
DREAMS.md sebagai permukaan peninjauan.
Perilaku dan alasan terperinci
0. Pembaruan opsional (instalasi git)
0. Pembaruan opsional (instalasi git)
1. Normalisasi konfigurasi
1. Normalisasi konfigurasi
messages.ackReaction tanpa override spesifik channel), doctor menormalkannya ke skema saat ini.Itu mencakup field datar Talk lama. Konfigurasi speech Talk publik saat ini adalah talk.provider + talk.providers.<provider>, dan konfigurasi suara realtime adalah talk.realtime.*. Doctor menulis ulang bentuk talk.voiceId / talk.voiceAliases / talk.modelId / talk.outputFormat / talk.apiKey lama ke peta penyedia, dan menulis ulang pemilih realtime tingkat atas lama (talk.mode, talk.transport, talk.brain, talk.model, talk.voice) ke talk.realtime.Doctor juga memperingatkan saat plugins.allow tidak kosong dan kebijakan alat menggunakan
entri alat wildcard atau milik plugin. tools.allow: ["*"] hanya cocok dengan alat
dari plugin yang benar-benar dimuat; itu tidak melewati allowlist plugin eksklusif.
Doctor menulis plugins.bundledDiscovery: "compat" untuk konfigurasi allowlist lama
yang dimigrasikan guna mempertahankan perilaku penyedia bundled yang ada, lalu
menunjuk ke pengaturan "allowlist" yang lebih ketat.2. Migrasi kunci konfigurasi lama
2. Migrasi kunci konfigurasi lama
openclaw doctor.Doctor akan:- Menjelaskan kunci lama mana yang ditemukan.
- Menampilkan migrasi yang diterapkan.
- Menulis ulang
~/.openclaw/openclaw.jsondengan skema yang diperbarui.
openclaw doctor --fix; startup tidak menulis ulang openclaw.json. Migrasi penyimpanan job Cron juga ditangani oleh openclaw doctor --fix.Migrasi saat ini: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- konfigurasi channel terkonfigurasi yang tidak memiliki kebijakan balasan terlihat →
messages.groupChat.visibleReplies: "message_tool" routing.queue→messages.queuerouting.bindings→bindingstingkat teratasrouting.agents/routing.defaultAgentId→agents.list+agents.list[].defaulttalk.voiceId/talk.voiceAliases/talk.modelId/talk.outputFormat/talk.apiKeylama →talk.provider+talk.providers.<provider>- pemilih Talk realtime tingkat teratas lama (
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"danmessages.tts.providers.edge→messages.tts.provider: "microsoft"danmessages.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"danplugins.entries.voice-call.config.tts.providers.edge→provider: "microsoft"danproviders.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- Untuk channel dengan
accountsbernama tetapi masih memiliki nilai channel tingkat teratas akun tunggal yang tersisa, pindahkan nilai bercakupan akun tersebut ke akun yang dipromosikan yang dipilih untuk channel itu (accounts.defaultuntuk sebagian besar channel; Matrix dapat mempertahankan target bernama/default cocok yang sudah ada) 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- hapus
agents.defaults.llm; gunakanmodels.providers.<id>.timeoutSecondsuntuk timeout provider/model lambat browser.ssrfPolicy.allowPrivateNetwork→browser.ssrfPolicy.dangerouslyAllowPrivateNetworkbrowser.profiles.*.driver: "extension"→"existing-session"- hapus
browser.relayBindHost(pengaturan relay ekstensi lama) models.providers.*.api: "openai"lama →"openai-completions"(startup gateway juga melewati provider yangapi-nya disetel ke nilai enum mendatang atau tidak dikenal alih-alih gagal tertutup)- hapus
plugins.entries.codex.config.codexDynamicToolsProfile; server aplikasi Codex selalu mempertahankan alat workspace native Codex tetap native
- Jika dua atau lebih entri
channels.<channel>.accountsdikonfigurasi tanpachannels.<channel>.defaultAccountatauaccounts.default, doctor memperingatkan bahwa perutean fallback dapat memilih akun yang tidak terduga. - Jika
channels.<channel>.defaultAccountdisetel ke ID akun yang tidak dikenal, doctor memperingatkan dan mencantumkan ID akun yang dikonfigurasi.
2b. Penggantian provider OpenCode
2b. Penggantian provider OpenCode
models.providers.opencode, opencode-zen, atau opencode-go secara manual, itu akan menggantikan katalog bawaan OpenCode dari @earendil-works/pi-ai. Hal itu dapat memaksa model ke API yang salah atau mengosongkan biaya. Doctor memperingatkan agar Anda dapat menghapus penggantian tersebut dan memulihkan perutean API + biaya per model.2c. Migrasi browser dan kesiapan Chrome MCP
2c. Migrasi browser dan kesiapan Chrome MCP
browser.profiles.*.driver: "extension"menjadi"existing-session"browser.relayBindHostdihapus
defaultProfile: "user" atau profil existing-session yang dikonfigurasi:- memeriksa apakah Google Chrome terinstal pada host yang sama untuk profil auto-connect default
- memeriksa versi Chrome yang terdeteksi dan memperingatkan jika lebih rendah dari Chrome 144
- mengingatkan Anda untuk mengaktifkan remote debugging di halaman inspect browser (misalnya
chrome://inspect/#remote-debugging,brave://inspect/#remote-debugging, atauedge://inspect/#remote-debugging)
- browser berbasis Chromium 144+ pada host gateway/node
- browser berjalan secara lokal
- remote debugging diaktifkan di browser tersebut
- menyetujui prompt persetujuan attach pertama di browser
responsebody, ekspor PDF, intersepsi unduhan, dan aksi batch masih memerlukan browser terkelola atau profil CDP mentah.Pemeriksaan ini tidak berlaku untuk Docker, sandbox, remote-browser, atau alur headless lainnya. Semua itu tetap menggunakan CDP mentah.2d. Prasyarat TLS OAuth
2d. Prasyarat TLS OAuth
UNABLE_TO_GET_ISSUER_CERT_LOCALLY, sertifikat kedaluwarsa, atau sertifikat self-signed), doctor mencetak panduan perbaikan khusus platform. Pada macOS dengan Node dari Homebrew, perbaikannya biasanya brew postinstall ca-certificates. Dengan --deep, pemeriksaan berjalan meskipun gateway sehat.2e. Penggantian provider OAuth Codex
2e. Penggantian provider OAuth Codex
models.providers.openai-codex, pengaturan itu dapat menutupi path provider OAuth Codex bawaan yang digunakan secara otomatis oleh rilis yang lebih baru. Doctor memperingatkan saat melihat pengaturan transport lama tersebut bersama OAuth Codex agar Anda dapat menghapus atau menulis ulang penggantian transport usang itu dan mendapatkan kembali perilaku perutean/fallback bawaan. Proxy kustom dan penggantian khusus header tetap didukung dan tidak memicu peringatan ini.2f. Perbaikan rute Codex
2f. Perbaikan rute Codex
openai-codex/* lama. Perutean harness native Codex menggunakan ref model kanonis openai/*; giliran agen OpenAI melewati harness server aplikasi Codex, bukan path OpenClaw PI OpenAI.Dalam mode --fix / --repair, doctor menulis ulang ref default-agent dan per-agent yang terpengaruh, termasuk model primer, fallback, penggantian heartbeat/subagent/compaction, hook, penggantian model channel, dan state rute sesi persisten yang usang:openai-codex/gpt-*menjadiopenai/gpt-*.- Intent Codex berpindah ke entri
agentRuntime.id: "codex"bercakupan provider/model untuk ref model agen yang diperbaiki sehingga profil authopenai-codex:...masih dapat dipilih setelah ref model menjadiopenai/*. - Konfigurasi runtime seluruh agen yang usang dan pin runtime sesi persisten dihapus karena pemilihan runtime bercakupan provider/model.
- Kebijakan runtime provider/model yang sudah ada dipertahankan kecuali ref model lama yang diperbaiki memerlukan perutean Codex untuk mempertahankan path auth lama.
- Daftar fallback model yang sudah ada dipertahankan dengan entri lamanya ditulis ulang; pengaturan per-model yang disalin berpindah dari kunci lama ke kunci kanonis
openai/*. modelProvider/providerOverride,model/modelOverride, pemberitahuan fallback, dan pin auth-profile sesi persisten diperbaiki di seluruh store sesi agen yang ditemukan./codex ...berarti “mengontrol atau mengikat percakapan native Codex dari chat.”/acp ...atauruntime: "acp"berarti “menggunakan adaptor ACP/acpx eksternal.”
2g. Pembersihan rute sesi
2g. Pembersihan rute sesi
openclaw doctor --fix dapat menghapus state usang auto-created seperti pin model modelOverrideSource: "auto", metadata model runtime, ID harness yang dipin, binding sesi CLI, dan penggantian auth-profile otomatis saat rute pemiliknya tidak lagi dikonfigurasi. Pilihan model pengguna eksplisit atau sesi lama dilaporkan untuk peninjauan manual dan dibiarkan tidak tersentuh; alihkan dengan /model ..., /new, atau reset sesi saat rute itu tidak lagi dimaksudkan.3. Migrasi state lama (tata letak disk)
3. Migrasi state lama (tata letak disk)
- Store sesi + transkrip:
- dari
~/.openclaw/sessions/ke~/.openclaw/agents/<agentId>/sessions/
- dari
- Direktori agen:
- dari
~/.openclaw/agent/ke~/.openclaw/agents/<agentId>/agent/
- dari
- State auth WhatsApp (Baileys):
- dari
~/.openclaw/credentials/*.jsonlama (kecualioauth.json) - ke
~/.openclaw/credentials/whatsapp/<accountId>/...(ID akun default:default)
- dari
doctor --fix berulang.3a. Migrasi manifes Plugin lama
3a. Migrasi manifes Plugin lama
speechProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, mediaUnderstandingProviders, imageGenerationProviders, videoGenerationProviders, webFetchProviders, webSearchProviders). Jika ditemukan, doctor menawarkan untuk memindahkannya ke objek contracts dan menulis ulang file manifes di tempat. Migrasi ini idempoten; jika kunci contracts sudah memiliki nilai yang sama, kunci lama dihapus tanpa menduplikasi data.3b. Migrasi store Cron lama
3b. Migrasi store Cron lama
~/.openclaw/cron/jobs.json secara default, atau cron.store saat diganti) untuk bentuk job lama yang masih diterima scheduler demi kompatibilitas.Pembersihan Cron saat ini meliputi:jobId→idschedule.cron→schedule.expr- bidang payload tingkat atas (
message,model,thinking, …) →payload - bidang pengiriman tingkat atas (
deliver,channel,to,provider, …) →delivery - alias pengiriman
providerpayload →delivery.channeleksplisit - tugas fallback webhook
notify: truelama yang sederhana →delivery.mode="webhook"eksplisit dengandelivery.to=cron.webhook
notify: true ketika dapat melakukannya tanpa mengubah perilaku. Jika sebuah tugas menggabungkan fallback notify lama dengan mode pengiriman non-webhook yang sudah ada, doctor memperingatkan dan membiarkan tugas itu untuk ditinjau manual.Di Linux, doctor juga memperingatkan ketika crontab pengguna masih memanggil ~/.openclaw/bin/ensure-whatsapp.sh lama. Skrip lokal host itu tidak dipelihara oleh OpenClaw saat ini dan dapat menulis pesan Gateway inactive palsu ke ~/.openclaw/logs/whatsapp-health.log ketika cron tidak dapat menjangkau bus pengguna systemd. Hapus entri crontab usang dengan crontab -e; gunakan openclaw channels status --probe, openclaw doctor, dan openclaw gateway status untuk pemeriksaan kesehatan saat ini.3c. Pembersihan kunci sesi
3c. Pembersihan kunci sesi
--fix / --repair, doctor menghapus file kunci usang secara otomatis; jika tidak, doctor mencetak catatan dan menginstruksikan Anda untuk menjalankan ulang dengan --fix.3d. Perbaikan cabang transkrip sesi
3d. Perbaikan cabang transkrip sesi
--fix / --repair, doctor mencadangkan setiap file yang terdampak di sebelah file asli dan menulis ulang transkrip ke cabang aktif sehingga riwayat gateway dan pembaca memori tidak lagi melihat giliran duplikat.4. Pemeriksaan integritas status (persistensi sesi, perutean, dan keamanan)
4. Pemeriksaan integritas status (persistensi sesi, perutean, dan keamanan)
- Direktori status hilang: memperingatkan tentang kehilangan status yang katastrofik, meminta untuk membuat ulang direktori, dan mengingatkan Anda bahwa data yang hilang tidak dapat dipulihkan.
- Izin direktori status: memverifikasi kemampuan tulis; menawarkan untuk memperbaiki izin (dan mengeluarkan petunjuk
chownketika ketidakcocokan pemilik/grup terdeteksi). - Direktori status tersinkron cloud macOS: memperingatkan ketika status terselesaikan di bawah iCloud Drive (
~/Library/Mobile Documents/com~apple~CloudDocs/...) atau~/Library/CloudStorage/...karena jalur yang didukung sinkronisasi dapat menyebabkan I/O lebih lambat dan race kunci/sinkronisasi. - Direktori status SD atau eMMC Linux: memperingatkan ketika status terselesaikan ke sumber mount
mmcblk*, karena I/O acak yang didukung SD atau eMMC dapat lebih lambat dan lebih cepat aus akibat penulisan sesi dan kredensial. - Direktori sesi hilang:
sessions/dan direktori penyimpanan sesi diperlukan untuk mempertahankan riwayat dan menghindari crashENOENT. - Ketidakcocokan transkrip: memperingatkan ketika entri sesi terbaru memiliki file transkrip yang hilang.
- Sesi utama “JSONL 1 baris”: menandai ketika transkrip utama hanya memiliki satu baris (riwayat tidak terakumulasi).
- Beberapa direktori status: memperingatkan ketika beberapa folder
~/.openclawada di berbagai direktori home atau ketikaOPENCLAW_STATE_DIRmenunjuk ke tempat lain (riwayat dapat terpecah antarinstalasi). - Pengingat mode jarak jauh: jika
gateway.mode=remote, doctor mengingatkan Anda untuk menjalankannya di host jarak jauh (status berada di sana). - Izin file konfigurasi: memperingatkan jika
~/.openclaw/openclaw.jsondapat dibaca oleh grup/dunia dan menawarkan untuk memperketatnya ke600.
5. Kesehatan auth model (kedaluwarsa OAuth)
5. Kesehatan auth model (kedaluwarsa OAuth)
--non-interactive melewati upaya penyegaran.Ketika penyegaran OAuth gagal secara permanen (misalnya refresh_token_reused, invalid_grant, atau provider memberi tahu Anda untuk masuk lagi), doctor melaporkan bahwa auth ulang diperlukan dan mencetak perintah openclaw models auth login --provider ... yang persis untuk dijalankan.Doctor juga melaporkan profil auth yang untuk sementara tidak dapat digunakan karena:- cooldown singkat (batas laju/timeout/kegagalan auth)
- penonaktifan lebih lama (kegagalan penagihan/kredit)
6. Validasi model hooks
6. Validasi model hooks
hooks.gmail.model ditetapkan, doctor memvalidasi referensi model terhadap katalog dan allowlist serta memperingatkan ketika referensi itu tidak akan terselesaikan atau tidak diizinkan.7. Perbaikan image sandbox
7. Perbaikan image sandbox
7b. Pembersihan instalasi Plugin
7b. Pembersihan instalasi Plugin
openclaw doctor --fix / openclaw doctor --repair. Ini mencakup root dependensi yang dihasilkan dan sudah usang, direktori tahap instal lama, sisa lokal paket dari kode perbaikan dependensi plugin bawaan sebelumnya, serta salinan npm terkelola dari plugin @openclaw/* bawaan yang yatim atau dipulihkan yang dapat menutupi manifes bawaan saat ini. Doctor juga menautkan ulang paket host openclaw ke plugin npm terkelola yang mendeklarasikan peerDependencies.openclaw, sehingga impor runtime lokal paket seperti openclaw/plugin-sdk/* tetap terselesaikan setelah pembaruan atau perbaikan npm.Doctor juga dapat menginstal ulang plugin unduhan yang hilang ketika konfigurasi merujuknya tetapi registry plugin lokal tidak dapat menemukannya. Contohnya meliputi plugins.entries material, pengaturan channel/provider/search yang dikonfigurasi, dan runtime agen yang dikonfigurasi. Selama pembaruan paket, doctor menghindari menjalankan perbaikan plugin package-manager saat paket inti sedang diganti; jalankan openclaw doctor --fix lagi setelah pembaruan jika plugin yang dikonfigurasi masih perlu dipulihkan. Startup Gateway dan pemuatan ulang konfigurasi tidak menjalankan package manager; instalasi plugin tetap menjadi pekerjaan doctor/install/update yang eksplisit.8. Migrasi layanan Gateway dan petunjuk pembersihan
8. Migrasi layanan Gateway dan petunjuk pembersihan
openclaw gateway status --deep atau openclaw doctor --deep, lalu hapus duplikatnya atau tetapkan OPENCLAW_SERVICE_REPAIR_POLICY=external ketika supervisor sistem memiliki siklus hidup gateway.8b. Migrasi Matrix startup
8b. Migrasi Matrix startup
--fix / --repair) membuat snapshot pra-migrasi lalu menjalankan langkah migrasi upaya terbaik: migrasi status Matrix lama dan persiapan status terenkripsi lama. Kedua langkah tidak fatal; kesalahan dicatat dan startup berlanjut. Dalam mode hanya baca (openclaw doctor tanpa --fix), pemeriksaan ini dilewati sepenuhnya.8c. Penyandingan perangkat dan drift auth
8c. Penyandingan perangkat dan drift auth
- permintaan penyandingan pertama kali yang tertunda
- peningkatan peran yang tertunda untuk perangkat yang sudah disandingkan
- peningkatan scope yang tertunda untuk perangkat yang sudah disandingkan
- perbaikan ketidakcocokan kunci publik ketika id perangkat masih cocok tetapi identitas perangkat tidak lagi cocok dengan catatan yang disetujui
- catatan tersanding yang tidak memiliki token aktif untuk peran yang disetujui
- token tersanding yang scope-nya bergeser di luar baseline penyandingan yang disetujui
- entri token perangkat cache lokal untuk mesin saat ini yang lebih lama dari rotasi token sisi gateway atau membawa metadata scope usang
- periksa permintaan tertunda dengan
openclaw devices list - setujui permintaan persis dengan
openclaw devices approve <requestId> - putar token baru dengan
openclaw devices rotate --device <deviceId> --role <role> - hapus dan setujui ulang catatan usang dengan
openclaw devices remove <deviceId>
9. Peringatan keamanan
9. Peringatan keamanan
10. systemd linger (Linux)
10. systemd linger (Linux)
11. Status workspace (Skills, plugin, dan direktori lama)
11. Status workspace (Skills, plugin, dan direktori lama)
- Status Skills: menghitung Skills yang eligible, missing-requirements, dan diblokir allowlist.
- Direktori workspace lama: memperingatkan ketika
~/openclawatau direktori workspace lama lainnya ada berdampingan dengan workspace saat ini. - Status Plugin: menghitung plugin yang diaktifkan/dinonaktifkan/bererror; mencantumkan ID plugin untuk error apa pun; melaporkan kapabilitas plugin bundle.
- Peringatan kompatibilitas Plugin: menandai plugin yang memiliki masalah kompatibilitas dengan runtime saat ini.
- Diagnostik Plugin: menampilkan peringatan atau error waktu muat apa pun yang dikeluarkan oleh registry plugin.
11b. Ukuran file bootstrap
11b. Ukuran file bootstrap
AGENTS.md, CLAUDE.md, atau file konteks lain yang diinjeksikan) mendekati atau melebihi anggaran karakter yang dikonfigurasi. Doctor melaporkan jumlah karakter mentah vs. terinjeksi per file, persentase pemotongan, penyebab pemotongan (max/file atau max/total), dan total karakter terinjeksi sebagai fraksi dari total anggaran. Ketika file dipotong atau mendekati batas, doctor mencetak kiat untuk menyetel agents.defaults.bootstrapMaxChars dan agents.defaults.bootstrapTotalMaxChars.11d. Pembersihan plugin channel usang
11d. Pembersihan plugin channel usang
openclaw doctor --fix menghapus plugin channel yang hilang, doctor juga menghapus konfigurasi berscope channel yang menggantung yang merujuk plugin itu: entri channels.<id>, target heartbeat yang menamai channel tersebut, dan override agents.*.models["<channel>/*"]. Ini mencegah loop boot Gateway ketika runtime channel sudah hilang tetapi konfigurasi masih meminta gateway untuk mengikat ke runtime itu.11c. Pelengkapan shell
11c. Pelengkapan shell
- Jika profil shell menggunakan pola penyelesaian dinamis yang lambat (
source <(openclaw completion ...)), doctor memutakhirkannya ke varian file cache yang lebih cepat. - Jika penyelesaian dikonfigurasi di profil tetapi file cache tidak ada, doctor membuat ulang cache secara otomatis.
- Jika tidak ada penyelesaian yang dikonfigurasi sama sekali, doctor meminta pemasangannya (hanya mode interaktif; dilewati dengan
--non-interactive).
openclaw completion --write-state untuk membuat ulang cache secara manual.12. Pemeriksaan autentikasi Gateway (token lokal)
12. Pemeriksaan autentikasi Gateway (token lokal)
- Jika mode token memerlukan token dan tidak ada sumber token, doctor menawarkan untuk membuatnya.
- Jika
gateway.auth.tokendikelola SecretRef tetapi tidak tersedia, doctor memperingatkan dan tidak menimpanya dengan teks biasa. openclaw doctor --generate-gateway-tokenmemaksa pembuatan hanya ketika tidak ada SecretRef token yang dikonfigurasi.
12b. Perbaikan sadar SecretRef hanya-baca
12b. Perbaikan sadar SecretRef hanya-baca
openclaw doctor --fixsekarang menggunakan model ringkasan SecretRef hanya-baca yang sama seperti perintah keluarga status untuk perbaikan konfigurasi yang ditargetkan.- Contoh: perbaikan Telegram
allowFrom/groupAllowFrom@usernamemencoba menggunakan kredensial bot yang dikonfigurasi saat tersedia. - Jika token bot Telegram dikonfigurasi melalui SecretRef tetapi tidak tersedia di jalur perintah saat ini, doctor melaporkan bahwa kredensial sudah dikonfigurasi-tetapi-tidak-tersedia dan melewati resolusi otomatis alih-alih crash atau salah melaporkan token sebagai hilang.
13. Pemeriksaan kesehatan Gateway + restart
13. Pemeriksaan kesehatan Gateway + restart
13b. Kesiapan pencarian memori
13b. Kesiapan pencarian memori
- Backend QMD: memeriksa apakah biner
qmdtersedia dan dapat dijalankan. Jika tidak, mencetak panduan perbaikan termasuk paket npm dan opsi jalur biner manual. - Penyedia lokal eksplisit: memeriksa file model lokal atau URL model jarak jauh/yang dapat diunduh yang dikenali. Jika hilang, menyarankan beralih ke penyedia jarak jauh.
- Penyedia jarak jauh eksplisit (
openai,voyage, dll.): memverifikasi bahwa kunci API ada di lingkungan atau penyimpanan auth. Mencetak petunjuk perbaikan yang dapat ditindaklanjuti jika hilang. - Penyedia otomatis: memeriksa ketersediaan model lokal terlebih dahulu, lalu mencoba setiap penyedia jarak jauh dalam urutan pemilihan otomatis.
openclaw memory status --deep untuk memverifikasi kesiapan embedding saat runtime.14. Peringatan status channel
14. Peringatan status channel
15. Audit + perbaikan konfigurasi supervisor
15. Audit + perbaikan konfigurasi supervisor
openclaw doctormeminta konfirmasi sebelum menulis ulang konfigurasi supervisor.openclaw doctor --yesmenerima prompt perbaikan default.openclaw doctor --repairmenerapkan perbaikan yang direkomendasikan tanpa prompt.openclaw doctor --repair --forcemenimpa konfigurasi supervisor kustom.OPENCLAW_SERVICE_REPAIR_POLICY=externalmembuat doctor hanya-baca untuk siklus hidup layanan Gateway. Doctor tetap melaporkan kesehatan layanan dan menjalankan perbaikan non-layanan, tetapi melewati pemasangan/start/restart/bootstrap layanan, penulisan ulang konfigurasi supervisor, dan pembersihan layanan lama karena supervisor eksternal memiliki siklus hidup tersebut.- Di Linux, doctor tidak menulis ulang metadata perintah/entrypoint saat unit Gateway systemd yang cocok aktif. Doctor juga mengabaikan unit tambahan mirip Gateway non-legacy yang tidak aktif selama pemindaian layanan duplikat sehingga file layanan pendamping tidak membuat kebisingan pembersihan.
- Jika auth token memerlukan token dan
gateway.auth.tokendikelola SecretRef, pemasangan/perbaikan layanan doctor memvalidasi SecretRef tetapi tidak menyimpan nilai token teks biasa yang terselesaikan ke metadata lingkungan layanan supervisor. - Doctor mendeteksi nilai lingkungan layanan yang dikelola
.env/berbasis SecretRef yang sebelumnya disematkan inline oleh pemasangan LaunchAgent, systemd, atau Windows Scheduled Task lama dan menulis ulang metadata layanan sehingga nilai tersebut dimuat dari sumber runtime alih-alih definisi supervisor. - Doctor mendeteksi ketika perintah layanan masih mematok
--portlama setelahgateway.portberubah dan menulis ulang metadata layanan ke port saat ini. - Jika auth token memerlukan token dan SecretRef token yang dikonfigurasi belum terselesaikan, doctor memblokir jalur pemasangan/perbaikan dengan panduan yang dapat ditindaklanjuti.
- Jika
gateway.auth.tokendangateway.auth.passwordsama-sama dikonfigurasi dangateway.auth.modebelum diatur, doctor memblokir pemasangan/perbaikan hingga mode diatur secara eksplisit. - Untuk unit user-systemd Linux, pemeriksaan drift token doctor sekarang menyertakan sumber
Environment=danEnvironmentFile=saat membandingkan metadata auth layanan. - Perbaikan layanan doctor menolak menulis ulang, menghentikan, atau me-restart layanan Gateway dari biner OpenClaw yang lebih lama ketika konfigurasi terakhir ditulis oleh versi yang lebih baru. Lihat Pemecahan masalah Gateway.
- Anda selalu dapat memaksa penulisan ulang penuh melalui
openclaw gateway install --force.
16. Diagnostik runtime + port Gateway
16. Diagnostik runtime + port Gateway
18789) dan melaporkan kemungkinan penyebabnya (Gateway sudah berjalan, tunnel SSH).17. Praktik terbaik runtime Gateway
17. Praktik terbaik runtime Gateway
nvm, fnm, volta, asdf, dll.). Channel WhatsApp + Telegram memerlukan Node, dan jalur pengelola versi dapat rusak setelah upgrade karena layanan tidak memuat init shell Anda. Doctor menawarkan migrasi ke instalasi Node sistem ketika tersedia (Homebrew/apt/choco).LaunchAgent macOS yang baru dipasang atau diperbaiki menggunakan PATH sistem kanonis (/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin) alih-alih menyalin PATH shell interaktif, sehingga biner sistem yang dikelola Homebrew tetap tersedia sementara Volta, asdf, fnm, pnpm, dan direktori pengelola versi lain tidak mengubah Node mana yang diselesaikan oleh proses anak. Layanan Linux tetap mempertahankan root lingkungan eksplisit (NVM_DIR, FNM_DIR, VOLTA_HOME, ASDF_DATA_DIR, BUN_INSTALL, PNPM_HOME) dan direktori user-bin yang stabil, tetapi direktori fallback pengelola versi yang ditebak hanya ditulis ke PATH layanan ketika direktori tersebut ada di disk.18. Penulisan konfigurasi + metadata wizard
18. Penulisan konfigurasi + metadata wizard
19. Tips workspace (cadangan + sistem memori)
19. Tips workspace (cadangan + sistem memori)