デバッグガイド
デバッグガイド
ドラマの動作確認やトラブルシューティングに役立つ情報をまとめています。
デバッグビューア
会話画面の右上にある「デバッグ」ボタンをクリックすると、デバッグビューアが開きます。
デバッグビューアは以下の2つのセクションで構成されています:
- タイムライン(上部): コンポーネントの実行状況をガントチャート形式で表示
- ツリー表示(下部): ドラマのコンポーネント構造を表示
タイムラインの操作方法
| 操作 | 説明 |
| ピンチ(2本指で拡大縮小) | タイムラインの時間軸を拡大/縮小 |
| 2本指スワイプ(横) | タイムラインを左右にスクロール |
| 2本指スワイプ(縦) | タイムラインを上下にスクロール |
| マーカーにマウスオーバー | 詳細情報をツールチップで表示 |
| ガントバーをクリック | 対応するコンポーネントをツリーでハイライト |
| 「❓」ボタン | マーカー凡例モーダルを表示 |
| 「⬇️」ボタン | CSVファイルとしてダウンロード |
| 「🔄」ボタン | 表示位置・ズームをリセット |
イベントナビゲーション
- ◀ ▶ ボタン: イベント(
event.trigger)間を移動 - 新規会話**または🗑️ボタン**でリセット
タイムラインマーカー凡例
タイムライン上の各マーカーは、コンポーネントの処理状態を示します。
プロセス境界マーカー
| マーカー | 色 | 説明 |
| ▶(右向き三角) | 緑 | 処理開始: コンポーネントの process() 開始 |
| ◀(左向き三角) | 緑 | 処理終了: コンポーネントの process() 正常終了 |
| ◀(左向き三角) | 赤 | 処理終了(エラー): エラーで終了 |
受信イベントマーカー(青系)
入力値の受信に関するイベントです。
| マーカー | 形状 | 色 | 説明 |
| ● | 丸(通常サイズ) | 青 (#3b82f6) | 受信: 値を受信(INFO レベル) |
| ・ | 丸(小サイズ) | 青 (#3b82f6) | 受信(高頻度): チャンクなどの高頻度イベント(DEBUG レベル) |
| ■ | 四角 | 青 (#3b82f6) | 受信確定: is_last=true で値が確定 |
送信イベントマーカー(緑系)
出力値の送信に関するイベントです。
| マーカー | 形状 | 色 | 説明 |
| ● | 丸(通常サイズ) | 緑 (#22c55e) | 送信: 値を送信(INFO レベル) |
| ・ | 丸(小サイズ) | 緑 (#22c55e) | 送信(高頻度): 音声チャンクなどの高頻度イベント(DEBUG レベル) |
| ■ | 四角 | 緑 (#22c55e) | 送信確定: is_last=true で送信が確定 |
WebSocket送信マーカー
| マーカー | 形状 | 色 | 説明 |
| ● | 丸 | オレンジ (#f97316) | WS送信: WebSocket経由でクライアントに送信 |
外部サービス呼び出しマーカー(黄系)
LLMやTTSなどの外部サービス呼び出しに関するイベントです。
| マーカー | 形状 | 色 | 説明 |
| ▶ | 右向き三角 | 黄 (#eab308) | 外部送信: 外部サービス(LLM API等)へリクエスト送信 |
| ● | 丸 | 黄 (#eab308) | チャンク受信: 外部サービスからのストリーミングチャンク受信 |
| ■ | 四角 | 黄 (#eab308) | 外部完了: 外部サービスからの応答完了 |
その他のマーカー
| マーカー | 形状 | 色 | 説明 |
| ● | 丸 | 紫 (#8b5cf6) | 設定読み取り: 外部設定(State等)からの値取得 |
| ・ | 丸(小サイズ) | グレー (#6b7280) | 内部ログ: 内外に影響しない記録(DEBUG レベル) |
ガントバーの範囲
ガントバー(横棒)は、コンポーネントが実際に処理を行っている期間を示します。
一般的なコンポーネント
- 開始:
for ループ内で最初に updated() が反応したとき - 終了:
for ループが終了したとき(全ての is_last=true を処理)
LLM系コンポーネント(PublicLLM、GeppettoLLM、SystemLLM)
- 開始: プロンプト生成が完了したとき
- external_send マーカー(黄▶): LLM API にリクエスト送信
- external_chunk マーカー(黄●): チャンク受信ごと(ストリーミング時)
- 終了: 応答が確定したとき(
is_last=true)
TTS3(音声合成)
- 開始: TTS入力準備完了時
- external_send マーカー(黄▶): TTSサーバーへテキスト送信時(
#1, #2...) - external_chunk マーカー(黄●): 音声チャンク受信時(
#1, #2...) - 終了: 全ての音声チャンクを送信完了
コンポーネント別のイベント
EntryChain
| イベントタイプ | マーカー | 説明 |
| start | ▶ 緑 | トリガー受信 |
| output_is_last | ■ 緑 | 入力値を出力に転送完了 |
| end | ◀ 緑 | 処理終了 |
PublicLLMChain / GeppettoLLMChain / SystemLLMChain
| イベントタイプ | マーカー | 説明 |
| value | ● 青 | プロンプト生成完了 |
| external_send | ▶ 黄 | LLM API にリクエスト送信 |
| external_chunk | ● 黄 | LLMチャンク受信(ストリーミング時、#1, #2...) |
| is_last | ■ 青 | LLM応答が確定 |
DialogAddChain
| イベントタイプ | マーカー | 説明 |
| value | ● 青 | 処理ループ開始 |
| output | ● 緑 | 対話履歴に追加 |
| is_last | ■ 青 | 処理ループ終了 |
StateSetChain
| イベントタイプ | マーカー | 説明 |
| value | ● 青 | 処理ループ開始 |
| output | ● 緑 | 状態を更新 |
| is_last | ■ 青 | 処理ループ終了 |
EventResponseChain
| イベントタイプ | マーカー | 説明 |
| value | ● 青 | 処理ループ開始 |
| ws_send | ● オレンジ | WebSocket送信 |
| output_is_last | ■ 緑 | 送信完了 |
TTS3Chain
| イベントタイプ | マーカー | 説明 |
| value | ● 青 | TTS入力準備完了 |
| external_send | ▶ 黄 | TTSサーバーへテキスト送信(#1, #2...) |
| external_chunk | ● 黄 | 音声チャンク受信(#1, #2...) |
| is_last | ■ 青 | TTS完了 |
LambdaFuncChain
| イベントタイプ | マーカー | 説明 |
| value | ● 青 | 処理開始(初回 updated() 反応時) |
| is_last | ■ 青 | 処理完了 |
GateChain
| イベントタイプ | マーカー | 説明 |
| value | ● 青 | 処理ループ開始 |
| log | ・ グレー | 条件評価結果(DEBUG) |
| output | ● 緑 | 値を転送 |
| is_last | ■ 青 | 処理ループ終了 |
SelfTriggerChain
| イベントタイプ | マーカー | 説明 |
| value | ● 青 | 処理ループ開始 |
| log | ・ グレー | トリガー条件評価(DEBUG) |
| output | ● 緑 | event.trigger 発火 |
| is_last | ■ 青 | 処理ループ終了 |
ClassifierChain
| イベントタイプ | マーカー | 説明 |
| value | ● 青 | 分類処理開始 |
| external_send | ▶ 黄 | Embedding API にリクエスト送信 |
| is_last | ■ 青 | 分類結果を出力 |
RAGChain
| イベントタイプ | マーカー | 説明 |
| value | ● 青 | RAG検索開始 |
| external_send | ▶ 黄 | Embedding API にリクエスト送信 |
| is_last | ■ 青 | 検索結果を出力 |
Stateの確認
会話画面の「State」タブで、現在の状態を確認できます。
処理フローの要所にデバッグ用の StateSet を細かく配置することで、どこまで処理が進んだかを確認できます。
ログの確認
サイドメニューの「ログ確認」から確認できます。
drama_name で絞り込んで、どこまで処理が行われたかを確認しましょう。
Itemに名前をつけると便利
各Itemに「名前」を設定しておくと、ログから該当箇所を探しやすくなります。
トラブルシューティング
タイムラインにコンポーネントが表示されない
- ドラマが正しくロードされているか確認してください
- ブラウザをリロードしてみてください
ガントバーが表示されない
- そのコンポーネントが実際に処理を行ったか確認してください
for ループが一度も実行されなかった場合、ガントバーは表示されません
マーカーが多すぎて見づらい
- ログレベルフィルタを使用して、DEBUGレベルのイベントを非表示にできます
- ピンチ操作でタイムラインを拡大して確認してください