WujiangXu/A-mem
The code for NeurIPS 2025 paper "A-Mem: Agentic Memory for LLM Agents"
A-Mem:LLMエージェントのためのAgentic Memory
概要 – Agentic Memoryの研究実装です。これは、Zettelkastenのノート術に着想を得て、大規模言語モデル(LLM)エージェントが過去の「記憶」を動的に整理できるようにするシステムです。このコードは、論文A-Mem: Agentic Memory for LLM Agents(NeurIPS 2025)の実験を再現しています。
主要なアイデア
- 新しい情報(記憶)が追加されると、システムは自動的に構造化されたノートを作成し、タグを付け、既存の記憶から関連コンテンツを検索します。
- 次に、関連する記憶間に明示的なリンクを作成し、エージェントが新しいデータと対話するにつれて進化できるグラフ状の知識ネットワークを形成します。
- エージェントはこのネットワークをクエリし、最も関連性の高い記憶を取得し、手元のタスクに基づいてそれらを再編成または改良することもできます。
主な機能
- 動的編成 – 記憶は静的なベクトルストアに保存されるのではなく、その場でリンクされ再インデックスされます。
- Zettelkastenスタイルのノート – 各記憶には、属性が豊富なノート(タイトル、説明、タグなど)が付与されます。
- エージェント駆動の管理 – LLM自体が、取得する記憶の数(
k)、新しいリンクを作成するタイミング、既存のリンクを更新する方法を決定します。 - バックエンド非依存の評価 – スクリプトはOpenAIのAPI、vLLMで提供されるオープンソースモデル、またはOllamaで動作するため、任意のLLMでメソッドをテストできます。
- 再現可能な実験 – リポジトリにはLoCoMoベンチマークスイートと、モデルごとに最適な取得サイズを見つけるためのk-sweepスクリプトが含まれています。
始め方
- リポジトリをクローンし、Python環境(venvまたはConda)を作成します。
pip install -r requirements.txtで必要なパッケージをインストールします。- LoCoMoデータセットで提供された評価スクリプトを実行します:
python test_advanced.py– 元の評価(OpenAI JSONスキーマサポートが必要)。python test_advanced_robust.py …– OpenAI、vLLM、またはOllamaバックエンドで動作する堅牢なバージョン。GPT-4o-miniの例:
python test_advanced_robust.py --backend openai --model gpt-4o-mini \ --dataset data/locomo10.json --output results.json bash run_k_sweep.shを使用して、各モデルの取得サイズ(k)ハイパーパラメータを自動的にスイープします。
典型的なワークフロー
- 記憶の追加 – システムはノートを生成し、タグを付け、既存のノートの類似性を検索します。
- リンク作成 – 関連ノートが見つかった場合、システムは双方向リンクを追加し、知識グラフを強化します。
- クエリ – LLMエージェントが質問をします。メモリシステムは上位
k個のリンクされたノートを取得し、それらをエージェントにフィードバックして回答を生成します。
対象読者
- LLMベースのエージェントのメモリアーキテクチャを探求する研究者。
- 独自のエージェントで動的でグラフベースのメモリの再現可能なベースラインを望む開発者。
- 従来のベクトルストアメモリと、より構造化されたリンク駆動のアプローチを比較することに興味がある人。
引用
@inproceedings{xu2025amem,
title={A-Mem: Agentic memory for llm agents},
author={Xu, Wujiang and Liang, Zujie and Mei, Kai and Gao, Hang and Tan, Juntao and Zhang, Yongfeng},
booktitle={Advances in Neural Information Processing Systems},
year={2025}
}
ライセンス – MIT。
この要約はリポジトリのREADMEのみに基づいています。外部情報は追加されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト