ストリーミング出力のデバッグ補助。特に、プロバイダーが推論を通常のテキストに混在させる場合に役立ちます。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.
ランタイムデバッグオーバーライド
チャットで/debug を使うと、ランタイム専用の設定オーバーライドを設定できます(メモリ上のみで、ディスクには保存されません)。
/debug はデフォルトで無効です。有効にするには commands.debug: true を設定します。
openclaw.json を編集せずに、分かりにくい設定を切り替える必要がある場合に便利です。
例:
/debug reset はすべてのオーバーライドをクリアし、ディスク上の設定に戻します。
セッショントレース出力
完全な詳細モードを有効にせずに、1つのセッションでPluginが所有するトレース/デバッグ行を見たい場合は/trace を使います。
例:
/trace を使います。
通常の詳細ステータス/ツール出力には引き続き /verbose を使い、ランタイム専用の設定オーバーライドには引き続き /debug を使います。
Pluginライフサイクルトレース
Pluginライフサイクルコマンドが遅く感じられ、Pluginメタデータ、検出、レジストリ、ランタイムミラー、設定変更、更新処理について組み込みのフェーズ内訳が必要な場合は、OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 を使います。トレースはオプトインで stderr に書き込むため、JSON コマンド出力は解析可能なままです。
例:
pnpm build の後に node dist/entry.js ... でビルド済みランタイムを計測することを推奨します。pnpm openclaw ... ではソースランナーのオーバーヘッドも計測されます。
CLI 起動とコマンドのプロファイリング
コマンドが遅く感じられる場合は、チェックイン済みの起動ベンチマークを使います。OPENCLAW_RUN_NODE_CPU_PROF_DIR を設定します。
.cpuprofile を書き込みます。コマンドコードに一時的な計測を追加する前にこれを使います。
同期ファイルシステム処理やモジュールローダー処理のように見える起動停止の場合は、ソースランナー経由で Node の同期 I/O トレースフラグを追加します。
pnpm gateway:watch は、監視対象のGateway子プロセスではこのフラグをデフォルトで無効のままにします。ウォッチモードで Node の同期 I/O トレース出力を明示的に必要とする場合は、OPENCLAW_TRACE_SYNC_IO=1 を設定します。
Gatewayウォッチモード
高速な反復作業には、ファイルウォッチャーの下でGatewayを実行します。openclaw-gateway-watch-main という名前の tmux セッション(または openclaw-gateway-watch-dev-19001 のようなプロファイル/ポート固有のバリアント)を開始または再起動し、対話型ターミナルから自動アタッチします。
非対話型シェル、CI、エージェントの exec 呼び出しはデタッチされたままで、代わりにアタッチ手順を表示します。必要に応じて手動でアタッチします。
--benchmark を消費し、Gateway子プロセスが終了するたびに、.artifacts/gateway-watch-profiles/ の下へ V8 .cpuprofile を1つ書き込みます。現在のプロファイルをフラッシュするには、監視対象Gatewayを停止または再起動し、その後 Chrome DevTools または Speedscope で開きます。
--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 の後に追加すると、各再起動時にそのまま渡されます。同じウォッチコマンドを再実行すると、名前付き tmux ペインが再生成されます。また、生のウォッチャーは引き続き単一ウォッチャーロックを保持するため、重複したウォッチャー親プロセスは積み上がらずに置き換えられます。
開発プロファイル + 開発Gateway(—dev)
デバッグ用に状態を分離し、安全で使い捨て可能なセットアップを起動するには、開発プロファイルを使います。--dev フラグは2つあります。
- グローバル
--dev(プロファイル): 状態を~/.openclaw-dev配下に分離し、Gatewayポートをデフォルトで19001にします(派生ポートもそれに合わせてずれます)。 gateway --dev: 設定 + ワークスペースがない場合、Gatewayにデフォルトのものを自動作成させます(かつ BOOTSTRAP.md をスキップします)。
pnpm openclaw ... 経由で CLI を実行します。
これが行うこと:
-
プロファイル分離(グローバル
--dev)OPENCLAW_PROFILE=devOPENCLAW_STATE_DIR=~/.openclaw-devOPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.jsonOPENCLAW_GATEWAY_PORT=19001(ブラウザー/キャンバスもそれに応じてずれます)
-
開発ブートストラップ(
gateway --dev)- 存在しない場合、最小設定を書き込みます(
gateway.mode=local、loopback にバインド)。 agent.workspaceを開発ワークスペースに設定します。agent.skipBootstrap=trueを設定します(BOOTSTRAP.md なし)。- 存在しない場合、ワークスペースファイルをシードします:
AGENTS.md,SOUL.md,TOOLS.md,IDENTITY.md,USER.md,HEARTBEAT.md。 - デフォルトのアイデンティティ: C3-PO(プロトコルドロイド)。
- 開発モードではチャネルプロバイダーをスキップします(
OPENCLAW_SKIP_CHANNELS=1)。
- 存在しない場合、最小設定を書き込みます(
--dev はグローバルなプロファイルフラグであり、一部のランナーに消費されます。明示的に指定する必要がある場合は、環境変数形式を使います。--reset は設定、認証情報、セッション、開発ワークスペースを消去し(rm ではなく trash を使用)、その後デフォルトの開発セットアップを再作成します。
生ストリームログ(OpenClaw)
OpenClaw は、フィルタリング/整形の前に生のアシスタントストリームをログに記録できます。 これは、推論がプレーンテキストのデルタとして到着しているのか(または別個の思考ブロックとして到着しているのか)を確認する最適な方法です。 CLI で有効にします。~/.openclaw/logs/raw-stream.jsonl
生チャンクログ(pi-mono)
ブロックへ解析される前の生の OpenAI 互換チャンクをキャプチャするために、pi-mono は別のロガーを公開しています。~/.pi-mono/logs/raw-openai-completions.jsonl
注: これは、pi-mono の
openai-completions プロバイダーを使うプロセスによってのみ出力されます。
安全上の注意
- 生ストリームログには、完全なプロンプト、ツール出力、ユーザーデータが含まれる場合があります。
- ログはローカルに保持し、デバッグ後に削除します。
- ログを共有する場合は、先にシークレットと PII を取り除きます。
VSCode でのデバッグ
ビルドプロセスの一部として生成ファイルの多くがハッシュ付きの名前になるため、VSCode ベースの IDE でデバッグを有効にするにはソースマップが必要です。含まれているlaunch.json 設定はGatewayサービスを対象にしていますが、他の用途にもすばやく適用できます。
- Gatewayをリビルドしてデバッグ - 新しいビルドを作成した後にGatewayサービスをデバッグします
- Gatewayをデバッグ - 既存ビルドのGatewayサービスをデバッグします
セットアップ
デフォルトの Gatewayをリビルドしてデバッグ 設定は必要なものが揃っており、/dist フォルダーを自動的に削除して、デバッグを有効にした状態でプロジェクトをリビルドします。
- アクティビティバーから 実行とデバッグ パネルを開くか、
Ctrl+Shift+Dを押します - IDE で、設定ドロップダウンに Gatewayをリビルドしてデバッグ が選択されていることを確認し、その後 デバッグの開始 ボタンを押します
- ターミナルを開き、ソースマップを有効にします:
- Linux/macOS:
export OUTPUT_SOURCE_MAPS=1 - Windows (PowerShell):
$env:OUTPUT_SOURCE_MAPS="1" - Windows (CMD):
set OUTPUT_SOURCE_MAPS=1
- Linux/macOS:
- 同じターミナルで、プロジェクトをリビルドします:
pnpm clean:dist && pnpm build - IDE で、実行とデバッグ 設定ドロップダウンから Gatewayをデバッグ オプションを選択し、その後 デバッグの開始 ボタンを押します
src/ ディレクトリ)にブレークポイントを設定でき、デバッガーはソースマップを介してブレークポイントをコンパイル済み JavaScript に正しくマップします。期待どおりに変数を調べ、コードをステップ実行し、コールスタックを確認できます。
注記
- 「Gatewayをリビルドしてデバッグ」 オプションを使う場合、デバッガーを起動するたびに
/distフォルダーが完全に削除され、Gatewayを開始する前にソースマップを有効にした完全なpnpm buildが実行されます - 「Gatewayをデバッグ」 オプションを使う場合、デバッグセッションは
/distフォルダーに影響を与えずにいつでも開始および停止できますが、デバッグを有効にすることとビルドサイクルを管理することの両方に、別のターミナルプロセスを使う必要があります - プロジェクトの他の部分をデバッグするには、
argsのlaunch.json設定を変更します - 他のタスクでビルド済みの OpenClaw CLI を使う必要がある場合(たとえば、デバッグセッションが新しい認証トークンを生成する場合の
dashboard --no-open)、別のターミナルでnode ./openclaw.mjsとして実行するか、alias openclaw-build="node $(pwd)/openclaw.mjs"のようなシェルエイリアスを作成できます