In Silico

AI・信頼性・評価

コンテキストエンジニアリング——机に載せる最小限を選ぶ

2026/6/21 (更新: 2026/9/20) シリーズ「AIエージェントは、実際どう動くのか」 第3回 / 全4回

目次

エージェントに良い指示を一度きり書いても、長く走ると途中で崩れる。さっき決めた制約を忘れ、関係ない古いやりとりを何度も読み返し、少しずつ的を外していく。 効いてくるのは指示の一文ではなく、思考の一手ごとに「机に何を残すか」の采配だ。その足場——ハーネス——の中でこの采配を設計する技術を、コンテキストエンジニアリング(机に何を載せるかの設計)と呼ぶ。ここを掘る。

AIの“作業机”には、限りがある

まず大事な事実を一つ。LLMには、一度に見られる情報の量に上限がある(これを「コンテキストウィンドウ」と呼ぶ)。 人にたとえるなら、作業机の広さである。どんなに優秀な人でも、机が小さければ、関係する資料を全部は広げられない。今この瞬間に必要なものだけを机に載せ、要らないものは引き出しにしまう——その采配が、仕事の効率を決める。

エージェントは、考える→動く→観察するを何十回も繰り返す。その一回ごとに、限られた机に「いま何を載せるか」が問われ続ける。載せ忘れれば的外れになり、載せすぎれば散らかって迷子になる。これを采配する技術が、コンテキストエンジニアリングである。

「プロンプトを書く」から「コンテキストを設計する」へ

少し前まで、AIをうまく使うコツは「プロンプトエンジニアリング」——つまり一回の指示文の書き方だ、と言われていた。 だが、長く自律的に動くエージェントの時代になると、話の重心が移った。大事なのは一回の言い回しより、机の上の情報“全体”をどう組み立て続けるかである。呼び名が変わったのは2025年6月ごろだ。Shopify の CEO Tobi Lütke が「プロンプトエンジニアリングより『コンテキストエンジニアリング』のほうが中身を言い当てている」と書き、Andrej Karpathy がそれを増幅した。Willison はこのとき「定着するだけの力があるかもしれない」と書いている1——そして実際、以後1年で Anthropic も Cline も、自社の設計をこの語で説明するようになった(後述)。OpenAI の Codex 解説記事は、机の采配そのものを説きながら、この語は使っていない。

机に載るものは、ざっと:

ハーネスの仕事は、毎ステップ、この中からいま必要な分だけを机に載せることである。

多ければいい、ではない——長いコンテキストの「lost in the middle」

ありがちな誤解が、「机は広いほど(コンテキストは多いほど)いい」というものである。実際は違う。 情報が少なすぎれば、AIは手がかりを失う。逆に多すぎても、肝心な情報がノイズに埋もれ、AIは注意散漫になる。長いコンテキストの真ん中あたりに置かれた大事な情報ほど、AIが見落としやすい——この「中央に置かれた情報を取りこぼす」現象は、lost in the middle という名前で知られている(測られたのは複数文書からの質問応答と、キーと値の取り出しの2課題。2023年当時のモデルでの話だ)2。同じ論文はもっと強い数字も出している——GPT-3.5-Turbo に20〜30本の文書を渡し、答えの載った一本が真ん中に沈んだ最悪ケースの正答率は、文書を一本も渡さなかったとき(56.1%)を下回った。多く積むことは、その一本の置き場しだいで、積まないことに負けうるのである。おまけに、机を広げるほどお金(計算コスト)もかかる2

だから本質は「全部載せる」ことではなく、「いま要る最小限を、的確に選ぶ」ことにある。引き算の技術なのだ。

実在のハーネスは、どう机を采配しているか

抽象論で終わらせない。実際にプロが使うハーネスが、この「引き算」をどう機構にしているかを見る(設計は各社が公開している)。

共通するのは、この記事の原則そのものだ——机は広げるより、的確に引く。三者とも、満杯が近づけば履歴を要約で畳む。脇道を別の机(サブエージェント)へ出すのを機構として挙げているのは、この三つのうち Anthropic だけだ——別の机で数万トークン規模の探索をさせ、本線へ戻すのは1〜2千トークンの要約に絞る3。Codex が文脈窓の枯渇に対して挙げるのは畳むことだけで、単一の入力列に追記し、閾値を超えたらより小さな代表列へ丸ごと差し替える5。Cline も同様に、別の入れ物へ出す手(/newtask・Deep Planning)は脇道の委譲ではなく本線の引き継ぎとして説明する4。差が出るのは「何を捨てないか」の指定で、Anthropic は設計上の判断と未解決のバグを、Cline は決定とコード変更を残すと書く。追記のみでキャッシュを効かせる手と、todo を文脈の末尾へ書き直して脱線を防ぐ手は、Manus も2025年7月の設計記事で自社の機構として公開している8。「何を載せ続けるか」は、実在のハーネスが競って設計している一級の技術である。

これは「新しい技術」なのか、それとも“言い換え”なのか

「コンテキストエンジニアリングは、結局プロンプトエンジニアリングの言い換えでは?」——そう疑うのは自然だ。実際、当事者たちも新旧を断絶としては書いていない。Anthropic はこれを「プロンプトエンジニアリングの自然な延長」と位置づけている3。新語を推した Simon Willison 自身、旧称にこそこの複雑さを込めたかったのに、世間の受け取りは「チャットに何か打ち込むことを指す、笑ってしまうほど尊大な言葉」に落ちたと振り返る。定着するのは受け取られ方のほうだ——そう書いたうえで彼は、「『コンテキストエンジニアリング』のほうは、受け取られ方が本来意図した意味にずっと近いだろう」と結んでいる1彼が新語に賭けたのは、この語なら受け取られ方が意図に近く着地する、という見通しにおいてである。 私の見立てでは——重心の移動は本物だ。「一発の指示を磨く」から「長く走る情報の状態を管理し続ける」へ、という強調点の変化は実在する。もっとも、この語を推す当の Anthropic 自身が「モデルが賢くなるほど、人が采配する量は減っていく」と書き添えていることは、押さえておいてよい3。争点は中身の新しさというより、どこまでを一つの語で囲うかにある。新語に踊らされず、中身(限られた机を的確に采配する)を見るのが良いだろう。

エージェントの「ループ」「ハーネス」「コンテキスト」が揃えば、仕組みとしては、これで一通り動く。 (もっとも、この三つにくっきり線が引けるわけではない。とくに「ハーネス」は人によって指す範囲が違う広い言葉で、コンテキストの管理まで含めて「ハーネス」と呼ぶ立場もある。本シリーズは便宜上、足場の作り=ハーネス/その上で何を見せ続けるか=コンテキストと分けているが、境界はにじむ——そう断った上で読んでほしい。) ——だが、ここからが本題だ。これだけ整えても、なぜエージェントは「デモは凄いのに実用では脆い」のか。 その正体を、製造業の歩留まりと同じ“掛け算”の数字で、忖度なく明かしていく。


出典8件
  1. 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

  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)と示す。この最悪ケースは正解文書が中央に置かれた条件で(直前の一文 suffer degraded performance when forced to use information within the middle of its input context の例として挙がる)、付録 Table 6(20本)では先頭 75.8%・末尾 63.2%、Table 7(30本・評価は GPT-3.5-Turbo (16K)・閉本 56.0%)では先頭 73.4%・末尾 63.7% と、両端の位置はいずれも閉本を上回り、下回るのは中央の位置だけである。コストについては §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

  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: models remain highly capable at longer contexts but may show reduced precision for information retrieval and long-range reasoning だと明記する(=崖ではなく勾配で、長い文脈でも能力自体は高いまま、落ちるのは取り出しと長距離推論の精度)。ハイブリッドを説く段落は As model capabilities improve, agentic design will trend towards letting intelligent models act intelligently, with progressively less human curation. と締めており、人の采配が減る側の見通しも同記事自身が書いている。 https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents 2 3 4

  4. Cline(オープンソース・Apache-2.0)の設計記事「How to think about context engineering in Cline」(2025-08-19公開・閲覧2026-08)。自らを「context engineering harness」と称し、限界近傍で履歴を要約に置き換える Auto Compact(決定・コード変更・状態は保持)と、todo を再注入する Focus Chain(v3.25 で既定有効・既定間隔6メッセージ)を挙げる。文脈窓の進捗バーは同ページにはなく、別記事「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

  5. OpenAI Codex CLI のエージェントループ解説「Unrolling the Codex agent loop」(M. Bolin, 2026年1月・閲覧2026-08)。静的内容を先頭に固定し履歴を追記のみにしてプロンプトキャッシュを効かせ(ツール/モデル変更が cache-miss 要因)、上限超過時のコンパクションを /responses/compact に委譲する。なお同記事は文脈窓の管理を扱うが、context engineering という語は使っていない。 https://openai.com/index/unrolling-the-codex-agent-loop/ 2

  6. Anthropic「Lessons from building Claude Code: Prompt caching is everything」(claude.com blog, 2026-04-30公開・2026-07-07更新・閲覧2026-09。筆者は Claude Code チームの Thariq Shihipar)。プロンプトキャッシュは前方一致で効く(Prompt caching works by prefix matching)ので並べ方は static content first, dynamic content last とし、Claude Code では静的なシステムプロンプトとツール、CLAUDE.md、セッション文脈、会話の順に置くと明かす。更新は本文を書き換えず次のメッセージで渡し(Use messages instead of system prompt changes)、ツールの追加削除とモデル切替は途中でしない(Don't change tools or models mid-conversation)。コンパクションの呼び出しも親と同じシステムプロンプト・ツール定義で分岐させ、親の接頭辞のキャッシュを再利用する(Compacting without breaking the cache 節。When we run compaction, we use the exact same system prompt, user context, system context, and tool definitions as the parent conversation)。 https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything

  7. Lance Martin「Reducing cost and improving performance with Claude Platform」(claude.com blog, 2026-09-08公開・閲覧2026-09)。キャッシュは特定のモデルに固定され(the prompt cache is pinned to a specific model)、読み出しには全長のバイト一致が要るとしたうえで、分岐の条件を Subagents and branches only share the parent’s cache when the fork’s prefix is byte-identical, on the same model, and using the same effort. と書く。安定部分を先に置き、伸びる会話を後ろへ付け足す並べ方(dynamic content is appended to the end of a stable prefix)も同記事。同記事は effort について、Opus 5 と Fable 5.1 に限り途中変更がキャッシュを破らないとも書く(With Claude Opus 5 and Fable 5.1 specifically, you can update effort mid-conversation without breaking the cache.)。分岐の3条件がこの例外を引き継ぐかは書かれていない。 https://claude.com/blog/reducing-cost-and-improving-performance-with-claude-platform

  8. Manus「Context Engineering for AI Agents: Lessons from Building Manus」(manus.im blog, 2025-07-18公開・閲覧2026-09)。KV キャッシュのヒット率を本番エージェントで最も重要な指標と置き、その実践として文脈を追記のみにする(Make your context append-only. Avoid modifying previous actions or observations.)ことを挙げる。todo.md を書き直し続ける挙動を By constantly rewriting the todo list, Manus is reciting its objectives into the end of the context と説明し、lost-in-the-middle を避けて目標のずれを減らす狙いだと書く。 https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus

この記事はAIが執筆しています。内容には誤りが含まれる可能性があります。ご注意ください。