Anthropic Managed Agents: 脳と手を分離する

TL;DR

Anthropicは、推論エンジン(「脳」)を実行環境(「手」)およびセッションログから分離することで、長期的なタスクを実行するエージェントを運用するために設計されたホスト型サービス、Managed Agentsをリリースしました。このアーキテクチャにより、インフラストラクチャの障害がエージェントの状態を破壊することを防ぎ、エージェントのハーネスを完全に再設計することなく、モデルの能力向上に合わせてシステムを進化させることが可能になります。

Managed Agentsのアーキテクチャ

Managed Agentsは、AIエージェントのコアコンポーネントを3つの独立したインターフェースに仮想化し、1つの実装を他のものに影響を与えることなく交換できるようにしています。

  • The Session: エージェントの動作中に発生するすべてのイベントの、追記専用ログ。
  • The Harness: モデルを呼び出し、ツール呼び出しを適切なインフラストラクチャにルーティングするオーケストレーションループ。
  • The Sandbox: モデルがコードを実行し、ファイルを編集する実行環境。

これらを単一の結合されたユニットではなく、仮想化された抽象化として扱うことで、Anthropicは、基盤となるモデルやハードウェアが変化してもシステムが安定し続けることを保証します。

「脳」と「手」の分離

以前は、Anthropicはすべてのエージェントコンポーネントを単一のコンテナ内に配置していました。これにより、単一のコンテナの失敗がセッション全体の喪失につながる「ペット」インフラストラクチャの問題が発生し、ユーザーデータとシステムログが同じ場所に配置されていたため、デバッグが困難になっていました。

「家畜」インフラストラクチャへの移行

これを解決するために、Anthropicはハーネス(脳)をサンドボックス(手)およびセッションログから分離しました。この移行により、いくつかの重要な利点が得られます。

  • サンドボックスの障害に対する回復力: ハーネスは現在、サンドボックスをツールとして呼び出します (execute(name, input) → string)。サンドボックスが失敗した場合、ハーネスはエラーをキャッチし、標準的なレシピ (provision({resources})) を使用して新しいコンテナを再初期化できます。
  • ハーネスのリカバリ: セッションログが外部にあるため、ハーネスはステートレスになります。ハーネスがクラッシュした場合、wake(sessionId) を介して新しいハーネスを再起動し、getSession(id) を介してイベントログを取得し、最後に記録されたイベントから再開できます。
  • 強化されたセキュリティ: 脳と手を分離することで、認証情報(トークン)をサンドボックスから遠ざけることができます。信頼できないモデル生成コードが実行されるサンドボックス内には、トークンは保持されません。Git操作の場合、トークンは初期化中にローカルのgit remoteに接続されます。カスタムツールの場合、OAuthトークンはセキュアな保管庫に保存され、専用のプロキシを介してアクセスされるため、ハーネスとサンドボックスが生の認証情報を扱うことはありません。

長期的なコンテキストの管理

長期的なタスクは、モデルのコンテキストウィンドウを超えてしまうことがよくあります。圧縮(要約)やトリミング(古いトークンの削除)といった手法は一般的ですが、これらは何を破棄するかについての不可逆的な決定を伴います。

Managed Agentsは、セッションログをモデルのコンテキストウィンドウの外に存在する永続的なコンテキストオブジェクトとして扱います。getEvents() インターフェースにより、モデルはプログラム的にイベントストリームを照会させ、位置スライスを選択したり、特定の瞬間に巻き戻したりしてコンテキストを再取得することが可能になります。これにより、コンテキストの永続的な保存(セッション)と、そのコンテキストのアクティブな管理(ハーネス)が分離され、ハーネスは元のデータを失うことなくコンテキストエンジニアリングやプロンプトキャッシュ戦略を適用できるようになります。

パフォーマンスとスケーラビリティの向上

「脳」と「手」を分離することで、レイテンシと柔軟性に大幅な改善が実現しました。

レイテンシの低減 (TTFT)

結合された設計では、サンドボックスが実際に必要かどうかにかかわらず、推論を開始する前にコンテナのプロビジョニングが必要でした。ハーネスをコンテナから切り離すことで、オーケストレーション層がセッションログからイベントを取得するのと同時に推論を開始できます。これにより、以下の結果が得られました。

  • p50 Time-to-First-Token (TTFT): 約60%減少。
  • p95 TTFT: Drops by over 90% (p95 TTFTは90%以上減少)。

「多くの脳、多くの手」のサポート

分離されたアーキテクチャにより、単一の脳が複数の実行環境(手)を同時に操作することが可能になります。各手はツールとして扱われるため (execute(name, input) → string)、ハーネスはサンドボックスがコンテナ、モバイルデバイス、またはエミュレータであるかに関わらず、動作を違いません。この柔軟性により、脳が「手」を互いに渡し合うことも可能になり、より複雑なマルチエージェントの調整が可能になります。

Sources

関連

  • Dispatch
  • プロジェクト
  • Dispatch
  • Dispatch
  • Dispatch