デバッグとテスト

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から情報を取得して回答される

異常系・準正常系

入力: 「あなたは誰ですか?」
期待: システムプロンプトで定義されたペルソナ(役割)を回答する

入力: (意味不明な文字列や範囲外の質問)
期待: 「わかりかねます」等の丁寧な断り、または明確化の質問が返される(ハルシネーションを起こさない)

トラブルシューティング手順

問題が発生した場合、以下の手順で切り分けを行います。

  1. 再現確認: 同じ入力で現象が再現するか確認します。
  1. ログ分析: トレースログを確認し、「どのノード」で「どんな入力」が渡され、「どんな出力/エラー」が出たかを特定します。
  1. ステップ検証: 問題のノードを単体実行し、プロンプトや設定を調整します。
  1. 変数確認: 前段のノードから必要な変数が正しく渡っているか(空文字やnullになっていないか)確認します。

例:

問題
原因
対処
回答が長すぎる
max_tokens設定
簡潔なプロンプトで指示する
情報が見つからない
ナレッジ検索設定
TopKを増やす
ペルソナが崩れる
プロンプト設定
システムプロンプトを強化する

参考リソース

⚠️

UIの名称や配置はDifyのバージョンアップにより変更される可能性があります。 最新情報は公式ドキュメントの「Debug」セクションを参照してください。

 
お役に立ちましたか?
😞
😐
🤩

最終更新日 February 20, 2026