Guarda de Raciocínio: Detecção de Loop em Nível de Proxy para Inferência Local de LLM

Um desenvolvedor executando Qwen3.6 MoE por trás de um proxy vLLM encontrou um problema comum de confiabilidade: loops de raciocínio descontrolados onde o modelo se repete dentro de um bloco de raciocínio, queimando tokens e travando agentes. A 180+ tokens/seg, mesmo um loop de 20-30 segundos desperdiça tempo de GPU e bloqueia requisições de clientes. Eles construíram uma proteção leve que vive na camada do proxy e aplica verificações determinísticas na saída do stream antes que ela chegue ao cliente.
Arquitetura
Cliente → Proxy → vLLM → Modelo
O proxy intercepta a resposta do stream ao sair do vLLM. Ele não modifica pesos do modelo, chama um segundo LLM, ou usa embeddings ou análise semântica. Todas as verificações são baratas e determinísticas.
O que verifica
- Limites de tokens de raciocínio (configuráveis por nível de esforço)
- Detecção de parágrafos repetidos
- Repetição de n-gramas com janela deslizante
- Impressão digital de frases repetidas
- Detecção fuzzy de padrões de abertura (captura loops como "Na verdade, acho que encontrei…")
- Caminho de recuperação corta-e-continua
Fluxo de recuperação
Quando a proteção é acionada, ela:
- Para o stream upstream
- Captura o raciocínio produzido até o momento
- Reenvia a requisição com esse raciocínio embutido como contexto anterior do assistente
- Desabilita o pensamento para a continuação
- Mescla as estatísticas de uso da fase 1 e fase 2
Como o cache de prefixo do vLLM já está ativo, a continuação é efetivamente perfeita. A fase 2 geralmente retoma com ~50-100ms de TTFT, então o cliente vê o raciocínio fluir diretamente para a resposta final em vez de travar.
Observabilidade
O proxy registra cada acionamento com:
- Se a proteção foi acionada
- Motivo do acionamento
- Limite de tokens usado
- Contagem de tokens de raciocínio
- Uso total mesclado
- Metadados do fim do stream
Resultado
Antes: blocos de raciocínio ocasionais de 2000+ tokens que não levavam a lugar nenhum. Depois: o modelo ainda raciocina quando útil, mas o pensamento descontrolado é cortado e redirecionado para uma resposta. O autor descreve como um "cinto de segurança no nível do proxy para inferência local de LLM".
Sem cirurgia no modelo, sem chamadas extras de LLM — apenas interceptação de stream, contagem de tokens, detecção de loop e um caminho de recuperação limpo. A proteção foi validada de ponta a ponta através do proxy ao vivo contra logs de rastreamento reais.
📖 Leia a fonte completa: r/LocalLLaMA
👀 See Also

Protocolo Piloto: Uma Pilha de Rede P2P para Agentes de IA Construída com Claude
Um desenvolvedor construiu o Pilot Protocol, uma pilha de rede virtual ponto a ponto em espaço de usuário puro em Go, especificamente para agentes de IA autônomos, permitindo comunicação direta sem infraestrutura centralizada. O protocolo usa multiplexação UDP, travessia NAT e criptografia ponta a ponta, com benchmarks mostrando 89 MB/s de throughput local e 2,1 MB/s de throughput WAN transcontinental.

Experimento de revisão de código comparativo avalia três ferramentas de IA na mesma base de código
Um experimento em vídeo testa o Codex, Claude Code e Claude Code com Sextant em tarefas idênticas de revisão de código, com o Codex verificando os achados e julgando qual relatório é mais valioso. O foco está em como o fluxo de trabalho e a estrutura afetam o que a IA percebe e prioriza.

Estrutura de Autorrefinamento Recursivo para Agentes de Codificação de IA Usando Claude Code
Um framework de código aberto permite que agentes de codificação de IA melhorem-se recursivamente usando Claude Code. O sistema analisa rastros dos agentes, identifica padrões de falha e implementa correções, alcançando um aumento de 25% no desempenho em um ciclo de teste.

ReasonDB: Banco de Dados de Documentos de Código Aberto que Utiliza Navegação em Árvore Guiada por LLM em vez de Busca Vetorial
ReasonDB é um banco de dados de documentos de código aberto que preserva a estrutura do documento como uma hierarquia e usa travessia de árvore guiada por LLM para recuperação, em vez de busca vetorial. Ele usa BM25 para busca inicial, tree-grep para filtragem de estrutura e travessia de busca em feixe, onde o LLM visita aproximadamente 25 nós entre milhões.