Zum Inhalt springen

Zep - Context Engineering & Memory for Agents Cheatsheet

Zep - Context Engineering & Memory for Agents Cheatsheet

Zep ist eine Memory und Context-Engineering Layer für AI Agenten. Aufgebaut auf dem Graphiti Temporal Knowledge Graph Engine, nimmt es Gesprächshistorie und Business Daten auf, verschmilzt sie zu einem abfragbaren Graph, der verfolgst wie Fakten sich über Zeit ändern, und gibt relevant regierte Kontext mit niedriger Latenz zurück um Agent Antworten zu grundieren. Es bietet einen Open-Source Core und einen verwalteten Cloud Service (SOC 2 / HIPAA), mit SDKs für Python, TypeScript und Go.

Installation / Setup

ZielBefehl
Python SDKpip install zep-cloud (Cloud)
TypeScript SDKnpm install @getzep/zep-cloud
Self-Hosted (Community Edition)führe via des Projekt Docker Compose aus
API Schlüsselexport ZEP_API_KEY=...

Core Concepts

BegriffBedeutung
UserEin End User, den der Agent dient
ThreadEine Konversations Sitzung für einen User
GraphDer Temporal Knowledge Graph eines Users/Group
FaktEine Zeit-aware Beziehung im Graph
Context BlockZusammengesetzte, ready-to-inject Kontext String

Users & Threads

from zep_cloud.client import Zep
zep = Zep(api_key="...")

zep.user.add(user_id="nick", email="nick@example.com")
zep.thread.create(thread_id="t1", user_id="nick")
CallBeschreibung
user.add(...)Erstelle einen User
thread.create(...)Starte einen Konversations Thread
thread.add_messages(...)Hänge Nachrichten an (Auto-aufgenommen zum Graph)
user.delete(...)Entferne einen User und deren Daten

Memory hinzufügen

zep.thread.add_messages(
    thread_id="t1",
    messages=[{"role": "user", "content": "Ich bin nach Berlin gezogen.", "name": "Nick"}],
)

# Nicht-Chat Business Daten direkt zum Graph hinzufügen
zep.graph.add(user_id="nick", type="text",
              data="Nicks Subscription Tier ist Pro.")
CallBeschreibung
thread.add_messages(...)Aufnahme Konversations Wendungen
graph.add(...)Hänge beliebigen Text/JSON zum Graph
AufnahmeEntitäten/Fakten werden automatisch extrahiert und Zeit-gestempelt

Kontext abrufen

# Erhalte einen zusammengesetzten Kontext Block für den Prompt
memory = zep.thread.get_user_context(thread_id="t1")
print(memory.context)   # ready-to-inject String von relevanten Fakten

# Oder direktabfrage den Graph
edges = zep.graph.search(user_id="nick", query="wo lebt Nick?")
CallGibt zurück
thread.get_user_context(...)Ein synthetisierter Kontext Block
graph.search(...)Fakten/Edges oder Nodes Abfrage matching
Such UmfangEdges (Fakten), Nodes (Entitäten), oder Episodes

Warum Temporal

Weil Zep Graph-basiert und Zeit-aware ist, überschreiben widersprechende Updates nicht blind — alte Fakten werden mit Zeit-stamp ungültig und neue werden aufgezeichnet, damit der Agent die aktuelle Wahrheit erhält, während Geschichte abfragbar bleibt.

FähigkeitNutzen
Fakt UngültigkeitAktuelle Kontext bleibt genau
NachverfolgungVerfolgung Fakten zu ihrer Quelle
Regierte RetrievalLow-Latency, Permissioned Kontext
Cross-SessionMemory persistiert über Threads

Common Workflows

# Der Agent Loop mit Zep Memory
zep.thread.add_messages(thread_id="t1", messages=user_turn)
context = zep.thread.get_user_context(thread_id="t1").context
# voranstellen `context` zum deinem LLM System Prompt, dann generieren

Zep vs Andere Memory Layers

AspektZepMem0Rohes Vector Store
ModellTemporal Graph (Graphiti)Multi-TierNur Embeddings
Temporal FaktenJaBegrenztNein
Kontext AssemblyBuilt-in BlockRetrievalManuell
Beste fürProduction Agent MemoryPersonalisierungSimple Recall

Ressourcen