タスク4: 可観測性とデバッグを有効化¶
目的: すべての通話をタイムラインとtrace IDで追跡できるようにする。
システムマップ¶
flowchart LR
Transport[Transport]
STT[STT]
Router[Router]
LLM[LLM]
TTS[TTS]
Observers[Observers]
Artifacts[Artifacts JSONL]
Transport --> STT --> Router --> LLM --> TTS --> Transport
Observers -.-> STT
Observers -.-> LLM
Observers -.-> TTS
Observers --> Artifacts
Step 1: アーティファクトを有効化¶
observability:
artifacts_dir: "examples/hvac/artifacts"
record_audio: false
retention_days: 0
artifacts_dir は必須です。record_audio=false はプライバシーポリシーがある場合のみ変更してください。
Step 2: 構造化ログを使う¶
log_format: "json"
log_level: "info"
これで trace_id を検索しやすくなります。
Step 3: 単一通話をデバッグ¶
- ログから
trace_idを取得。 artifacts_dirのJSONLを開く。- 最後の
frame_outを確認し、停止したステージを特定。
Step 4: コストとレイテンシを見る¶
アーティファクト有効時、Ranyaはタイムラインとコストイベントを記録します。以下に使えます:
- ベンダー間のレイテンシ比較、
- 遅いツール呼び出しの検知、
- ルーティング判断の検証。
よくある修正¶
- アーティファクトが出ない:
artifacts_dirが未設定か書き込み不可。 - タイムラインが途中で止まる: processor失敗、または backpressure でドロップ。
- コストが高い: ツール呼び出しや長文応答を確認。
Related:
完了条件¶
- 60秒以内に通話のtraceを見つけられる。
- 止まったステージを特定できる。
- 通話ごとのレイテンシとコストを説明できる。