ホームへ戻る

GitHub Repo

Dify 1.18.0、エージェントによる分岐ルーティングを追加 実行プロトコルの更新には同時デプロイが必要

Difyは10月23日に1.18.0をリリースし、Agentがタスク完了時にワークフローの分岐を直接選択できるようにしたほか、ネストしたワークフローのトレース機能を拡張した。新バージョンではAgent実行プロトコルも変更されており、バックエンドとランタイムを同時にアップグレードする必要がある。旧バージョンでは、新バージョンで保存されたセッションスナップショットを読み込めない。

The original uploader was Ggia at Greek Wikipedia. · CC BY-SA 2.5 · Image source
zh-Hant

Difyは10月23日、1.18.0をリリースし、エージェントの判断をワークフローの分岐制御に組み込んだ。開発者はAgent v2ノードでOutput Routesを有効にし、各出力先に選択条件を設定できる。これにより、タスク完了後にエージェントが次の処理を決められる。たとえば、直接回答するか、別の専門エージェントに引き継ぐかを選択できる。リリースノート

この機能では、タスク処理と分岐選択を1回のエージェント呼び出しで行う。マージ済みの実装説明によると、ルーティングを有効にするには少なくとも2つの分岐を設定する必要がある。システムは必要なswitch文字列出力を作成し、固定のルートIDを許可値として設定したうえで、選択された出力先をワークフローエンジンに渡す。switchは読み取り専用のシステム出力で、ルーティング条件は公開、複製、DSLシリアライズの際にも保持される。これにより、後続ノードは明示された出力先に基づいて処理でき、自然言語の回答を別途解析する必要性が減る。ルーティングの実装説明

ルーティングには互換性上の制限がある。有効にすると、エラー時に停止するか失敗分岐へ進むよう設定できるが、ノードレベルの「デフォルト値でエラーを処理する」機能とは併用できない。一般的なAgent v2のテキスト出力にはストリーミングが追加された一方、構造化出力、ルーティング結果、およびデフォルト値でエラーを処理するノードは引き続きバッファー出力となる。公式ドキュメントによると、新しいAgentノードは引き続きBetaであり、ノードごとに独立したサンドボックスを持つ。ファイルやツールのインストール状態はノード間で自動的に引き継がれず、結果は宣言済みの出力を通じて受け渡す必要がある。Agentのドキュメント

デプロイ担当者は、実行プロトコルの切り替えにも注意が必要だ。新バージョンの/runsはcomposition v2を受け付け、v1を拒否する。既存のセッションスナップショットは読み込み時に変換され、再保存後は旧runtimeで読み込めなくなる。そのため、API、worker、Agent Backend、runtimeイメージを同時に更新する必要がある。バックエンドに直接接続するプログラムも、リクエスト形式の変更が必要だ。ローカルサンドボックスでは、空でない認証トークンが必須となる。アップグレードガイド

運用チームは、分岐の選択、失敗時の出力先、既存セッションの復元を重点的に検証するとよい。新バージョンでは、インターフェースからネストしたワークフローを詳しく確認できるようになった。ただし、公式の注意書きによると、一時停止または停止後のネストした実行の使用量やステップ数は概算の場合がある。コストやトレースの完全性を評価する際は、実際のワークロードで確認する必要がある。

出典

  1. Dify 1.18.0 release notes and upgrade guide
  2. Add output routes to Agent v2 — PR #42599
  3. Agent node documentation