Repolode
apple-aiml-research

apple-aiml-research/ToolSandbox

ユーザーシミュレーターとマイルストーンベースの評価機能を備えた、LLMエージェントのツール利用を評価する状態を保持する対話型ベンチマーク。

スター
288
フォーク
33
未解決の Issue
3
最終コミット
先月

これは何?

ToolSandboxは、大規模言語モデルによるツール利用を評価するベンチマークで、Appleの研究論文とともに公開されました。単一のプロンプトでステートレスなREST APIをテストするベンチマークとは異なり、ツールは永続的なワールド状態(設定、連絡先、メッセージ、リマインダー)に対して実行されます。そのため、あるツール呼び出しによって、後続の呼び出しが返す内容が変わることがあります。

このフレームワークには、エージェントと複数ターンの会話を行うユーザーシミュレーターと、相互に暗黙の依存関係を持つPythonツール群が含まれています。たとえば、メッセージを送信するには先にモバイル通信を有効にする必要があります。シナリオは、ベースとなるデバイス状態を拡張する形でPythonコードに定義でき、頑健性をテストするために、ツールへダミーを追加したり、名前を変更したり、説明を削除したりできます。

評価はマイルストーンベースです。各シナリオでは、達成すべき中間状態と最終状態をDAGで定義し、特定の呼び出し手順との一致ではなく、有効な順序で状態に到達したかどうかをスコアリングします。プロジェクトには `tool_sandbox` CLIが用意されており、OpenAI、Anthropic、Google Gemini、Cohereのモデルと、vLLM経由で提供されるオープンソースモデルに対応しています。

主な機能

  • 01設定、連絡先、メッセージ、リマインダーからなる永続的なワールド状態に対して、状態を保持したツール実行を行う。
  • 02オンポリシーの複数ターン対話評価に使える、組み込みのユーザーシミュレーター。
  • 03中間ステップの有効な順序を問わない、マイルストーンDAGによるスコアリング。
  • 04ダミーツールの追加、ツール名の変更、型ヒントの削除などによるシナリオ拡張。
  • 05OpenAI、Anthropic、Gemini、Cohere、およびvLLMでホストされたオープンソースモデルに対応。

ユースケース

  • 状態依存関係のある複数ステップのツール利用について、異なるLLMの性能を比較する。
  • タスクの完了に必要なツールや情報が不足しているとき、エージェントがそれを認識できるかテストする。
  • 対話形式でのエージェントのツール呼び出し動作に対する回帰テストを構築する。

クイックスタート

  1. 1

    Python 3.9 の conda 環境を作成する

    conda create -n ToolSandbox python=3.9
  2. 2

    環境を有効化する

    conda activate ToolSandbox
  3. 3

    リポジトリのルートからプロジェクトと開発用依存関係をインストールする

    pip install '.[dev]'
  4. 4

    ユーザーシミュレーターとエージェントの両方に GPT-4o を使って、単一のシナリオを実行する(API キーのプレースホルダーを置き換える)

    env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> RAPID_API_KEY=<YOUR_RAPID_API_KEY> tool_sandbox --user GPT_4_o_2024_05_13 --agent GPT_4_o_2024_05_13

使う前に知っておきたいこと

  • メタデータにライセンスが明確に記載されていないため、再利用条件が不明です。
  • ホスト型モデルでシナリオを実行するには有料の API キーが必要です。また、検索シナリオには RapidAPI キーも必要です。
  • ツール呼び出しはサンドボックスを介さず、ホストマシン上で直接実行されます。

トピック

よくある質問

ToolSandbox とは?
ユーザーシミュレーターとマイルストーンベースの評価機能を備えた、LLMエージェントのツール利用を評価する状態を保持する対話型ベンチマーク。 ToolSandboxは、大規模言語モデルによるツール利用を評価するベンチマークで、Appleの研究論文とともに公開されました。単一のプロンプトでステートレスなREST APIをテストするベンチマークとは異なり、ツールは永続的なワールド状態(設定、連絡先、メッセージ、リマインダー)に対して実行されます。そのため、あるツール呼び出しによって、後続の呼び出しが返す内容が変わることがあります。
ToolSandbox は無料で使えますか?ライセンスは?
ToolSandbox は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
ToolSandbox は今もメンテナンスされていますか?
半年以内に更新あり。ToolSandbox の最終コミットは 2026年9月11日 です。
ToolSandbox は何に使えますか?
状態依存関係のある複数ステップのツール利用について、異なるLLMの性能を比較する。 タスクの完了に必要なツールや情報が不足しているとき、エージェントがそれを認識できるかテストする。 対話形式でのエージェントのツール呼び出し動作に対する回帰テストを構築する。
ToolSandbox のインストール方法は?
Python 3.9 の conda 環境を作成する: conda create -n ToolSandbox python=3.9 環境を有効化する: conda activate ToolSandbox リポジトリのルートからプロジェクトと開発用依存関係をインストールする: pip install '.[dev]' ユーザーシミュレーターとエージェントの両方に GPT-4o を使って、単一のシナリオを実行する(API キーのプレースホルダーを置き換える): env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> RAPID_API_KEY=<YOUR_RAPID_API_KEY> tool_sandbox --user GPT_4_o_2024_05_13 --agent GPT_4_o_2024_05_13
ToolSandbox はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/apple-aiml-research/ToolSandbox

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト