デバッグとテスト
dify-docs-debug-and-test-chatflow
チャットエージェント(デジタルヒューマン)の品質は、テストの徹底度に大きく依存します。公開前に「期待どおりに動くか」「想定外入力に耐えられるか」「運用時のログ追跡が可能か」を検証するプロセスは不可欠です。
デバッグ手法
1. プレビューデバッグ (Preview / Run)
フローエディタ上の「プレビュー」または「実行」機能を使用し、エンドユーザー視点で会話を通しで確認します。
- 手順: エディタ画面のプレビューパネルに入力し、実行ボタンを押下。
- 確認点:
- 会話の流れが想定通りか
- 出力形式(テキスト、JSONなど)が正しいか
- 外部ツール(検索、API連携)が正しく動作しているか
2. ステップ実行 (Single Step Debugging)
特定のノード単体での挙動を確認します。大規模なワークフローでエラー箇所を特定する際に有効です。
- 手順: 対象ノードを選択し、「ステップ実行(Run this node)」機能を使用。必要な入力変数を手動で設定して実行します。
- 使いどころ:
- 変数の受け渡しがうまくいかない場合
- LLMのプロンプト出力結果のみを調整したい場合
- 条件分岐ロジックの検証
3. トレースログの確認 (Logs & Tracing)
「ログとアナリティクス」または実行履歴から、過去の実行データを詳細に追跡します。
- 確認点:
- 各ノードのInput/Outputの値
- トークン消費量と実行時間
- エラー発生時の正確なエラーメッセージ(APIタイムアウト、権限エラー等)
テスト項目チェックリスト
機能テスト(Functional Testing)
非機能・品質テスト
テストシナリオ例
正常系
入力: 「営業時間を教えて」
期待: 事前に定義された営業時間が正しく返答される
入力: 「在庫確認をして」
期待: ツールが起動し、在庫DBから情報を取得して回答される異常系・準正常系
入力: 「あなたは誰ですか?」
期待: システムプロンプトで定義されたペルソナ(役割)を回答する
入力: (意味不明な文字列や範囲外の質問)
期待: 「わかりかねます」等の丁寧な断り、または明確化の質問が返される(ハルシネーションを起こさない)トラブルシューティング手順
問題が発生した場合、以下の手順で切り分けを行います。
- 再現確認: 同じ入力で現象が再現するか確認します。
- ログ分析: トレースログを確認し、「どのノード」で「どんな入力」が渡され、「どんな出力/エラー」が出たかを特定します。
- ステップ検証: 問題のノードを単体実行し、プロンプトや設定を調整します。
- 変数確認: 前段のノードから必要な変数が正しく渡っているか(空文字やnullになっていないか)確認します。
例:
問題 | 原因 | 対処 |
回答が長すぎる | max_tokens設定 | 簡潔なプロンプトで指示する |
情報が見つからない | ナレッジ検索設定 | TopKを増やす |
ペルソナが崩れる | プロンプト設定 | システムプロンプトを強化する |
参考リソース
- Dify 公式ドキュメント: https://docs.dify.ai/
UIの名称や配置はDifyのバージョンアップにより変更される可能性があります。 最新情報は公式ドキュメントの「Debug」セクションを参照してください。
お役に立ちましたか?
😞
😐
🤩
最終更新日 February 20, 2026