このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
Dify アプリ#
Dify はエージェンティックアプリの構築のために作られています。Studio では、ドラッグ&ドロップインターフェースを使ってエージェンティックワークフローを素早く構築し、アプリとして公開できます。公開されたアプリには、API、Web、またはMCP サーバーとしてアクセスできます。Dify は 2 つの主要なアプリタイプを提供しています:Workflow と Chatflow です。新しいアプリを作成する際には、アプリタイプを選択する必要があります。
Workflow または Chatflow をアプリタイプとして選択することをお勧めします。しかし、これらに加えて、Dify はさらに 3 つの基本的なアプリタイプも提供しています:チャットボット、エージェント、テキストジェネレーターです。

これらのアプリタイプは、底層では同じワークフローエンジン上で動作しますが、よりシンプルなレガシーインターフェースが付属しています:

Workflow#
単一ターンのタスクを処理する Workflow アプリを構築します。Web アプリインターフェースと API により、多くのタスクを一度にバッチ実行することが簡単にできます。
根本的に、ワークフローは Dify の他のすべてのアプリタイプの基盤を形成します。
すべてのワークフローは 開始ノード から始まります。ユーザー入力(オンデマンド、ユーザーまたは API 呼び出しでトリガー)またはトリガー(自動、スケジュールまたは外部イベントに応答)のいずれかです。
Chatflow#
Chatflow は、会話のターンごとにトリガーされる特別なタイプのワークフローアプリです。ワークフロー機能に加えて、Chatflow には、会話固有のカスタム変数を保存・更新する機能、大規模言語モデルノードでメモリを有効にする機能、Chatflow 実行中のさまざまなポイントでフォーマットされたテキスト、画像、ファイルをストリーミングする機能があります。
Chatflow は常にユーザー入力で開始します。
Dify ドメイン固有言語#
すべての Dify アプリは、Dify 独自のドメイン固有言語で YAML ファイルとしてエクスポートでき、これらのドメイン固有言語ファイルから直接 Dify アプリを作成することもできます。これにより、アプリを他の Dify インスタンスに移植したり、他の人と共有したりすることが簡単になります。
変数#
変数は、情報を保存する後でその名前を参照することで、その情報を見つけて使用できます。Dify アプリを構築する際には、さまざまなタイプの変数に遭遇します:
入力:アプリのエンドユーザーが記入するために、ユーザー入力ノードで任意の数の入力変数を指定できます。

さらに、ユーザー入力ノードには、フロー内で後から参照できる一連の入力変数が用意されています。アプリタイプ(Workflow または Chatflow)に応じて、提供される変数が異なります。
| 変数名 | データ型 | 説明 | 注記 |
|---|---|---|---|
sys.user_id | String | ユーザー ID:ユーザーが Workflow アプリケーションを使用するときに、システムが各ユーザーに自動的に割り当てる一意の識別子。異なるユーザーを区別するために使用されます。 | |
sys.app_id | String | アプリ ID:システムが各アプリに自動的に割り当てる一意の識別子。このパラメータは、現在のアプリケーションの基本情報を記録するために使用されます。 | このパラメータは、開発能力を持つユーザーが個別の Workflow アプリケーションを区別・特定するために使用されます。 |
sys.workflow_id | String | ワークフロー ID:このパラメータは、現在の Workflow アプリケーション内のすべてのノード情報を記録します。 | このパラメータは、開発能力を持つユーザーがワークフロー内に含まれるノードの情報を追跡・記録するために使用できます。 |
sys.workflow_run_id | String | ワークフロー実行 ID:Workflow アプリケーションの実行時状態と実行ログを記録するために使用されます。 | このパラメータは、開発能力を持つユーザーがアプリケーションの履歴実行記録を追跡するために使用できます。 |
sys.timestamp | Number | 各ワークフロー実行の開始時刻。 |
| 変数名 | データ型 | 説明 | 注記 |
|---|---|---|---|
sys.conversation_id | String | チャットボックスインタラクションセッションの一意の ID。すべての関連メッセージを同じ会話にグループ化し、LLM が同じトピックとコンテキストでチャットを継続できるようにします。 | |
sys.dialogue_count | Number | Chatflow アプリケーションとのユーザーのやり取り中の会話ターン数。カウントは各チャットラウンド後に自動的に 1 増加し、if-else ノードと組み合わせて豊富な分岐ロジックを作成できます。 たとえば、LLM は X 番目の会話ターンで会話履歴をレビューし、自動的に分析を提供します。 | |
sys.user_id | String | 各アプリケーションユーザーに一意の ID が割り当てられ、異なる会話ユーザーを区別します。 | サービス API は Web アプリによって作成された会話を共有しません。これは、同じ ID を持つユーザーが API と Web アプリインターフェース間で個別の会話履歴を持つことを意味します。 |
sys.app_id | String | アプリ ID:システムが各アプリに自動的に割り当てる一意の識別子。このパラメータは、現在のアプリケーションの基本情報を記録するために使用されます。 | このパラメータは、開発能力を持つユーザーが個別のアプリケーションを区別・特定するために使用されます。 |
sys.workflow_id | String | ワークフロー ID:このパラメータは、現在のアプリケーション内のすべてのノード情報を記録します。 | このパラメータは、開発能力を持つユーザーがワークフロー内に含まれるノードの情報を追跡・記録するために使用できます。 |
sys.workflow_run_id | String | ワークフロー実行 ID:アプリケーションの実行時状態と実行ログを記録するために使用されます。 | このパラメータは、開発能力を持つユーザーがアプリケーションの履歴実行記録を追跡するために使用できます。 |
ユーザー入力は各ワークフロー実行の開始時に設定され、更新することはできません。
出力:各ノードは、後続のノードで参照できる 1 つ以上の出力を生成します。例えば、大規模言語モデルノードには以下の出力があります:

入力と同様に、ノード出力も更新することはできません。
環境変数:API キーなどのシークレットをアプリ本体の外に保存します。これにより、アプリのドメイン固有言語を共有してもシークレットは漏洩しません。環境変数には、複数の LLM ノードで共有するモデル設定も保存できます。変数を編集すると、それを使用するすべてのノードのモデルが更新されます。
会話変数(Chatflow のみ):これらの変数は会話固有です。つまり、単一の会話内でのマルチターン Chatflow 実行を通じて持続するため、ToDo リストやトークンコストなどの動的な情報を保存・アクセスできます。変数アサイナーノードを使用して会話変数の値を更新できます:

変数参照#
入力フィールドを設定する際に、ドロップダウンから選択することで、任意のノードに変数を簡単に渡すことができます:

また、/スラッシュを入力し的の変数を選択することで、複雑なテキスト入力に変数値を挿入することもできます。
