Persistent, cross-session memory powered by Zep — a context engineering platform that builds temporal knowledge graphs from conversations and business data.
- Persists every conversation turn to Zep's knowledge graph via
sync_turn - Prefetches a context block (user summary + relevant facts) before each agent response
- Exposes
zep_searchandzep_addtools so the agent can query and write to the graph - Mirrors built-in
MEMORY.mdwrites to Zep for unified knowledge - Warms the Zep user cache between turns for low-latency retrieval
-
Install the Zep Python SDK:
pip install zep-cloud
-
Run the Hermes memory setup wizard:
hermes memory setup
You'll be prompted for your Zep API key (get one at https://app.getzep.com).
-
Optionally configure
user_id,first_name, andlast_namein$HERMES_HOME/zep.json.
| Key | Description | Default |
|---|---|---|
api_key |
Zep API key (stored in .env) |
— |
user_id |
Zep user ID for this profile | hermes-user |
first_name |
First name on the Zep user node | Hermes |
last_name |
Last name on the Zep user node | User |
| Tool | Description |
|---|---|
zep_search |
Search the knowledge graph for facts or entities |
zep_add |
Add text or JSON data directly to the user's knowledge graph |
When Zep is the active provider:
hermes zep status # Check connection and user info
hermes zep config # Print current config
hermes zep search "query" # Search the knowledge graphZep automatically extracts entities, relationships, and facts from conversations, building a temporal knowledge graph per user. The prefetch hook calls thread.get_user_context() each turn, which returns a context block containing a user summary and the most relevant facts — ready to inject into the system prompt. Facts include temporal validity ranges so the agent can reason about what's current vs. outdated.
For more details, see the Zep documentation.