```mdx
---
title: "変数アグリゲーター"
description: "異なるワークフローブランチからの変数を統合された出力に結合"
icon: "merge"
---

Variable Aggregatorノードは、異なる実行パスからの変数を単一の統合された出力に結合します。複数のブランチが類似の出力を生成する場合、このノードは一貫した変数リファレンスを作成することにより、重複した下流処理の必要性を排除します。

## ブランチングの問題

条件付きワークフローは、同時に1つのブランチしか実行されない並列実行パスを作成します。集約がないと、各可能なブランチの結果に対応する重複した下流ノードが必要になり、複雑でメンテナンスが難しいワークフローが生じます。

Variable Aggregatorはマージポイントとして機能し、ブランチの出力を単一の変数に収集し、実際にどのブランチが実行されたかに関係なく下流ノードが一貫して参照できるようにします。

## 分類ワークフローの例

ユーザーの入力が分類され、各カテゴリが異なる知識検索を必要とする場合、Variable Aggregatorは結果を結合します：

**集約なし** - 重複した大型言語モデルノードを必要とする複雑なワークフロー：

<Frame caption="変数集約なしの複雑なワークフロー">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/7a7c91663c3799ce9d056b013d5df29c.png" alt="変数集約なしの課題分類" />
</Frame>

**集約あり** - 単一の下流処理による簡素化されたワークフロー：

<Frame caption="変数集約を使用した簡素化されたワークフロー">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/2b1694936fdab4843f5edc3f2fd1e79a.png" alt="課題分類後のマルチブランチ集約" />
</Frame>

集約されたワークフローは、各分類ブランチ用に大型言語モデルノードを重複させる代わりに1つのノードを使用し、同じ機能を維持しながら複雑さを大幅に削減します。

## 条件付き処理の例

類似した出力を生成するIf-Elseブランチにも同様の利点があります：

<Frame caption="条件分岐後の変数集約">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/ff0e5774a3eccc8a04c310ab9bae25e7.png" alt="条件分岐後のマルチブランチ集約" />
</Frame>

## 設定

### 変数選択

結合したい異なるワークフローブランチからの変数を接続します。接続された各変数は、集約された出力への潜在的な入力になります。

### 型制約

**同型ルール** - すべての集約された変数は同じデータ型でなければなりません。最初の変数（例：文字列）を接続すると、そのノードは他のブランチから同じ型の変数のみを受け入れます。

**サポートされる型:**
- **文字列** - 異なる処理ブランチからのテキスト出力
- **数値** - 数値計算、スコア、または測定値
- **オブジェクト** - 類似したスキーマを持つ構造化データオブジェクト
- **配列** - リスト、コレクション、または複数の結果

### 出力の動作

Variable Aggregatorは、実際に実行されたブランチからの値を出力します。条件付きワークフローでは1つのブランチしか実行されないため、実行中は1つの入力変数のみが値を持ちます。

## 高度な機能

### 複数の集約グループ

高度なワークフロー（v0.6.10+）では、複数の変数グループを同時に集約できます。各グループは独自の型制約を維持し、同じノード内で異なるデータ型を並行して集約できます。

これは、ブランチが複数の関連する出力を生成し、それらを個別に結合する必要がある場合に便利です。例えば、異なる処理パスからのテキストの要約と数値のスコアの両方を集約する場合です。

## 一般的な使用例

**マルチカテゴリ処理** - 異なるコンテンツタイプは専門的な処理を必要としますが、共通の下流ロジックに供給される類似の出力を生成します。

**条件付きデータソース** - 異なる条件が異なる知識検索やAPI呼び出しをトリガーしますが、すべての結果は同じ最終処理を必要とします。

**ブランチ結果の統合** - 複雑なブランチロジックが様々な出力を生成し、それらを最終的に統一的に処理する必要があります。

**エラーハンドリング** - メインの処理とフォールバックブランチが異なるが互換性のある結果を生成し、それを下流ノードが一貫して処理できます。

## ベストプラクティス

**データ型の計画** - すべてのブランチがVariable Aggregatorに接続する前に互換性のあるデータ型を生成することを確認します。

**一貫した出力構造** - オブジェクトや配列を集約する際、すべてのブランチで一貫した構造を維持し、予測可能な下流処理を可能にします。

**説明的な名前を使用** - 集約された変数に複数の可能なソースからの結果を含むことを示すように明確な名前を付けます。

**すべてのブランチをテスト** - 各可能な実行パスが、集約されたときに正しく機能する有効な出力を生成することを確認します。
```