Movatterモバイル変換


[0]ホーム

URL:


コンテンツにスキップ

複数のエージェントのオーケストレーション

オーケストレーションとは、アプリ内でのエージェントの流れを指します。どのエージェントが、どの順序で実行され、次に何をするかをどのように決めるか、ということです。エージェントをオーケストレーションする主な方法は 2 つあります。

  1. LLM に意思決定させる: これは、 LLM の知能を活用して計画・推論し、それに基づいて取るべき手順を決めます。
  2. コードでオーケストレーションする: コードでエージェントの流れを決定します。

これらのパターンは組み合わせることができます。それぞれにトレードオフがあり、以下で説明します。

LLM によるオーケストレーション

エージェントとは、指示、ツール、ハンドオフを備えた LLM です。つまり、オープンエンドなタスクが与えられた場合、 LLM はツールを使って行動しデータを取得し、ハンドオフでサブエージェントに委任しながら、タスクへの取り組み方を自律的に計画できます。たとえば、リサーチ用エージェントには次のようなツールを備えられます。

  • Web 検索でオンラインの情報を見つける
  • ファイル検索 と取得でプロプライエタリデータや接続を横断して検索する
  • コンピュータ操作 でコンピュータ上のアクションを実行する
  • コード実行 でデータ分析を行う
  • 計画、レポート作成などに優れた特化エージェントへの ハンドオフ

このパターンは、タスクがオープンエンドで、 LLM の知能に依存したい場合に適しています。ここで重要な戦術は次のとおりです。

  1. 良いプロンプトに投資する。利用可能なツール、その使い方、および運用すべきパラメーターの範囲を明確にします。
  2. アプリを監視し、反復する。どこで問題が起きるかを確認し、プロンプトを改善します。
  3. エージェントに内省と改善を許可する。たとえば、ループで実行して自己批評させる、またはエラーメッセージを提供して改善させます。
  4. 何でもこなす汎用エージェントではなく、1 つのタスクに長けた特化エージェントを用意する。
  5. evals に投資する。これにより、エージェントを訓練してタスク遂行能力を向上できます。

コードによるオーケストレーション

LLM によるオーケストレーションは強力ですが、コードによるオーケストレーションは、速度・コスト・パフォーマンスの観点でより決定的かつ予測可能になります。一般的なパターンは次のとおりです。

  • structured outputs を使って、コードで検査できる 適切な形式のデータ を生成します。たとえば、エージェントにタスクをいくつかの カテゴリー に分類させ、カテゴリー に基づいて次のエージェントを選ぶことができます。
  • あるエージェントの出力を次のエージェントの入力に変換して連鎖させる。ブログ記事の執筆のようなタスクを、リサーチ、アウトライン作成、本文執筆、批評、改善という一連のステップに分解できます。
  • 評価とフィードバックを行うエージェントと、タスクを実行するエージェントをwhile ループで回し、評価者が出力が一定の基準を満たすと言うまで繰り返します。
  • 複数のエージェントを並列に実行する(例: Python の基本コンポーネントであるasyncio.gather を使用)。これは、相互に依存しない複数のタスクがある場合に、速度面で有用です。

examples/agent_patterns に多数の code examples があります。


[8]ページ先頭

©2009-2025 Movatter.jp