# チャットフローとワークフローの違い

Dify でアプリケーションを作成する際、主に選択肢となるのが**チャットフロー**と**ワークフロー**です。 これらは共に「ノードを繋いでロジックを組む」というビジュアルオーケストレーション機能を持ちますが、設計思想と対応するユースケースが明確に異なります。

## 主な違い

最大の違いは **「会話コンテキスト（記憶）を持つかどうか」** です。

### 1. チャットフロー

* **定義**: チャットアプリケーション向けのワークフロー。
* **特徴**:
  * **会話履歴（メモリ）の保持**: ユーザーとの対話履歴をシステムが自動的に管理し、文脈を踏まえた回答が可能です。
  * **チャットUI**: ユーザー入力とAIの回答という対話形式のインターフェースが標準で提供されます。
  * **ストリーミング**: 回答を逐次生成して表示する体験（タイプライター効果）に最適化されています。
* **用途**: デジタルヒューマン、AIチャットボット、カスタマーサポート、対話型エージェント。

### 2. ワークフロー

* **定義**: 汎用的なプロセス自動化のためのワークフロー。
* **特徴**:
  * **ステートレス（記憶なし）**: 基本的に1回のリクエストで処理が完結します。過去の実行結果を自動で記憶しません（必要な場合は外部DB等への保存・参照ロジックを自作する必要があります）。
  * **入出力重視**: 変数を入力として受け取り、加工した結果を出力します。
  * **バッチ処理**: 一括実行やAPI経由でのバックエンド処理に向いています。
* **用途**: 記事生成ツール、翻訳API、データ分類・抽出、社内定型業務の自動化。

## 比較表

| 比較項目              | チャットフロー             | ワークフロー                 |
| ----------------- | ------------------- | ---------------------- |
| **デジタルヒューマンとの相性** | **最適** (文脈維持が必須のため) | 不向き (文脈管理が困難)          |
| UI                | チャットウィンドウ (対話型)     | フォーム入力 / API実行         |
| **記憶 (Memory)**   | **あり** (会話履歴を自動管理)  | **なし** (1回ごとに独立)       |
| **開始トリガー**        | ユーザーのチャットメッセージ      | 変数入力 / スケジュール / APIコール |
| **出力形式**          | メッセージ (ストリーミング推奨)   | 構造化データ / テキスト結果        |
| **複雑なロジック**       | 可能 (会話中にツール使用などを挟む) | **得意** (データ処理に集中)      |

## 選定ガイド：どちらを選ぶべきか？

### Case A: デジタルヒューマン・接客ボットを作りたい

{% hint style="info" %}
**チャットフローを選択してください。**\
ユーザーが「さっきの話だけど…」と言及したり、話題が行ったり来たりする場合、チャットフローが持つ標準のメモリ機能（会話履歴）が必須となります。ワークフローでこれを再現しようとすると、履歴管理のロジックを全て自作する必要があり非効率です。
{% endhint %}

### Case B: 記事作成やデータ要約ツールを作りたい

{% hint style="info" %}
**ワークフローを選択してください。**\
「テーマを入力したら、記事が出力される」「PDFを入れたら要約が返ってくる」といった、対話を必要としない「入力→処理→出力」の完結型タスクにはワークフローが最適です。
{% endhint %}

### Case C: 複雑な処理もしたいが、チャットでも返したい

{% hint style="info" %}
**チャットフローを選択してください。**\
チャットフロー内部でも、ワークフローと同様に強力なロジック（HTTPリクエスト、コード実行など）を組むことができます。「裏側で複雑な検索や計算を行いつつ、ユーザーにはチャットで自然に返す」場合はチャットフローが正解です。
{% endhint %}

## 補足

※本ドキュメントはDifyの標準的な仕様（v0.6系以降のConversational Workflow概念）に基づいています。バージョンアップにより名称やUIが微調整される可能性があります。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digitalhumans.jp/dify-guide/chatflow/dify-docs-chatflow-vs-workflow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
