intermediate45 minLição 5 de 6

Gerenciamento de Memória e Contexto

Gerencie memória e contexto em sessões do OpenCode. Aprenda como manter estado entre conversas, usar arquivos de memória e otimizar contexto para melhores resultados.

Gerenciamento de Memória e Contexto

Entendendo Contexto

Contexto é a informação que a IA lembra durante uma sessão:

Tipo de ContextoDescriçãoPersistência
ConversaHistórico de chatApenas na sessão
Conteúdo de ArquivoArquivos lidosAté ser limpo
ProjetoEstrutura do projetoApenas na sessão
Arquivos de MemóriaArmazenamento persistenteEntre sessões

Memória de Conversa

Ver Histórico

> /history

Salvar Sessão

> /save project-setup

Carregar Sessão

> /load project-setup

Limpar Contexto

> /clear

Arquivos de Memória

Arquivos de memória persistem informações entre sessões.

Memória do Projeto

Crie .opencode/memory/project.md:

markdown
# Project Memory ## Architecture - Frontend: React with TypeScript - Backend: Node.js with Express - Database: PostgreSQL ## Conventions - Use camelCase for variables - Use PascalCase for components - All API endpoints prefixed with /api/ ## Decisions - 2024-01-15: Chose PostgreSQL over MongoDB for ACID compliance

Memória Pessoal

Crie ~/.config/opencode/memory/personal.md:

markdown
# Personal Memory ## Preferences - Preferred model: gpt-4o - Coding style: Functional programming - Testing: Jest with 80% coverage minimum ## Shortcuts - Use /clear between topics - Always review AI suggestions before applying

Carregando Memória

Carregamento Automático

Configure o carregamento automático em opencode.json:

json
{ "memory": { "autoLoad": [ ".opencode/memory/project.md", ".opencode/memory/conventions.md" ] } }

Carregamento Manual

> Load the project memory file at .opencode/memory/project.md

Otimização de Contexto

Quando o Contexto Fica Grande Demais

Sintomas:

  • Respostas lentas
  • IA esquece instruções iniciais
  • Avisos de limite de tokens

Soluções:

  1. Limpe e recarregue o essencial:
> /clear > Load .opencode/memory/project.md > We're working on the authentication module
  1. Use subagentes para tarefas isoladas:
> Have the test-agent write tests for the login function
  1. Resuma conversas longas:
> Summarize what we've discussed so far into a memory file

Gerenciamento da Janela de Contexto

> /verbose Context: 15234 tokens (47% of 32k limit)

Melhores Práticas:

SituaçãoAção
Contexto > 70%Limpe e recarregue o essencial
Mudando de tópicoLimpe a conversa
Projeto complexoUse arquivos de memória
Múltiplas tarefasUse subagentes

Estrutura de Arquivos de Memória

Formato Recomendado

markdown
# [Memory Type] Memory ## [Section] - Key point - Key point ## [Section] - Key point

Convenções de Nomenclatura

ArquivoFinalidade
project.mdArquitetura e decisões do projeto
conventions.mdPadrões e convenções de código
decisions.mdRegistros de decisões arquiteturais
todo.mdTarefas atuais e prioridades
learned.mdCoisas aprendidas durante sessões

Usando Memória em Prompts

Referenciar Memória

> According to our project memory, what database are we using?

Atualizar Memória

> Update the project memory to note we've switched from MongoDB to PostgreSQL

Criar a partir da Sessão

> Save our conversation about the API design to .opencode/memory/api-design.md

Melhores Práticas

Higiene de Memória

PráticaBenefício
Atualizações regularesMantém a memória precisa
Seções clarasFácil para encontrar informações
Data das decisõesAcompanha a evolução
Remover desatualizadosPrevine confusão

Gerenciamento de Contexto

PráticaBenefício
Limpar entre tópicosPrevine contaminação cruzada
Carregar apenas o essencialReduz uso de tokens
Usar subagentesIsola tarefas complexas
Monitorar tamanho do contextoEvita limites

Practice Questions

Practice Question

Where should you store project-specific memory files?

Practice Question

What is the benefit of memory files over conversation history?

Practice Question

When should you clear the conversation context?

Practice Question

What should you do when context exceeds 70% of the limit?

Practice Question

How do you update memory files during a session?


Success

Key Takeaways

  • Arquivos de memória persistem informações entre sessões, ao contrário do histórico de conversas
  • Armazene memória do projeto em .opencode/memory/ dentro do projeto
  • Limpe a conversa ao mudar de tópico para prevenir contaminação cruzada
  • Monitore o tamanho do contexto e recarregue o essencial quando exceder 70%
  • Use seções descritivas nos arquivos de memória para fácil recuperação
  • Arquivos de memória devem ser datados e atualizados regularmente
  • Subagentes ajudam a isolar tarefas complexas do contexto principal
Progresso83%