ヒントとよくある質問
複数のトリガーをマージする
ワークフローにすでに他のトリガーが存在する場合、元のトリガーと評価トリガーという2つの潜在的な開始点が存在することになります。どちらのトリガーが実行されてもワークフローが正常に動作するようにするには、2つの分岐をマージする必要があります。

2つのトリガー分岐をマージし、同じデータ形式を持ち、単一ノードから参照できるようにします。
操作手順:
-
別のトリガーのデータ形式を取得する:
- 別のトリガーを実行します。
- そのノードを開き、出力パネルの JSONビュー に移動します。
- 右側の コピー ボタンをクリックします。
-
評価トリガーのデータを調整して形式を一致させる:
- 評価トリガーの後に 「フィールドの編集(Set)」ノード を挿入し、両者を接続します。
- モードを JSON に変更します。
- 「JSON」フィールドにコピーしたデータを貼り付け、先頭と末尾の
[および]を削除します。 - フィールドタイプを 式(Expression) に切り替えます。
- 入力パネルからドラッグ&ドロップで、トリガー内のデータをマッピングします。
- 文字列型の場合は、引用符を含めた値全体を置き換え、式の末尾に
.toJsonString()を追加してください。
-
「何もしない(No-op)」ノードで分岐をマージする:
「何もしない(No-op)」ノードを挿入し、もう一方のトリガーと「フィールドの編集(Set)」ノードの両方をこのノードに接続します。No-op ノードは入力をそのまま出力するだけです。 -
ワークフローの残り部分で No-op ノードの出力を参照する:
どちらのパスもこのノードを経由して同じ形式でデータが流れるため、入力データが常に存在することを保証できます。
評価機能がチャットを壊さないようにする
n8n の内部チャットは、ワークフロー内で最後に実行されたノードの出力データを読み取ります。「出力を設定(Set Output)」アクションを持つ評価ノードを追加すると、評価ノードの出力データは形式が不適切であったり、チャットの返信内容を含んでいなかったりすることがあります。

これを解決するには、エージェントノードの後に別の分岐を追加します。n8n では下側の分岐が後で実行されるため、その分岐に接続されたノードが最後に実行されます。ここでは No-op ノードを使用できます。なぜなら、エージェントの出力をそのまま渡すだけでよいからです。
メトリクス計算時にツールのデータにアクセスする
エージェントのサブノード(例:実行されたツール)で何が起こったかを知りたい場合があります。これらのノードを直接式で参照することはできませんが、エージェント内で Return intermediate steps(中間ステップを返す) オプションを有効にすることで対応できます。これにより、intermediateSteps という追加の出力フィールドが追加され、後続のノードで使用可能になります。

同じワークフロー内での複数の評価
各ワークフローには1つの評価しか設定できません。つまり、1つのワークフローには1つの評価トリガーしか存在できません。
ただし、ワークフローの異なる部分をサブワークフローに分割し、それぞれのサブワークフローに対して個別に評価を行うことで、ワークフローの異なる部分をテストすることは可能です。
結果のばらつきへの対処
メトリクスの結果にはしばしばノイズが含まれます。まったく同じワークフローを複数回評価しても、結果が異なることがあります。これは、ワークフロー自体が異なる結果を返す可能性があることや、LLM ベースのメトリクスには自然なばらつきが存在するためです。
これを補うには、データセット内の各行を複製し、各入力がデータセット内で複数回出現するようにします。各入力が実際に複数回実行されることで、結果のばらつきが平均化されます。