🧠

コンテキストウィンドウ管理 — 有限な記憶の戦略

100万トークンでも入れ方が重要だ

GPT-4が8Kトークンだった時代はコンテキストに何を入れるかが最重要問題だった。2026年現在1Mトークン時代になったが、問題が消えたわけではない。変わっただけだ。

なぜ管理がまだ必要か

コスト — トークンが多いほどAPIコストが上がる。不要な情報を入れると金の無駄。

精度 — "Lost in the Middle"現象。コンテキスト中間の情報はモデルが上手く参照できない。重要なものは先頭か末尾に配置すべき。

速度 — コンテキストが長いとレスポンスが遅くなる。リアルタイム対話では体感が大きい。

ハーネスのコンテキスト管理戦略

選択的包含 — コードベース全体を入れず、現在の作業に関連するファイルだけ入れる。Claude Codeがrepoを探索して関連ファイルだけ読むのがこれ。

要約と圧縮 — 長い対話履歴を要約してトークンを節約。以前のメッセージを全て維持する代わりに核心だけ残す。

動的管理 — 作業が進むにつれ必要な情報が変わる。序盤に入れたファイル内容を後半では外して別のファイルに交換。

永続ストレージ連携 — コンテキストウィンドウ外の情報はファイル、DB、ベクトルストアに保存し必要時に検索して取得。これがRAGの本質。

CLAUDE.mdパターン

Claude CodeのCLAUDE.mdはコンテキスト管理の好例だ。プロジェクトルール、構造、パターンをファイルに保存し毎セッション開始時にコンテキストに注入する。モデルの「長期記憶」を外部ファイルでシミュレーションしているわけだ。

動作フロー

1

選択的包含 — 作業に関連する情報だけコンテキストに入れる(コードベース全体を入れない)

2

優先配置 — 重要な情報はコンテキストの先頭と末尾に、Lost in the Middle防止

3

動的交換 — 作業段階に応じてコンテキスト内容を更新

4

外部ストレージ — コンテキストに入らないものはファイル/DB/ベクトルストアに保存、必要時に検索

ユースケース

Claude Codeの対話圧縮 — コンテキスト限界に近づくと以前のメッセージを自動要約 CLAUDE.md / memoryシステム — セッション間の情報維持を外部ファイルで解決 RAG — ベクトル検索で必要な情報だけコンテキストに動的注入