Pluggable memory provider is the plugin interface through which 📝Hermes Agent connects one external memory backend alongside its always-active 📝built-in memory, MEMORY.md and USER.md.
Each provider implements the MemoryProvider abstract base class in agent/memory_provider.py. Hermes discovers providers from four sources, in precedence order: bundled under plugins/memory/, user-installed in $HERMES_HOME/plugins/, project-local in ./.hermes/plugins/ when enabled, and Python packages that publish a hermes_agent.memory_providers entry point. Discovery only enumerates providers; nothing runs until the memory.provider setting names one.
Only one external provider can be active at a time. The MemoryManager rejects a second with a warning, which the developer guide says prevents tool-schema bloat and conflicting backends. While a provider is active, Hermes injects its context into the system prompt, prefetches relevant memories before each turn, syncs each turn after the response, mirrors built-in memory writes to it, and adds the provider's own tools.
The docs list RetainDB and ByteRover as the two providers that ship with Hermes. Others, including 📝Honcho, Hindsight, Supermemory, Mem0, OpenViking and Holographic, live in their maintainers' own repositories and are installed from the plugin catalog with hermes plugins install <name>.
Memory providers are one of two provider plugin types in Hermes; the other, 📝context engine plugins, replaces the built-in context compressor. Both are single-select, config-driven, and managed through hermes plugins.
