AIエージェントに会話の中でいくら情報を伝えても、セッションが終われば消えます。次の会話では前提から説明し直しになります。残るのはファイルに書いたものだけです。ここではメモリをファイルとして持たせる際の、実用的な設計をまとめます。
1メモリ=1ファイル=1つの事実
1つのファイルに複数の話題を詰め込むと、更新のたびに全文を読み直して該当箇所を探すことになります。ファイルが大きくなるほどこの手間は増え、そのうち更新自体が面倒になって止まります。更新されないメモリは、無いメモリより悪い結果を招きます。古い情報を前提に判断が進むからです。
対策はシンプルで、1つのファイルには1つの事実だけを書きます。「駿平の作業環境」ではなく「PythonはPython優先」「ブラウザはBrave」のように、ファイルを事実の単位で分割します。1ファイルが小さければ、読むのも直すのも一瞬で終わります。
索引方式で起動コストを抑える
ファイルを分割すると、今度は数が増えたときに全部読み込むのが重くなります。ここで使うのが索引です。MEMORY.mdのようなインデックスファイルに、個別ファイルへのリンクと1行要約だけを並べておきます。セッション開始時に自動で読み込むのはこの索引だけにして、個別ファイルはAI自身が必要だと判断したときにだけ開きます。
この方式なら、ファイルが100個あっても索引自体は数千文字で収まります。索引の1行要約が実質的に検索キーになるので、「メモ」「その他」のような曖昧な要約は機能しません。何についてのファイルかが、要約の文言だけで判断できる粒度にします。
保存しないものを決める
- リポジトリを読めば分かること(コードの実装詳細など)は書かない。ソースと二重管理になり、どちらかが古くなります。
- その会話でしか意味がないやり取りは書かない。次のセッションで文脈がない状態で読んでも意味が通るものだけを残します。
- すぐ古くなる数値は、書くなら日付を添える。「現在のユーザー数は1200人」ではなく「2026-07-31時点で1200人」と書きます。
相対日付は絶対日付に直す
「来週まで」「先月から」といった相対的な表現は、書いた時点でしか意味が通じません。半年後にそのファイルを読んだAIは、来週がいつなのか分かりません。「2026-08-03まで」のように、書く時点で絶対日付に変換しておきます。手間は一瞬ですが、後から読んだときの誤読を防げます。
月1回の手入れ
索引方式は放っておくと、索引と実体がずれていきます。ファイルを消したのに索引に行が残っていたり、逆に索引に書いたのにファイルを作り忘れていたりします。月に1回程度、次の3つを確認すると崩れにくくなります。
- 索引と実体の対応が取れているか(リンク切れ、記載漏れがないか)
- 終わったプロジェクトのメモリが残っていないか(消すか、アーカイブに移す)
- 似た内容のファイルが重複していないか(統合する)
メモリは書いて終わりではなく、読まれて使われて初めて意味を持ちます。整理にかける時間は、後で古い情報に振り回される時間より確実に短いです。この考え方をそのまま導入できる形(フック4本・メモリ構造・スキル4本・解説6本)にまとめたものを、別の記事で配布しています。Claude Codeが同じミスを繰り返さなくなる設定一式
