Penggantian debug runtime
/debug menetapkan penggantian konfigurasi khusus runtime (di memori, bukan di disk). Dinonaktifkan secara default; aktifkan dengan commands.debug: true.
/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.
Pelacakan siklus hidup plugin
TetapkanOPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 untuk melihat perincian fase demi fase dari metadata plugin, penemuan, registri, cerminan runtime, mutasi konfigurasi, dan pekerjaan penyegaran. Ditulis ke stderr agar output perintah JSON tetap dapat diurai.
Kegagalan pemuatan plugin menyertakan pelacakan tumpukannya saat pelacakan ini diaktifkan.
node dist/entry.js ... setelah pnpm build; pnpm openclaw ... juga mengukur overhead runner sumber.
Untuk pengukuran waktu pemuatan modul sinkron, gunakan permukaan diagnostik bersama, bukan sakelar lingkungan terpisah khusus plugin:
Pemrofilan startup dan perintah CLI
Benchmark startup yang disertakan dalam repositori:OPENCLAW_RUN_NODE_CPU_PROF_DIR:
.cpuprofile untuk perintah tersebut. Gunakan ini sebelum menambahkan instrumentasi sementara ke kode perintah.
Untuk startup yang macet dan tampak seperti pekerjaan sistem berkas atau pemuat modul yang sinkron, tambahkan flag pelacakan I/O sinkron Node melalui runner sumber:
pnpm 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 pantau.
Mode pantau Gateway
openclaw-gateway-watch-<profile> (misalnya openclaw-gateway-watch-main), dengan sufiks port seperti openclaw-gateway-watch-dev-19001 yang hanya ditambahkan ketika OPENCLAW_GATEWAY_PORT berbeda dari port default 18789. Sesi otomatis dilampirkan dari terminal interaktif; shell noninteraktif, CI, dan panggilan eksekusi agen tetap terlepas dan sebagai gantinya mencetak petunjuk untuk melampirkannya:
remain-on-exit tmux, sehingga kegagalan startup tetap tersedia untuk dilampirkan atau ditangkap alih-alih menghapus sesi. Menjalankan ulang pnpm gateway:watch akan memunculkan kembali panel tersebut.
Panel tmux menjalankan pemantau mentah:
--port atau OPENCLAW_GATEWAY_PORT eksplisit berbeda dari port efektif layanan terpasang, pembungkus membiarkan layanan tetap berjalan agar kedua Gateway dapat berjalan berdampingan.
Mode latar depan tanpa tmux:
pnpm openclaw gateway stop terlebih dahulu ketika layanan menggunakan port yang sama.
Pertahankan pengelolaan tmux tetapi nonaktifkan pelampiran otomatis:
--benchmark sebelum memanggil Gateway dan menulis satu .cpuprofile V8 untuk setiap proses anak Gateway yang keluar di bawah .artifacts/gateway-watch-profiles/. Hentikan atau mulai ulang Gateway yang dipantau untuk menyelesaikan profil saat ini, lalu buka dengan Chrome DevTools atau Speedscope:
--benchmark-dir <path>: tulis profil di tempat lain.--benchmark-no-force: lewati pembersihan port default--forcedan langsung gagal jika port Gateway sudah digunakan.
OPENCLAW_TRACE_SYNC_IO=1 bersama --benchmark untuk mendapatkan profil CPU dan pelacakan tumpukan I/O sinkron; dalam mode benchmark, blok pelacakan tersebut masuk ke gateway-watch-output.log di bawah direktori benchmark (disaring dari panel terminal), sementara log Gateway normal tetap terlihat.
Pembungkus tmux meneruskan pemilih runtime umum yang tidak rahasia ke panel, termasuk OPENCLAW_PROFILE, OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR, OPENCLAW_GATEWAY_PORT, dan OPENCLAW_SKIP_CHANNELS. Letakkan kredensial penyedia di profil/konfigurasi normal Anda, atau gunakan mode latar depan mentah untuk rahasia sementara sekali pakai.
Jika Gateway yang dipantau keluar 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 terkelola menggunakan log Gateway berwarna secara default; tetapkan FORCE_COLOR=0 saat memulai pnpm gateway:watch untuk menonaktifkan output ANSI.
Pemantau memulai ulang saat file yang relevan dengan build di bawah src/, file sumber ekstensi, metadata package.json dan openclaw.plugin.json ekstensi, tsconfig.json, package.json, dan tsdown.config.ts berubah. Perubahan metadata ekstensi memulai ulang Gateway tanpa memaksa build ulang; perubahan sumber dan konfigurasi tetap membangun ulang dist terlebih dahulu.
Tambahkan flag CLI Gateway setelah gateway:watch, dan flag tersebut diteruskan pada setiap mulai ulang. Menjalankan ulang perintah pantau yang sama akan memunculkan kembali panel tmux bernama tersebut; pemantau mentah mempertahankan kunci pemantau tunggal agar 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: memerintahkan Gateway untuk otomatis membuat konfigurasi + ruang kerja default jika belum ada (dan melewati bootstrap).
pnpm openclaw ....
Yang dilakukan:
-
Isolasi profil (
--devglobal)OPENCLAW_PROFILE=devOPENCLAW_STATE_DIR=~/.openclaw-devOPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.jsonOPENCLAW_GATEWAY_PORT=19001(port browser/canvas bergeser sesuai dengannya)
-
Bootstrap pengembangan (
gateway --dev)- Menulis konfigurasi minimal jika belum ada (
gateway.mode=local, mengikat ke loopback). - Menetapkan
agents.defaults.workspaceke ruang kerja pengembangan danagents.defaults.skipBootstrap=true. - Mengisi file 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 saluran.
- Menulis konfigurasi minimal jika belum ada (
channels.<id> eksplisit tetap berfungsi. Teruskan --dev-ambient-channels bersama --dev untuk memulihkan konfigurasi otomatis saluran sekitar pada eksekusi tersebut.
Alur pengaturan ulang (mulai dari awal):
--dev adalah flag profil global dan dihapus oleh beberapa runner. Jika perlu menuliskannya secara eksplisit, gunakan bentuk variabel lingkungan:--reset menghapus konfigurasi, kredensial, sesi, dan ruang kerja pengembangan (dipindahkan ke tempat sampah, bukan dihapus secara permanen), lalu membuat ulang pengaturan pengembangan default.
Pencatatan stream mentah
OpenClaw dapat mencatat stream asisten mentah sebelum pemfilteran/pemformatan apa pun. Ini adalah cara terbaik untuk melihat apakah penalaran tiba sebagai delta teks biasa (atau sebagai blok pemikiran terpisah). Aktifkan melalui CLI:~/.openclaw/logs/raw-stream.jsonl
Catatan keamanan
- Log stream mentah dapat menyertakan prompt lengkap, output alat, dan data pengguna.
- Simpan log secara lokal dan hapus setelah debugging.
- Jika Anda membagikan log, bersihkan rahasia dan PII terlebih dahulu.
Debugging di VSCode
Peta sumber diperlukan karena build melakukan hash pada nama file yang dihasilkan.launch.json yang disertakan menargetkan layanan Gateway:
- Rebuild and Debug Gateway - menghapus
/distdan membangun 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 dan tekan Start Debugging.
- 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:
- Bangun ulang:
pnpm clean:dist && pnpm build - Pilih Debug Gateway dan tekan Start Debugging.
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
launch.jsonargsuntuk men-debug subperintah CLI lainnya. - Untuk menggunakan CLI hasil build bagi tugas lain (misalnya
dashboard --no-openjika sesi debug Anda membuat token autentikasi baru), jalankan dari terminal lain:node ./openclaw.mjsatau alias sepertialias openclaw-build="node $(pwd)/openclaw.mjs".