本文にスキップ
AI News HubLIVE
サイト内リライト3 分で読了

カスタムエージェントハーネスの構築方法

記事の要約

この記事では、LangChainのcreate_agentとミドルウェアを使用してカスタムエージェントハーネスを構築する方法を説明します。ハーネスはモデルを現実世界に接続する足場であり、そのカスタマイズがエージェントの有用性を左右します。ミドルウェアはエージェントループの各ステップにフックし、決定論的ロジック、ツールライフサイクル管理、カスタム状態、ストリーム処理を可能にします。タスクとハーネスの適合度が効果を決めます。

カスタムエージェントハーネスの構築方法
誤りを報告

訂正窓口はまだ利用できません。記事情報をコピーして保存できます。

訂正案内
本文へ

有用なエージェントの構築は、主にカスタマイズに依存します。エージェントを適切なコンテキスト、データ、環境に接続することです。コアとなるのは、モデルがタスクを完了して結果を返すまでツールを呼び出すループです。エージェントは「モデル + ハーネス」と定義できます。ハーネスはモデルを現実世界に接続する足場です。エージェントの良し悪しはモデルに提供されるコンテキストによって決まり、ハーネスの仕事は各ステップでモデルに適切なコンテキストを提供することです。したがって、有用なエージェントを構築するには、特定のタスクに対して適切なコンテキストを提供する優れたハーネスが必要です。

create_agentはLangChainのハーネス構築用プリミティブです。モデル、ツール、システムプロンプトを渡すだけで動作するエージェントが得られます。Deep AgentsやClaude Agent SDKのようなハーネスは、メモリ、コンテキスト管理、サンドボックスなどの意見のあるミドルウェアスタックをプリセットしており、迅速に本番対応エージェントを構築できます。しかし、多くのエージェントはこれらのハーネスがサポートするよりも細かいカスタマイズ(カスタムプロンプト、ビジネスロジック、ガードレールなど)を必要とします。

create_agentは意図的にミニマルなアプローチをとっています。私たちの哲学は、高度に設定可能なコーディングエージェントハーネスであるPiと似ています。create_agentはコアのエージェントループのみを実装し、カスタマイズのためのプリミティブとしてミドルウェアを公開します。ミドルウェアはエージェントループの各ステップ(モデル呼び出し前後、ツール呼び出し前後、エージェント起動時および終了時)にフックします。各ミドルウェアは1つの関心事を処理し、他のミドルウェアと自由に組み合わせられます。

ミドルウェアを使用すると、いくつかのレバー(決定論的ロジック、ツール、カスタム状態、ストリームハンドラ)を介してエージェントに機能を追加できます。決定論的ロジックには、ビジネスロジック、ポリシー適用、動的エージェント制御などが含まれ、プロンプトに含めるべきではないものです。ツールに関しては、ミドルウェアがツールの完全なライフサイクル(セットアップ、ティアダウン、登録)を処理し、エージェントにクリーンなツールセットを提供できます。カスタム状態により、ミドルウェアはフック間で状態を追跡できます(カウンター、フラグなど)。ストリームハンドラはエージェントの出力ストリームをインターセプトおよび変換し、イベントのフィルタリング、メタデータの注入、異なるイベントタイプのルーティングを行えます。

ミドルウェアの利点は、エージェントループの任意のポイントでカスタマイズを可能にし、関連ロジックを構成可能で共有可能なコードユニットにバンドルすることです。LangChainは最も一般的なパターンに対応するプリビルドミドルウェアを提供しています。ユースケース固有のものは、カスタムミドルウェア1つで実現できます。各ミドルウェアは分離されているため、同じミドルウェアを組織内のすべてのエージェントで再利用でき、新しいエージェントは再構築することなく実戦でテストされた動作を継承できます。

ハーネスの仕事は、適切なタイミングでモデルに適切なコンテキストを提供することです。以下の表は、一般的な機能をサポートするミドルウェアを示しています。ほとんどのプロダクションエージェントは、エージェントのニーズ(長時間実行?タスクの複雑さ?アクションの感度?)に応じて複数のミドルウェアを組み合わせて使用します:コンテキストオーバーフロー防止(SummarizationMiddleware、ContextEditingMiddleware)、メモリのアクセスと更新(FilesystemMiddleware、MemoryMiddleware、SkillsMiddleware)、環境でのアクション実行(ShellToolMiddleware、FilesystemMiddleware、CodeInterpreterMiddleware)、タスク委任(SubAgentMiddleware、AsyncSubAgentMiddleware、TodoListMiddleware)、一時的な障害処理(ToolRetryMiddleware、ModelRetryMiddleware、ModelFallbackMiddleware)、ポリシー適用(PIIMiddleware、HumanInTheLoopMiddleware)、エージェント誘導(HumanInTheLoopMiddleware)、コスト制御(ModelCallLimitMiddleware、ToolCallLimitMiddleware、PromptCachingMiddleware)。

タスクとハーネスの適合度は、ハーネスがタスクの実際の要求(必要なコンテキスト、遭遇する障害、施行すべきポリシー、動作環境)にどれだけ適合しているかです。カスタマーサービスエージェント用のハーネスは、長時間実行されるコーディングエージェント用のものとは大きく異なります。LangChainで構築するすべてのエージェント(GTMエージェント、非同期コーディングエージェント、ノーコードエージェントビルダーを含む)は、そのエージェントの使命に合わせたミドルウェアスタックを持つcreate_agent上に構築されています。最高のエージェントは、能力のあるモデルだけでなく、タスクにぴったり合ったハーネスによって構築されます。カスタムハーネスを構築する最も簡単な方法は、create_agentを使用することです。

要点と分析を開く

記事インテリジェンス

エンジニア中級

要点

  • エージェント = モデル + ハーネス。ハーネスが実用性を決める。
  • create_agentはコアループを提供し、ミドルウェアは各ステップでのカスタマイズを可能にする。
  • ミドルウェアはビジネスロジック、ツールのセットアップ/ティアダウン、状態追跡、ストリームインターセプトを処理できる。
  • 最高のエージェントはタスクにぴったり合ったハーネスを持つ。

要点と分析は自動生成され、誤りを含む場合があります。原典をご確認ください。