LACUNA: Safe Agents as Recursive Program Holes
LACUNA é um modelo de programação seguro para agentes de LLM que trata ações como buracos de programa tipados preenchidos pelo modelo e validados por meio de verificação de tipos estática antes da execução, unificando assim o fluxo de controle do agente com o código gerado, ao mesmo tempo que previne falhas em tempo de execução e limita o acesso a ferramentas.
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ê é o CEO de uma empresa e contrata um assistente brilhante, mas ligeiramente pouco confiável (a IA), para fazer seu trabalho.
O Jeito Antigo (Agentes Atuais):
Normalmente, você dá ao assistente uma instrução específica e minúscula: "Ligue para a companhia telefônica". O assistente faz exatamente isso, depois para e aguarda seu próximo comando. Você segura a prancheta, decide a ordem das tarefas e mantém as chaves do escritório. O assistente não pode decidir ligar para o banco em vez disso, nem reescrever as regras do escritório, porque ele só tem um único botão para pressionar por vez.
O Problema:
Às vezes, o assistente fica confuso com uma nota complicada que você escreveu (uma "injeção de prompt"), ou ele fica pela metade de uma tarefa e comete um erro, deixando o escritório em um estado bagunçado e inconsistente. Como o assistente só tem permissão para pressionar botões, ele não pode destruir o prédio, mas ainda pode causar muita bagunça dentro do cômodo onde está.
O Novo Jeito (LACUNA):
O artigo apresenta LACUNA, que muda a relação. Em vez de dar ao assistente um único botão para pressionar, você lhe dá um espaço em branco em um contrato (um "buraco tipado") e diz: "Preencha este espaço com qualquer código que você precise para resolver este problema, mas ele deve se encaixar perfeitamente em nosso contrato legal".
Veja como funciona, usando analogias simples:
1. O "Contrato Mágico" (Buracos Tipados)
Imagine que você tem um contrato que diz: "O resultado final desta seção deve ser uma Lista de Números."
- Você pede à IA: "Vá encontrar os números primos nesta lista."
- A IA escreve um parágrafo inteiro de instruções (código) para resolvê-lo.
- A Verificação de Segurança: Antes que a IA seja permitida a realmente fazer qualquer coisa, um Inspetor rigoroso (o compilador) verifica o parágrafo da IA.
- O parágrafo realmente resulta em uma "Lista de Números"? Se a IA tentar retornar uma "Lista de Maçãs", o Inspetor a rejeita imediatamente.
- A IA tentou usar uma ferramenta que não tem permissão para tocar? (por exemplo, tentar abrir um arquivo para o qual não tem chave). O Inspetor também pega isso.
- O Resultado: Se a IA cometer um erro, o contrato é rejeitado antes que qualquer ação ocorra. O escritório permanece limpo. A IA recebe o aviso de rejeição, tenta novamente e escreve um parágrafo melhor.
2. A Regra "Tudo ou Nada"
No jeito antigo, se uma IA tentasse "Excluir um arquivo" e depois "Calcular uma soma", e o cálculo falhasse, o arquivo já poderia ter sido excluído.
No LACUNA, é como um único bloco de argila indivisível.
- A IA esculpe o bloco inteiro.
- O Inspetor verifica o bloco inteiro de uma só vez.
- Se qualquer parte da escultura estiver errada (a forma errada, o material errado), o bloco inteiro é descartado. Nada acontece. O escritório permanece exatamente como estava antes da IA começar. Isso evita desastres "pelo meio".
3. O "Porta-Chaves" (Capacidades)
O artigo também fala sobre Capacidades. Imagine que a IA recebe um conjunto específico de chaves (um porta-chaves) para o trabalho.
- Se o trabalho é "Ler o cardápio", a IA recebe a "Chave do Cardápio".
- Se o trabalho é "Enviar um e-mail", a IA recebe a "Chave do E-mail".
- Mesmo que a IA seja enganada por uma nota ruim dizendo: "Use a Chave do Banco para roubar dinheiro", ela fisicamente não consegue fazer isso. Ela não tem a Chave do Banco no bolso. O Inspetor verifica o porta-chaves dela antes de permitir que ela gire a fechadura.
- Isso significa que, mesmo que um hacker engane a IA para tentar fazer algo ruim, a IA literalmente não tem as "chaves" para abrir aquelas portas.
4. As "Bonecas Russas Aninhadas" (Recursão)
A IA pode escrever código que inclui mais instruções para si mesma.
- Você pede: "Escreva um relatório sobre três tópicos."
- A IA escreve um plano que diz: "Primeiro, pedirei à IA para pesquisar o Tópico A, depois o Tópico B, depois o Tópico C e, finalmente, combiná-los."
- Cada um desses pedidos menores também é um "buraco" que é verificado pelo Inspetor antes de ser executado. É como um conjunto de bonecas russas, onde cada boneca individual é inspecionada antes de receber permissão para abrir.
O Que o Artigo Realmente Encontrou
Os pesquisadores testaram este sistema (LACUNA) usando uma linguagem de programação chamada Scala 3.
- Segurança: Eles descobriram que o "Inspetor" pegou cerca de 8,6% das tentativas da IA antes que elas pudessem ser executadas. Estas eram tentativas que tinham a forma errada ou tentavam usar ferramentas para as quais a IA não tinha permissão.
- Repetição: Quando a IA cometia um erro, o sistema pedia que ela tentasse novamente. Em média, foram necessárias apenas 0,7 tentativas para obter uma resposta válida.
- Desempenho: O sistema resolveu cerca de 27% das tarefas de pesquisa difíceis e 76% das tarefas de atendimento ao cliente. Isso foi aproximadamente o mesmo que outros agentes de IA padrão, provando que adicionar essa verificação de segurança rigorosa não tornou a IA "mais burra", apenas mais segura.
- Segurança: Eles testaram o sistema contra hackers tentando enganar a IA (injeção de prompt). Como a IA era limitada pelo seu "porta-chaves" (capacidades), os hackers não conseguiam fazer a IA fazer coisas fora de seu escopo permitido, mesmo que conseguissem enganar a IA para tentar.
A Pegadinha (Limitações)
O artigo admite algumas coisas:
- Não é perfeito: O Inspetor verifica se a IA seguiu as regras (ela usou as ferramentas certas? ela retornou o tipo de resposta correto?), mas não verifica se a IA fez a coisa certa logicamente. Se a IA escrever um código perfeito que calcula a matemática errada, o Inspetor o deixa passar.
- Precisa de uma IA inteligente: Se a IA não for muito boa em escrever código, ela será rejeitada frequentemente e o processo será lento.
- É mais lento: Como o sistema precisa parar, verificar e re-verificar o código toda vez, leva mais tempo e poder de computação do que simplesmente deixar a IA pressionar um botão.
Em resumo: O LACUNA transforma a IA de um pressionador de botões em um contratado que deve submeter um plano completo para aprovação antes de realizar qualquer trabalho. Se o plano quebrar as regras, o trabalho nunca começa, mantendo o sistema seguro contra erros e truques.
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.