Memory Guide
Hermes Agent + OpenViking: Persistent Agent Memory
OpenViking is a first-class Hermes memory provider that organizes resources, memories, and retrieved context outside the model’s prompt history.
What OpenViking changes
Without an external provider, agent memory is typically stored and searched by the agent’s built-in mechanism. OpenViking runs as a separate context service. Hermes sends memory operations to it, then uses the retrieved material in later turns.
User message → Hermes Agent → OpenViking retrieval → model response
↘ memory write / resource indexingStart OpenViking
- Install and start OpenViking from its official repository.
- Confirm its HTTP service responds on the documented default endpoint, commonly
http://localhost:1933. - Put authentication and TLS in front of it before exposing it beyond a trusted private network.
- Create a separate OpenViking environment or namespace for production so experiments cannot pollute live agent memory.
Run the Hermes memory setup
Current Hermes releases provide an interactive memory-provider wizard:
hermes memory setup
# Choose: OpenViking
# Enter the OpenViking endpoint when prompted
# Restart Hermes after the configuration is savedThe upstream Hermes configuration stores memory.provider as openviking. Use the wizard for the remaining provider fields because their names and authentication options can change across releases.
Verify memory end to end
- Tell the agent a harmless, distinctive preference.
- Start a fresh session so short chat history is not enough to answer.
- Ask for the preference indirectly.
- Check the OpenViking logs or UI for the write and retrieval.
- Delete the test memory and confirm the agent no longer recalls it.
This verifies both directions. A successful write alone does not prove retrieval is contributing to answers.
OpenViking memory provider vs MCP
| Integration | Use it when |
|---|---|
| Hermes memory provider | You want OpenViking to be the agent’s normal memory backend. |
| OpenViking MCP server | You want explicit tools for browsing or manipulating context alongside another memory backend. |
Troubleshooting
- Connection refused: localhost is wrong when the services run in different containers; use a private service address.
- Writes appear but recall fails: confirm Hermes selected OpenViking as the active provider and test in a fresh session.
- Old test data appears: isolate environments and clear the intended namespace, not an unrelated production store.
- Hosted Hermes cannot reach your laptop: use a secure reachable endpoint or colocate OpenViking on private infrastructure.
Read the broader Hermes memory guide before migrating an existing memory store.
Hermes and OpenViking FAQ
Does Hermes Agent support OpenViking?
Yes. Current Hermes documentation lists OpenViking as a first-class memory provider and includes an interactive setup flow.
Is OpenViking an LLM provider?
No. It is a context and memory system. Hermes still needs a separate model provider for inference.
Can OpenViking run on another server?
Yes, provided the Hermes environment can reach an authenticated OpenViking endpoint. Avoid exposing an unauthenticated memory service to the public internet.