AI Memory
Motorhead — Lightweight Redis-Backed Chat Memory Server logo

Motorhead — servidor ligero de memoria de chat sobre Redis

Motorhead es un servidor Rust open source que almacena el historial de chat en Redis, ejecuta un resumidor deslizante y expone una API REST mínima. La forma más simple de añadir "recordar los últimos N turnos + un resumen" a una app LLM.

Why Motorhead

Motorhead es la opción "justo la memoria suficiente". No extrae hechos, no construye un grafo, no soporta acotado de hechos multiusuario. Lo que hace: almacenar mensajes por sesión en Redis, mantener un resumen actualizado para que el historial no explote, y exponer una API REST con dos endpoints. Eso es todo.

El proyecto fue construido originalmente por Metal (una startup de RAG) y todavía recibe mantenimiento para bug fixes pero sin grandes novedades. Úsalo cuando necesites memoria de chat hoy, no quieras operar Postgres y encuentres Zep o mem0 más pesados de lo que el problema pide.

El coste de la simplicidad: sin memoria cross-sesión. El historial de ayer de un usuario no influye en la conversación de hoy salvo que enlaces manualmente las sesiones. Para chatbots de sesión única está bien; para asistentes que acumulan conocimiento de usuario, te quedarás corto con Motorhead.

Quick Start — Docker Compose + HTTP

Motorhead ejecuta el resumen automáticamente en cuanto una sesión supera un presupuesto de Token configurable. Siempre obtienes (a) los mensajes más recientes literales y (b) una cadena de resumen que cubre todo lo más antiguo. Inyecta ambos en tu prompt LLM.

# docker-compose.yml
# services:
#   redis: { image: redis/redis-stack:latest, ports: ["6379:6379"] }
#   motorhead:
#     image: ghcr.io/getmetal/motorhead:latest
#     ports: ["8080:8080"]
#     environment:
#       OPENAI_API_KEY: sk-...
#       REDIS_URL: redis://redis:6379
#     depends_on: [redis]

# Start the stack
docker compose up -d

# Append messages to a session
curl -X POST http://localhost:8080/sessions/s1/memory \
  -H "content-type: application/json" \
  -d '{"messages":[
    {"role":"user","content":"I want a vegan dinner recipe"},
    {"role":"assistant","content":"How about a chickpea curry?"}
  ]}'

# Fetch memory for the next LLM call
curl http://localhost:8080/sessions/s1/memory
# => { "messages": [...last N turns...], "context": "<running summary>" }

Características clave

Almacenamiento solo Redis

Sin Postgres, sin dependencia de vector DB. Redis escala horizontalmente; Motorhead escala trivialmente detrás de un load balancer.

Resumen deslizante

Cuando una sesión supera ~1K Token, Motorhead pide a un LLM resumir los turnos antiguos y conserva el resumen + los mensajes recientes. Ventana configurable.

API REST minúscula

Dos endpoints: POST messages, GET memory. Sin SDK requerido — funciona desde cualquier lenguaje con un cliente HTTP.

Agnóstico al lenguaje

Como la API es solo HTTP, la usas igual desde Python, Node, Go, Rust, Elixir. Trivial de conectar a backends de chat existentes.

Open source

Licencia Apache 2.0; self-host donde sea que corra Docker. Sin oferta gestionada (usa Upstash o el Redis gestionado de tu cloud para la infra).

Bajo overhead operativo

Un solo binario Rust + Redis. Sin workers en segundo plano, sin migraciones de esquema. Corre cómodamente en una pequeña VM para miles de sesiones concurrentes.

Comparación

 ScopeStorageCross-session memoryOperational complexity
MotorheadestaPer-session onlyRedisNoVery low
ZepPer-session + per-user factsPostgres + pgvectorYesMedium
mem0Per-user factsVector DB of choiceYesLow-medium
LangMemPer-thread (LangChain)LangChain-backedOpt-inLow

Casos de uso

01. Chatbots de sesión única

Widgets de soporte al cliente, bots de onboarding o asistentes helpdesk donde cada conversación es independiente. Motorhead te da "recordar los últimos 30 minutos" barato.

02. Prototipos y MVPs

Cuando quieres memoria funcional en una tarde sin levantar Postgres y una historia de migración. Salta a Zep o mem0 una vez que el prototipo valide.

03. Despliegues edge o sensibles a privacidad

Redis + Motorhead corre en una sola VM pequeña, on-prem o en la infra de un cliente. La ausencia de dependencia de vector DB mantiene la superficie de ataque reducida.

Precios y licencia

Motorhead: open source Apache 2.0, solo self-host. Sin oferta gestionada.

Coste de infra: una instancia de Redis (un Redis gestionado en Upstash/AWS/Redis Cloud cuesta desde 10 $/mes) + una pequeña VM para el propio Motorhead. Las llamadas LLM de resumen usan tu propia clave de OpenAI/Claude.

Límites de escalado: una sola instancia de Redis maneja cientos de miles de sesiones para tráfico de chat típico. Más allá, shardea por session_id — aplican los patrones estándar de escalado de Redis.

Preguntas frecuentes

Motorhead vs Zep — ¿cuál usar?+

Motorhead cuando las sesiones son independientes y quieres el stack lo más pequeño posible. Zep cuando necesitas memoria a nivel de usuario, búsqueda híbrida o la UI web. Zep es un superconjunto de lo que hace Motorhead.

¿Motorhead soporta múltiples usuarios?+

Indirectamente — puedes usar session_id = "${user_id}:${thread_id}". No hay un concepto de usuario de primer nivel, así que los hechos de usuario cross-sesión requieren otra capa por encima.

¿Puedo correrlo sin OpenAI?+

Sí. Apunta SUMMARIZER_API_BASE a cualquier endpoint compatible con OpenAI (Ollama, vLLM, LM Studio, LiteLLM). El resumen es el único trabajo LLM que hace Motorhead, y es configurable.

¿Sigue manteniéndose Motorhead?+

Recibe bug fixes ocasionales pero está efectivamente feature-frozen. El foco del equipo ha cambiado. Para proyectos nuevos considera Zep o mem0, pero Motorhead sigue siendo una opción sólida de stack pequeño si valoras su minimalismo.

¿Cómo migrar fuera de Motorhead después?+

Como los datos son solo claves de Redis ({session_id}:messages y {session_id}:context), la exportación es directa: SCAN + GET. Importa en Zep o mem0 reproduciendo los mensajes a través de sus APIs de ingesta respectivas.

Comparar alternativas