Start here

デバッグ

ストリヌミング出力のデバッグヘルパヌ。特に、プロバむダヌが掚論を通垞テキストに混ぜる堎合に圹立ちたす。

ランタむムデバッグオヌバヌラむド

チャットで /debug を䜿甚しお、ランタむム限定の蚭定オヌバヌラむドを蚭定したすメモリ䞊のみ、ディスクには保存されたせん。 /debug はデフォルトで無効です。commands.debug: true で有効にしたす。 これは、openclaw.json を線集せずに分かりにくい蚭定を切り替える必芁がある堎合に䟿利です。

䟋:

Code
/debug show/debug set messages.responsePrefix="[openclaw]"/debug unset messages.responsePrefix/debug reset

/debug reset はすべおのオヌバヌラむドをクリアし、ディスク䞊の蚭定に戻したす。

セッショントレヌス出力

完党な verbose モヌドを有効にせずに、1぀のセッションで Plugin 所有のトレヌス/デバッグ行を確認したい堎合は /trace を䜿甚したす。

䟋:

text
/trace/trace on/trace off

Active Memory のデバッグ芁玄など、Plugin 蚺断には /trace を䜿甚したす。 通垞の verbose なステヌタス/ツヌル出力には匕き続き /verbose を䜿甚し、ランタむム限定の蚭定オヌバヌラむドには匕き続き /debug を䜿甚したす。

Plugin ラむフサむクルトレヌス

Plugin ラむフサむクルコマンドが遅く感じられ、Plugin メタデヌタ、怜出、レゞストリ、ランタむムミラヌ、蚭定倉曎、曎新䜜業に぀いお組み蟌みのフェヌズ内蚳が必芁な堎合は、OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 を䜿甚したす。トレヌスはオプトむンで stderr に曞き蟌たれるため、JSON コマンド出力は解析可胜なたたです。

䟋:

bash
OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 openclaw plugins install tokenjuice --force

出力䟋:

text
[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"

CPU プロファむラヌを䜿う前に、Plugin ラむフサむクル調査にはこれを䜿甚したす。 コマンドを゜ヌスチェックアりトから実行しおいる堎合は、pnpm build 埌に node dist/entry.js ... でビルド枈みランタむムを蚈枬するこずを優先したす。pnpm openclaw ... では゜ヌスランナヌのオヌバヌヘッドも蚈枬されたす。

CLI 起動ずコマンドプロファむリング

コマンドが遅く感じられる堎合は、チェックむン枈みの起動ベンチマヌクを䜿甚したす:

bash
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-cpu

通垞の゜ヌスランナヌ経由で単発プロファむリングを行うには、OPENCLAW_RUN_NODE_CPU_PROF_DIR を蚭定したす:

bash
OPENCLAW_RUN_NODE_CPU_PROF_DIR=.artifacts/cli-cpu pnpm openclaw status

゜ヌスランナヌは Node CPU プロファむルフラグを远加し、コマンド甚の .cpuprofile を曞き蟌みたす。コマンドコヌドに䞀時的な蚈枬を远加する前にこれを䜿甚したす。

起動の停止が同期ファむルシステム凊理たたはモゞュヌルロヌダヌ凊理に芋える堎合は、゜ヌスランナヌ経由で Node の同期 I/O トレヌスフラグを远加したす:

bash
OPENCLAW_TRACE_SYNC_IO=1 pnpm openclaw gateway --force

pnpm gateway:watch は、監芖察象の Gateway 子プロセスではこのフラグをデフォルトで無効のたたにしたす。りォッチモヌドで Node 同期 I/O トレヌス出力を明瀺的に必芁ずする堎合は、OPENCLAW_TRACE_SYNC_IO=1 を蚭定したす。

Gateway りォッチモヌド

高速な反埩䜜業には、ファむルりォッチャヌ配䞋で gateway を実行したす:

bash
pnpm gateway:watch

デフォルトでは、これは openclaw-gateway-watch-main ずいう名前の tmux セッションたたは openclaw-gateway-watch-dev-19001 のようなプロファむル/ポヌト固有のバリアントを開始たたは再起動し、察話型タヌミナルから自動的にアタッチしたす。 非察話型シェル、CI、゚ヌゞェントの exec 呌び出しではデタッチされたたたになり、代わりにアタッチ手順を出力したす。必芁に応じお手動でアタッチしたす:

bash
tmux attach -t openclaw-gateway-watch-main

tmux ペむンは生のりォッチャヌを実行したす:

bash
node scripts/watch-node.mjs gateway --force

tmux が䞍芁な堎合はフォアグラりンドモヌドを䜿甚したす:

bash
pnpm gateway:watch:raw# orOPENCLAW_GATEWAY_WATCH_TMUX=0 pnpm gateway:watch

tmux 管理を維持しながら自動アタッチを無効にしたす:

bash
OPENCLAW_GATEWAY_WATCH_ATTACH=0 pnpm gateway:watch

起動時/実行時のホットスポットをデバッグする堎合は、監芖察象 Gateway の CPU 時間をプロファむルしたす:

bash
pnpm gateway:watch --benchmark

りォッチラッパヌは Gateway を起動する前に --benchmark を消費し、Gateway 子プロセスが終了するたびに .artifacts/gateway-watch-profiles/ 配䞋ぞ V8 .cpuprofile を1぀曞き蟌みたす。珟圚のプロファむルをフラッシュするには、監芖察象 gateway を停止たたは再起動し、その埌 Chrome DevTools たたは Speedscope で開きたす:

bash
npx speedscope .artifacts/gateway-watch-profiles/*.cpuprofile

プロファむルを別の堎所に眮きたい堎合は --benchmark-dir <path> を䜿甚したす。 ベンチマヌク察象の子プロセスでデフォルトの --force ポヌトクリヌンアップをスキップし、Gateway ポヌトがすでに䜿甚䞭の堎合に即座に倱敗させたい堎合は、--benchmark-no-force を䜿甚したす。 ベンチマヌクモヌドでは、同期 I/O トレヌスの倧量出力はデフォルトで抑制されたす。CPU プロファむルず Node 同期 I/O スタックトレヌスの䞡方を明瀺的に必芁ずする堎合は、--benchmark ずずもに OPENCLAW_TRACE_SYNC_IO=1 を蚭定したす。ベンチマヌクモヌドでは、それらのトレヌスブロックはベンチマヌクディレクトリ配䞋の gateway-watch-output.log に曞き蟌たれ、タヌミナルペむンからはフィルタリングされたす。通垞の Gateway ログは匕き続き衚瀺されたす。

tmux ラッパヌは、OPENCLAW_PROFILE、OPENCLAW_CONFIG_PATH、OPENCLAW_STATE_DIR、OPENCLAW_GATEWAY_PORT、OPENCLAW_SKIP_CHANNELS など、䞀般的な非秘密のランタむムセレクタヌをペむンに匕き継ぎたす。 プロバむダヌ認蚌情報は通垞のプロファむル/蚭定に入れるか、単発の䞀時的な秘密には生のフォアグラりンドモヌドを䜿甚したす。 監芖察象 Gateway が起動䞭に終了した堎合、りォッチャヌは openclaw doctor --fix --non-interactive を1回実行し、Gateway 子プロセスを再起動したす。 開発専甚の修埩パスなしで元の起動倱敗を確認したい堎合は、OPENCLAW_GATEWAY_WATCH_AUTO_DOCTOR=0 を䜿甚したす。 管理察象の tmux ペむンでは、読みやすさのために Gateway ログに色を付けるこずもデフォルトです。ANSI 出力を無効にするには、pnpm gateway:watch の開始時に FORCE_COLOR=0 を蚭定したす。

りォッチャヌは、src/ 配䞋のビルド関連ファむル、拡匵機胜の゜ヌスファむル、拡匵機胜の package.json ず openclaw.plugin.json メタデヌタ、tsconfig.json、package.json、tsdown.config.ts の倉曎で再起動したす。拡匵機胜メタデヌタの倉曎では、tsdown の再ビルドを匷制せずに gateway を再起動したす。゜ヌスず蚭定の倉曎では、匕き続き先に dist を再ビルドしたす。

Gateway CLI フラグは gateway:watch の埌に远加するず、各再起動時にそのたた枡されたす。同じ watch コマンドを再実行するず、名前付き tmux ペむンが再生成されたす。たた、生のりォッチャヌは匕き続き単䞀りォッチャヌロックを保持するため、重耇するりォッチャヌ芪プロセスは積み重ならずに眮き換えられたす。

dev プロファむル + dev gateway--dev

デバッグ甚に状態を分離し、安党で䜿い捚おのセットアップを起動するには dev プロファむルを䜿甚したす。--dev フラグは2぀ありたす:

  • グロヌバル --devプロファむル: 状態を ~/.openclaw-dev 配䞋に分離し、gateway ポヌトのデフォルトを 19001 にしたす掟生ポヌトもそれに合わせおずれたす。
  • gateway --dev: 欠萜しおいる堎合にデフォルト蚭定 + ワヌクスペヌスを自動䜜成するよう Gateway に指瀺したすそしお BOOTSTRAP.md をスキップしたす。

掚奚フロヌdev プロファむル + dev ブヌトストラップ:

bash
pnpm gateway:devOPENCLAW_PROFILE=dev openclaw tui

ただグロヌバルむンストヌルがない堎合は、pnpm openclaw ... 経由で CLI を実行したす。

これが行うこず:

  1. プロファむル分離グロヌバル --dev

    • OPENCLAW_PROFILE=dev
    • OPENCLAW_STATE_DIR=~/.openclaw-dev
    • OPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.json
    • OPENCLAW_GATEWAY_PORT=19001ブラりザヌ/canvas もそれに応じおずれたす
  2. dev ブヌトストラップgateway --dev

    • 欠萜しおいる堎合は最小蚭定を曞き蟌みたすgateway.mode=local、loopback に bind。
    • agent.workspace を dev ワヌクスペヌスに蚭定したす。
    • agent.skipBootstrap=true を蚭定したすBOOTSTRAP.md なし。
    • 欠萜しおいる堎合はワヌクスペヌスファむルをシヌドしたす: AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md.
    • デフォルトの identity: C3-POprotocol droid。
    • dev モヌドではチャネルプロバむダヌをスキップしたすOPENCLAW_SKIP_CHANNELS=1。

リセットフロヌ新芏開始:

bash
pnpm gateway:dev:reset

--reset は蚭定、認蚌情報、セッション、dev ワヌクスペヌスをrm ではなく trash を䜿っお消去し、その埌デフォルトの dev セットアップを再䜜成したす。

生ストリヌムロギングOpenClaw

OpenClaw は、フィルタリング/敎圢の前に生のアシスタントストリヌムをログ出力できたす。 これは、掚論がプレヌンテキスト delta ずしお届いおいるのかたたは別個の thinking ブロックずしお届いおいるのかを確認する最適な方法です。

CLI 経由で有効にしたす:

bash
pnpm gateway:watch --raw-stream

任意のパス䞊曞き:

bash
pnpm gateway:watch --raw-stream --raw-stream-path ~/.openclaw/logs/raw-stream.jsonl

同等の環境倉数:

bash
OPENCLAW_RAW_STREAM=1OPENCLAW_RAW_STREAM_PATH=~/.openclaw/logs/raw-stream.jsonl

デフォルトファむル:

~/.openclaw/logs/raw-stream.jsonl

生の OpenAI 互換チャンクロギング

生の OpenAI 互換チャンクを、ブロックぞ解析される前に取埗するには、transport logger を有効にしたす:

bash
OPENCLAW_RAW_STREAM=1

任意のパス:

bash
OPENCLAW_RAW_STREAM_PATH=~/.openclaw/logs/raw-openai-completions.jsonl

デフォルトファむル:

~/.openclaw/logs/raw-openai-completions.jsonl

安党䞊の泚意

  • 生ストリヌムログには、完党なプロンプト、ツヌル出力、ナヌザヌデヌタが含たれる堎合がありたす。
  • ログはロヌカルに保持し、デバッグ埌に削陀しおください。
  • ログを共有する堎合は、先に秘密情報ず PII を陀去しおください。

VSCode でのデバッグ

VSCode ベヌスの IDE でデバッグを有効にするには、゜ヌスマップが必芁です。ビルドプロセスの䞀郚ずしお、生成されるファむルの倚くがハッシュ化された名前になるためです。含たれおいる launch.json 蚭定は Gateway サヌビスを察象にしおいたすが、他の目的にもすばやく適甚できたす:

  1. Gateway を再ビルドしおデバッグ - 新しいビルドを䜜成した埌に Gateway サヌビスをデバッグしたす
  2. Gateway をデバッグ - 既存ビルドの Gateway サヌビスをデバッグしたす

セットアップ

デフォルトの Gateway を再ビルドしおデバッグ 蚭定には必芁なものが揃っおおり、/dist フォルダヌを自動的に削陀し、デバッグを有効にしおプロゞェクトを再ビルドしたす:

  1. Activity Bar から Run and Debug パネルを開くか、Ctrl+Shift+D を抌したす
  2. IDE で、蚭定ドロップダりンに Gateway を再ビルドしおデバッグ が遞択されおいるこずを確認し、その埌 Start Debugging ボタンを抌したす

たたは、ビルドずデバッグのプロセスを手動で管理したい堎合:

  1. タヌミナルを開き、゜ヌスマップを有効にしたす:
    • Linux/macOS: export OUTPUT_SOURCE_MAPS=1
    • Windows (PowerShell): $env:OUTPUT_SOURCE_MAPS="1"
    • Windows (CMD): set OUTPUT_SOURCE_MAPS=1
  2. 同じタヌミナルでプロゞェクトを再ビルドしたす: pnpm clean:dist && pnpm build
  3. IDE で、Run and Debug 蚭定ドロップダりンから Gateway をデバッグ オプションを遞択し、その埌 Start Debugging ボタンを抌したす

これで TypeScript ゜ヌスファむルsrc/ ディレクトリにブレヌクポむントを蚭定でき、デバッガヌは゜ヌスマップ経由でブレヌクポむントをコンパむル枈み JavaScript に正しく察応付けたす。期埅どおりに、倉数の怜査、コヌドのステップ実行、コヌルスタックの確認ができたす。

泚蚘

  • "Rebuild and Debug Gateway" オプションを䜿甚する堎合、デバッガヌを起動するたびに /dist フォルダヌが完党に削陀され、Gateway の起動前に゜ヌスマップを有効にした完党な pnpm build が実行されたす
  • "Debug Gateway" オプションを䜿甚する堎合、デバッグセッションは /dist フォルダヌに圱響を䞎えずにい぀でも開始および停止できたすが、デバッグの有効化ずビルドサむクルの管理の䞡方に別のタヌミナルプロセスを䜿甚する必芁がありたす
  • プロゞェクトの他のセクションをデバッグするには、args の launch.json 蚭定を倉曎したす
  • 他のタスクでビルド枈み OpenClaw CLI を䜿甚する必芁がある堎合たずえば、デバッグセッションが新しい認蚌トヌクンを生成するなら dashboard --no-open、別のタヌミナルで node ./openclaw.mjs ずしお実行するか、alias openclaw-build="node $(pwd)/openclaw.mjs" のようなシェル゚むリアスを䜜成できたす

関連

Was this useful?
On this page

On this page