Aqui esta uma especificacao de construcao com seis secoes. Seu agente precisa le-la e descobrir o que importa. Vai:
Um LLM bruto vai ler todas as seis secoes com a mesma atencao. Vai gastar a mesma quantidade de computacao em "O arquiteto responsavel e Smith & Associados" que gasta em "Multa por atraso de $2.500 por dia corrido." Vai tratar a secao de contexto com a mesma importancia que a secao de seguranca.
Esse e o problema fundamental. Seu agente le tudo igualmente porque nao tem estrutura para dizer o que importa.
O que e um primitivo cognitivo
Uma CPU nao raciocina sobre dados. Ela tem primitivos: ADD, COMPARE, LOAD, STORE. Pensamento de alto nivel e composto a partir dessas operacoes de baixo nivel.
Agentes de IA funcionam da mesma forma. Sua camada de orquestracao — LangChain, CrewAI, chamadas diretas de API, qualquer coisa — compoe a partir de primitivos. Os usuais: retrieve, summarize, generate, classify. Mas falta um no stack.
Decomposicao: dividir texto bruto em unidades semanticas classificadas e priorizadas antes do raciocinio comecar.
Isso nao e sumarizacao. Sumarizacao perde informacao. Nao e retrieval. Retrieval requer uma query. Nao e classificacao no sentido de ML. Nao ha modelo, dados de treino, nem probabilidades.
E analise estrutural. O mesmo documento entra. Unidades classificadas saem. Toda vez. Em 4 milissegundos.
Como a decomposicao funciona
Aquela especificacao de seis secoes? Uma chamada de funcao:
Aqui esta o que seu agente ve em vez de 2.045 caracteres de texto bruto:
Secao 4 recebeu 8.0. Secao 6 recebeu 0.1. Seu agente agora sabe quais 30% do documento enviar para o LLM e quais 70% pular.
Por que Seguranca recebeu 8.0
Quatro palavras ativaram: shall (autoridade obrigatoria), must (obrigatorio), required (obrigatorio), e comply (risco de conformidade). A formula de atencao e direta:
Sem machine learning. Sem embeddings. A palavra "shall" significa "obrigatorio" desde que a RFC 2119 foi publicada em 1997. Significa a mesma coisa em uma especificacao de construcao, uma especificacao de software e um contrato de compras. Regex e a ferramenta certa aqui.
Por que Contexto recebeu 0.1
Sem palavras-chave obrigatorias. Sem indicadores de risco. Uma correspondencia "permissiva" da linguagem generica. A formula de atencao atinge o minimo:
"Projetos similares na regiao normalmente levam 8-12 meses." Contexto util, mas nao e uma obrigacao, nao e um risco, e nao e algo que seu agente precisa agir. Atencao: 0.1.
O que mais o primitivo extrai
Atencao e a manchete, mas cada unidade carrega uma classificacao completa:
Observe a unidade de requisitos estruturais: pontuacao de atencao baixa (0.6) mas marcada PRESERVE_VERBATIM. Seu agente pode pular essa unidade na triagem inicial, mas se algum dia resumir o documento, ele sabe: nao parafrasear "4.000 psf." Esse numero e irredutivel. Erra-lo mata pessoas.
Como isso muda a arquitetura do agente
Sem um primitivo de decomposicao, o pipeline do seu agente e assim:
Com decomposicao:
A diferenca nao e apenas eficiencia. E corretude. Tres coisas mudam:
1. Alocacao de atencao
Em vez do LLM decidir no que focar (o que ele faz mal para documentos tecnicos), os scores de atencao pre-alocam computacao. Conteudo critico de seguranca e processado. Contexto nao. Seu agente age como um engenheiro experiente que sabe quais secoes de uma especificacao ler primeiro.
2. Consciencia de irredutibilidade
Quando uma unidade e marcada PRESERVE_VERBATIM, seu agente sabe que nao deve resumir ou parafrasear. "4.000 psf" permanece "4.000 psf" — nao se torna "aproximadamente 4.000 psf" ou "cerca de 4 kips por pe quadrado." Essa e a diferenca entre uma ferramenta util e uma responsabilidade legal.
3. Roteamento consciente de entidades
Decompose extrai cada referencia a normas (ASTM, ASCE, IBC, OSHA), cada data, cada valor em dolar. Seu agente pode rotear por tipo de entidade: enviar referencias OSHA para uma cadeia de conformidade de seguranca, valores financeiros para uma cadeia de auditoria de pagamento, referencias ACI para uma cadeia de analise estrutural. Sem busca por similaridade de embeddings. Apenas correspondencia de padroes em metadados estruturados.
O que isso nao e
Decompose nao e substituto de LLMs. E um pre-processador. Algumas coisas que ele explicitamente nao faz:
- Nuance. "O contratado deveria considerar" e "O contratado devera cumprir" ambos classificam como
directive. Um LLM sabe que esses tem implicacoes diferentes. - Referencia cruzada. Se a secao 3 diz "conforme o relatorio geotecnico" e a secao 1 referencia um relatorio diferente, Decompose nao detecta o conflito. E para isso que seu modelo serve.
- Intencao. Decompose classifica estrutura, nao significado. Sabe que "shall" significa obrigatorio. Nao sabe o que a frase esta tentando realizar.
- Raciocinio de dominio. "4.000 psf" e sinalizado como valor de engenharia. Decompose nao sabe se 4.000 psf e razoavel para esse tipo de solo. Um especialista (humano ou LLM) sabe.
Esse e o ponto. Seu LLM cuida de nuance, referencia cruzada, intencao e raciocinio de dominio. Decompose cuida de todo o resto — o trabalho mecanico de dividir, classificar, pontuar e extrair — para que o LLM possa focar no que ele realmente faz bem.
Por que precisa ser deterministico
Imagine um agente processando documentos de conformidade de seguranca. Roda na segunda-feira, sinaliza a secao 4 como critica de seguranca. Roda na quarta-feira, classifica a mesma secao como "consultiva" porque o LLM estava um pouco mais criativo naquele dia.
Isso nao e uma ferramenta. E um cara ou coroa.
Decompose retorna a mesma saida para a mesma entrada. Toda vez. Nao tem botao de temperatura, variacao de amostragem, nem drift de modelo. Se "shall" correspondeu a mandatory ontem, corresponde a mandatory hoje. Se a secao 4 pontuou 8.0 em producao, pontua 8.0 na sua suite de testes. Voce pode escrever assercoes contra isso. Pode audita-lo.
Para industrias onde documentos tem peso legal — construcao, saude, defesa, financas — determinismo nao e um diferencial. E pre-requisito.
O padrao primitivo
O ponto mais amplo: agentes precisam de mais primitivos, nao de mais parametros.
A trajetoria atual de ferramentas de IA e: tornar o modelo maior, dar mais contexto, adicionar mais retrieval. Isso funciona, ate nao funcionar. Uma janela de contexto de 200K nao ajuda se 70% dos tokens sao ruido de fundo. RAG nao ajuda se os embeddings nao conseguem distinguir um requisito obrigatorio de uma nota informativa.
Primitivos ajudam porque operam em uma camada diferente. Nao competem com o LLM — alimentam-no. Um documento bem decomposto faz qualquer modelo funcionar melhor: menor contexto, maior sinal, metadados estruturados para rotear.
Decompose e um primitivo. Deveria haver mais. Resolucao de entidades, ordenacao temporal, construcao de grafos de referencia, rastreamento de obrigacoes — sao todas operacoes deterministicas que agentes atualmente terceirizam para o modelo. Cada uma delas poderia ser uma biblioteca de regex-e-heuristicas que roda em milissegundos e da ao LLM entradas estruturadas em vez de texto bruto.
Estamos construindo esses primitivos na Echology. Decompose e o primeiro que abrimos como open source.
Experimente
Cada unidade vem com authority, risk, attention, actionable, irreducible, entities, dates, financial. Sem API key. Sem setup. Roda offline.
Seu LLM cuida do raciocinio. Deixe outra coisa cuidar da leitura.