NirDiamant/Agent_Memory_Techniques

Agent memory for LLMs: 30 runnable Jupyter notebooks covering conversation buffers, vector stores, knowledge graphs, episodic and semantic memory, MemGPT, Mem0, Letta, Zep, Graphiti, LoCoMo benchmarks, and production patterns.

🧠 エージェントの記憶技術 – このリポジトリについて

記憶機能を必要とする LLM ベースのエージェントを構築するすべての人のための実践的な学習リソースです。

このリポジトリには、現代の LLM エージェントで使用される最も一般的(かつ最先端の)記憶パターンを実証する 30 個の完全に実行可能な Jupyter ノートブック が含まれています。単純な会話バッファから、Mem0、Letta、Zep、Graphiti といった本番グレードのフレームワークまでを網羅しています。各ノートブックは自己完結型で、Google Colab で開くことができ、その技術を自分のエージェントに組み込むために必要な正確なコードを示しています。

なぜ「エージェントの記憶」が重要なのか

  • LLM にはコンテキストウィンドウの制限があります。記憶戦略がなければ、エージェントは数ターン後にすべてを忘れてしまいます。
  • 現実世界のエージェントは、セッション、ユーザー、さらには異なるタスク(例:パーソナルアシスタント、カスタマーサポートボット、自律型プランナー)をまたいで知識を保持する必要があります。
  • このリポジトリでは 30 の技術を 6 つのファミリーにグループ化しているため、自分の問題に最適なツールをすぐに見つけることができます:
    1. 短期記憶 – 直近のターンを低コストかつ高速に保持します。
    2. 長期記憶 – 事実、エンティティ、グラフ、エピソードログなどを保存します。
    3. 認知アーキテクチャ – 層状、階層型、または内省的な記憶システム。
    4. 検索とルーティング – 何をいつ思い出すかを決定します。
    5. フレームワーク – すぐに使えるライブラリ(Mem0、Letta、Zep、Graphiti)。
    6. 評価と本番運用 – ベンチマーク、モニタリング、デプロイパターン。

内容の概要

セクション 技術(ノートブックへのリンク) 学習内容
短期記憶 01‑05 – 会話バッファ、スライディングウィンドウ、要約、要約バッファ、トークンバッファ コンテキストウィンドウの管理、トークン予算管理、オンザフライの要約。
長期記憶 06‑11 – ベクトルストア、エンティティ、ナレッジグラフ、エピソード、セマンティック、プロシージャル エンベディングの永続化、エンティティストアの構築、ナレッジグラフの構築、生の出来事と抽出された事実・手順の分離。
認知アーキテクチャ 12‑19 – ワーキングメモリ、階層レイヤー、統合、圧縮、自己反省、ルーティング、時間的、忘却 人間に着想を得た記憶階層、自動昇格/降格、定期的な統合、忘却ポリシー。
検索とルーティング 20‑23 – 検索拡張、クロスセッション、マルチエージェントルーティング、ハイブリッド検索 適切な検索戦略(類似性検索、ハイブリッド、マルチエージェントディスパッチ)の選択。
フレームワーク 24‑27 – Graphiti, Mem0, Letta (MemGPT), Zep 上記のパターンの多くをすぐに実装できるプラグアンドプレイライブラリ。
評価と本番運用 28‑30 – ベンチマーク、モニタリング、デプロイパターン 記憶の有効性の測定方法、可観測性の設定、記憶機能付きエージェントの本番環境へのデプロイ。

クイックスタートガイド

  1. リポジトリをクローン(またはバッジから Google Colab で直接ノートブックを開く)。
  2. 最小限の依存関係をインストール – README に python>=3.10 と一般的な Jupyter スタックが記載されています。ほとんどのノートブックは langchain、openai、faiss-cpu または chromadb(ベクトルストア用)、networkx(グラフ用)も使用します。
  3. 最初のノートブック 01_conversation_buffer_memory を実行して、最も単純なパターンを確認します。
  4. README の 学習パス セクションに従って、プロジェクトに一致するファミリーにジャンプします(例:検索拡張チャットボットの場合は「長期記憶 → ベクトルストア」)。
  5. 本番環境の準備ができたら、CI テストやデプロイ用のスニペットを含む フレームワーク ノートブック(Mem0、Letta、Zep)を探索します。

対象読者

  • 開発者:パーソナルアシスタント、カスタマーサポートボット、または時間の経過とともにコンテキストを保持する必要がある LLM 駆動のワークフローを構築している方。
  • 研究者:ベンチマーク用に新しい記憶アーキテクチャ(Mem0、Letta など)の具体的な実装を求めている方。
  • 教育者/学生:エージェントの記憶に関する視覚的でノートブック主導のカリキュラムを探している方。

技術スタックと要件

  • Python 3.10+
  • Jupyter notebooks(ローカルまたは Google Colab で実行)
  • コアライブラリ:langchain、openai(または互換性のある LLM API)、faiss-cpu/chromadb(ベクトルストア用)、networkx(グラフ記憶用)、およびフレームワークノートブック用の各 SDK(例:mem0-sdk、zep-python)。
  • Apache‑2.0 ライセンス – 自由に使用、変更、商用利用が可能。

成熟度とコミュニティ

  • リポジトリは積極的にメンテナンスされています(issue バッジ、貢献ガイド、Discord コミュニティあり)。
  • 各技術には ✅ ノートブックバッジが付いており、コードがエンドツーエンドで実行可能であることを示しています。
  • 著者はより深い学習のために有料コースや関連書籍も提供していますが、ノートブック自体は完全に機能し、オープンソースです。

結論: LLM エージェントに記憶を持たせる方法について、プロトタイプ作成から本番システムまで、コピー&ペースト可能な具体的な例が必要な場合、このリポジトリは記憶戦略の全領域をカバーする簡潔で整理されたツールボックスです。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト