構造化ノートテイキングは、エージェント型メモリとも呼ばれ、エージェントが定期的にノートを書き、それがコンテキストウィンドウの外にあるメモリへ永続化され、後の時点で再びコンテキストウィンドウに取り込まれる手法である。Anthropic はこれを、最小限のオーバーヘッドで永続的なメモリを提供するものとして紹介している。このパターンにより、エージェントは複雑なタスク全体にわたって進捗を追跡し、数十回のツール呼び出しを経るうちに失われてしまうはずの重要なコンテキストや依存関係を保持し続けることができる。

用法

Anthropic はこのパターンの形として 2 つを挙げている。Claude Code が To-Do リストを作成することと、カスタムエージェントが NOTES.md ファイルを維持することである。また、コーディング以外の領域でこの手法を示す例として Claude が Pokémon をプレイする事例も挙げている。そこではエージェントが何千ものゲームステップにわたって正確な集計を維持しており、たとえばある場所で訓練に何ステップを費やし、それによって目標に向けて何レベル上がったかを追跡している。Anthropic によれば、メモリの構造について何もプロンプトで指示しなくても、エージェントは探索済みの地域の地図を作り、どの重要な実績を解除したかを覚え、どの技がどの相手に最もよく効くかについて戦略的なノートを維持するようになる。コンテキストのリセット後には自分のノートを読み、数時間に及ぶ訓練の流れやダンジョン探索を続ける。Anthropic はこれを、すべての情報をコンテキストウィンドウの中だけに保持していては不可能な長期的戦略を可能にするものだと説明している。

Anthropic はまた、Claude Developer Platform 上でメモリツールをパブリックベータとして公開しており、これはファイルベースのシステムを通じてコンテキストウィンドウの外に情報を保存し参照するものである。これによりエージェントは時間をかけて知識ベースを構築し、セッションをまたいでプロジェクトの状態を維持し、すべてをコンテキストに保持しなくても過去の作業を参照できるようになるという。

その後の Claude Cookbook のノートブック コンテキストエンジニアリング:メモリ、コンパクション、ツール結果のクリア は、この意味でのメモリをジャストインタイムの取得(ジャストインタイムのコンテキスト取得 を参照)のためのプリミティブとして扱っている。すべてを最初に読み込むのではなく、エージェントは学んだことを保存しておき、必要に応じてそれを引き戻す。同ノートブックはメモリツールを memory_20250818 というクライアントサイドのツールとして示している。モデルがメモリ操作(view、create、str_replace、insert、delete、rename)を発行し、アプリケーションが自ら実装・管理するストレージに対してそれを実行する。また API が自動的にシステムプロンプトを注入し、何よりも先にメモリディレクトリを確認すること、そしてコンテキストがいつリセットされてもおかしくないと想定することをモデルに指示するという。ノートブックのデモンストレーションでは、最初のセッションで保存されたメモリファイルを与えられた 2 番目のセッションは、まずそれを読むことから始めてその上に作業を積み上げた。一方、メモリディレクトリが空の状態で同じ後続タスクを行った場合は、同じ事実を再発見するために元のドキュメントに戻らなければならなかった。

このノートブックは、何が保存されるかを方向づけるいくつかの方法も紹介している。メモリを特定のトピックに限定するシステムプロンプトの指示、新しいファイルを積み増すのではなくメモリフォルダを最新で一貫性があり整理された状態に保つようモデルに求めること、後続のセッションが読むための進捗ログや機能チェックリストといったメモリ成果物を用意する専用の最初のセッションを実行すること、そしてクライアント側のストレージの衛生管理——ファイルサイズの上限設定、長期間アクセスされていないファイルの削除、パストラバーサルへの対策——である。

適用される場面

  • 明確なマイルストーンを持つ長期的な作業に適用される。Anthropic は、ノートテイキングは反復的な開発で真価を発揮するとし、これと対照的に、広範なやり取りを必要とするタスクには コンパクション を推奨している。
  • コンテキストウィンドウの外にある永続化の場所と、ノートを読み戻すための仕組み——エージェントが書いて読み直すファイル、またはプラットフォームのメモリツール——を前提とする。
  • Claude Cookbook のノートブックは、メモリツールの対象をセッション間の問題に絞っている。メモリツールはエージェントが保存すると決めたものについては損失のない忠実度を提供するが、セッション内でのコンテキストの増大には何の効果もなく、読み書きのたびにツール呼び出しのオーバーヘッドが加わる。会話が互いに独立しているべきチャットボットのように、すべてのセッションをまっさらな状態から始めるべき場面ではメモリを使わないよう提案しており、事実が変わったときの古くなったメモリや、エージェントがユーザーの好みを学習する際の個人情報・機微情報に関するデータポリシーを、注意すべき点として挙げている。
  • Anthropic 自身の実践として確立しており、その根拠は Claude Code の To-Do リスト、Claude が Pokémon をプレイするデモンストレーション、そしてパブリックベータのメモリツールである。Pokémon の事例は、管理された測定ではなく Anthropic が報告するデモンストレーションである。

関連用語