# Hermes Memory System Plugin This Hermes memory provider talks to the Memory System API instead of calling OpenViking or EverOS directly. It stores completed Hermes turns through: - `POST /memory-system/messages` - `POST /memory-system/sessions/{session_id}/commit` on session end - `POST /memory-system/search` for recall - `GET /memory-system/users/{user_id}/profile` for user profile reads ## Configure Put these values in the Hermes profile env file, usually `~/.hermes/.env`: ```dotenv MEMORY_SYSTEM_ENDPOINT=http://127.0.0.1:1934 MEMORY_SYSTEM_USER_ID=default MEMORY_SYSTEM_API_KEY= MEMORY_SYSTEM_SEARCH_USE_LLM=false MEMORY_SYSTEM_COMMIT_EVERY_TURNS=5 MEMORY_SYSTEM_COMMIT_INTERVAL_SECONDS=300 MEMORY_SYSTEM_TIMEOUT_SECONDS=180 ``` You can also keep a separate file and point to it with `MEMORY_SYSTEM_ENV_FILE`. Real environment variables still override file values. Then select this provider in Hermes memory config: ```yaml memory: provider: memory_system ``` ## Tools - `memory_system_search`: search OpenViking and EverOS via Memory System API. - `memory_system_profile`: read the EverOS profile memory for the active user. - `memory_system_remember`: explicitly write an important memory and commit the session. The plugin commits after 5 new turns or 300 seconds by default, whichever comes first. Set either value to `0` to disable that trigger. Session end still commits any new turns that were not already committed. `MEMORY_SYSTEM_TIMEOUT_SECONDS` should be long enough for commit/search calls that wait on EverOS LLM extraction or rerank services. The default is 180 seconds. If commit returns `partial_success`, the plugin logs the response and does not mark the pending turns as committed, so a later periodic commit or session-end commit can retry EverOS flush. Search responses from current Memory System API versions do not include raw `vector` fields. The API strips those large embedding arrays before returning merged results or backend debug payloads. The plugin is intentionally thin. User identity, session identity, backend writes, OpenViking commit, and EverOS flush stay owned by Memory System API.