LLM を試したり、SSE での経験を積んだりするために、しばらく前から自分のチャットアプリケーションを作っていました。あわせて、Claude Code や Copilot のような「ビッグボーイ向けのツール」が提供している機能を、こちらでもミラーできないか確認するのも楽しいです。
少し前に CloudFlare が CodeMode についてのブログ記事を公開しました。これは LLM にツール呼び出しをさせるための、新しく、しかも(少なくとも)より良いとされるやり方です。彼らは特に MCP でそれを使っていますが、私のアプリはこれらのツールを組み込みとして提供しているため、結局のところやっていることはほぼ同じです。
これを実装したところ、大きな改善が見られました:
- ツール呼び出しのパフォーマンス
- コンテキスト長の使用
- 全体的な LLM エージェント的能力
ただし、これは一見すると Claude にしか当てはまらないようでした。多くのモデルは、これが提供するのはより大きな自由度だとしても、この方式のツール呼び出しがあまり好きではありません。そもそもそれで学習されていないため、あまり得意ではありません。
たとえば Gemini はうまく動きませんでした。常に壊れたツール呼び出しを出力してきます(IIFE で囲んでしまう、正しくラップできない、など)。GPT-5.x はほとんどの時間、execute_js ブロックの出力自体を拒否します(これはアプリ側でツール呼び出しロジックをトリガーするものです)。
その後、Step Flash 3.5 や GLM のようなオープンソースのモデルも試しましたが、大して良くなりませんでした。MiniMax 2.5 が、おそらく最も良かったです。
上記で挙げたすべてのモデルは OpenRouter を通じてテストしました。
そこで次は、ローカルで動かすモデルの性能がどうなるかを見てみたいと思いました。特に、私の MacBook M1 Pro で現実的に実行できそうなものです。Qwen3.5 9B はまさにぴったりで、最初に試したのもそれでした。そして結果的に、それが最後のモデルになりました。というのも、私の環境で非常にうまく動いてくれるからです。
Qwen3.5 9B はツールを完璧に呼び出します。ミスはあまりしませんし、仮にするとしても、次のツール呼び出しで自分で賢く修正します。私が Claude Sonnet 4.6 以外で試した中で、このように何の手間もなくツールを呼び出す唯一のモデルです。
この投稿をして、自分の驚きが伝わればと思いました。これほど小さなモデルがこんなにできるとは、これまで一度も経験したことがありません。さらに良い点として、完全にローカルで動かせて、しかもひどく遅くないんです!
[link] [comments]



