◀ 用語一覧
NO.8.5

Context Engineering

更新: 2026.07.22

一言で

Context Engineering は、AI に渡す文脈を「できるだけ少なく、でも必要なだけ多く」設計する技術。

何でも全部読ませるのではなく、目的・制約・関連ファイル・検証方法を絞って、AI が迷わず次の一手を選べる状態を作る。

良い context は量ではなく 選び方。不要な情報を減らし、必要な情報を欠かさない。

Context rot(コンテキスト劣化)

LLM は context window(コンテキストウィンドウ)が大きいほど賢くなるわけではない。情報を詰め込みすぎると、Lost in the middle(中央埋没) で重要情報が中央に埋もれたり、Recency bias(直近性バイアス) で直近の情報を過大評価したりして、判断が鈍る。

これを context rot(コンテキスト劣化) と呼ぶ。

treemap-beta
"コンテキストウィンドウ"
  "賢いゾーン": 60:::smart
  "鈍いゾーン": 40:::dumb
classDef smart fill:#0891b2,stroke:#67e8f9,color:#ecfeff
classDef dumb fill:#7a1748,stroke:#ff2e88,color:#ffe8f4

Context Engineering の目的は、context window を埋めることではなく、必要な情報が目立つ状態を保つこと

Input・Cached input・Output トークン

各ターンで context window の中身は 3 種類のトークン として課金される。これを知ると、長いセッションのコストの理由が分かる。

種類中身相対コスト
🟥 Inputこのターンで新規送信 — prompt・ファイル・ツール結果標準
🟦 Cached input前ターンから再送され、キャッシュから供給される文脈最安(大幅割引)
🟩 Outputモデルが生成して返すテキスト最も高い

長い会話では window の大半が cached input(履歴が毎ターン再送される)なので、キャッシュがコストを抑える鍵。節約は output と追加する input を削ることで効く。

💡 続くターン別スライドは、各ブロックをこのトークン種別で色分けしている。

コンテキストウィンドウ:Start(turn 1)

Start はほぼ理想状態。常時必要な System/tools(skills descriptions / copilot-instructions / MCP servers)だけが入り、作業用の余白が大きい。最初のターンでは初めて送られるので、これらは Input トークン として課金される。

Input トークン(このターンで新規送信)  ·  Free space / Buffer

treemap-beta
"コンテキストウィンドウ"
  "System & tools": 10:::used
  "Free space": 75:::free
  "Buffer": 15:::free
classDef used fill:#7a1748,stroke:#ff2e88,color:#ffe8f4
classDef free fill:#0891b2,stroke:#67e8f9,color:#ecfeff

コンテキストウィンドウ:Custom agent(turn 1)

Custom agent に切り替えると、その agent instruction が context に追加される。System & tools も Custom Agent もこのターンで初めて送られるので、すべて Input トークン として課金される。

Input トークン(このターンで新規送信)  ·  Free space / Buffer

treemap-beta
"コンテキストウィンドウ"
  "System & tools": 10:::used
  "Custom Agent": 10:::used
  "Free space": 65:::free
  "Buffer": 15:::free
classDef used fill:#7a1748,stroke:#ff2e88,color:#ffe8f4
classDef free fill:#0891b2,stroke:#67e8f9,color:#ecfeff

コンテキストウィンドウ:Prompt(turn 1)

Prompt を書く。たとえば「test を追加して」と頼むと、関連 skill と test 用の path instruction が読み込まれることがある。コンテキスト内の要素すべてが、このターンで初めて送られる Input トークン

Input トークン(このターンで新規送信)  ·  Free space / Buffer

treemap-beta
"コンテキストウィンドウ"
  "System & tools": 10:::used
  "Custom Agent": 10:::used
  "Path instruction": 10:::used
  "Skill": 10:::used
  "Prompt": 10:::used
  "Free space": 35:::free
  "Buffer": 15:::free
classDef used fill:#7a1748,stroke:#ff2e88,color:#ffe8f4
classDef free fill:#0891b2,stroke:#67e8f9,color:#ecfeff

コンテキストウィンドウ:Sub-agent(turn 1)

agent が sub-agent を呼ぶことがある。たとえば codebase の explore、database 検索、review など。sub-agent の summary が main context に返ってくる。コンテキスト内の要素すべてが、このターンで初めて送られる Input トークン

Input トークン(このターンで新規送信)  ·  Free space / Buffer

treemap-beta
"コンテキストウィンドウ"
  "System & tools": 10:::used
  "Custom Agent": 10:::used
  "Path instruction": 10:::used
  "Skill": 10:::used
  "Prompt": 10:::used
  "Sub-agent data": 10:::used
  "Free space": 25:::free
  "Buffer": 15:::free
classDef used fill:#7a1748,stroke:#ff2e88,color:#ffe8f4
classDef free fill:#0891b2,stroke:#67e8f9,color:#ecfeff

コンテキストウィンドウ:Memory(turn 1)

Repo で作業を続けると、memory が生成され、必要な時に動的に読み込まれることがある。コンテキスト内の要素すべてが、依然としてこのターンの新規 Input トークン

Input トークン(このターンで新規送信)  ·  Free space / Buffer

treemap-beta
"コンテキストウィンドウ"
  "System & tools": 10:::used
  "Custom Agent": 10:::used
  "Path instruction": 10:::used
  "Skill": 10:::used
  "Prompt": 10:::used
  "Sub-agent data": 10:::used
  "Memory": 10:::used
  "Free space": 15:::free
  "Buffer": 15:::free
classDef used fill:#7a1748,stroke:#ff2e88,color:#ffe8f4
classDef free fill:#0891b2,stroke:#67e8f9,color:#ecfeff

コンテキストウィンドウ:Output(turn 1)

LLM が応答する。返ってきた Answer は context に追加される。これは Output トークン で、Input トークンとは別の(通常は高めの)レートで課金される。

Input トークン(このターンで新規送信)  ·  Output トークン(LLM の応答)  ·  Free space / Buffer

treemap-beta
"コンテキストウィンドウ"
  "System & tools": 10:::used
  "Custom Agent": 10:::used
  "Path instruction": 10:::used
  "Skill": 10:::used
  "Prompt": 10:::used
  "Sub-agent data": 10:::used
  "Memory": 10:::used
  "Answer": 10:::output
  "Free space": 5:::free
  "Buffer": 15:::free
classDef used fill:#7a1748,stroke:#ff2e88,color:#ffe8f4
classDef output fill:#a16207,stroke:#fbbf24,color:#fef3c7
classDef free fill:#0891b2,stroke:#67e8f9,color:#ecfeff

コンテキストウィンドウ:Cache input(turn 2)

ユーザーが次のターンを始めるために新しい prompt を送る。turn 1 の全要素 ── system、tools、custom agent、prompt、sub-agent data、memory、さらに LLM の answer も ── は プロンプトキャッシュ から安価な Cache input トークン として再利用される。新規 Input トークン はこのターンの Prompt #2 だけ。

Cache input トークン(保証されない)  ·  Input トークン(このターンで新規)  ·  Free space / Buffer

treemap-beta
"コンテキストウィンドウ"
  "System & tools": 10:::cache
  "Custom Agent": 10:::cache
  "Path instruction": 10:::cache
  "Skill": 10:::cache
  "Prompt": 10:::cache
  "Sub-agent data": 10:::cache
  "Memory": 10:::cache
  "Answer": 10:::cache
  "Prompt #2": 10:::used
  "Free space": 5:::free
  "Buffer": 5:::free
classDef used fill:#7a1748,stroke:#ff2e88,color:#ffe8f4
classDef cache fill:#475569,stroke:#cbd5e1,color:#f1f5f9
classDef free fill:#0891b2,stroke:#67e8f9,color:#ecfeff