5d278aa31d
Config architecture: - Add save_config(values, hermes_home) to MemoryProvider ABC - Honcho: writes to $HERMES_HOME/honcho.json (SDK native) - Mem0: writes to $HERMES_HOME/mem0.json - Hindsight: writes to $HERMES_HOME/hindsight/config.json - Holographic: writes to config.yaml under plugins.hermes-memory-store - OpenViking/RetainDB/ByteRover: env-var only (default no-op) Setup wizard (hermes memory setup): - Now calls provider.save_config() for non-secret config - Secrets still go to .env via env vars - Only memory.provider activation key goes to config.yaml Documentation: - README.md for each of the 7 providers in plugins/memory/<name>/ - Requirements, setup (wizard + manual), config reference, tools table - Consistent format across all providers The contract for new memory plugins: - get_config_schema() declares all fields (REQUIRED) - save_config() writes native config (REQUIRED if not env-var-only) - Secrets use env_var field in schema, written to .env by wizard - README.md in the plugin directory
RetainDB Memory Provider
Cloud memory API with hybrid search (Vector + BM25 + Reranking) and 7 memory types.
Requirements
- RetainDB account ($20/month) from retaindb.com
pip install requests
Setup
hermes memory setup # select "retaindb"
Or manually:
hermes config set memory.provider retaindb
echo "RETAINDB_API_KEY=your-key" >> ~/.hermes/.env
Config
All config via environment variables in .env:
| Env Var | Default | Description |
|---|---|---|
RETAINDB_API_KEY |
(required) | API key |
RETAINDB_BASE_URL |
https://api.retaindb.com |
API endpoint |
RETAINDB_PROJECT |
auto (profile-scoped) | Project identifier |
Tools
| Tool | Description |
|---|---|
retaindb_profile |
User's stable profile |
retaindb_search |
Semantic search |
retaindb_context |
Task-relevant context |
retaindb_remember |
Store a fact with type + importance |
retaindb_forget |
Delete a memory by ID |