エージェント・ビルダーのコンポーネント

コンポーネント(ノードとも呼ばれる)は、エージェント・ビルダー・フローの構成要素です。

この項では、各ノードを使用するタイミング、その入力と出力、およびフローを確実に構築するように構成する方法について説明します。

ノード間の一般的なデータ型は次のとおりです:

コア・オーケストレーション

LLM

LLMノードは、LLM管理で構成された大規模言語モデルを使用してプロンプトを実行します。このノードは、多くのフローの主要な推論および完了エンジンとして機能します。

使用のタイミング

追加方法および構成方法

  1. LLMノードをキャンバスにドラッグします。
  2. LLM管理から構成済モデルを選択します。
  3. アップストリーム・プロンプトまたはメッセージ・ノードを介してプロンプトまたは指示を指定します。
  4. 温度を低い値に設定すると、LLMからのより予測可能で決定的なレスポンスが得られます。また、高い値に設定すると、より多様で創造的な出力が得られます。
  5. 出力メッセージをフロー・ロジックごとにエージェント、出力または処理コンポーネントへの入力として接続します。

入力:

出力:

エージェント

エージェント・ノードは、LLM管理で構成されたLLMを使用して、手順を実行し、質問に回答し、階層マネージャ/ワーカー・オーケストレーションおよびサブエージェントを使用して複雑なマルチステップ・タスクを編成します。

使用のタイミング

追加方法および構成方法

  1. エージェント・ノードをキャンバスにドラッグします。
  2. LLM管理から基本LLMを選択します。
  3. オプションで、関連するツールをアタッチします。
  4. オプションで、他のエージェント・ノードをサブエージェント・コネクタに接続して、マネージャ/ワーカーのオーケストレーションを設定します。
  5. プロンプトまたはメッセージ入力を介して指示を指定します。
  6. オプションで、温度を低い値に設定すると、LLMからのより予測可能で決定的なレスポンスが得られます。また、高い値に設定すると、より多様で創造的な出力が得られます。
  7. 出力メッセージをフロー・ロジックごとにエージェント、出力または処理コンポーネントへの入力として接続します。

入力:

出力:

ツール

バグ・ツール

バグ・ツール・ノードは、組織のバグまたは問題トラッカと連携するための専用コンポーネントです。

使用のタイミング

追加方法および構成方法

  1. エージェント・ノード(またはツール・コールをサポートする別の互換性のあるノード)をキャンバスにドラッグします。
  2. エージェントのツール構成にバグ・ツールをアタッチします。
  3. バグ・トラッキング・システムに必要な資格証明または構成を指定します。
  4. エージェント内でプロンプトまたは指示を使用して、バグ・ツールを起動します。

入力: エージェント・プロンプトまたはアップストリーム・データによって提供されるツールのパラメータ

出力: ツールによって返されるメッセージ・サマリーまたは構造化されたJSON結果

MCPサーバー

MCPサーバー・ノードはMCPサーバーを統合し、外部機能をエージェントにツールとして公開します。これは、モデル・コンテキスト・プロトコル(MCP)とサーバー送信イベント(SSE)のトランスポートを使用してAIモデルとインタフェースするための専用コンポーネントです。

使用のタイミング

追加方法および構成方法

  1. MCPサーバーを構成し、サーバーURLを作成します。「独自のMCPサーバーの構築」を参照してください。

  2. 「ツール」カテゴリからMCPサーバー・ノードをドラッグ・アンド・ドロップします

  3. MCPサーバーのURLをhttps://<host>:<port>/mcpまたはhttps://<host>:<port>/sseに設定します。URLはエンドポイント・パスを完全に定義し、追加のパス・フィールドはありません。

  4. MCPサーバーにアクセスするためのいずれかの認証タイプから選択します:
    • Basic認証: ユーザー名とパスワードを使用してHTTP Basic認証を使用します。
    • Bearerトークン: OAuth 2.0アクセス・トークンを使用します。BasicユーザーおよびBasicパスワード・フィールドは空のままにします。
    • なし: 認証しません。すべての認証フィールドはすべて空のままにします。

    ノート: 「Basic認証」の場合、ノードの「Bearerトークン」フィールドは空のままにします。「Bearerトークン」認証の場合、BasicユーザーおよびBasicパスワード・フィールドは空のままにします。認証タイプが「なし」の場合は、すべての認証フィールドを空のままにします。

  5. MCPサーバー・ノードのツール出力を、検出されたMCPツールを使用するダウンストリーム・エージェント・ノードに接続します。エージェント・プロンプトまたはツール・コール・ロジックを介してツールの使用をトリガーします。

  6. プレイグラウンドを使用してMCPサーバー・ノードをテストします。サーバーが認証を必要とし、構成済の資格情報が見つからないか無効である場合、チャットにわかりやすいエラー: "MCPサーバーには認可が必要です。作成されたワークフローのMCPサーバー・ノードの認証の詳細を確認してください。"が表示されます。認証が成功すると、ノードはツール・リストを検出し、ダウンストリーム・ノードは選択したツールをコールできます。

入力: エージェントの指示および必要なツール引数

出力: MCPツールからのJSONレスポンスと、エージェントによって生成されるメッセージ・サマリー

MCPサーバー関連の質問については、「FAQおよびトラブルシューティング」を参照してください。

REST APIツール

REST APIノードでは、多くの場合エージェントを介して、フローから直接REST APIをコールできます。

使用のタイミング

追加方法および構成方法

  1. REST API接続を構成します。REST APIデータ・ソースの追加を参照してください。
  2. REST APIノードをキャンバスにドラッグし、エージェントまたはその他の互換性のあるツール対応ノードに接続します。
  3. エンドポイント、ヘッダー、認証およびHTTPメソッド(GET、POST、PUTまたはDELETE)を指定します。
  4. エージェント・プロンプトを使用して、使用するエンドポイントおよびパラメータを決定します。

入力: URL/エンドポイントおよびパラメータまたは本体データ(多くの場合、前のノード出力から渡されます)

出力: エージェントによって作成されたAPIおよびメッセージ・サマリーからのJSONレスポンス

入力

チャット入力

チャット入力ノードは、チャット・インタフェースで会話型ユーザー入力を取得します。

ノート: カスタム・フローには、最大1つのチャット入力コンポーネントを含めることができます。

使用のタイミング:

追加方法および構成方法:

  1. チャット入力ノードをキャンバスにドラッグします。
  2. メッセージ出力を、プロンプト、エージェント、LLMなどのダウンストリーム・ノードに接続します。

入力: ユーザーが実行時に入力を指定するため、ありません

出力: ユーザーのテキストを含むメッセージ

テキスト入力

テキスト入力ノードは、次のノードに渡すプレーン・テキスト入力を取得します。

使用のタイミング

追加方法および構成方法

  1. テキスト入力ノードをキャンバスにドラッグします。
  2. オプションで、入力フィールドのラベルまたはプレースホルダを設定します。
  3. メッセージ出力をダウンストリーム・ノードに接続します。

入力: 入力がユーザーによって指定されるため、ありません

出力: 入力したテキストを含むメッセージ

プロンプト

プロンプト・ノードは、LLMまたはエージェントのテキスト命令を作成およびフォーマットします。多くの場合、固定の指示とアップストリーム・ノードの動的値を組み合せます。

使用のタイミング

追加方法および構成方法

  1. プロンプト・ノードをキャンバスにドラッグします。
  2. オプションでプレースホルダを使用してアップストリーム・ノードからの出力を参照する命令を記述します。
  3. プロンプト・ノードをLLMまたはエージェント・ノードに接続します。

入力: 変数補間用のメッセージまたはJSONデータ

出力: 最終プロンプト・テキストを含むメッセージ

出力

チャット出力

チャット出力ノードは、チャット・インタフェースでモデル/エージェント・レスポンスをレンダリングまたは返します。

使用のタイミング

追加方法および構成方法

  1. チャット出力ノードをキャンバスにドラッグします。
  2. LLMまたはエージェントからのメッセージ出力(またはパーサー・ノードからのフォーマットされたメッセージ)をチャット出力ノードに接続します。

入力: メッセージ

出力: レスポンスがUIに直接レンダリングされるため、ありません

電子メール出力

電子メール出力ノードは、生成されたコンテンツを電子メールで送信します。カンマ区切りの電子メール・アドレスを受け入れ、生成されたコンテンツを電子メールで複数の受信者に送信します。

使用のタイミング

追加方法および構成方法

  1. SMTPが構成されていることを確認します。SMTPの構成を参照してください
  2. 電子メール出力ノードをキャンバスにドラッグします。
  3. 件名を指定し、複数のユーザーに送信するために受信者をカンマ区切りの電子メール・アドレスとして指定し、電子メール本文として機能するようにアップストリーム・ノードからのメッセージ出力を接続します。
  4. オプションで、アップストリーム・ファイルまたはデータ・ノードを使用して、サポートされているファイルを添付します。

入力: メッセージ(電子メール本文)、オプションの添付または件名テンプレート用のJSON

出力: ありません(ノードから電子メールが送信されます)

データ

CSVファイルの読取り

CSV読取りノードは、バッチまたは表形式のデータ処理のためにCSVファイルをインポートおよび解析します。

使用のタイミング

追加方法および構成方法

  1. CSV読取りノードをワークフローにドラッグします。
  2. CSVファイルを選択またはアップロードします。
  3. 必要に応じて、デリミタとエンコーディングの設定を調整します。
  4. ノードの出力をワークフロー内の後続のステップに接続します。

入力: ファイル・パスまたはアップロード済CSVファイル

出力:

ファイル・アップロード

ファイル・アップロード・ノードを使用すると、ユーザーは処理または分析のためにファイルをアップロードできます。

使用のタイミング

追加方法および構成方法

  1. ファイル・アップロード・コンポーネントをフローにドラッグします
  2. アップロードするファイルを選択します
  3. ノードをパーサー、LLMまたはデータ・コンバータに接続します

入力: ありません

出力: 統合に応じてファイル・ハンドル/パスまたはメッセージ/JSON(あるいはその両方)

SQL問合せ

SQL問合せノードは、構成されたデータベースに対してSQL文を実行し、ワークフローで使用する結果を返します。

ノート: セキュリティおよびガバナンスでは、SELECTのような問合せのみがサポートされます。

使用のタイミング

追加方法および構成方法

  1. データベース接続が設定されていることを確認します。「データベースのデータ・ソース」を参照してください。
  2. SQL問合せノードをワークフローにドラッグします。
  3. SQL問合せテキストを入力します。これは、アップストリーム・ノードからのデータを使用して静的にすることもパラメータ化することもできます。
  4. 出力をパーサー、タイプ変換、JSONの結合などのノードに接続します。

入力: 問合せとそのパラメータを含むメッセージまたはJSON

出力:

処理

条件

条件ノードは、エージェント・フローで単純なif-else決定ロジックを有効にします。条件ノードを使用して、演算子を使用してテキスト入力一致テキストと比較します。条件がtrueと評価されると、構成可能なtrueメッセージが出力され、true分岐に従います。falseの場合、falseメッセージを出力し、false分岐に従います。複雑なオーケストレーションを使用せずに、基本的な分岐に使用できます。

使用のタイミング

追加方法および構成方法

  1. 条件ノードをキャンバスにドラッグします。

  2. 次の設定を構成します。
    • テキスト入力: チェックする値。
    • 一致テキスト: 比較する値。
    • 演算子: 次と等しい、次と等しくない、次を含む、次を含まない、次より大きい、次より小さい、または正規表現の一致から選択します。
    • Trueメッセージ(オプション): 条件が満たされた場合に返すメッセージ。
    • Falseメッセージ(オプション): 条件が満たされない場合に返すメッセージ。
  3. TrueおよびFalseの出力をそれぞれの次のステップに接続します。
  4. サンプル入力を使用して条件ノードをテストします。

タイプ変換

タイプ変換ノードは、メッセージを文字列に変換し、JSONをディクショナリまたはリストに変換し、データフレームを特定の構造型を必要とするダウンストリーム・ノードで使用するためのディクショナリのリストに変換します。3つのタイプすべてを同時に出力し、ダウンストリーム・ノードが必要なタイプを使用できるようにします。

タイプの変換ノードは、テキストからの堅牢なJSON解析をサポートします:

使用のタイミング

追加方法および構成方法

  1. タイプ変換ノードを「処理」カテゴリからドラッグ・アンド・ドロップします。
  2. メッセージ、JSONまたはDataFrameのいずれかを入力としてアップストリーム・ノードから接続します。
  3. 出力(文字列、ディクショナリまたはディクショナリのリスト)を適切なダウンストリーム・ノードに接続して、タイプ変換ノードをテストします。「プレイグラウンド」を選択してフローを実行します。

変換の例:

入力: メッセージ、JSONまたはDataFrame

出力(同時に提供):

タイプ変換ノードをパーサー・ノードおよびJSONデータの結合ノードとともに使用するフローの例は、JSONデータの結合を使用したフローの例およびパーサーを使用したフローの例を参照してください。

JSONデータの結合

JSONデータの結合ノードは、複数のJSONペイロードを1つのオブジェクトにマージします。これにより、最上位のキーをフィルタし、キー間の競合を解決する方法を定義できます。ノードは、JSONオブジェクトと、文字列化されたJSONを含むメッセージの両方を出力します。

使用のタイミング

追加方法および構成方法

  1. *JSONデータの結合**ノードを「処理」カテゴリからドラッグ・アンド・ドロップします。

  2. 1つ以上のアップストリームJSONソースをJSON入力インレットに接続します。

  3. オプションで、前述のJSONの結合ノードの出力を、複数ステージのマージの初期累計フィールドに接続します。フィルタ専用操作の場合は、空のままにします。

  4. 入力ソースから含める最上位のキーを含めるキー・フィールドに入力します。サポートされているフォーマットは、JSON配列またはカンマ区切りリスト(["a","b"]a, bまたはa b)です。すべての最上位キーを含める場合は、空のままにします。

  5. 「ディープ」または「置換」からマージ・モードを選択します。「ディープ」マージを使用して、リストを再帰的に拡張し、スカラーを置換し、すべてのJSONのキーを結合します。「置換」モードを使用して、JSON入力インレットに最後に接続されたノードのJSONから取得した値でキーを上書きします。

  6. JSONインレットに2つ以上のJSON入力を接続し、文字列化されたJSONまたはマージされたディクショナリJSONをチャット出力ノードに接続して、JSONノードの結合をテストします。「プレイグラウンド」を選択し、チャット入力にスペースを入力して[Enter]を押し、フローを実行します。

入力: 複数のJSONまたはJSONを使用したメッセージ

出力:

フローの例

例1: 「ディープ」マージ・モードでのJSONデータ・コンポーネントの結合の使用:

例: 「ディープ」マージ・モードでのJSONデータの結合

出力JSON {"Title": "Final Report", "report": {"topics": ["Physics", "Maths", "Chemistry", "Biology"], "Date": "24/11/25", "other_details2": "Rainy weather"}, "other_key1": "Other Report"}には、JSONデータの結合ノードの含めるキー・フィールド(レポートおよびother_key1)で指定されたキーのみが含まれます。「ディープ」マージ・モードでは、一致するキー(key=topics)に対してリスト値が結合され、スカラー値(key=Date)が置換されます。

初期累計は、受信JSONと重複し、最終的なJSON出力に表示されるキーがあるかどうかに関係なく、任意のJSONにできます。初期累計の一致するキーは、最終的なJSON出力の受信値に置き換えられます。この例では、初期累計は{"Title": "Final Report"}です。

例2: 「置換」マージ・モードでのJSONデータ・コンポーネントの結合の使用:

例: 「置換」マージ・モードでのJSONデータの結合

図combine-json-data-example-replace.pngの説明

出力JSON {"Title": "Final Report", "report": {"topics": ["Chemistry", "Biology"], "Date": "24/11/25", "other_details2": "Rainy weather"}, "other_key1": "Other Report"}には、JSONデータ・ノードの結合の含めるキー・フィールド(レポートおよびother_key1)に入力されたキーが含まれます。「置換」マージ・モードでは、同じキーのすべての値(key=topics)が置換されます。最後の入力のキー値は前述のキー値を置き換えるため、後でJSONデータの結合に接続されたノードは、以前に接続したノードを上書きします。

初期累計は、受信JSONと重複し、最終的なJSON出力に表示されるキーがあるかどうかに関係なく、任意のJSONにできます。初期累計の一致するキーは、最終的なJSON出力の受信値に置き換えられます。この例では、初期累計は{"Title": "Final Report"}です。

パーサー

パーサー・ノードは、JSONやDataFrameなどの構造化入力からテキストを抽出、フォーマットおよび結合します。これらの入力は、表示またはダウンストリーム・ステップに渡すことができる、クリーンで読取り可能なメッセージ出力に変換されます。

使用のタイミング

追加方法および構成方法

  1. パーサー・ノードを「処理」カテゴリからドラッグ・アンド・ドロップします。

  2. アップストリーム・ノードからJSONまたはDataFrameインレットにJSONまたはメッセージ出力を接続します。または、テキスト・ボックスにJSONを入力します。

  3. テンプレートを適用する前に、「ルートパス」フィールドにオプションのドット・パスを入力して入力にナビゲートします。例: records、records.0、outer.inner.items。

  4. パーサーまたはStringifyから「モード」を選択します。パーサー・モードでは、選択した各アイテムまたはオブジェクトにテンプレートが適用されます。stringifyモードでは、テンプレートが無視され、選択内容がRAW文字列に変換されます。

  5. パーサー・モードのテンプレートを、オブジェクトからキーまたは列を参照するプレースホルダを含むフォーマット文字列として入力するか、文字列入力全体に対して{text}を入力します。

    例:

    • 名前: {name}、年齢: {age}
    • {PRODUCT_ID}: {PRODUCT_NAME} — 在庫{STOCK_QUANTITY}
    • テキスト: {text}
  6. セパレータを入力します。セパレータは、入力がリストの場合にレンダリングされる複数のアイテムを結合するために使用される文字列です。デフォルトは\nです。

  7. JSON入力をそのJSONインレットに接続し、出力メッセージをチャット出力ノードにルーティングして、パーサー・ノードをテストします。「プレイグラウンド」を選択してフローを実行します。

入力: JSONまたはDataFrame

出力: 最後にレンダリングされたテキストを含むメッセージ

フローの例

次のフローは、Jiraの問題を'プライマリ・グループ'にグループ化し、残りのJiraの問題を'残りのJirasプライマリ'として格納する方法を示します。

パーサーの例

図parser-example.pngの説明

次のプロンプトを使用して、LLMはprimary_groupsとremaining_jiras_primaryの2つのキーを持つJSONを生成します。

You are a JIRA analysis expert focusing ONLY on cluster-based grouping.

INPUT DATA: Problem Set:
<problem-set>
{{problem_set_data}}
</problem-set>

TASK: Group JIRAs based ONLY on cluster IDs.
STRICT RULES:
ONLY group by cluster ID matches
MANDATORY : EXACT cluster ID should match
MANDATORY : Each group MUST have minimum 2 JIRAs in the jira_list
If a group has fewer than 2 JIRAs, dissolve that group and ALL JIRAs from that group MUST be moved to remaining_jiras_primary
Order JIRAs chronologically within groups
DO NOT group by any other attributes
NO partial matches allowed
NO inferred relationships
VERIFY all groups meet the minimum 2 JIRAs requirement BEFORE outputting
DO NOT explain your reasoning or corrections
DO NOT output any intermediate results
MANDATORY: Use double quotes for ALL strings in JSON (not single quotes)
MANDATORY: Do NOT add “JIRA” prefix to any ID - use the exact ID format from the input data

OUTPUT FORMAT:
{{
    "primary_groups": [
        {{
            "title": "Cluster - <Full Cluster ID>",
            "summary": "Clear description of cluster impact",
            "jira_list": ["EXACSOPS-1", "EXACSOPS2-2"]
        }}
    ],
    "remaining_jiras_primary": ["EXACSOPS-3", "EXACSOPS-4"]
}}

CRITICAL INSTRUCTION: Return ONLY the final VALID JSON with proper double quotes for all strings. Do not include ANY explanations, reasoning, comments, corrections, or text of any kind outside the JSON structure. The response must begin with {{ and end with }} without any other characters.

ここで、primary_groups内のデータを確認のために直接送信し、別の分析ラウンドを介してremaining_jiras_primaryをルーティングする場合は、パーサー・ノードを使用してLLMによって生成されたJSONを解析し、2つのキーからデータを抽出できます。これには、2つのパーサー・ノードが必要です。フローを実行するには、「プレイグラウンド」を選択します。

パーサーの出力例

図parser-example-output.pngの説明

複雑なワークフローでは、異なる目的の2つのパーサー・ノードからの2つの出力を使用できます。

ユーティリティ

付箋

付箋ノードは、フロー内の重要な情報または指示を追跡します。

使用のタイミング

追加方法および構成方法

  1. 付箋ノードをキャンバスにドラッグします。
  2. テキストを編集するには、ノートをクリックします。
  3. 必要に応じて、ノートをサイズ変更または移動します。
  4. 好きな色を選びます。

入力: RAWテキスト

出力: 該当なし