ホームへ戻る

AI 代理與開發工具

プログラマティックなツール呼び出し、14モデル中11モデルでJSONと同等以上、長いチェーンタスクでは18.8ポイント差

新たな研究では、API schemaを型付きPython stubにコンパイルし、モデルが1回の推論でツール呼び出しを連結または並列実行できるようにした。この手法はBFCL v4のサブセットにおいて、大半のモデルでネイティブJSONと同等以上の性能を示した。ただし、現時点で検証されたのは引数をそのまま返す模擬ツールのみであり、実際のAPI workflowでも同様の効果が得られるとはまだ証明されていない。

own work and chatGPT 4o and 3 AI · Public domain · Image source
zh-Hant

多くのagent frameworkでは、モデルが各ステップでJSON function callを出力し、結果を受け取ってから次の推論を行うことを求める。一方、コードを記述できるモデルなら、スクリプト全体を一度に生成することも可能だ。8月6日に公開された[The Bitter Lesson of Tool Calling](https://arxiv.org/abs/2608.06370)では、function schemaを型付きPython stubに変換し、モデルがコードからそれらの関数を呼び出した後、agent shellがsubprocessで実行して結果を取得する。こうしたprogrammatic tool calling(PTC)では、変数、ループ、`asyncio.gather`を直接使用でき、チェーンの各段階でモデルとの追加ターンが発生するのを避けられる。

研究では、[Berkeley Function Calling Leaderboard v4](https://github.com/ShishirPatil/gorilla/tree/main/berkeley-function-call-leaderboard)から8種類のタスクにまたがる309件のデータを選び、2024年11月から2026年7月までにリリースされた14モデルをテストした。PTCは、そのうち11モデルでネイティブJSONと同等以上の成績を収めた。GPT-5.6-Solは72.2%から82.8%へ、Terraは73.5%から84.1%へ向上し、いずれも10.6ポイント増となった。12ステップ以上のチェーンタスクでは、PTCの総合的な優位性が18.8ポイントに達した。並列fan-outテストでも、13モデルがJSON以上の性能を示した。

interfaceの違いは、構造的な限界も浮き彫りにした。Claude Sonnet 5はJSONを使用した場合、同一ターンで70~72回を超える呼び出しを要求すると項目を取りこぼし始めた。一方、PTCでは100回の呼び出しでも完全な列挙を維持した。fan-outが大きい場合、コードによって重複するserializationも削減できる。48回の呼び出しにおける入出力の合計を比較すると、JSONは5,097 token、PTCは3,535 tokenを使用した。ただし、呼び出し回数が少ない場合は、promptにstubと説明を埋め込む必要があるため、PTCのコストがかえって高くなる。

ただし、すべてのモデルでinterfaceをそのまま切り替えられるわけではない。GPT-4o、GPT-4.1、GPT-5.4-miniは、複数行コードの改行をリテラルな`\\n`として出力し、subprocessでsyntax errorを引き起こした。その結果、スコアはJSONより19.7~26.9ポイント低かった。さらに重要なのは、BFCLのstubは引数をそのまま返すだけで、実際のAPIを実行していない点だ。小規模なablationでも、各条件につき31~52問しか使用されていない。エンジニアリングチームがPTCを採用する場合、次の段階では、制限付きsandbox、権限管理、timeout、実際の戻り値への依存関係を含む環境で再検証すべきであり、function argumentの一致率だけに依存してはならない。

出典

  1. The Bitter Lesson of Tool Calling
  2. Berkeley Function Calling Leaderboard
  3. BFCL 官方程式與資料