Install & integrate
There are several ways to use Engram, from calling the API directly to dropping it into an agent framework as a memory provider.
- Python SDK — the
weaviate-engramclient for Python applications. - REST API — call Engram over HTTP from any language.
- Hermes Agent — long-term memory for the Hermes Agent through the
hermes-weaviate-engramplugin.
Every method authenticates with an Engram API key.
Python SDK
Install the weaviate-engram client:
- pip
- uv
pip install weaviate-engram
uv add weaviate-engram
Connect with your API key, then store and search memories:
import os
from engram import EngramClient
client = EngramClient(api_key=os.environ["ENGRAM_API_KEY"])
For an async client, use AsyncEngramClient instead. The Quickstart has a full walkthrough, and the guides cover storing, searching, and managing memories. The source is on GitHub.
REST API
Engram is a REST service at https://api.engram.weaviate.io. Authenticate every request with your API key as a bearer token:
curl -X POST "https://api.engram.weaviate.io/v1/memories" \
-H "Authorization: Bearer $ENGRAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {"string": {"content": ["The user prefers dark mode."]}},
"user_id": "alice"
}'
See the REST API reference for the full list of endpoints, and the guides cover storing, searching, and managing memories.
Hermes Agent
hermes-weaviate-engram is a memory provider plugin that gives the Hermes Agent long-term memory backed by Engram. It recalls relevant memories into the system prompt before each turn, and stores each completed turn through Engram's pipeline.
Install the plugin and run the setup wizard, which prompts for your API key:
pip install hermes-weaviate-engram
hermes memory setup # choose weaviate_engram
The wizard saves ENGRAM_API_KEY to ~/.hermes/.env and sets memory.provider in your Hermes config.
The plugin exposes three tools to the agent:
| Tool | Description |
|---|---|
engram_search | Search memories by semantic similarity. |
engram_store | Store a memory. This is also how the agent "forgets" — it stores a correcting memory, and Engram's reconcile pipeline supersedes the old one. |
engram_fetch | Profile-shaped recall, such as "what do you know about me?" |
Optional settings live in ~/.hermes/weaviate_engram.json (for example auto_recall, auto_capture, and max_recall_results). Set ENGRAM_BASE_URL to point at a staging or self-hosted endpoint. See the plugin README for the full configuration reference.
Questions and feedback
If you have any questions or feedback, let us know in the user forum.
