a

a-mem-mcp

@DiaaAj/a-mem-mcp
0 Stars 1 次浏览 DiaaAj 更新于 2026-08-23

Self-evolving memory system for AI agents

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "a-mem": {
      "args": [
        "a-mem@0.2.1"
      ],
      "command": "uvx"
    }
  }
}

可用工具 (5 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

tavily_search 14 个参数 需填 1 项

Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.

必填参数:query

tavily_extract 6 个参数 需填 1 项

Extract content from URLs. Returns raw page content in markdown or text format.

必填参数:urls

tavily_crawl 11 个参数 需填 1 项

Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.

必填参数:url

tavily_map 8 个参数 需填 1 项

Map a website's structure. Returns a list of URLs found starting from the base URL.

必填参数:url

tavily_research 2 个参数 需填 1 项

Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.

必填参数:input

服务介绍

A-MEM: Self-evolving memory for coding agents

mcp-name: io.github.DiaaAj/a-mem-mcp

A-MEM is a self-evolving memory system for coding agents. Unlike simple vector stores, A-MEM automatically organizes knowledge into a Zettelkasten-style graph with dynamic relationships. Memories don't just get stored—they evolve and connect over time.

Currently tested with Claude Code. Support for other MCP-compatible agents is planned.

# Quick Start

# # Install

pip install a-mem

# # Add to 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-...

That's it! A session-start hook installs automatically to remind Claude to use memory.

Note: Memory is stored per-project in ./chroma_db. For global memory across all projects, see [Memory Scope](# memory-scope).

# # Uninstall

a-mem-uninstall-hook   #  Remove hooks first
pip uninstall a-mem

# How It Works

t=0              t=1                t=2

                 ◉───◉             ◉───◉
 ◉               │                 ╱ │ ╲
                 ◉                ◉──┼──◉
                                     │
                                     ◉

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━▶
            self-evolving memory
  1. Add a memory → A-MEM extracts keywords, context, and tags via LLM
  2. Find neighbors → Searches for semantically similar existing memories
  3. Evolve → Decides whether to link, strengthen connections, or update related memories
  4. Store → Persists to ChromaDB with full metadata and relationships

The result: a knowledge graph that grows smarter over time, not just bigger.

# Features

Self-Evolving Memory
Memories aren't static. When you add new knowledge, A-MEM automatically finds related memories and strengthens connections, updates context, and evolves tags.

Semantic + Structural Search
Combines vector similarity with graph traversal. Find memories by meaning, then explore their connections.

Peek and Drill
Start with breadth-first search to capture relevant memories via lightweight metadata (id, context, keywords, tags). Then drill depth-first into specific memories with read_memory_note for full content. This minimizes token usage while maximizing recall.

# MCP Tools

A-MEM exposes 8 tools to your coding agent:

| Tool | Description |
|- -- -- -|- -- -- -- -- -- --|
| add_memory_note | Store new knowledge (async, returns immediately) |
| search_memories | Semantic search across all memories |
| search_memories_agentic | Search + follow graph connections |
| search_memories_by_time | Search within a time range |
| read_memory_note | Get full details (supports bulk reads) |
| update_memory_note | Modify existing memory |
| delete_memory_note | Remove a memory |
| check_task_status | Check async task completion |

# # Example Usage

#  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)

# Advanced Configuration

# # JSON Config

For more control, edit ~/.claude/settings.json (global) or .claude/settings.local.json (project):

{
  "mcpServers": {
    "a-mem": {
      "command": "a-mem-mcp",
      "env": {
        "LLM_BACKEND": "openai",
        "LLM_MODEL": "gpt-4o-mini",
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

# # Environment Variables

| Variable | Description | Default |
|- -- -- -- -- -|- -- -- -- -- -- --|- -- -- -- --|
| LLM_BACKEND | openai, ollama, sglang, openrouter | openai |
| LLM_MODEL | Model name | gpt-4o-mini |
| OPENAI_API_KEY | OpenAI API key | — |
| EMBEDDING_MODEL | Sentence transformer model | all-MiniLM-L6-v2 |
| CHROMA_DB_PATH | Storage directory | ./chroma_db |
| EVO_THRESHOLD | Evolution trigger threshold | 100 |

# # Memory Scope

  • Project-specific (default): Each project gets isolated memory in ./chroma_db
  • Global: Share across projects by setting CHROMA_DB_PATH=~/.local/share/a-mem/chroma_db

# # Alternative Backends

Ollama (local, free)

claude mcp add a-mem -s user - - a-mem-mcp \
  -e LLM_BACKEND=ollama \
  -e LLM_MODEL=llama2

OpenRouter (100+ models)

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-...

# # Hook Management (Claude Code)

The session-start hook reminds Claude to use memory tools. It installs automatically with Claude Code, but you can manage it manually:

a-mem-install-hook     #  Install/reinstall hook
a-mem-uninstall-hook   #  Remove hook completely

# Python API

Use A-MEM directly in Python (works with any agent or application):

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)

# Research

A-MEM implements concepts from the paper:

A-MEM: Agentic Memory for LLM Agents
Xu et al., 2025
arXiv:2502.12110

相关 MCP 服务