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

Deep Agentsにおけるインタプリタ:ツール呼び出しとサンドボックスの間のコード

記事の要約

Deep Agentsはインタプリタをサポートするようになりました。エージェントがツールを調整し、作業状態を保持し、モデルコンテキストに入るものを決定するための小型組み込みランタイムです。シリアルツール呼び出しと完全なサンドボックスの中間的な位置づけで、マルチステップの作業を表現し、中間状態をモデルコンテキストの外に保ち、より予測可能な方法でコードとアクションを実行できます。

Deep Agentsにおけるインタプリタ:ツール呼び出しとサンドボックスの間のコード
誤りを報告

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

訂正案内
本文へ

Deep Agentsはインタプリタ機能を追加しました。これは、エージェントがコードを記述して実行できる小型組み込みランタイムです。これにより、エージェントはツール呼び出しと完全なサンドボックスの中間的な領域を得て、マルチステップの作業を表現し、中間状態をモデルコンテキストの外に保ち、より予測可能な方法でコードとアクションを実行できます。

インタプリタとは? インタプリタは、エージェントが作業中にコードを記述できる小型組み込みランタイムです。機能的には、エージェントにPythonまたはNodeのREPLを提供するようなものです。変数を定義し、値を検査し、ヘルパー関数を書き、呼び出し間で状態を再利用できます。

現在、多くのエージェントはホストまたはサンドボックス環境にコマンドを発行することでコードを実行しています。これはタスクが環境レベルの作業(コマンド実行、依存関係のインストール、ファイルシステムの操作)である場合に優れています。インタプリタは異なるレイヤーを対象としています。エージェントが記述するコードはエージェントループ内で実行され、委任の調整、ツール呼び出しの構成、構造化データの変換、モデルに戻す情報の決定を行います。

インタプリタの位置づけ エージェントを考えるとき、通常はツールの追加を思い浮かべます。最も単純なエージェント形式では、モデルがループ内でツールを使用します。モデルがツールを呼び出し、観測結果を検査し、次のアクションを決定します。この1ステップずつのスタイルはデバッグと評価が容易で、多くのワークフローが即時観測を必要とします。サンドボックスはその上にbashツールを提供し、コマンドの実行、依存関係のインストール、ファイルの操作を可能にします。しかし、両方に欠点があります。サンドボックスはローカル手順を処理できますが、プロビジョニングとスケーリングが難しい場合があります。純粋なシリアルツールループは、中間ステップが主に次のステップに供給される場合に扱いにくくなります。

インタプリタはこれらの両極端の間にうまく収まります。エージェントに環境全体を与えることなく、スコープされた機能に対するコードレベルの構成を提供します。モデルは小さなプログラムを記述して既存の機能に対する制御フローを表現でき、ハーネスはどの機能が利用可能かを決定します。

意図的に制限された設計 私たちはこれを単なるコードランタイムではなくインタプリタと呼んでいます。なぜなら、それは意図的に制限されているからです。デフォルトでは、通常のプログラミング環境に期待されるAPI(ファイルシステム、ネットワーク、シェル、パッケージインストール、リアルタイムアクセス)はありません。エージェントは基本的な制御フローとオブジェクト操作(オブジェクト、配列、マップ、JSONなど)から始まります。

これらの機能は、ホストランタイムへの明示的なブリッジを通じて公開されます。エージェントがツールを呼び出したり、スコープされたファイルシステムAPIから読み取ったり、URLを取得したり、サブエージェントに委任したりする必要がある場合、ハーネスはその機能を意図的に公開する必要があります。たとえば、以下のスクリプトは、fetch、read_file、taskツールを明示的にインタプリタにブリッジした場合にのみ機能します。

ホストランタイム(ハーネスを実行するものと同じ)には、エージェントがインタプリタを使用して実行できるすべてのアクションが含まれており、どのアクションをインタプリタコードが呼び出せるかを明示的に決定します。インタプリタはその境界におけるエージェントのプログラマブル側です。

インタプリタの利点 インタプリタ状態をコンテキストサーフェスとして:エージェントハーネスはすでに複数のサーフェスでコンテキストを整理しています。メッセージ履歴はモデルが即座に利用できるコンテキストですが、コストが高く注意力に制限されます。ファイルシステムはエージェントが永続的成果物、メモ、中間ファイル、長期作業記憶を保存する場所を提供しますが、エージェントは作業状態をファイルにシリアル化し、後で再構築する必要があります。インタプリタ状態はエージェントに別のオプションを提供します。値は配列、オブジェクト、マップ、カウンター、キュー、ヘルパー関数としてランタイム内に保持できます。モデルはすべての中間値をプロンプトテキストとして見る必要はありませんが、後でインタプリタにそれらの値を検査または再利用するよう要求できます。

プログラムによるツール呼び出し:AnthropicのProgrammatic Tool Calling (PTC) はこのパターンの別のバージョンです。ツール呼び出しはモデルを介した一連のアクションとしてではなく、エージェントが記述するコード内から発生します。Deep Agentsでは、PTCはミドルウェアとして実装されており、モデルプロバイダーの動作ではありません。開発者は許可リストを渡し、許可されたツールはグローバルなtools名前空間の下に現れ、各ツールはインタプリタがawaitで呼び出せる非同期関数として公開されます。これにより、オープンソースモデルを含む任意のモデルでPTCを有効にできます。初期テストでは、このスタイルのツール呼び出しは一部のタスクで最大35%少ないトークンを使用しました。

大規模データセットの処理:ドキュメント集約型タスクの場合、インタプリタ版は異なります。モデルはコードを記述してランタイム内にドキュメントと検索状態を保持し、プログラムでバッチを反復処理し、候補をスコアリングまたはフィルタリングし、選択したスライスでのみサブエージェントを呼び出します。インタプリタはすべての中間結果をモデルに返す代わりに、コンパクトな証拠セットを返します。

再帰的オーケストレーション:関連するアイデアとしてRecursive Language Models (RLMs) があり、長いプロンプトを外部REPL環境の一部として扱います。

まとめ:インタプリタは、ツール呼び出しとサンドボックスの間で複雑なワークフローを柔軟に表現しながら、制御と安全性を維持する新しい能力層をDeep Agentsに提供します。

要点と分析を開く

記事インテリジェンス

エンジニア上級

要点

  • インタプリタはシリアルツール呼び出しと完全なサンドボックスの中間に位置し、エージェントは環境全体を継承することなく、スコープされた機能に対してコードレベルの構成を得られます。
  • インタプリタ状態は3番目のコンテキストサーフェスです。メッセージ履歴はモデルが現在推論するためのもの、ファイルシステムは永続的成果物のためのもの、インタプリタ状態はまだモデル入力になる必要のないライブ作業値のためのものです。
  • プログラムによるツール呼び出しはミドルウェアとして導入されます。許可リストに登録されたツールはインタプリタ内のツール名前空間として現れ、任意のモデルで動作し、初期テストでは一部のタスクで最大35%少ないトークンを使用しました。

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