AI Navigate

なぜAIコーディングエージェントはコンテキストウィンドウの半分を浪費するのか

Reddit r/LocalLLaMA / 2026/3/12

💬 オピニオンIdeas & Deep AnalysisTools & Practical Usage

要点

  • 著者は、AIコーディングエージェントがコーディングを開始する前に、方向付けタスク(ルーティング探索、ミドルウェア、型の確認など)に大半のコンテキストウィンドウを費やしていると観察しています。
  • Liu らの「Lost in the Middle」を引用して、Llama や Claude のようなモデルはコンテキストウィンドウの初期で推論が最も強力であることを説明しているため、長いオリエンテーションは後のコーディング品質を低下させます。
  • 問題は、知っていないことはわからないため、知識を段階的に集めなければならないヒルクライミングプロセスとして捉えられます。
  • 提案された修正は、コードベースのドキュメントを三層の階層に再構成し、20回のオリエンテーションの代わりに1-3回のツール呼び出しで方向付けできるようにすることです(タスクをドキュメントへ紐づけるインデックス、意図ベースのディレクトリ、各深さに適切な参照資料)。
  • 結果として、オリエンテーションに費やすコンテキストが約20-40%から10%未満へと減少しました。

何ヶ月も大規模なコードベースでAIコーディングエージェントを動かしてきましたが、気になる点に気づきました。エージェントに「新しいAPIエンドポイントを追加する」などのタスクを渡すたび、物事の場所を把握するだけで15〜20回のツール呼び出しを費やしてしまいます。ルーティングのgrepをしたり、ミドルウェアのファイルを読んだり、型を確認したり、さらなるファイルを読み込んだりします。実際にコードを書き始める頃には、すでに大量のコンテキストウィンドウを使い果たしていました。

コンテキストの位置が実際にどれほど重要かを知りました。研究(Liu らの「Lost in the Middle」)によると、Llama や Claude のようなモデルは、コンテキストウィンドウの初期で推論能力がはるかに高くなるそうです。したがって、全ての探索とファイル読込はモデルが最も鋭いときに発生し、実際のコーディングは注意が低下した後に起こります。私が見たところ、同じモデルでも20回のオリエンテーション呼び出しの後では3回と比べてコードの品質が明らかに劣っていました。

これを最適化理論のヒルクライミング問題として考え始めました。エージェントはゼロのコンテキストから開始し、一歩進んで(grep)、評価し、もう一歩進んで(ファイルを読む)、再評価し、十分な理解を得るまでこれを繰り返します。知らないことは分からないので、ステップを飛ばすことはできません。

最良の修正が、より良いプロンプトやエージェント設定ではなく、コードベースのドキュメントを3層の階層構造に再編成し、エージェントが20回ではなく1-3回のツール呼び出しでナビゲートできるようにすることだとは思いませんでした。タスクをドキュメントへ紐づけるインデックスファイル、意図別に整理された検索可能なディレクトリ、各深さで適切なサイズの参照資料。

オリエンテーションに費やすコンテキストの割合を、20-40%から一貫して10%未満へと削減しました。

セットアップやローカルモデル固有の詳細についての質問にはお答えします。