automem

verygoodpluginsMIT活跃维护

给 AI 助手做长期记忆的存储层,用图数据库加向量库记住跨会话的决策、关系和上下文,解决多轮对话后遗忘的问题。

Long-term memory for AI assistants. Graph + vector store that recalls decisions, relationships, and context across sessions.

v0.16.3发布于 2026-11-08 00:49 UTC827star112fork同步于 2026-11-10 11:55 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/verygoodplugins/automem.git
cd automem
make dev
硬件要求按 README 说明

README 未说明显存或 GPU 要求;本地用 Docker Compose 起 API、FalkorDB、Qdrant 与图浏览界面,Python 方式需 3.10+(推荐 3.12)。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

给 AI 助手加跨会话长期记忆,用图加向量混合检索找回决策与上下文

给 AI 助手做长期记忆的存储层,用图数据库加向量库记住跨会话的决策、关系和上下文,解决多轮对话后遗忘的问题。

核心能力

  • 用 FalkorDB 图存记忆节点与 11 种类型化关系
  • 用 Qdrant 存每条记忆的向量做语义召回
  • 混合打分融合语义、图遍历、时间、标签与重要性
  • 多跳桥接发现,从种子记忆追到共同原则
  • 仿生记忆巩固:每日衰减、每周创意、每月聚类

容易踩的坑

需同时跑 FalkorDB 和 Qdrant 两个数据库,FalkorDB 挂掉时 API 直接返回 503;嵌入需 Voyage、OpenAI 或本地 provider,要自行准备;客户端接入需另装 MCP 桥 npx @verygoodplugins/mcp-automem setup。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.16.3
  1. v0.16.3最新正式版2026-11-08 · 2026-11-08 00:49 UTC

    0.16.3 (2026-11-08)

    Bug Fixes

    • docker: promote localhost database bindings (#279) (2d4dedb)
  2. v0.16.22026-08-28 · 2026-08-28 18:01 UTC
    查看更新说明

    0.16.2 (2026-08-28)

    Bug Fixes

    • backup: page FalkorDB export by node id instead of deep SKIP (#221) (009d58e)
    • config: preserve Ollama defaults and migration checks (0bc0096)
    • docs: complete embedding migration runbooks (3468443)
    • docs: correct re-embedding migration setup (a8be394)
    • enrichment: circuit-break exhausted quota calls (ea148e5)
    • enrichment: circuit-break exhausted quota calls (#229) (ad3ed27)
    • enrichment: preserve quota circuit during in-flight calls (29f359d)
    • mcp-sse: emit the stored date in compact recall output (#224) (42ba8b6)
    • mcp: align the parity harness with its own allowlist (9ac5b4e)
    • mcp: close false-failure and coverage gaps in the parity harness (4cf9ef1)
    • mcp: close partial connections when parity setup fails (89346e9)
    • mcp: isolate parity fixtures per scenario and drop the false alarm (fa458b0)
    • qdrant: index the type payload field so recall filters stop 400ing (c131f02)
    • qdrant: index the type payload field so recall filters stop 400ing (#223) (10bcac7)
    • recovery: honor configured graph and cloud migrations (4dd1325)
    • stream: emit live memory operations on GET /stream (#227) (7a92ebd)

    Performance Improvements

    • qdrant: store collection data on disk (#231) (07d8704)
    • qdrant: store new collection data on disk (c97b5b1)
    • qdrant: support disk-backed HNSW restores (b04b9e1)

    Documentation

    • add Qdrant on-disk implementation plan (56da2b7)
    • add Qdrant on-disk storage design (e177b60)
    • align provider and maintenance guidance ([93afcff](https:/
  3. v0.16.12026-07-07 · 2026-07-07 22:49 UTC
    查看更新说明

    0.16.1 (2026-07-07)

    Bug Fixes

    • api: reject admin placeholder fallback (69d8205)
    • api: reject placeholder provider repairs (d2ce087)
    • api: use provider embeddings for admin repair (b636b50)
    • api: use provider embeddings for admin repair (#211) (3ae04bf), closes #208
    • memory: require confirmed graph writes (878e638)
    • memory: require confirmed graph writes (#216) (57264a9)
    • recall: address Codex artifact review feedback (860e0e7)
    • recall: address Codex overfetch follow-ups (d18d5d7)
    • recall: over-fetch vector candidates and exclude artifact types (ddc9ecc)
    • recall: over-fetch vector candidates and exclude artifact types (#205) (0720da2)
    • recall: preserve metadata sidecar budget (b9d89c2)
    • recall: preserve metadata sidecar upgrades (ed3c188)
    • recall: preserve vector fetch limit floor (833cbbb)
    • recall: widen context tag candidate fetch (a29e9fb)
    • recall: widen context tag candidate fetch (#215) (01e1082)
    • sync: ignore metapattern artifacts in drift checks (cd6f07d)
    • sync: ignore metapattern artifacts in drift checks (#214) (7636021), closes #209

    Documentation

  4. v0.16.02026-06-26 · 2026-06-26 15:46 UTC
    查看更新说明

    0.16.0 (2026-06-26)

    Features

    • api: add admin backup endpoint (#162) (8b1f264)
    • api: support bulk memory associations (1221e36)
    • api: support bulk memory associations (#198) (28eb916)
    • benchmarks: LongMemEval failure-mode diagnosis harness + judge quota preflight (#183) (f99bece)
    • consolidation: expose cluster threshold and min size as env vars (#163) (7e731f3)
    • enrichment: expose classification fallback-rate metrics in /enrichment/status (#188) (0b522a9)
    • entity: harden identity cleanup and repair tooling (#176) (827dfbc)
    • eval: recall-quality optimization harness — lab foundation + design (#197) (431433e)
    • graph: support unbounded visualizer snapshots (#141) (c730128)
    • lab: add aged labelled distractor injection (cc5d546)
    • lab: add config_complexity simplicity metric (dfb10d9)
    • lab: add distractor_rate_at_k precision guardrail metric (872eab2)
    • lab: add lab_corpus with parameterized recall (5e1e071)
    • lab: add pick_winner scorecard decision rule (3187eac)
    • lab: add real consolidation pass helper (48a7d4a)
    • lab: isolate production clone restores (#171) (aef90c0)
    • lab: wire scorecard, distractors, recall params, consolidation into runner (589ec30)
    • recall: add metadata sidecar search (#177) (4e7956e)
    • recall: add state_mode=current|history recall alias (#173) (b1df86c)
    • recall: cap tag-score denominator to fix query-length bias ([#193](https://github.com/verygoodplugins/automem/issues
  5. v0.15.22026-04-23 · 2026-04-23 22:19 UTC
    查看更新说明

    0.15.2 (2026-04-23)

    Bug Fixes

    • benchmarks: make LoCoMo judge runs reliable (#149) (c22f2c9)
    • recall: bypass tag filter on expansion candidates (#142) (#146) (4f0fcf8)
    • recall: keyword scoring for vector results + softer adaptive floor (#150) (591b2c7)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    AutoMem

    AutoMem gives your AI a memory that survives the chat.

    Save the decisions, preferences, notes, and context that matter. The next time you open Claude, Cursor, Codex, ChatGPT, or another connected assistant, it can bring back the right details instead of making you repeat yourself.

    Ask, “Why did we choose PostgreSQL?” and AutoMem can return the decision, the alternatives you considered, the principle behind it, and the work that followed — not just a pile of similarly worded snippets.

    Why AutoMem feels different

    No LLM call in the middle of recall. AutoMem looks up memories directly through its graph and vector index. That keeps normal retrieval fast and avoids an extra generative-LLM charge every time your assistant needs context. It still uses embeddings — from Voyage, OpenAI, or a local provider — and optional enrichment can add more structure over time.

    More than vector search. A vector match finds something similar; AutoMem also records typed relationships between memories. It can follow the connections between a decision, its rationale, and its consequences, so your assistant has a better chance of returning the why, not only the words it recognizes.

    One memory across your tools. Use the local MCP bridge with Claude Desktop, Cursor, Claude Code, Codex, Copilot, and more. For cloud agents, Remote MCP connects the same service to ChatGPT Developer Mode, Claude.ai, and ElevenLabs over HTTPS. Your memory is not locked to one chat app.

    Own the data and the setup. Run AutoMem locally with Docker, on your own infrastructure, or as a small Railway service group. It exposes both MCP and a REST API, so it fits into the tools and workflows you already use.

    Proven where long context gets hard

    On the independent Agent Memory Benchmark's BEAM long-context tests, AutoMem scored 57.4% at 10 million source tokens while giving the answerer an average of only ~2.6–4.8k retrieved tokens. That is the kind of efficiency that lets memory stay useful as an agent's history grows.

    The full picture — test setup, raw outputs, methodology, historical runs, and reproduction commands — is in automem.ai/benchmarks and benchmarks/EXPERIMENT_LOG.md.

    How it works

    AutoMem combines two storage layers behind a single API:

    • FalkorDB stores memories as nodes with 11 typed relationships between them. The graph is the canonical record.
    • Qdrant stores an embedding for every memory. Recall is a hybrid query — semantic similarity, graph traversal, temporal alignment, tag overlap, and importance — ranked by a 9-component score.
    flowchart TB
        subgraph service [AutoMem Service Flask]
            API[REST API<br/>Memory Lifecycle]
            Enrichment[Background Enrichment<br/>Pipeline]
            Consolidation[Consolidation<br/>Engine]
            Backups[Automated Backups<br/>Optional]
        end
    
        subgraph storage [Dual Storage Layer]
            FalkorDB[(FalkorDB<br/>Graph Database)]
            Qdrant[(Qdrant<br/>Vector Database)]
        end
    
        Client[AI Client] -->|Store/Recall/Associate| API
        API --> FalkorDB
        API --> Qdrant
        Enrichment -->|11 edge types<br/>Pattern nodes| FalkorDB
        Enrichment -->|Semantic search<br/>1024-d vectors| Qdrant
        Consolidation --> FalkorDB
        Consolidation --> Qdrant
        Backups -.->|Optional| FalkorDB
        Backups -.->|Optional| Qdrant
    

    If Qdrant is unavailable, the graph still serves recall in a degraded mode. If FalkorDB is down, the API returns 503 — the graph is the source of truth.

    Multi-hop bridge discovery

    Ask "why boring tech for Kafka?" and AutoMem doesn't just match the word "Kafka". It traverses the graph from the seed memories to find the bridge that connects them:

    • Seed 1: "Migrated to PostgreSQL for operational simplicity"
    • Seed 2: "Evaluating Kafka vs RabbitMQ for message queue"
    • Bridge: "Team prefers boring technology — proven, debuggable systems"

    Both seeds carry an EXEMPLIFIES edge to the bridge memory. AutoMem ranks the bridge above the seeds and surfaces it in the recall response, so the assistant answers with your reasoning, not isolated facts. Tune via expand_relations, relation_limit, and expansion_limit on GET /recall.

    11 authorable relationship types

    TypeUse caseExample
    RELATES_TOGeneral connectionBug report → Related issue
    LEADS_TOCausal relationshipProblem → Solution
    OCCURRED_BEFORETemporal sequencePlanning → Execution
    PREFERS_OVERUser preferencesPostgreSQL → MongoDB
    EXEMPLIFIESPattern examplesCode review → Best practice
    CONTRADICTSConflicting infoOld approach → New approach
    REINFORCESSupporting evidenceDecision → Validation
    INVALIDATED_BYOutdated infoLegacy docs → Current docs
    EVOLVED_INTOKnowledge evolutionInitial design → Final design
    DERIVED_FROMSource trackingImplementation → Spec
    PART_OFHierarchical structureFeature → Epic

    Three more edge types are added automatically by the enrichment pipeline and consolidation engine: SIMILAR_TO, PRECEDED_BY, and DISCOVERED.

    Memory consolidation, neuroscience-inspired

    AutoMem implements biological memory consolidation cycles. Wrong rabbit holes fade naturally. Important memories with strong connections strengthen over time.

    CycleFrequencyPurpose
    DecayDailyExponential relevance scoring (age, access, connections, importance)
    CreativeWeeklyREM-like processing that discovers non-obvious connections
    ClusterMonthlyGroups similar memories, generates meta-patterns
    ForgetOff by defaultArchives low-relevance memories (<0.2), deletes very old (<0.05)

    Tune intervals via CONSOLIDATION_*_INTERVAL_SECONDS. See docs/ENVIRONMENT_VARIABLES.md.

    For more on the recall scoring formula, enrichment internals, and how AutoMem differs from RAG and pure vector databases, see docs/COMPARISON.md.

    Research foundation

    AutoMem implements techniques from peer-reviewed memory research:

    • HippoRAG 2 (Ohio State, 2025) — graph + vector hybrid for associative memory
    • A-MEM (2025) — Zettelkasten-inspired dynamic memory organization
    • MELODI (DeepMind, 2024) — gist-based memory compression
    • ReadAgent (DeepMind, 2024) — episodic memory for context extension

    Full writeups, findings, and how AutoMem implements each → docs/RESEARCH.md.

    Run it

    Railway (60 seconds)

    Deploy on Railway

    Recommended Railway projects run AutoMem as a small service group: automem (the API), automem-graph-viewer (the standalone UI), falkordb (graph), qdrant (vectors), and mcp-automem (the MCP bridge for ChatGPT, Claude.ai, and ElevenLabs). Services use pre-built Docker images and auto-redeploy on :stable, so Railway does not spend compute rebuilding source.

    → Full setup: INSTALLATION.md

    Docker Compose (local)

    git clone https://github.com/verygoodplugins/automem.git
    cd automem
    make dev
    
    ServiceURLPurpose
    AutoMem APIhttp://localhost:8001Memory REST API
    FalkorDBlocalhost:6379Graph database
    Qdrantlocalhost:6333Vector database
    FalkorDB Browserhttp://localhost:3000Local graph inspection UI

    Database and browser ports bind to localhost by default; the API binding is unchanged.

    → Full setup: INSTALLATION.md

    Python (development)

    make install
    source .venv/bin/activate
    PORT=8001 python app.py
    

    Requires Python 3.10+ (3.12 recommended). → INSTALLATION.md

    Contributing: feature PRs target the develop branch. main only moves via validated release merges, so users deploying from main (e.g. Railway auto-deploys) see one deploy per release instead of one per PR.

    Connect your AI

    ClientModeSetup
    Claude Desktop, Cursor, Claude Code, Codex, Copilot, AntigravityLocal MCP bridgenpx @verygoodplugins/mcp-automem setup
    ChatGPT (developer mode), Claude.ai web/mobile, ElevenLabs AgentsRemote MCP (HTTPS)docs/MCP_SSE.md
    Anything elseDirect REST APIdocs/API.md

    The MCP bridge is published as @verygoodplugins/mcp-automem. It handles client-specific config (rules files, hooks, templates) and proxies to your AutoMem service — local or Railway.

    Direct API call:

    import requests
    
    token = "your-automem-api-token"
    
    requests.post(
        "https://your-automem.railway.app/memory",
        headers={"Authorization": f"Bearer {token}"},
        json={
            "content": "Chose PostgreSQL over MongoDB for ACID compliance",
            "type": "Decision",
            "tags": ["database", "architecture"],
            "importance": 0.9,
        },
    )
    

    Screenshots

    Screenshots will be added once the referenced in-repo image assets are available.

    Known limitations

    AutoMem is pre-1.0 and honest about its rough edges. The active ones for recall quality:

    • Tags are a hard gate, not a soft boost. Tags filter before scoring, so a memory missing the queried tag won't surface even on a perfect semantic match. Within a tag scope, high-importance off-topic memories can still over-rank — mitigated by the opt-in RECALL_RELEVANCE_GATE, not yet on by default (#130).
    • Temporal and preference updates. Recall doesn't yet reliably prefer the newest version of a conflicting fact, or fully resolve multi-session preference updates. The RECALL_RECENCY_BIAS=auto re-rank helps temporal-intent queries but stays opt-in pending broader validation (#158, #159).
    • The MCP SSE bridge doesn't forward state_mode. The HTTP recall API supports it; the SSE proxy doesn't pass it through yet (#172).
    • Entity-node synthesis is experimental and off by default. First-class Entity nodes (IDENTITY_SYNTHESIS_ENABLED) are gated off while people-entity word-pair noise is addressed (#181).

    Docs, community, and license

    Setup

    API and integration

    • API reference — endpoints, scoring, enrichment
    • Remote MCP — ChatGPT, Claude.ai, ElevenLabs
    • Migrations — embedding dimensions, 0.16.0 data migrations, MCP SQLite import

    Research and comparison

    Operations

    Community

    Sibling repos

    MIT licensed. Deploy anywhere. No vendor lock-in.