急速に変化するAI技術を前に、ワークフロー自動化にも新たな波が押し寄せている。長い間従来の自動化プロセス複雑な問題に対処する際に、あらかじめ決められた固定された動きに頼ることは、ピアニストに機械的に楽譜を弾くことだけを求めるようなもので、柔軟性や創造性に欠ける。
しかし、Large Language Modelling (LLM)の推論能力の急速な向上により、ワークフローの特定の部分について、徐々にLLMに意思決定権を渡すことが可能になってきました。最近、Difyプラットフォームは、よりスマートで自律的なワークフロー自動化体験をユーザーに提供するために設計された革新的な機能であるエージェントノード戦略タイププラグインを正式に開始しました。
エージェントノードとストラテジーの関係:分離されたデザイン、柔軟なアップグレード
ダイファイ ワークフロー LLMにおけるエージェントノードの中心的な役割は、従来のワークフローの硬直性を打破することであり、特定の局面がもはや固定されたプロセスやツールパターンに限定されないようにすることです。その代わりに、エージェントノードは、LLMがプロセスの特定の時点で自律的な意思決定と判断を行うことを可能にし、より複雑で動的なタスク要件に対応します。
エージェントノードの柔軟性とスケーラビリティを可能にするために、Difyは エージェント戦略 (エージェント・ストラテジーは、標準化された入力内容と出力形式を定義する拡張可能なテンプレートです。特定のエージェントストラテジー設定インターフェースの開発を通じて、Difyは、CoT(思考連鎖)、ToT(思考ツリー)、GoT(思考マップ)、BoT(思考柱)などの高度なエージェントストラテジーや、さらに複雑なセマンティックカーネル戦略を適用することができます。
Difyプラットフォームでは、エージェントノードはエージェントストラテジーをホストし、ワークフローのアップストリームノードとダウンストリームノードに緊密に接続されています。LLMノードと同様に、エージェントノードは特定のタスクの解決に焦点を当て、最終結果を下流ノードに送ります。
エージェントノードとエージェント戦略の関係をより明確に理解するために、自動車のエンジンと制御システムに例えることができる:
- エージェントノード(実行ユニット)ワークフローにおける「意思決定センター」として機能し、リソースのスケジューリング、運用状況の管理、推論プロセスの文書化を行う。
- エージェント戦略(意思決定ロジック)推論アルゴリズムのプラグイン可能なモジュールとして、エージェントストラテジーはツールと問題解決パラダイムの使用ルールを定義します。
この微妙なデカップリング設計により、開発者はワークフローアーキテクチャ全体に大きな変更を加えることなく、「パワーシステム」(エージェント戦略)を独自にアップグレードすることができ、システムの柔軟性と保守性が大幅に向上します。
現在、Difyには2つの古典的なエージェント戦略ポリシーがあり、ユーザーが選択することができます:
- リ・アクト人間の思考と行動パターンを模倣した、古典的な「考える-行動する-観察する」という推論の連鎖。
- 関数呼び出し外部ツールやAPIを正確に呼び出すことができます。
ユーザーは、Dify Marketplaceからこれらの定義済みストラテジーを直接ダウンロードし、自分のワークフローに素早く適用することができます。さらに、Difyは、オープンなポリシー開発標準を導入し、開発者が協力し合い、繁栄するエージェントストラテジーのエコシステムを構築することを奨励しています。Difyプラットフォーム上では、どの開発者でも以下のことが可能です:
- CLIツールでカスタムポリシープラグインを素早く作成。
- カスタムポリシー用の設定フォームと可視化コンポーネント。
- 最先端の学術的アルゴリズム(Tree-of-Thoughtsなど)をエージェントノードに統合。
つまり、DifyはAI推論戦略の「イノベーション・プラットフォーム」となりつつあり、すべてのユーザーがコミュニティの共同構築の成果を共有し、その恩恵を受けることができる。
エージェントノード機能の概要
機能パノラマはエージェントノードの主な機能を示しています。
次章では、一般ユーザーと開発者それぞれのエージェントノードの具体的な使い方とメリットを紹介します。
一般ユーザー向け:ドラッグ&ドロップ、透明な推論
1.ドラッグ・アンド・ドロップによる素早い設定
Difyプラットフォームは、エージェントノードを使用するための障壁を最小限に抑えます。ユーザーは、ツールパネルからワークフローキャンバスに直接エージェントノードをドラッグ&ドロップし、3つの簡単なステップで設定することができます:
- 選択的推論戦略設定済みまたはカスタマイズされたストラテジーのリストから適切なエージェントストラテジーを選択します。
- バインディング・ツール/モデルエージェントノードを目的のツールや言語モデルにバインドします。
- リマインダーテンプレートの設定タスクのニーズに基づいて、LLMの推論と意思決定を導くための明確なプロンプトのテンプレートを設定する。
2.透明な推論プロセス、リアルタイムのロギング
Difyエージェント戦略の強力な特徴は、組み込みのロギングメカニズムです。このメカニズムは、エージェントの思考プロセスをツリー構造にして、エージェントの実行経路を視覚化し、複雑なマルチステップ推論のデバッグを容易にします。
リアルタイムのログは、ユーザーに明確な見解を与える:
- 合計時間/トークン消費量エージェントノードのリソース消費を把握する。
- マルチラウンドの思考プロセスLLMの思考と意思決定のステップを何度もたどる。
- ツールコールの軌跡外部ツールへのエージェントノード呼び出しのロギングを監視します。
透過的な推論プロセスとリアルタイムのログ情報は、Agentノードのデバッグ性と解釈性を大幅に向上させ、ユーザがワークフローをよりよく理解し、最適化するのに役立ちます。
開発者向け:標準化された開発、柔軟なカスタマイズ
開発者のために、Difyは標準化された開発キットを提供し、開発者が迅速にエージェントストラテジーを構築し、カスタマイズできるようにします。 エージェントストラテジーの定義の中心は、言語モデルがどのように動作するかを指定する以下のモジュールの定義です:
- ユーザーからの問い合わせへの対応ユーザーからの自然言語によるクエリを受信し、解析します。
- 正しいツールの選択調査の内容と課題のニーズに基づいて、適切なツールを選択する。
- 適切なパラメータ実装ツールを使用する選択したツールを正しいパラメータで呼び出します。
- 加工ツールが結果を返すツールの実行から返された結果を解析し、処理する。
- タスク完了のタイミングを判断するタスクの完了を判断し、最終的な答えを出力する。
標準化された開発スイートは、ポリシー設定コンポーネント(モデルセレクタ/ツールエディタなど)のライブラリ、構造化されたロギングインタフェース、サンドボックステスト環境を含み、ポリシー開発プロセスを簡素化します。
ポリシーの定義は、主にポリシーのアイデンティティとメタデータ、必要なパラメータ(モデル、ツール、クエリなど)、パラメータのタイプと制約、ポリシー実装ソースコードの場所から構成される。
エージェントの実行プロセスは、初期化、反復ループ、最終回答の3つの主要フェーズに分けられます。
- 初期化段階システムは、必要なパラメータ設定、ツールのセットアップ、コンテキストの準備を完了します。
- 反復サイクル段階システムは現在の文脈を含むプロンプトを準備し、ツール情報を使用して大規模言語モデル(LLM)を呼び出す。次にシステムはLLMからの応答を解析し、ツールが呼び出されたか、最終的な回答が得られたかを判断する。ツールの呼び出しが必要な場合、システムは適切なツールを実行し、ツールの出力を使用してコンテキストを更新する。このループは、タスクが完了するか、あらかじめ設定された最大反復回数に達するまで続けられる。
- 最終回答段階システムは最終的な答えや結果を返す。
Difyプラットフォームは、YAMLファイルによる宣言的なポリシーの定義をサポートしています。 例えば、次のコードは function_calling.yaml
のコンフィギュレーション・ファイルの例。
パラメーター: 名前: モデル
- モデル名
タイプ:モデルセレクタ
スコープ: tool-call&llm
- 名前: tools
タイプ: array[tools]
- name: max_iterations
名前: max_iterations
デフォルト: 5
name: tools: array[tools] name: max_iterations
ソース: function_calling.py
ソース: function_calling.py
この宣言型アーキテクチャは、ポリシーの設定をフォームに記入するのと同じくらい簡単で直感的なものにすると同時に、サポートを提供する:
- パラメータ・ダイナミック・キャリブレーションパラメータタイプ、スコープ、依存関係の動的検証。
- 多言語ラベルの自動レンダリング多言語版の自動レンダリングのための設定インターフェイス。
ポリシーの定義の詳細については、Difyの公式ドキュメントhttps://docs.dify.ai/plugins/schema-definition/agent を参照してください。
将来の展望:絶え間ない反復、無限の可能性
Difyプラットフォームは、今後もAgent nodeの機能を反復し続け、開発者向けのコンポーネントライブラリなどを追加していく予定です:
- ナレッジベースへのアクセス機能
- チャットフローのメモリー・コンポーネント
- エラー処理と再試行メカニズム
- その他の公式エージェント戦略
ユーザーは、コミュニティからさまざまなエージェント戦略をダウンロードし、ニーズに応じてさまざまな複雑なタスクを解決するために、さまざまなエージェントノードにロードすることができます。
初めてAgentノードを試す場合、ユーザは3ノードのChatflowを使用して、Agentの基本的な機能をシミュレートし、どのように動作するかを簡単に理解することができます。 より複雑なタスクを解決する場合は、ルーティングやハンドオフなどの高度なテクニックを試し、AgentノードをLLMノードの強力な拡張機能として考え、複雑な問題をステップバイステップで解決します。
例えば、エージェントノードを使えば、ユーザーはOpenAI ChatGPT-4o with Taskのような複雑なタスク処理機能を実現することができる(下の画像はコミュニティ貢献者のPascalによる)。
より高度なゲームプレイはDify 1.0.0で正式にリリースされる予定であり、より多くの開発者が独自のエージェント戦略を提供し、共に繁栄するDifyエコシステムを構築することを歓迎します!