Pular para o conteúdo
Skillpedia
Agentes48 mil · #2646

context-window-management

Faz seu agente gerenciar o espaço de informações de forma eficiente. Ele resume, corta ou organiza as informações para que o agente não se perca.

O que ela faz

Esta ferramenta ajuda a IA a gerenciar a quantidade de informação que ela pode "lembrar" em uma conversa. Ela usa técnicas como resumir, cortar ou priorizar o que é mais importante para que a IA não se perca em conversas longas.

Quando usar

  • ✓Quando você tem uma conversa muito longa com a IA e percebe que ela começa a esquecer o que foi dito antes.
  • ✓Ao criar um sistema onde a IA precisa manter o contexto de muitas interações passadas.
  • ✓Quando você quer garantir que a IA sempre considere as informações mais importantes, mesmo que a conversa seja extensa.

Exemplo do que pedir para a IA

“Como posso fazer a IA lembrar de detalhes importantes de uma conversa que já durou horas?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/context-window-management/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/context-window-management/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A IA analisa a quantidade de texto que ela pode processar de uma vez (chamada 'janela de contexto'). Se a conversa ficar muito longa, ela usa estratégias para resumir partes antigas ou focar nas informações mais relevantes para continuar a conversa de forma eficiente.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill context-window-management

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/context-window-management/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Gerenciamento da Janela de Contexto

Estratégias para gerenciar janelas de contexto de LLMs, incluindo sumarização, corte, roteamento e prevenção de "apodrecimento" do contexto.

Capacidades

  • engenharia-de-contexto
  • sumarizacao-de-contexto
  • corte-de-contexto
  • roteamento-de-contexto
  • contagem-de-tokens
  • priorizacao-de-contexto

Pré-requisitos

  • Conhecimento: Fundamentos de LLM, Noções básicas de tokenização, Engenharia de prompts
  • Habilidades recomendadas: engenharia-de-prompts

Escopo

  • Não cobre: Detalhes de implementação de RAG, Ajuste fino de modelos, Modelos de embedding
  • Limites: Foco em otimização de contexto, Cobre estratégias, não implementações específicas

Ecossistema

Ferramentas_primárias

  • tiktoken - Tokenizador da OpenAI para contagem de tokens
  • LangChain - Framework com utilitários de gerenciamento de contexto
  • Claude API - Mais de 200 mil de contexto com suporte a cache

Padrões

Estratégia de Contexto em Camadas

Diferentes estratégias baseadas no tamanho do contexto

Quando usar: Construindo qualquer sistema de conversação multi-turno

interface ContextTier {
    maxTokens: number;
    strategy: 'full' | 'summarize' | 'rag';
    model: string;
}

const TIERS: ContextTier[] = [
    { maxTokens: 8000, strategy: 'full', model: 'claude-3-haiku' },
    { maxTokens: 32000, strategy: 'full', model: 'claude-3-5-sonnet' },
    { maxTokens: 100000, strategy: 'summarize', model: 'claude-3-5-sonnet' },
    { maxTokens: Infinity, strategy: 'rag', model: 'claude-3-5-sonnet' }
];

async function selectStrategy(messages: Message[]): ContextTier {
    const tokens = await countTokens(messages);

    for (const tier of TIERS) {
        if (tokens <= tier.maxTokens) {
            return tier;
        }
    }
    return TIERS[TIERS.length - 1];
}

async function prepareContext(messages: Message[]): PreparedContext {
    const tier = await selectStrategy(messages);

    switch (tier.strategy) {
        case 'full':
            return { messages, model: tier.model };

        case 'summarize':
            const summary = await summarizeOldMessages(messages);
            return { messages: [summary, ...recentMessages(messages)], model: tier.model };

        case 'rag':
            const relevant = await retrieveRelevant(messages);
            return { messages: [...relevant, ...recentMessages(messages)], model: tier.model };
    }
}

Otimização da Posição Serial

Coloque conteúdo importante no início e no fim

Quando usar: Construindo prompts com contexto significativo

// LLMs weight beginning and end more heavily
// Structure prompts to leverage this

function buildOptimalPrompt(components: {
    systemPrompt: string;
    criticalContext: string;
    conversationHistory: Message[];
    currentQuery: string;
}): string {
    // START: System instructions (always first)
    const parts = [components.systemPrompt];

    // CRITICAL CONTEXT: Right after system (high primacy)
    if (components.criticalContext) {
        parts.push(`## Key Context\n${components.criticalContext}`);
    }

    // MIDDLE: Conversation history (lower weight)
    // Summarize if long, keep recent messages full
    const history = components.conversationHistory;
    if (history.length > 10) {
        const oldSummary = summarize(history.slice(0, -5));
        const recent = history.slice(-5);
        parts.push(`## Earlier Conversation (Summary)\n${oldSummary}`);
        parts.push(`## Recent Messages\n${formatMessages(recent)}`);
    } else {
        parts.push(`## Conversation\n${formatMessages(history)}`);
    }

    // END: Current query (high recency)
    // Restate critical requirements here
    parts.push(`## Current Request\n${components.currentQuery}`);

    // FINAL: Reminder of key constraints
    parts.push(`Remember: ${extractKeyConstraints(components.systemPrompt)}`);

    return parts.join('\n\n');
}

Sumarização Inteligente

Resuma por importância, não apenas por recência

Quando usar: Contexto excede o tamanho ideal

interface MessageWithMetadata extends Message {
    importance: number;  // Pontuação de 0 a 1
    hasCriticalInfo: boolean;  // Preferências do usuário, decisões
    referenced: boolean;  // Foi referenciado depois?
}

async function smartSummarize(
    messages: MessageWithMetadata[],
    targetTokens: number
): Message[] {
    // Ordena por importância, preserva a ordem para pontuações empatadas
    const sorted = [...messages].sort((a, b) =>
        (b.importance + (b.hasCriticalInfo ? 0.5 : 0) + (b.referenced ? 0.3 : 0)) -
        (a.importance + (a.hasCriticalInfo ? 0.5 : 0) + (a.referenced ? 0.3 : 0))
    );


…
Perguntas frequentes

O que é 'janela de contexto'?

É a quantidade máxima de texto que a IA consegue processar e 'lembrar' em um único momento. Pense como a memória de curto prazo da IA.

Por que resumir é importante?

Resumir permite que a IA condense informações antigas em um texto menor, liberando espaço na sua 'memória' para novas informações importantes, sem perder o sentido geral.

A IA vai esquecer tudo se a conversa for muito longa?

Não necessariamente. Esta ferramenta ajuda a IA a gerenciar o contexto, priorizando o que é mais importante para que ela possa 'lembrar' do essencial, mesmo em conversas extensas.

Detalhes

Descrição original do autor

Strategies for managing LLM context windows including summarization, trimming, routing, and avoiding context rot

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2646
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas