{"id":40639789,"url":"https://github.com/verygoodplugins/automem","last_synced_at":"2026-01-21T08:01:59.285Z","repository":{"id":317465947,"uuid":"1057758059","full_name":"verygoodplugins/automem","owner":"verygoodplugins","description":"AutoMem is a graph-vector memory service that gives AI assistants durable, relational memory:","archived":false,"fork":false,"pushed_at":"2026-01-19T17:25:41.000Z","size":1924,"stargazers_count":423,"open_issues_count":8,"forks_count":49,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-01-19T21:55:06.112Z","etag":null,"topics":["ai","ai-memory","anthropic","falkordb","graph-database","llm","memory","qdrant","vector-database"],"latest_commit_sha":null,"homepage":"https://automem.ai/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/verygoodplugins.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-09-16T07:04:22.000Z","updated_at":"2026-01-19T21:45:12.000Z","dependencies_parsed_at":"2025-12-12T04:10:22.762Z","dependency_job_id":null,"html_url":"https://github.com/verygoodplugins/automem","commit_stats":null,"previous_names":["verygoodplugins/automem"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/verygoodplugins/automem","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verygoodplugins%2Fautomem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verygoodplugins%2Fautomem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verygoodplugins%2Fautomem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verygoodplugins%2Fautomem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/verygoodplugins","download_url":"https://codeload.github.com/verygoodplugins/automem/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verygoodplugins%2Fautomem/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28629922,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-memory","anthropic","falkordb","graph-database","llm","memory","qdrant","vector-database"],"created_at":"2026-01-21T08:01:54.476Z","updated_at":"2026-01-21T08:01:59.276Z","avatar_url":"https://github.com/verygoodplugins.png","language":"Python","funding_links":[],"categories":["*Ops for AI"],"sub_categories":["Model Serving \u0026 Inference"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://automem.ai/og-image.png\" alt=\"AutoMem - Recall is Power\" width=\"600\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e$AUTOMEM\u003c/strong\u003e:\n  \u003ca href=\"https://bags.fm/CV485ySXfgFiwLtbh815JRukH4r9ChLhddqsAaZKBAGS\"\u003eBags.fm\u003c/a\u003e •\n  \u003ca href=\"https://jup.ag/tokens/CV485ySXfgFiwLtbh815JRukH4r9ChLhddqsAaZKBAGS\"\u003eJupiter\u003c/a\u003e •\n  \u003ca href=\"https://photon-sol.tinyastro.io/en/lp/CV485ySXfgFiwLtbh815JRukH4r9ChLhddqsAaZKBAGS\"\u003ePhoton\u003c/a\u003e •\n  \u003ca href=\"https://dexscreener.com/solana/CV485ySXfgFiwLtbh815JRukH4r9ChLhddqsAaZKBAGS\"\u003eDEXScreener\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ccode\u003eCA: CV485ySXfgFiwLtbh815JRukH4r9ChLhddqsAaZKBAGS\u003c/code\u003e (Solana)\u003c/p\u003e\n\n# **AI Memory That Actually Learns**\n\nAutoMem is a **production-grade long-term memory system** for AI assistants, achieving **90.53% accuracy** on the [LoCoMo benchmark](docs/TESTING.md#locomo-benchmark) (ACL 2024)—outperforming CORE (88.24%).\n\n**Deploy in 60 seconds:**\n\n```bash\nrailway up\n```\n\n---\n\n## Why AutoMem Exists\n\nYour AI forgets everything between sessions. RAG dumps similar documents. Vector databases match keywords but miss meaning. **None of them learn.**\n\nAutoMem gives AI assistants the ability to **remember, connect, and evolve** their understanding over time—just like human long-term memory.\n\n## How AutoMem Works\n\nAutoMem combines two complementary storage systems:\n\n- **FalkorDB (Graph)** - Stores memories as nodes with typed relationships between them\n- **Qdrant (Vectors)** - Enables semantic similarity search via embeddings\n\nThis dual architecture lets you ask questions like \"why did we choose PostgreSQL?\" and get not just the memory, but the reasoning, preferences, and related decisions that informed it.\n\n### Core Capabilities\n\n- 🧠 **Store** memories with metadata, importance scores, and temporal context\n- 🔍 **Recall** via hybrid search combining semantic, keyword, graph, and temporal signals\n- 🔗 **Connect** memories with 11 typed relationships (RELATES_TO, LEADS_TO, CONTRADICTS, etc.)\n- 🎯 **Learn** through automatic entity extraction, pattern detection, and consolidation\n- ⚡ **Perform** with sub-100ms recall across thousands of memories\n\n### Research Foundation\n\nAutoMem implements techniques from peer-reviewed memory research:\n\n- **HippoRAG 2** (Ohio State, 2025): Graph-vector hybrid for associative memory\n- **A-MEM** (2025): Dynamic memory organization with Zettelkasten-inspired clustering\n- **MELODI** (DeepMind, 2024): Compression via gist representations\n- **ReadAgent** (DeepMind, 2024): Context extension through episodic memory\n\n## Architecture\n\n```mermaid\nflowchart TB\n    subgraph service [AutoMem Service Flask]\n        API[REST API\u003cbr/\u003eMemory Lifecycle]\n        Enrichment[Background Enrichment\u003cbr/\u003ePipeline]\n        Consolidation[Consolidation\u003cbr/\u003eEngine]\n        Backups[Automated Backups\u003cbr/\u003eOptional]\n    end\n\n    subgraph storage [Dual Storage Layer]\n        FalkorDB[(FalkorDB\u003cbr/\u003eGraph Database)]\n        Qdrant[(Qdrant\u003cbr/\u003eVector Database)]\n    end\n\n    Client[AI Client] --\u003e|Store/Recall/Associate| API\n    API --\u003e FalkorDB\n    API --\u003e Qdrant\n    Enrichment --\u003e|11 edge types\u003cbr/\u003ePattern nodes| FalkorDB\n    Enrichment --\u003e|Semantic search\u003cbr/\u003e3072-d vectors| Qdrant\n    Consolidation --\u003e FalkorDB\n    Consolidation --\u003e Qdrant\n    Backups -.-\u003e|Optional| FalkorDB\n    Backups -.-\u003e|Optional| Qdrant\n```\n\n**FalkorDB** (graph) = canonical record, relationships, consolidation\n**Qdrant** (vectors) = semantic recall, similarity search\n**Dual storage** = Built-in redundancy and disaster recovery\n\n## Why Graph + Vector?\n\n```mermaid\nflowchart LR\n    subgraph trad [Traditional RAG Vector Only]\n        direction TB\n        Query1[Query: What database?]\n        VectorDB1[(Vector DB)]\n        Result1[✅ PostgreSQL memory\u003cbr/\u003e❌ No reasoning\u003cbr/\u003e❌ No connections]\n\n        Query1 --\u003e|Similarity search| VectorDB1\n        VectorDB1 --\u003e Result1\n    end\n\n    subgraph automem [AutoMem Graph + Vector]\n        direction TB\n        Query2[Query: What database?]\n\n        subgraph hybrid [Hybrid Search]\n            VectorDB2[(Qdrant\u003cbr/\u003eVectors)]\n            GraphDB2[(FalkorDB\u003cbr/\u003eGraph)]\n        end\n\n        Result2[✅ PostgreSQL memory\u003cbr/\u003e✅ PREFERS_OVER MongoDB\u003cbr/\u003e✅ RELATES_TO team expertise\u003cbr/\u003e✅ DERIVED_FROM boring tech]\n\n        Query2 --\u003e VectorDB2\n        Query2 --\u003e GraphDB2\n        VectorDB2 --\u003e Result2\n        GraphDB2 --\u003e Result2\n    end\n```\n\n### Traditional RAG (Vector Only)\n\n```text\nMemory: \"Chose PostgreSQL for reliability\"\nQuery: \"What database should I use?\"\nResult: ✅ Finds the memory\n         ❌ Doesn't know WHY you chose it\n         ❌ Can't connect to related decisions\n```\n\n### AutoMem (Graph + Vector)\n\n```text\nMemory: \"Chose PostgreSQL for reliability\"\nGraph: PREFERS_OVER MongoDB\n       RELATES_TO \"team expertise\" memory\n       DERIVED_FROM \"boring technology\" principle\n\nQuery: \"What database should I use?\"\nResult: ✅ Finds the memory\n        ✅ Knows your decision factors\n        ✅ Shows related preferences\n        ✅ Explains your reasoning pattern\n```\n\n## How It Works in Practice\n\n### Multi-Hop Bridge Discovery\n\nWhen you ask a question, AutoMem doesn't just find relevant memories—it finds the **connections between them**. This is called bridge discovery: following graph relationships to surface memories that link your initial results together.\n\n```mermaid\ngraph TB\n    Query[User Query:\u003cbr/\u003eWhy boring tech for Kafka?]\n\n    Seed1[Seed Memory 1:\u003cbr/\u003ePostgreSQL migration\u003cbr/\u003efor operational simplicity]\n\n    Seed2[Seed Memory 2:\u003cbr/\u003eKafka vs RabbitMQ\u003cbr/\u003eevaluation]\n\n    Bridge[Bridge Memory:\u003cbr/\u003eTeam prefers boring technology\u003cbr/\u003eproven, debuggable systems]\n\n    Result[Result:\u003cbr/\u003eAI understands architectural\u003cbr/\u003ephilosophy, not just isolated choices]\n\n    Query --\u003e|Initial recall| Seed1\n    Query --\u003e|Initial recall| Seed2\n    Seed1 -.-\u003e|DERIVED_FROM| Bridge\n    Seed2 -.-\u003e|DERIVED_FROM| Bridge\n    Bridge --\u003e Result\n    Seed1 --\u003e Result\n    Seed2 --\u003e Result\n```\n\n**Traditional RAG:** Returns \"Kafka\" memories (misses the connection)\n\n**AutoMem bridge discovery:**\n\n- Seed 1: \"Migrated to PostgreSQL for operational simplicity\"\n- Seed 2: \"Evaluating Kafka vs RabbitMQ for message queue\"\n- Bridge: \"Team prefers boring technology—proven, debuggable systems\"\n\nAutoMem finds the bridge that connects both decisions → Result: AI understands your architectural philosophy, not just isolated choices\n\n**How to enable:**\n\n- Set `expand_relations=true` in recall requests (enabled by default)\n- Control depth with `relation_limit` and `expansion_limit` parameters\n- Results are ranked by relation strength, temporal relevance, and importance\n\n### Knowledge Graphs That Evolve\n\n```text\n# After storing: \"Migrated to PostgreSQL for operational simplicity\"\n\nAutoMem automatically:\n├── Extracts entities (PostgreSQL, operational simplicity)\n├── Auto-tags (entity:tool:postgresql, entity:concept:ops-simplicity)\n├── Detects pattern (\"prefers boring technology\")\n├── Links temporally (PRECEDED_BY migration planning)\n└── Connects semantically (SIMILAR_TO \"Redis deployment\")\n\n# Next query: \"Should we use Kafka?\"\nAI recalls:\n- PostgreSQL decision\n- \"Boring tech\" pattern (reinforced across memories)\n- Operational simplicity preference\n→ Suggests: \"Based on your pattern, consider RabbitMQ instead\"\n```\n\n### 9-Component Hybrid Scoring\n\n```mermaid\nflowchart LR\n    Query[User Query:\u003cbr/\u003edatabase migration\u003cbr/\u003etags=decision\u003cbr/\u003etime=last month]\n\n    subgraph scoring [Hybrid Scoring Components]\n        direction TB\n        V[Vector 25%\u003cbr/\u003eSemantic similarity]\n        K[Keyword 15%\u003cbr/\u003eTF-IDF matching]\n        R[Relation 25%\u003cbr/\u003eGraph strength]\n        C[Content 25%\u003cbr/\u003eToken overlap]\n        T[Temporal 15%\u003cbr/\u003eTime alignment]\n        Tag[Tag 10%\u003cbr/\u003eTag matching]\n        I[Importance 5%\u003cbr/\u003eUser priority]\n        Conf[Confidence 5%\u003cbr/\u003eMemory confidence]\n        Rec[Recency 10%\u003cbr/\u003eFreshness boost]\n    end\n\n    FinalScore[Final Score:\u003cbr/\u003eRanked by meaning,\u003cbr/\u003enot just similarity]\n\n    Query --\u003e V\n    Query --\u003e K\n    Query --\u003e R\n    Query --\u003e C\n    Query --\u003e T\n    Query --\u003e Tag\n    Query --\u003e I\n    Query --\u003e Conf\n    Query --\u003e Rec\n\n    V --\u003e FinalScore\n    K --\u003e FinalScore\n    R --\u003e FinalScore\n    C --\u003e FinalScore\n    T --\u003e FinalScore\n    Tag --\u003e FinalScore\n    I --\u003e FinalScore\n    Conf --\u003e FinalScore\n    Rec --\u003e FinalScore\n```\n\n```bash\nGET /recall?query=database%20migration\u0026tags=decision\u0026time_query=last%20month\n\n# AutoMem combines nine signals:\nscore = vector×0.25       # Semantic similarity\n      + keyword×0.15      # TF-IDF text matching\n      + relation×0.25     # Graph relationship strength\n      + content×0.25      # Direct token overlap\n      + temporal×0.15     # Time alignment with query\n      + tag×0.10          # Tag matching\n      + importance×0.05   # User-assigned priority\n      + confidence×0.05   # Memory confidence\n      + recency×0.10      # Freshness boost\n\n# Result: Memories ranked by meaning, not just similarity\n```\n\n## Features\n\n### Core Memory Operations\n\n- **Store** - Rich memories with metadata, importance, timestamps, embeddings\n- **Recall** - Hybrid search (vector + keyword + tags + time windows)\n- **Update** - Modify memories, auto-regenerate embeddings\n- **Delete** - Remove from both graph and vector stores\n- **Associate** - Create typed relationships between memories\n- **Filter** - Tag-based queries with prefix/exact matching\n\n## Memory Consolidation\n\nAutoMem uses [neuroscience-inspired](https://pmc.ncbi.nlm.nih.gov/articles/PMC4648295/) consolidation cycles—like human sleep—to keep memories relevant:\n\n| Cycle        | Frequency | Purpose                                                              |\n| ------------ | --------- | -------------------------------------------------------------------- |\n| **Decay**    | Daily     | Exponential relevance scoring (age, access, connections, importance) |\n| **Creative** | Weekly    | REM-like processing that discovers non-obvious connections           |\n| **Cluster**  | Monthly   | Groups similar memories, generates meta-patterns                     |\n| **Forget**   | Disabled  | Archives low-relevance (\u003c0.2), deletes very old (\u003c0.05) when enabled |\n\n**How it works:**\n\n- Wrong rabbit holes fade naturally (~30-45 days without access)\n- Important memories with strong connections stay indefinitely\n- Memories archive before deletion (0.05-0.2 relevance range)\n- The system learns what matters to you, not what you explicitly tag\n\n### Background Intelligence\n\nEvery memory gets automatically enhanced in the background (doesn't block your API calls):\n\n**Enrichment Pipeline** (runs immediately after storage):\n\n- **Entity extraction** - Identifies people, projects, tools, concepts (spaCy NLP)\n- **Auto-tagging** - Generates `entity:\u003ctype\u003e:\u003cslug\u003e` for structured queries\n- **Summaries** - Lightweight gist representations for quick scanning\n- **Temporal links** - Connects to recent memories with `PRECEDED_BY` relationships\n- **Semantic neighbors** - Finds similar memories via cosine similarity (`SIMILAR_TO`)\n- **Pattern detection** - Reinforces emerging themes across your memory graph\n\n**Consolidation Engine** (runs on configurable schedules):\n\n- See [Memory Consolidation](#memory-consolidation) section above\n\n### 11 Relationship Types\n\nBuild rich knowledge graphs:\n\n| Type              | Use Case               | Example                       |\n| ----------------- | ---------------------- | ----------------------------- |\n| `RELATES_TO`      | General connection     | Bug report → Related issue    |\n| `LEADS_TO`        | Causal relationship    | Problem → Solution            |\n| `OCCURRED_BEFORE` | Temporal sequence      | Planning → Execution          |\n| `PREFERS_OVER`    | User preferences       | PostgreSQL → MongoDB          |\n| `EXEMPLIFIES`     | Pattern examples       | Code review → Best practice   |\n| `CONTRADICTS`     | Conflicting info       | Old approach → New approach   |\n| `REINFORCES`      | Supporting evidence    | Decision → Validation         |\n| `INVALIDATED_BY`  | Outdated info          | Legacy docs → Current docs    |\n| `EVOLVED_INTO`    | Knowledge evolution    | Initial design → Final design |\n| `DERIVED_FROM`    | Source tracking        | Implementation → Spec         |\n| `PART_OF`         | Hierarchical structure | Feature → Epic                |\n\n## Quick Start\n\n### Option 1: Railway (Recommended)\n\nDeploy AutoMem to Railway in 60 seconds:\n\n[![Deploy on Railway](https://railway.app/button.svg)](https://railway.com/deploy/automem-ai-memory-service)\n\nThis deploys 3 services automatically:\n\n- **memory-service** — Core AutoMem API\n- **falkordb** — Graph database with persistent storage\n- **mcp-sse-server** — MCP bridge for ChatGPT, Claude.ai, ElevenLabs\n\n👉 **[Deployment Guide](INSTALLATION.md#deployment)** for detailed Railway setup\n\n### Option 2: Docker Compose (Local)\n\nRun everything locally:\n\n```bash\n# Clone and start services\ngit clone https://github.com/verygoodplugins/automem.git\ncd automem\nmake dev\n\n# API: http://localhost:8001\n# FalkorDB: localhost:6379\n# Qdrant: localhost:6333\n```\n\n### Option 3: Development Mode\n\nRun API without Docker:\n\n```bash\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements-dev.txt\nPORT=8001 python app.py\n```\n\n## API Examples\n\n### Store a Memory\n\n```bash\ncurl -X POST http://localhost:8001/memory \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"content\": \"Chose PostgreSQL over MongoDB for ACID compliance\",\n    \"type\": \"Decision\",\n    \"confidence\": 0.95,\n    \"tags\": [\"database\", \"architecture\"],\n    \"importance\": 0.9,\n    \"metadata\": {\n      \"source\": \"architecture-meeting\",\n      \"alternatives\": [\"MongoDB\", \"MySQL\"],\n      \"deciding_factors\": [\"ACID\", \"team_expertise\"]\n    }\n  }'\n```\n\n**Available memory types**: `Decision`, `Pattern`, `Preference`, `Style`, `Habit`, `Insight`, `Context` (default)\n\n- **Explicit `type` recommended** when you know the classification\n- **Omit `type`** to let enrichment auto-classify from content\n\n### Recall Memories\n\n```bash\n# Hybrid search with tags and time\nGET /recall?query=database\u0026tags=decision\u0026time_query=last%20month\n\n# Semantic search with vector\nGET /recall?embedding=0.12,0.56,...\u0026limit=10\n\n# Tag prefix matching (finds slack:U123:*, slack:channel-ops, etc.)\nGET /recall?tags=slack\u0026tag_match=prefix\n\n# Graph expansion with filtering (reduce noise in related memories)\nGET /recall?query=auth%20architecture\u0026expand_relations=true\u0026expand_min_importance=0.5\u0026expand_min_strength=0.3\n\n# Multi-hop entity expansion (e.g., \"What is Sarah's sister's job?\")\nGET /recall?query=What%20is%20Sarah%27s%20sister%27s%20job\u0026expand_entities=true\n```\n\n### Create Relationship\n\n```bash\ncurl -X POST http://localhost:8001/associate \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"memory1_id\": \"uuid-postgres-decision\",\n    \"memory2_id\": \"uuid-mongodb-evaluation\",\n    \"type\": \"PREFERS_OVER\",\n    \"strength\": 0.9\n  }'\n```\n\n## Use With AI Platforms\n\nAutoMem works with any AI platform via:\n\n### MCP (Model Context Protocol)\n\n**Local MCP Bridge** (Claude Desktop, Cursor, Claude Code):\n\n```bash\n# Install official MCP bridge\nnpm install -g @verygoodplugins/mcp-automem\n\n# Configure for local AI tools\nnpx @verygoodplugins/mcp-automem setup\n```\n\n**Remote MCP** (Cloud AI Platforms):\n\nConnect AutoMem to cloud AI platforms via HTTPS. Works with:\n\n- **ChatGPT** (requires developer mode)\n- **Claude.ai** web interface\n- **Claude mobile app**\n- **ElevenLabs Agents**\n\nSee [Remote MCP documentation](docs/MCP_SSE.md) for setup instructions.\n\n👉 **Resources**:\n\n- NPM bridge (local): [`@verygoodplugins/mcp-automem`](https://www.npmjs.com/package/@verygoodplugins/mcp-automem)\n- Remote MCP setup: [docs/MCP_SSE.md](docs/MCP_SSE.md)\n\n### Direct API\n\nAny language, any framework:\n\n```python\nimport requests\n\nresponse = requests.post(\n    \"https://your-automem.railway.app/memory\",\n    headers={\"Authorization\": f\"Bearer {token}\"},\n    json={\"content\": \"Memory content\", \"importance\": 0.8}\n)\n```\n\n## Comparison with Alternatives\n\n### vs. Traditional RAG Systems\n\nTraditional RAG retrieves similar documents. AutoMem understands relationships:\n\n**RAG**: \"Here are 5 documents about PostgreSQL\"\n**AutoMem**: \"You chose PostgreSQL over MongoDB because you prefer boring technology for operational simplicity. This pattern also influenced your Redis and RabbitMQ decisions.\"\n\n- ✅ **Typed relationships** - Not just \"similar\", but \"causes\", \"contradicts\", \"evolved from\"\n- ✅ **Temporal awareness** - Knows what preceded, what invalidated, what emerged\n- ✅ **Pattern learning** - Discovers your preferences and decision-making style\n- ✅ **Consolidation** - Memories strengthen or fade based on use—like human memory\n\n### vs. Vector Databases (Pinecone, Weaviate, Qdrant)\n\nVector databases match embeddings. AutoMem builds knowledge graphs:\n\n- ✅ **Multi-hop reasoning** - Bridge discovery connects memories across conversation threads\n- ✅ **11 relationship types** - Structured semantics vs. cosine similarity alone\n- ✅ **Background intelligence** - Auto-enrichment, pattern detection, decay cycles\n- ✅ **9-component scoring** - Combines semantic, lexical, graph, temporal, and importance signals\n\n### vs. Building Your Own\n\nAutoMem saves you months of iteration:\n\n- ✅ **Benchmark-proven** - 90.53% on LoCoMo (ACL 2024)\n- ✅ **Research-validated** - Implements HippoRAG 2, A-MEM, MELODI, ReadAgent principles\n- ✅ **Production-ready** - Auth, admin tools, health monitoring, automated backups\n- ✅ **Battle-tested** - Enrichment pipeline, consolidation engine, retry logic, dual storage\n- ✅ **Open source** - MIT license, deploy anywhere, no vendor lock-in\n\n## Benchmark Results\n\n### LoCoMo Benchmark (ACL 2024)\n\n**90.53% overall accuracy** across 1,986 questions:\n\n| Category                   | AutoMem    | Notes                                   |\n| -------------------------- | ---------- | --------------------------------------- |\n| **Complex Reasoning**      | **100%**   | Perfect score on multi-step reasoning   |\n| **Open Domain**            | **95.84%** | General knowledge recall                |\n| **Temporal Understanding** | **85.05%** | Time-aware queries                      |\n| **Single-hop Recall**      | **79.79%** | Basic fact retrieval                    |\n| **Multi-hop Reasoning**    | **50.00%** | Connecting disparate memories (+12.5pp) |\n\n**Comparison with other systems:**\n\n| System | Score |\n|--------|-------|\n| AutoMem | 90.53% |\n| CORE | 88.24% |\n\nRun the benchmark yourself: `make test-locomo`\n\n### Production Characteristics\n\n- ⚡ **Sub-100ms recall** - Even with 100k+ memories\n- 🔄 **Concurrent writes** - Background enrichment doesn't block API\n- 🛡️ **Graceful degradation** - Works without Qdrant (graph-only mode)\n- ♻️ **Automatic retries** - Failed enrichments queue for reprocessing\n- 💚 **Health monitoring** - `/health` and `/enrichment/status` endpoints\n- 💾 **Dual storage redundancy** - Data persists in both FalkorDB and Qdrant\n- 📦 **Automated backups** - Optional backup service for disaster recovery\n\n## Configuration\n\n### Required\n\n- `AUTOMEM_API_TOKEN` - Authentication for all endpoints (except `/health`)\n- `FALKORDB_HOST` / `FALKORDB_PORT` - Graph database connection\n\n### Optional\n\n- `QDRANT_URL` / `QDRANT_API_KEY` - Enable semantic search ([setup guide](docs/QDRANT_SETUP.md))\n- `OPENAI_API_KEY` - Real embeddings (otherwise deterministic placeholders)\n- `ADMIN_API_TOKEN` - Required for `/admin/reembed` and enrichment controls\n- Consolidation tuning: `CONSOLIDATION_*_INTERVAL_SECONDS`\n- Enrichment tuning: `ENRICHMENT_*` (similarity threshold, retry limits, etc.)\n\n👉 **[Full Configuration Guide](INSTALLATION.md#configuration)**\n\n## Documentation\n\n- 📦 **[Installation Guide](INSTALLATION.md)** - Railway, Docker, development setup\n- 🔍 **[Qdrant Setup Guide](docs/QDRANT_SETUP.md)** - Step-by-step vector database configuration\n- 🌉 **[Remote MCP](docs/MCP_SSE.md)** - Connect cloud AI platforms (ChatGPT, Claude.ai, ElevenLabs) to AutoMem\n- 💾 **[Monitoring \u0026 Backups](docs/MONITORING_AND_BACKUPS.md)** - Health monitoring and automated backups\n- 🔧 **[API Reference](docs/API.md)** - All endpoints with examples\n- 🧪 **[Testing Guide](docs/TESTING.md)** - Unit, integration, live server, and LoCoMo benchmark tests\n- 📊 **[LoCoMo Benchmark](docs/TESTING.md#locomo-benchmark)** - Validate against ACL 2024 long-term memory benchmark\n- 🔄 **[Migration Guide](INSTALLATION.md#migration)** - Move from MCP SQLite\n- 🌐 **[automem.ai](https://automem.ai)** - Official website and guides\n\n## Community \u0026 Support\n\n- 🌐 **[automem.ai](https://automem.ai)** - Official website\n- 💬 **[Discord](https://automem.ai/discord)** - Community chat\n- 🐦 **[X Community](https://x.com/i/communities/2013114118912225326)** - Follow updates\n- 📺 **[YouTube](https://www.youtube.com/@AutoJackBot)** - Tutorials and demos\n- 🐙 **[GitHub](https://github.com/verygoodplugins/automem)** - Source code\n- 📦 **[NPM MCP Bridge](https://www.npmjs.com/package/@verygoodplugins/mcp-automem)** - MCP integration\n- 🐛 **[Issues](https://github.com/verygoodplugins/automem/issues)** - Bug reports and feature requests\n\n## Research Background\n\nAutoMem's architecture is based on peer-reviewed research in memory systems and graph theory:\n\n### [HippoRAG 2](https://arxiv.org/abs/2502.14802) (Ohio State, June 2025)\n\n**Finding**: Graph-vector hybrid achieves 7% better associative memory than pure vector RAG, approaching human long-term memory performance.\n\n**AutoMem implementation**: Dual FalkorDB (graph) + Qdrant (vector) architecture with 11 typed relationship edges.\n\n### [A-MEM](https://arxiv.org/abs/2502.12110) (July 2025)\n\n**Finding**: Dynamic memory organization with Zettelkasten principles enables emergent knowledge structures.\n\n**AutoMem implementation**: Pattern detection, clustering cycles, and automatic entity linking that builds knowledge graphs from conversation.\n\n### [MELODI](https://arxiv.org/html/2410.03156v1) (DeepMind, 2024)\n\n**Finding**: 8x memory compression without quality loss through gist representations and selective preservation.\n\n**AutoMem implementation**: Summary generation, importance scoring, and consolidation cycles that strengthen relevant memories while fading noise.\n\n### [ReadAgent](https://arxiv.org/abs/2402.09727) (DeepMind, 2024)\n\n**Finding**: 20x context extension via episodic memory and temporal organization.\n\n**AutoMem implementation**: Temporal relationship types (PRECEDED_BY, OCCURRED_BEFORE) and time-aware scoring that preserves conversation flow.\n\n## Contributing\n\nWe welcome contributions! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Add tests for your changes\n4. Submit a pull request\n\nSee [TESTING.md](TESTING.md) for running the test suite.\n\n## License\n\nMIT - Because AI memory should be free.\n\n---\n\n## Get Started\n\n```bash\nrailway up\n```\n\nOpen source. Research-validated. Production-ready.\n\n---\n\n_MIT License. Deploy anywhere. No vendor lock-in._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverygoodplugins%2Fautomem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fverygoodplugins%2Fautomem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverygoodplugins%2Fautomem/lists"}