Konzept: Hermes Memory Next Level
1. Executive Summary
Hermes Memory Next Level (HMNL) ist ein hierarchisches, strukturiertes Memory-Upgrade für den Hermes Agent. Es löst das "Context Rot"-Problem, bei dem KI-Agenten nach Session-Wechseln oder Context-Compressionen wichtige Zustände, Präferenzen und Projekt-Details verlieren. Statt flachem Key-Value-Speicher nutzt HMNL vier Memory-Tiers mit automatischer Fakten-Extraktion, Entity-Linking und semantischer Suche.
Status: Konzept + Prototyp (Architektur implementiert, Integration geplant)
Zielgruppe: Hermes Agent Nutzer, KI-Agent-Entwickler, Systemintegratoren
Lizenz: Open Source
2. Problemstellung
2.1 Context Rot
LLM-basierte Agenten haben feste Token-Limits (4K–2M). Bei Erreichen des Limits werden ältere Nachrichten entfernt oder zusammengefasst. Das führt zu:
| Was verloren geht |
Beispiel vor Compression |
Beispiel nach Compression |
| Tool-Konfigurationen |
"Docker-Compose auf Port 8080" |
"Docker wurde erwähnt" |
| Projekt-Zustände |
"Zeile 47 in auth.service.ts" |
"An Auth gearbeitet" |
| User-Präferenzen |
"Tabellen mit │-Trennern, keine Bullets" |
"Formatierungspräferenzen" |
| Gelernte Patterns |
"pytest -n 4 funktioniert hier" |
"Tests wurden erwähnt" |
2.2 Hermes-spezifische Probleme
| Feature |
Aktueller Zustand |
Problem |
memory Tool |
Manuell, flaches Key-Value |
Nutzer muss aktiv speichern; keine Typisierung |
session_search |
FTS5-basiert |
Findet Sessions, aber nicht den Zustand darin |
skills |
Prozedurales Memory |
Statisch, nicht automatisch aktualisiert |
profile |
Isoliert |
Keine Cross-Profile Memory-Sync |
| Context |
Session-bound |
Nach Compression oder Neustart = Tabula Rasa |
2.3 Geschäftlicher Impact
- Zeitverlust: Nutzer wiederholt Erklärungen (5–15 Minuten pro Session)
- Fehler: Agent "ratet" statt zu wissen → falsche Entscheidungen
- Frustration: Kontinuitätsverlust mindert Akzeptanz
- Skalierungsgrenze: Lange Projekte (>1h) werden unmöglich
3. Vision & Ziele
3.1 Vision
Memory wird von manuell und flach zu automatisch und strukturiert. Der Agent merkt sich nicht nur, was der Nutzer sagt — sondern versteht, warum es wichtig ist, verknüpft es mit anderen Fakten und ruft es automatisch ab, wenn es relevant wird.
3.2 Ziele
| Ziel |
Metrik |
Zielwert |
| Reduktion Wiederholungen |
Nutzer muss X-mal weniger erklären |
-80% |
| Kontinuität |
Agent erinnert sich an Projekt nach 7 Tagen |
95% |
| Auto-Extraction |
Fakten werden ohne manuelles Speichern erkannt |
90% Recall |
| Retrieval-Qualität |
Relevante Memories werden gefunden |
95% Precision |
| Latenz |
Memory-Abfrage < 100ms |
99th Percentile |
4. Architektur
4.1 Überblick: 4-Tier Memory
4.2 Datenfluss: Session → Memory
4.3 Memory Block Schema
4.4 Entity-Linking Graph
| Schritt |
Beschreibung |
Technologie |
| Chunking |
Sliding-Window über Session, max 3500 Tokens/Chunk |
Python |
| Pre-Filter |
Heuristisches Scoring: Code/Config (+3), Präferenzen (+2), Projekt (+2) |
Regex + Keywords |
| LLM Extraction |
JSON-Output: type, confidence, subject, predicate, object, context, temporal, entities |
LLM (lokal oder API) |
| Klassifikation |
5 Kategorien mit TTL: user_preference (1y), project_state (3m), learned_pattern (6m), entity_relationship (1y), procedural (6m) |
Regelbasiert |
| Entity-Linking |
Alias-Matching (O(1)), Embedding-Similarity (Threshold 0.85), Coreference-Resolution |
NetworkX + Embeddings |
| Temporal Reasoning |
Regex-basierte Datums-Extraktion, Gültigkeits-Engine |
Python + dateutil |
| Deduplizierung |
Exakter Key-Match (Subject::Predicate::Object), Cosine-Similarity (Threshold 0.92) |
SHA-256 + Embeddings |
5. Technologie-Stack
| Komponente |
Technologie |
Begründung |
| Tier 2 (Short-Term) |
SQLite + FTS5 |
Einfach, schnell, kein extra Service, nativ in Hermes |
| Tier 3 (Vektor) |
Chroma oder Qdrant |
Open Source, lokal hostbar, Python-native, gute Performance |
| Tier 3 (Graph) |
NetworkX |
Python-native, GraphML-Persistenz, keine DB-Abhängigkeit |
| Embeddings |
sentence-transformers (lokal) oder Ollama |
Privacy, keine API-Kosten, subbie hat 48GB VRAM |
| LLM für Extraction |
Ollama (lokal) oder gleiches Modell |
Speed, Kosten, Privacy |
| API |
Python (FastAPI optional) |
Hermes-native, einfache Integration |
| Cron/Scheduler |
Hermes Cronjob-System |
Bestehende Infrastruktur nutzen |
| Integration |
Hermes Memory Provider Plugin |
Minimal invasive, kein Core-Fork |
6. Integration in Hermes Agent
6.1 Strategie: Memory Provider Plugin
Hermes hat bereits ein MemoryProvider ABC mit Hooks:
initialize() — Setup beim Agent-Start
prefetch() — Relevante Memories für Session-Start
sync_turn() — Nach jeder Conversation-Turn
on_session_end() — Session-Abschluss
get_tool_schemas() — Zusätzliche Tools für den Agenten
HMNL implementiert dieses ABC als neues Plugin unter plugins/memory/nextlevel/.
6.2 Session-Start Injection
| Trigger |
Wann |
Was |
sync_turn() |
Nach jeder Nachricht |
Wichtige Fakten sofort extrahieren |
| Cronjob |
Nach Session-Ende |
Batch-Verarbeitung aller unverarbeiteten Sessions |
| Manual |
Auf Nutzer-Anfrage |
"Speichere das als Memory" |
6.4 Neue Tools für den Agenten
| Tool |
Funktion |
nextlevel_search |
Semantische Suche über alle Tiers |
nextlevel_remember |
Explizites Speichern mit Typisierung |
nextlevel_forget |
Löschen oder TTL-Update |
nextlevel_graph |
Entity-Graph exploration |
nextlevel_stats |
Memory-Übersicht (Größe, Verteilung, Zugriff) |
6.5 Hermes Core Änderungen
Minimal: Praktisch keine. Optional:
extracted Flag in state.db Sessions-Tabelle
on_cron_tick() Hook im MemoryProvider ABC
- Cron-Post-Job Hook für Memory-Extraction
7. Implementierungsplan
7.1 Phasen
| Phase |
Dauer |
Inhalt |
Deliverable |
| P0: Foundation |
~4h |
Plugin-Struktur, Hermes-Integration, Config |
Plugin lädt, prefetch() läuft |
| P1: Tier 2 |
~8h |
SQLite-Schema, FactStore, EntityStore, Timeline |
Short-Term Memory vollständig |
| P2: Tier 3 |
~8h |
Vektor-Backend, Embeddings, Graph-Store |
Long-Term Memory + semantische Suche |
| P3: Graph |
~6h |
Entity-Linking, Graph-Traversal, Visualization |
Knowledge Graph vollständig |
| P4: Extraction |
~4h |
Auto-Extraction Pipeline, Cronjobs |
Fakten werden automatisch extrahiert |
| P5: Tests |
~2h |
Unit + Integration Tests, Dokumentation |
90% Coverage, Docs vollständig |
Gesamt: ~32h (bei konzentrierter Arbeit)
7.2 Milestones
| Milestone |
Datum |
Kriterium |
| M1: Plugin lädt |
+1 Tag |
prefetch() gibt Memory-Context zurück |
| M2: Tier 2 läuft |
+3 Tage |
Sessions werden in SQLite gespeichert, FTS5 funktioniert |
| M3: Tier 3 läuft |
+5 Tage |
Vektor-Suche findet relevante Memories |
| M4: Graph läuft |
+7 Tage |
Entity-Linking verknüpft Projekte, Dateien, Personen |
| M5: Auto-Extract |
+9 Tage |
Cronjob extrahiert Fakten aus Sessions |
| M6: Release |
+10 Tage |
Tests grün, Docs vollständig, Nutzer-Test bestanden |
8. Vergleich mit Alternativen
8.1 Bestehende Lösungen
| Projekt |
Ansatz |
Self-Mgmt |
Multi-Tier |
Entity-Linking |
Integration |
Lokal |
Open Source |
| Letta |
OS-ähnliches Memory |
✅ |
✅ |
✅ |
Python SDK |
✅ |
✅ |
| Mem0 |
Multi-Level Memory |
❌ |
✅ |
✅ |
REST API |
❌ |
✅ |
| Zep |
Async Long-Term |
❌ |
✅ |
✅ |
Python/JS SDK |
❌ |
✅ |
| LangChain |
Modular |
❌ |
✅ |
❌ |
Python/JS |
✅ |
✅ |
| AutoGPT |
Configurable |
❌ |
❌ |
❌ |
Python |
✅ |
✅ |
| Hermes (current) |
Key-Value |
❌ |
❌ |
❌ |
Built-in |
✅ |
✅ |
| HMNL (geplant) |
Hierarchisch + Plugin |
✅ |
✅ |
✅ |
Hermes Plugin |
✅ |
✅ |
8.2 Differenzierung
| Aspekt |
Andere |
HMNL |
| Integration |
Separate Frameworks |
Native Hermes Plugin |
| Deployment |
Cloud oder komplex |
Lokal, SQLite, kein extra Service |
| Kosten |
API-Kosten für Embeddings |
Lokal (Ollama/sentence-transformers) |
| Privacy |
Daten verlassen Maschine |
Alles lokal |
| Auto-Extract |
Teilweise |
Vollständig mit Klassifikation |
| Entity-Linking |
Teilweise |
Knowledge Graph mit Traversal |
| Session-Start |
Manuelles Laden |
Automatische Injection |
9. Risiken & Mitigation
| Risiko |
Wahrscheinlichkeit |
Impact |
Mitigation |
| Embedding-Performance |
Mittel |
Hoch |
Ollama auf subbie (48GB VRAM), Fallback auf CPU |
| SQLite-Skalierung |
Niedrig |
Mittel |
Migration zu PostgreSQL optional, VACUUM regelmäßig |
| LLM-Extraction-Qualität |
Mittel |
Hoch |
Pre-Filter reduziert Noise, Confidence-Threshold, manuelle Review |
| Hermes Core Breaking Changes |
Niedrig |
Hoch |
Plugin-Architektur isoliert, ABC stabil |
| Nutzer-Akzeptanz |
Mittel |
Mittel |
Graduelle Einführung, manuelles Memory bleibt verfügbar |
| Token-Overhead |
Mittel |
Mittel |
Memory-Context limitiert (max 2K Tokens), Relevanz-Scoring |
10. Erfolgskriterien & Metriken
10.1 Technische Metriken
| Metrik |
Baseline |
Ziel |
Messung |
| Memory-Latenz (Tier 2) |
— |
< 5ms |
Benchmark-Script |
| Memory-Latenz (Tier 3) |
— |
< 50ms |
Benchmark-Script |
| Extraction-Recall |
— |
> 90% |
Manuell gelabelte Sessions |
| Extraction-Precision |
— |
> 85% |
Manuell gelabelte Sessions |
| Deduplizierung |
— |
< 5% False Positives |
Stichprobe |
| Speicherplatz (Tier 2) |
— |
< 100MB / 100 Sessions |
du -sh |
| Speicherplatz (Tier 3) |
— |
< 500MB / 1000 Blocks |
du -sh |
10.2 Nutzer-Metriken
| Metrik |
Baseline |
Ziel |
Messung |
| Wiederholungen pro Session |
3–5x |
< 1x |
Nutzer-Feedback |
| Session-Effizienz |
— |
+30% |
Vergleich vor/nach |
| Nutzer-Zufriedenheit |
— |
> 4/5 |
Umfrage |
| Feature-Adoption |
— |
> 80% |
Tool-Usage-Stats |
11. Offene Entscheidungen
| Entscheidung |
Optionen |
Empfehlung |
Status |
| Embedding-Modell |
A: sentence-transformers (CPU) / B: OpenAI API / C: Ollama (GPU) |
C: Ollama auf subbie |
Offen |
| Hermes Integration |
A: Plugin / B: Core-Modifikation / C: Fork |
A: Plugin |
Offen |
| Auto-Extract Trigger |
A: Nach Session / B: Nach jeder Nachricht / C: Hybrid |
C: Hybrid |
Offen |
| Migration |
A: Manuell / B: Automatisch / C: Beides |
C: Beides |
Offen |
| Deployment |
A: Direkt / B: pip / C: Docker |
A für Dev, B für Prod |
Offen |
| LLM für Extraction |
A: Gleiches Modell / B: Kleineres lokal / C: Dediziertes |
B: Ollama lokal |
Offen |
12. Anhänge
12.1 Projektstruktur
12.2 Referenzen
12.3 Glossary
| Begriff |
Definition |
| Context Rot |
Verlust von Agent-Zustand durch Context-Compression oder Session-Wechsel |
| Memory Tier |
Hierarchische Speicher-Ebene mit unterschiedlicher Geschwindigkeit und Kapazität |
| Memory Block |
Strukturierte, typisierte Memory-Einheit mit Metadaten |
| Entity-Linking |
Verknüpfung von Entitäten (Personen, Projekte, Dateien) in einem Graphen |
| Auto-Extraction |
Automatisches Erkennen und Speichern von Fakten aus Conversations |
| Session-Start Injection |
Automatisches Laden relevanter Memories in den System-Prompt |
| Embedding |
Vektor-Repräsentation von Text für semantische Suche |
| Knowledge Graph |
Graph-basierte Darstellung von Entitäten und Beziehungen |
| TTL |
Time-To-Live: Gültigkeitsdauer eines Memory Blocks |
| FTS5 |
Full-Text Search: SQLite-Erweiterung für Volltextsuche |
Konzept erstellt: Juni 2026
Version: 1.0
Autor: AI Council (3 parallele Agenten + Synthese)
Projekt: https://gitea.insight-it.de:2222/b0rbor4d/Hermes-Memory-Next-Level.git