CommandCode AI: Taste Frameworkによるオープンモデルのツール呼び出しの改善
CommandCode AI: Taste Frameworkによるオープンモデルのツール呼び出しの改善
オープンモデルにおけるツール混同の解決
オープンソースのLLMは、非常に高い能力を持っているにもかかわらず、厳格なツール呼び出しスキーマに従えない「ツール混同」に悩まされることがよくあります。CommandCode AIのCEOであるAhmad Awaisは、オープンモデルにおける多くの認識されている弱点は、能力の欠如ではなく、むしろ「harness/contract issues(ハーネス/契約の問題)」、つまりモデルがツール呼び出しフレームワークとどのように対話するかにおける失敗であることに気づきました。
内部評価において、決定論的な修復レイヤーを実装することで、DeepSeek V4 Proは10ケース中6ケースでOpus 4.7を上回る性能を発揮しました。核心的な問題は、オープンモデルが誤ったスキーマを繰り返し送信したり(例:配列が期待されている場所にnullオブジェクトを送信する)、標準的なエラーメッセージ(Zodのバリデーションエラーなど)を無視したりして、失敗のループに陥ることがあります。
「検証して修復する」アプローチ
ツール呼び出しが失敗したときに単にLLMにエラーを返すのではなく、CommandCode AIは、ツールが実行される前に決定論的に入力を修正する修復レイヤーを実装しています。
- 決定論的な修正: モデルが配列の代わりに一貫してJSON文字列を出力する場合、修復レイヤーはそれを自動的に配列に変換します。
- 修復ヒント: 入力を修復してツールの結果を返した後に、システムはモデルに対して「修復ヒント」を返します。これにより、モデルは将来の呼び出しのために正しい形式を学習します。
- 判断の実行: 不足しているパラメータ(例:ファイルを読み取るためのファイルオフセット)については、システムが合理的なデフォルトの仮定(例:最初の100行を読み取る)を行い、エージェントを前進させます。
Awais氏は、モデルが修復を通じて成功した結果を受け取ると、その後の呼び出しで自身の行動を修正することがよくあり、大幅に精度の向上と効果的な動作が可能になると述べています。
「デザイン・スロップ」を構成的フレームワークで修正する
ツール呼び出しだけでなく、決定論的な修復と構造化されたガイダンスのロジックは、「デザイン・スロップ(design slop)」、つまりLLMが生成する汎用的で、しばしば繰り返される審美的なパターン(至る所で見られるインディゴ・パープルのグラデーションなど)にも適用されます。
デザイン・スロップの削減
CommandCode AIは、構成的フレームワークと特定の制約を提供することで、デザイン・スロップを削減します。
- 意図優先のデザイン: デザインを実装する前に、モデルにデザインの背後にある意図を定義させる(例:ダッシュボードを「モニター・サーフェス」として特定する)ことを強制します。
- OKLCH色空間: モデルにHSLやRGBの代わりにOKLCHを使用することを強制します。LLMはOKLCHを使用する場合、明るさや知覚的な色の整合性においてより優れた制御が可能であり、これは人間の視覚により近いものです。
- デザインの兆候とパターン: プロフェッショナルなデザイナーから導き出された一連の「デザイン・スメル(design smells)」(避けるべきもの)と7つのコア・デザイン・パターンを実装しています。
デザインを漠然とした審美的な要求ではなく、決定論的に修正可能なパターンの集合として扱うことで、システムはAI生成のデザイン・アーティファクトの大部分を排除することができます。
Taste Framework: メタ・ニューロシンボリック・メモリ
CommandCode AIは、開発者の好みやスキルを管理するために「Taste」と呼ばれるフレームワークを利用しています。Tasteは、開発者の特定のコーディングスタイルや好みを時間の経過とともに学習する、メタ・ニューロシンボリック・アーキテクチャとして説明されています。
スキル vs. Taste
- Skills: 特定の、文書化されたルールやパターン(例:「パッケージのインストールにはpnpmを使用する」)。
- Taste: リポジトリ全体で繰り返される好みを自動的に特定し、スキル・ファイルを生成する高次エンジン。
Tasteの主な特徴
自動学習: Tasteは開発者の編集内容や承認/拒否を観察し、開発者が手動で文書化することを考えないようなマイクロ・デシジョン(例:特定のPRワークフロー)を特定します。
透明性: TasteファイルはGitリポジトリ内にMarkdownとして保存されるため、透明性があり、Pull Requestsを通じてレビュー可能です。
Portability: Tasteファイルはプロジェクト間で共有可能です。開発者は、高品質なモデル(例:Opus)を使用してプロジェクトの「taste」を確立し、その後、安価でオープンなモデルを使用して、確立されたtasteに従いながらプロジェクトを維持管理することができます。
将来のロードマップとオープンソース
CommandCode AIは、CommandCode CLIをオープンソース化し、完全にハック可能なものにすることを目指しています。目標は、オープンモデルとクローズドモデルの両方の「最高峰」のモデルをサポートしつつ、ユーザーが独自のローカルモデルを統合できるようにすることです。このアプローチは、広範で最適化されていないモデルのリストを提供するのではなく、Appleのエコシステムのような、高度にキュレーションされた体験を提供することを目指しています。