Si usas asistentes de código con IA, conoces la frustración. Terminas una sesión larga — debugging, refactors, exploración de una codebase nueva — y al día siguiente el agente abre una terminal en blanco. No recuerda nada. No sabe qué decidiste sobre la arquitectura, ni qué reglas acordaste para el proyecto, ni por qué descartaste esa librería después de dos horas de pruebas.
Cada sesión empieza de cero.
Ese problema — el blank slate o pizarra en blanco — es el talón de Aquiles de los coding agents actuales. Y Xiaomi acaba de lanzar algo que lo ataca de frente.
El problema de la memoria en los coding agents
Los asistentes de código más conocidos funcionan con contexto efímero. Abres una conversación, el agente recibe el estado actual del proyecto y algunos mensajes anteriores, pero en cuanto cierras la terminal, todo se pierde. El modelo no tiene dónde guardar lo que aprendió.
Hay soluciones parciales — archivos de instrucciones, reglas por proyecto, sistemas de prompts predefinidos — pero ninguna permite que el agente acumule conocimiento orgánicamente a medida que trabaja. Todo lo que descubre en una sesión larga (qué módulos tienen problemas de acoplamiento, qué patrón decidiste seguir, qué funciones están deprecadas pero aún en uso) desaparece cuando el contexto expira.
Xiaomi se preguntó: ¿y si el agente pudiera escribir su propia memoria?
Cómo funciona MiMo-Code
MiMo-Code es un coding agent nativo de terminal que Xiaomi liberó como open source (licencia MIT) el 10 de junio de 2026, basado en un fork de OpenCode. Su idea central es simple pero poderosa: en lugar de depender solo de la ventana de contexto del modelo, el agente escribe persistentemente en archivos markdown dentro del repositorio del proyecto, y los usa para reconstruir su estado cuando vuelve a trabajar.
El sistema tiene tres tipos de memoria:
MEMORY.md — el archivo principal. Aquí el agente guarda conocimiento persistente del proyecto: decisiones de arquitectura, reglas de estilo, detalles sobre cómo está organizado el código, dependencias importantes, advertencias. Es lo que el agente “sabe” sobre el proyecto y que no debería olvidar entre sesiones. Está pensado para que sea legible por humanos — puedes abrirlo y ver exactamente qué información retiene tu agente.
checkpoint.md — una instantánea estructurada del estado de la sesión actual. Un subagente escritor de checkpoints decide cuándo guardar basándose en el tamaño del contexto del modelo. Cuando retomas una sesión, el agente reconstruye el contexto desde el checkpoint más reciente, combinándolo con MEMORY.md, el progreso de tareas y los mensajes recientes retenidos.
notes.md — un área de notas temporales que el agente usa para apuntes rápidos durante una sesión. No está diseñada para persistir entre proyectos, sino para darle al agente un bloc de notas donde garabatear ideas sin ensuciar la memoria permanente.
Tareas (tasks/<id>/progress.md) — registros de progreso por tarea individual, permitiendo que el agente retome trabajos a medio terminar sabiendo exactamente en qué punto se quedó.
Toda esta información es indexada con SQLite FTS5 (Full-Text Search), lo que permite al agente buscar eficientemente en su propia memoria cuando necesita recuperar un detalle específico. Y todo es markdown legible — puedes abrir los archivos, editarlos a mano si quieres corregir algo, o simplemente leer lo que el agente ha aprendido sobre tu proyecto.
La clave es la inyección inteligente: MiMo-Code no mete toda la memoria en cada llamada al modelo. Usa un presupuesto de tokens para controlar cuánto contenido de checkpoint, memoria y notas entra en contexto, priorizando lo más relevante según la tarea actual.
Dream: el agente que sueña cada 7 días
El nombre suena poético, pero “dream” es un mecanismo de mantenimiento bastante práctico.
Cada 7 días — automáticamente, sin que el usuario lo pida — MiMo-Code lanza un agente independiente que revisa el historial de sesiones recientes y el archivo de memoria actual. Lo que hace es esencialmente una limpieza y compactación:
- Deduplica: si hay información repetida en varias entradas de memoria, las fusiona en una sola.
- Valida rutas: si alguna referencia a archivos o directorios ha cambiado (por refactors, movimientos, renombres), las actualiza.
- Comprime: reduce la verbosidad de la memoria, manteniendo solo lo relevante y eliminando ruido de sesiones pasadas.
- Extrae persistencia: identifica qué información de las sesiones recientes merece pasar a MEMORY.md y cuál debe descartarse.
Es como si el agente “durmiera” sobre lo que ha aprendido, consolidara sus recuerdos y descartara lo superfluo. Sin intervention manual. El resultado es que la memoria no crece indefinidamente — se mantiene compacta, relevante y actualizada.
Distill: convertir trabajo repetitivo en skills
Si dream es el proceso de consolidación pasiva, distill es la extracción activa de conocimiento reutilizable.
Distill es un comando que invocas manualmente. Su trabajo es analizar el trabajo reciente del agente, detectar patrones que se repiten (flujos de trabajo manuales que haces a menudo, secuencias de comandos que siempre ejecutas juntos, configuraciones que pones una y otra vez) y empaquetarlos como skills reutilizables.
Concretamente, distill puede generar tres tipos de salida:
- Skills: capacidades que el agente puede ejecutar bajo demanda, encapsulando pasos repetitivos en una sola instrucción.
- Subagentes: agentes especializados que se crean para manejar tareas recurrentes completas.
- Comandos personalizados: atajos para secuencias de acciones que antes requerían múltiples pasos manuales.
La promesa aquí es que un agente que usas durante semanas o meses se vuelve más eficiente con el tiempo, no porque el modelo subyacente mejore, sino porque acumula un repertorio cada vez más rico de knowledge artifacts específicos de tu forma de trabajar.
¿Qué significa realmente el 65% de efectividad?
Xiaomi publicó los resultados de un estudio A/B doble ciego con 576 desarrolladores y 474 repositorios privados, comparando MiMo-Code con Claude Code. Los números son interesantes:
En tareas de menos de 200 pasos de ejecución, ambos agentes se comportan prácticamente igual — alrededor del 50% de preferencia para cada uno. Es lógico: en tareas cortas, el contexto efímero alcanza. No necesitas memoria persistente para arreglar un bug pequeño o escribir una función.
Pero cuando las tareas superan los 200 pasos de ejecución, la balanza se inclina: MiMo-Code gana con más del 65% de preferencia. Eso es un salto significativo y directamente atribuible a la memoria entre sesiones. Cuando el trabajo se extiende por horas o días, recordar lo que ya se hizo y lo que se aprendió marca la diferencia.
Es importante poner esto en contexto: el estudio es de Xiaomi (autoreportado) y la herramienta tiene apenas días de vida pública. No hay replicación independiente todavía. Pero la metodología — doble ciego, con jueces humanos, sobre repositorios reales — es sólida, y el tamaño de la muestra (576 desarrolladores) es respetable.
También hay una métrica complementaria: SWE-bench reporta 57.2% para MiMo-Code, un número respetable pero no revolucionario. El 65% no es un benchmark estándar, sino una medición de preferencia humana en tareas del mundo real — que al final es lo que importa.
Conexión con el ecosistema open source
MiMo-Code no nació de la nada. Es un fork de OpenCode, un coding agent open-source ya existente en el ecosistema. Xiaomi tomó esa base y le añadió el sistema de memoria, los comandos dream/distill, el sistema de subagentes y los tres modos de operación (build, plan, compose).
Esto importa por dos razones.
Primero, porque OpenCode ya tenía una comunidad y una base de código probada. Xiaomi no reinventó la rueda — integró memoria persistente en un agente funcional, y lo liberó de vuelta a la comunidad como MIT. Cualquier proyecto derivado de OpenCode puede potencialmente beneficiarse de estas ideas.
Segundo, porque este movimiento valida una estrategia: en lugar de competir en el modelo base (donde el costo de entrada es astronómico), se puede competir en la arquitectura del agente — cómo gestiona contexto, cómo persiste conocimiento, cómo automatiza su propio mantenimiento. Es una dirección prometedora para el ecosistema.
Lo que esto significa para el futuro
MiMo-Code señala una dirección clara para los coding agents: la memoria persistente y auto-gestionada va a ser un diferenciador clave.
Hoy, la mayoría de los asistentes de código son “tontos” entre sesiones. Mañana, los agentes que aprendan y retengan conocimiento tendrán una ventaja cualitativa en proyectos grandes. No porque el modelo sea más inteligente, sino porque el sistema que lo envuelve es más sofisticado.
Algunas implicaciones que vale la pena observar:
Proyectos longevos, agentes que envejecen bien: un agente que trabaja en el mismo proyecto durante meses acumula un conocimiento contextual que ningún prompt inicial puede igualar. Sabe dónde están los antipatrones, qué convenciones se usan, qué partes del código son frágiles.
Colaboración humano-agente más natural: cuando el agente recuerda conversaciones anteriores, la interacción se parece más a trabajar con un colega que a preguntarle a un buscador cada vez. No tienes que repetir contexto.
Automatización del mantenimiento: dream y distill muestran que los agentes pueden mantener su propia memoria sin intervención humana. La dirección hacia agentes más autónomos pasa por aquí.
Riesgo de deuda de memoria: también hay una cara menos brillante. Si la memoria se corrompe (información incorrecta que persiste por ciclos de dream), si crece sin control o si el agente confía demasiado en recuerdos desactualizados, puede generar problemas nuevos. La gestión de la calidad de la memoria será un área importante.
Por ahora, MiMo-Code acaba de nacer. Pero ha puesto un marcador en el mapa: los coding agents que recuerdan van a ser la norma, no la excepción. Y el “sueño” de Xiaomi cada 7 días puede ser el primer paso hacia agentes que realmente aprenden con la experiencia.
Fuente principal: Xiaomi — MiMo-Code GitHub