コンテキストマネジメントとは?|MCP入門 3.2|履歴と外部情報を活かす生成AI設計

3.2 コンテキストマネジメント:履歴と外部情報の融合

生成AIにおける出力の質は、そのときモデルが「何を知っているか」に大きく依存します。 つまり、どんな知識、履歴、文脈、制約、ユーザー情報を「参照しながら」出力しているかが、生成内容の一貫性・正確性・ユーザー満足度に直結します。 この「モデルが知っている(とみなされる)情報」をどう設計・制御するかが、MCP(Model Context Protocol)におけるコンテキストマネジメントの中心テーマです。

このセクションでは、セッション履歴、外部ベクターストア、ユーザー属性など、多様な文脈情報をどのように統合し、モデルに与えるかを見ていきます。

コンテキストとは何か?

MCPにおけるコンテキストは、単に「チャット履歴」だけを指すわけではありません。 むしろ、以下のような情報群を構造化し、文脈としてモデルに与える仕組み全体を指します:

  • 過去の対話履歴(チャットログ)
  • 明示的なユーザープロファイル(名前、役職、関心分野など)
  • セッション固有の状態(進行中のタスク、前提条件など)
  • 外部ナレッジ(FAQデータ、ベクターデータベース、構造化JSON)
  • フィードバック履歴(前回の応答に対する評価)

このように、文脈には動的(会話履歴など)静的(ユーザープロフィールなど)の2種類が存在し、 それらを適切に組み合わせてモデルに渡すことが、高度なMCP設計には不可欠です。

コンテキスト統合の代表的パターン

パターン1:セッション履歴の最適化と要約

LLMはトークン制限があるため、すべての履歴をそのまま保持することはできません。 そこで、過去のチャットログを要約・抽象化してコンテキストとして渡す手法が用いられます。

{
  "summary": "ユーザーは商品返品処理に困っており、倉庫とのやりとりが煩雑だと感じている。次は返品フローの自動化を希望。"
}

このように、文脈の要点だけを抽出し、構造化してモデルに渡すことで、一貫性と効率性を両立させます。

パターン2:外部ナレッジ統合(RAG構成)

Retrieval-Augmented Generation(RAG)では、外部のベクターデータベースやFAQを検索し、関連情報を文脈として挿入します。

{
  "context": "返品ポリシー:お客様は商品到着後30日以内であれば返品可能です。ただし、使用済み商品は対象外です。"
}

この情報があることで、モデルは一貫した応答が可能になります。 RAG構成は、モデル自身が学習していない情報を動的に補うという点で、MCPの文脈統合戦略において非常に有効です。

パターン3:ユーザープロファイルとの統合

MCPでは、ユーザー情報を静的な文脈として設計し、応答に個別性を持たせることができます。

{
  "user_profile": {
    "name": "田中一郎",
    "職種": "中小企業経営者",
    "関心": ["補助金活用", "業務効率化"]
  }
}

これにより、同じ質問でも、異なるユーザーには異なる観点から答えることが可能になります。 これは、UXの質を高めるうえで極めて重要です。

コンテキスト統合の注意点

  • 過剰な情報挿入に注意:文脈を盛り込みすぎると、ノイズやモデルの混乱を招く可能性があります。
  • 構造化とスロット化:文脈は可能な限り構造化し、プレースホルダー({{user_name}}など)で再利用性を担保しましょう。
  • 動的挿入のトリガー設計:履歴や外部知識の「どのタイミングで何を挿入するか」は明示的なルール化が必要です。

ここまでで、MCPにおける“何を知っているか”の設計が見えてきました。 次は、その文脈をどう柔軟に差し込むかという実装テクニック、「テンプレートとスロット設計」へと進みましょう。 → 3.3 テンプレートとスロットの設計へ進む

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

下田 昌平

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

チーム

任 弘毅

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

下田 昌平

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