CLI commands
Diagnostik
openclaw doctor
Pemeriksaan kesehatan + perbaikan cepat untuk Gateway dan saluran.
Terkait:
- Pemecahan masalah: Pemecahan masalah
- Audit keamanan: Keamanan
Contoh
openclaw doctor
openclaw doctor --repair
openclaw doctor --deep
openclaw doctor --repair --non-interactive
openclaw doctor --generate-gateway-token
Opsi
--no-workspace-suggestions: nonaktifkan saran memori/pencarian ruang kerja--yes: terima default tanpa meminta konfirmasi--repair: terapkan perbaikan non-layanan yang direkomendasikan tanpa meminta konfirmasi; pemasangan dan penulisan ulang layanan Gateway tetap memerlukan konfirmasi interaktif atau perintah Gateway eksplisit--fix: alias untuk--repair--force: terapkan perbaikan agresif, termasuk menimpa konfigurasi layanan khusus bila diperlukan--non-interactive: jalankan tanpa prompt; hanya migrasi aman dan perbaikan non-layanan--generate-gateway-token: buat dan konfigurasikan token Gateway--deep: pindai layanan sistem untuk pemasangan Gateway tambahan dan laporkan handoff restart supervisor Gateway terbaru
Catatan:
- Dalam mode Nix (
OPENCLAW_NIX_MODE=1), pemeriksaan doctor baca-saja tetap berfungsi, tetapidoctor --fix,doctor --repair,doctor --yes, dandoctor --generate-gateway-tokendinonaktifkan karenaopenclaw.jsontidak dapat diubah. Edit sumber Nix untuk pemasangan ini sebagai gantinya; untuk nix-openclaw, gunakan Mulai Cepat yang mengutamakan agen. - Prompt interaktif (seperti perbaikan keychain/OAuth) hanya berjalan ketika stdin adalah TTY dan
--non-interactivetidak disetel. Eksekusi tanpa kepala (cron, Telegram, tanpa terminal) akan melewati prompt. - Performa: eksekusi
doctornon-interaktif melewati pemuatan Plugin secara eager agar pemeriksaan kesehatan tanpa kepala tetap cepat. Sesi interaktif tetap memuat Plugin sepenuhnya ketika suatu pemeriksaan memerlukan kontribusinya. --fix(alias untuk--repair) menulis cadangan ke~/.openclaw/openclaw.json.bakdan menghapus kunci konfigurasi yang tidak dikenal, dengan mencantumkan setiap penghapusan.doctor --fix --non-interactivemelaporkan definisi layanan Gateway yang hilang atau kedaluwarsa tetapi tidak memasang atau menulis ulang definisi tersebut di luar mode perbaikan pembaruan. Jalankanopenclaw gateway installuntuk layanan yang hilang, atauopenclaw gateway install --forceketika Anda memang ingin mengganti launcher.- Pemeriksaan integritas status kini mendeteksi file transkrip yatim di direktori sesi. Mengarsipkannya sebagai
.deleted.<timestamp>memerlukan konfirmasi interaktif;--fix,--yes, dan eksekusi tanpa kepala membiarkannya tetap di tempat. - Doctor juga memindai
~/.openclaw/cron/jobs.json(ataucron.store) untuk bentuk job cron lama dan dapat menulis ulang di tempat sebelum scheduler harus menormalkannya otomatis saat runtime. - Di Linux, doctor memperingatkan ketika crontab pengguna masih menjalankan
~/.openclaw/bin/ensure-whatsapp.shlama; skrip itu tidak lagi dipelihara dan dapat mencatat pemadaman Gateway WhatsApp palsu ketika cron tidak memiliki lingkungan user-bus systemd. - Ketika WhatsApp diaktifkan, doctor memeriksa event loop Gateway yang terdegradasi dengan klien
openclaw-tuilokal yang masih berjalan.doctor --fixhanya menghentikan klien TUI lokal yang terverifikasi agar balasan WhatsApp tidak mengantre di belakang loop refresh TUI yang kedaluwarsa. - Doctor menulis ulang referensi model lama
openai-codex/*menjadi referensi kanonisopenai/*di seluruh model utama, fallback, penggantian heartbeat/subagen/compaction, hook, penggantian model saluran, dan pin rute sesi kedaluwarsa.--fixmemilihagentRuntime.id: "codex"hanya ketika Plugin Codex terpasang, aktif, menyumbangkan harnesscodex, dan memiliki OAuth yang dapat digunakan; jika tidak, opsi ini memilihagentRuntime.id: "pi"agar rute tetap pada runner default OpenClaw. - Doctor membersihkan status staging dependensi Plugin lama yang dibuat oleh versi OpenClaw yang lebih lama. Doctor juga memperbaiki Plugin yang dapat diunduh tetapi hilang dan dirujuk oleh konfigurasi, seperti
plugins.entries, saluran yang dikonfigurasi, pengaturan provider/pencarian yang dikonfigurasi, atau runtime agen yang dikonfigurasi. Selama pembaruan paket, doctor melewati perbaikan Plugin package-manager sampai penggantian paket selesai; jalankan ulangopenclaw doctor --fixsetelahnya jika Plugin yang dikonfigurasi masih memerlukan pemulihan. Jika unduhan gagal, doctor melaporkan kesalahan pemasangan dan mempertahankan entri Plugin yang dikonfigurasi untuk percobaan perbaikan berikutnya. - Doctor memperbaiki konfigurasi Plugin kedaluwarsa dengan menghapus id Plugin yang hilang dari
plugins.allow/plugins.entries, ditambah konfigurasi saluran yang menggantung, target heartbeat, dan penggantian model saluran yang cocok ketika penemuan Plugin sehat. - Doctor mengarantina konfigurasi Plugin yang tidak valid dengan menonaktifkan entri
plugins.entries.<id>yang terdampak dan menghapus payloadconfigyang tidak valid. Startup Gateway sudah melewati hanya Plugin bermasalah tersebut sehingga Plugin dan saluran lain dapat tetap berjalan. - Setel
OPENCLAW_SERVICE_REPAIR_POLICY=externalketika supervisor lain memiliki siklus hidup Gateway. Doctor tetap melaporkan kesehatan Gateway/layanan dan menerapkan perbaikan non-layanan, tetapi melewati pemasangan/mulai/restart/bootstrap layanan dan pembersihan layanan lama. - Di Linux, doctor mengabaikan unit systemd tambahan mirip Gateway yang tidak aktif dan tidak menulis ulang metadata perintah/entrypoint untuk layanan Gateway systemd yang sedang berjalan selama perbaikan. Hentikan layanan terlebih dahulu atau gunakan
openclaw gateway install --forceketika Anda memang ingin mengganti launcher aktif. - Doctor otomatis memigrasikan konfigurasi Talk datar lama (
talk.voiceId,talk.modelId, dan teman-temannya) ketalk.provider+talk.providers.<provider>. - Eksekusi berulang
doctor --fixtidak lagi melaporkan/menerapkan normalisasi Talk ketika satu-satunya perbedaan adalah urutan kunci objek. - Doctor menyertakan pemeriksaan kesiapan pencarian memori dan dapat merekomendasikan
openclaw configure --section modelketika kredensial embedding hilang. - Doctor memperingatkan ketika tidak ada pemilik perintah yang dikonfigurasi. Pemilik perintah adalah akun operator manusia yang diizinkan menjalankan perintah khusus pemilik dan menyetujui tindakan berbahaya. Pemasangan DM hanya memungkinkan seseorang berbicara dengan bot; jika Anda menyetujui pengirim sebelum bootstrap pemilik pertama ada, setel
commands.ownerAllowFromsecara eksplisit. - Doctor memperingatkan ketika agen mode Codex dikonfigurasi dan aset CLI Codex pribadi ada di home Codex operator. Peluncuran app-server Codex lokal menggunakan home per agen yang terisolasi, jadi gunakan
openclaw migrate codex --dry-rununtuk menginventarisasi aset yang sebaiknya dipromosikan secara sengaja. - Doctor memperingatkan ketika skills yang diizinkan untuk agen default tidak tersedia di lingkungan runtime saat ini karena bin, env var, konfigurasi, atau persyaratan OS hilang.
doctor --fixdapat menonaktifkan skills yang tidak tersedia tersebut denganskills.entries.<skill>.enabled=false; pasang/konfigurasikan persyaratan yang hilang sebagai gantinya ketika Anda ingin menjaga skill tetap aktif. - Jika mode sandbox diaktifkan tetapi Docker tidak tersedia, doctor melaporkan peringatan bernilai tinggi dengan remediasi (
install Dockeratauopenclaw config set agents.defaults.sandbox.mode off). - Jika file registry sandbox lama (
~/.openclaw/sandbox/containers.jsonatau~/.openclaw/sandbox/browsers.json) ada, doctor melaporkannya;openclaw doctor --fixmemigrasikan entri valid ke direktori registry ber-shard dan mengarantina file lama yang tidak valid. - Jika
gateway.auth.token/gateway.auth.passworddikelola SecretRef dan tidak tersedia di jalur perintah saat ini, doctor melaporkan peringatan baca-saja dan tidak menulis kredensial fallback plaintext. - Jika inspeksi SecretRef saluran gagal di jalur perbaikan, doctor melanjutkan dan melaporkan peringatan alih-alih keluar lebih awal.
- Setelah migrasi direktori status, doctor memperingatkan ketika akun Telegram atau Discord default yang aktif bergantung pada fallback env dan
TELEGRAM_BOT_TOKENatauDISCORD_BOT_TOKENtidak tersedia untuk proses doctor. - Resolusi otomatis username
allowFromTelegram (doctor --fix) memerlukan token Telegram yang dapat diresolusikan di jalur perintah saat ini. Jika inspeksi token tidak tersedia, doctor melaporkan peringatan dan melewati resolusi otomatis untuk lintasan tersebut.
macOS: override env launchctl
Jika sebelumnya Anda menjalankan launchctl setenv OPENCLAW_GATEWAY_TOKEN ... (atau ...PASSWORD), nilai tersebut menimpa file konfigurasi Anda dan dapat menyebabkan kesalahan "unauthorized" yang persisten.
launchctl getenv OPENCLAW_GATEWAY_TOKEN
launchctl getenv OPENCLAW_GATEWAY_PASSWORD
launchctl unsetenv OPENCLAW_GATEWAY_TOKEN
launchctl unsetenv OPENCLAW_GATEWAY_PASSWORD