Carregando
0x20Lição 3 de 8

Acompanhe o estado, o progresso e o contexto

Salve pontos de verificação do progresso para que o trabalho possa ser retomado, e mantenha a janela de contexto focada com compactação, anotações e recuperação no momento certo.

22 min Questionário com 6 perguntas 2 exercícios de código
Ao final desta lição, você saberá
  • Projetar um estado de progresso explícito e durável
  • Retomar depois de uma interrupção sem repetir trabalho
  • Gerenciar o contexto de uma execução longa com compactação e anotações

Um ciclo de várias etapas precisa de estado: o objetivo, as restrições, as etapas concluídas, os resultados principais e o que vem em seguida. Mantenha-o explícito, compacto e durável - salvo fora do contexto do modelo -, para que uma queda, um timeout ou um reinício não percam uma hora de trabalho. O modelo pode propor uma atualização do estado; o seu código a valida antes de salvar.

Execuções longas também enfrentam a degradação do contexto (context rot): conforme o contexto enche, os modelos lembram detalhes com menos confiabilidade (Anthropic, “Effective context engineering for AI agents”). Técnicas:

  • Compactação - resumir o histórico antigo e descartar saídas de ferramentas desatualizadas, mantendo as decisões e os detalhes recentes.
  • Anotações estruturadas - o agente mantém um arquivo de progresso ou uma lista de tarefas fora do contexto e a relê.
  • Recuperação no momento certo (just-in-time) - guardar referências (caminhos, IDs, consultas) e carregar o conteúdo só quando necessário.
  • Subagentes - delegar trabalho focado a agentes com contextos limpos, que devolvem resumos curtos.

Experimente

Até 15 XP

O que fica no contexto?

Uma longa sessão de programação. Mude o tamanho da janela: o que é descartado? Que partes você compactaria num resumo, e quais guardaria como anotações fora do contexto?

Janela de contexto:
Prompt de sistema + documentação das ferramentas
Decisões de projeto até agora
Anotações de progresso (lista de tarefas)
As últimas 5 etapas
Instrução atual
resposta

Usando 23.800 de 32.000 tokens (4.000 reservados para a resposta) · a conversa completa tem 94.800 tokens.

  • Prompt de sistema + documentação das ferramentas6.000
  • Exploração inicial (listagens de arquivos)30.000
  • Saída dos testes de 40 execuções45.000
  • Decisões de projeto até agora3.000
  • Anotações de progresso (lista de tarefas)1.500
  • As últimas 5 etapas9.000
  • Instrução atual300
Removidos para caber: Exploração inicial (listagens de arquivos), Saída dos testes de 40 execuções. O modelo nunca os verá e não pode responder com base no que foi cortado.
checkpoint.py
1import json
2state = {"goal": "migrate 3 tables", "done": ["users"], "next": "orders"}
3saved = json.dumps(state)
4print(json.loads(saved)["next"])
Saída
orders

Principais conclusões

  • Mantenha um estado explícito, validado e durável: objetivo, feito, próximo.

  • Salve pontos de verificação para que um trabalho interrompido seja retomado em vez de recomeçar.

  • Combata a degradação do contexto com compactação, anotações, recuperação no momento certo e subagentes.

Quiz da aula

6 perguntas · aprovação com 5 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva código em Python

Escreva código Python no editor e execute os testes com exemplos. O Python roda localmente no navegador usando WebAssembly.

Exercício 1

Retome a partir de um ponto de verificação

+25 XP

A linha 1 é um ponto de verificação JSON {"done": [...]}. A linha 2 é o plano em JSON (uma lista de nomes de etapas). Imprima resuming: D/T steps already done, depois skip STEP ou run STEP para cada etapa planejada e depois done: T/T.

  • Duas de quatro concluídas
main.py
Carregando editor…

O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.

Exercício 2

Compacte um histórico longo

+25 XP

A linha 1 é N (pelo menos 1). Cada linha seguinte é uma mensagem role: content. Mantenha as mensagens system e as últimas N outras mensagens sem mudanças. Troque todas as mais antigas por uma única linha summary: K earlier messages compacted (T tool results dropped), colocada logo depois das mensagens de sistema. Imprima o resultado (omita a linha de resumo se nada tiver sido compactado).

  • Manter as duas últimas
main.py
Carregando editor…

O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…