Saltar al contenido
Explorar conocimiento

patrón · intermedio · 5 min de lectura

Memory

Memory en sistemas de IA permite que un agente recuerde información entre turnos, sesiones o tareas, habilitando conversaciones coherentes y trabajo multi-paso con contexto persistente.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • memory in AI agents: short-term (context window), working (conversation state), long-term (persistent storage), and episodic memory
  • practical implementations: in-context, external vector store, structured summaries
  • trade-offs: context limit, retrieval cost, staleness, privacy

No cubre

  • database design for memory storage
  • fine-tuning models for memory
  • neural network memory architectures (LSTM, transformers)

Supone

  • The reader understands basic LLM applications, conversations, and tool use.

Resumen

La memoria en sistemas de IA es la capacidad de un agente para recordar y usar información más allá de la entrada inmediata. Sin memoria, cada interacción comienza desde cero: el modelo no sabe qué dijo antes, qué decisiones tomó ni qué datos ya obtuvo.

Existen varios tipos de memoria: la memoria a corto plazo (el contexto o ventana de atención del modelo), la memoria de trabajo (el estado de la conversación o tarea actual), la memoria a largo plazo (información persistente entre sesiones) y la memoria episódica (registro de interacciones pasadas relevantes).

Alcance y supuestos

Este paquete cubre memoria en agentes IA: tipos de memoria, implementaciones prácticas (en contexto, almacenamiento externo, resúmenes estructurados), y trade-offs entre capacidad, costo, frescura y privacidad.

No cubre arquitecturas de memoria neuronales (LSTM, transformers), diseño de bases de datos, ni fine-tuning de modelos para memoria. Asume que entiendes conceptos básicos de LLMs, conversaciones multi-turno y tool use.

Modelo mental

Piensa en la memoria de un agente como el escritorio de un asistente humano. Sobre el escritorio (memoria a corto plazo) solo cabe información limitada — lo que está viendo ahora. En los cajones (memoria a largo plazo) guarda notas, contactos y expedientes que puede consultar cuando los necesita. Entre tareas, toma notas de lo que hizo (memoria episódica) para no repetir errores.

El desafío no es solo almacenar, sino saber qué recordar y cuándo. Recordar todo es costoso y ruidoso. Recordar nada hace al agente inútil para tareas que requieren continuidad.

Uso práctico

Usa memoria cuando la tarea requiere continuidad entre interacciones:

  • ✅ Asistentes de soporte que necesitan recordar el historial del ticket.
  • ✅ Agentes multi-paso que recopilan información progresivamente.
  • ✅ Aplicaciones que personalizan respuestas según preferencias del usuario.
  • ❌ Consultas únicas sin necesidad de contexto previo.
  • ❌ Tareas donde la información relevante siempre está en la entrada actual.

Ejemplo trabajado: agente de soporte con memoria de conversación

Un agente que resuelve tickets necesita recordar lo que el usuario ya dijo y las acciones que ya tomó:

interface AgentMemory {
  shortTerm: string[];       // mensajes de la conversación actual
  longTerm: Record<string, unknown>;  // datos persistentes del usuario
  taskState: {               // progreso de la tarea actual
    completedActions: string[];
    pendingInfo: string[];
  };
}

const memory: AgentMemory = {
  shortTerm: [],
  longTerm: { userId: "usr_123", plan: "premium" },
  taskState: { completedActions: [], pendingInfo: ["orden de compra"] },
};

async function handleMessage(message: string, memory: AgentMemory) {
  // Agregar al contexto de corto plazo
  memory.shortTerm.push(`Usuario: ${message}`);

  // Construir prompt con memoria disponible
  const context = `
Historial reciente: ${memory.shortTerm.join("\n")}
Datos del usuario: ${JSON.stringify(memory.longTerm)}
Tarea en progreso: ${JSON.stringify(memory.taskState)}
`.trim();

  const response = await llm.complete({ prompt: context });
  memory.shortTerm.push(`Asistente: ${response}`);

  // Gestión de memoria a largo plazo: resumir si el contexto crece mucho
  if (memory.shortTerm.length > 20) {
    const summary = await llm.complete({
      prompt: `Resume esta conversación para mantener contexto:\n${memory.shortTerm.join("\n")}`,
    });
    memory.shortTerm = [summary];
  }

  return response;
}

La memoria a largo plazo se escribe en una base de datos y se recupera al iniciar cada sesión. La memoria episódica puede registrarse como log para auditoría o para que el agente aprenda de interacciones pasadas.

Evidencia

Fuentes citadas