> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-add-new-agent.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 主要な概念

> Difyの重要な概念の簡単な概要

<Note> ⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/use-dify/getting-started/key-concepts)を参照してください。</Note>

### Difyアプリ

Difyはエージェンティックアプリの構築のために作られています。**Studio**では、ドラッグ&ドロップインターフェースを使ってエージェンティックワークフローを素早く構築し、アプリとして公開できます。公開されたアプリには、API、Web、または[MCPサーバー](/en/guides/application-publishing/publish-mcp)としてアクセスできます。Difyは2つの主要なアプリタイプを提供しています：ワークフローとチャットフローです。新しいアプリを作成する際には、アプリタイプを選択する必要があります。

<Info>
  ワークフローまたはチャットフローをアプリタイプとして選択することをお勧めします。しかし、これらに加えて、Difyはさらに3つの基本的なアプリタイプも提供しています：チャットボット、エージェント、テキストジェネレーターです。

  <img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/44TbQ65UKzc8Aq_C/images/22087830d0a6478d42d0c60e6eb88d19bca27be3c645f2bb0968d51330b7da72.png?fit=max&auto=format&n=44TbQ65UKzc8Aq_C&q=85&s=b8392fb30d84a6a60309d27db5202494" alt="22087830d0a6478d42d0c60e6eb88d19bca27be3c645f2bb0968d51330b7da72.png" title="22087830d0a6478d42d0c60e6eb88d19bca27be3c645f2bb0968d51330b7da72.png" className="mt-1" style={{ width:"100%" }} width="1488" height="558" data-path="images/22087830d0a6478d42d0c60e6eb88d19bca27be3c645f2bb0968d51330b7da72.png" />

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

  <img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/44TbQ65UKzc8Aq_C/images/chatbot-interface.png?fit=max&auto=format&n=44TbQ65UKzc8Aq_C&q=85&s=52d4d7599a8460b3ac01d99fd7e06e00" alt="chatbot-interface.png" title="chatbot-interface.png" className="mt-1" style={{ width:"100%" }} width="1225" height="896" data-path="images/chatbot-interface.png" />
</Info>

### ワークフロー

単一ターンのタスクを処理するワークフローアプリを構築します。WebアプリインターフェースとAPIにより、多くのタスクを一度にバッチ実行することが簡単にできます。

<Info>
  根本的に、ワークフローはDifyの他のすべてのアプリタイプの基盤を形成します。
</Info>

ワークフローをどのように、いつ開始するかを指定できます。2 種類の開始ノードがあります：

* **[ユーザー入力](/ja/use-dify/nodes/user-input)**：直接的なユーザー操作または API 呼び出しによってアプリを起動します。

* **[トリガー](/ja/use-dify/nodes/trigger/overview)**：アプリケーションがスケジュールに従って自動的に実行されるか、特定のサードパーティイベントに応答します。

ユーザー入力とトリガー開始ノードは相互に排他的です—同じキャンバスで両方を使用することはできません。切り替えるには、現在の開始ノードを右クリック > **ノードの変更** を選択します。または、現在の開始ノードを削除して新しいノードを追加します。

<Note>
  ユーザー入力によって開始されたワークフローのみが、スタンドアロンの Web アプリまたは MCP サーバーとして公開したり、バックエンドサービス API を介して公開したり、他の Dify アプリケーションでツールとして使用したりできます。
</Note>

### チャットフロー

チャットフローは、会話のターンごとにトリガーされる特別なタイプのワークフローアプリです。ワークフロー機能に加えて、チャットフローには、会話固有のカスタム変数を保存・更新する機能、大規模言語モデルノードでメモリを有効にする機能、チャットフロー実行中のさまざまなポイントでフォーマットされたテキスト、画像、ファイルをストリーミングする機能があります。

ワークフローとは異なり、チャットフローは[トリガー](/ja/use-dify/nodes/trigger/overview)を使用して開始することはできません。

### Dify ドメイン固有言語

すべてのDifyアプリは、Dify独自のドメイン固有言語でYAMLファイルとしてエクスポートでき、これらのドメイン固有言語ファイルから直接Difyアプリを作成することもできます。これにより、アプリを他のDifyインスタンスに移植したり、他の人と共有したりすることが簡単になります。

### 変数

変数は、情報を保存する後でその名前を参照することで、その情報を見つけて使用できます。Difyアプリを構築する際には、さまざまなタイプの変数に遭遇します：

**入力**: アプリのエンドユーザーが記入するために、[ユーザー入力](/ja/use-dify/nodes/user-input)ノードで任意の数の入力変数を指定できます。

<img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/44TbQ65UKzc8Aq_C/images/CleanShot2025-08-04at14.34.04@2x.png?fit=max&auto=format&n=44TbQ65UKzc8Aq_C&q=85&s=740188552a19f98f2d14776db6cea450" alt="CleanShot 2025-08-04 at 14.34.04@2x.png" title="CleanShot 2025-08-04 at 14.34.04@2x.png" className="mx-auto" style={{ width:"51%" }} width="726" height="616" data-path="images/CleanShot2025-08-04at14.34.04@2x.png" />

さらに、ユーザー入力ノードには、フロー内で後から参照できる一連の入力変数が用意されています。アプリタイプ（ワークフローまたはチャットフロー）に応じて、提供される変数が異なります。

<Tabs>
  <Tab title="ワークフロー">
    | 変数名                   | <div style={{width: '70px'}}>データ型</div> | 説明                                                                                    | 注記                                                        |
    | :-------------------- | :-------------------------------------- | :------------------------------------------------------------------------------------ | :-------------------------------------------------------- |
    | `sys.user_id`         | String                                  | ユーザー ID：ユーザーがワークフローアプリケーションを使用するときに、システムが各ユーザーに自動的に割り当てる一意の識別子。異なるユーザーを区別するために使用されます。 |                                                           |
    | `sys.app_id`          | String                                  | アプリ ID：システムが各アプリに自動的に割り当てる一意の識別子。このパラメータは、現在のアプリケーションの基本情報を記録するために使用されます。             | このパラメータは、開発能力を持つユーザーが個別のワークフローアプリケーションを区別・特定するために使用されます。  |
    | `sys.workflow_id`     | String                                  | ワークフロー ID：このパラメータは、現在のワークフローアプリケーション内のすべてのノード情報を記録します。                                | このパラメータは、開発能力を持つユーザーがワークフロー内に含まれるノードの情報を追跡・記録するために使用できます。 |
    | `sys.workflow_run_id` | String                                  | ワークフロー実行 ID：ワークフローアプリケーションの実行時状態と実行ログを記録するために使用されます。                                  | このパラメータは、開発能力を持つユーザーがアプリケーションの履歴実行記録を追跡するために使用できます。       |
    | `sys.timestamp`       | Number                                  | 各ワークフロー実行の開始時刻。                                                                       |                                                           |
  </Tab>

  <Tab title="チャットフロー">
    | 変数名                   | <div style={{width: '70px'}}>データ型</div> | 説明                                                                                                                                                          | 注記                                                                                                 |
    | :-------------------- | :-------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- |
    | `sys.conversation_id` | String                                  | チャットボックスインタラクションセッションの一意の ID。すべての関連メッセージを同じ会話にグループ化し、LLM が同じトピックとコンテキストでチャットを継続できるようにします。                                                                   |                                                                                                    |
    | `sys.dialogue_count`  | Number                                  | チャットフローアプリケーションとのユーザーのやり取り中の会話ターン数。カウントは各チャットラウンド後に自動的に 1 増加し、if-else ノードと組み合わせて豊富な分岐ロジックを作成できます。<br /><br />たとえば、LLM は X 番目の会話ターンで会話履歴をレビューし、自動的に分析を提供します。 |                                                                                                    |
    | `sys.user_id`         | String                                  | 各アプリケーションユーザーに一意の ID が割り当てられ、異なる会話ユーザーを区別します。                                                                                                               | サービス API は WebApp によって作成された会話を共有しません。これは、同じ ID を持つユーザーが API と WebApp インターフェース間で個別の会話履歴を持つことを意味します。 |
    | `sys.app_id`          | String                                  | アプリ ID：システムが各アプリに自動的に割り当てる一意の識別子。このパラメータは、現在のアプリケーションの基本情報を記録するために使用されます。                                                                                   | このパラメータは、開発能力を持つユーザーが個別のワークフローアプリケーションを区別・特定するために使用されます。                                           |
    | `sys.workflow_id`     | String                                  | ワークフロー ID：このパラメータは、現在のワークフローアプリケーション内のすべてのノード情報を記録します。                                                                                                      | このパラメータは、開発能力を持つユーザーがワークフロー内に含まれるノードの情報を追跡・記録するために使用できます。                                          |
    | `sys.workflow_run_id` | String                                  | ワークフロー実行 ID：ワークフローアプリケーションの実行時状態と実行ログを記録するために使用されます。                                                                                                        | このパラメータは、開発能力を持つユーザーがアプリケーションの履歴実行記録を追跡するために使用できます。                                                |
  </Tab>
</Tabs>

ユーザー入力は各ワークフロー実行の開始時に設定され、更新することはできません。

**出力**: 各ノードは、後続のノードで参照できる 1 つ以上の出力を生成します。例えば、大規模言語モデルノードには以下の出力があります：

<img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/44TbQ65UKzc8Aq_C/images/CleanShot2025-08-04at14.28.57@2x.png?fit=max&auto=format&n=44TbQ65UKzc8Aq_C&q=85&s=0e4e69d6a432d61f289674788248c94f" alt="CleanShot 2025-08-04 at 14.28.57@2x.png" title="CleanShot 2025-08-04 at 14.28.57@2x.png" className="mx-auto" style={{ width:"45%" }} width="508" height="300" data-path="images/CleanShot2025-08-04at14.28.57@2x.png" />

入力と同様に、ノード出力も更新することはできません。

**環境変数**: 環境変数を使用して、アプリ固有のAPIキーなどの機密情報を保存します。これにより、シークレットとDifyアプリ自体を明確に分離でき、アプリのドメイン固有言語を共有する際にパスワードやキーが漏洩するリスクを回避できます。環境変数も定数であり、更新することはできません。

**会話変数（チャットフローのみ）**: これらの変数は会話固有です。つまり、単一の会話内でのマルチターンチャットフロー実行を通じて持続するため、ToDoリストやトークンコストなどの動的な情報を保存・アクセスできます。変数アサイナーノードを使用して会話変数の値を更新できます：

<img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/44TbQ65UKzc8Aq_C/images/2935cb58851e5c5407a08dde49f7d9738bb13aa0e64df24278e2104b316f6af6.png?fit=max&auto=format&n=44TbQ65UKzc8Aq_C&q=85&s=eab7d9ea586a753423f84518a0fb1112" alt="2935cb58851e5c5407a08dde49f7d9738bb13aa0e64df24278e2104b316f6af6.png" title="2935cb58851e5c5407a08dde49f7d9738bb13aa0e64df24278e2104b316f6af6.png" className="mx-auto" style={{ width:"70%" }} width="834" height="756" data-path="images/2935cb58851e5c5407a08dde49f7d9738bb13aa0e64df24278e2104b316f6af6.png" />

### 変数参照

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

<img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/44TbQ65UKzc8Aq_C/images/CleanShot2025-08-04at15.13.33@2x.png?fit=max&auto=format&n=44TbQ65UKzc8Aq_C&q=85&s=55552b9ed5ff64969df97672929cd4a1" alt="CleanShot 2025-08-04 at 15.13.33@2x.png" title="CleanShot 2025-08-04 at 15.13.33@2x.png" className="mx-auto" style={{ width:"70%" }} width="894" height="900" data-path="images/CleanShot2025-08-04at15.13.33@2x.png" />

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

<img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/Lg4D_pUS5gs8ND0D/images/image.png?fit=max&auto=format&n=Lg4D_pUS5gs8ND0D&q=85&s=1ade95c4cf5d3b82d1f4d71dc8337d8e" alt="image.png" title="image.png" className="mx-auto" style={{ width:"73%" }} width="1048" height="1264" data-path="images/image.png" />
