実際に機能するAIアプリケーションを構築するには、完璧なプロンプトを作成することよりも、モデルに投入する情報を制御することの方が重要です。アシスタントとの長いチャットの中で、10分前に言ったことを忘れていることに気づいた経験があれば、コンテキスト・エンジニアリング(context engineering)が失敗したときに何が起こるかをすでに実感しているはずです。AIの記憶力が悪いのだと思いがちですが、実際にはコンテキスト・ウィンドウ(context window)の物理的な限界に突き当たっているのです。

信頼性が高く、レスポンスの良いシステムを構築するには、3つの基本原則を理解する必要があります。それは、トークン、コンテキスト・ウィンドウ、そして「コンテキスト」と「メモリ」の違いです。

トークンこそが真の通貨である

トークンは単語ではありません。モデルにテキストを送信すると、トークナイザー(tokenizer)がそれを小さな断片に分割します。「cat」や「the」のような短く一般的な単語は、それぞれ1トークンになることがあります。「internationalization」のような密度の高い専門用語は、複数のトークンに分割されます。句読点、スペース、特殊文字もすべてカウントされます。これが重要なのは、トークンがあらゆる要素を支配しているからです。つまり、API利用料金、レスポンスの速度、そして出力の品質です。

単語数でコストを計画する開発者は、目隠しをして進んでいるようなものです。コードの括弧や長い変数名が含まれた100単語のプロンプトは、予想をはるかに超えて膨れ上がることがあります。だからこそ、トークナイザーは独立したツールとして存在しています。機能をリリースする前に、典型的なペイロードをトークナイザーに通してみてください。システム指示、フォーマット用のボイラープレート、チャット履歴が、実際のユーザーのクエリよりも多くの予算を消費していることに気づくことがよくあります。初日からトークンを希少なリソースとして扱うようにしましょう。

コンテキスト・ウィンドウは固定されたホワイトボードである

コンテキスト・ウィンドウとは、モデルが一度のリクエストで認識できる情報の総量です。サイズが決まったホワイトボードだと考えてください。システムルール、会話履歴、取得したドキュメント、そして現在の質問でホワイトボードを埋めることができます。しかし、表面がすべて埋まってしまうと、何かを譲歩しなければなりません。古いメモを消去するか、写真に撮って要約するか、さもなければボードは単に溢れてしまいます。

最近のモデルは、数千トークンから数十万トークンに及ぶコンテキスト・ウィンドウを謳っています。ウィンドウが大きいと、無制限のストレージのように扱いたくなりますが、そうではありません。ホワイトボードには依然として端(境界)があります。履歴が制限を超えると、アプリケーションは古いメッセージを削除するか、圧縮する必要があります。この制約を理解することで、ウィンドウをデータベースのように扱うのをやめ、アクティブなワークスペースとして扱い始めることができます。

コンテキストはメモリではない

これは、経験豊富な開発者でさえ陥りやすい区別です。モデル自体はステートレス(stateless)です。昨日や先週、あるいは別のセッションでの10分前のあなたのことを覚えてはいません。AIが、あなたがJavaScriptよりもPythonを好むことや、簡潔な回答を好むことを覚えているように見える場合、そのメモリはモデルではなくアプリケーション層に存在しています。

アプリケーションはそれらの事実をデータベース、キャッシュ、またはメモリ・ストアに保存します。新しいリクエストのたびに、関連するプロファイル・データをプロンプトに再注入します。モデルは単に、第1幕の台詞が含まれた台本を読んでいるだけなのです。モデルには永続的な「自己」はありません。この分離を理解すれば、アーキテクチャが変わります。モデルに記憶させることをやめ、適切な時に適切なコンテキストを取得するシステムを設計し始めるのです。

コンテキストの増加が逆効果になる理由

常識的に考えれば、背景情報が多ければ多いほど、より良い回答が得られるはずです。しかし、多くの場合、その逆が起こります。過剰なコンテキストはノイズを生みます。たった一つの関数を修正したいだけなのに、モデルにコードベース全体を渡してしまうと、モデルはノイズの中から信号を探し出さなければならなくなります。研究者は「Lost in the Middle(中だるみ)」効果を特定しています。モデルはプロンプトの最初と最後に含まれる詳細には注意を払うことが多い一方で、中央に埋もれた情報は希釈されたり無視されたりする傾向があります。これは、巧妙な言い回しで修正できるバグではありません。Transformerベースのアーキテクチャに存在する構造的な挙動です。

肥大化したプロンプトは、コストやパフォーマンスといった痛いところにも影響を与えます。トークンが増えるたびに計算が必要になり、レイテンシが増大し、コストが上昇し、ユーザーの忍耐は削られます。無関係なドキュメントが詰め込まれたプロンプトは、矛盾を生み出し、枝葉末節な詳細でモデルの注意をそらし、回答が間違った問題に固執する確率を高めます。情報の量は、精度の敵なのです。

より良いコンテキストを設計する方法

優れたコンテキスト・エンジニアリングとは、容赦のない編集作業です。その実践方法を以下に示します。

Send only what the task requires. If a user asks about your refund policy, do not include the employee handbook, the API documentation, and last quarter’s marketing copy. Relevance beats comprehensiveness.

Use RAG to retrieve relevant documents. Retrieval-Augmented Generation lets you search a large knowledge base and inject only the top-matching passages into the prompt. Instead of dumping a thousand-page manual into the window, you embed your documents, run a semantic search against the user’s query, and include the three most relevant paragraphs. The model gets exactly what it needs, and your token budget stays intact.

Summarize old conversations. Full chat transcripts are expensive and noisy. Replace lengthy message histories with running summaries. For example, instead of feeding the model thirty back-and-forth messages, store a single paragraph: "The user asked about Django deployment, encountered a static files error, and fixed permissions. The current issue is a database migration failing on Postgres 14." That summary preserves state without cluttering the whiteboard.

Separate long-term memory from active chat. User preferences, project settings, and account history belong in an external memory store. Query that store selectively. The live context window should carry only the immediate task and the briefest personal context needed to maintain continuity.

Monitor token usage in production. Latency spikes often trace directly to context bloat. Set alerts when requests approach your model’s limit. Review logs to identify prompts carrying dead weight. Optimization starts with the same question every time: what can we remove without breaking the task?

The Real Takeaway

The best AI applications do not win because they have the biggest context windows. They win because they manage context with discipline. A massive whiteboard is useless if it is covered in scribbles. Build systems that retrieve, summarize, and filter. Your users get faster answers, your infrastructure costs stay predictable, and your models finally pay attention to what actually matters.

Source: AI Context Engineering: Tokens, Context Windows, & Memory

Community: GyaanSetu AI on Telegram