

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Bedrock でフローを作成および設計する
<a name="flows-create"></a>

このセクションでは、Amazon Bedrock コンソールを使用して、フローを作成および設計する方法について説明します。開始しやすいように、コンソールで作成したフローは、単一のプロンプトノードで実行されるように設定されています。このセクションでは、さまざまなタイプのフローを作成するための追加の例とテンプレートも提供します。

AWS SDK を使用してフローを作成する場合は、「[Amazon Bedrock フローのコードサンプルを実行する](flows-code-ex.md)」を参照してください。

**Topics**
+ [Amazon Bedrock で最初のフローを作成する](flows-get-started.md)
+ [Amazon Bedrock でフローを設計する](flows-design.md)
+ [サンプルフローを試す](flows-ex.md)
+ [テンプレートを使用して Amazon Bedrock フローを作成する](flows-templates.md)

# Amazon Bedrock で最初のフローを作成する
<a name="flows-get-started"></a>

フローを作成するたびに、Amazon Bedrock コンソールで初期フローが自動的に作成されます。このフローには、**フロー入力**ノード、**プロンプト**ノード、**フロー出力**ノードが含まれます。フローを実行するときに、フローのトピックを入力すると、プロンプトノードを使用してトピックが要約されます。フローを実行する前に、プロンプトのモデルを設定する必要があります。

フローを作成するには、フローの名前と説明を指定します。デフォルトでは、Amazon Bedrock は適切なアクセス許可を持つサービスロールを作成します。オプションで、既存のサービスロールを指定できます。

Amazon Bedrock は、保管中のデータを暗号化します。デフォルトでは、Amazon Bedrock はこのデータを暗号化するのに AWS マネージドキーを使用します。オプションで、カスタマーマネージドキーを使用してフロー実行データを暗号化することもできます。詳細については、「[Amazon Bedrock Flows リソースの暗号化](encryption-flows.md)」を参照してください。

初期フローを使用した作業が完了した後、または初期フローが不要な場合は、フローの構築を続行できます。「[Amazon Bedrock Flows の仕組み](flows-how-it-works.md)」を読んで Amazon Bedrock Flows の概念と用語を理解し、利用可能なノードのタイプについて学ぶことをお勧めします。詳細については、「[Amazon Bedrock でフローを設計する](flows-design.md)」を参照してください。

**最初のフローを作成するには**

1. Amazon Bedrock コンソールを使用するためのアクセス許可を持つ IAM ID を使用して、AWS マネジメントコンソールにサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで **[Amazon Bedrock フロー]** を選択します。

1. **[Amazon Bedrock Flows]** セクションで、**[フローを作成]** を選択します。

1. フローの **[名前]** とオプションの **[説明]** を入力します。

1. **[サービスロール名]** で、以下のオプションのいずれかを選択します。
   + **新しいサービスロールを作成して使用** – 使用するサービスロールを Amazon Bedrock で作成します。
   + **既存のサービスロールを使用 ** – 以前に設定したカスタムサービスロールを選択します。詳細については、「[Amazon Bedrock で Amazon Bedrock Flows のサービスロールを作成する](flows-permissions.md)」を参照してください。

1. (オプション) 以下を実行して、カスタマーマネージドキーでフローを暗号化します。

   1. **[追加設定]** を選択します。

   1. **[KMS キーの選択]** で、**[暗号化設定をカスタマイズ (高度)]** を選択します。次に、**[AWS KMS キーを選択]** で次のいずれかを実行します。
      + 既存のキーを使用するには、ARN を入力するか、使用するキーを見つけます。
      + 新しいキーを作成するには、**[AWS KMS キーを作成]** を選択して AWS Key Management Service コンソールを開き、[キーを作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)します。キーを作成するときは、キーの ARN を書き留めます。Amazon Bedrock コンソールに戻り、**[AWS KMS キーを選択]** でキーの ARN を入力します。

   詳細については、[Amazon Bedrock Flows リソースの暗号化](encryption-flows.md)を参照してください。

1. **[作成]** を選択します。Amazon Bedrock によって初期フローが作成され、**フロービルダー**が表示されます。

1. **[フロービルダー]** セクションでは、中央ペイン (キャンバス) に**フロー入力**ノード、**プロンプト**ノード、**フロー出力**が表示されます。ノードは既に接続されています。

1. キャンバスで、**プロンプト**ノードを選択します。

1. [フロービルダー] ペインで、**[設定]** セクションを選択します。

1. **[ノード名]** で、**[ノードで定義]** が選択されていることを確認します。

1. **[モデルを選択]** で、使用するモデルを選択します。

1. **[保存]** を選択して、フローを保存します。

1. 右側の **[フローをテスト]** ペインで、要約するフローのトピックを入力します。

1. **[実行]** を選択してフローを実行します。要約されたトピックがフローに表示されます。

# Amazon Bedrock でフローを設計する
<a name="flows-design"></a>

このセクションでは、Amazon Bedrock フローを設計します。フローを設計する前に、「[Amazon Bedrock Flows の仕組み](flows-how-it-works.md)」を読んで Amazon Bedrock フローの概念と用語を理解し、利用可能なノードのタイプについて学ぶことをお勧めします。試すことができるフローの例については、「[サンプルフローを試す](flows-ex.md)」を参照してください。

**フローを構築するには**

1. **[フロービルダー]** を開いていない場合は、以下を実行します。

   1. Amazon Bedrock コンソールを使用するためのアクセス許可を持つ IAM ID を使用して、AWS マネジメントコンソールにサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

   1. 左側のナビゲーションペインで **[Amazon Bedrock フロー]** を選択します。次に、**[Amazon Bedrock フロー]** セクションでフローを選択します。

   1. **[フロービルダーで編集]** を選択します。

1. **[フロービルダー]** セクションでは、中央パネルに**フロー入力**ノードと**フロー出力**ノードが表示されます。これらは、フローの入力ノードと出力ノードです。

1. 次を実行して、ノードの追加と設定を行います。

   1. **[フロービルダー]** パネルで、**[ノード]** を選択します。

   1. フローの最初のステップに使用するノードをドラッグし、中央ペインにドロップします。

   1. ノードの円は接続ポイントです。フロー入力ノードを 2 番目のノードに接続するには、**フロー入力**ノードの円から、追加したノードの**入力**セクションの円に線をドラッグします。

   1. 追加したノードを選択します。

   1. **[フロービルダー]** パネルの **[設定]** セクションで、選択したノードの設定を指定し、ノードの入力と出力の名前、データ型、式を定義します。

   1. **[フロービルダー]** パネルで、**[ノード]** を選択します。

   1. ステップを繰り返して、フロー内の残りのノードを追加して設定します。
**注記**  
Amazon Bedrock によって自動的に作成されたサービスロールを使用する場合は、ノードを追加すると、ロールが適切なアクセス許可で更新されます。ただし、カスタムサービスロールを使用する場合は、「[Amazon Bedrock で Amazon Bedrock Flows のサービスロールを作成する](flows-permissions.md)」を参照して、サービスロールにアタッチされたポリシーに適切なアクセス許可を追加する必要があります。

1. フロー内の最後のノードの**出力**を**フロー出力**ノード**の入力**に接続します。複数の**フロー出力**ノードを構成できます。さらにフロー出力ノードを追加するには、**フロー出力**ノードをドラッグして、フローを停止するノードの横にドロップします。2 つのノード間では必ず接続を描画してください。

1. 次の手順 ([Amazon Bedrock でフローをテストする](flows-test.md)) に進むか、後で戻って実行します。次のステップに進むには、**[保存]** を選択します。後から戻るには、**[保存して終了]** を選択します。

**ノードまたは接続を削除する**

フローを構築するプロセス中、ノードを削除したり、ノード接続を削除したりする必要がある場合があります。

**ノードを削除するには**

1. 削除するノードを選択します。

1. **[フロービルダー]** パネルで、削除アイコン (![\[Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/trash.png)) を選択します。
**注記**  
Amazon Bedrock によって自動的に作成されたサービスロールを使用する場合は、ノードを追加すると、ロールが適切なアクセス許可で更新されます。ただし、ノードを削除しても、関連するアクセス許可は削除されません。不要になったアクセス許可は、「[ロールの変更](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html)」の手順に従って削除することをお勧めします。

**接続を削除するには**
+ **[フロービルダー]** ページで、展開アイコンが表示されるまで、削除する接続にカーソルを合わせ、接続をノードからドラッグします。

フローを構築する際には、次の要件が適用されます。
+ フローには、フロー入力ノードが 1 つのみ、フロー出力ノードが 1 つ以上必要です。
+ フロー入力ノードの入力を含めることはできません。
+ フロー出力ノードの出力を含めることはできません。
+ ノード内のすべての出力は、ダウンストリームノードの入力に接続する必要があります (API では、これは [FlowConnection](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowConnection.html) と [FlowDataConnectionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowDataConnectionConfiguration.html) を介して行われます)。
+ 条件ノードのすべての条件 (デフォルトの条件を含む) は、ダウンストリームノードに接続する必要があります (API では、[FlowConnection](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowConnection.html) と [FlowConditionalConnectionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowConditionalConnectionConfiguration.html) を介して行われます)。

フローを構築する際には、次のポインターが適用されます。
+ まず、フロー入力ノードの出力のデータ型を設定します。このデータ型は、フローを呼び出すときに入力として送信することが期待されるデータ型と一致する必要があります。
+ 式を使用してフローの入力を定義するとき、結果が入力に選択したデータ型と一致することを確認します。
+ イテレータノードを含める場合、必要なノードを介して出力を送信した後、コレクターノードのダウンストリームを含めます。コレクターノードは、配列内の出力を返します。

# サンプルフローを試す
<a name="flows-ex"></a>

このトピックでは、Amazon Bedrock Flows の使用を開始するために試すことができるフローの例をいくつか紹介します。テンプレートを使用して、最初のフローを作成することもできます。詳細については、「[テンプレートを使用して Amazon Bedrock フローを作成する](flows-templates.md)」を参照してください。

Amazon Bedrock コンソールで構築する方法を確認するには、例を展開します。

**Topics**
+ [単一のプロンプトでフローを作成する](flows-ex-prompt.md)
+ [条件ノードを使用してフローを作成する](flows-ex-condition.md)

# 単一のプロンプトでフローを作成する
<a name="flows-ex-prompt"></a>

次の図は、ノード内にインラインで定義された単一のプロンプトで構成されるフローを説明しています。このプロンプトは、ジャンルとプレイリストに含める曲の数を含む JSON オブジェクト入力から曲のプレイリストを生成します。

![\[2 つの変数を持つプロンプトノードを使用する例。\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/flows/flows-prompt.png)


**コンソールでこのフローを構築してテストするには**

1. 「[Amazon Bedrock で最初のフローを作成する](flows-get-started.md)」の手順に従ってフローを作成します。

1. 次の手順を実行して、プロンプトノードを設定します。

   1. 中央ペインで、**[プロンプト]** ノードを選択します。

   1. **[フロービルダー]** ペインで、**[設定]** タブを選択します。

   1. **ノード名**として **MakePlaylist** と入力します。

   1. **[ノードで定義]** を選択します。

   1. プロンプトで次の設定を行います。

      1. **[モデルを選択]** で、プロンプトで推論を実行するモデルを選択します。

      1. **[メッセージ]** テキストボックスに「**Make me a \$1\$1genre\$1\$1 playlist consisting of the following number of songs: \$1\$1number\$1\$1.**」と入力します。これにより、ノードへの入力として表示される 2 つの変数が作成されます。

      1. (オプション) **[推論の設定]** を変更します。

      1. (オプション) モデルでサポートされている場合は、プロンプトメッセージのプロンプト**キャッシュ**を設定できます。詳細については、「[Amazon Bedrock でフローを作成および設計する](flows-create.md)」を参照してください。

   1. **[入力]** セクションを展開します。入力の名前は、プロンプトメッセージの変数によって事前に入力されます。以下のように入力を設定します。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/flows-ex-prompt.html)

      この設定は、プロンプトノードが、`genre` 入力にマッピングされる `genre` というフィールドと、`number` 入力にマッピングされる `number` というフィールドを含んでいる JSON オブジェクトを期待することを意味します。

   1. **[出力]** を変更することはできません。これはモデルからのレスポンスであり、文字列として返されます。

1. **フロー入力**ノードを選択し、**[設定]** タブを選択します。**[タイプ]** で **[オブジェクト]** を選択します。これは、フロー呼び出しが JSON オブジェクトを受け取ることを期待することを意味します。

1. ノードを接続して、次の手順を実行してフローを完了します。

   1. **フロー入力**ノードの出力ノードから **MakePlaylist** プロンプトノードの **genre** 入力に接続をドラッグします。

   1. **フロー入力**ノードの出力ノードから **MakePlaylist** プロンプトノードの **number** 入力に接続をドラッグします。

   1. **MakePlaylist** プロンプトノードの **modelCompletion** 出力の出力ノードから、**フロー出力** 出力ノードの**ドキュメント**入力に接続をドラッグします。

1. **[保存]** を選択して、フローを保存します。これで、フローをテストする準備が整いました。

1. 右側の **[テストフロー]** ペインに、以下の JSON オブジェクトを入力して、フローをテストします。**[実行]** を選択すると、フローはモデルレスポンスを返します。

   ```
   {
       "genre": "pop",
       "number": 3
   }
   ```

# 条件ノードを使用してフローを作成する
<a name="flows-ex-condition"></a>

次の図は、1 つの条件ノードが、満たされた条件に基づいて 3 つの可能な値のいずれかを返すフローを示しています。

![\[2 つの条件を持つ条件ノードを使用する例。\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/flows/flows-condition.png)


**コンソールでこのフローを構築してテストするには:**

1. 「[Amazon Bedrock で最初のフローを作成する](flows-get-started.md)」の手順に従ってフローを作成します。

1. 中央のペインの**プロンプト**ノードを削除します。

1. 以下を実行して、条件ノードを設定します。

   1. **[フロービルダー]** の左ペインから、**[ノード]** タブを選択します。

   1. **[条件]** ノードを中央ペインのフローにドラッグします。

   1. **[フロービルダー]** ペインで **[設定]** タブを選択します。

   1. **[入力]** セクションを展開します。以下のように入力を設定します。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/flows-ex-condition.html)

      この設定は、条件ノードが、フィールド `retailPrice`、`marketPrice`、`type` を含んでいる JSON オブジェクトを期待することを意味します。

   1. 以下を実行して条件を設定します。

      1. **[条件]** セクションで、オプションで条件の名前を変更します。次に、**[条件]** テキストボックスに次の条件を追加します: **(retailPrice > 10) and (type == "produce")**

      1. **[条件を追加]** を選択して、2 番目の条件を追加します。オプションで、2 番目の条件の名前を変更します。次に、**[条件]** テキストボックスに次の条件を追加します: **(retailPrice < marketPrice)**

1. **フロー入力**ノードを選択し、**[設定]** タブを選択します。**[タイプ]** で **[オブジェクト]** を選択します。これは、フロー呼び出しが JSON オブジェクトを受け取ることを期待することを意味します。

1. 総ノード数が 3 になるようにフロー出力ノードを追加します。各フロー出力ノードの **[フロービルダー]** ペインの **[設定]** タブで、次のように設定します。

   1. 最初のフロー出力ノードの入力型を **String** に設定し、式を **\$1.data.action[0]** に設定して、受信オブジェクトの `action` フィールドの配列内の最初の値を返します。

   1. 2 番目のフロー出力ノードの入力型を **String** に設定し、式を **\$1.data.action[1]** に設定して、受信オブジェクトの `action` フィールドの配列内の 2 番目の値を返します。

   1. 3 番目のフロー出力ノードの入力型を **String** に設定し、式を **\$1.data.action[2]** に設定して、受信オブジェクトの `action` フィールドの配列内の 3 番目の値を返します。

1. 最初の条件を最初のフロー出力ノードに接続し、2 番目の条件を 2 番目のフロー出力ノードに接続して、デフォルトの条件を 3 番目のフロー出力ノードに接続します。

1. すべてのノードの入力と出力を接続し、次の手順を実行してフローを完了します。

   1. **フロー入力**ノードの出力ノードから条件ノードの **retailPrice** 入力に接続をドラッグします。

   1. **フロー入力**ノードの出力ノードから条件ノードの **marketPrice** 入力に接続をドラッグします。

   1. **フロー入力**ノードの出力ノードから条件ノードの **type** 入力に接続をドラッグします。

   1. **フロー入力**ノードの出力から 3 つの出力ノードそれぞれの **document** 入力に接続をドラッグします。

1. **[保存]** を選択して、フローを保存します。これで、フローをテストする準備が整いました。

1. 右側の **[フローをテスト]** ペインに次の JSON オブジェクトを入力してフローをテストします。入力ごとに **[実行]** を選択します。

   1. 次のオブジェクトは、最初の条件 (`retailPrice` が 10 より大きく、`type` が "produce") を満たしており、`action` の最初の値 ("don't buy") を返します。

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 12, 
          "type": "produce", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```
**注記**  
最初の条件と 2 番目の条件の両方を満たしていても、最初の条件が優先されます。

   1. 次のオブジェクトは 2 番目の条件 (`retailPrice` が `marketPrice` より小さい) を満たしており、`action` の 2 番目の値 ("buy") を返します。

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 12, 
          "type": "meat", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```

   1. 次のオブジェクトは、最初の条件 (`retailPrice` が 10 より大きいが、`type` は "produce"ではない) も 2 番目の条件 (`retailPrice` が `marketPrice` より小さい) も満たしていないため、`action` の 3 番目の値 ("undecided") が返されます。

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 11, 
          "type": "meat", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```

# テンプレートを使用して Amazon Bedrock フローを作成する
<a name="flows-templates"></a>

Amazon Bedrock Flows の定義とオーケストレーションを開始するサポートとして、テンプレートを使用すると、さまざまなフロー設定のフローを作成できます。例えば、テンプレートを使用して、ナレッジベースを含むフローや、条件を使用してフローロジックを指示するフローを確認できます。

テンプレートには、[Amazon Bedrock Flows Samples](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file) GitHub リポジトリからアクセスできます。Amazon Bedrock コンソールでは、フローのキャンバスページからリポジトリへのリンクも提供されます。

フローテンプレートは、サポートされているフロー定義ごとに [JSON テンプレート](https://github.com/aws-samples/amazon-bedrock-flows-samples/tree/main/templates)と、フローの作成と実行に使用する Python スクリプトとして提供されます。Amazon Bedrock コンソールからフローにアクセスすることもできます。

リポジトリは、以下のテンプレートを提供しています。
+  [ナレッジベースフロー](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#1-knowledgebase-flow-1) – RAG (検索拡張生成) やナレッジベースの検索と取得など、[ナレッジベース](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#1-knowledgebase-flow-1)を統合してクエリする方法を示します。
+  [マルチターン会話エージェントフロー](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#2-multi-turn-conversation-agent-flow-1) – フローでインタラクティブかつステートフルな会話を実行する方法を示します。詳細については、「[Amazon Bedrock フローと会話する](flows-multi-turn-invocation.md)」を参照してください。
+  [条件フロー](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#3-conditions-flow-1) – フロー内で条件ロジックと分岐を実行する方法を示します。
+ [ガードレールフローを使用したプロンプトノード](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#4-prompt-node-with-guardrail-flow-1) – ガードレールを使用してプロンプトノードを保護する方法を示します。
+  [イテレーターとコレクターのフロー](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#5-iterator--collector-flow-1) – 複数の入力を処理し、レスポンスを集約する方法を示します。
+  [マルチエージェントフロー](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#5-iterator--collector-flow-1) – マルチエージェントコラボレーションやタスク委任など、さまざまなエージェントベースのワークフローを示します。

スクリプトを実行する前に、フローが使用するナレッジベースやエージェントなどの Amazon Bedrock リソースを作成する必要があります。これらのリソースが不要になったら削除するのは、お客様の責任となります。

テンプレートからフローを作成して実行するには、スクリプト (`flow_manager.py`) を実行します。このスクリプトは、使用するフローテンプレートやテンプレートに必要なリソースの識別子など、必要な追加情報の入力を求めます。フローで試すテストプロンプトを含めることができます。

必要に応じて、フローを作成する AWS リージョンを設定できます。このスクリプトは、デフォルトの [IAM ロールのアクセス許可](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#iam-role-permissions)セットを持つ、必要なリソースを作成します。また、独自に作成した IAM ロールを使用することもできます。

Amazon Bedrock コンソールでフローを使用する場合は、`--cleanup` パラメータは使用しないでください。このパラメータを使用すると、スクリプトがフローを実行した後にフローが削除されるためです。`--cleanup` を使用しない場合は、不要になったフローを削除する必要があります。

詳細については、[https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file\$1how-to-use](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#how-to-use) を参照してください。

