> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 主要な概念

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

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

### Dify アプリ

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

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

  <Frame>
    <img src="https://mintcdn.com/dify-6c0370d8/Z6MqdkI3dck9_1H6/images/use-dify/get-started/app-type-selector.png?fit=max&auto=format&n=Z6MqdkI3dck9_1H6&q=85&s=e7af94989732d91e398c1fdebff70a9b" alt="アプリタイプセレクタ" width="1488" height="558" data-path="images/use-dify/get-started/app-type-selector.png" />
  </Frame>

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

  <Frame>
    <img src="https://mintcdn.com/dify-6c0370d8/Z6MqdkI3dck9_1H6/images/use-dify/get-started/chatbot-interface.png?fit=max&auto=format&n=Z6MqdkI3dck9_1H6&q=85&s=f26c014de4497ae56252de0dccacef9f" alt="チャットボットインターフェース" width="1225" height="896" data-path="images/use-dify/get-started/chatbot-interface.png" />
  </Frame>
</Info>

### ワークフロー

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

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

すべてのワークフローは [開始ノード](/ja/cloud/use-dify/nodes/start) から始まります。ユーザー入力（オンデマンド、ユーザーまたは API 呼び出しでトリガー）またはトリガー（自動、スケジュールまたは外部イベントに応答）のいずれかです。

### チャットフロー

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

チャットフローは常にユーザー入力で開始します。

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

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

### 変数

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

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

<Frame>
  <img src="https://mintcdn.com/dify-6c0370d8/Z6MqdkI3dck9_1H6/images/use-dify/get-started/user-input-node-variables.png?fit=max&auto=format&n=Z6MqdkI3dck9_1H6&q=85&s=3c3c6bbb49310f2e9bbf64a2c7d2c49c" alt="ユーザー入力ノードの変数" width="726" height="616" data-path="images/use-dify/get-started/user-input-node-variables.png" />
</Frame>

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

<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 つ以上の出力を生成します。例えば、大規模言語モデルノードには以下の出力があります：

<Frame>
  <img src="https://mintcdn.com/dify-6c0370d8/Z6MqdkI3dck9_1H6/images/use-dify/get-started/llm-node-output-variables.png?fit=max&auto=format&n=Z6MqdkI3dck9_1H6&q=85&s=fb72c1dad8930b365a424b743ce673b6" alt="LLM ノードの出力変数" width="508" height="300" data-path="images/use-dify/get-started/llm-node-output-variables.png" />
</Frame>

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

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

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

<Frame>
  <img src="https://mintcdn.com/dify-6c0370d8/Z6MqdkI3dck9_1H6/images/use-dify/get-started/conversation-variables-panel.png?fit=max&auto=format&n=Z6MqdkI3dck9_1H6&q=85&s=c8d4d02401c33c486ad491a5175612e7" alt="会話変数パネル" width="834" height="756" data-path="images/use-dify/get-started/conversation-variables-panel.png" />
</Frame>

### 変数参照

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

<Frame>
  <img src="https://mintcdn.com/dify-6c0370d8/Z6MqdkI3dck9_1H6/images/use-dify/get-started/variable-picker-dropdown.png?fit=max&auto=format&n=Z6MqdkI3dck9_1H6&q=85&s=4ea771de8f9ec2b40dfe027e8bc22a5c" alt="変数ピッカーのドロップダウン" width="894" height="900" data-path="images/use-dify/get-started/variable-picker-dropdown.png" />
</Frame>

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

<Frame>
  <img src="https://mintcdn.com/dify-6c0370d8/Z6MqdkI3dck9_1H6/images/use-dify/get-started/variable-slash-insert.png?fit=max&auto=format&n=Z6MqdkI3dck9_1H6&q=85&s=62daf956fcf2ba7234c1b047c249da87" alt="スラッシュによる変数挿入" width="1048" height="1264" data-path="images/use-dify/get-started/variable-slash-insert.png" />
</Frame>
