Vity (Maximem AI) memory provider plugin for Hermes Agent
Project description
Vity Memory for Hermes Agent
Vity by Maximem AI — persistent, cross-session semantic memory for Hermes Agent, distributed as a standalone plugin.
Vity gives the agent a long-term memory graph (facts, preferences, episodes, knowledge, profile). It automatically recalls relevant context before each turn and captures the conversation after each turn, so the agent remembers users and projects across sessions.
Built on the
maximem-vity-sdkPython client.
Install
First, get an API key at app.maximem.ai/api-keys (starts with mx_). Then:
pip install hermes-maximem-vity
hermes-maximem-vity install
hermes-maximem-vity install does everything in one step:
- Copies the plugin into
~/.hermes/plugins/vity/, where Hermes discovers it. - Prompts for your API key and saves it to
~/.hermes/.env(no duplicates). - Activates the provider (
memory.provider: vity).
It prints ✅ All set! when finished. Start the agent with hermes.
Non-interactive / scripted installs — pass the key as a flag to skip the prompt:
hermes-maximem-vity install --api-key mx_your_key
Hitting a PEP-668 "externally-managed-environment" or "pip: command not found" error?
System Python (e.g. Homebrew) blocks global pip install. Use pipx (recommended) or a virtual environment:
pipx install hermes-maximem-vity # install pipx first if needed: brew install pipx
hermes-maximem-vity install
You don't need to match Python versions — the maximem-vity-sdk dependency is installed into Hermes' own environment automatically.
Verify
hermes memory status # shows: vity ← active
hermes vity status # API key set ✓, connection ok ✓
Update / remove
pip install -U hermes-maximem-vity && hermes-maximem-vity install --force # update
hermes-maximem-vity uninstall # remove
Configuration
API key (secret — stored in ~/.hermes/.env):
| Env var | Required | Description |
|---|---|---|
MAXIMEM_API_KEY |
✅ | Your Maximem API key (mx_…). VITY_API_KEY is also accepted. |
The API key owns the memory space — use a separate key per account that needs isolated memories.
Tunables (optional, non-secret — $HERMES_HOME/vity.json, created on install):
| Key | Default | Description |
|---|---|---|
auto_recall |
true |
Inject relevant memories before each turn |
auto_capture |
true |
Capture the conversation after each turn |
max_recall_tokens |
1000 |
Token budget for recalled context |
min_prompt_length |
5 |
Skip recall for very short prompts |
Self-hosted backend (optional): set MAXIMEM_ENDPOINT (or endpoint in vity.json) to point at a non-default Maximem API URL.
How it works
- Recall before each turn — relevant memories are fetched in the background and injected as context, so the agent starts each turn already aware of the user.
- Capture after each turn — the user/assistant exchange is saved to long-term memory.
- Memory mirroring — when Hermes' built-in memory tool records a fact, it is also stored in Vity so it participates in semantic recall.
All network calls run on background threads, so the agent loop never blocks.
Agent tools
The plugin exposes four tools to the agent:
| Tool | Parameters | Purpose |
|---|---|---|
vity_recall |
query (required), top_k (default 10, max 50) |
Semantic search of stored memories. |
vity_profile |
— | Retrieve the user's full stored memory profile. |
vity_store |
content (required), memory_type (fact/preference/emotion/episode/knowledge/profile) |
Save a new memory. |
vity_forget |
query, dry_run (default true) |
Delete matching memories (previews first). |
In chat, this is transparent: ask the agent to "remember that …" and it calls vity_store; ask "what do you know about …" and it calls vity_recall. No special commands are required.
CLI
Manage memory directly from the terminal:
hermes vity status # config + live connection check
hermes vity search "favorite color" # semantic search
hermes vity search "deadlines" --limit 20 --json
hermes vity store "I prefer dark mode" --type preference
hermes vity forget "old project" # dry-run (preview)
hermes vity forget "old project" --yes # confirm deletion
To (re)activate the provider, use
hermes config set memory.provider vity. Avoid the interactivehermes memory setupwizard — buffered/pasted terminal input can drop the selection and leave the provider unset.
Development
pip install -e ".[dev]"
pytest -q
Tests stub the Hermes host modules (agent.memory_provider, tools.registry, hermes_constants, utils) so they run without a full Hermes checkout — see tests/conftest.py.
Layout
| Path | Purpose |
|---|---|
src/hermes_maximem_vity/installer.py |
The hermes-maximem-vity console command (install / uninstall / status). |
src/hermes_maximem_vity/payload/provider.py |
VityMemoryProvider + register() — copied to ~/.hermes/plugins/vity/__init__.py on install. |
src/hermes_maximem_vity/payload/cli.py |
The hermes vity … subcommands. |
src/hermes_maximem_vity/payload/plugin.yaml |
Plugin manifest (dependencies, required env). |
src/hermes_maximem_vity/payload/vity.json.example |
Tunables template (seeded to vity.json on install). |
tests/ |
Unit tests + host-module stubs. |
License
MIT — see LICENSE.
Support
- Documentation: https://docs.maximem.ai/vity
- API keys: https://app.maximem.ai/api-keys
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_maximem_vity-1.0.3.tar.gz.
File metadata
- Download URL: hermes_maximem_vity-1.0.3.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f1ac48a69611f08725ab701b6c1c7b1b0e4e9bc6cad6020c0638bc3181b2f86
|
|
| MD5 |
1a982864c2cc41dae0a0d5e8e49c74ba
|
|
| BLAKE2b-256 |
27a3f3fd8b48185697145d77c177ca01f50911e2a8150cefb137d40bcf204320
|
File details
Details for the file hermes_maximem_vity-1.0.3-py3-none-any.whl.
File metadata
- Download URL: hermes_maximem_vity-1.0.3-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb8b138ea798f48f874a3d765a099cd5bb9ba7276df8ed4564228ff1ead6d9a3
|
|
| MD5 |
5bcd90f13907b387325e858f28652868
|
|
| BLAKE2b-256 |
882325a387b56e43ea38983ed3088f13422e8fe7439e690feb45df07a2693553
|