モデルはなぜ文脈を必要とするのか?|MCP入門 1.1|生成AIとコンテキスト理解

1.1 モデルはなぜ文脈を必要とするのか?

人と人との会話において、「はい」「そうですね」といった一言には、実に多くの意味が込められています。 同じ「はい」でも、前の話題、相手との関係性、声のトーンによって、肯定なのか、躊躇なのか、諦めなのかが変わります。 このように、意味とは“言葉”そのものだけでなく、それが置かれている文脈によって決定されます

実は、これは人間だけの話ではありません。ChatGPTのような大規模言語モデル(LLM)も、まったく同じ構造で動いています。 LLMは入力されたテキストを「そのまま」理解するのではなく、“どんな目的で入力されたのか”、“何についての会話か”といった文脈情報を推測し、出力を決めています。

文脈のないモデルは、正確な判断ができない

例えば、以下のようなやりとりを考えてみましょう。

ユーザー:「彼、来るって言ってた?」

AI:「はい、そう言ってました。」

これは、前提となる情報がなければ、まったく意味をなさない会話です。 誰が「彼」なのか、何のイベントについて話しているのか、いつのことなのか。 モデルはこれらの情報を明示的に渡されていない場合でも、過去の文脈(=チャット履歴やシステム指示)から推測しようとします。 この推論の精度が、生成される応答の「賢さ」や「自然さ」に直結しています。

LLMにおける文脈とは何か?

LLMにおいて「文脈」とは、単に前の文章を指すのではなく、以下のような情報を含む広い概念です:

  • ユーザーの過去の発言とその流れ
  • 会話の目的やテーマ(例:質問、依頼、議論、感情共有など)
  • 登場人物や対象物に関する既出の情報
  • ユーザーのプロファイル(例:開発者か、営業職か)
  • タスクの状態(作業中、完了済み、未着手 など)
  • システムによる補足(例:「あなたはサポートエージェントです」などのRole指示)

これらが組み合わさってはじめて、モデル(AI)は意味のある応答を生成できるのです。 そしてこの「情報の束」をうまく設計・管理するための考え方が、後に登場する Model Context Protocol(MCP)です。

明示されない文脈を、どうモデルに届けるか

人間の会話では、相手がどんな情報を知っているかを無意識に推測しながら話します。 しかしAIは、「何を知っているか」を自分では把握していません。与えられた情報がすべてです。

そのため、モデルが正しい出力をするためには、必要な文脈を適切な形でプロンプトに埋め込む必要があります。 このときに注意すべきなのは:

  • どこまでの情報を毎回与えるか(情報量)
  • どのように整形して渡すか(情報構造)
  • プロンプト上どの順番で渡すか(優先順位)

モデルが「今、何についての応答を求められているのか」を理解できるように設計することこそが、 文脈制御の核心であり、MCPの中核思想なのです。

文脈があるだけで、モデルは“賢く”なる

実験的に、同じプロンプトを「文脈あり」と「文脈なし」で渡してみると、出力に明確な差が出ます。 例えば次のようなケースです。

プロンプトA(文脈なし):「このコードのどこが悪いですか?」

プロンプトB(文脈あり):
「このコードは、APIサーバーにリクエストを送る関数です。TypeScriptで書かれており、Reactのフック内で使用しています。
以下がそのコードです。どこが問題ですか?」

このように、前提を与えるだけでモデルは「より正確な理解」を行い、より本質的なアドバイスを出すようになります。 文脈は、単なる“補足”ではなく、思考そのものの“前提”をつくるものなのです。


では、この「文脈」はプロンプトと何が違うのでしょうか? すべてプロンプトに書けばいいのでは? と思われがちですが、実際には設計上の分離が重要です。 次のセクションでは、プロンプトとコンテキストの違い、そしてMCP設計における役割分担について深く見ていきます。 → 1.2 PromptとContextの違いへ進む

公開日: 2025-03-03
最終更新日: 2025-05-10
バージョン: 3

下田 昌平

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

チーム

任 弘毅

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

下田 昌平

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