AI・信頼性・評価
コンテキストエンジニアリング——机に載せる最小限を選ぶ
目次
エージェントに良い指示を一度きり書いても、長く走ると途中で崩れる。さっき決めた制約を忘れ、関係ない古いやりとりを何度も読み返し、少しずつ的を外していく。 効いてくるのは指示の一文ではなく、思考の一手ごとに「机に何を残すか」の采配だ。その足場——ハーネス——の中でこの采配を設計する技術を、コンテキストエンジニアリング(机に何を載せるかの設計)と呼ぶ。ここを掘る。
AIの“作業机”には、限りがある
まず大事な事実を一つ。LLMには、一度に見られる情報の量に上限がある(これを「コンテキストウィンドウ」と呼ぶ)。 人にたとえるなら、作業机の広さである。どんなに優秀な人でも、机が小さければ、関係する資料を全部は広げられない。今この瞬間に必要なものだけを机に載せ、要らないものは引き出しにしまう——その采配が、仕事の効率を決める。
エージェントは、考える→動く→観察するを何十回も繰り返す。その一回ごとに、限られた机に「いま何を載せるか」が問われ続ける。載せ忘れれば的外れになり、載せすぎれば散らかって迷子になる。これを采配する技術が、コンテキストエンジニアリングである。
「プロンプトを書く」から「コンテキストを設計する」へ
少し前まで、AIをうまく使うコツは「プロンプトエンジニアリング」——つまり一回の指示文の書き方だ、と言われていた。 だが、長く自律的に動くエージェントの時代になると、話の重心が移った。大事なのは一回の言い回しより、机の上の情報“全体”をどう組み立て続けるかである。呼び名が変わったのは2025年6月ごろだ。Shopify の CEO Tobi Lütke が「プロンプトエンジニアリングより『コンテキストエンジニアリング』のほうが中身を言い当てている」と書き、Andrej Karpathy がそれを増幅した。Willison はこのとき「定着するだけの力があるかもしれない」と書いている1——そして実際、以後1年で Anthropic も Cline も OpenAI も、自社の設計をこの語で説明するようになった(後述)。
机に載るものは、ざっと:
- 指示(システムプロンプト):そもそも何を目指し、どう振る舞うか(常に置いておく土台)。
- 短期記憶:直近のやりとり(さっき何をして何が返ってきたか)。
- 長期記憶:過去の経験や、必要なときに外から引っぱってくる知識(検索=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。
だから本質は「全部載せる」ことではなく、「いま要る最小限を、的確に選ぶ」ことにある。引き算の技術なのだ。
実在のハーネスは、どう机を采配しているか
抽象論で終わらせない。実際にプロが使うハーネスが、この「引き算」をどう機構にしているかを見る(設計は各社が公開している)。
- 文脈を「予算」として扱う(Claude Code)。 Anthropic は、トークンが増えるほどモデルの想起精度が落ちる context rot(文脈の腐り) を挙げ、モデルには読むたびに目減りする「注意の予算」がある、と言う。なぜ広ければいいわけではないのか。同社の説明はこうだ——Transformer はすべてのトークンが互いを参照するので、n 個のトークンには n² 通りの関係が生じ、窓が伸びるほどその関係を捉える力は薄く引き伸ばされる。加えてモデルは、短い系列のほうが多い学習データから注意の張り方を身につけている。だから長い文脈で起きるのは「崖」ではなくなだらかな劣化だ、とも断っている。そのうえで机の作り方はハイブリッドだと自ら規定する3。プロジェクト規約 CLAUDE.md は先に丸ごと載せ、個々のファイルは grep/glob でその場で取りに行く——事前に索引を作るより遅いと認めた上で、索引が古びる問題を避ける判断だ。長丁場の仕事にはさらに三つの手を挙げる。会話を要約して差し替える(compaction。「最初に引く梃子」だという)、机の外にノートを書いて後で戻す、脇道をサブエージェントに出す——別の机で数万トークン探索させ、戻すのは1〜2千トークンの要約に絞る。
- 要約で畳み、脱線をつなぎ止める(Cline)。 オープンソースの Cline は自らを「コンテキストエンジニアリングのハーネス」と呼ぶ。机が一杯に近づくと、膨れた履歴を要約で置き換えて続きから再開する(Auto Compact)。残すと明言するのは決定・コード変更・状態だ。加えて todo チェックリストを既定で6メッセージごとに机へ再注入し、話が逸れるのを防ぐ(Focus Chain)。残り容量は文脈窓の進捗バーで見せ、不意の“物忘れ”に驚かされないようにする4。
- 履歴は「追記のみ」でキャッシュを効かせる(Codex CLI)。 OpenAI の Codex は、プロンプトの静的部分を先に固定して過去を書き換えない——プロバイダのプロンプトキャッシュは前方一致で効くので、ツール集合やモデルを途中で変えるとキャッシュが外れるからだ。コンパクションは専用の
/responses/compactエンドポイントに委ね、設定した閾値(auto_compact_limit)を超えると自動で走る。もっともコンパクションだけは「追記のみ」を破る——履歴そのものを短い代表列に差し替えるので、そこでキャッシュは一度切れる。キャッシュが当たっているあいだサンプリングは二次でなく一次で済む、と同社は書いており、それを一度捨ててでも机を空けるという判断だ5。
共通するのは、この記事の原則そのものだ——机は広げるより、的確に引く。三者とも、満杯が近づけば履歴を要約で畳む。脇道を別の机(サブエージェント)へ出すのを機構として挙げているのは、この三つのうち Anthropic だけだ——別の机で数万トークン規模の探索をさせ、本線へ戻すのは1〜2千トークンの要約に絞る3。Codex が文脈窓の枯渇に対して挙げるのは畳むことだけで、単一の入力列に追記し、閾値を超えたらより小さな代表列へ丸ごと差し替える5。Cline も同様に、別の入れ物へ出す手(/newtask・Deep Planning)は脇道の委譲ではなく本線の引き継ぎとして説明する4。差が出るのは「何を捨てないか」の指定で、Anthropic は設計上の判断と未解決のバグを、Cline は決定とコード変更を残すと書く。「何を載せ続けるか」は、実在のハーネスが競って設計している一級の技術である。
これは「新しい技術」なのか、それとも“言い換え”なのか
「コンテキストエンジニアリングは、結局プロンプトエンジニアリングの言い換えでは?」——そう疑うのは自然だ。実際、当事者たちも新旧を断絶としては書いていない。Anthropic はこれを「プロンプトエンジニアリングの自然な延長」と位置づけている3。新語を推した Simon Willison 自身、旧称にこそこの複雑さを込めたかったのに、世間の受け取りは「チャットに何か打ち込むことを指す、笑ってしまうほど尊大な言葉」に落ちたと振り返る。定着するのは受け取られ方のほうだ——そう書いたうえで彼は、「『コンテキストエンジニアリング』のほうは、受け取られ方が本来意図した意味にずっと近いだろう」と結んでいる1。彼が新語に賭けたのは、この語なら受け取られ方が意図に近く着地する、という見通しにおいてである。 私の見立てでは——重心の移動は本物だ。「一発の指示を磨く」から「長く走る情報の状態を管理し続ける」へ、という強調点の変化は実在する。ただし争点は中身の新しさというより、どこまでを一つの語で囲うかにある。新語に踊らされず、中身(限られた机を的確に采配する)を見るのが良いだろう。
エージェントの「ループ」「ハーネス」「コンテキスト」が揃えば、仕組みとしては、これで一通り動く。 (もっとも、この三つにくっきり線が引けるわけではない。とくに「ハーネス」は人によって指す範囲が違う広い言葉で、コンテキストの管理まで含めて「ハーネス」と呼ぶ立場もある。本シリーズは便宜上、足場の作り=ハーネス/その上で何を見せ続けるか=コンテキストと分けているが、境界はにじむ——そう断った上で読んでほしい。) ——だが、ここからが本題だ。これだけ整えても、なぜエージェントは「デモは凄いのに実用では脆い」のか。 その正体を、製造業の歩留まりと同じ“掛け算”の数字で、忖度なく明かしていく。
出典5件
-
Simon Willison「Context engineering」(2025-06-27・閲覧2026-08)。Shopify CEO Tobi Lütke の投稿と、それを受けた Andrej Karpathy の投稿(いずれも2025年6月)を逐語で引く。Willison は新語に賛成の側で、この語について
has recently started to gain traction/I think this one may have sticking power.(=定着しはじめた/定着力があるかもしれない)と書いており、2025年6月時点の様相は完了ではない。「prompt engineering という語に本来この複雑さを込めたかったが、受け取られ方のほうが定着してしまった」と振り返ったうえで、記事をIt turns out that inferred definitions are the ones that stick. I think the inferred definition of "context engineering" is likely to be much closer to the intended meaning.と結ぶ。∴ 彼の結びは、新語のほうが受け取られ方と意図が近く着地するという見通しである。 https://simonwillison.net/2025/Jun/27/context-engineering/ ↩ ↩2 -
記憶の種類(短期=文脈内の対話履歴、長期=外部ベクタ検索で引く知識)の整理は Lilian Weng, “LLM Powered Autonomous Agents”(2023)に基づく一般的な枠組み。長文脈で中央の情報を取りこぼす現象は Liu et al., “Lost in the Middle: How Language Models Use Long Contexts”, arXiv:2307.03172(2023, TACL)。同論文が測ったのは複数文書からの質問応答とキー・値の取り出しの2課題で、当時のモデルによる結果である。§2.3 は最悪ケースとして
in the worst case, performance in 20- and 30-document settings is lower than performance without any input documentsと報告し、そのクローズドブック性能を56.1%(GPT-3.5-Turbo)と示す。コストについては §5 が、20本より先は50本に増やしても改善が約1.5%(GPT-3.5-Turbo)/約1%(Claude-1.3)にとどまる一方でsignificantly increasing the input context length (and thus latency and cost)と明記している。 https://arxiv.org/abs/2307.03172 https://lilianweng.github.io/posts/2023-06-23-agent/ ↩ ↩2 ↩3 -
Anthropic「Effective context engineering for AI agents」(engineering blog, 2025-09-29公開・閲覧2026-08)。context rot と、トークンごとに目減りする「注意の予算」を説く。Claude Code を CLAUDE.md の先読みと grep/glob の随時取得を組み合わせたハイブリッドと自ら規定し、随時取得は事前計算より遅いというトレードオフも明記する。長丁場向けには compaction・structured note-taking・サブエージェントの三手を挙げ、compaction を「最初に引く梃子」と呼ぶ。「プロンプトエンジニアリングの自然な延長」(原文
the natural progression of prompt engineering)という位置づけも同記事。長い文脈で精度が落ちる機構としては、Transformer では n 個のトークンに n² 通りの関係が生じること、学習データが短い系列に偏っていることの2点を挙げ、結果はa performance gradient rather than a hard cliffだと明記する。 https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents ↩ ↩2 ↩3 -
Cline(オープンソース・Apache-2.0)の設計記事「How to think about context engineering in Cline」(閲覧2026-08)。自らを「context engineering harness」と称し、限界近傍で履歴を要約に置き換える Auto Compact(決定・コード変更・状態は保持)と、todo を既定6メッセージごとに再注入する Focus Chain を挙げる。文脈窓の進捗バーは同ページにはなく、別記事「The End of Context Amnesia: Cline’s Visual Solution to Context Management」(N. Baumann, 2025-01-30)が一次である。 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 ↩ ↩2
-
OpenAI Codex CLI のエージェントループ解説「Unrolling the Codex agent loop」(M. Bolin, 2026年1月・閲覧2026-08)。静的内容を先頭に固定し履歴を追記のみにしてプロンプトキャッシュを効かせ(ツール/モデル変更が cache-miss 要因)、上限超過時のコンパクションを
/responses/compactに委譲する。 https://openai.com/index/unrolling-the-codex-agent-loop/ ↩ ↩2
この記事はAIが執筆しています。内容には誤りが含まれる可能性があります。ご注意ください。