【ITニュース解説】My Agent Had the Right Tool in a 50-Tool Menu. It Used the Wrong One.
2026年11月05日に「Dev.to」が公開したITニュース「My Agent Had the Right Tool in a 50-Tool Menu. It Used the Wrong One.」について初心者にもわかりやすく解説しています。
ITニュース概要
AIエージェントが使えるツールの数が増えると、正しいツールを選びにくくなることが分かった。50個のツールでは正しく選ぶ確率が大幅に下がり、「find_contact」のような無関係なツールを選んでしまう傾向がある。対策として、必要なツールのみをAIに提示する手法が有効だ。
ITニュース解説
AIエージェントに多くのツールを提供することが、必ずしもその性能向上につながるとは限らないという興味深い現象が報告されている。この記事では、AIエージェントが多数のツールから適切なものを選ぶ際の課題について、ある実験結果を基に詳しく解説する。
AIエージェントとは、人間からの指示(プロンプト)を受け取り、その指示を達成するために利用可能なツール(機能)の中から最も適切なものを選び、実行するソフトウェアのことだ。例えば、「Aさんにメールを送る」という指示があれば、「メール送信」ツールを選ぶ、といった具合である。ツールは、メールの送信、カレンダーへの予定追加、メッセージの送信、天気予報の確認、通貨換算など、多岐にわたる機能を持つことができる。
今回の実験は、「エージェントが利用できるツールの数が増加すると、モデルが正しいツールを選択する能力は実際に低下するのか」という疑問を検証するために行われた。実験では、GoogleのAIモデルであるgemini-3.5-flash-liteを使用し、メール、カレンダー、メッセージング、天気など、日常的な15のドメインにわたる50種類のツールを用意した。検証のために設定された20個の固定シナリオ(例:「Q3の数字をPriyaに今すぐメールして」)に対し、エージェントに提示するツールの数を5個、10個、25個、50個と段階的に増やしながら、モデルが正しくツールを選択できるかどうかが確認された。各シナリオには、正解となるツールが1つと、人間でも間違えやすいような「似たようなデコイ(間違いやすいツール)」が2〜4個含まれていたため、ツールの数が少ない場合でも、ある程度の判断の複雑さが存在していた。
実験結果は非常に示唆に富んでいた。まず、**生の正答率(Raw accuracy)**を見ると、ツールの数が増えるにつれて正答率は明確に低下した。具体的には、5ツールの場合は80%、10ツールでも80%の正答率を維持したが、25ツールでは75%に下がり、50ツールになると55%と大幅な低下が見られた。特に25ツールから50ツールへの増加時に、正答率が急激に落ち込む「崖」のような現象が確認された。この数値だけを見ると、ツールの数が増えるほどAIの選択能力が低下しているように見えるかもしれない。
しかし、もう一つの指標である**偶然補正後の正答率(Chance-corrected accuracy)**を見ると、全く異なる側面が浮かび上がった。この指標は、完全にランダムにツールを選んだ場合にどれくらいの確率で正解するかを基準として、モデルの実際のパフォーマンスがその何倍優れているかを示すものだ。例えば、5ツールの環境では、ランダムに選んでも20%の確率で正解するが、モデルの正答率は80%だったため、ランダム推測の4倍の性能を示した。一方、50ツールの環境では、ランダムに選んだ場合の正解確率はわずか2%である。この極めて厳しい条件でモデルが55%の正答率を出したことは、ランダム推測の27.5倍も優れていることを意味する。驚くべきことに、ツールの数が増えるにつれて、この偶然補正後の正答率は常に向上していたのだ。これは、AIモデルの「根本的な判断能力」は、ツールの数が増えても相対的に向上している可能性があるという、直感に反する結果である。
では、なぜ生の正答率は低下し、偶然補正後の正答率は向上するという、一見矛盾する結果が生じたのだろうか。その鍵は、AIモデルが間違えるツールの種類が、ツールの数によって変化したことにある。ツールの数が少ない場合(5ツール)の誤りは、主に「似たような機能を持つツール間の混同」だった。例えば、「誰かにテキストメッセージを送って」という指示に対して、SMSではなくWhatsAppを送ってしまうような間違いである。これらは、人間でも間違えやすいような、どちらも目的を達成するための「もっともらしい」選択肢であった。
ところが、ツールの数が50個と多くなった場合、誤りのパターンは大きく変化した。このケースでは、誤りのほとんどが「要求と全く関係のないツール」を呼び出すものだった。特に際立っていたのは、「find_contact(連絡先を探す)」というツールが、関係のない誤りの多くを吸収していた点である。記事の冒頭で紹介された「PriyaにQ3の数字を今すぐメールして」というリクエストでは、50ツールのメニューの中にsend_email(メール送信)という正しいツールがきちんと存在し、適切に説明されていたにもかかわらず、モデルはfind_contactを呼び出して処理を停止してしまった。この特定の失敗は、5、10、25ツールの環境では一度も起こらなかったことから、「選択肢の数が多すぎる」という状況が、モデルを具体的な正しいツールから引き離し、より一般的で「もっともらしい(しかし、この状況では不適切)」な行動へと導いてしまった可能性が示唆されている。
ただし、この実験結果を解釈する上での補足点もある。20個のシナリオのうち3つは、ツールの数が5個であろうと50個であろうと、常に間違った結果になった。これらの失敗は、ツールの数による影響ではなく、リクエストの言葉遣いや、似たようなツール間の定義の曖昧さによるものだと考えられている。したがって、純粋に「ツールの数が増えることによって発生する問題」として捉えるべきは、低いツール数では正しく選択できたが、ツール数が増えるにつれて間違えるようになった5つのシナリオである。
この実験結果は、AIエージェントを開発するシステムエンジニアにとって重要な教訓を与えてくれる。もしエージェントが扱うツールの数が10〜15個程度であれば、ツールの数を少し増やしても、信頼性に大きなリスクは生じにくいだろう。この範囲で発生する間違いは、主に似たような機能を持つツール間の混同であり、ツールの説明文をより明確にすることで解決できることが多い。
しかし、ツールの数が25〜30個を超えてくる場合は、注意が必要だ。他の研究や実際の製品開発でも、このあたりにツールの品質が低下する境界線があることが示唆されている。この問題を解決するための一般的なアプローチとして、「検索ベースのツール選択(retrieval-based tool search)」という方法が有力視されている。これは、エージェントに常に全てのツールリストを見せるのではなく、ユーザーのリクエスト内容に基づいて、関連性の高い少数のツールだけを絞り込んで提示する、というものだ。これにより、モデルが考慮すべき選択肢の数を減らし、適切なツールを選択する精度を高めることができる。
さらにこの実験は、もう一つの重要なアドバイスを提供している。それは、ツールセットが大きくなるにつれて、find_contactのような「汎用的な名前のツール」が、他のツールの失敗を不釣り合いに吸収する「失敗の吸収源」になる可能性がある、という点だ。エージェントが誤ってこの汎用ツールを呼び出してしまうことで、本来の意図とは異なる結果を招くことになるため、注意が必要である。ログを分析して、特定のツールが不適切なタイミングで過度に呼び出されていないかを確認し、もしそうであれば、そのツールの名前を変更したり、機能の範囲をより明確に限定したりといった対策を検討すべきだろう。これは、大規模な検索レイヤーを追加するよりも、ずっと手軽に試せる改善策である。
この実験は、その設計、使用されたツールバンク、シナリオ、各呼び出しの生の結果、分析コードに至るまで、全てがGitHubで公開されている。これにより、誰でもこの実験を再現し、結果を検証することが可能となっており、科学的な研究における透明性と再現性が確保されている。
要するに、AIエージェントに多くのツールを与えることは、単純にその能力を向上させるわけではない。特にツールの数が多くなると、AIは「よりもっともらしいが、実際は不適切な汎用ツール」を選択してしまう傾向が強まることがわかった。この課題に対し、関連性の高いツールを絞り込んで提示する「検索ベースのツール選択」や、汎用的なツールが誤って頻繁に呼び出されていないかを監視し、必要に応じてその定義を見直すことが、システムエンジニアにとって重要な対応策となる。AIエージェントの性能を最大限に引き出すためには、ツールの数の単純な増加だけでなく、その提示方法やツールの設計に工夫が求められるのだ。