{
  "title": "Context Engineering: Por Que Prompt Engineering Nunca Foi Suficiente",
  "excerpt": "Em 2026, o verdadeiro trabalho nos sistemas modernos de IA não é escrever um prompt inteligente. É decidir o que o modelo vê, quando o vê, e como esse context é estruturado, persistido e transformado em durable memory.",
  "content_html": "<p>Por um tempo, prompt engineering foi o nome que demos à arte de obter bons resultados de large language models. Fazia sentido nos primórdios. A maioria das pessoas usava interações one-shot, e a alavanca principal realmente parecia ser a redação: perguntar de forma mais clara, adicionar um exemplo, restringir o formato, e o modelo se comportava melhor.</p>\n<p>Essa moldura agora é pequena demais para o problema real.</p>\n<p>Quando um sistema de IA falha em produção, o problema geralmente não é que o modelo precisava de mais uma frase inteligente no system prompt. O problema é que o modelo não viu a informação certa, viu informação irrelevante demais, viu a informação certa no formato errado, ou não conseguiu carregar o estado certo de uma etapa para a seguinte. Em outras palavras, o problema não era apenas o prompt. O problema era o <strong>context pipeline</strong> inteiro.</p>\n<p>É por isso que o termo <strong>context engineering</strong> pegou. A frase entrou na discussão mainstream de IA em meados de 2025, quando Tobi Lütke e Andrej Karpathy argumentaram que prompt engineering subestimava o trabalho real envolvido em construir sistemas LLM confiáveis.[1] Mas a disciplina subjacente é mais antiga que o nome. Se você construiu RAG, tool calling, memory systems, summarization ou evaluation loops, você já fez pedaços de context engineering. O que mudou é que finalmente temos um nome que descreve o trabalho inteiro.</p>\n<h2>Um Modelo Mental Simples</h2>\n<p>Se você quer a imagem mais simples possível, context engineering é a camada entre o mundo exterior e a working memory do modelo.</p>\n<pre><code class=\"language-mermaid\">flowchart TD\n    U[\"User request\"] --> CE[\"Context engine\"]\n\n    I[\"Instructions and policies\"] --> CE\n    R[\"Retrieved knowledge\"] --> CE\n    M[\"Memory and saved state\"] --> CE\n    T[\"Tool definitions and results\"] --> CE\n    H[\"Recent conversation history\"] --> CE\n\n    CE --> W[\"Model context window\"]\n    W --> L[\"LLM reasons and acts\"]\n    L --> O[\"Answer or tool call\"]\n    O --> S[\"New memory, logs, and state\"]\n    S --> CE\n</code></pre>\n<p>Esse é o jogo todo.</p>\n<p>O modelo é o reasoning engine. O context engine decide sobre o que o modelo pode raciocinar.</p>\n<h2>O Nome É Novo. O Trabalho Não.</h2>\n<p>Uma razão pela qual o termo ressoa é que ele une várias linhas que vinham evoluindo separadamente.</p>\n<p>Retrieval-Augmented Generation, ou RAG, nos ensinou que modelos precisam de acesso a conhecimento externo em inference time.[2] ReAct nos ensinou que reasoning e acting funcionam melhor quando modelos podem chamar tools, observar resultados e continuar a partir daí.[3] Pesquisas sobre memory nos ensinaram que assistentes de longa duração precisam de estratégias de indexing, retrieval e reading em vez de acumulação interminável de transcripts.[4] Long-context evaluation mostrou que simplesmente encher um modelo com mais tokens não é a mesma coisa que dar a ele uma working memory melhor.[5][6][7]</p>\n<p>Visto assim, context engineering não é um substituto para essas ideias. É o guarda-chuva acima delas.</p>\n<p>Esse guarda-chuva importa porque sistemas de IA modernos não são mais prompts isolados. São sistemas dinâmicos que montam instructions, documents, structured data, tool outputs e prior state em uma context window temporária para a próxima etapa. A LangChain descreveu isso bem quando definiu context engineering como o trabalho de fornecer a informação e as tools no formato certo para que o LLM possa plausivelmente completar a tarefa.[8]</p>\n<p>A frase \"plausivelmente completar a tarefa\" está fazendo muito trabalho ali. É o teste certo.</p>\n<p>Se um agent falha, a primeira pergunta não deve ser: \"Como faço o prompt mais inteligente?\"</p>\n<p>A primeira pergunta deve ser: \"Eu realmente dei ao modelo o que ele precisava para ter sucesso?\"</p>\n<h2>Por Que Prompt Engineering Ficou Pequeno Demais</h2>\n<p>Prompt engineering ainda importa. Ele apenas se tornou um subconjunto de uma disciplina maior.</p>\n<p>O modelo mental antigo era:</p>\n<table>\n<thead>\n<tr>\n<th>Prompt engineering</th>\n<th>Context engineering</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Escrever instructions melhores</td>\n<td>Construir o ambiente de informação completo</td>\n</tr>\n<tr>\n<td>Focar em uma única request</td>\n<td>Focar em sistemas multi-step</td>\n</tr>\n<tr>\n<td>Principalmente static</td>\n<td>Dynamic e stateful</td>\n</tr>\n<tr>\n<td>Otimizar wording</td>\n<td>Otimizar selection, structure, memory e tools</td>\n</tr>\n<tr>\n<td>Melhorar uma única model call</td>\n<td>Melhorar o loop inteiro</td>\n</tr>\n</tbody>\n</table>\n<p>Essa distinção fica óbvia no momento em que você constrói um agent.</p>\n<p>Suponha que você esteja construindo um support agent para software enterprise. O usuário pergunta: \"Por que nossas API requests estão dando timeout?\"</p>\n<p>Se você pensa apenas em termos de prompt, pode melhorar o wording:</p>\n<ul>\n<li>Pedir ao modelo para ser conciso</li>\n<li>Pedir para citar evidence</li>\n<li>Pedir para pensar step by step</li>\n</ul>\n<p>Essas são melhorias boas. Mas não são suficientes.</p>\n<p>As perguntas reais de sistema são mais difíceis:</p>\n<ul>\n<li>O agent tem acesso aos incident runbooks?</li>\n<li>Ele consegue ver os logs mais recentes e as status pages?</li>\n<li>Ele sabe a qual customer tier essa account pertence?</li>\n<li>Ele se lembra dos turns anteriores na conversa?</li>\n<li>Ele consegue fazer query no ticket system?</li>\n<li>Ele consegue distinguir stale documents de current ones?</li>\n<li>Se ele recebe context demais, o que é trimmed?</li>\n</ul>\n<p>Isso é context engineering.</p>\n<p>O prompt é um item de linha dentro dele.</p>\n<h2>O Que Conta Como Context</h2>\n<p>Na prática, context inclui tudo o que o modelo vê em inference time, não apenas o prompt visível.[8][9]</p>\n<p>Isso geralmente significa:</p>\n<ul>\n<li>System instructions</li>\n<li>A user request atual</li>\n<li>Retrieved documents</li>\n<li>Structured data como JSON, tables, schemas e records</li>\n<li>Tool definitions</li>\n<li>Tool outputs</li>\n<li>Recent conversation history</li>\n<li>Long-term memory ou saved notes</li>\n<li>Security, policy e formatting constraints</li>\n<li>Environment state como files, tabs, tickets ou working directories</li>\n</ul>\n<p>É por isso que a frase \"filling the context window\" se tornou tão central. A context window não é apenas um lugar onde o texto vai. É a working memory temporária do modelo. Tudo o que entra nela compete por atenção.</p>\n<p>E competição é a palavra-chave.</p>\n<p>Cada token extra não é meramente informação adicional. Também é distração adicional.</p>\n<h2>Por Que Context Windows Maiores Não Resolveram o Problema</h2>\n<p>Um dos equívocos mais comuns no mercado atual de IA é que context windows maiores tornaram o context engineering menos importante.</p>\n<p>A pesquisa aponta na direção oposta.</p>\n<p><em>Lost in the Middle</em> mostrou que modelos frequentemente usam long contexts de forma desigual, desempenhando melhor quando informações relevantes aparecem perto do início ou do fim e pior quando informações importantes ficam no meio.[5] O estudo de long-context RAG da Databricks descobriu que, embora adicionar mais retrieved documents possa ajudar, apenas um pequeno número de modelos state-of-the-art manteve performance forte acima de 64k tokens.[6] O relatório <em>Context Rot</em> da Chroma foi ainda mais longe: até tarefas simples se tornam menos confiáveis à medida que o input length cresce, especialmente quando ambiguity e distractors são introduzidos.[7]</p>\n<p>Essa é a parte que muitos times aprendem da maneira mais difícil.</p>\n<p>Janelas maiores não eliminam a necessidade de escolher. Elas tornam o custo de más escolhas menos óbvio no início e mais doloroso depois.</p>\n<p>Um prompt longo pode falhar de pelo menos quatro formas diferentes:</p>\n<ol>\n<li><strong>Context poisoning</strong>: um fato ruim, hallucination ou resultado desatualizado é carregado para frente.</li>\n<li><strong>Context distraction</strong>: detalhes relevantes, mas não críticos demais, sobrecarregam a tarefa principal.</li>\n<li><strong>Context confusion</strong>: diferentes pedaços de context se contradizem.</li>\n<li><strong>Context waste</strong>: tokens úteis são enterrados sob material redundante ou de baixo valor.</li>\n</ol>\n<p>É por isso que context engineering não é sobre maximizar tokens. É sobre maximizar <strong>signal density</strong> dentro da context window.</p>\n<h2>De Retrieval para Navigation</h2>\n<p>É aqui que uma das melhores ideias recentes entra em cena.</p>\n<p>Jason Liu argumentou que o próximo passo após o RAG clássico baseado em chunks é parar de pensar apenas sobre \"as passagens mais similares\" e começar a pensar sobre a <strong>shape of the search space</strong>.[10] Sua moldura é especialmente útil porque mapeia uma progressão pela qual muitos times já estão passando:</p>\n<ol>\n<li>Minimal chunks</li>\n<li>Chunks com source metadata</li>\n<li>Better handling para conteúdo multimodal e structured</li>\n<li>Facets e query refinement</li>\n</ol>\n<p>Os três primeiros são melhorias no que é retrieved.</p>\n<p>O quarto é mais interessante. Melhora o que o agent aprende <strong>sobre o corpus em si</strong>.</p>\n<p>Facets dão ao modelo algo como visão periférica. Em vez de retornar apenas os poucos chunks do topo, o sistema também pode retornar aggregated metadata:</p>\n<ul>\n<li>Quais document types dominam o result set</li>\n<li>Quais teams ou owners aparecem com mais frequência</li>\n<li>Quais datas se agrupam</li>\n<li>Quais categories estão presentes, mas sub-representadas nos top results</li>\n</ul>\n<p>Isso importa porque similarity search é tendenciosa em relação ao que é mais fácil de combinar, não necessariamente ao que é mais importante inspecionar.[10] Um retrieval system pode expor demais incidentes resolvidos bem documentados e expor de menos incidentes esparsos ainda abertos. Uma busca legal pode expor demais contratos assinados e esconder os não assinados que realmente precisam de atenção. Facets ajudam o agent a ver não apenas \"o que combinou\", mas \"o que mais existe por perto\".</p>\n<p>Essa é uma mudança conceitual importante.</p>\n<p>RAG era principalmente sobre retrieval.</p>\n<p>Context engineering é cada vez mais sobre <strong>navigation</strong>.</p>\n<h2>Os Seis Trabalhos do Context Engineering</h2>\n<p>A maneira mais fácil de tornar o context engineering concreto é dividi-lo nos trabalhos reais que ele executa.</p>\n<h3>1. Selection</h3>\n<p>O primeiro trabalho é decidir o que merece entrar na window em primeiro lugar.</p>\n<p>Isso inclui retrieval, ranking, filtering, source choice e freshness checks. Parece óbvio, mas ainda é onde uma enorme quantidade de qualidade é ganha ou perdida. Benchmarks como BRIGHT mostram que retrieval realista é muito mais difícil do que surface-level semantic matching sugere.[11] Se a sua retrieval quality é fraca, nenhuma quantidade de polimento downstream do prompt vai salvar totalmente o resultado.</p>\n<p>Selection não é apenas \"encontrar chunks relevantes\". É:</p>\n<ul>\n<li>choose the right source</li>\n<li>choose the right granularity</li>\n<li>choose the right amount</li>\n<li>choose the right ordering</li>\n</ul>\n<p>Bons sistemas frequentemente retrievam menos do que sistemas ingênuos, mas retrievam de forma mais intencional.</p>\n<h3>2. Structure</h3>\n<p>O segundo trabalho é decidir como o context escolhido é representado.</p>\n<p>A mesma informação pode ser útil ou inútil dependendo da formatação. A orientação de tool-use da Anthropic é explícita sobre isso: tool descriptions e interfaces moldam fortemente o comportamento do modelo.[9] A orientação de long-context prompting faz recomendações semelhantes para XML tagging, source labeling e seções de documentos claramente separadas.[12]</p>\n<p>Na prática, structure significa:</p>\n<ul>\n<li>label sources</li>\n<li>separate instructions from data</li>\n<li>wrap complex documents in consistent markup</li>\n<li>preserve tables as tables when they matter</li>\n<li>return citations and metadata with evidence</li>\n</ul>\n<p>Um resultado curto e bem rotulado frequentemente supera um grande blob JSON.</p>\n<h3>3. Compression</h3>\n<p>O terceiro trabalho é reduzir o context sem destruir o que importa.</p>\n<p>É aqui que muitos sistemas de agent ou ficam muito melhores ou muito piores.</p>\n<p>Compression pode significar:</p>\n<ul>\n<li>summarizing earlier turns</li>\n<li>trimming stale history</li>\n<li>keeping only the last few user turns verbatim</li>\n<li>extracting durable facts from long threads</li>\n<li>caching stable prefixes para reduzir cost e latency</li>\n</ul>\n<p>A documentação de prompt caching da OpenAI mostra que a ordem do prompt importa economicamente tanto quanto cognitivamente: static shared prefixes são mais baratos e rápidos quando colocados na frente porque cache hits dependem de reutilização exata do prefixo.[13] O trabalho mais recente da OpenAI na Responses API sobre compaction leva a mesma ideia mais longe ao tratar o histórico de agent de longa duração como algo que deve ser comprimido em uma representação mais eficiente em tokens antes que a window encha.[14]</p>\n<p>Compression não é opcional. A única questão é se você faz isso deliberadamente ou deixa a context window degradar por conta própria.</p>\n<h3>4. Memory</h3>\n<p>O quarto trabalho é decidir o que deve persistir além do turn atual.</p>\n<p>É aqui que muitos times cometem o mesmo erro: confundem memory com transcript retention.</p>\n<p>Mas uma boa memory não é \"guardar tudo para sempre\". O LongMemEval enquadra a long-term memory como um problema de três estágios: indexing, retrieval e reading.[4] Essa é a maneira certa de pensar sobre isso. Um memory system deve ajudar o modelo a recuperar o fato anterior certo no momento certo, não afogá-lo no passado completo.</p>\n<p>Isso leva a uma distinção útil:</p>\n<ul>\n<li><strong>Working memory</strong>: o context de curto prazo necessário para a tarefa atual</li>\n<li><strong>Reference memory</strong>: fatos, summaries, notes ou artifacts externalizados que podem ser recarregados depois</li>\n</ul>\n<p>Se tudo ficar em working memory, o modelo se distrai.</p>\n<p>Se tudo for expulso, o modelo perde continuidade.</p>\n<p>O context engineering decide o que pertence a cada camada.</p>\n<h3>5. Tool and Interface Design</h3>\n<p>O quinto trabalho é tornar as tools legíveis para o modelo.</p>\n<p>Essa é uma parte subestimada da disciplina. Uma tool surface não é apenas software API design. Também é context design.</p>\n<p>O modelo precisa entender:</p>\n<ul>\n<li>what the tool does</li>\n<li>when to use it</li>\n<li>what each parameter means</li>\n<li>what the output implies</li>\n<li>what to do next after seeing the result</li>\n</ul>\n<p>É por isso que tool descriptions importam tanto.[9] Também é por isso que a ênfase de Jason Liu em tool results é importante.[10] O output de uma tool não responde apenas à query atual. Ensina ao agent como pensar sobre a próxima query.</p>\n<p>Quando a tool surface se torna padronizada por meio de um protocolo como MCP, isso se torna ainda mais importante. O MCP facilita conectar tools, resources e prompts a aplicações LLM, mas não decide qual informação deve ser surfaced, como deve ser filtrada ou quanto dela deve ser injetado na próxima model call.[15] O protocolo é o plumbing. O context engineering ainda é o craft.</p>\n<h3>6. Isolation and Orchestration</h3>\n<p>O sexto trabalho é decidir quando não compartilhar context.</p>\n<p>Essa é uma das maiores diferenças entre toy demos e agents de produção.</p>\n<p>Às vezes a resposta certa não é um prompt compartilhado maior. São múltiplos prompts menores com escopos isolados.</p>\n<p>O sistema de pesquisa multi-agent da Anthropic é um exemplo forte.[16] Seus subagents executam em paralelo com context windows separadas, o que ajuda a explorar diferentes branches de um problema sem contaminar uns aos outros com cada detalhe intermediário. A LangChain descreve um padrão similar sob \"isolate\": às vezes a melhor maneira de melhorar a confiabilidade do agent é dividir contexts em vez de acumulá-los.[17]</p>\n<p>Isso importa porque context compartilhado tem um custo oculto. Cria path dependence. Um único branch ruim pode influenciar a próxima etapa, e a seguinte, e a seguinte.</p>\n<p>Isolation é uma forma de limitar o blast radius.</p>\n<h2>O Que Mudou em 2026</h2>\n<p>Em 2025, context engineering era principalmente um nome útil para um problema que as pessoas já sentiam. Em 2026, está começando a se cristalizar em uma arquitetura.</p>\n<p>A primeira grande mudança é que os builders estão movendo durable state para <strong>fora</strong> da context window bruta. A ferramenta de context editing e memory da Anthropic separa explicitamente o que fica live na working window do que deve persistir entre sessions.[18] O cookbook de janeiro de 2026 da OpenAI sobre personalization faz o mesmo movimento de uma forma diferente: structured state objects que persistem entre runs e são deliberadamente injetados de volta na working memory no início de cada run.[19] A Responses API da OpenAI então leva isso um passo adiante com compaction nativo, para que loops de agent de longa duração não exijam que cada time construa um subsistema de summarization customizado do zero.[14]</p>\n<p>O Managed Agents da Anthropic torna o padrão subjacente incomumente explícito: <strong>a session não é a context window do modelo</strong>.[20] Essa é uma ideia crítica de 2026. A window é working memory transitória. O session log é o durable object. O harness decide como fatiar, compactar e reidratar aquele context durável de volta na próxima model call.</p>\n<p>A segunda mudança é que o retrieval está se tornando mais <strong>just in time</strong> e mais interface-native. Em vez de front-loading todo token possivelmente relevante, os times estão dando aos agents retrieval surfaces que eles já sabem operar. O ChromaFs da Mintlify é um bom exemplo: em vez de inicializar um sandbox completo para retrieval de documentação, ele apresenta docs como um virtual filesystem navegável com <code>ls</code>, <code>cat</code> e <code>grep</code>, reduzindo a criação de session p90 de cerca de 46 segundos para cerca de 100 milissegundos.[21] O AgentFS da Turso leva a mesma intuição para a execução geral de agent: uma abstração de filesystem copy-on-write com armazenamento single-file portátil e auditing embutido.[22]</p>\n<p>A terceira mudança é que <strong>context graphs</strong> estão se tornando uma direção de implementação, não apenas uma metáfora. A tese da Foundation Capital tornou o termo visível, mas a afirmação mais forte é arquitetural: quando agents ficam no execution path, eles podem capturar decision traces como artifacts duráveis, não apenas emitir outputs finais.[26][27] Sistemas open-source como Graphiti e plataformas comerciais como Zep operacionalizam isso como context graphs temporais com validity windows, provenance episodes e hybrid retrieval entre semantics, keywords e graph structure.[23] O TrustGraph adota uma abordagem relacionada ao tratar o context como um artifact versionado: graph, embeddings, evidence e policies agrupados em \"context cores\" portáteis que podem ser promovidos ou revertidos como build outputs.[24][25]</p>\n<p>A quarta mudança é que o context engineering agora é visível na prática real de software, não apenas em blogs de plataforma. O artigo de 2026 da MSR sobre context engineering em open-source software estudou 466 repositórios e descobriu que arquivos de context de IA como <code>AGENTS.md</code> estão se espalhando, mas ainda sem uma estrutura de conteúdo estável.[28] Isso importa porque marca uma mudança da teoria para artifacts operacionais. O context não é mais apenas algo inferido em runtime. Está sendo autorado, versionado, revisado e minerado como parte do ciclo de vida do software.</p>\n<p>Se você quer o modelo mental de 2026 em uma imagem, ele se parece com isso:</p>\n<pre><code class=\"language-mermaid\">flowchart LR\n    E[\"Session log / events\"] --> A[\"Context assembler\"]\n    F[\"Files, docs, and tools\"] --> A\n    G[\"Context graph / memory\"] --> A\n    P[\"Policies and AGENTS.md\"] --> A\n\n    A --> W[\"Working context window\"]\n    W --> X[\"Agent action\"]\n\n    X --> E\n    X --> G\n</code></pre>\n<p>Essa é uma arquitetura muito diferente de \"prompt + vector search\".</p>\n<h2>Onde Context Graphs Realmente Se Encaixam</h2>\n<p>Uma razão pela qual essa conversa fica confusa é que as pessoas usam <strong>context engineering</strong> e <strong>context graph</strong> como se significassem a mesma coisa. Não significam.</p>\n<p>Context engineering é a disciplina mais ampla. É o trabalho de decidir o que entra na próxima context window, o que fica de fora, o que é comprimido e o que é retrieved sob demanda.</p>\n<p>Um context graph é um possível substrato de long-term memory dentro desse sistema maior.</p>\n<p>Essa distinção importa porque nem todo agent útil precisa de um context graph. Um assistente de documentação sobre conteúdo principalmente estático pode precisar de bom retrieval, tool design e compaction, mas não de um graph. Um agent de coding pode ir surpreendentemente longe com repository instructions, um session log durável e uma abstração de filesystem.[20][21][22][28]</p>\n<p>Context graphs se tornam convincentes quando o problema tem quatro características:</p>\n<ul>\n<li><strong>Temporal truth importa.</strong> Você precisa saber não apenas o que é verdade agora, mas o que era verdade no momento da decisão.[23]</li>\n<li><strong>Provenance importa.</strong> Você precisa rastrear fatos de volta ao episode, document ou interaction que os produziu.[23][24]</li>\n<li><strong>Precedent importa.</strong> A tarefa depende de como casos similares foram tratados antes, incluindo exceções e aprovações.[26][27]</li>\n<li><strong>Cross-entity reasoning importa.</strong> A memória útil não é uma nota simples, mas uma rede de pessoas, policies, incidents, accounts, tickets e outcomes.[23][25]</li>\n</ul>\n<p>É por isso que a melhor definição de um context graph, na minha opinião, não é \"um banco de dados em graph para IA\". É uma <strong>representação durável de precedent</strong>.</p>\n<p>É por isso também que decision traces importam tanto. O framing da Foundation Capital é útil aqui: rules dizem ao agent o que deve acontecer em geral; decision traces dizem o que aconteceu em um caso específico, sob constraints reais, com exceções reais.[26] Uma vez que esses traces são vinculados entre entities e tempo, você obtém algo muito mais valioso do que memory genérica. Você obtém searchable judgment.</p>\n<h2>Como Eu Construiria Isso em 2026</h2>\n<p>Se eu estivesse construindo uma stack séria de context engineering hoje, eu não começaria com o graph. Começaria com as interfaces e as promotion rules.</p>\n<h3>1. Construa uma camada de session durável primeiro</h3>\n<p>Cada action, tool result, observation e artifact intermediário importante devem aterrissar em um session log ou event store append-only. Esse é seu recoverable context object.[14][20]</p>\n<p>Não confunda a context window ativa com a source of truth.</p>\n<p>A window é para reasoning.</p>\n<p>A session é para recovery, replay, debugging e reidratação seletiva.</p>\n<h3>2. Trate o context assembler como uma product surface</h3>\n<p>O assembler deve gerenciar explicitamente:</p>\n<ul>\n<li>token budgets</li>\n<li>source priority</li>\n<li>freshness</li>\n<li>compaction thresholds</li>\n<li>history trimming</li>\n<li>citation formatting</li>\n<li>cache-aware ordering</li>\n</ul>\n<p>Essa é a camada que decide o que o modelo vê <em>agora</em>. Ela deve ser observável, testável e barata de mudar.[18][19][14]</p>\n<h3>3. Prefira just-in-time retrieval em vez de eager stuffing</h3>\n<p>Dê ao modelo lightweight handles primeiro: file paths, object IDs, URLs, query templates, ticket IDs, incident IDs. Depois deixe-o puxar detalhes apenas quando necessário.[9][18][21]</p>\n<p>É aqui que filesystems, MCP tools, search APIs e structured queries se tornam mais valiosos do que grandes dumps top-K.</p>\n<h3>4. Promova apenas high-value state para long-term memory</h3>\n<p>Nem tudo deve se tornar memory.</p>\n<p>Eu promoveria quatro classes de artifacts:</p>\n<ul>\n<li>stable user ou account preferences</li>\n<li>durable facts com provenance</li>\n<li>important intermediate summaries</li>\n<li>decision traces e exceptions</li>\n</ul>\n<p>Todo o resto deve ficar no session log até provar que merece promotion.</p>\n<h3>5. Construa o context graph como uma camada de memory promovida</h3>\n<p>Essa é a parte que muitos times invertem.</p>\n<p>O graph não deve ser seu transcript bruto em forma de graph. Deve ser a camada curada que fica acima de sessions e abaixo da assembly em tempo real:</p>\n<ul>\n<li>entities</li>\n<li>relationships</li>\n<li>time validity</li>\n<li>source episodes</li>\n<li>approvals</li>\n<li>exceptions</li>\n<li>outcomes</li>\n</ul>\n<p>Se você pular o passo de promotion, o graph se torna um dumping ground.</p>\n<p>Se você acertar o promotion, o graph se torna a memória de como a organização realmente raciocina.[23][26]</p>\n<h3>6. Empacote o context como code</h3>\n<p>Até 2026, uma das ideias mais promissoras é tratar o context como um artifact versionado. Em projetos de software isso aparece como <code>AGENTS.md</code> e outros arquivos de context específicos de repositório.[28] Em sistemas graph-native isso aparece como context cores: pacotes portáteis de ontology, graph structure, embeddings, provenance e retrieval policy.[24][25]</p>\n<p>Isso importa porque mudanças de context precisam da mesma disciplina operacional que mudanças de code:</p>\n<ul>\n<li>review</li>\n<li>versioning</li>\n<li>rollback</li>\n<li>environment promotion</li>\n<li>evaluation</li>\n</ul>\n<p>Uma vez que o context se torna um artifact, ele se torna governável.</p>\n<h3>7. Separe observability de intelligence</h3>\n<p>Você precisa de ambos:</p>\n<ul>\n<li><strong>observability da execução do agent</strong></li>\n<li><strong>observability do context system</strong></li>\n</ul>\n<p>Essas não são a mesma coisa.</p>\n<p>Eu quero saber:</p>\n<ul>\n<li>what the model saw</li>\n<li>what it did not see</li>\n<li>what got compacted</li>\n<li>what was retrieved just in time</li>\n<li>what got promoted into memory</li>\n<li>what graph neighborhood was traversed</li>\n<li>which precedent actually influenced the action</li>\n</ul>\n<p>Se você não conseguir responder essas perguntas, ainda está debugando prompts no escuro.</p>\n<h2>Um Modelo de Maturidade Prático</h2>\n<p>Se você está tentando avaliar onde seu próprio sistema está, esse modelo de maturidade é mais útil do que definições abstratas.</p>\n<h3>Nível 0: Apenas Prompt</h3>\n<p>Você tem um system prompt, uma user message e talvez alguns exemplos.</p>\n<p>Isso pode funcionar surpreendentemente bem para tarefas de escopo restrito. Quebra rapidamente quando a tarefa requer fresh knowledge, persistence ou tools.</p>\n<h3>Nível 1: Retrieval-Enhanced</h3>\n<p>Você adiciona documents em runtime.</p>\n<p>É aqui que muitos times param. Também é onde muitos times começam a ver as limitações de chunking, ranking e context bloat ingênuos.</p>\n<h3>Nível 2: Agent-Aware</h3>\n<p>Você agora gerencia history, tool results, memory e formatting intencionalmente.</p>\n<p>Esse é o primeiro nível onde \"context engineering\" se torna um termo útil, porque o sistema não é mais apenas prompt mais retrieval. Ele está montando múltiplas formas de context dinamicamente.</p>\n<h3>Nível 3: Adaptive</h3>\n<p>O sistema muda como ele constrói o context com base na tarefa.</p>\n<p>Ele pode:</p>\n<ul>\n<li>choose among sources</li>\n<li>compress older history</li>\n<li>reload memory selectively</li>\n<li>route work para tools especializadas</li>\n<li>isolate subproblems em contexts separados</li>\n</ul>\n<p>Nesse ponto, a construção de context é parte da lógica central da aplicação.</p>\n<h3>Nível 4: Context-Native</h3>\n<p>O sistema trata o context como uma engineering surface de primeira classe.</p>\n<p>Ele tem:</p>\n<ul>\n<li>explicit context budgets</li>\n<li>retrieval e generation evals</li>\n<li>metadata e facet-aware navigation</li>\n<li>memory policies</li>\n<li>observability em torno de failure modes</li>\n<li>cost-aware prompt assembly</li>\n</ul>\n<p>É para onde os sistemas de produção mais fortes estão indo.</p>\n<h2>Como Um Bom Context Engineering Parece na Prática</h2>\n<p>Se eu tivesse que reduzir toda a disciplina a um checklist, ele se pareceria com isso:</p>\n<ol>\n<li>Comece com a tarefa, não com o prompt. Defina primeiro como o sucesso se parece.</li>\n<li>Enumere as context sources que o modelo pode precisar. Instructions, docs, tools, memory, state, policies.</li>\n<li>Separe working memory de reference memory. Nem tudo deve viver na window ativa.</li>\n<li>Retrieve com intenção. Mais chunks não é o mesmo que melhor recall.</li>\n<li>Structure o context para que o modelo possa parseá-lo rapidamente. Labels, sources, tables e boundaries importam.</li>\n<li>Design tools como se fossem parte do prompt, porque são.</li>\n<li>Trim agressivamente. Se você não pediria a um humano para reler, não force o modelo a reler.</li>\n<li>Meça retrieval e generation separadamente. Caso contrário, você vai diagnosticar o problema errado.</li>\n<li>Use contexts isolados quando tarefas se ramificam ou podem executar em paralelo.</li>\n<li>Promova durable facts e decision traces intencionalmente. Nem todo transcript pertence à long-term memory.</li>\n<li>Empacote context crítico como code. Instructions, policies e graph artifacts devem ser versionados.</li>\n<li>Trate context bugs como software bugs. Eles devem ser observáveis, reproduzíveis e corrigíveis.</li>\n</ol>\n<p>Nada disso é glamouroso. É exatamente por isso que importa.</p>\n<p>Prompt engineering se tornou popular porque soava como um atalho.</p>\n<p>Context engineering importa porque descreve o trabalho real.</p>\n<h2>A Verdadeira Lição</h2>\n<p>O centro de gravidade na IA está se movendo.</p>\n<p>A pergunta de fronteira costumava ser: <strong>Quão inteligente é o modelo?</strong></p>\n<p>A pergunta aplicada é cada vez mais: <strong>O que o modelo consegue ver antes de ter que agir?</strong></p>\n<p>Esse é um problema de engenharia diferente. É menos sobre prompts únicos e mais sobre systems design. Menos sobre phrasing e mais sobre information flow. Menos sobre a qualidade de output one-shot e mais sobre se um agent pode permanecer confiável ao longo do tempo.</p>\n<p>É por isso que context engineering vai continuar crescendo como uma disciplina. Quanto melhores os modelos ficam, mais as falhas restantes parecem context failures. Missing state. Wrong tool. Bad retrieval. Bloated history. Poor formatting. Conflicting evidence. Weak memory. Unbounded loops.</p>\n<p>A ironia é que isso faz os sistemas de IA parecerem mais com software clássico, não menos. Estamos de volta a construir pipelines, interfaces, state machines, memory hierarchies, caches e observability layers. A novidade é que todas essas peças agora existem a serviço de um probabilistic reasoning engine.</p>\n<p>O nome pode ser novo. A direção não.</p>\n<p>Sistemas de IA confiáveis serão construídos por times que tratam o context como uma product surface de primeira classe.</p>\n<p>Todos os outros vão continuar chamando o modelo de flaky.</p>\n<p><strong>Referências:</strong></p>\n<p>[1] <a href=\"https://simonwillison.net/2025/Jun/27/context-engineering/\">Simon Willison. (2025, June 27). <em>Context engineering</em>.</a></p>\n<p>[2] <a href=\"https://arxiv.org/abs/2005.11401\">Lewis, P. et al. (2020). <em>Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks</em>.</a></p>\n<p>[3] <a href=\"https://arxiv.org/abs/2210.03629\">Yao, S. et al. (2023). <em>ReAct: Synergizing Reasoning and Acting in Language Models</em>.</a></p>\n<p>[4] <a href=\"https://arxiv.org/abs/2410.10813\">Wu, D. et al. (2025). <em>LongMemEval: Benchmarking Chat Assistants on Long-Term Interactive Memory</em>.</a></p>\n<p>[5] <a href=\"https://arxiv.org/abs/2307.03172\">Liu, N. F. et al. (2023). <em>Lost in the Middle: How Language Models Use Long Contexts</em>.</a></p>\n<p>[6] <a href=\"https://arxiv.org/abs/2411.03538\">Leng, Q. et al. (2024). <em>Long Context RAG Performance of Large Language Models</em>.</a></p>\n<p>[7] <a href=\"https://www.trychroma.com/research/context-rot\">Hong, K., Troynikov, A., and Huber, J. (2025, July 14). <em>Context Rot: How Increasing Input Tokens Impacts LLM Performance</em>.</a></p>\n<p>[8] <a href=\"https://blog.langchain.com/the-rise-of-context-engineering\">LangChain. (2025, June 23). <em>The rise of \"context engineering\"</em>.</a></p>\n<p>[9] <a href=\"https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/implement-tool-use\">Anthropic. <em>How to implement tool use</em>.</a></p>\n<p>[10] <a href=\"https://jxnl.co/writing/2025/08/27/facets-context-engineering/\">Jason Liu. (2025, August 27). <em>Beyond Chunks: Why Context Engineering is the Future of RAG</em>.</a></p>\n<p>[11] <a href=\"https://arxiv.org/abs/2407.12883\">Su, H. et al. (2025). <em>BRIGHT: A Realistic and Challenging Benchmark for Reasoning-Intensive Retrieval</em>.</a></p>\n<p>[12] <a href=\"https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/long-context-tips\">Anthropic. <em>Long context prompting tips</em>.</a></p>\n<p>[13] <a href=\"https://platform.openai.com/docs/guides/prompt-caching\">OpenAI. <em>Prompt caching</em>.</a></p>\n<p>[14] <a href=\"https://openai.com/index/equip-responses-api-computer-environment\">OpenAI. (2026, March 19). <em>From model to agent: Equipping the Responses API with a computer environment</em>.</a></p>\n<p>[15] <a href=\"https://modelcontextprotocol.io/\">Model Context Protocol. <em>What is the Model Context Protocol (MCP)?</em></a></p>\n<p>[16] <a href=\"https://www.anthropic.com/engineering/built-multi-agent-research-system\">Anthropic. (2025, June 13). <em>How we built our multi-agent research system</em>.</a></p>\n<p>[17] <a href=\"https://blog.langchain.com/context-engineering-for-agents/\">LangChain. (2025, July 2). <em>Context Engineering</em>.</a></p>\n<p>[18] <a href=\"https://claude.com/blog/context-management\">Anthropic. (2025, September 29). <em>Managing context on the Claude Developer Platform</em>.</a></p>\n<p>[19] <a href=\"https://developers.openai.com/cookbook/examples/agents_sdk/context_personalization\">Okcular, E. (2026, January 5). <em>Context Engineering for Personalization - State Management with Long-Term Memory Notes using OpenAI Agents SDK</em>.</a></p>\n<p>[20] <a href=\"https://www.anthropic.com/engineering/managed-agents\">Anthropic. <em>Scaling Managed Agents: Decoupling the brain from the hands</em>.</a></p>\n<p>[21] <a href=\"https://www.mintlify.com/blog/how-we-built-a-virtual-filesystem-for-our-assistant\">Mintlify. (2026, March 24). <em>How we built a virtual filesystem for our Assistant</em>.</a></p>\n<p>[22] <a href=\"https://docs.turso.tech/agentfs/introduction\">Turso. <em>AgentFS</em>.</a></p>\n<p>[23] <a href=\"https://github.com/getzep/graphiti\">Zep. <em>Graphiti: Build Real-Time Knowledge Graphs for AI Agents</em>.</a></p>\n<p>[24] <a href=\"https://github.com/trustgraph-ai/trustgraph\">TrustGraph. <em>The context development platform</em>.</a></p>\n<p>[25] <a href=\"https://docs.trustgraph.ai/guides/context-cores/\">TrustGraph. <em>Working with Context Cores</em>.</a></p>\n<p>[26] <a href=\"https://foundationcapital.com/ideas/context-graphs-ais-trillion-dollar-opportunity\">Gupta, J., and Garg, A. (2025, December 22). <em>AI's trillion-dollar opportunity: Context graphs</em>.</a></p>\n<p>[27] <a href=\"https://foundationcapital.com/ideas/why-context-graphs-are-the-missing-layer-for-ai\">Garg, A. (2026, January 16). <em>Why context graphs are the missing layer for AI</em>.</a></p>\n<p>[28] <a href=\"https://arxiv.org/abs/2510.21413\">Mohsenimofidi, S., Galster, M., Treude, C., and Baltes, S. (2026). <em>Context Engineering for AI Agents in Open-Source Software</em>.</a></p>",
  "source_hash": "sha256:3f3faa38dd809a893509e9f3c2de70a7ec3778cc6cef2fa58967b63bd169d7d9",
  "model": "moonshotai/kimi-k2.6",
  "generated_at": "2026-08-07T07:25:53.852075+00:00"
}