TL;DREMBL AI LI…
TL;DR
LLMに外部ツールを呼び出させる方法として、従来のJSON形式ではなく「Pythonコードを書かせる」方式(プログラム的ツール呼び出し)が有効かを、14モデル・BFCL v4ベンチマークで検証。11/14モデルでJSON方式と同等以上、最新GPT-5.6系では最大10.6%の精度向上を確認。特に長い連鎖処理や並列呼び出し、コンテキスト汚染に強い一方、古いモデルではコード生成の失敗で大幅に精度が下がるケースもあり、モデル世代による性能差が明確。
解説
ねえ智也くん、このブログのタイトル見たんだけど、『ツール呼び出しはJSONよりコードが有利?』って、どういうこと?
ああ、それね。LLMに外部ツールを使わせる方法として、従来はJSONで指示を渡すのが普通だったんだけど、最近はPythonコードを直接書かせる方式が注目されてるんだ。
へー、コードを書かせるって、なんだか難しそうだけど、なんでそんなことするの?
理由はいくつかあるけど、まずJSONだと複雑な処理を表現するのが難しいんだ。例えば、複数のツールを順番に呼んだり、条件分岐させたりするとき、コードの方が自然に書ける。
なるほどね。で、この研究では何をしたの?
BFCL v4っていうベンチマークを使って、14種類のモデルでJSON方式とコード方式を比較したんだ。
14モデルも!それで結果はどうだったの?
11モデルでコード方式がJSON方式と同等かそれ以上だった。特に最新のGPT-5.6系では最大10.6%も精度が上がったんだ。
すごい!でも、全部のモデルで良かったわけじゃないんでしょ?
そう。古いモデルだとコード生成自体が失敗することがあって、逆に精度が大幅に下がるケースもあった。モデルの世代によって性能差がはっきり出てるんだ。
なるほどね。じゃあ、どんな場面でコード方式が特に強いの?
長い連鎖処理や並列呼び出し、あとコンテキスト汚染に強いって結果が出てる。コンテキスト汚染っていうのは、前の情報が混ざって変な出力になることなんだけど、コードだと変数のスコープが明確だから防ぎやすいみたい。
へえ、コードの方が構造的にしっかりしてるってことか。でも、実務で使うなら、古いモデルでも大丈夫なようにしないとね。
そうだね。この研究の意義は、コード方式が万能じゃないってことを示した点にあると思う。モデル選びが重要だってことだね。
ふふ、つまり「コードが書けるAI」じゃなくて「コードを書かせても大丈夫なAI」を選べってことか。
まあ、その通りだな。でも、君のその冗談はJSONで表現するよりコードで書いた方が分かりやすいかもね。