はじめに:コンテキストウィンドウだけでは「分身」は作れない

「AIに自分の好みや過去の判断を覚えてもらいたい」「毎回同じ説明をするのが面倒」 -- こうした願望は、すべてのLLMユーザーが感じるものです。しかし、モデルのコンテキスト窓を広げても、すべての履歴や設定を詰め込めば運用は必ず破綻します。

Context Window(従来のアプローチ)

すべてを1つのウィンドウに詰め込もうとする。履歴が増えると溢れ、古い情報は失われる。

課題:モデルのコンテキスト窓を広げても、すべての履歴や設定を詰め込めば運用は必ず破綻する。

Persistent Memory System(目指す形)

短期的なやり取り、ユーザープロファイル、ナレッジベースを分離して管理。必要な時に必要な情報だけを引き出す。

結論:長期記憶はモデル本体ではなく、外部記憶・要約設計・検索構造によって担保しなければならない。

この章で学べること
  • LLMの記憶を3つの階層で設計する方法
  • 巨大な1つのプロンプトから、階層化されたモジュールへの転換
  • 「母艦(Mothership)」と「案件(Project)」の分離アーキテクチャ
  • CLAUDE.mdをエントリポイントとして活用する方法
  • コンテキスト圧迫を防ぐ運用ガイドライン
  • 今日から始める5つのステップ

1. LLMの記憶を3つの階層で設計する

記憶は単一の概念ではありません。各階層に合わせた情報の「置き場所」を設計することが、一貫したAIアシスタント構築の第一歩となります。

LLMの記憶を3つの階層で設計する: 短期記憶、半永続の設定記憶、長期記憶
Page 3 - LLMの記憶を3つの階層で設計する
階層 内容 特徴 たとえ
短期記憶 現在の会話 / コンテキストウィンドウ セッション限りで揮発。トークン上限あり。LLMが「今見えている」情報 作業机の上に広げた書類
半永続の設定記憶 システムプロンプト / CLAUDE.md / ルール セッションを超えて維持される設定情報。毎回自動的に読み込まれる デスクの引き出しにある手順書
長期記憶 過去の会話の要約 / ユーザー設定 / 判断ログ / RAG 永続的に保存。必要な時だけ取り出す。容量は事実上無制限 書庫の棚にファイリングされた過去の記録
たとえ話:オフィスで理解する3階層

あなたはオフィスで働いています。短期記憶は今デスクに広げている書類(セッションが終われば片付ける)。半永続の設定記憶はデスクの引き出しにある「社内ルール集」や「自分の作業手順書」(毎朝確認する)。長期記憶は会社の書庫にある過去のプロジェクト資料(特定の案件で必要になった時だけ取りに行く)。

2. 巨大な1つのプロンプトから、階層化されたモジュールへ

多くの人がやりがちな失敗は、すべての情報を1つの巨大なプロンプトに詰め込むことです。これは必ず破綻します。

ダメなパターン

all_prompts_and_logs.txt のような巨大ファイル1つに全てを入れる

  • すべてを1ファイルに入れる
  • 毎回全文を読み込ませる
  • 過去ログを丸ごと残す

良いパターン

役割別に persona.mdprinciples.mdcases.md に分割

  • 人格、判断原則、案件事情を分割
  • 必要な時だけ関連ファイルを参照
  • 長い履歴は要約で置き換える
なぜ1ファイルが危険なのか

LLMのコンテキストウィンドウには限りがあります。すべてを毎回読み込ませると:(1) トークンコストが爆発する (2) Lost in the Middle問題で中央の情報が無視される (3) 古い情報と新しい情報が矛盾した場合、LLMが混乱する。

3.「母艦」と「案件」を完全に分離するアーキテクチャ

1つに集約しすぎると話題が混線します。そこで、共通人格である「母艦(Mothership)」をOSとして置き、その上で動く専門作業場として「案件」プロジェクトを展開する設計が有効です。

母艦と案件を完全に分離するアーキテクチャ: Mothership(共通人格/OS)から各案件プロジェクトへ
Page 5 - 「母艦」と「案件」を完全に分離するアーキテクチャ
たとえ話:会社組織で理解する母艦と案件

母艦は「会社の理念・行動規範・社風」のようなもの。どのプロジェクトに配属されても変わらない、共通のアイデンティティです。案件プロジェクトは「営業部」「開発部」「経理部」のような専門部署。それぞれ異なる目的・ツール・コンテキストを持っていますが、根底にある会社の文化は共有しています。

母艦(OS)を構成する4つのコアファイル

これらは「分身」の脳のコア。すべての案件において共通して読み込まれる基盤となります。

ファイル名 役割 具体的な内容
persona_core.md 人格の核 口調、結論の出し方、曖昧時の振る舞い
decision_principles.md 判断原則 仮定で進める条件、構造化のタイミング、再利用性の重視
response_style.md 応答スタイル 回りくどさの排除、実務フォーマット優先、Markdownの活用
global_memory.md 恒久情報 長く残したい恒久情報、ユーザーの好み、固定ルール

案件(ワークスペース)を構成する3つのコンテキスト

案件ごとの事情やログはここに隔離します。新規案件を立ち上げる際は、この薄いテンプレートをコピーするだけで開始できます。

ファイル名 役割 具体的な内容
project_context.md 案件コンテキスト 案件の目的、制約、技術スタック、出力形式
decision_log.md 判断ログ 過去の重要判断、その理由、再利用条件
session_summary.md セッション要約 直近会話の短い要約、今回決まったこと、次回参照すべきこと
分離のメリット

この設計により、EC運営の案件で蓄積した判断ログが、競馬AIの案件に混入することがなくなります。各案件は独立したコンテキストを持ちつつ、母艦の共通人格を継承する。これが「分身」の安定した動作の秘訣です。

4. コンテキストを最適化する「読み込みの順序」

すべてを毎回全文読む必要はありません。「最初に人格の核を読み、最後に直近の要約を読む」ことで、最新状況の補正が正確に機能します。

コンテキストを最適化する読み込みの順序: 人格の核(First) → 判断基準(Middle) → 直近要約(Last)
Page 8 - コンテキストを最適化する「読み込みの順序」
なぜ順序が重要なのか?

LLMは「最初」と「最後」に読んだ情報を最も重視する傾向があります(Primacy EffectRecency Effect)。だからこそ、最初に「変わらない人格の核」を、最後に「最新のセッション要約」を配置することで、安定した人格と最新の文脈認識を両立できます。

たとえ話:朝の出勤ルーティンで理解する読み込み順序

毎朝出勤するとき、まず「自分が誰で、どんな立場か」を意識し(人格の核)、次に「今日の会議資料とプロジェクトの背景」を確認し(中間層)、最後に「昨日のメモと今日のToDo」をチェックする(直近要約)。この順番が逆だと混乱しますよね。LLMも同じです。

5. 実装方法:ChatGPTとClaude Codeそれぞれの場合

ChatGPT Web UIでの実装:Projects機能を活用する

Claude Code / ローカル環境での実装:CLAUDE.mdを入口にする

Claude Code / ローカル環境での実装: CLAUDE.mdをエントリポイントとして共通人格ディレクトリと各作業リポジトリを接続
Page 10 - Claude Code / ローカル環境での実装: CLAUDE.mdを入口にする
CLAUDE.mdの設計原則
  • 入口を絞る:Claude Codeでは、CLAUDE.mdを案件の入口として機能させる
  • 詳細の分離:CLAUDE.md自体は短く保ち、「何を参照し、どう応答するか」のルーティングに特化させる。詳細は別ファイルへ逃がす
たとえ話:CLAUDE.mdは「受付嬢」

CLAUDE.mdは会社の受付のようなもの。来客(ユーザーの質問)が来たら、「このお客様にはAさん(persona_core.md)が対応すべき」「この案件はBさん(project_context.md)の担当」と振り分ける。受付自身が全部対応するのではなく、適切な担当者に振り向けるのが仕事です。

6. コンテキストの圧迫を防ぐ運用ガイドライン

ファイル構成そのものが重いのではない。毎回すべてを読ませる運用が重いのです。

軽い運用(推奨)

  • 短い agent_spec.md
  • 数十行の session_summary.md
  • 要点だけの decision_log.md

常時読むのは「人格の核」と「短いサマリー」のみ。

重い運用(非推奨)

  • 長大な会話ログ全文
  • 巨大な memory.md
  • 毎回全案件資料を流し込む運用

コンテキストが圧迫され、精度もコストも悪化する。

運用の鉄則
  • 常時読むものは「人格の核」と「短いサマリー」のみ
  • 古い要約は定期的に圧縮する
  • 長い判断ログや資料は必要な時だけ参照させる設計を徹底する
たとえ話:通勤カバンの軽量化

毎日の通勤カバンに、過去10年分の仕事ファイルを全部入れて持ち歩く人はいません。今日使うものだけ入れ、過去の資料はオフィスの棚に置いておく。LLMのコンテキスト管理もまったく同じ発想です。

7. 完璧主義を捨てて「最小構成の分身(v1)」から育てる

今回の設計思想だけで、実用的な初版(v1)は構築可能です。最初から完全なログや例外処理を用意する必要はありません。

完璧主義を捨てて最小構成の分身(v1)から育てる: 今日作れる最小構成から運用で育つ完全体へ
Page 12 - 完璧主義を捨てて「最小構成の分身(v1)」から育てる
v1の思想

運用しながらファイルを育て、圧縮していくプロセス自体が「分身」の精度を高めます。最初から完璧を目指すのではなく、まず最小構成で動かし、使いながら改善していくというアジャイルな発想が重要です。

8. 今日から始めるための5つのステップ

ここまでの設計思想を、具体的なアクションに落とし込みましょう。以下の5ステップを順番に実行すれば、今日中に「分身v1」が完成します。

  1. 母艦の構築
    Claude Code用(またはChatGPT用)の共通人格ディレクトリを作成する。フォルダ1つ作るだけでOK。
  2. コアの定義
    persona_core.md の初版を書き上げる。完璧でなくていい。「自分のAIアシスタントにこう振る舞ってほしい」を箇条書きで書くだけで十分。
  3. 入口の整備
    案件用に CLAUDE.md(またはProject Instructions)のテンプレートを用意する。「まずpersona_core.mdを読んでください」と一行書くだけでもスタートできる。
  4. 要約の習慣化
    session_summary.md を毎回短く更新する運用を始める。会話の最後に「今日の要約を書いて」と頼むだけ。
  5. コンテキストの分離
    話題が混線し始めたら、重い話題は新しい案件プロジェクトとして切り離す。「このテーマは別プロジェクトにしよう」と判断するタイミングを覚える。
毎日の運用が分身を育てる

5つのステップは一度やって終わりではありません。毎日のAIとのやり取りの中で、ファイルを更新し、要約を圧縮し、新しい案件を分離する。この日常的な「手入れ」こそが、分身の精度を高める最大の秘訣です。

まとめ:記憶の設計が「分身」の品質を決める

この章の核心メッセージ
  • コンテキストウィンドウだけに頼る運用は必ず破綻する
  • 記憶は3階層(短期・半永続・長期)で設計する
  • 巨大な1ファイルではなく、役割別モジュールに分割する
  • 母艦(共通人格)と案件(プロジェクト)を分離することで混線を防ぐ
  • 母艦の4コアファイル:persona_core.md / decision_principles.md / response_style.md / global_memory.md
  • 案件の3コンテキスト:project_context.md / decision_log.md / session_summary.md
  • CLAUDE.mdはエントリポイント。短く保ち、ルーティングに特化させる
  • 読み込み順序は「人格の核(最初)→ 判断基準(中間)→ 直近要約(最後)」
  • 毎回全文を読ませるのではなく、必要な時だけ参照する設計が鍵
  • 完璧主義を捨て、最小構成v1から運用で育てる
設計思想の本質

LLMの「分身」は、モデルの性能だけでは作れません。情報をどこに置き、いつ読み、どう更新するか -- この記憶アーキテクチャの設計こそが、一貫性のある実用的なAIアシスタントを生み出す鍵です。