AIエージェントに毎回同じ前提やコンテキストを説明し直すのは、利用する上で大きなストレスになります。かといって、過去のやり取りやファイルをすべてプロンプトに詰め込むと、モデルの注意力が分散し、情報検索の精度が落ちてしまいます。
この「大量コンテキストによる性能低下」を回避し、必要な情報だけを効率よくエージェントに渡すにはどうすればよいのでしょうか。
本記事では、Anthropicが提唱するコンテキスト管理の考え方をベースに、研究論文における記憶検索アルゴリズム、そして個人での具体的なファイル構成例までを整理して解説します。
1. 保管と読み込みを分離する:「Just-In-Time」と「ノート作成」
AIエージェントのコンテキスト溢れを防ぐ手法として、Anthropicの技術ブログでは主に2つのアプローチが紹介されています。
- Just-In-Time(必要なときだけ読む) プロンプト内にはファイルパスや最低限の手掛かり(インデックス)だけを残しておき、詳細が必要になったタイミングでツールを使って外部ファイルを読み込みます。
- Structured Note-Taking(構造化されたノート作成) 会話の中で発生した重要な事実や判断をコンテキスト外の外部ノートに書き出し、後から必要に応じて読み戻します。
つまり、「常にすべてを記憶(保持)させる」のではなく、「外部に整理して保管し、必要な時にだけ読み込む」という分離設計が重要になります。
2. 情報をどう評価して取り出すか:論文と個人運用の違い
外部に保管した膨大な記憶から「今どの情報を読み込むべきか」を判断する際、どのような指標が使われているのでしょうか。代表的な研究と、個人による実践例のスコア設計を比較します。
論文(Parkら)のスコア計算:和モデル
Generative Agentsに関するParkらの研究論文(§4.1)では、記憶の優先度を以下の3つの軸で評価しています。
- Recency(新しさ): 作成時刻ではなく「最後に参照された時刻からの経過時間」による減衰
- Importance(重要度): その記憶がどれだけ重要か(1〜10等のスコア)
- Relevance(関連性): 現在の文脈との関連度(埋め込みのコサイン類似度)
論文では、これら3つの指標をそれぞれ 0〜1 の範囲に正規化し、重み付き和(各重み1)として足し合わせた値を検索スコアとして使用しています。
※なお、Recencyは「参照頻度」ではなく「最終参照からの経過時間」である点や、計算式が積ではなく加算(和)である点が特徴です。
個人運用(はたけ氏のnote)のスコア計算:積モデル
一方、プロダクトデザイナーのはたけ氏によるnoteでは、記憶の整理・定着を目的とした個人運用の試みが紹介されています。
この運用例では、論文の「和」のアプローチとは異なり、独自に各指標の「積」を用いた評価や段階的な数値設定を導入しています(たとえば「90日間参照されていないか」「3回以上参照されたか」といったルールを適用)。
研究論文における自動検索アルゴリズム(和)と、個人の運用ルールにおける整理ロジック(積)では評価の仕組みが異なるため、目的に応じた使い分けを意識すると理解しやすくなります。
3. 個人運用で使える「最小構成」のファイル設計
はたけ氏の運用例では、記憶を整理して保持するためのファイル構造として、以下のような最小構成(4つのファイル)が提案されています。
MEMORY.md:全体を俯瞰するための目次・インデックスファイルcontext-log.md:過去に起きた出来事や経緯の記録frameworks.md:判断基準やルールの集約preferences.md:ユーザーやプロジェクトの好み・思考パターンの記録
「目次」と「記録本体」を分ける意味
ここで重要なのは、MEMORY.md(目次)とその他の詳細記録を分離することです。
エージェントにはまずMEMORY.mdだけを読ませます。そこには各ノートへのパスと概要だけを書いておき、具体的な出来事や判断基準が必要になった段階で、エージェントが自発的にcontext-log.mdやframeworks.mdを参照するように設計します。
これにより、毎回のやり取りでコンテキストを圧迫することなく、必要な時だけ必要な記憶へアクセスする環境が整います。
まとめ
LLMエージェントに長く適切な振る舞いをさせる鍵は、外部メモの活用にあります。
- 保管と読み込みの分離: 常にプロンプトへ入れず、外部ファイル+Just-In-Time参照で賄う。
- 評価ロジックの理解: 論文の学術的な評価式(加算モデル)と、個人の運用ルール(乗算モデル等)の違いを把握する。
- 目次と本体の切り分け:
MEMORY.mdのような目次ファイルを挟むことで、コンテキスト消費を最小限に抑える。
毎回同じ説明を繰り返していると感じたら、まずはシンプルなMEMORY.mdと各種メモファイルの作成から試してみてはいかがでしょうか。
参考
この記事は Gemini Flash が執筆しました。
