モデルにとっての記憶とは何か?|MCP入門 1.4|生成AIと文脈再現の技術

1.4 モデルにとっての「記憶」とは何か
私たちがChatGPTやClaudeと会話しているとき、「あれ?このAI、前にも話した内容を覚えている気がする」と感じることがあります。 逆に、途中で文脈が抜け落ちたような応答や、明らかに話の流れを無視した回答に驚くこともあるでしょう。
この不思議な“覚えているようで、忘れる”現象の正体こそが、大規模言語モデル(LLM)にとっての「記憶」の本質です。 人間のような脳の構造を持たないAIが、「記憶しているように振る舞う」ためにはどうしているのか。 そして、それをどう制御するのか。 このセクションでは、MCP設計の要でもある「記憶」の構造について詳しく見ていきます。
LLMに“本物の記憶”はない
まず大前提として、現在のLLMには、物理的な長期記憶は存在しません。 GPT-4やClaudeなどのモデルは、セッションごとに独立して動いており、過去の会話や知識を“保持”する能力は持っていません。
モデルはあくまで「現在のプロンプト(とその中に含まれる履歴や文脈)」だけをもとに応答を生成します。 つまり、「覚えているように見える」のは、プロンプトに含まれた情報を上手に利用しているだけなのです。
記憶のように機能する構造
とはいえ、会話アプリやAIアシスタントなど、継続的な対話を必要とする場面では、 何らかの形で「過去の情報を保持」しているように見せる必要があります。 そのため、多くのLLMアプリケーションでは、次の3つの「記憶モデル」が使い分けられています:
- Ephemeral Memory(短期的な記憶): 現在のセッション内に含まれるプロンプト履歴
- Persistent Memory(永続的な記憶): 外部に保存された情報(データベース、ベクターストアなど)
- System-level State(役割や状態などの設計的な記憶): モデルが何者で、どのように振る舞うかを定義する要素
これらを組み合わせることで、AIが「記憶を持っているかのように見える状態」が作られます。
1. Ephemeral Memory(エフェメラル・メモリ)::セッション内の短期記憶
エフェメラルとは「一時的な」「儚い」という意味です。 LLMが持つエフェメラル・メモリとは、現在のセッション中にプロンプトとして保持されている履歴のことです。 これはトークン制限内であれば、モデルは文脈を参照できますが、ウィンドウを超えると自動的に「忘れた」ようになります。
つまり、エフェメラルメモリは「記憶のように見えるが、脆い」のが特徴です。 MCP設計では、これを必要に応じて要約・圧縮しながらコンテキストとして再投入する戦略が重要になります。
2. Persistent Memory(パーシステント・メモリ):外部保存による“長期記憶”
エフェメラルな記憶の限界を超えて、「ユーザーの名前」「好み」「過去の会話内容」などを保持したい場合は、外部メモリの設計が不可欠です。
これは以下のような形で実装されます:
- データベースに保存された「ユーザー情報」や「会話履歴」
- ベクターストア(例:FAISS, Weaviate)に保存された過去会話の意味的な埋め込み
- RAG構造でのドキュメント検索+要約
MCPでは、これらのパーシステント情報を文脈として適切に挿入・管理するプロトコルが設計されます。 例:「前回の対話で◯◯と言っていたので、それを前提にしてください」と明示的に渡す、などです。
3. System-level State(システムレベル・ステート):人格や役割などの記憶
モデルには「あなたはプロの編集者です」「カスタマーサポートとして振る舞ってください」といったシステム指示が渡されます。 これは、モデルがどんな人格・立場・役割を想定して出力を構成すべきかを決定づける重要な情報であり、文脈の起点とも言えます。
MCPでは、ユーザーやタスクごとにこの状態(state)を設計し、セッション開始時に明示的に渡すことで、 文脈の一貫性と再現性を高めることができます。
「記憶があるふり」を設計するということ
LLMは本来、記憶も感情もありません。それでも、私たちが「記憶してくれている」と感じるのは、 設計者がうまく情報を文脈として再構築し、それをプロンプトに差し込んでいるからです。
つまり、LLMにおける「記憶設計」とは、本質的には“文脈再現の設計”なのです。 これがMCPの中核にある考え方です。
これまでのセクションで、文脈の構造、制約、そして「記憶」の再現について理解してきました。 いよいよ次の章では、Model Context Protocol(MCP)とは何かを本格的に探っていきます。 なぜこの考え方が重要で、どのように実装されているのか。 第2章では、MCPの基本設計と思想に迫っていきす。 → 第2章 MCPとは何か へ進む

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

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

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