a-mem-mcp について
A-MEM はコーディングエージェント向けの自己進化型メモリシステムで、知識を Zettelkasten 形式のグラフに整理し、関連を動的に更新します。現在は Claude Code で検証されており、他の MCP 対応エージェントへの対応は計画中です。
主な機能
- 01キーワード、コンテキスト、タグの自動生成
- 02ベクター類似度による関連メモリの検出
- 03セマンティック検索とグラフ探索の併用
- 04軽量な一覧取得後に全文を読む二段階検索
- 05期間を指定したメモリ検索
活用シーン
- 01複数のセッションにまたがるプロジェクト知識の保持
- 02認証フローなどコードの仕組みに関するメモの検索
- 03複数プロジェクト間でのメモリ共有
MCP 対応
コーディングエージェントに対して add_memory_note、search_memories、read_memory_note などの 8 つのツールを公開する MCP サーバーで、メモリの保存と検索を行います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx a-memLLM_BACKENDLLM backend to use (openai, ollama, sglang, or openrouter)LLM_MODELLLM model name (e.g., gpt-4o-mini, llama2, etc.)OPENAI_API_KEYシークレットOpenAI API key (required if LLM_BACKEND=openai)EMBEDDING_MODELSentence transformer model for embeddingsCHROMA_DB_PATHChromaDB storage directory pathローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
A-MEM:コーディングエージェントのための自己進化型メモリ
mcp-name: io.github.DiaaAj/a-mem-mcp
A-MEM は、コーディングエージェント向けの自己進化型メモリシステムです。シンプルなベクトルストアとは異なり、A-MEM は知識をツェッテルカステン形式のグラフに自動で整理し、動的なつながりを構築します。メモリは単に保存されるだけではなく、時間とともに進化し、つながっていきます。
現在、Claude Code でテスト済みです。ほかの MCP 互換エージェントへの対応も予定しています。
クイックスタート
インストール
pip install a-mem
Claude Code に追加
claude mcp add a-mem -s user -- a-mem-mcp \
-e LLM_BACKEND=openai \
-e LLM_MODEL=gpt-4o-mini \
-e OPENAI_API_KEY=sk-...
これで完了です!セッション開始フックが自動的にインストールされ、Claude にメモリを使うよう促します。
注: メモリはプロジェクトごとに
./chroma_dbに保存されます。すべてのプロジェクトで共有するグローバルメモリについては、メモリのスコープを参照してください。
アンインストール
a-mem-uninstall-hook # Remove hooks first
pip uninstall a-mem
仕組み
t=0 t=1 t=2
◉───◉ ◉───◉
◉ │ ╱ │ ╲
◉ ◉──┼──◉
│
◉
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━▶
self-evolving memory
- メモリを追加 → A-MEM が LLM を使ってキーワード、コンテキスト、タグを抽出します
- 近傍を検索 → 意味的に類似した既存のメモリを検索します
- 進化 → 関連するメモリをリンクする、つながりを強化する、または更新するかを判断します
- 保存 → メタデータと関連情報をすべて含めて ChromaDB に保存します
その結果、単に大きくなるだけでなく、時間とともに賢くなるナレッジグラフが構築されます。
特長
自己進化型メモリ メモリは静的なものではありません。新しい知識を追加すると、A-MEM は関連するメモリを自動で見つけ、つながりを強化し、コンテキストを更新して、タグを進化させます。
意味検索と構造検索 ベクトル類似度とグラフ探索を組み合わせます。意味からメモリを見つけ、そのつながりをたどることができます。
概要表示と詳細表示
まず、軽量なメタデータ(id、コンテキスト、キーワード、タグ)を使った幅優先検索で、関連するメモリを捉えます。次に、read_memory_note で特定のメモリを深さ優先で詳しく調べ、全内容を取得します。これにより、再現率を最大限に高めながら、トークン使用量を抑えられます。
MCP ツール
A-MEM は、コーディングエージェントに 8 つのツールを提供します。
| ツール | 説明 |
|---|---|
add_memory_note | 新しい知識を保存します(非同期、すぐに戻ります) |
search_memories | すべてのメモリを対象に意味検索します |
search_memories_agentic | 検索してグラフのつながりをたどります |
search_memories_by_time | 指定した期間内を検索します |
read_memory_note | 詳細をすべて取得します(一括読み取りに対応) |
update_memory_note | 既存のメモリを変更します |
delete_memory_note | メモリを削除します |
check_task_status | 非同期タスクの完了状況を確認します |
使用例
# The agent calls these automatically, but here's what happens:
# Store a memory (returns task_id immediately)
add_memory_note(content="Auth uses JWT in httpOnly cookies, validated by AuthMiddleware")
# Search later
search_memories(query="authentication flow", k=5)
# Deep search with connections
search_memories_agentic(query="security", k=5)
詳細設定
JSON 設定
詳細に設定するには、~/.claude/settings.json(グローバル)または .claude/settings.local.json(プロジェクト)を編集します。
{
"mcpServers": {
"a-mem": {
"command": "a-mem-mcp",
"env": {
"LLM_BACKEND": "openai",
"LLM_MODEL": "gpt-4o-mini",
"OPENAI_API_KEY": "sk-..."
}
}
}
}
環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
LLM_BACKEND | openai、ollama、sglang、openrouter | openai |
LLM_MODEL | モデル名 | gpt-4o-mini |
OPENAI_API_KEY | OpenAI API キー | — |
EMBEDDING_MODEL | Sentence Transformer モデル | all-MiniLM-L6-v2 |
CHROMA_DB_PATH | 保存ディレクトリ | ./chroma_db |
EVO_THRESHOLD | 進化を開始するしきい値 | 100 |
メモリのスコープ
- プロジェクト固有(デフォルト):各プロジェクトのメモリは
./chroma_dbに分離して保存されます - グローバル:
CHROMA_DB_PATH=~/.local/share/a-mem/chroma_dbを設定すると、プロジェクト間で共有できます
代替バックエンド
Ollama(ローカル、無料)
claude mcp add a-mem -s user -- a-mem-mcp \
-e LLM_BACKEND=ollama \
-e LLM_MODEL=llama2
OpenRouter(100 以上のモデル)
claude mcp add a-mem -s user -- a-mem-mcp \
-e LLM_BACKEND=openrouter \
-e LLM_MODEL=anthropic/claude-3.5-sonnet \
-e OPENROUTER_API_KEY=sk-or-...
フックの管理(Claude Code)
セッション開始フックは、Claude にメモリツールを使うよう促します。Claude Code とともに自動でインストールされますが、手動で管理することもできます。
a-mem-install-hook # Install/reinstall hook
a-mem-uninstall-hook # Remove hook completely
Python API
A-MEMをPythonから直接使用できます(あらゆるエージェントやアプリケーションで動作します)。
from agentic_memory.memory_system import AgenticMemorySystem
memory = AgenticMemorySystem(
llm_backend="openai",
llm_model="gpt-4o-mini"
)
# Add (auto-generates keywords, tags, context)
memory_id = memory.add_note("FastAPI app uses dependency injection for DB sessions")
# Search
results = memory.search("database patterns", k=5)
# Read full details
note = memory.read(memory_id)
print(note.keywords, note.tags, note.links)
研究
A-MEMは、次の論文のコンセプトを実装しています。
A-MEM:LLMエージェントのためのエージェント型メモリ Xu et al.、2025年 arXiv:2502.12110
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。