Source: https://aiprimetech.io/pt/docs/guides/context-management/ [Início](/pt/) / [Documentação](/pt/docs/) / Gerenciamento de contexto # Gerenciamento de contexto Por que o custo de sessões longas cresce de forma não linear e os padrões que mantêm o histórico limitado. Copiar página [ Ver como Markdown](/pt/docs/guides/context-management.md) [ Perguntar ao ChatGPT](https://chatgpt.com/?q=Read%20https%3A//aiprimetech.io/docs/guides/context-management.md%20and%20answer%20questions%20about%20it.%20Start%20with%20a%20short%20summary.) [ Perguntar no Claude](https://claude.ai/new?q=Read%20https%3A//aiprimetech.io/docs/guides/context-management.md%20and%20answer%20questions%20about%20it.%20Start%20with%20a%20short%20summary.) A API não mantém estado. Cada turno reenvia toda a conversa, portanto os tokens de entrada aumentam com o histórico — e o custo aumenta junto, em cada chamada subsequente. ## Como o problema se apresenta Uma conversa de N turnos, cada um adicionando aproximadamente T tokens, custa algo da ordem de N²T/2 tokens de entrada no total, em vez de NT. Dobrar a duração da sessão praticamente quadruplica o custo de entrada. É por isso que um agente que parecia barato durante dez minutos causa preocupação depois de uma hora. ## Quatro estratégias que funcionam | Padrão | Como | Contrapartida | Janela deslizante | Mantenha os últimos K turnos e descarte o restante | Perde completamente o contexto inicial | Resumo contínuo | Substitua periodicamente os turnos antigos por um resumo escrito pelo modelo | Custa uma chamada extra; preserva o essencial | Nova sessão por tarefa | Comece do zero quando o assunto mudar | Sem custo e geralmente adequado | Externalizar | Mantenha o estado em arquivos ou em um banco de dados e carregue apenas o que a etapa atual precisa | Mais trabalho, melhor resultado ## Como resumir turnos antigos ``` Copydef compact(history, keep=6): class="s">""class="s">"Replace everything but the last `keep` turns with one summary turn."class="s">"" if len(history) <= keep: return history old, recent = history[:-keep], history[-keep:] summary = summarise(old) class=class="s">"c"># one cheap Haiku call return [{class="s">"role": class="s">"user", class="s">"content": fclass="s">"Summary of earlier discussion: {summary}"}] + recent ``` Faça a sumarização com um modelo barato. É uma tarefa de compressão, não de raciocínio. ## Os resultados das ferramentas costumam ser os culpados - Uma ferramenta que retorna 500 linhas coloca 500 linhas em todas as solicitações seguintes. Limite as linhas ou retorne um resumo com uma referência para buscar detalhes sob demanda. - O conteúdo completo dos arquivos lidos por um agente permanece no contexto. Leia a seção de que precisa, não o arquivo inteiro. - Capturas de tela e imagens são reenviadas como qualquer outro conteúdo — remova-as depois de descrevê-las. - Logs de compilação e rastreamentos de pilha: mantenha as primeiras e as últimas 50 linhas e descarte o meio. Em ferramentas com agentes, iniciar uma nova sessão entre tarefas sem relação entre si é a otimização mais barata disponível. No Claude Code, isso é /clear. [Controle de custosA visão completa](/pt/docs/guides/cost-control/)[Cache de promptsReduzir o custo da parte estável](/pt/docs/guides/prompt-caching/)[ModelosOpções de contexto de 1M](/pt/docs/getting-started/models/) [AnteriorCache de prompts](/pt/docs/guides/prompt-caching/)[PróximoMigração da API da Anthropic](/pt/docs/guides/migration-from-anthropic/)