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 つのファミリーにグループ化しているため、自分の問題に最適なツールをすぐに見つけることができます:
- 短期記憶 – 直近のターンを低コストかつ高速に保持します。
- 長期記憶 – 事実、エンティティ、グラフ、エピソードログなどを保存します。
- 認知アーキテクチャ – 層状、階層型、または内省的な記憶システム。
- 検索とルーティング – 何をいつ思い出すかを決定します。
- フレームワーク – すぐに使えるライブラリ(Mem0、Letta、Zep、Graphiti)。
- 評価と本番運用 – ベンチマーク、モニタリング、デプロイパターン。
内容の概要
| セクション | 技術(ノートブックへのリンク) | 学習内容 |
|---|---|---|
| 短期記憶 | 01‑05 – 会話バッファ、スライディングウィンドウ、要約、要約バッファ、トークンバッファ | コンテキストウィンドウの管理、トークン予算管理、オンザフライの要約。 |
| 長期記憶 | 06‑11 – ベクトルストア、エンティティ、ナレッジグラフ、エピソード、セマンティック、プロシージャル | エンベディングの永続化、エンティティストアの構築、ナレッジグラフの構築、生の出来事と抽出された事実・手順の分離。 |
| 認知アーキテクチャ | 12‑19 – ワーキングメモリ、階層レイヤー、統合、圧縮、自己反省、ルーティング、時間的、忘却 | 人間に着想を得た記憶階層、自動昇格/降格、定期的な統合、忘却ポリシー。 |
| 検索とルーティング | 20‑23 – 検索拡張、クロスセッション、マルチエージェントルーティング、ハイブリッド検索 | 適切な検索戦略(類似性検索、ハイブリッド、マルチエージェントディスパッチ)の選択。 |
| フレームワーク | 24‑27 – Graphiti, Mem0, Letta (MemGPT), Zep | 上記のパターンの多くをすぐに実装できるプラグアンドプレイライブラリ。 |
| 評価と本番運用 | 28‑30 – ベンチマーク、モニタリング、デプロイパターン | 記憶の有効性の測定方法、可観測性の設定、記憶機能付きエージェントの本番環境へのデプロイ。 |
クイックスタートガイド
- リポジトリをクローン(またはバッジから Google Colab で直接ノートブックを開く)。
- 最小限の依存関係をインストール – README に
python>=3.10と一般的な Jupyter スタックが記載されています。ほとんどのノートブックはlangchain、openai、faiss-cpuまたはchromadb(ベクトルストア用)、networkx(グラフ用)も使用します。 - 最初のノートブック
01_conversation_buffer_memoryを実行して、最も単純なパターンを確認します。 - README の 学習パス セクションに従って、プロジェクトに一致するファミリーにジャンプします(例:検索拡張チャットボットの場合は「長期記憶 → ベクトルストア」)。
- 本番環境の準備ができたら、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 エージェントに記憶を持たせる方法について、プロトタイプ作成から本番システムまで、コピー&ペースト可能な具体的な例が必要な場合、このリポジトリは記憶戦略の全領域をカバーする簡潔で整理されたツールボックスです。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト