プロンプトとコンテクストの違いとは?|MCP入門 1.2|生成AIにおける役割と設計の考え方

1.2 Prompt(プロンプト)とContext(コンテクスト)の違い
生成AIの活用に慣れてくると、多くの人が「プロンプトの工夫」について語り始めます。 確かに、プロンプトエンジニアリングは、モデルから望ましい出力を得るための重要な手段です。 しかし、ここでよく混同されるのが「プロンプト」と「コンテキスト」の違いです。
この2つは密接に関係しながらも、本質的には目的も性質も異なる概念です。 本セクションでは、プロンプトとコンテクストを明確に区別し、それぞれの役割と設計の考え方を整理します。
プロンプトとは:その場の「命令」
プロンプトとは、モデルに対して「今、何をしてほしいのか」を伝える直接的な指示文です。 たとえば以下のような文言は、典型的なプロンプトです:
「以下のテキストを要約してください。」
「この文章を日本語に翻訳してください。」
「ReactでToDoリストアプリを作るコードを書いてください。」
プロンプトは、まさにその出力を得るための“その場の命令”であり、一回限りの操作です。 基本的にはユーザーが入力した文や、システムが与える構文指示などを指します。
特徴としては:
- 即時的(transient)である
- 具体的なアクションや出力形式を指定する
- 通常は出力結果に直結する
Contextとは:「背景」や「前提」の集合
一方、コンテキストとは、モデルが意味ある判断を下すために必要な“周辺情報”や“前提”です。 これは必ずしも命令ではなく、モデルが正しく理解・応答するための「状況設定」と言えます。
例えば以下のような情報は、コンテキストの一部です:
- ユーザーがこれまでに話した内容(会話履歴)
- この会話が何のために行われているか(目的)
- 対象となる人物や事象の定義(“彼”とは誰か、日付はいつか、など)
- 前回の出力結果(モデルが生成した応答内容)
- システムによって定義された役割(例:「あなたはサポートエージェントです」)
コンテキストの主な特徴は以下のとおりです:
- 持続的(persistentまたはsemi-persistent)な状態である
- 出力を支える判断材料となる
- ユーザーの入力ではなく、設計や履歴によって形成される
プロンプトとコンテキストの関係性
プロンプトは「今すぐしてほしいこと」、 コンテキストは「なぜそうしてほしいのかを支える背景」だと捉えるとわかりやすいでしょう。
たとえば次のようなケースを考えてみましょう:
コンテクスト:「ユーザーはシステムトラブルの報告をしようとしている。サポート担当者が対応中。」
プロンプト:「この内容を要約して、お客様対応履歴に記録してください。」
コンテキストがあることで、モデルは「どの立場から」「どんなトーンで」「何を重要視して」応答すべきかを理解します。 単にプロンプトだけを渡しても、出力の品質は安定せず、意図から外れる可能性があります。
MCP設計における役割分担
Model Context Protocol(MCP)では、このようにプロンプトとコンテクストを意図的に分離・管理することが基本方針となります。
- プロンプト: 毎回変化する命令・質問・操作
- コンテクスト: 継続的に維持・更新される情報セット(ステート)
MCPでは「プロンプト部分はユーザー入力やインタラクションUIから生成し、コンテクスト部分はセッションごとに管理・蓄積する」といった構造にすることで、安定した出力と高精度の応答を実現できます。
特にLangChainやSemantic Kernelなどのライブラリでも、この「コンテキスト管理」はMCP実装のコアとして位置づけられています。
ここまでで「文脈」と「命令」の違いが明らかになってきました。 しかし、モデルが使える“文脈情報”には制限があります。 どれだけの情報を、どうやって入れるか? それを左右するのが「コンテキストウィンドウ」という技術的制約です。
次のセクションでは、トークン数の限界と、それを乗り越えるための設計視点について詳しく見ていきましょう。 → 1.3 コンテキストウィンドウとその制約へ進む

下田 昌平
開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。カテゴリー
検索履歴
チーム

任 弘毅
株式会社レシートローラーにて開発とサポートを担当。POSレジやShopifyアプリ開発の経験を活かし、業務のデジタル化を促進。

下田 昌平
開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。