---
title: "fast-jev-compaction: compaction sem resumo, com ferramenta e resultado verbatim"
description: "Plugin de Claude Code substitui o resumo de compaction por decisões do Jev: cada tool call e resultado é avaliado num request rápido, os obsoletos caem e tudo que fica permanece verbatim. Também serve como biblioteca npm."
canonical: "https://ronanrodrigo.dev/notes/fast-jev-compaction"
markdown: "https://ronanrodrigo.dev/notes/fast-jev-compaction.md"
last-updated: "2026-09-20"
---
## fast-jev-compaction

O resumo é a convenção de compaction de contexto, e o resumo é perda: um caminho de arquivo, um erro exato, uma restrição ou um comando podem sumir justamente quando importam depois. O fast-jev-compaction ataca isso de outro lado — não reescreve nada, só apaga tool calls e tool results que o Jev julga desnecessários, avaliando cada par num request rápido com a conversa inteira como estado. Texto de usuário e assistente permanece verbatim e em ordem.

Funciona como plugin de Claude Code (via hooks, substituindo o resumo embutido) e como biblioteca npm. Mecânica: cada `tool_use` é pareado ao seu `tool_result`, as mensagens recentes são pinadas e nunca tocadas; para cada call não pinada o Jev responde duas perguntas — a chamada ainda importa e o conteúdo do resultado ainda é necessário (ou daria para rodar a ferramenta de novo). Resultado reprovado vira cabeça truncada + nota de uma linha; call reprovada some com o resultado. Se o Jev falhar ou a redução ficar abaixo do mínimo, o plugin volta ao compaction nativo.

[Repositório no GitHub](https://github.com/tamaratran/fast-jev-compaction)

## A alternativa resumidora e por que resumir perde

A ferramenta nativa do Claude Code e a maioria dos frameworks fazem o caminho do resumo: quando a janela enche, summariza o trecho velho e recola o resultado no lugar. O post do Vagner Bessa mostra o formato geral — quando a janela enche, summarize o que descartaria, emende o resumo e só delete quando resumir não ajudar — e os dois modos de falha que ele mesmo levou fazendo na mão: contagem de tokens errada (cada provider conta de um jeito; Claude nem publica tokenizer local) e conteúdo que precisava sobreviver verbatim.

Comparar os dois textos ajuda a decidir quando resumo basta: conteúdo de referência (paths, erros, dados estruturados) deve sobreviver verbatim, e aí a poda seletiva ganha; conversa de fundo tolera resumo. Anthropic já publica direção parecida no context editing, limpando tool results velhos em vez de sumarizá-los.

[Post: pruning by summarization, not deletion](https://bessavagner.com/blog/pruning-chat-context-by-summarization/)

## Ferramenta nativa como referência

O guia da Particula sobre agentes de longa duração documenta as três técnicas que convergiram entre Anthropic, Claude Code e LangGraph: trimming de tool results uma vez consumidos, compaction em camadas e recuperação externa. É a referência para situar o fast-jev-compaction no ecossistema — o plugin troca o resumo do tier intermediário por poda guiada por decisão, mantendo no verbatim o que o guia marca como obrigatório sobreviver: paths abertos, IDs, definição da tarefa atual, erros não resolvidos.

[Guia: long-running agents e compaction](https://particula.tech/blog/long-running-agents-context-compaction-token-bloat-guide)
