docs(memory-providers): add Mnemosyne to provider documentation (#34271) - #34356
docs(memory-providers): add Mnemosyne to provider documentation (#34271)#34356Bartok9 wants to merge 5 commits into
Conversation
…Research#34271) Mnemosyne is a community-maintained Hermes memory provider plugin that fills a documented gap in the bundled provider set: - Largest tool surface of any provider (19 tools vs Honcho's 5). - Only provider with hybrid semantic + FTS5 + temporal ranking in one query. - Only fully-local provider (beyond Holographic/ByteRover) with vector search, full-text search, and a knowledge graph in one engine. - Free + MIT + no API key + no quotas + no network egress. Per the issue's 'Minimal' acceptance criteria (no Hermes core code changes required), this PR: 1. Adds Mnemosyne to the front-matter description, the providers inventory line ('9 external memory provider plugins + 1 community provider'), and the example config-yaml comment. 2. Adds a full provider section under ### Memori with: - Best-for / Requires / Storage / Cost block - All 19 tools listed - Setup snippet showing pip install + plugin symlink + provider selection - Key capabilities summary - Lifecycle integration audit (which optional hooks are implemented vs not) - Explicit community-maintained status note pointing bug reports to the Mnemosyne project. 3. Adds a Mnemosyne row to the Provider Comparison table with a footnote distinguishing it from bundled providers. The 'community-maintained' framing is intentional: the issue's request was visibility, not promotion to first-party. The plugin- discovery system already supports user-installed providers via $HERMES_HOME/plugins/, so documentation is the only blocker. Refs: NousResearch#34271 Closes: NousResearch#34271 Co-authored-by: Cursor <cursoragent@cursor.com>
|
I've closed #34679 in favor of this PR — credit where it's due for submitting first. I've layered the cross-reference updates (overview.md, memory.md, integrations/index.md + zh-Hans translations + stale '8 providers' fix) onto @Bartok9's branch via Bartok9/hermes-agent#2. If @Bartok9 merges that in, this PR will have both: the core Mnemosyne section + the cross-reference hygiene. One merge, everything clean. |
…s (+ zh-Hans) (#2) Adds Mnemosyne (and Memori) to the cross-reference lists in: - website/docs/integrations/index.md - website/docs/user-guide/features/overview.md - website/docs/user-guide/features/memory.md - website/i18n/zh-Hans/ integrations/index.md (zh-Hans) - website/i18n/zh-Hans/ overview.md (zh-Hans) Replaces stale '8 providers' wording with 'supported providers' for lower maintenance overhead. Co-authored-by: Bartok <bartok9@users.noreply.github.com>
The Mnemosyne cross-reference merge (#2) accidentally pulled in a local CodeGraph tooling artifact (.codegraph/.gitignore) that is unrelated to the docs change. Remove it to keep this PR scoped to documentation only.
Combined with @AxDSan's cross-reference additions + scope cleanupThanks to @AxDSan for the excellent follow-up — they opened a PR against this branch (Bartok9/hermes-agent#2) layering in the cross-reference updates this docs change was missing. I've merged it in, so this PR now covers: Original (this PR):
Added by @AxDSan (credit to them):
One cleanup from me: the merge accidentally pulled in a stray local CodeGraph tooling artifact ( Net result: 6 files, docs-only, all green, |
|
Merged Bartok9#2 in — thanks for layering the cross-reference hygiene (overview.md, memory.md, integrations/index.md + zh-Hans + the stale '8 providers' fix) on top of the core section. This PR now carries both. All checks green and MERGEABLE. Appreciate the clean hand-off. 🎻 |
Four verified corrections from source: 1. Tool count: 19 -> 26 (7 tools were missing: mnemosyne_remember_canonical, mnemosyne_recall_canonical, mnemosyne_shared_remember, mnemosyne_shared_recall, mnemosyne_shared_forget, mnemosyne_shared_stats, mnemosyne_triple_end) 2. Install symlink: was pointing at mnemosyne/ (no register_memory_provider) now points at hermes_memory_provider/ (where the entry point lives) 3. Removed ✓ Memory provider: built-in only Saved to config.yaml from setup snippet; zero-config path is just setting memory.provider in config.yaml 4. Lifecycle: register -> register_memory_provider for the provider contract, clarified register(ctx) is separate CLI command registration
Head branch was pushed to by a user without write access
teknium1
left a comment
There was a problem hiding this comment.
Thanks for documenting a standalone community provider and for incorporating the cross-reference cleanup from the discussion.
Problems
website/docs/user-guide/features/memory-providers.md:9says Hermes "ships with 9" providers plus Mnemosyne. Current main has eight tracked bundled directories underplugins/memory/; the loader treats Mnemosyne's documented$HERMES_HOME/plugins/mnemosynelocation as user-installed (plugins/memory/__init__.py:99-119). Please distinguish bundled from community-installed providers.- The setup commands at
website/docs/user-guide/features/memory-providers.md:564-566expand an unset$HERMES_HOMEto/plugins. Hermes instead falls back to its default home when the variable is unset (hermes_constants.py:75-84), documented as~/.hermes(website/docs/reference/environment-variables.md:104). Initialize the shell variable to the default or otherwise make this path safe.
Suggested changes
- Keep Mnemosyne visibly community-maintained, but correct the bundled-provider count and setup-path fallback.
Automated hermes-sweeper review.
| # Memory Providers | ||
|
|
||
| Hermes Agent ships with 8 external memory provider plugins that give the agent persistent, cross-session knowledge beyond the built-in MEMORY.md and USER.md. Only **one** external provider can be active at a time — the built-in memory is always active alongside it. | ||
| Hermes Agent ships with 9 external memory provider plugins that give the agent persistent, cross-session knowledge beyond the built-in MEMORY.md and USER.md. A 10th community provider (Mnemosyne) is supported via the plugin-discovery system. Only **one** external provider can be active at a time — the built-in memory is always active alongside it. |
There was a problem hiding this comment.
This conflates bundled and user-installed providers. Current plugins/memory/ has eight tracked provider directories, while the Mnemosyne section describes a separately installed $HERMES_HOME/plugins/mnemosyne plugin. Please retain the eight bundled count and describe community providers separately.
| # Symlink the plugin into $HERMES_HOME so Hermes plugin discovery picks it up. | ||
| # We symlink the hermes_memory_provider package (not the core mnemosyne package) | ||
| # because that's where the register_memory_provider() entry point lives. | ||
| mkdir -p "$HERMES_HOME/plugins" |
There was a problem hiding this comment.
HERMES_HOME is an optional override; when unset, Hermes falls back to ~/.hermes (hermes_constants.py:75-84). In a normal shell this command expands to mkdir -p /plugins. Initialize it to the documented default before using it, or use an explicit default-home path.
|
Verified both findings against main — Teknium is right on both counts. 1. Provider count. 2. Both have inline suggestions from @teknium1. You can click Commit suggestion on each, then re-enable auto-merge (it was disabled when I pushed |
… community provider, and make HERMES_HOME path safe Addresses @teknium1 review: - Restore the 8 bundled provider count; describe Mnemosyne as a separately-installed community provider rather than inflating the bundled count. - Initialize HERMES_HOME to its documented default (~/.hermes) before mkdir so the snippet does not expand to /plugins when the variable is unset.
|
Thanks @teknium1 (and @AxDSan for verifying against main) — both fixed in
Still docs-only. Ready for re-review. 🎻 |
Thank you for the quick response! Glad it's all green on moving forward now, just waiting for the final approval and merge! |
Closes #34271
Adds Mnemosyne as a community-maintained option in the memory-providers documentation. Per the issue's 'Minimal' acceptance criteria (no Hermes core code changes required), this PR is documentation-only:
### Memoriwith best-for / requires / storage / cost block, all 19 tools listed, setup snippet (pip install + plugin symlink + provider selection), key capabilities summary, and lifecycle-integration audit (which optional hooks are implemented vs not).The 'community-maintained' framing is intentional: the issue requested visibility, not promotion to first-party. The plugin-discovery system already supports user-installed providers via
$HERMES_HOME/plugins/, so documentation was the only blocker.🎻 Co-authored-by: Cursor cursoragent@cursor.com