Start here
Penelusuran kesalahan
Pembantu debugging untuk output streaming, iterasi Gateway, dan pembuatan profil startup.
Penggantian konfigurasi debug runtime
/debug menetapkan penggantian konfigurasi khusus runtime (di memori, bukan di disk). Dinonaktifkan secara default; aktifkan dengan commands.debug: true.
/debug show/debug set messages.responsePrefix="[openclaw]"/debug unset messages.responsePrefix/debug reset/debug reset menghapus semua penggantian dan kembali ke konfigurasi di disk.
Output pelacakan sesi
/trace menampilkan baris pelacakan/debug milik plugin untuk satu sesi tanpa mengaktifkan mode verbose penuh. Gunakan untuk diagnostik plugin seperti ringkasan debug Active Memory; gunakan /verbose untuk output status/alat normal.
/trace/trace on/trace offPelacakan siklus hidup Plugin
Tetapkan OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 untuk perincian per fase mengenai metadata plugin, penemuan, registri, cerminan runtime, mutasi konfigurasi, dan pekerjaan penyegaran. Output ditulis ke stderr sehingga output perintah JSON tetap dapat diurai.
OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 openclaw plugins install tokenjuice --force[plugins:lifecycle] phase="config read" ms=6.83 status=ok command="install"[plugins:lifecycle] phase="slot selection" ms=94.31 status=ok command="install" pluginId="tokenjuice"[plugins:lifecycle] phase="registry refresh" ms=51.56 status=ok command="install" reason="source-changed"Gunakan ini sebelum beralih ke profiler CPU. Dari checkout sumber, ukur runtime hasil build dengan node dist/entry.js ... setelah pnpm build; pnpm openclaw ... juga mengukur overhead pelaksana sumber.
Pembuatan profil startup dan perintah CLI
Tolok ukur startup yang disertakan dalam repositori:
pnpm test:startup:bench:smokepnpm tsx scripts/bench-cli-startup.ts --preset real --case status --runs 3pnpm tsx scripts/bench-cli-startup.ts --preset real --cpu-prof-dir .artifacts/cli-cpuUntuk pembuatan profil sekali pakai melalui pelaksana sumber normal, tetapkan OPENCLAW_RUN_NODE_CPU_PROF_DIR:
OPENCLAW_RUN_NODE_CPU_PROF_DIR=.artifacts/cli-cpu pnpm openclaw statusPelaksana sumber menambahkan flag profil CPU Node dan menulis .cpuprofile untuk perintah tersebut. Gunakan ini sebelum menambahkan instrumentasi sementara ke kode perintah.
Untuk startup yang macet dan tampak disebabkan oleh pekerjaan sistem berkas sinkron atau pemuat modul, tambahkan flag pelacakan I/O sinkron Node melalui pelaksana sumber:
OPENCLAW_TRACE_SYNC_IO=1 pnpm openclaw gateway --forcepnpm gateway:watch membiarkan flag ini dinonaktifkan secara default untuk proses anak Gateway yang dipantau; tetapkan OPENCLAW_TRACE_SYNC_IO=1 jika Anda juga menginginkan output pelacakan I/O sinkron dalam mode pemantauan.
Mode pemantauan Gateway
pnpm gateway:watchSecara default, perintah ini memulai atau memulai ulang sesi tmux bernama openclaw-gateway-watch-<profile> (misalnya openclaw-gateway-watch-main), dengan sufiks port seperti openclaw-gateway-watch-dev-19001 yang hanya ditambahkan saat OPENCLAW_GATEWAY_PORT berbeda dari port default 18789. Perintah ini otomatis terhubung dari terminal interaktif; shell noninteraktif, CI, dan panggilan eksekusi agen tetap tidak terhubung dan sebagai gantinya mencetak petunjuk untuk menghubungkan:
tmux attach -t openclaw-gateway-watch-mainPanel tmux menjalankan pemantau mentah:
node scripts/watch-node.mjs gateway --forceHentikan layanan Gateway yang terinstal sebelum memantau port yang sama:
pnpm openclaw gateway stopFlag --force milik pemantau menghapus listener saat ini, tetapi tidak menonaktifkan layanan yang diawasi. Layanan launchd, systemd, atau Scheduled Task dapat aktif kembali dan menggantikan Gateway yang sedang dipantau.
Mode latar depan tanpa tmux:
pnpm gateway:watch:raw# atauOPENCLAW_GATEWAY_WATCH_TMUX=0 pnpm gateway:watchPertahankan pengelolaan tmux tetapi nonaktifkan penyambungan otomatis:
OPENCLAW_GATEWAY_WATCH_ATTACH=0 pnpm gateway:watchBuat profil waktu CPU Gateway yang dipantau saat men-debug titik panas startup/runtime:
pnpm gateway:watch --benchmarkPembungkus pemantauan menggunakan --benchmark sebelum menjalankan Gateway dan menulis satu .cpuprofile V8 untuk setiap proses anak Gateway yang berhenti ke .artifacts/gateway-watch-profiles/. Hentikan atau mulai ulang Gateway yang dipantau untuk menyimpan profil saat ini, lalu buka dengan Chrome DevTools atau Speedscope:
npx speedscope .artifacts/gateway-watch-profiles/*.cpuprofile--benchmark-dir <path>: tulis profil di lokasi lain.--benchmark-no-force: lewati pembersihan port default oleh--forcedan segera gagal jika port Gateway sudah digunakan.
Mode tolok ukur menyembunyikan spam pelacakan I/O sinkron secara default. Tetapkan OPENCLAW_TRACE_SYNC_IO=1 bersama --benchmark untuk mendapatkan profil CPU dan pelacakan tumpukan I/O sinkron; dalam mode tolok ukur, blok pelacakan tersebut ditulis ke gateway-watch-output.log di dalam direktori tolok ukur (difilter dari panel terminal), sedangkan log Gateway normal tetap terlihat.
Pembungkus tmux meneruskan pemilih runtime umum yang bukan rahasia ke dalam panel, termasuk OPENCLAW_PROFILE, OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR, OPENCLAW_GATEWAY_PORT, dan OPENCLAW_SKIP_CHANNELS. Simpan kredensial penyedia dalam profil/konfigurasi normal Anda, atau gunakan mode latar depan mentah untuk rahasia efemeral sekali pakai.
Jika Gateway yang dipantau berhenti selama startup, pemantau menjalankan openclaw doctor --fix --non-interactive satu kali dan memulai ulang proses anak Gateway. Tetapkan OPENCLAW_GATEWAY_WATCH_AUTO_DOCTOR=0 untuk melihat kegagalan startup asli tanpa tahap perbaikan khusus pengembangan.
Panel tmux yang dikelola menggunakan log Gateway berwarna secara default; tetapkan FORCE_COLOR=0 saat memulai pnpm gateway:watch untuk menonaktifkan output ANSI.
Pemantau memulai ulang saat berkas yang relevan dengan build di bawah src/, berkas sumber ekstensi, metadata package.json dan openclaw.plugin.json ekstensi, tsconfig.json, package.json, serta tsdown.config.ts berubah. Perubahan metadata ekstensi memulai ulang Gateway tanpa memaksa build ulang; perubahan sumber dan konfigurasi tetap membuat ulang dist terlebih dahulu.
Tambahkan flag CLI Gateway setelah gateway:watch dan flag tersebut akan diteruskan pada setiap mulai ulang. Menjalankan ulang perintah pemantauan yang sama akan membuat ulang panel tmux bernama tersebut; pemantau mentah mempertahankan kunci pemantau tunggal sehingga proses induk pemantau duplikat diganti alih-alih menumpuk.
Profil pengembangan + Gateway pengembangan (--dev)
Dua flag --dev yang terpisah:
--devglobal (profil): mengisolasi status di bawah~/.openclaw-devdan menetapkan port Gateway default ke19001(port turunannya ikut bergeser).gateway --dev: memberi tahu Gateway agar otomatis membuat konfigurasi + ruang kerja default saat belum ada (dan melewati bootstrap).
Alur yang disarankan (profil pengembangan + bootstrap pengembangan):
pnpm gateway:devOPENCLAW_PROFILE=dev openclaw tuiTanpa instalasi global, jalankan CLI melalui pnpm openclaw ....
Yang dilakukan:
-
Isolasi profil (
--devglobal)OPENCLAW_PROFILE=devOPENCLAW_STATE_DIR=~/.openclaw-devOPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.jsonOPENCLAW_GATEWAY_PORT=19001(port peramban/kanvas bergeser menyesuaikan)
-
Bootstrap pengembangan (
gateway --dev)- Menulis konfigurasi minimal jika belum ada (
gateway.mode=local, mengikat local loopback). - Menetapkan
agents.defaults.workspaceke ruang kerja pengembangan danagents.defaults.skipBootstrap=true. - Menginisialisasi berkas ruang kerja jika belum ada:
AGENTS.md,SOUL.md,TOOLS.md,IDENTITY.md,USER.md. - Identitas default: C3-PO (droid protokol).
pnpm gateway:devjuga menetapkanOPENCLAW_SKIP_CHANNELS=1untuk melewati penyedia kanal.
- Menulis konfigurasi minimal jika belum ada (
Alur reset (mulai dari awal):
pnpm gateway:dev:reset--reset menghapus konfigurasi, kredensial, sesi, dan ruang kerja pengembangan (dipindahkan ke tempat sampah, bukan dihapus), lalu membuat ulang penyiapan pengembangan default.
Pencatatan stream mentah
OpenClaw dapat mencatat stream mentah asisten sebelum pemfilteran/pemformatan apa pun. Ini adalah cara terbaik untuk mengetahui apakah penalaran diterima sebagai delta teks biasa (atau sebagai blok pemikiran terpisah).
Aktifkan melalui CLI:
pnpm gateway:watch --raw-streamPenggantian jalur opsional:
pnpm gateway:watch --raw-stream --raw-stream-path ~/.openclaw/logs/raw-stream.jsonlVariabel lingkungan yang setara:
OPENCLAW_RAW_STREAM=1OPENCLAW_RAW_STREAM_PATH=~/.openclaw/logs/raw-stream.jsonlBerkas default: ~/.openclaw/logs/raw-stream.jsonl
Catatan keamanan
- Log stream mentah dapat mencakup prompt lengkap, output alat, dan data pengguna.
- Simpan log secara lokal dan hapus setelah debugging.
- Jika Anda membagikan log, hapus rahasia dan PII terlebih dahulu.
Debugging di VSCode
Peta sumber diperlukan karena build menggunakan hash pada nama berkas yang dihasilkan. launch.json yang disertakan menargetkan layanan Gateway:
- Rebuild and Debug Gateway - menghapus
/distdan membuat ulang dengan debugging diaktifkan sebelum memulai Gateway. - Debug Gateway - men-debug build yang ada tanpa menyentuh
/dist.
Penyiapan
- Buka Run and Debug (Activity Bar, atau
Ctrl+Shift+D). - Pilih Rebuild and Debug Gateway, lalu tekan Start Debugging.
Untuk mengelola siklus build/debug secara manual:
- Aktifkan peta sumber di terminal:
- Linux/macOS:
export OUTPUT_SOURCE_MAPS=1 - Windows (PowerShell):
$env:OUTPUT_SOURCE_MAPS="1" - Windows (CMD):
set OUTPUT_SOURCE_MAPS=1
- Linux/macOS:
- Buat ulang:
pnpm clean:dist && pnpm build - Pilih Debug Gateway, lalu tekan Start Debugging.
Tetapkan breakpoint dalam berkas TypeScript di src/; debugger memetakannya ke JavaScript hasil kompilasi melalui peta sumber.
Catatan
- Rebuild and Debug Gateway menghapus
/distdan menjalankanpnpm buildpenuh dengan peta sumber pada setiap peluncuran. - Debug Gateway dapat dimulai/dihentikan tanpa memengaruhi
/dist, tetapi Anda mengelola siklus build di terminal terpisah. - Edit
argsdalamlaunch.jsonuntuk men-debug subperintah CLI lainnya. - Untuk menggunakan CLI hasil build bagi tugas lain (misalnya
dashboard --no-openjika sesi debug Anda menghasilkan token autentikasi baru), jalankan dari terminal lain:node ./openclaw.mjsatau alias sepertialias openclaw-build="node $(pwd)/openclaw.mjs".