DeepSeek V4 Proは、ツール呼び出しを間違えても、そのエラーから学習しない。再試行する。そしてまた再試行する。諦めるまでに、平均56回だ。アフマド・アワイス(Ahmad Awais)氏と彼のCommandCode.aiのチームが発見したこの奇妙な挙動は、当初は致命的な欠陥に見えた。しかし、それは後に、オープンモデルがAnthropicのClaude Opus 4.7をわずかなコストで打ち負かすことを可能にする修正の基盤となった。
「テクノロジーで滑稽なのは、バイラルになると思ったものは決してならず、『誰がオープンモデルなんて気にするんだ?』と軽く無視したものが大きな話題になることだ」とアワイス氏はLatent Spaceで語り、無名のデバッグプロジェクトがいかにして競争上の武器へと変わったかを振り返った。
彼の発見は、AIコーディングツール市場における中核的な前提、すなわち「モデルこそが製品である」という考え方に挑戦するものだ。アワイス氏は、真のボトルネックは一つ上の層、つまり開発者の要求とモデルが実際に行うことの間を翻訳する「ハーネス」にあると主張する。その契約を修正すれば、開発者が「使えない」と切り捨てていたモデルが、突如として強力な競争相手になるというのだ。
誰も見ていなかった障害モード
アワイス氏が初めてDeepSeek V4 ProをClaude Opus 4.7と比較ベンチマークした際、彼は単純な性能差を予想していた。しかし、彼が見つけたのは、より奇妙で、より具体的なものだった。
DeepSeekは、不正なスキーマを持つツール呼び出しを送信する。オプションのパラメータが期待される場所に空のオブジェクトを送ったり、配列が必要な場所にJSON文字列を送ったりするのだ。ハーネスはZodのバリデーションエラーを返す。するとモデルは、全く同じ壊れた呼び出しを再度送信する。
「DeepSeek V4 Proには、自分が送信するものは何でも正しいと思い込む、奇妙なアルファオスのようなエネルギーがあります。Zodエラーを返しても聞く耳を持たず、平均56回も同じ呼び出しを繰り返すのです」とアワイス氏は言う。
これは商用モデルの動作とは異なる。Claudeはツールエラーを適切に処理し、次の呼び出しを調整する。DeepSeekとそのオープンソースの仲間たち——アワイス氏は後にKimiやMiniMaxなどにも同じパターンを発見した——は、自身の出力を権威あるものとして扱い、修正シグナルを完全に無視する。
この問題は、ほとんどのユーザーからも見えない。アワイス氏は、Claude Codeを含むコーディングエージェントのハーネスは「Control+Oの背後に多くのエラーを隠している」ため、開発者は蓄積する失敗に決して気づかないと指摘する。Claude自体はツール呼び出しに寛容であるため、それらのハーネスは、あまり洗練されていないモデルのためにこの問題を処理することを強いられたことがなかったのだ。
その結果、DeepSeekは実際よりも劇的に劣って見えた。セッションが30分以上持続することは稀だった。開発者はモデルを非難した。真の原因は、誰も修正しようとしなかったコミュニケーションの断絶だった。

3,200行の解決策、ニューラルネットワーク不要
アワイス氏は、モデルベンダーが問題を修正するのを待つ代わりに、自ら修正プログラムを書いた。修復ロジックは意図的にシンプルで決定論的だ。機械学習も、埋め込みも、ファインチューニングもない。
最初のバージョンは3,200行のコードで、データベースのマイグレーションのように構造化されている。既知の障害パターンごとに修復ファイルが用意される。LLMが不正なツール呼び出しを送信すると、ハーネスが決定論的にパッチを当て(例えば、JSON文字列を配列に変換する)、修正された結果を返し、何が問題で次回はどう回避すべきかを説明する「修復ヒント」を添付する。
「誰かに車の運転を教えるようなものです。彼らが他の車にぶつかりそうになっている。何をすべきかを指示する代わりに、まず彼らを救い、それから理由を説明するのです」とアワイス氏は言う。
効果は即時的かつ複利的だ。モデルはヒントを内面化し、「3回目のツール呼び出しまでには修正される」。6,000億トークンの推論を通じて、チームは1万6,000の修復バリエーションをカタログ化した。
指標修復ロジック導入前修復ロジック導入後セッションあたりの平均ツール呼び出し失敗回数50回以上ほぼゼロ最大持続可能セッション時間約30分12時間以上(あるユーザーは700億トークンに到達)モデル速度に対するユーザーの認識「なぜDeepSeekはこんなに遅いんだ?」「何をしたんだ?なぜV4 flashが今や超安定してるんだ?」
最後のコメントは、投資会社PWのジェネラルパートナーからのものだとアワイス氏は言う。そのユーザーは、内部で何が変わったのかを知らずに改善に気づいたのだ。
このアプローチには副次的な利点もある。それは許可のオーバーヘッドだ。「許可をオンにしてコーディングエージェントを実行すると、モデルは実際にはより愚かになります」とアワイス氏は観察する。「許可を完全にバイパスせずに実行すると、モデルははるかに優れたパフォーマンスを発揮します。」ハーネスレベルでエラーを処理することで、修復ロジックはモデルのパフォーマンスを低下させる許可プロンプトを削減する。

Taste:モデルにあなたが本当に望むことを教える
修復ロジックはモデルのクラッシュを防ぐ。しかしアワイス氏はさらに何かを求めていた。それは、個々の開発者がどのように作業することを好むかを学習し、それらの好みをプロジェクトやモデルを超えて転送するシステムだ。
その結果がTasteである。アワイス氏が「メタ・ニューロ・シンボリック・モデル」と呼ぶこれは、Gitリポジトリ内のマークダウンファイルとして存在する。開発者が手作業で書く従来のスキルファイルとは異なり、Tasteは行動から学習する。
開発者がパッケージのインストールに一貫してpnpmを使用するが、ローカルCLIのリンクにはnpm linkを使用する場合、Tasteはその区別を捉える。ブランチのマージごとに分析をトリガーし、開発者が受け入れ、編集し、拒否したものを調査し、ルールを自動的に洗練させる。各ルールには信頼度スコアが付与され、人間が書いたルールはデフォルトで1.0、学習されたルールは確認されるまで低くなる可能性がある。
特徴従来のスキルファイル(例:Claude)Taste (Command Code)作成方法手動、一般化されたルール行動からの自動的なマイクロ判断鮮度手動更新されない限り陳腐化マージ時に継続的に更新移植性ハーネスごとnpx taste pullで移植可能透明性LLMにとって不透明可視化されたマークダウン、信頼度スコアリポジトリスコープグローバルリポジトリごと(CLI、API、フロントエンドで異なるテイスト)
経済的な意味合いは明白だ。開発者はOpusのような高価で高品質なモデルで一つのプロジェクトを構築し、Tasteファイルを生成した後、その後のプロジェクトでは安価なオープンモデルに切り替えつつ、苦労して得たすべてのノウハウを保持できる。好みは転送される。コストは転送されない。
AIが生成したUIがテンプレートのように見える理由
アワイス氏は、デザインという別の領域でも同じ契約ギャップのパターンに気づいた。LLMは、デザイナーが「デザインスロップ」と呼ぶもの——藍色と紫のグラデーション、横に3枚のカード、左側のボーダー——を普遍的に生成する。プロのデザイナーに相談した後、彼のチームは、トランザクションインターフェースと監視ダッシュボードを区別する、デザインの背後にある意図を捉える10のデザインスメルと7つの表面積パターンを特定した。
より深い問題は技術的なものだった。LLMはデフォルトでHSL色空間を使用するが、そこでは「明度を制御できない」。代わりにOKLCHを使用するようモデルに強制することで、「突然プロフェッショナルに見える」パレットが生成されたとアワイス氏は言う。この修正は修復ロジックを反映している。HSLをOKLCHに決定論的に変換し、レイアウトの前に意図について考えるようモデルに指示するプロンプトを先頭に追加するのだ。
「デザインスロップは能力のギャップだという感覚を拭い去ることができません」とアワイス氏は言う。「しかし、それは実際には、あなたのハーネスがLLMに指示していることと、ユーザーが言っていることとの間の契約ギャップなのです。」
映画のチケット風のプロモーションページを作成するのに時間を費やそうとは決して思わなかった開発者が、今では「人間のデザイナーによる1.5秒の目視テストに合格する」ものを生み出せる。ツール呼び出しを修正するのと同じ決定論的ヒューリスティックフレームワークが美学も修正する。なぜなら、どちらの失敗も同じ根本原因に由来するからだ。ハーネスがユーザーの意図をモデル契約の用語に翻訳できていないのだ。
オープンソースへの賭け
Command Codeのコードベースは——6年の歳月をかけて構築され、月間12億のエージェント実行を処理した「LangBase」という以前のプロジェクトから進化した——まもなく完全にオープンソース化される。エンジェル投資家のマット・マレンウェッグ(Matt Mullenweg)氏は、その前提に基づいて同社を支援した。
アワイス氏は、コーディングエージェントの哲学について、三者による類推を示す。