AI Codingにおけるコンテキストの分割・圧縮
最近 Cline による AI Coding をよく使っている。
AI Coding を使っていて、一番のボトルネックは、一度に持てるコンテキスト量の限界にあると思っている。コーディングをしているときにはかなり広い範囲のアーキテクチャを見通して判断をくださないといけない場面もあるが、LLM でやりとりできるコンテキスト量に限界があるので全てをコンテキストに入れ続けることはできない。ただし人間もその作業のときはある程度コンテキストを分割・圧縮して考えているはずなので、コンテキストの分割・圧縮が今後の課題になる。
memory-bank とか .clinerules のやり方をもう一歩進めて、やりたいタスクに対するコンテキストを絞り込むような機能が必要になってくると思う。 つまり、タスクの内容を Plan する段階で関連する仕様と関連するコードを絞り込み、コンテキストを圧縮して濃いものにする。それに対して Act で実装を進められるようにする。インテグレーションテストはモジュール単位で閉じている。 これを実現するために、大きなシステムをつくるときには境界のインタフェースをうまく設計してある程度独立性を担保したモジュール設計をすることが今まで以上に大事になる。
LLM が保持できるコンテキスト量は増え続けるとは思うけど、現状だとコンテキストが大きすぎると薄れてしまって肝心な部分を考慮してくれないときがある。また、自分はなるべくローカル(またはプライベート)に動かせる AI モデルを使えるのであればそのほうが望ましいと思っているので、AI モデルが肥大化し続けないほうがありがたい。少なくともコーディングのための AI はどこかで実用性に対して十分な性能のキャップが来ると思っている。とか言っているうちに、プログラミングの概念が大きく変わっていきそうだけど。