feat: memory plugin for keep - #5172
Conversation
|
I have been using the Keep and Hermes Agent v0.6.0 for 48 hours -> My existence system keeps getting better results. |
|
Still benefits from #7789 for full per-turn attribution but doesn't require that. |
427e3b7 to
fb43120
Compare
|
Updated behavior: reverted my |
fb43120 to
c2e50d0
Compare
Keep provides reflective memory with semantic search, tagging, versioned
session capture, and agent prompts via keep-skill.
Plugin:
- Typed delegate wrapping keep.hermes.KeepMemoryProvider
- Lazy-loaded impl so Hermes lists keep in setup wizard before install
- keep_flow param normalization for chat-surface JSON string quirks
- CLI: hermes keep status
Setup wizard (memory_setup.py):
- Support choice-dict schemas ({label, value, description, default})
- Handle empty_message/empty_hints for unavailable providers
- Distinguish provider config save success from activation save
Tests: - Keep plugin compatibility: cron skip, param hoisting, JSON string params, unknown key passthrough, missing impl error - Memory setup wizard: choice-dict schemas, save_config failure handling - Keep CLI: subcommand tree, status output Docs: - Add Keep to memory providers documentation page
c2e50d0 to
3f4fb89
Compare
|
Aligned with upstream. |
|
Thanks for the contribution! Per the updated CONTRIBUTING.md, new memory providers are no longer accepted as in-tree additions to
Closing this in line with that policy. The path forward is to publish it as a standalone plugin so users can install it directly without touching the Hermes source tree. Once it's published, a small docs PR adding it to the Community plugins section of the README is welcome. Sorry for the bump — appreciate the time you put into this. |
Summary
Add a
keepexternal memory provider plugin for Hermes.This integrates
keep-skill(PyPI, GitHub) as a first-class Hermes memory provider, exposes Keep's tool surface (keep_flow,keep_help,keep_prompt).Small changes in Hermes: makes
hermes memory setuphandle Keep-specific provider configuration, and passes per-turn user information to memory providers.What changed
Keep memory plugin
plugins/memory/keep/Hermes updates
hermes memory setuphandle provider choice schemas more reliablyuser_idanduser_nameto memory providers so that they can provide correct attributionWhy
Keep is a reflective memory system with:
This plugin lets Hermes use Keep directly as an external memory provider without changes to Hermes core memory-manager behavior.
Manual verification
Tested the Keep setup flow through Hermes:
hermes memory setupkeepkeep-skillautomatically when neededkeep_help, review the returned guidance, and usekeep_flow/keep_promptproductively (not just exposing the tool names)keep --store ~/.hermes/keep list(or appropriate path per profile).