Skip to main content

Plugin author

cnkang

qdrant-memory❖ Community

Durable native memory for Hermes with LLM fact extraction. Conversations are distilled by the Hermes-configured LLM into searchable memories — facts, preferences and decisions with deduplication and importance — instead of storing turns verbatim, and are kept in Qdrant (embedded, self-hosted Server, or Qdrant Cloud) with configurable embeddings (default: local Ollama qwen3-embedding:4b at 2560 dimensions). The plugin registers a native MemoryProvider plus four scoped tools: qdrant_memory_search, qdrant_memory_add, qdrant_memory_update and qdrant_memory_delete. A SQLite WAL admission ledger makes every write idempotent and replayable across restarts with fail-closed recovery; scoped inventory, portable export and scope-aware deletion (list/export/delete-all with explicit single-agent vs all-agents semantics) ship in the same CLI, and `migrate mem0` imports existing Mem0 exports with resumable, verifiable runs. Disclosure — memory text is stored in the configured Qdrant store (embedded files under <HERMES_HOME>/qdrant-memory/qdrant by default, or the Server/Cloud URL you set), and memory text plus each turn's recall query are sent as plain text to the configured embedding endpoint (default local Ollama at http://127.0.0.1:11434; an OpenAI-compatible remote endpoint can be configured, and keyed endpoints must use HTTPS). Disclosure — after each primary-agent turn, at session end and before context compression, conversation text goes to the LLM configured in Hermes through the Hermes plugin LLM facade (a provider/model override needs the plugin's Hermes trust grant) to extract facts and to compare near-duplicate memories; that LLM may be a remote provider. Disclosure — the provider is selected with memory.provider: qdrant-memory; its settings live in <HERMES_HOME>/qdrant-memory.json (0600, secrets stripped on save). QDRANT_URL, QDRANT_API_KEY and EMBEDDING_API_KEY are read through the Hermes secret scope, but an api_key written by hand into qdrant-memory.json takes precedence, and `migrate mem0` reads the source Qdrant endpoint and any api_key from <HERMES_HOME>/mem0.json or --source-config. Disclosure — state lives under <HERMES_HOME>/qdrant-memory/ (embedded store, SQLite WAL ledger, lock files); the ledger holds raw turn text and pre-compression transcripts until they are processed, and failed items until retried, then scrubs the bodies. Disclosure — single-writer design: a local ownership lock excludes a second writer to the same profile destination, and Server/Cloud deployments expect one active writer per scope. Disclosure — deletion removes records and fences pending operations, but is not a forensic secure erase (SQLite WAL pages and backups may retain content).

Memory

← Back to the catalog