Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion en/use-dify/nodes/trigger/plugin-trigger.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ For example, suppose you have installed a GitHub trigger plugin. It provides a l
<Tip>
- If there's no suitable trigger plugin for your target external system, you can [request one from the community](https://github.com/langgenius/dify-plugins/issues/new?template=plugin_request.yaml), [develop one yourself](/en/develop-plugin/dev-guides-and-walkthroughs/trigger-plugin), or use a [webhook trigger](/en/use-dify/nodes/trigger/webhook-trigger) instead.

- A workflow can have multiple plugin triggers running in parallel. When the parallel branches contain identical consecutive nodes, you can add a [Variable Aggregator](/en/use-dify/nodes/variable-aggregator) node to merge the branches before the common section, without duplicating the same nodes across each branch.
- A workflow can have multiple plugin triggers. If these trigger branches share identical downstream nodes, add a [Variable Aggregator](/en/use-dify/nodes/variable-aggregator) to converge them and avoid duplicating those nodes on each branch.
</Tip>

2. Select an existing subscription or [create a new one](#create-a-new-subscription).
Expand Down
4 changes: 1 addition & 3 deletions en/use-dify/nodes/trigger/webhook-trigger.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,7 @@ Following the same mechanism, webhook triggers enable your workflow to run in re
On the workflow canvas, right-click and select **Add Node** > **Start** > **Webhook Trigger**.

<Tip>
A workflow can have multiple webhook triggers running in parallel.

When the parallel branches contain identical consecutive nodes, you can add a [Variable Aggregator](/en/use-dify/nodes/variable-aggregator) node to merge the branches before the common section, without duplicating the same nodes across each branch.
A workflow can have multiple webhook triggers. If these trigger branches share identical downstream nodes, add a [Variable Aggregator](/en/use-dify/nodes/variable-aggregator) to converge them and avoid duplicating those nodes on each branch.
</Tip>

## Configure a Webhook Trigger
Expand Down
67 changes: 19 additions & 48 deletions en/use-dify/nodes/variable-aggregator.mdx
Original file line number Diff line number Diff line change
@@ -1,67 +1,38 @@
---
title: "Variable Aggregator"
description: "Combine variables from different workflow branches into unified outputs"
description: "Converge exclusive workflow branches into a single output"
---

The Variable Aggregator node combines variables from different execution paths into a single unified output. When multiple branches produce similar outputs, this node eliminates the need for duplicate downstream processing by creating one consistent variable reference.
Use the Variable Aggregator node to converge **exclusive** workflow branches into a single output, so you only need to define downstream processing once.

## The Branching Problem
Nodes like If/Else and Question Classifier create exclusive branches—only one path executes per run. When these branches produce the same type of output, you would normally duplicate downstream nodes on every branch.

Conditional workflows create parallel execution paths where only one branch runs at a time. Without aggregation, you'd need duplicate downstream nodes for each possible branch outcome, creating complex and maintenance-heavy workflows.
The Variable Aggregator eliminates this duplication. It provides a single output variable for downstream nodes to reference, regardless of which branch ran.

The Variable Aggregator acts as a merge point, collecting branch outputs into a single variable that downstream nodes can reference consistently, regardless of which branch actually executed.

## Classification Workflow Example

When user input is classified and each category requires different knowledge retrieval, the Variable Aggregator combines the results:

**Without Aggregation** - Complex workflow requiring duplicate LLM nodes:

<Frame caption="Complex workflow without variable aggregation">
<img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/7a7c91663c3799ce9d056b013d5df29c.png" alt="Issue Classification without Variable Aggregation" />
<Frame caption="Without Variable Aggregator">
![Without Variable Aggregator](/images/without-variable-aggregator.png)
</Frame>

**With Aggregation** - Simplified workflow with single downstream processing:

<Frame caption="Simplified workflow using variable aggregation">
<img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/2b1694936fdab4843f5edc3f2fd1e79a.png" alt="Multi-Branch Aggregation after Issue Classification" />
<Frame caption="With Variable Aggregator">
![With Variable Aggregator](/images/with-variable-aggregator.png)
</Frame>
Comment thread
RiskeyL marked this conversation as resolved.

The aggregated workflow uses one LLM node instead of duplicating it for each classification branch, significantly reducing complexity while maintaining the same functionality.

## Conditional Processing Example

Similar benefits apply to If-Else branches that produce comparable outputs:

<Frame caption="Variable aggregation after conditional branching">
<img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/ff0e5774a3eccc8a04c310ab9bae25e7.png" alt="Multi-Branch Aggregation after Conditional Branching" />
</Frame>

## Configuration

### Variable Selection

Connect variables from different workflow branches that you want to combine. Each connected variable becomes a potential input to the aggregated output.

### Type Constraints
<Note>
The Variable Aggregator is designed for exclusive branches where **only one path runs at a time**. It does not combine outputs from multiple branches that execute in parallel.

**Same Type Rule** - All aggregated variables must be the same data type. Once you connect the first variable (e.g., String), the node only accepts variables of the same type from other branches.
To merge results from parallel branches, use a [Code](/en/use-dify/nodes/code) or [Template](/en/use-dify/nodes/template) node.
Comment thread
RiskeyL marked this conversation as resolved.
</Note>

**Supported Types:**
- **String** - Text outputs from different processing branches
- **Number** - Numeric calculations, scores, or measurements
- **Object** - Structured data objects with similar schemas
- **Boolean** - True/false values
- **Array** - Lists, collections, or multiple results
## Select the Variables to Converge

### Output Behavior
From each branch, add variables that need the same downstream processing. All variables must share the same data type.

The Variable Aggregator outputs the value from whichever branch actually executed. Since only one branch runs in conditional workflows, only one input variable will have a value during execution.
Supported types: `string`, `number`, `object`, `boolean`, `array`, `file`.

## Advanced Features
The node outputs whichever variable has a value at runtime. Since only one branch executes, only one variable will have a value, and that value becomes the node's output.

### Multiple Aggregation Groups
## Converge Multiple Sets of Variables

Advanced workflows (v0.6.10+) can aggregate multiple groups of variables simultaneously. Each group maintains its own type constraint, allowing you to aggregate different data types in parallel within the same node.
When you have multiple sets of variables that each need to be converged separately, enable **Aggregation Group** to create groups within a single Variable Aggregator.

This is useful when branches produce multiple related outputs that need to be combined separately - for example, aggregating both text summaries and numeric scores from different processing paths.
Each group converges its own set of variables and produces a separate output.
Binary file added images/with-variable-aggregator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/without-variable-aggregator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion ja/use-dify/nodes/trigger/plugin-trigger.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ title: プラグイントリガー
<Tip>
- 対象の外部システムに適切なトリガープラグインがない場合は、[コミュニティにリクエスト](https://github.com/langgenius/dify-plugins/issues/new?template=plugin_request.yaml)したり、[自分で開発](/ja/develop-plugin/dev-guides-and-walkthroughs/trigger-plugin)したり、代わりに [Webhook トリガー](/ja/use-dify/nodes/trigger/webhook-trigger)を使用したりできます。

- 1 つのワークフローは、並行して実行される複数のプラグイントリガーで開始できます。並行分岐に同一の連続したノードが含まれている場合、共通セクションの前に[変数集約](/ja/use-dify/nodes/variable-aggregator)ノードを追加して分岐をマージできます。これにより、各分岐で同じノードを個別に重複して追加することを回避できます
- 1 つのワークフローに複数のプラグイントリガーを含めることができます。これらのトリガーブランチが同じ下流ノードを共有する場合、[変数集約器](/ja/use-dify/nodes/variable-aggregator) を追加してそれらを集約し、各ブランチでノードを重複させないようにします
</Tip>

2. 既存のサブスクリプションを選択するか、[新しいサブスクリプションを作成](#新しいサブスクリプションを作成)します。
Expand Down
4 changes: 1 addition & 3 deletions ja/use-dify/nodes/trigger/webhook-trigger.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,7 @@ Webhook を使用すると、あるシステムが別のシステムにリアル
workflow キャンバスで右クリックし、**ブロックを追加** > **始める** > **Webhook トリガー**を選択します。

<Tip>
1 つの workflow は、並行して実行される複数の Webhook トリガーで開始できます。

並行分岐に同一の連続したノードが含まれている場合、共通セクションの前に[変数集約](/ja/use-dify/nodes/variable-aggregator)ノードを追加して分岐をマージできます。これにより、各分岐で同じノードを個別に重複して追加することを回避できます。
1 つのワークフローに複数の Webhook トリガーを含めることができます。これらのトリガーブランチが同じ下流ノードを共有する場合、[変数集約器](/ja/use-dify/nodes/variable-aggregator) を追加してそれらを集約し、各ブランチでノードを重複させないようにします。
</Tip>

## Webhook トリガーの設定
Expand Down
69 changes: 20 additions & 49 deletions ja/use-dify/nodes/variable-aggregator.mdx
Original file line number Diff line number Diff line change
@@ -1,69 +1,40 @@
---
title: "変数アグリゲーター"
description: "異なるワークフローブランチからの変数を統一された出力に結合"
title: "変数集約器"
description: "排他的なワークフローブランチを単一の出力に集約"
Comment thread
RiskeyL marked this conversation as resolved.
---

Comment thread
RiskeyL marked this conversation as resolved.
<Note> ⚠️ このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/use-dify/nodes/variable-aggregator)を参照してください。</Note>

変数アグリゲーターノードは、異なる実行パスからの変数を単一の統一された出力に結合します。複数のブランチが類似の出力を生成する場合、このノードは一つの一貫した変数参照を作成することで、下流での重複処理の必要性を排除します
変数集約器ノードを使用すると、**排他的な** ワークフローブランチを単一の出力に集約し、下流の処理を一度だけ定義すれば済むようになります

## 分岐の問題
IF/ELSE や質問分類器などのノードは排他的なブランチを作成し、実行ごとに 1 つのパスのみが実行されます。これらのブランチが同じ型の出力を生成する場合、通常はすべてのブランチに下流ノードを重複して配置する必要があります。

条件付きワークフローでは、並列実行パスが作成され、一度に一つのブランチのみが実行されます。集約なしでは、各可能なブランチ結果に対して重複した下流ノードが必要となり、複雑でメンテナンスが困難なワークフローが生成されます
変数集約器はこの重複を解消します。実際にどのブランチが実行されたかに関係なく、下流ノードが参照できる単一の出力変数を提供します

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

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

ユーザー入力が分類され、各カテゴリが異なる知識検索を必要とする場合、変数アグリゲーターが結果を結合します:

**集約なし** - 重複したLLMノードを必要とする複雑なワークフロー:

<Frame caption="変数集約なしの複雑なワークフロー">
<img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/7a7c91663c3799ce9d056b013d5df29c.png" alt="変数集約なしの問題分類" />
<Frame caption="変数集約器なし">
![変数集約器なし](/images/without-variable-aggregator.png)
</Frame>

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

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

集約されたワークフローでは、各分類ブランチに対してLLMノードを複製する代わりに一つのLLMノードを使用し、同じ機能を維持しながら複雑さを大幅に削減します。

## 条件処理の例

同様の利点は、類似の出力を生成するIf-Elseブランチにも適用されます:

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

## 設定

### 変数選択

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

### 型制約
<Note>
変数集約器は、**一度に 1 つのパスのみが実行される** 排他的なブランチ向けに設計されています。複数のブランチが同時に実行される並列ブランチの出力を結合することはできません。

**同一型ルール** - すべての集約された変数は同じデータ型である必要があります。最初の変数(例:文字列)を接続すると、ノードは他のブランチから同じ型の変数のみを受け入れます。
並列ブランチの結果をマージするには、[コード実行](/ja/use-dify/nodes/code) または [テンプレート](/ja/use-dify/nodes/template) ノードを使用してください。
</Note>

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

### 出力動作
各ブランチから、同じ下流処理が必要な変数を追加します。すべての変数は同じデータ型である必要があります。

変数アグリゲーターは、実際に実行されたブランチからの値を出力します。条件付きワークフローでは一つのブランチのみが実行されるため、実行中は一つの入力変数のみが値を持ちます
サポートされる型:`string`、`number`、`object`、`boolean`、`array`、`file`

## 高度な機能
ノードは実行時に値を持つ変数を出力します。排他的なブランチでは 1 つのブランチのみが実行されるため、値を持つ変数は 1 つだけであり、その値がノードの出力になります。

### 複数集約グループ
## 複数の変数セットの集約

高度なワークフロー(v0.6.10+)では、複数の変数グループを同時に集約できます。各グループは独自の型制約を維持し、同一ノード内で異なるデータ型を並行して集約することができます
複数の変数セットをそれぞれ個別に集約する必要がある場合は、**グループ** を有効にして、単一の変数集約器内にグループを作成します

これは、ブランチが複数の関連する出力を生成し、それらを個別に結合する必要がある場合に便利です - たとえば、異なる処理パスからのテキスト要約と数値スコアの両方を集約する場合です
各グループはそれぞれの変数セットを独立して集約し、個別の出力を生成します
10 changes: 10 additions & 0 deletions tools/translate/formatting-ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,16 @@ Use minimal honorifics. Be polite but not overly formal.

**Exception:** ご利用 is idiomatic and reads naturally (e.g., ご利用のブラウザ).

## Translation Disclaimer

Every translated page must include the translation disclaimer directly below the frontmatter, before any body content:

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

Keep the disclaimer regardless of whether the page has been human-reviewed. The English source is always the canonical version, and readers benefit from a consistent pointer to it on every translated page.

## Translatable Elements

These elements must be translated, not left in English:
Expand Down
10 changes: 10 additions & 0 deletions tools/translate/formatting-zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,16 @@ Do not end headings with sentence-ending punctuation (`。,、;:`). Paired
- If list items are short phrases or fragments, omit trailing punctuation.
- Never mix the two styles within a single list.

## Translation Disclaimer

Every translated page must include the translation disclaimer directly below the frontmatter, before any body content:

```mdx
<Note> ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考 [英文原版](/en/path/to/page)。</Note>
```

Keep the disclaimer regardless of whether the page has been human-reviewed. The English source is always the canonical version, and readers benefit from a consistent pointer to it on every translated page.

## Translatable Elements

These elements must be translated, not left in English:
Expand Down
2 changes: 2 additions & 0 deletions writing-guides/style-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ Express ideas clearly and concisely. Every sentence should add value. Cut unnece

Choose precision when it prevents confusion. A specific, descriptive term is better than a shorthand that assumes shared context with the reader.

Keep paragraphs under 50 words. On Mintlify's content width, longer paragraphs exceed four rendered lines and become visually dense. When a paragraph runs long, split it at a natural boundary—typically where the topic shifts from setup to payoff, or from problem to solution.

When a heading already states the topic, the first sentence should add new information—not restate the heading.

## Formatting Principles
Expand Down
Loading
Loading