Ir al contenido

Zep - Ingeniería de Contexto y Memoria para Agentes

Zep - Ingeniería de Contexto y Memoria para Agentes

Zep es una capa de ingeniería de contexto y memoria para agentes IA. Construida sobre el motor de gráfico de conocimiento temporal Graphiti, ingiere historial de conversaciones y datos empresariales, los fusiona en un gráfico consultable que rastrea cómo cambian los hechos con el tiempo, y devuelve contexto relevante y gobernado con baja latencia para fundamentar respuestas de agentes. Ofrece un núcleo de código abierto y un servicio en la nube administrado (SOC 2 / HIPAA), con SDKs para Python, TypeScript y Go.

Instalación / Configuración

DestinoComando
SDK de Pythonpip install zep-cloud (nube)
SDK de TypeScriptnpm install @getzep/zep-cloud
Alojado automáticamente (Community Edition)ejecutar a través de Compose de Docker del proyecto
Clave APIexport ZEP_API_KEY=...

Conceptos Principales

TérminoSignificado
UsuarioUn usuario final al que el agente sirve
HiloUna sesión de conversación para un usuario
GráficoEl gráfico de conocimiento temporal de un usuario/grupo
HechoUna relación consciente del tiempo en el gráfico
Bloque de contextoContexto ensamblado y listo para inyectar

Usuarios y Hilos

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")
LlamadaDescripción
user.add(...)Crear un usuario
thread.create(...)Iniciar un hilo de conversación
thread.add_messages(...)Agregar mensajes (auto-ingestados al gráfico)
user.delete(...)Eliminar un usuario y sus datos

Agregando Memoria

zep.thread.add_messages(
    thread_id="t1",
    messages=[{"role": "user", "content": "I moved to Berlin.", "name": "Nick"}],
)

# Agregar datos empresariales no-chat directamente al gráfico
zep.graph.add(user_id="nick", type="text",
              data="Nick's subscription tier is Pro.")
LlamadaDescripción
thread.add_messages(...)Ingerir turnos de conversación
graph.add(...)Agregar texto/JSON arbitrario al gráfico
IngestaEntidades/hechos extraídos y marcados con tiempo automáticamente

Recuperando Contexto

# Obtener un bloque de contexto ensamblado para el prompt
memory = zep.thread.get_user_context(thread_id="t1")
print(memory.context)   # cadena lista para inyectar de hechos relevantes

# O consultar el gráfico directamente
edges = zep.graph.search(user_id="nick", query="where does Nick live?")
LlamadaDevuelve
thread.get_user_context(...)Un bloque de contexto sintetizado
graph.search(...)Hechos/aristas o nodos coincidentes con una consulta
Alcance de búsquedaaristas (hechos), nodos (entidades), o episodios

Por Qué Temporal

Porque Zep se basa en gráficos y es consciente del tiempo, las actualizaciones contradictorias no sobrescriben ciegamente — los hechos antiguos se invalidan con una marca de tiempo y se registran los nuevos, así el agente obtiene la verdad actual mientras el historial permanece consultable.

CapacidadBeneficio
Invalidación de hechosEl contexto actual se mantiene preciso
ProcedenciaRastrear hechos a su origen
Recuperación gobernadaContexto de baja latencia y con permisos
Sesiones cruzadasLa memoria persiste a través de hilos

Flujos de Trabajo Comunes

# El bucle del agente con memoria de Zep
zep.thread.add_messages(thread_id="t1", messages=user_turn)
context = zep.thread.get_user_context(thread_id="t1").context
# anteponer `context` al prompt del sistema LLM, luego generar

Zep vs Otras Capas de Memoria

AspectoZepMem0almacén de vectores bruto
ModeloGráfico temporal (Graphiti)Multi-tiendaSolo incrustaciones
Hechos temporalesLimitadosNo
Ensamble de contextoBloque incorporadoRecuperaciónManual
Mejor paraMemoria de agente en producciónPersonalizaciónRecuperación simple

Recursos