Skip to content

docs(memory-providers): add Mnemosyne to provider documentation (#34271) - #34356

Open
Bartok9 wants to merge 5 commits into
NousResearch:mainfrom
Bartok9:docs/34271-mnemosyne-provider
Open

docs(memory-providers): add Mnemosyne to provider documentation (#34271)#34356
Bartok9 wants to merge 5 commits into
NousResearch:mainfrom
Bartok9:docs/34271-mnemosyne-provider

Conversation

@Bartok9

@Bartok9 Bartok9 commented May 29, 2026

Copy link
Copy Markdown
Contributor

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:

  1. Front-matter description, providers inventory line, and config-yaml example updated.
  2. Full provider section added under ### Memori with 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).
  3. Mnemosyne row added to the Provider Comparison table with a footnote distinguishing community-maintained from bundled.

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

…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>
@alt-glitch alt-glitch added type/docs Documentation improvements P3 Low — cosmetic, nice to have comp/plugins Plugin system and bundled plugins tool/memory Memory tool and memory providers labels May 29, 2026
@AxDSan

AxDSan commented May 29, 2026

Copy link
Copy Markdown
Contributor

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.

AxDSan and others added 2 commits May 29, 2026 17:42
…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.
@Bartok9

Bartok9 commented Jun 6, 2026

Copy link
Copy Markdown
Contributor Author

Combined with @AxDSan's cross-reference additions + scope cleanup

Thanks 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):

  • Cross-references Mnemosyne in features/overview.md, features/memory.md, and integrations/index.md so it's discoverable from every place the other providers are listed.
  • Fixes the stale "Eight providers" count in integrations/index.md — now an explicit list ending in "…Supermemory, Memori, and Mnemosyne" rather than a hard-coded number that drifts every time a provider is added.
  • Mirrors the changes into the zh-Hans translations (integrations/index.md, features/overview.md) so the localized docs stay in sync.

One cleanup from me: the merge accidentally pulled in a stray local CodeGraph tooling artifact (.codegraph/.gitignore). I dropped it in a follow-up commit so this PR stays strictly documentation-only.

Net result: 6 files, docs-only, all green, mergeable: MERGEABLE. The change is now complete and consistent across English + zh-Hans. Ready for maintainer review/merge.

@Bartok9

Bartok9 commented Jul 4, 2026

Copy link
Copy Markdown
Contributor Author

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
auto-merge was automatically disabled July 6, 2026 02:51

Head branch was pushed to by a user without write access

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:9 says Hermes "ships with 9" providers plus Mnemosyne. Current main has eight tracked bundled directories under plugins/memory/; the loader treats Mnemosyne's documented $HERMES_HOME/plugins/mnemosyne location 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-566 expand an unset $HERMES_HOME to /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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@AxDSan

AxDSan commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Verified both findings against main — Teknium is right on both counts.

1. Provider count. plugins/memory/ on main has 8 bundled provider directories (byterover, hindsight, holographic, honcho, mem0, openviking, retaindb, supermemory). The front-matter and intro line should say "ships with 8" + "A 9th community provider (Mnemosyne)". Also drop "Memori" from the description list — it is the section heading for Mem0, not a separate bundled provider.

2. $HERMES_HOME path safety. environment-variables.md documents HERMES_HOME as defaulting to ~/.hermes when unset. The setup snippet's mkdir -p "$HERMES_HOME/plugins" expands to /plugins in a shell where the variable is unset. Initializing it first — HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}" — makes the path safe.

Both have inline suggestions from @teknium1. You can click Commit suggestion on each, then re-enable auto-merge (it was disabled when I pushed c60dc593 since I lack write access to your fork). Should land cleanly after that.

… 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.
@Bartok9

Bartok9 commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @teknium1 (and @AxDSan for verifying against main) — both fixed in 9ec2cb7:

  1. Provider count — restored to 8 bundled providers (byterover, hindsight, holographic, mem0, openviking, retaindb, supermemory + the front-matter list), and Mnemosyne is now described as a separately-installed community provider discovered via the plugin system, not folded into the bundled count.
  2. $HERMES_HOME path safety — the setup snippet now initializes HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}" before mkdir -p, so it no longer expands to /plugins when the variable is unset.

Still docs-only. Ready for re-review. 🎻

@AxDSan

AxDSan commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Thanks @teknium1 (and @AxDSan for verifying against main) — both fixed in 9ec2cb7:

1. **Provider count** — restored to **8 bundled** providers (byterover, hindsight, holographic, mem0, openviking, retaindb, supermemory + the front-matter list), and Mnemosyne is now described as a **separately-installed community provider** discovered via the plugin system, not folded into the bundled count.

2. **`$HERMES_HOME` path safety** — the setup snippet now initializes `HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"` before `mkdir -p`, so it no longer expands to `/plugins` when the variable is unset.

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!

@teknium1 teknium1 added sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:blast-contained Sweeper blast radius: contained — one narrow path / opt-in / few users area/memory Memory subsystem: store, providers, sync, background reviews labels Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/memory Memory subsystem: store, providers, sync, background reviews comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have sweeper:blast-contained Sweeper blast radius: contained — one narrow path / opt-in / few users sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades tool/memory Memory tool and memory providers type/docs Documentation improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Proposal: Add Mnemosyne to official memory provider documentation

4 participants