Open-Source SQL-basierte Memory-Engine für LLMs, KI-Agenten und Multi-Agenten-Systeme. Ermöglicht persistentes, abfragbares KI-Gedächtnis mit einer einzigen Codezeile.
Memori - Detaillierte Vorstellung der Open-Source KI-Speicher-Engine
Projektübersicht
Memori ist eine Open-Source, SQL-native Speicher-Engine, die speziell für große Sprachmodelle (LLM), KI-Agenten und Multi-Agenten-Systeme entwickelt wurde. Sie ermöglicht jedem LLM mit einer einzigen Codezeile eine persistente, abfragbare Speicherfähigkeit, wobei die Speicherdaten in einer Standard-SQL-Datenbank gespeichert werden.
Kernmerkmale:
- Integration mit
memori.enable()in einer einzigen Codezeile - Speicherdaten werden in einer Standard-SQL-Datenbank (SQLite, PostgreSQL, MySQL) gespeichert, wobei der Benutzer die volle Eigentümerschaft und Kontrolle behält
- KI kann sich an Gespräche erinnern, aus Interaktionen lernen und den Kontext über mehrere Sitzungen hinweg beibehalten
Warum Memori wählen?
1. Integration mit einer Codezeile
Unterstützt OpenAI, Anthropic, LiteLLM, LangChain und jedes LLM-Framework; die Integration ist extrem einfach.
2. SQL-native Speicherung
- Portierbare, abfragbare, auditierbare Speicherdaten
- Gespeichert in Ihrer vollständig kontrollierten Datenbank
- Keine komplexen Vektordatenbanken erforderlich
3. Kostenersparnis von 80-90%
Keine teuren Vektordatenbanken erforderlich, was die Betriebskosten erheblich senkt.
4. Keine Anbieterbindung
Sie können den Speicher im SQLite-Format exportieren und jederzeit an einen beliebigen Ort migrieren.
5. Intelligentes Speichermanagement
- Automatische Entitätsextraktion
- Beziehungszuordnung
- Kontextpriorisierung
Schnellstart
Installation
pip install memorisdk
Grundlegende Verwendung
from memori import Memori
from openai import OpenAI
# Initialisierung
memori = Memori(conscious_ingest=True)
memori.enable()
client = OpenAI()
# Erstes Gespräch
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "I'm building a FastAPI project"}]
)
# Nachfolgendes Gespräch - Memori stellt automatisch den Kontext bereit
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Help me add authentication"}]
)
# Das LLM wird automatisch Informationen über Ihr FastAPI-Projekt kennen
Unterstützte Datenbanken
Memori unterstützt jede Standard-SQL-Datenbank:
| Datenbank | Verbindungszeichenfolge Beispiel |
|---|---|
| SQLite | sqlite:///my_memory.db |
| PostgreSQL | postgresql://user:pass@localhost/memori |
| MySQL | mysql://user:pass@localhost/memori |
| Neon | postgresql://user:pass@ep-*.neon.tech/memori |
| Supabase | postgresql://postgres:pass@db.*.supabase.co/postgres |
Unterstützte LLM-Frameworks
Durch das native Callback-System von LiteLLM unterstützt Memori alle gängigen Frameworks:
| Framework | Status | Verwendung |
|---|---|---|
| OpenAI | ✓ Native Unterstützung | from openai import OpenAI |
| Anthropic | ✓ Native Unterstützung | from anthropic import Anthropic |
| LiteLLM | ✓ Native Unterstützung | from litellm import completion |
| LangChain | ✓ Unterstützt | Integration über LiteLLM |
| Azure OpenAI | ✓ Unterstützt | Konfiguration mit ProviderConfig.from_azure() |
| 100+ Modelle | ✓ Unterstützt | Jeder LiteLLM-kompatible Anbieter |
Konfigurationsoptionen
Datenbankkonfiguration
from memori import Memori
memori = Memori(
database_connect="postgresql://user:pass@localhost/memori",
conscious_ingest=True, # Kurzzeit-Arbeitsspeicher
auto_ingest=True, # Dynamische Suche bei jeder Abfrage
openai_api_key="sk-..."
)
memori.enable()
Speichermodi
Conscious-Modus - Einmalige Arbeitsspeicher-Injektion
memori = Memori(conscious_ingest=True)
Auto-Modus - Dynamische Suche bei jeder Abfrage
memori = Memori(auto_ingest=True)
Kombinierter Modus - Beides
memori = Memori(conscious_ingest=True, auto_ingest=True)
Umgebungsvariablen-Konfiguration
from memori import Memori, ConfigManager
config = ConfigManager()
config.auto_load() # Lädt aus Umgebungsvariablen oder Konfigurationsdatei
memori = Memori()
memori.enable()
Umgebungsvariablen setzen:
export MEMORI_DATABASE__CONNECTION_STRING="postgresql://..."
export MEMORI_AGENTS__OPENAI_API_KEY="sk-..."
export MEMORI_MEMORY__NAMESPACE="production"
Funktionsweise
Memori funktioniert, indem es LLM-Aufrufe abfängt – vor dem Aufruf Kontext injiziert und nach dem Aufruf Informationen protokolliert:
Vor dem Aufruf (Kontextinjektion)
- Ihre Anwendung ruft
client.chat.completions.create(messages=[...])auf - Memori fängt diesen Aufruf transparent ab
- Der Retrieval Agent (Auto-Modus) oder Conscious Agent (Conscious-Modus) ruft relevante Erinnerungen ab
- Der Kontext wird in die Nachrichten injiziert, bevor sie an den LLM-Anbieter gesendet werden
Nach dem Aufruf (Protokollierung)
- Der LLM-Anbieter gibt eine Antwort zurück
- Der Memory Agent extrahiert Entitäten, klassifiziert (Fakten, Präferenzen, Fähigkeiten, Regeln, Kontext)
- Das Gespräch wird in der SQL-Datenbank mit einem Volltextsuchindex gespeichert
- Die ursprüngliche Antwort wird an Ihre Anwendung zurückgegeben
Hintergrundverarbeitung (alle 6 Stunden)
- Der Conscious Agent analysiert Muster und hebt wichtige Erinnerungen vom Langzeit- in den Kurzzeitspeicher
Anwendungsbeispiele
Grundlegende Beispiele
- Grundlegende Verwendung - Einfache Speichereinrichtung
- Persönlicher Assistent - KI-Assistent mit Gedächtnis
- Speicherabruf - Funktionsaufruf
- Erweiterte Konfiguration - Produktionseinstellungen
Mehrbenutzer-Szenarien
- Einfacher Mehrbenutzer - Benutzer-Speicherisolierung
- FastAPI-Mehrbenutzeranwendung - REST-API mit Swagger
Framework-Integrationsbeispiele
Memori bietet Integrationsbeispiele mit mehreren beliebten KI-Frameworks:
- Agno
- AWS Strands
- Azure AI Foundry
- AutoGen
- CamelAI
- CrewAI
- Digital Ocean AI
- LangChain
- OpenAI Agent
- Swarms
Online-Demos
- Persönlicher Tagebuch-Assistent - Online-Streamlit-Anwendung zum Ausprobieren
- Forschungsassistent-Agent - Online-Forschungstool zum Ausprobieren
Technische Architektur
Memori verwendet ein geschichtetes Architekturdesign:
- Abfangschicht - Transparentes Abfangen von LLM-API-Aufrufen
- Abrufschicht - Intelligenter Abruf relevanter Speicherkontexte
- Speicherschicht - Persistente Speicherung in SQL-Datenbanken
- Analyseschicht - Hintergrundanalyse und Speicheroptimierung
Detaillierte Architekturdokumentation finden Sie in der offiziellen Dokumentation unter architecture.md.
Enterprise Edition (Memori v3)
Memori öffnet eine kleine private Testgruppe für die v3-Version. Wenn Sie mehr erfahren und frühzeitig Zugang zur neuen Speicherarchitektur für Unternehmens-KI erhalten möchten, können Sie ihrem Testprogramm beitreten.
Community und Support
- Dokumentation: https://memorilabs.ai/docs
- Discord-Community: https://discord.gg/abD4eGym6v
- GitHub Issues: https://github.com/GibsonAI/memori/issues
Leitfaden für Beiträge
Memori begrüßt Beiträge aus der Community! Das Projekt bietet detaillierte Richtlinien für Beiträge, einschließlich:
- Einrichtung der Entwicklungsumgebung
- Codestil und -standards
- Einreichen von Pull Requests
- Melden von Problemen
Open-Source-Lizenz
Apache 2.0 Lizenz
Zusammenfassung
Memori ist eine leistungsstarke und benutzerfreundliche KI-Speicherlösung, die besonders geeignet ist für:
- Entwickler, die ihren LLM-Anwendungen Speicherfunktionen hinzufügen müssen
- Teams, die Multi-Sitzungs-KI-Assistenten entwickeln
- Projekte, die die Kosten für Vektordatenbanken senken müssen
- Unternehmen, die die volle Kontrolle über ihre KI-Speicherdaten wünschen
Durch das SQL-native Speicherkonzept und die Integration mit einer Codezeile senkt Memori die Hürde und die Kosten für das Hinzufügen von Speicherfunktionen zu KI-Anwendungen erheblich.