> For the complete documentation index, see [llms.txt](https://docs.digitalhumans.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalhumans.jp/dify-guide/chatflow/dify-docs-debug-and-test-chatflow.md).

# デバッグとテスト

チャットエージェント（デジタルヒューマン）の品質は、**テストの徹底度**に大きく依存します。公開前に「期待どおりに動くか」「想定外入力に耐えられるか」「運用時のログ追跡が可能か」を検証するプロセスは不可欠です。

## デバッグ手法

### 1. プレビューデバッグ (Preview / Run)

フローエディタ上の「プレビュー」または「実行」機能を使用し、エンドユーザー視点で会話を通しで確認します。

* **手順**: エディタ画面のプレビューパネルに入力し、実行ボタンを押下。
* **確認点**:
  * 会話の流れが想定通りか
  * 出力形式（テキスト、JSONなど）が正しいか
  * 外部ツール（検索、API連携）が正しく動作しているか

### 2. ステップ実行 (Single Step Debugging)

特定のノード単体での挙動を確認します。大規模なワークフローでエラー箇所を特定する際に有効です。

* **手順**: 対象ノードを選択し、「ステップ実行（Run this node）」機能を使用。必要な入力変数を手動で設定して実行します。
* **使いどころ**:
  * 変数の受け渡しがうまくいかない場合
  * LLMのプロンプト出力結果のみを調整したい場合
  * 条件分岐ロジックの検証

### 3. トレースログの確認 (Logs & Tracing)

「ログとアナリティクス」または実行履歴から、過去の実行データを詳細に追跡します。

* **確認点**:
  * 各ノードのInput/Outputの値
  * トークン消費量と実行時間
  * エラー発生時の正確なエラーメッセージ（APIタイムアウト、権限エラー等）

## テスト項目チェックリスト

### 機能テスト（Functional Testing）

* [ ] **回答精度**: 主要な質問に対して正しい回答が得られるか
* [ ] **指示遵守**: 指定したフォーマット（箇条書き、敬語、文字数制限など）を守っているか
* [ ] **分岐ロジック**: 条件に応じた適切なルート分岐が行われるか
* [ ] **エラーハンドリング**: ツール実行失敗時などに、適切なフォールバック（謝罪や代替案提示）が行われるか

### 非機能・品質テスト

* [ ] **ペルソナ整合性**: キャラクター設定（口調、一人称）が一貫しているか
* [ ] **安全性（ガードレール）**: 不適切な質問や競合他社に関する質問を適切に回避・拒否できるか
* [ ] **応答速度**: 体感速度が許容範囲内か
* [ ] **ナレッジ検索**: 正しい情報が検索されるか
* [ ] **文脈理解**: 前の会話をふまえた回答ができるか \*\*\*\*

## テストシナリオ例

### 正常系

```jsx
入力: 「営業時間を教えて」
期待: 事前に定義された営業時間が正しく返答される

入力: 「在庫確認をして」
期待: ツールが起動し、在庫DBから情報を取得して回答される
```

### 異常系・準正常系

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

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

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

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

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

例:

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

## 参考リソース

* **Dify 公式ドキュメント**: <https://docs.dify.ai/>

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