Se você usa assistentes de código com IA, conhece a frustração. Você termina uma sessão longa — debugging, refactors, exploração de uma codebase nova — e no dia seguinte o agente abre um terminal em branco. Não lembra de nada. Não sabe o que você decidiu sobre a arquitetura, nem quais regras foram acordadas para o projeto, nem por que você descartou aquela biblioteca depois de duas horas de testes.
Cada sessão começa do zero.
Esse problema — o blank slate ou quadro em branco — é o calcanhar de Aquiles dos coding agents atuais. E a Xiaomi acaba de lançar algo que o ataca de frente.
O problema da memória nos coding agents
Os assistentes de código mais conhecidos funcionam com contexto efêmero. Você abre uma conversa, o agente recebe o estado atual do projeto e algumas mensagens anteriores, mas assim que você fecha o terminal, tudo se perde. O modelo não tem onde guardar o que aprendeu.
Existem soluções parciais — arquivos de instruções, regras por projeto, sistemas de prompts predefinidos — mas nenhuma permite que o agente acumule conhecimento organicamente à medida que trabalha. Tudo o que ele descobre em uma sessão longa (quais módulos têm problemas de acoplamento, qual padrão você decidiu seguir, quais funções estão depreciadas mas ainda em uso) desaparece quando o contexto expira.
A Xiaomi se perguntou: e se o agente pudesse escrever sua própria memória?
Como funciona o MiMo-Code
MiMo-Code é um coding agent nativo de terminal que a Xiaomi liberou como open source (licença MIT) em 10 de junho de 2026, baseado em um fork do OpenCode. Sua ideia central é simples mas poderosa: em vez de depender apenas da janela de contexto do modelo, o agente escreve persistentemente em arquivos markdown dentro do repositório do projeto, e os usa para reconstruir seu estado quando volta a trabalhar.
O sistema tem três tipos de memória:
MEMORY.md — o arquivo principal. Aqui o agente guarda conhecimento persistente do projeto: decisões de arquitetura, regras de estilo, detalhes sobre como o código está organizado, dependências importantes, avisos. É o que o agente “sabe” sobre o projeto e que não deveria esquecer entre sessões. Foi feito para ser legível por humanos — você pode abri-lo e ver exatamente quais informações seu agente retém.
checkpoint.md — um instantâneo estruturado do estado da sessão atual. Um subagente escritor de checkpoints decide quando salvar com base no tamanho do contexto do modelo. Quando você retoma uma sessão, o agente reconstrói o contexto a partir do checkpoint mais recente, combinando-o com MEMORY.md, o progresso de tarefas e as mensagens recentes retidas.
notes.md — uma área de notas temporárias que o agente usa para anotações rápidas durante uma sessão. Não foi projetada para persistir entre projetos, mas sim para dar ao agente um bloco de notas onde rabiscar ideias sem sujar a memória permanente.
Tarefas (tasks/<id>/progress.md) — registros de progresso por tarefa individual, permitindo que o agente retome trabalhos pela metade sabendo exatamente em que ponto parou.
Toda essa informação é indexada com SQLite FTS5 (Full-Text Search), o que permite ao agente buscar eficientemente em sua própria memória quando precisa recuperar um detalhe específico. E tudo é markdown legível — você pode abrir os arquivos, editá-los manualmente se quiser corrigir algo, ou simplesmente ler o que o agente aprendeu sobre seu projeto.
A chave é a injeção inteligente: o MiMo-Code não coloca toda a memória em cada chamada ao modelo. Ele usa um orçamento de tokens para controlar quanto conteúdo de checkpoint, memória e notas entra no contexto, priorizando o mais relevante de acordo com a tarefa atual.
Dream: o agente que sonha a cada 7 dias
O nome soa poético, mas “dream” é um mecanismo de manutenção bastante prático.
A cada 7 dias — automaticamente, sem que o usuário peça — o MiMo-Code lança um agente independente que revisa o histórico de sessões recentes e o arquivo de memória atual. O que ele faz é essencialmente uma limpeza e compactação:
- Deduplica: se há informação repetida em várias entradas de memória, ele as funde em uma só.
- Valida caminhos: se alguma referência a arquivos ou diretórios mudou (por refactors, movimentações, renomes), ele as atualiza.
- Comprime: reduz a verbosidade da memória, mantendo apenas o relevante e eliminando ruído de sessões passadas.
- Extrai persistência: identifica quais informações das sessões recentes merecem ir para MEMORY.md e quais devem ser descartadas.
É como se o agente “dormisse” sobre o que aprendeu, consolidasse suas memórias e descartasse o supérfluo. Sem intervenção manual. O resultado é que a memória não cresce indefinidamente — ela se mantém compacta, relevante e atualizada.
Distill: converter trabalho repetitivo em skills
Se dream é o processo de consolidação passiva, distill é a extração ativa de conhecimento reutilizável.
Distill é um comando que você invoca manualmente. Seu trabalho é analisar o trabalho recente do agente, detectar padrões que se repetem (fluxos de trabalho manuais que você faz com frequência, sequências de comandos que sempre executa juntos, configurações que você repete toda hora) e empacotá-los como skills reutilizáveis.
Concretamente, distill pode gerar três tipos de saída:
- Skills: capacidades que o agente pode executar sob demanda, encapsulando passos repetitivos em uma única instrução.
- Subagentes: agentes especializados que são criados para lidar com tarefas recorrentes completas.
- Comandos personalizados: atalhos para sequências de ações que antes exigiam múltiplos passos manuais.
A promessa aqui é que um agente que você usa durante semanas ou meses se torna mais eficiente com o tempo, não porque o modelo subjacente melhora, mas porque ele acumula um repertório cada vez mais rico de knowledge artifacts específicos do seu jeito de trabalhar.
O que significa realmente os 65% de efetividade?
A Xiaomi publicou os resultados de um estudo A/B duplo-cego com 576 desenvolvedores e 474 repositórios privados, comparando MiMo-Code com Claude Code. Os números são interessantes:
Em tarefas de menos de 200 passos de execução, ambos os agentes se comportam praticamente igual — cerca de 50% de preferência para cada um. É lógico: em tarefas curtas, o contexto efêmero é suficiente. Você não precisa de memória persistente para corrigir um bug pequeno ou escrever uma função.
Mas quando as tarefas ultrapassam 200 passos de execução, a balança se inclina: MiMo-Code vence com mais de 65% de preferência. Isso é um salto significativo e diretamente atribuível à memória entre sessões. Quando o trabalho se estende por horas ou dias, lembrar o que já foi feito e o que foi aprendido faz toda a diferença.
É importante colocar isso em contexto: o estudo é da Xiaomi (autorelatado) e a ferramenta tem apenas dias de vida pública. Ainda não há replicação independente. Mas a metodologia — duplo-cego, com juízes humanos, sobre repositórios reais — é sólida, e o tamanho da amostra (576 desenvolvedores) é respeitável.
Também há uma métrica complementar: SWE-bench reporta 57,2% para MiMo-Code, um número respeitável mas não revolucionário. Os 65% não é um benchmark padrão, mas uma medição de preferência humana em tarefas do mundo real — que no fim é o que importa.
Conexão com o ecossistema open source
MiMo-Code não nasceu do nada. É um fork do OpenCode, um coding agent open-source já existente no ecossistema. A Xiaomi pegou essa base e adicionou o sistema de memória, os comandos dream/distill, o sistema de subagentes e os três modos de operação (build, plan, compose).
Isso importa por duas razões.
Primeiro, porque o OpenCode já tinha uma comunidade e uma base de código testada. A Xiaomi não reinventou a roda — integrou memória persistente em um agente funcional, e o liberou de volta para a comunidade como MIT. Qualquer projeto derivado do OpenCode pode potencialmente se beneficiar dessas ideias.
Segundo, porque esse movimento valida uma estratégia: em vez de competir no modelo base (onde o custo de entrada é astronômico), pode-se competir na arquitetura do agente — como ele gerencia contexto, como persiste conhecimento, como automatiza sua própria manutenção. É uma direção promissora para o ecossistema.
O que isso significa para o futuro
MiMo-Code sinaliza uma direção clara para os coding agents: a memória persistente e autogerenciada vai ser um diferencial chave.
Hoje, a maioria dos assistentes de código são “burros” entre sessões. Amanhã, os agentes que aprendem e retêm conhecimento terão uma vantagem qualitativa em projetos grandes. Não porque o modelo é mais inteligente, mas porque o sistema que o envolve é mais sofisticado.
Algumas implicações que vale a pena observar:
Projetos longevos, agentes que envelhecem bem: um agente que trabalha no mesmo projeto durante meses acumula um conhecimento contextual que nenhum prompt inicial consegue igualar. Ele sabe onde estão os antipadrões, quais convenções são usadas, quais partes do código são frágeis.
Colaboração humano-agente mais natural: quando o agente lembra de conversas anteriores, a interação se parece mais com trabalhar com um colega do que perguntar a um mecanismo de busca toda vez. Você não precisa repetir contexto.
Automação da manutenção: dream e distill mostram que os agentes podem manter sua própria memória sem intervenção humana. A direção rumo a agentes mais autônomos passa por aqui.
Risco de dívida de memória: também há um lado menos brilhante. Se a memória for corrompida (informação incorreta que persiste por ciclos de dream), se crescer sem controle ou se o agente confiar demais em lembranças desatualizadas, pode gerar problemas novos. A gestão da qualidade da memória será uma área importante.
Por enquanto, MiMo-Code acaba de nascer. Mas colocou um marco no mapa: os coding agents que lembram vão ser a norma, não a exceção. E o “sonho” da Xiaomi a cada 7 dias pode ser o primeiro passo rumo a agentes que realmente aprendem com a experiência.
Fonte principal: Xiaomi — MiMo-Code GitHub