RuntimeTickets audita em tempo real se skills de terceiros respeitam obrigações de segurança em agentes autônomos
O trabalho propõe o RuntimeTickets, um protocolo que gera e verifica obrigações de segurança específicas para cada execução de uma agent skill de terceiros, sem depender de confiar apenas na descrição da skill ou nas permissões concedidas a ela. Um portão de execução ("runtime gate") verifica cada envio de dados de saída contra as obrigações aprovadas, usando um decodificador determinístico que nunca envolve um modelo de linguagem na decisão final. Em testes contra scanners de produção e defesas de referência, o sistema atingiu 0% de falsos negativos e 0% de falsos positivos na identificação de skills maliciosas versus benignas.
Agent skills são extensões de terceiros que ampliam o que um agente autônomo pode fazer — de forma análoga a plugins ou extensões em outros ecossistemas de software — mas o artigo parte de um problema estrutural: uma skill maliciosa pode esconder exposição de dados ou manipulação de saída dentro de um fluxo de trabalho que parece completamente legítimo. Nem ler a descrição declarada da skill, nem conceder a ela permissões de ferramentas específicas, garante que sua execução de fato respeite os requisitos de segurança que o usuário esperava, já que a descrição é fornecida pelo próprio autor da skill e as permissões técnicas não capturam a intenção real de cada ação.
O RuntimeTickets ataca esse problema criando, para cada execução de uma skill, um "ticket" de obrigações de segurança derivado do contrato de entrega da tarefa: um modelo de linguagem propõe quais obrigações se aplicam àquela tarefa específica, e cada obrigação cita explicitamente as linhas da skill que a satisfazem, criando rastreabilidade entre requisito e implementação. A partir daí, um portão de execução ("runtime gate") monitora todo envio de dados de saída — verificando destinatário, objeto e quantidade — antes de permitir que ele saia, e monitores confiáveis registram os efeitos observados dentro de seu escopo. Um decodificador determinístico, que nunca envolve um modelo de linguagem na decisão final, traduz o status acumulado do ticket em fluxos de dados governáveis e verifica se cada obrigação foi de fato cumprida.
Essa separação de responsabilidades é o ponto de design mais importante do trabalho: como a proposta de obrigações (feita por um LLM) é separada da decisão de bloqueio (feita por um decodificador determinístico), texto injetado dentro de uma skill maliciosa pode no máximo alterar a proposta de obrigações, mas nunca a regra que de fato decide se um envio de dados é permitido — fechando uma classe de ataque em que o próprio conteúdo malicioso tentaria manipular o julgamento do mecanismo de defesa baseado em LLM.
Nos testes, realizados na borda de rede (egress) de três frameworks de agente não modificados, contra scanners de produção e defesas de referência como um allow-list derivado do AgentBound e o SkillGuard, o RuntimeTickets eliminou os dois modos de falha característicos de defesas atuais para skills: deixar passar skills maliciosas (0,0% de taxa de falha) e bloquear skills benignas por excesso de cautela (0,0% de taxa de falso positivo), enquanto os scanners comparados erraram nos dois sentidos. Na prática, isso é relevante porque o ecossistema de skills/plugins de terceiros para agentes autônomos está crescendo rapidamente, e a maioria das defesas atuais trata a decisão de permitir ou bloquear de forma binária e baseada em confiança estática — o RuntimeTickets aponta um caminho para auditoria granular e verificável, com evidência de execução ligada a cada obrigação aprovada.