ELAI S.r.l.

El agente recuerda bien, pero la regla caducó: dar tiempo a la memoria

Pertinencia no implica vigencia. Un ejemplo ejecutable separa fecha efectiva, conocimiento del sistema, actualizaciones tardías y conflictos.

El agente recuerda bien, pero la regla caducó: dar tiempo a la memoria

Una respuesta documentada puede estar fuera de fecha

Un agente responde 100 MB al límite de adjuntos con documento auténtico y muy pertinente. Pero anuncia regla del próximo mes; hoy son 80 MB. No necesariamente inventa el modelo: la memoria puede conservar contenido y perder tiempo. ¿Cómo evitar confundir mismo tema con válido para esta pregunta?

Resumen. Construimos memoria con dos ejes: cuándo vale un hecho y cuándo el sistema conoce una versión. Un límite de carga sintético cambia, se conoce tarde y recibe anuncio futuro. Derivamos filtro y lo ejecutamos en SQLite, separando respaldo, ausencia y conflicto. No evaluamos modelo lingüístico ni embeddings, sino preparación determinista de evidencias.

Dos fechas responden preguntas distintas

Tiempo de validez pregunta cuándo aplica la regla; conocimiento, cuándo estaba esa versión en el sistema. Límite pasa de 50 a 80 MB el 1 de septiembre, ingesta el día 3. El día 2 mundo y archivo discrepan. Reconstruir hoy regla de ese día da 80; reconstruir lo que podía leer entonces da 50. Son reconstrucciones distintas y útiles.

Añadimos anuncio adquirido el 20 de septiembre: 100 MB desde 1 de octubre. El documento más reciente habla del futuro; elegir último timestamp tampoco resuelve pregunta actual. Nombres, cifras y documentos son sintéticos, no límites EL-AI. MB es valor de regla, no rendimiento medido.

Conservar versiones sin reescribir pasado

Cada fila guarda ID, valor, fuente e intervalos de validez y conocimiento. Semiabiertos: incluyen inicio, excluyen fin; versiones se unen el 1 de septiembre sin solapamiento. Usamos días a medianoche UTC; en producción elegir precisión y zona. 9999-12-31 representa fin desconocido, no vigencia milenaria.

Al llegar cambio el 3 de septiembre conservamos foto anterior y cerramos conocimiento. Añadimos versión corregida antigua hasta día 1 y regla de 80 MB. El día 20 cerramos foto de 80 sin fin conocido, añadimos fin el 1 de octubre y regla futura. Corrección retrospectiva no debe fingir conocimiento anterior a ingesta.

El filtro traduce pregunta en cuatro comparaciones

t es fecha preguntada y k corte de conocimiento. Una fila sirve si t está en validez y k en conocimiento. Hoy para ambas en respuesta actual; auditoría puede diferenciarlas. Separarlas evita juzgar conocimiento pasado usando silenciosamente actualizaciones posteriores.

valid_from ≤ t < valid_to known_from ≤ k < known_to

La búsqueda semántica identifica tema, no sustituye restricciones. Asignamos pertinencia sintética 0,97 a texto antiguo, 0,93 actual y 0,99 futuro. Solo ordenar elige 100 MB; filtrar al 29 de septiembre elige 80. No son probabilidades de verdad ni salidas de embeddings, sino aislamiento de error de selección.

Fecha válida tConocimiento kValor MBInterpretación
2026-09-292026-09-2980current
2026-08-202026-09-2950historical
2026-09-022026-09-2980retrospective
2026-09-022026-09-0250known_then
2026-10-022026-09-29100announced_future
2025-12-012026-09-29—missing

known_then significa archivo del día 2 decía 50, no límite real 50. Futura significa anunciado 100 desde octubre, no permitido hoy ni garantía de cumplimiento. Ausencia no es cero. La respuesta conserva matices en lenguaje natural, sin entregar solo número.

Un conflicto no se resuelve promediando

Añadimos fuente de 90 MB durante el mismo intervalo de 80, con igual ámbito y sin precedencia documentada. Ambas pasan filtro. Ningún valor: ausencia; uno: respaldo coherente disponible; varios: conflicto. No promediamos 85 ni elegimos 90 por ingesta posterior. Precedencia legítima requiere autoridad o sustitución explícita, no deseo de responder siempre.

supported no certifica verdad: filas pertinentes admitidas coinciden. Dos copias no verifican independientemente; fuente autorizada puede errar; actualización puede faltar. Separar control determinista y confianza evita atribuir capacidades inexistentes al archivo. El agente debe matizar fuentes disponibles y mostrar fuente, versión y fecha.

De regla lógica a consulta ejecutada

SELECT id, value_mb, source FROM memory WHERE valid_from <= :t AND :t < valid_to AND known_from <= :k AND :k < known_to ORDER BY id

La consulta elige evidencia, no redacta. ORDER BY id hace salida reproducible, no ordena autoridad. Parámetros ligados, no SQL concatenado. SQLite en memoria inicia con cinco filas sintéticas y añade conflicto aparte. Con conocimiento del 3 de septiembre, 31 de agosto devuelve 50 y día 1 devuelve 80: verifica extremo final excluido.

Escaneo directo cuesta O(n) comparaciones antes de ordenar. Archivos grandes pueden indexar entidad e intervalos; selectividad y plan determinan coste real, no medido aquí. Clave debe incluir producto, entorno y ámbito: mezclar servicios crea conflicto falso. Usamos uno para aislar tiempo. Más documentos no resuelven ámbito sin modelar.

Regla con conocimiento al 29 de septiembre: 50 MB antes de septiembre, 80 ese mes y 100 anunciados desde octubre. Futuro discontinuo; línea vertical fecha de respuesta. Datos sintéticos, no límites EL-AI.
Regla con conocimiento al 29 de septiembre: 50 MB antes de septiembre, 80 ese mes y 100 anunciados desde octubre. Futuro discontinuo; línea vertical fecha de respuesta. Datos sintéticos, no límites EL-AI.

La memoria incluye copias y resúmenes

Actualizar documento puede dejar fragmentos vectoriales, resumen y caché antiguos. Sin IDs de origen no sabemos qué invalidar. Conservar qué versión produjo cada fragmento o resumen. Procedencia no es verdad: la cadena no garantiza extracción correcta, pero permite revisarla al cambiar entrada.

PROV Primer de W3C describe entidades, revisiones, derivaciones y tiempos. SQL Server documenta consultas históricas FOR SYSTEM_TIME AS OF. Ninguno sustituye definir vigencia de negocio. Nuestro programa gestiona ambos intervalos explícitamente; SQLite no lo hace automáticamente.

La búsqueda debe cubrir pregunta. Tomar solo documento más cercano y descartarlo por futuro puede dar ausencia aunque exista regla vigente. Filtrar antes de selección final o ampliar candidatos evita esa pérdida, no garantiza ingesta completa. Preguntas sensibles a cambios pueden requerir fuente autorizada directa; éxito local no prueba actualidad global.

La respuesta conserva fecha, fuente y límites

Dar objeto estructurado con valor o estado, fuentes, fecha válida y fotografía de conocimiento. Mostrar alternativas en conflicto; buscar más o declarar ausencia. Redacción aún requiere control: filtro correcto no impide omitir desde octubre. Comparar valor y matices temporales con objeto sería extensión propuesta, no implementada.

Memoria útil conserva qué se dijo, cuándo aplica y cuándo se aprendió. Pertinencia elige tema, validez periodo y procedencia permite auditar. Distinguimos 80 MB hoy, 50 antes y 100 solo anunciado, sin pedir al modelo adivinar documento ganador.

Fuentes y reproducibilidad

W3C — PROV Model Primer, Working Group Note, 30 April 2013, sections 2.6–2.9.

Microsoft — Query data in a system-versioned temporal table, AS OF and historical queries.

El fragmento muestra una fotografía para leer filtro. Archivo contiene dos ejes, cinco filas, seis preguntas, conflicto y fronteras, ejecutados con Python y SQLite. Sin enviar datos a modelo externo. Resultados describen fixture, no fiabilidad general de agentes ni función disponible EL-AI.

records = [
    dict(value=50, start='2026-01-01', end='2026-09-01'),
    dict(value=80, start='2026-09-01', end='2026-10-01'),
    dict(value=100, start='2026-10-01', end='9999-12-31'),
]
for date in ('2026-08-20', '2026-09-29', '2026-10-02'):
    values = {r['value'] for r in records if r['start'] <= date < r['end']}
    status = 'missing' if not values else ('conflict' if len(values)>1 else 'supported')
    print(date, status, sorted(values))
# One knowledge snapshot only. Full archive implements both temporal axes in SQLite.

Código, datos e instrucciones · JSON. Cálculos didácticos ejecutados con Python 3.14.0; figuras con Matplotlib 3.11.2. Análisis asistido por IA, sin afirmar revisión por pares ni humana. Portada original ImageGen ilustrativa: no documenta personas, sedes ni instalaciones de EL-AI. Fuentes consultadas el 29 de septiembre de 2026.