エージェント・ループの理解

ツール呼び出し(tool-calling)モデルを使用して構築する場合、最も重要な決定はプロンプトではありません。モデルの周囲にある「ループ」です。

LLMはツールの使用を決定しますが、そのツール自体を実行することはできません。アプリケーションまたはSDKがコンテキストを組み立て、ツールを実行し、その結果を追記する必要があります。このサイクルがエージェント・ループです。

モデルはシステムの一部に過ぎません。ハーネス(harness)またはSDKがオーケストレーションを管理します。これには、プロンプトの組み立て、ツールの実行、リトライ、および終了が含まれます。

信頼性の高いエージェントを構築するための重要な概念:

  • 状態管理(State management)は極めて重要です。ツールの出力を失うと、エージェントは何が起きたかを忘れてしまいます。
  • パフォーマンスはプロンプトの増大制御に依存します。コストを低く抑えるために、安定したプレフィックスとキャッシュを活用してください。
  • 安全性には検証が必要です。データを変更するアクションには、承認ゲート(approval gates)を使用してください。
  • ライフサイクルを管理するのはモデルではなく、ハーネスです。

ループの実践的なメンタルモデル:

  • 入力状態を構築する。
  • モデルを呼び出す。
  • レスポンスを検査する。
  • モデルがツールを要求した場合は、それらを検証して実行する。
  • ツールの結果をコンテキストに追記する。
  • 再度モデルを呼び出す。
  • モデルが最終的な回答を提供したときにのみ停止する。

同じモデルを使用しても、2つのシステムが異なる挙動を示すことがあります。これは、コンテキスト、ツールの順序、および履歴に関して、それぞれのハーネスが異なる決定を下すために起こります。

次のような一般的な問題に注意してください:

  • 繰り返しの挙動:通常、状態の連続性が断たれていることが原因です。
  • 低品質:ツールの出力が長すぎたり、ノイズが多かったりすることが原因であることが多いです。
  • 高コスト:通常、キャッシュを妨げる不適切なプロンプトの順序付けが原因です。
  • 不安全なアクション:ツールを実行する前に引数を検証していない場合に発生します。

モデルはアクションを選択します。ハーネスは現実を制御します。より優れたシステムを構築したいのであれば、単にプロンプトを微調整するのではなく、より優れたループを構築してください。

出典: https://dev.to/pramod_sahu_d5bd2e6de82d1/understanding-the-agent-loop-how-tool-using-llm-systems-actually-work-2mb5

オプションの学習コミュニティ: https://t.me/GyaanSetuAi