Como funciona a memória no OpenCode? Entenda o que a ferramenta guarda e por quê

Diagrama explicando como funciona a memória no OpenCode com arquivos AGENTS.md e compactação de contexto
Resposta rápida

A memória no OpenCode é feita de duas coisas que muita gente confunde: as instruções persistentes de projeto, guardadas em arquivos AGENTS.md (na raiz do projeto e no global ~/.config/opencode/AGENTS.md), e a compactação, que gerencia a janela de contexto dentro de uma conversa longa. O AGENTS.md você cria com o comando /init. A compactação roda sozinha e você força com /compact. Memória durável entre sessões diferentes não é recurso oficial: vem de plugins da comunidade. Bora entender cada parte 🙂

Você abre o OpenCode, trabalha uma hora numa feature, e do nada bate a dúvida: o que essa ferramenta realmente lembra?

É uma pergunta boa, e a resposta engana muita gente

Quando a gente fala de memória no OpenCode, na verdade estamos falando de duas coisas bem diferentes que costumam ser jogadas no mesmo balde

Uma é o que o agente lembra de propósito entre sessões, as instruções fixas do seu projeto

A outra é como ele lida com uma conversa que ficou longa demais e ameaça estourar a janela de contexto

São mecanismos separados, com arquivos e comandos próprios. Bora destrinchar os dois

O que ‘memória’ significa no OpenCode

Antes de sair configurando qualquer coisa, vale entender o mapa

Formação Vibe Coding
Formação Recomendada

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Existem dois conceitos aqui, e confundir eles é a raiz de metade da frustração de quem acha que o OpenCode ‘esquece’ as coisas

O primeiro é a memória intencional entre sessões: aquilo que você quer que o agente sempre saiba sobre o projeto, não importa quantas vezes você feche e abra a ferramenta. Isso vive nos arquivos AGENTS.md

O segundo é o gerenciamento de contexto dentro de uma sessão: o que acontece quando a conversa cresce tanto que não cabe mais inteira na janela do modelo. Isso é a compactação (compaction)

Um é sobre lembrar de propósito

O outro é sobre não perder o fio da meada numa conversa gigante

Entendendo essa divisão, o resto do post fica fácil. Se liga

AGENTS.md: as instruções que o OpenCode sempre carrega

Se você conhece o jeito que outras ferramentas de IA usam um arquivo de regras, o AGENTS.md é bem semelhante

É um arquivo de instruções persistentes que entra no contexto do modelo pra personalizar o comportamento do agente naquele projeto

E ele existe em dois lugares, cada um com um propósito

O AGENTS.md na raiz do projeto guarda as regras específicas daquele repositório: convenções de código, comandos de build, estrutura de pastas, o que for do time

Como ele fica junto do projeto, todo mundo que clona o repo herda essas regras. É a memória compartilhada do time

Já o ~/.config/opencode/AGENTS.md é o arquivo global, aplicado em todas as suas sessões, em qualquer projeto

Esse aqui é pessoal: ele não é commitado no Git nem compartilhado com o time. Por isso a recomendação é usar ele pras suas preferências pessoais, aquele jeitão que você gosta de trabalhar e que não faz sentido impor pros outros

Os dois se combinam: o global vale pra tudo, o do projeto entra por cima com o que é específico dali

Quer a documentação oficial na fonte? Está no OpenCode docs de rules

Como criar o AGENTS.md com o comando /init

Você não precisa escrever esse arquivo na unha. O OpenCode tem um comando pra isso

  1. Rode /init dentro do OpenCode, na raiz do projeto
/init

Ele vai escanear os arquivos importantes do repositório, montar comandos de build, lint e test, mapear a estrutura, e pode até te fazer perguntas direcionadas pra entender melhor o projeto

  1. Deixe ele fazer as perguntas e responda o que ele pedir

Quanto mais contexto ele coletar agora, menos você vai ter que corrigir depois. O resultado é um AGENTS.md já com a cara do seu repo

  1. Se já existe um AGENTS.md, rode /init sem medo

O erro comum aqui é achar que o /init vai apagar o trabalho anterior e escrever tudo do zero. Não é isso: quando o arquivo já existe, ele melhora no lugar em vez de substituir. Então rodar de novo depois de mudanças grandes no projeto é seguro e até recomendado

Compactação: como o OpenCode não estoura o contexto em conversas longas

Agora o segundo pilar. E esse aqui é o que salva as conversas longas

Todo modelo tem uma janela de contexto, um limite de quanto texto ele consegue segurar de uma vez. Numa sessão comprida, cheia de código e idas e vindas, você chega nesse teto

A solução do OpenCode se chama compactação (compaction), e ela já vem ativada por padrão

O que ela faz: substitui a parte mais antiga da sessão por um checkpoint. Esse checkpoint é um resumo estruturado, mais uma cauda serializada do contexto recente

Traduzindo: ele pega o começão da conversa (que já rendeu o que tinha que render), condensa num resumo, e mantém intacto o pedaço recente que ainda está quente. Com isso, libera espaço na janela

Um ponto importante pra não gerar susto: a compactação é lossy, ou seja, ela perde parte do detalhe fino ao resumir

Mas ela não apaga as mensagens duráveis anteriores da sessão. O contexto ativo encolhe, o histórico durável continua guardado

Em projetos maiores isso é o que segura a barra: você consegue tocar uma sessão longa sem que o agente colapse por falta de espaço

Como forçar a compactação manualmente (/compact e /summarize)

A compactação roda sozinha, mas às vezes você quer disparar na hora que achar melhor. Dá pra fazer isso

  1. Use o comando /compact
/compact

Existe um alias que faz a mesma coisa, o /summarize. Use o que for mais natural pra você

  1. Ou use o keybind session_compact

O padrão é <leader>c. Vale lembrar que keybind pode variar conforme a config de cada um, então se o seu estiver diferente, confira suas configurações

  1. Saiba o que entra no resumo antes de disparar

O resumo gerado pela compactação registra objetivo, detalhes importantes, trabalho concluído e ativo, bloqueios, próximos passos e arquivos relevantes

Ele usa o modelo selecionado da sessão, com as ferramentas desativadas, e tem um teto de 4096 tokens de saída

Quando vale a pena disparar você mesmo? Quando você acabou uma etapa grande e quer ‘fechar o capítulo’ antes de partir pra próxima, garantindo que o resumo pegue o estado num ponto limpo em vez de no meio de uma bagunça

Memória persistente entre sessões: os plugins da comunidade

Depois de tudo isso, cabe um esclarecimento honesto

Memória durável e automática entre sessões TOTALMENTE diferentes não é um recurso oficial nativo do OpenCode. O que é oficial é o AGENTS.md (instruções persistentes) e a compactação (gestão de contexto dentro da sessão)

Quando você quer ir além disso, entram os plugins da comunidade. Existem alguns:

  • opencode-agent-memory, do joshuadavidthomas, inspirado no Letta
  • opencode-mem, do tickernelz, que usa um banco vetorial local
  • Supermemory, que oferece um plugin pro OpenCode

Todos são de terceiros, não recursos oficiais. Então antes de adotar, vale olhar cada um com calma

Quando faz sentido considerar? Quando o AGENTS.md mais a compactação não dão conta do seu fluxo, e você precisa mesmo de uma camada de memória que atravesse sessões independentes de forma automática

Conclusão

No fim, a memória no OpenCode se apoia em dois pilares, e agora eles não se confundem mais na sua cabeça

O AGENTS.md é a memória intencional: o que o agente sempre carrega sobre o projeto (na raiz, pro time) e sobre você (no global, pessoal e não versionado)

A compactação é a gestão de contexto: o que segura as conversas longas sem estourar a janela, resumindo o antigo e mantendo o histórico durável

O próximo passo prático é simples: roda /init no seu projeto pra gerar o AGENTS.md, e define suas regras globais no ~/.config/opencode/AGENTS.md

Começa por aí e já sente a diferença 🙂 até o próximo post!

Perguntas frequentes

O AGENTS.md do projeto vai pro Git e fica visível pra todo o time?

Sim, o AGENTS.md na raiz do projeto é versionado normalmente, então todo mundo que clonar o repo vai receber as mesmas regras automaticamente. É exatamente por isso que ele serve pras convenções do time. Se a regra for só sua, o lugar certo é o arquivo global em ~/.config/opencode/AGENTS.md, que não vai pro Git e não é compartilhado

Tem como o OpenCode lembrar coisas entre sessões diferentes, tipo uma memória contínua?

Nativamente não, o OpenCode não tem memória persistente entre sessões fora do que você coloca no AGENTS.md. Mas existem plugins de terceiros/comunidade que adicionam isso: opencode-agent-memory (de joshuadavidthomas, inspirado no Letta), opencode-mem (de tickernelz, com banco vetorial local) e o Supermemory também oferece plugin pro OpenCode. Todos são projetos de terceiros, não recursos oficiais da ferramenta

A compactação apaga as mensagens antigas da sessão no OpenCode?

Não apaga do histórico durável, mas reduz o contexto ativo. O que acontece é que a parte mais antiga da conversa vira um resumo estruturado no lugar de ficar inteira, então alguns detalhes finos se perdem (a compactação é lossy por design). O histórico durável anterior continua guardado, só a janela de contexto que é aliviada

Qual a diferença entre /compact e /summarize no OpenCode?

Nenhuma. O /summarize é só um alias do /compact, os dois disparam exatamente a mesma operação de compactação. Use o que vier mais natural na hora, o resultado é idêntico

O /init sobrescreve o AGENTS.md se o arquivo já existir?

Não substitui, ele melhora no lugar. Quando o AGENTS.md já existe, o /init atualiza o conteúdo em vez de jogar fora o que estava ali. Isso significa que rodar /init de novo depois de mudanças grandes no repositório é seguro, e até recomendado pra manter as instruções alinhadas com a evolução do projeto

A compactação do OpenCode é automática ou preciso ativar manualmente?

É automática e já vem ativada por padrão, então em conversas longas ela dispara sozinha quando o contexto começa a pesar. Mas você pode forçar na hora que quiser usando /compact (ou /summarize) ou o keybind session_compact, o que é útil quando você quer ‘fechar um capítulo’ num ponto limpo antes de partir pra próxima etapa




Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação SAAS com IA

Formação SAAS com IA

Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!

  • 291 aulas
  • 18 projetos
  • 24h 17min

Blog | Mais populares