Memoria de agentes de IA: working memory, lo que ha pasado y estado de negocio
Working memory, recuerdos de interacciones anteriores y estado de negocio: qué guarda un agente en la tarea, entre sesiones y qué no debe ir al contexto.

Un agente que resuelve tareas en varios pasos necesita saber en qué punto va, qué ha probado antes y, a veces, qué conviene recordar la próxima vez. Eso no es lo mismo que meter todo el historial del chat en cada turno. En un SaaS, además, cada cuenta de cliente tiene su propio límite de qué puede quedar guardado y durante cuánto tiempo.
Este artículo responde qué debe recordar un agente durante una tarea, qué entre sesiones y qué nunca debe mezclarse con el contexto que lee el modelo en cada paso.
Si buscas el mapa de capas (modelo, acciones, permisos, registro), está en el modelo no es el agente. Si buscas el bucle que orquesta tools y contexto, en el harness del agente. Aquí el foco es la memoria: working memory, recuerdos de interacciones anteriores y estado de negocio.
Tres cosas distintas: contexto, estado y memoria
En reuniones suelen usarse como sinónimos. En producción no lo son.
Contexto es lo que el harness coloca delante del modelo en este turno: instrucciones, mensajes recientes, resultados de tools y trozos de documentos. Tiene coste en tokens y se reconstruye en cada paso. No es un almacén fiable; es el maletín de este viaje.
Estado es lo que el sistema sabe de esta tarea ahora: identificadores de pedido o ticket, paso del flujo, último error, si hay una aprobación humana pendiente. Vive en base de datos o en un registro de ejecución, no en el chat. Si solo existe en el hilo, no hay estado: hay texto que el modelo vuelve a leer.
Memoria es lo que puede seguir sirviendo después de cerrar la tarea: preferencias del usuario, resúmenes de incidencias pasadas, hechos que el cliente ya confirmó. Debe estar particionada por cuenta de cliente, con reglas de retención y borrado.
Mezclar las tres produce el síntoma clásico: "el agente se acordaba" porque alguien reinyectó el hilo entero, incluidos datos de otro cliente o instrucciones obsoletas. En identidad y permisos ya vimos por qué eso es un riesgo de fuga, no un truco de producto.
Working memory: lo que necesita ahora
La working memory (memoria de trabajo) es el conjunto acotado de hechos que el agente necesita en esta tarea para decidir el siguiente paso sin volver a preguntar lo obvio.
Ejemplos en un SaaS de soporte:
El
ticket_idy la cuenta de cliente ya validada.Que la última tool devolvió
not_foundpara ese pedido.Que el usuario eligió "reembolso parcial" hace dos mensajes.
Eso puede aparecer en el contexto del modelo, pero la fuente de verdad no debería ser solo el chat. El harness puede mantener un objeto de working memory que se actualiza cuando una tool responde y del que se extrae un resumen breve para el modelo.
Reglas que funcionan:
Pocos campos, nombres estables.
current_order_id, no párrafos narrativos.TTL por tarea. Cuando la tarea termina o expira, la working memory de esa ejecución se archiva o se borra.
No duplicar lo que ya está en el estado de negocio. Si el pedido está en estado
awaiting_approvalen la API de negocio, no hace falta que el modelo "recuerde" eso solo en texto.
La working memory no sustituye a las tools con contrato claro: si el agente necesita el estado actual del pedido, una lectura con permisos suele ser más fiable que un recuerdo de hace diez turnos.
Memoria de lo que ha pasado en tareas anteriores
La memoria de lo que ha pasado guarda recuerdos de interacciones anteriores: qué se intentó, qué funcionó, qué falló, a veces con un resumen en lenguaje natural.
Sirve para continuidad entre sesiones:
"La semana pasada este cliente ya rechazó un reembolso automático; pidió revisión manual."
"En proyectos similares, la integración con su ERP falló por un campo de moneda."
No es un volcado del chat anterior. Es un registro estructurado o un resumen generado después de la tarea, con metadatos: cuenta de cliente, fecha, tipo de tarea, confianza, enlace a la traza si hace falta auditar.
Riesgos si se hace mal:
Contaminación entre clientes. Un registro indexado sin
tenant_idpuede reaparecer en la cuenta equivocada.Verdad obsoleta. Un recuerdo que dice "el plan no incluye API" cuando el producto ya cambió empuja al modelo a actuar mal.
Coste oculto. Buscar en miles de entradas del historial en cada turno sin filtrar por relevancia infla latencia y tokens.
Patrón sano: escribir un resumen al cerrar la tarea (éxito o fallo), buscar solo los N más relevantes para la intención actual y dejar claro en el prompt que son pistas, no permisos. Los permisos siguen en el sistema.
LangChain documenta taxonomías de memoria (buffer, resumen, entidades). En producción SaaS la pregunta no es qué clase de buffer elegir, sino qué merece guardarse en el historial y quién puede leerlo.
Estado de negocio: pedido, ticket, aprobación pendiente
El estado de negocio es el que ya vive en el producto: el ticket en open, el pedido en shipped, la factura en dispute. El agente no lo inventa; lo lee y, a veces, lo actualiza con tools.
Confundir estado de negocio con memoria del modelo es un error frecuente. El modelo puede proponer update_ticket_status; el sistema valida, ejecuta y persiste. Lo que queda en la base de datos es la fuente de verdad. Lo que el modelo "cree" que pasó sin comprobarlo es opinión.
Cuando el flujo tiene pasos humanos (aprobación de reembolso, firma legal), el estado debería reflejar pending_approval en el dominio de negocio, no un mensaje del asistente que dice "esperando al jefe". Así otro canal (email, panel de admin) puede continuar la misma tarea.
Para tareas largas, el harness puede rehidratar el contexto del modelo desde el estado de negocio al reanudar: "tarea X, paso 3, última tool get_order, resultado shipped". Eso es recuperación de ejecución, no memoria mágica del LLM.
Qué va delante del modelo y qué vive fuera
Regla práctica: el modelo ve texto suficiente para decidir el siguiente paso, no un volcado de todo lo que el sistema sabe.
Vive fuera del contexto (sistema) | Puede entrar al contexto (resumido) |
|---|---|
Traza completa de tools y payloads | Último error accionable y código estable |
Estado de negocio en base de datos | Identificadores y estado actual en una línea |
Historial de interacciones íntegro | Dos o tres resúmenes relevantes con fecha |
Secretos, tokens, PII de otros clientes | Nunca |
El harness decide cuándo compactar mensajes, cuándo llamar a RAG (recuperar documentos) y cuándo pedir una lectura fresca con una tool en lugar de confiar en un resumen viejo.
No todo problema es de memoria. Si la decisión es cerrada ("¿es read-only?", "¿supera el umbral de riesgo?"), un clasificador tipado como en Jev AI puede devolver una etiqueta sin cargar el historial de interacciones en el prompt. Conviene reservar memoria entre sesiones para lo que de verdad gana contexto histórico.
Borrado, retención y RGPD en SaaS
La memoria en un SaaS multi-tenant es dato personal y dato de cliente a la vez. Conviene tratarla como cualquier otro almacén:
Partición por cuenta de cliente en registros del historial, índices vectoriales y preferencias.
Política de retención (por ejemplo 90 días para resúmenes de soporte, menos para pruebas).
Derecho de supresión: si un cliente pide borrado, hay que poder eliminar esos recuerdos y preferencias sin dejar copias solo en el contexto por defecto del modelo (los proveedores pueden tener sus propias reglas de retención en API; conviene documentar qué se envía al proveedor).
Minimización: no guardar en memoria lo que ya está en el CRM o en el ticket; guardar el puntero (
ticket_id) y dejar que la tool lea el detalle cuando haga falta.
La trazabilidad ayuda a demostrar qué memoria influyó en una decisión. Sin registro, "el agente lo recordaba" no es auditable ante un cliente ni ante un regulador.
Errores típicos (mezclar todo en el prompt)
Memoria = historial de chat infinito. Crece el coste, empeora la atención del modelo y mezcla tareas distintas en un solo hilo.
RAG como memoria universal. Los documentos recuperados no sustituyen el estado del pedido ni los permisos; son contexto, no autorización.
Recuerdos sin caducidad. El agente actúa con políticas de hace un año.
Un solo índice vectorial para todos los clientes. Riesgo de recuperar fragmentos de otra cuenta si el filtro por tenant falla una vez.
Escribir memoria desde el modelo sin validar. Si el asistente "resume" que el cliente aceptó un cargo y eso se guarda como hecho, se crea deuda legal y de producto.
Mapa de decisión
Pregunta | Si la respuesta es sí | Dónde guardarlo |
|---|---|---|
¿Hace falta solo para terminar esta tarea? | Working memory + estado de ejecución | Harness / registro de tarea |
¿Debe sobrevivir a la sesión y ayudar en tareas futuras? | Memoria entre sesiones o preferencias | Almacén por tenant, con retención |
¿Ya existe en el producto (pedido, ticket)? | Estado de negocio | API de negocio / base de datos |
¿Es un hecho verificable ahora? | No memorizar; leer con tool | Contrato de tool + permisos |
¿Es una regla fija de riesgo? | Clasificador o política | Código, no prompt |
Cuando el mapa está claro, el siguiente paso suele ser endurecer qué devuelven las tools y qué entradas del historial se indexan, no alargar las instrucciones del sistema.
Si el agente ya está en piloto, una traza real ayuda: separar qué era contexto, qué era estado en base de datos y qué quedó como memoria persistente. Ahí se ve si el diseño aguanta producción o si solo funcionaba porque el hilo era corto.
Convierte tu SaaS en AI-Native
Obten una prueba gratis solo con registrarte
Últimos blogs





