長期メモリの保存方式
対象読者: 長期メモリを実際にどう保存するか決めたい方、保存方式ごとの向き不向きを知りたい方
前提知識: 短期メモリと長期メモリ の基礎
長期メモリをどう保存するかで、後からの管理しやすさと精度が変わります。代表的な方式は4つあり、実務では組み合わせて使います。
4つの保存方式
| 方式 | 中身 | 向いている場面 |
|---|---|---|
| ファイル | Markdownなどの文書として保存 | 項目が少なく、人が読んで直したい |
| 構造化レコード | 決まった項目を持つデータ | 設定・プロフィールなど形が決まっている |
| ベクトル検索 | 埋め込みにして類似度で取り出す | 蓄積量が多く、関連分だけ引きたい |
| 要約 | 履歴を圧縮して残す | 経緯を保ちたいが全文は不要 |
ファイル方式
もっとも単純で、少量の長期メモリに適しています。最大の利点は人が中身を読んで直接修正できることです。誤った記憶が入ってもすぐに気づき、その場で直せます。
# プロジェクトメモ
- 記事の一次情報は日本語、英語は翻訳
- 本番デプロイは承認後のみ
- 用語は「AIトランスフォーメーション」を使う一方、項目が数十を超えると、毎回全文を渡すのが非効率になります。
構造化レコード方式
項目があらかじめ決まっている情報に向きます。自由文と違い、上書き更新が正確にできるのが利点です。
| 項目 | 値 |
|---|---|
| 回答スタイル | 簡潔・箇条書き中心 |
| 使用言語 | 日本語 |
| 承認が必要な操作 | 本番デプロイ |
自由文だと「簡潔に」と「詳しく」が両方残ってしまうような矛盾が、構造化されていれば起きにくくなります。
ベクトル検索方式
蓄積量が増え、毎回すべてを渡せなくなったときに使います。仕組みはRAGと同じで、現在のタスクに関連する記憶だけを取り出します。
注意点は、人が中身を把握しづらくなることです。誤った記憶が紛れても気づきにくいため、日付と出所をメタデータとして持たせ、古いものを除外できるようにします。
要約方式
長い履歴を、決定事項・未解決事項・制約に絞って圧縮します。経緯を保ちながら量を抑えられますが、要約時に落とした情報は復元できない点に注意が必要です。重要な原文は別途残しておきます。
選び方
graph TD
S["蓄積量は多いか"] -->|少ない| F["ファイル / 構造化レコード"]
S -->|多い| V["ベクトル検索 + 要約"]
F --> H["人が読んで直せる状態を保つ"]
V --> M["日付と出所をメタデータに持たせる"]まずはファイルや構造化レコードで始め、扱いきれなくなった時点でベクトル検索を足すのが現実的です。最初から複雑な仕組みを作ると、中身の誤りに気づけないまま運用することになります。
まとめ
- 長期メモリの保存方式はファイル・構造化レコード・ベクトル検索・要約の4つ
- 少量なら人が直せるファイル方式、形が決まっているなら構造化レコード
- 蓄積量が増えたらベクトル検索へ移行し、日付と出所を必ず持たせる
- 要約は量を抑えられるが、落とした情報は戻らない
関連リンク
クイズ