Agentic Interpretation: Lattice-Structured Evidence for LLM-Based Program Analysis
Este artigo propõe a "interpretação agêntica", um quadro que aplica princípios de análise estática baseada em reticulados ao raciocínio de programas impulsionado por LLMs, decompondo objetivos de análise em afirmações localizadas rastreadas dentro de um reticulado de altura finita, permitindo assim uma análise de programas mais robusta, baseada em evidências e iterativa em comparação com abordagens frágeis de tentativa única.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine que você está tentando resolver um mistério massivo e complexo: "Este programa de computador é seguro para uso?"
No passado, você tinha duas maneiras principais de responder a isso:
- O Detetive Robô (Analisador Estático): Esta é uma máquina rígida, que segue regras. Ela olha apenas para o código escrito na tela. É excelente para encontrar erros matemáticos, mas não consegue ler o manual do usuário, verificar notícias sobre invasões de segurança recentes ou entender as "regras não escritas" de como uma biblioteca deveria funcionar.
- O Especialista Humano (LLM): Esta é uma IA superinteligente que pode ler manuais, verificar notícias de segurança e entender o contexto. Mas se você perguntar a ela: "Este programa inteiro é seguro?" em uma única pergunta grande, ela frequentemente dá uma resposta instável. Ela pode perder um detalhe crucial porque está tentando engolir muita informação de uma vez, ou pode se contradizer sem perceber.
Este artigo propõe uma nova maneira de trabalhar: Interpretação Agêntica.
Pense nisso não como pedir à IA para resolver o mistério inteiro de uma vez, mas como contratar a IA para ser uma equipe de investigadores especializados trabalhando sob um gerente de projeto rigoroso.
A Ideia Central: Dividindo o Mistério em Pistas Minúsculas
Em vez de perguntar à IA: "O programa é seguro?", o framework divide a grande pergunta em centenas de alegações pequenas e específicas.
- Alegação 1: "Esta biblioteca específica lida com dados ruins com segurança?"
- Alegação 2: "A verificação de segurança cobre todos os campos corretos?"
- Alegação 3: "Se a verificação falhar, o programa realmente para?"
A IA (o "Agente") investiga cada alegação minúscula, uma por uma. Mas aqui está a parte mágica: O Gerente de Projeto (o Framework) mantém um cartão de pontuação muito específico para cada alegação individual.
O Cartão de Pontuação: O "Lattice"
Imagine um cartão de pontuação que não diz apenas "Sim" ou "Não". Ele rastreia a força da evidência a favor e contra cada alegação.
- Suporte: Temos prova de que isso é seguro? (Fraca, Forte ou Nenhuma?)
- Refutação: Temos prova de que isso é inseguro? (Fraca, Forte ou Nenhuma?)
Este cartão de pontuação é chamado de Lattice. É como uma grade onde você pode subir ou descer conforme encontra novas informações.
- Se a IA encontrar um alerta de segurança dizendo que uma biblioteca tem um bug, a pontuação de "Refutação" sobe para Forte.
- Se a IA encontrar um manual dizendo que é seguro, a pontuação de "Suporte" sobe para Forte.
O Fluxo de Trabalho: O Jogo da "Lista de Tarefas"
O sistema usa uma "Lista de Tarefas" (como uma lista de afazeres) para gerenciar a investigação. Veja como o jogo se desenrola, usando um exemplo real do artigo:
- A Configuração: O programa usa uma biblioteca de "caixa preta" (não podemos ver seu código, apenas seu nome). O objetivo é ver se é segura.
- Rodada 1 (Busca Ampla): A IA examina a documentação geral da biblioteca.
- Resultado: "Não encontramos bugs óbvios, mas o manual é vago."
- Cartão de Pontuação: Suporte Fraco (talvez seguro), Refutação Fraca (talvez não).
- O Momento "Eureca!" (Loop de Feedback): O sistema olha para o quadro geral. Ele percebe: "Espere, o programa principal depende desta biblioteca para parar hackers, mas a documentação da biblioteca é vaga. Isso é um risco!"
- O Gerente de Projeto envia um Sinal de Feedback de volta à IA: "Volte e procure especificamente por ataques de 'forma de objeto' nesta biblioteca."
- Rodada 2 (Busca Direcionada): A IA, agora sabendo exatamente o que procurar, investiga mais a fundo.
- Resultado: "Encontrei! Há um alerta de segurança conhecido sobre um bug específico nesta versão."
- Atualização do Cartão de Pontuação: A pontuação de "Refutação" salta para Forte.
- Estabilização: O sistema atualiza o quadro geral. Como a biblioteca agora foi provada insegura, a conclusão final para o programa inteiro muda de "Talvez Seguro" para "Inseguro". O sistema para quando nenhuma nova pista pode ser encontrada.
Por Que Isso é Melhor do Que Apenas Perguntar à IA
- Sem Respostas de "Caixa Preta": Você não recebe um único parágrafo confuso. Você recebe um mapa claro mostrando exatamente qual parte do programa é arriscada e que evidência prova isso.
- Auto-correção: Se a IA comete um erro ou perde uma pista, o "Loop de Feedback" a captura. O sistema força a IA a reexaminar seu trabalho se o quadro geral não fizer sentido.
- Ele Para: Como o cartão de pontuação tem um limite (você não pode ficar "mais do que forte"), o sistema sabe quando parar de procurar. Ele não ficará preso em um loop infinito de pensamento.
A Conclusão
Este artigo apresenta um framework que trata Modelos de Linguagem Grandes não como máquinas mágicas de respostas, mas como agentes de coleta de evidências. Ao forçá-los a dividir grandes problemas em pequenas alegações, rastrear a força de suas evidências em um cartão de pontuação estruturado e verificar constantemente seu trabalho contra o quadro geral, podemos usar sua inteligência para analisar software complexo de forma segura e confiável — mesmo quando o código envolve partes misteriosas de terceiros que não podemos ver.
Isso transforma um palpite caótico e único em uma investigação disciplinada e auditável.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.