Skip to main content
このドキュメントは 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 DSL

Dify DSL(Domain-Specific Language、ドメイン固有言語)は、Dify がアプリを記述するための YAML 形式です。ノードやプロンプトから変数、各種設定まで、アプリの構成と設定を表しますが、ログやナレッジベースなどのデータは含みません。 アプリをエクスポートすると DSL が書き出され、インポートするとその DSL からアプリが再構築されます。アプリの共有、テンプレートとしての公開、ワークスペースや Dify インスタンス間での移行は、いずれもこの仕組みで行われます。 Dify 1.18.0 以降では、アプリをエクスポートすると アプリパッケージ(.ifpkg)が得られます。アプリパッケージには DSL ファイルのほか、アップロードしたアイコンや Agent のスキルとファイルなど、アプリに必要なファイルが含まれます。それ以前のバージョンでは、DSL ファイル(.yml)のみがエクスポートされます。

変数

変数は、情報を保存するためのラベル付きの入れ物です。名前で参照すれば、保存した情報を後から取り出して使えます。Dify アプリを構築する際には、さまざまな種類の変数を扱います。

入力

アプリのエンドユーザーが記入するために、ユーザー入力 ノードで任意の数の入力変数を指定できます。
ユーザー入力ノードの変数
さらに、ユーザー入力ノードには、フロー内で後から参照できる一連の入力変数が用意されています。アプリタイプ(Workflow または Chatflow)に応じて、提供される変数が異なります。
ユーザー入力は各ワークフロー実行の開始時に設定され、更新することはできません。

出力

各ノードは、後続のノードで参照できる 1 つ以上の出力を生成します。例えば、LLM ノードには以下の出力があります:
LLM ノードの出力変数
入力と同様に、ノード出力も更新することはできません。

環境変数

Workflow や Chatflow の構築中に追加する環境変数は、アプリ全体で使う値を保持します。 複数のノードで共有する値や、アプリのコピーごとに変えたい値(テスト環境や本番環境の API エンドポイントなど)に使います。API キーなどのシークレットには Secret 型を使ってください。その値は、エクスポート時に含めると選んだ場合にのみ書き出されます。

会話変数

会話変数は Chatflow にのみ存在します。1 つの会話の中でターンをまたいで値が保持されるため、ToDo リストやトークンコストのように、会話の進行に合わせて変わる情報を保存できます。会話変数の値は 変数代入 ノードで更新できます:
会話変数パネル

変数参照

入力フィールドを設定する際に、ドロップダウンから選択することで、任意のノードに変数を簡単に渡すことができます:
変数ピッカーのドロップダウン
また、/スラッシュを入力し的の変数を選択することで、複雑なテキスト入力に変数値を挿入することもできます。
スラッシュによる変数挿入
Last modified on October 23, 2026