Was macht engram?
Ermöglicht KI-Agenten, Langzeitspeicher zu speichern, zu durchsuchen und abzurufen – mit automatischen Embeddings, Versionierung und Graphenvisualisierung.
Übersicht
intangible-sidalceamalviflora302/engram ist ein Skill für KI-Agenten, der eine persistente Gedächtnisfunktion bereitstellt. Der Agent kann Informationen speichern, indem er einen Text oder ein Dokument einreicht, das automatisch in ein Embedding (Vektorrepräsentation) umgewandelt wird. Diese Embeddings ermöglichen semantische Ähnlichkeitssuchen, sodass der Agent später relevante Gedächtniseinträge auf der Grundlage einer Abfrage (natürliche Sprache) finden kann. Der Skill verwaltet außerdem die Versionierung von Gedächtniseinträgen – wenn der Agent einen Eintrag aktualisiert, wird die alte Version erhalten, sodass der Verlauf nachvollziehbar bleibt.
Der Skill kann auf verschiedenen Plattformen wie Claude Code, Cursor, Codex und anderen laufen, die Skills unterstützen. Die Konfiguration erfolgt über Umgebungsvariablen oder eine lokale Konfigurationsdatei; die Daten werden entweder lokal in einer SQLite-Datenbank oder in einer PostgreSQL-Datenbank gespeichert.
Verwendung
Initialisierung
# Skill aktivieren (Beispiel mit Claude Code)
agent add skill intangible-sidalceamalviflora302/engram
Speichern einer Erinnerung
engram store "Der Kunde XYZ bevorzugt E-Mail-Kommunikation für Updates."
Durchsuchen von Erinnerungen
engram search "Bevorzugte Kommunikationsmethode von Kunde XYZ"
Versionen anzeigen
engram history <id>
Graph-Visualisierung
engram graph
Konfiguration
| Umgebungsvariable | Beschreibung | Standard |
|---|---|---|
ENGRAM_DB_PATH | Pfad zur Datenbankdatei | ./engram.db |
ENGRAM_EMBEDDING_MODEL | Modell für Embeddings | all-MiniLM-L6-v2 |
ENGRAM_GRAPH_PORT | Port für den Visualisierungsserver | 8080 |
Beispiel für API-Nutzung (programmatisch)
from engram import Engram
engram = Engram()
# Speichern
engram.store("Besprechung: 2024-03-01, Entscheidung zu Architektur X")
# Suchen
results = engram.search("Architekturentscheidungen")
print(results)
# In Graph anzeigen
engram.start_graph_server()
Lizenz
MIT