🟡 🤝 エージェント 公開日: · 2 分で読めます ·

LangChain: Deep AgentsのDynamic Subagents — エージェントが数百のサブエージェントを並列ディスパッチするコードを記述

エディトリアルイラスト:数百のサブエージェントを並列ディスパッチするコードを記述するDynamic Subagents、テキストと顔なし

Dynamic SubagentsはLangChain Deep Agentsフレームワーク内のオーケストレーションアーキテクチャで、モデルが数百のサブエージェントを並列ディスパッチするJavaScriptスクリプトを記述できます。QuickJSインタープリタがスクリプトを決定論的に実行し、300以上の逐次的なツール呼び出しを排除します。6つのオーケストレーションパターンを定義しています。

🤖

この記事はAIにより一次情報源から生成されました。

LangChainDeep Agentsフレームワーク内にDynamic SubagentsAIエージェントが複雑なタスクを調整する方法を根本的に変えるオーケストレーションアーキテクチャ — を発表しました。逐次的なツール呼び出しの代わりに、モデルはパイプラインに直接組み込まれた軽量で決定論的なインタープリタであるQuickJSが実行するJavaScriptスクリプトを記述します。そのスクリプトは待機なしに数百のサブエージェントを並列にディスパッチします。

従来のエージェント対動的オーケストレーション

従来のエージェントは300以上の個別のツール呼び出しを処理し、スコープをランダムに切り取る傾向があります:500件のうち75件を評価して停止します。Dynamic Subagentsはその問題を排除します。LangChainはデータセット全体の決定論的なカバレッジを保証します。なぜならDeep Agentsフレームワークがすべてのサブエージェントを逐次的にではなく並列に実行するからです。ディスパッチのためのコードを記述することは、従来のツール呼び出しとは根本的に異なります:エージェントはツール呼び出しが単純に提供できない制御構造(ループ、分岐、並列処理)を得ます。

task()関数とQuickJSランタイム

システムの核心はQuickJSインタープリタ内のグローバル関数 task() です。3つのパラメーターを受け取ります:description(タスクの説明)、subagentType(ルーティング用のスペシャリストタイプ)、オプションの responseSchema(フィルタリングに使えるタイプ付き出力)。スクリプトは一度の処理で task() を何百回も呼び出せます — すべての呼び出しは並列で処理されます。インストール:pip install -U "deepagents[quickjs]"、パイプラインでQuickJSランタイムを有効にする CodeInterpreterMiddleware とともに。

あらゆるシナリオに対応する6つのオーケストレーションパターン

Deep Agentsは6つのオーケストレーションパターンを定義しています:classify-and-act(分類してスペシャリストに転送)、fanout-and-synthesize(並列作業、結果を結合)、adversarial verification(2つの独立した検証者)、generate-and-filter(複数のソリューションとスコアリング)、tournament(トーナメント形式のラウンド)、loop-until-done(新しい発見がなくなるまで繰り返す)。

なぜコードを記述することが逐次呼び出しより優れているのか?

概念的な基盤はRecursive Language Models — さらに多くのモデルをディスパッチするコードを記述するモデル — です。LangChain Deep AgentsフレームワークのDynamic Subagentsはそのアイデアをプロダクションツールへと変換します:以前は数百の逐次ステップを必要としていた複雑なワークフローが、データセットのサイズに関わらず完全なカバレッジで決定論的かつ並列に実行されるようになります。

よくある質問

QuickJSとは何か、なぜLangChainはDynamic Subagentsアーキテクチャで使用しているのですか?
QuickJSはDeep Agentsフレームワーク内でオーケストレーションスクリプトを実行する軽量で決定論的なJavaScriptインタープリタです。外部依存なしにコードを安全かつ予測可能に実行でき、数百のサブエージェントのディスパッチを信頼性高く再現可能にします。
Dynamic Subagentsは従来のツール呼び出しとどう違うのですか?
従来のエージェントはツール呼び出しを逐次的に — 一つずつ — 実行し、スコープを切り取る傾向があります(例:500件の代わりに75件を評価して停止)。Dynamic Subagentsは一度の処理で数百のサブエージェントを並列にディスパッチするスクリプトを記述し、データセット全体の決定論的なカバレッジを実現します。