AI・信頼性・評価
コンテキストエンジニアリングとは?プロンプトとの違いと圧縮の判断
- コンテキストエンジニアリング
- AIエージェント
- LLM
- Claude Code
- Cline
- Codex CLI
- Manus
- プロンプトエンジニアリング
- コンテキストウィンドウ
- lost in the middle
- context rot
- コンパクション
- プロンプトキャッシュ
- サブエージェント
- Auto Compact
- Focus Chain
- ハーネス
- AdaCoM
- 刈り込み
- 短期記憶
- 長期記憶
- RAG
- Transformer
- CLAUDE.md
- システムプロンプト
- トークン
- Anthropic
- OpenAI
- Simon Willison
- Andrej Karpathy
目次
AIエージェントは、考える→動く→観察するを何十回も繰り返して仕事を進める。その土台のLLMには、一度に見られる情報の量に上限がある(これを「コンテキストウィンドウ」と呼ぶ)。人にたとえるなら、この上限は作業机の広さにあたる。机が小さければ関係する資料を全部は広げられないので、いま必要な情報だけを机に載せ、要らない情報は机の外に保存しておく。この采配が、仕事の効率を決める。
エージェントでは、繰り返しの一回ごとに、限られた机に「いま何を載せるか」が問われ続ける。載せ忘れれば的外れになり、載せすぎれば散らかって迷子になる。良い指示を一度きり書いても、長く走ると途中で崩れる。さっき決めた制約を忘れ、関係ない古いやりとりを何度も読み返し、少しずつ的を外していく。効いてくるのは指示の一文ではなく、思考の一手ごとに「机に何を残すか」の采配だ。この采配を、ハーネスの中で設計する技術を、コンテキストエンジニアリング(机に何を載せるかの設計)と呼ぶ。本稿はこの技術を扱う。
長く動くAIエージェントで、限られたコンテキストウィンドウに毎ステップ何を載せればよく、それは「プロンプトを書く」技術とどう違うのか。
情報は多いほどよいわけではなく、要るものが長いコンテキストの中ほどに沈むと取りこぼされる。 何十手も続く経費処理の課題でも、履歴を全部渡すより、直近を残し、そこから押し出した数件だけを要約して差し込む方が完了率は高かった。ただし、どこまで圧縮するのが得かは、動かすモデルの地力で変わる。コンテキストエンジニアリングは、毎ステップいま要る最小限を選んで載せる設計で、実在のハーネスは要約で圧縮する・追記のみでキャッシュを保つ・別の机へ出す、の手でこれを機構にしている。
机が8枠しかないエージェントが、20手目に何を残すか
※ この節の数値は説明のための仮定で、測定値ではありません。
机に8枠ぶんの情報しか載らないエージェントを考える。作業の始めに、目指すことを書いた指示を1枠、守るべき制約を1枠置く。そのあと1手進むごとに、行動とその観察が1枠ずつ増える。6手目で机は埋まる。
新しいものを入れるたびに最も古い枠を捨てるやり方では、7手目で指示が、8手目で制約が机から落ちる。20手目の机に載っているのは13〜20手目の行動と観察だけで、何を目指し、何を禁じられていたかは、もう机の上に無い。
もう一つのやり方では、指示と制約の2枠を机に固定し、1枠を「それまでの経過の要約」にあて、残る5枠に直近の行動と観察を置く。20手目の机は、指示・制約・1〜15手目の要約・16〜20手目の行動と観察になり、制約は20手目にも机にある。その代わり、1〜15手目の細部は要約1枠に収まる分しか残らない。要約に何を残すかを決めることが、設計の中身になる。
「プロンプトを書く」から「コンテキストを設計する」へ
少し前まで、AIをうまく使うコツは「プロンプトエンジニアリング」、つまり一回の指示文の書き方だと言われていた。 だが、長く自律的に動くエージェントの時代になると、話の重心が移った。大事なのは一回の言い回しより、机の上の情報“全体”をどう組み立て続けるかである。新しい呼び名が広まりはじめたのは2025年6月ごろだ。Shopify の CEO Tobi Lütke が「プロンプトエンジニアリングより『コンテキストエンジニアリング』のほうが中身を言い当てている」と書き、Andrej Karpathy がそれを増幅した。Willison はこのとき「定着するだけの力があるかもしれない」と書いている1。実際に、以後1年で Anthropic も Cline も、自社の設計をこの語で説明するようになった(後述)。OpenAI の Codex 解説記事は、机の采配そのものを説きながら、この語は使っていない。
机に載るものは、大まかに次のとおりである。
- 指示(システムプロンプト):そもそも何を目指し、どう振る舞うか(常に置いておく土台)。
- 短期記憶:直近のやりとり(さっき何をして何が返ってきたか)。
- 長期記憶:過去の経験や、必要なときに外から引っぱってくる知識(検索=RAG的なもの)2。
- ツールの結果:行動して返ってきた観察。
ハーネスの仕事は、毎ステップ、この中からいま必要な分だけを机に載せることである。
多いほどよいわけではない。長いコンテキストの「lost in the middle」
ありがちな誤解が、「机に載せる情報は多いほどいい」というものである。実際は違う。 情報が少なすぎれば、AIは手がかりを失う。逆に多すぎても、肝心な情報がノイズに埋もれ、AIは注意散漫になる。AIは、長いコンテキストの真ん中あたりに置かれた大事な情報ほど見落としやすい。この「中央に置かれた情報を取りこぼす」現象は、lost in the middle という名前で知られている(測られたのは複数文書からの質問応答と、キーと値の取り出しの2課題。2023年当時のモデルでの話だ)2。同じ論文は、もっと強い数字も出している。GPT-3.5-Turbo に20〜30本の文書を渡し、答えの載った一本が真ん中に沈んだ最悪ケースでは、正答率が文書を一本も渡さなかったとき(56.1%)を下回った。つまり文書を多く積んでも、その一本の置き場しだいで、積まない場合に負けうる。加えて、載せる量を増やすほどお金(計算コスト)もかかる2。
載せすぎの害は、何十手も続くエージェントの仕事でも測られている。ただしそこで数えられた害は、中ほどの取りこぼしではなく、古くなった状態を参照して誤ることだった。2026年6月のプレプリントで、Microsoft の研究者らが Dynamics 365 の上に経費処理の課題を50件用意し、GPT-5 に渡す履歴の量を変えて完了率を比べた3。どの条件にも、GPT-5 が非対話のハーネスで途中で止まらないよう、gpt-4.1 で作った利用者役のモデルが対話相手として付いている。3条件の結果を並べる(71%と79%の差は信頼区間がわずかに重なる、と著者らは注記している)。
- 全履歴を保持:完了率 71.0%(約148万トークン・14.6時間)
- 直近5つのツール呼び出しに刈り込み:79.0%(約54万トークン・5.4時間)
- 刈り込み+要約:91.6%(約55万トークン・5.8時間)
全履歴を渡した条件が最も低かった。論文は失敗の中身も数えている。非完了のうち古い状態を参照して誤ったものは、全履歴で47%(34/73)、刈り込みで11%(6/53)だった。一方、刈り込みだけにすると、残高が見えなくなって手続きを打ち切る失敗が9件から18件へ倍増し、要約を足すと3件まで減った3。最良だった構成は、直近5件のツール呼び出しを生のまま残し、そこから押し出された直近3件だけを1つの要約に圧縮して差し込む。
伸び幅のほうは、モデルが変わると大きく縮む。Claude Sonnet 4.5 は利用者役なしで回され、何も手を入れない状態ですでに88.0%を完了していた(同じ条件の GPT-5 は8.0%)。刈り込みで92.0%、刈り込み+要約で94.5%と、並び順は同じでも上積みは +6.5 ポイントにすぎない。トークンは 3,562K から 2,235K に減ったが、実行時間は 6.20 時間から 11.30 時間へと約1.8倍に延びた3。著者らが「モデル固有の停止(stalling)挙動を反映している」と書くのは、利用者役なしの8.0%から全履歴の71.0%への跳ね上がりのほうである。71→79→91.6 の並びはその対象ではなく、著者らはコンテキストエンジニアリングについての主張を、全履歴・刈り込み・刈り込み+要約の3条件の比較だけに置くと明記している3。
伸び幅と費用はモデルで変わるが、どちらのモデルでも全部載せる条件は最良にならなかった。だから本質は「全部載せる」ことではなく、「いま要る最小限を、的確に選ぶ」ことにある。引き算の技術である。
実在のハーネスは、どう机を采配しているか
本節では、プロが実際に使うハーネスが、この「引き算」をどう機構にしているかを見る(設計は各社が公開している)。
- コンテキストを「予算」として扱う(Claude Code)。 Anthropic は、トークンが増えるほどモデルの想起精度が落ちる context rot(コンテキストの腐り) を挙げ、モデルには読むたびに目減りする「注意の予算」がある、と言う。なぜ多く載せればいいわけではないのか。同社はこう説明する。Transformer ではすべてのトークンが互いを参照するので、n 個のトークンには n² 通りの関係が生じ、コンテキストが長くなるほどその関係を捉える力は薄く伸びる。加えてモデルは、短い系列のほうが多い学習データから注意の張り方を身につけている。だから長いコンテキストで起きるのは「崖」ではなくなだらかな劣化だ、とも断っている。能力そのものは長いコンテキストでも高いままで、落ちるのは情報の取り出しと長距離の推論の精度だ、という書き分けである。そのうえで机の作り方はハイブリッドだと自ら規定する4。Claude Code は、プロジェクト規約 CLAUDE.md を先に丸ごと載せ、個々のファイルは grep/glob でその場で取りに行く。Anthropic はこの方式が事前に索引を作るより遅いと認めたうえで、索引が古びる問題を避けるためにこれを選んでいる。同社は長丁場の仕事向けに、さらに三つの手を挙げる。会話を要約して差し替える(compaction。「最初に引く梃子」だという)、机の外にノートを書いて後で戻す、脇道をサブエージェントに出す、の三つである。サブエージェントには別の机で数万トークン探索させ、戻すのは1〜2千トークンの要約に絞る。
- 要約で圧縮し、脱線をつなぎ止める(Cline)。 オープンソースの Cline は自らを「コンテキストエンジニアリングのハーネス」と呼ぶ。机が一杯に近づくと、膨れた履歴を要約で置き換えて続きから再開する(Auto Compact)。残すと明言するのは決定・コード変更・状態だ。加えて todo チェックリストを机へ再注入して、話が逸れるのを防ぐ(Focus Chain)。間隔は設定でき、既定は6メッセージごとだ。残り容量はコンテキストウィンドウの進捗バーで見せ、利用者が不意の“物忘れ”に驚かないようにする5。
- 履歴は「追記のみ」でキャッシュを効かせる(Codex CLI)。 OpenAI の Codex は、プロンプトの静的部分を先に固定して過去を書き換えない。プロバイダのプロンプトキャッシュは前方一致で効くので、ツール集合やモデルを途中で変えるとキャッシュが外れるからである。コンパクションは専用の
/responses/compactエンドポイントに委ね、設定した閾値(auto_compact_limit)を超えると自動で走る。もっとも、コンパクションだけは「追記のみ」を破る。コンパクションは履歴そのものを短い代表列に差し替えるからである。キャッシュが当たっているあいだサンプリングは二次でなく一次で済む、と同社は書いている。ただし差し替わるのは入力(input)の列で、システムメッセージ・ツール・指示はその外、プロンプトの先頭に置かれる。コンパクションの直後にキャッシュがどこまで当たるかは、同記事には書かれていない6。
同じ順序を Anthropic も Claude Code について公開しており、静的内容を先・動的内容を後に置き、ツールやモデルを途中で変えないと書く。圧縮する側にも工夫があり、要約を作る呼び出しを親と同じシステムプロンプト・同じツール定義のまま分岐させ、親の接頭辞のキャッシュを再利用するという7。Claude Platform(API)の利用者向けには、分岐したサブエージェントが親のキャッシュを共有できる条件(接頭辞がバイト単位で同一・同じモデル・同じ effort 設定)も示している8。
三者に共通するのは、本稿の原則である机に積み上げるより、要るものを的確に選んで載せるという考え方だ。三者とも、満杯が近づけば履歴を要約で圧縮する。脇道を別の机(サブエージェント)へ出す手を、引いた三本の記事のうち機構として書いているのは Anthropic だけである。Anthropic は、別の机で数万トークン規模の探索をさせ、本線へ戻すのは1〜2千トークンの要約に絞る4。Codex の解説記事がコンテキストウィンドウの枯渇に対して挙げるのは圧縮することだけで、単一の入力列に追記し、閾値を超えたらより小さな代表列へ丸ごと差し替える6。Cline の設計記事も同様に、別の入れ物へ出す手(/newtask・Deep Planning)は脇道の委譲ではなく本線の引き継ぎとして説明する5。ただし製品としては、Cline は2025年10月に実験機能としてサブエージェントを加え、Codex は2026年10月時点の現行版でサブエージェントを既定で有効にしており、両社とも探索の出力で主のコンテキストを汚さないための手だと説明している56。差が出るのは「何を捨てないか」の指定で、Anthropic は設計上の判断と未解決のバグを、Cline は決定とコード変更を残すと書く。追記のみでキャッシュを効かせる手と、todo をコンテキストの末尾へ書き直して脱線を防ぐ手は、Manus も2025年7月の設計記事で自社の機構として公開している9。「何を載せ続けるか」は、実在のハーネスが競って設計している一級の技術である。
どこまで圧縮するかは、動かすモデルの地力で変わる
三者とも満杯が近づけば圧縮するが、強く圧縮するほど得というわけでもない。それを示したのが、2026年のプレプリント「AdaCoM」である10。この研究は、仕事をするエージェントとは別のLLMを管理役に立て、何を残し何を圧縮するかを強化学習で覚えさせた。著者らによれば、Web検索や深いリサーチ系のベンチマークで、エージェント自身にコンテキストを制御させる方式や、要約のような固定戦略を上回った。BrowseComp-Plus の4エージェント平均では、コンテキスト管理なしの ReAct が 24.17、AdaCoM が 33.60(+39.0%)で、比較対象のうち最も強い SumCoM の 29.39 に対しても +14.3% にあたる10。
著者らが中心に置く知見は、忠実さと信頼性のトレードオフである。地力のあるエージェントほど、生のコンテキストを多く残し、圧縮は遅く軽く入れる方が得をする。地力の乏しいエージェントは、強く圧縮して扱える量に収めると安定する10。つまずきが出るのは前者で、固定の要約を当てた場合である。同じ表では、エージェント自身が要約を書き換え続ける固定方式が、4エージェント平均でコンテキスト管理なしを下回った(24.17→22.06)。コンテキスト管理なしで最も成績の良い GLM では 32.56 から 11.56 まで落ちている10。著者らは、生のコンテキストを多く残すほど得をする GLM や Qwen には固定の要約が向かず、学習させた固定要約でも GLM の成績が下がったと書いている10。どこまで圧縮するのが最適かは一律に決まらず、動かすモデルの強さに合わせて決めることになる。ただし著者らは、コードエージェントではこの手法を評価していないと断っている10。
圧縮する仕組みにも費用がかかる。AdaCoM の著者らは、管理役を毎ステップ呼ぶのでトークンと待ち時間が増えること、コンテキストを書き換えるのでKVキャッシュを再利用しにくくなることを明記しており、要約で圧縮する方式にも同じことが言える10。捨てすぎの危険もある。答えに要る証拠まで捨てれば、刈り込みは逆に失敗を招く。長い対話履歴への質問応答では、残せる量を同じ予算に揃えた方式どうしで比べると、答えに要る証拠を選んで残す方式が他を上回ったと報告する研究もある11。同じ研究では、読む時点で生の履歴全体を検索できる参照条件は、正答の指標(F1)がそれより高かった11。60の科学的発見タスクで8種の圧縮法を比べた研究では、どの方法でも仮説の質は有意に変わらず、LLMによる要約はトークンをかえって24〜94%増やした。ただし課題は5〜22手と短く、トークンが減ったのは10手を超える課題で規則型の圧縮を使ったときだけだった12。
これは「新しい技術」なのか、それとも“言い換え”なのか
「コンテキストエンジニアリングは、結局プロンプトエンジニアリングの言い換えでは?」と疑うのは自然だ。実際、当事者たちも新旧を断絶としては書いていない。Anthropic はこれを「プロンプトエンジニアリングの自然な延長」と位置づけている4。新語を推した Simon Willison 自身、本来は旧称にこの複雑さを込めたかったのに、世間の受け取りは「チャットに何か打ち込むことを指す、笑ってしまうほど尊大な言葉」に落ちたと振り返る。彼は定着するのは受け取られ方のほうだと書いたうえで、「『コンテキストエンジニアリング』のほうは、受け取られ方が本来意図した意味にずっと近いだろう」と結んでいる1。 私は、重心の移動は本物だとみる。「一発の指示を磨く」から「長く走る情報の状態を管理し続ける」へ、という強調点の変化は実在する。もっとも、この語を推す当の Anthropic 自身が「モデルが賢くなるほど、人が采配する量は減っていく」と書き添えていることは、押さえておいてよい4。ただし同社は結びで、能力が上がってもコンテキストを有限の資源として扱うことは中心であり続ける、とも書いている4。争点は中身の新しさというより、どこまでを一つの語で囲うかにある。
出典12件
-
Simon Willison「Context engineering」simonwillison.net, 2025-06-27. https://simonwillison.net/2025/Jun/27/context-engineering/ — Lütke と Karpathy の投稿(2025年6月)を引き、新語は定着しはじめたところで、受け取られ方が本来の意図に近く着地するだろうと結ぶ。 ↩ ↩2
-
Liu ほか「Lost in the Middle: How Language Models Use Long Contexts」arXiv, 2023. https://arxiv.org/abs/2307.03172 https://lilianweng.github.io/posts/2023-06-23-agent/ — 2課題・当時のモデル。正解が中央の最悪ケースは閉本の56.1%を下回る(両端は上回る)。増やすほど遅延とコストも増す。記憶の区分は Weng(2023)。 ↩ ↩2 ↩3
-
Abhilasha Lodha ほか「Less Context, Better Agents…」arXiv:2606.10209, 2026. https://arxiv.org/abs/2606.10209 — GPT-5・経費処理50課題で刈り込み+要約(N=5, W=3)が最良。打ち切りの増加は原典本文の triples でなく Table 5 の2倍を採る。 ↩ ↩2 ↩3 ↩4
-
Anthropic「Effective context engineering for AI agents」2025-09-29. https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents — context rot と注意の予算、Claude Code のハイブリッドな取得、長丁場向けの三手、なだらかな劣化を説き、コンテキストは有限の資源であり続けると結ぶ。 ↩ ↩2 ↩3 ↩4 ↩5
-
Cline「How to think about context engineering in Cline」2025-08-19. https://cline.bot/blog/how-to-think-about-context-engineering-in-cline https://cline.bot/blog/understanding-the-new-context-window-progress-bar-in-cline https://docs.cline.bot/features/subagents https://github.com/cline/cline/releases/tag/v3.33.0 — Auto Compact と Focus Chain(既定6メッセージごと)。進捗バーは別記事、サブエージェントは docs と v3.33.0(2025-10-16・実験)が一次。 ↩ ↩2 ↩3
-
M. Bolin「Unrolling the Codex agent loop」OpenAI, 2026年1月. https://openai.com/index/unrolling-the-codex-agent-loop/ https://developers.openai.com/codex/subagents — 追記のみの履歴でキャッシュを効かせ、圧縮は専用エンドポイントに委ねる。context engineering の語は使わない。サブエージェントは docs が一次(2026-10 は既定有効)。 ↩ ↩2 ↩3
-
T. Shihipar「Lessons from building Claude Code: Prompt caching is everything」claude.com, 2026-04-30. https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything — 前方一致のキャッシュのため静的内容を先に置き、ツールとモデルを途中で変えず、コンパクションも親と同じ接頭辞で分岐させる。 ↩
-
L. Martin「Reducing cost and improving performance with Claude Platform」claude.com, 2026-09-08. https://claude.com/blog/reducing-cost-and-improving-performance-with-claude-platform — 分岐が親のキャッシュを共有する条件は接頭辞のバイト一致・同じモデル・同じ effort。 ↩
-
Manus「Context Engineering for AI Agents: Lessons from Building Manus」manus.im, 2025-07-18. https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus — KV キャッシュのヒット率を最重要の指標とし、コンテキストを追記のみにし、todo.md を書き直して目標をその末尾へ再掲することを挙げる。 ↩
-
Lu Yi ほか「Learning Agent-Compatible Context Management for Long-Horizon Tasks」arXiv, 2026. https://arxiv.org/abs/2605.30785 — 外部LLMが強化学習でコンテキストを管理する AdaCoM。地力が高いほどより忠実な保持、低いほど強い圧縮が得。コード系は評価外。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Yilong Li ほか「EMBER: Efficient Memory via Budgeted Evidence Retention for Long-Horizon Agents」arXiv, 2026. https://arxiv.org/abs/2606.05894 — 同じ予算内では残す証拠で成績が決まると論じる。生履歴全体を引ける参照条件の F1 はより高い。査読前。 ↩ ↩2
-
R. Chintalapati ほか「Evaluating Memory Condensation Strategies for Coding Agents…」arXiv, 2026. https://arxiv.org/abs/2605.18854 — 8種の圧縮はどれも仮説の質を有意に変えず、LLM要約はトークンを24〜94%増やした。査読前。 ↩
この記事はAIを使用して執筆されました。内容には誤りが含まれる可能性があります。事実や数字の出典は脚注から確かめられます。