セキュリティに関する注意:Agent 環境変数の外部送信リスク本注意事項は Dify Enterprise 3.12.x を対象としています。Agent に環境変数を設定し、かつネットワークアクセスを許可している場合に適用されます。Dify Enterprise 3.12.x の Agent ランタイムは、機密性の高い環境変数の値がユーザーへの応答やツールの実行出力に平文で表示されるリスクを低減するため、パターンマッチングによるマスキングを適用しています。ただし、この仕組みだけでは、ネットワークアクセス権限を持つ Agent が、送信前に値をエンコード(Base64、16 進数、文字列分割、その他の難読化手法など)した上で、外部のエンドポイントへ送信することを完全に防ぐことはできません。デプロイの運用者は、システム、データ、および認証情報の機密性レベルに応じて、Agent の権限とアクセス範囲を適切に設定する責任があります。以下の対策を強く推奨します:
- 長期間有効な認証情報を Agent 環境に設定しない。
- 可能な限り、有効期限が短く、最小権限のみを持つトークンを使用する。
- ネットワークの外部送信先を、タスクの実行に必要な最小限の範囲に制限する。
これは、パターンマッチング方式のマスキングを採用しているシステム全般に共通する制約事項です。
新しい Agent はベータ機能です。利用するには、クラスターで agent-backend とサンドボックス環境を有効にする必要があります。デプロイ方法は Agent Sandbox のデプロイ を参照してください。本番環境では、Helm values の agentBackend.serverSecretKey を独自のランダムな値に置き換えてください。
「Agent」は、一度セットアップすれば仕事を任せられる AI ワーカーです。クラシック Agent アプリ とは異なる、次の特徴を持つ Agent です:
-
専用のサンドボックス の中で動作します。コマンドの実行、プログラムのインストール、ファイルの読み書きができるため、設定済みのツールを呼び出すだけでなく、手順の決まっていない作業にも取り組めます。
-
構築 は 一度 だけで、使い方は 2 通り あります。単体のチャットアプリとして使うことも、ワークフロー内の 1 ステップ として使うこともできます。
Agent の作成・設定・管理は Agents ページで行います。いつでも開いて、手を加えたり以前のバージョンを見直したりできます。
Agents ページは Agentsを管理 権限を持つメンバーにのみ表示されます。オーナー、管理者、編集者のロールにはデフォルトで付与されています。詳細は 権限リファレンス を参照してください。
能力とタスク
Agent では、「何者であるか」と「何をさせるか」が分かれています:
-
「能力」(いわば Agent の魂)は、Agent が何者であるかを定めます。
記述するロールとプロンプト、実行に使うモデル、そして持たせるナレッジ、スキル、ツール、ファイルがこれにあたります。最初に一度形づくり、Agent に何が必要か分かってくるたびに磨きをかけていきます。
-
「タスク」は、実行のたびに依頼する仕事の内容です。
Agent を単体で動かす場合、タスクは送信するメッセージです。ワークフロー内で動かす場合は、ノードに与える指示がタスクです。
人を雇うときと同じ分け方です。何ができるかで人を選び、そのうえで具体的な仕事を任せます。良い成果には、仕事に合った人と明確な指示の両方が必要です。
Agent の 2 つの使い方
単体での利用
Agent は単体のチャットアプリとして動作します。チャットでタスクを依頼できるほか、Web アプリとして公開したり、サービス API から呼び出したりもできます。
セッションの隔離レベルは、クラスターでのサンドボックス実行方式によって決まります。Sandbox Gateway を有効にした標準デプロイでは、セッションごとに専用のサンドボックス Pod が割り当てられ、ファイルシステムはセッション単位で隔離されます。「共有サンドボックス」モードでは、すべてのセッションが単一のサンドボックスコンテナを共有するため、エンドユーザー間の隔離性が低下します。マルチテナント環境など、ユーザー間の厳格な隔離が必要な場合はご注意ください。
会話ごとに記憶は独立しています。Agent がどこまで覚えていられるかはモデルのコンテキストウィンドウ次第で、新しい会話は白紙から始まります。
1 人の有能なワーカーだけで目標に到達できる場合に向いています。たとえば、情報を調べて回答するサポートアシスタントや、資料を集めて要約するリサーチ Agent です。
ワークフロー内での利用
Agent ノード に Agent を招き、大きなプロセスの 1 ステップを任せます。ノード側で設定するのは、任せたいタスクだけです。同僚に用件を 1 つ頼むのと同じで、タスクを伝えれば、相手が自分のスキルで対応してくれます。
決まった順序で進む複数のステップ、条件分岐、他の種類のノード、専門の異なる複数 Agent の連携など、作業のまわりに構造が必要な場合に向いています。
どちらの方法で実行しても、Agent のセッションは ログ ページに集約されます。各行には、Agent の Web アプリか、Agent を使用するワークフローかという実行元が表示されます。