From Goals to Aspects, Revisited: An NFR Pattern Language for Agentic AI Systems
Este artigo revisita e estende a metodologia de "objetivos para aspectos" para o domínio da IA agêntica, apresentando uma linguagem de padrões que mapeia modelos de objetivos i* para implementações concretas de preocupações transversais (como segurança e custos) em Rust, visando modularizar e melhorar a confiabilidade desses sistemas.
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ê construiu um robô autônomo superinteligente (uma IA Agente) para ajudar sua empresa. Esse robô não apenas conversa; ele toma decisões, abre arquivos, navega na internet, executa comandos no computador e gasta dinheiro (em tokens de IA) para fazer tudo isso.
O problema é que, na maioria das vezes, quando esses robôs são construídos, os engenheiros focam apenas na "inteligência" (o que o robô faz) e esquecem de colocar os "freios de segurança" e os "painéis de controle" de forma organizada.
O que acontece hoje?
É como se você tivesse um carro de corrida, mas o sistema de freios estivesse espalhado por todo o chassi: um pedaço de freio aqui no motor, outro pedaço no banco do passageiro, e um terceiro no porta-malas. Se você precisar apertar um parafuso para consertar o freio, terá que desmontar o carro inteiro. Além disso, como cada peça foi feita de um jeito diferente, às vezes o freio não funciona quando você mais precisa.
No mundo das IAs, isso significa que:
- A segurança é verificada em um lugar, mas esquecida em outro.
- O registro de tudo o que o robô fez (para auditoria) está misturado com o código que faz ele pensar.
- O controle de custos (para não gastar uma fortuna com a API da IA) é feito de forma manual e inconsistente.
A Solução: O "Modo Aspecto" (AOSD)
O autor deste artigo, Yijun Yu, propõe uma solução baseada em uma ideia antiga (de 2004) que ele atualizou para a era das IAs. Ele chama isso de "De Objetivos para Aspectos".
Vamos usar uma analogia simples: O Cozinheiro e o Chefe de Cozinha.
- O Cozinheiro (A Lógica Funcional): Ele sabe cozinhar o prato principal (o objetivo do robô: "buscar dados na internet"). Ele é o foco.
- O Chefe de Cozinha (Os "Aspectos"): Ele não cozinha o prato, mas ele garante que:
- O cozinheiro use luvas de proteção (Segurança).
- O cozinheiro não use mais ingredientes do que o orçamento permite (Gestão de Custos).
- O cozinheiro anote cada passo no caderno de receitas (Observabilidade/Auditoria).
- O cozinheiro pare se a cozinha pegar fogo (Tolerância a Falhas).
No método antigo, o cozinheiro tinha que parar de cozinhar para colocar as luvas, anotar no caderno e checar o orçamento, tudo misturado na mesma receita. O código ficava "emaranhado".
A Inovação: A Linguagem de Padrões
O autor criou um manual de instruções (uma linguagem de padrões) com 12 receitas prontas para esses "Chefes de Cozinha" (os Aspectos). Ele identificou que, nas IAs modernas, os problemas são mais complexos.
Ele criou 4 novos "Chefes" específicos para IAs que não existiam antes:
- O Guardião da Caixa de Areia (Sandboxing): Garante que o robô só mexa nos arquivos que você permitiu. Se ele tentar abrir o sistema do banco, o guardião bloqueia.
- O Detector de Golpes (Prompt Guard): IAs são vulneráveis a "injeção de prompts" (quando alguém tenta enganar o robô para ele fazer coisas ruins). Esse guardião lê o que o usuário diz antes de passar para o robô, como um filtro de spam.
- O Controlador de Carteira (Token Budget): IAs gastam dinheiro por palavra que processam. Esse aspecto vigia o saldo e para o robô se ele estiver prestes a gastar demais.
- O Escrivão de Auditoria (Action Audit Trail): Grava por que o robô tomou aquela decisão, não apenas o que ele fez. Essencial para saber quem é o culpado se algo der errado.
Como eles descobriram isso? (O Gráfico em V)
O autor usa um método visual chamado "Gráfico em V". Imagine um triângulo invertido:
- No topo esquerdo: O objetivo do robô (ex: "Executar um comando").
- No topo direito: A preocupação não funcional (ex: "Segurança").
- Na ponta de baixo: A tarefa que conecta os dois.
Se a mesma tarefa de baixo toca em vários objetivos de cima (Segurança, Custo, Confiabilidade), você tem um "V" sobreposto. Isso significa que você precisa de vários "Chefes de Cozinha" atuando no mesmo momento. O método deles encontra esses pontos automaticamente no desenho do sistema antes mesmo de escrever o código.
O Estudo de Caso: ZeroClaw
Para provar que isso funciona, eles analisaram um projeto de IA real e de código aberto chamado ZeroClaw (que tem mais de 129.000 linhas de código).
- Antes: Eles viram que o código de segurança estava espalhado em 104 arquivos diferentes, feito de 3 jeitos diferentes. Era um caos.
- Depois (Simulado): Eles mostraram que, usando os "Aspectos" do manual, poderiam reduzir esse código espalhado em 96%. Em vez de escrever o código de segurança em 8 lugares diferentes, você escreve uma vez e "cola" (anota) em 8 lugares.
Resumo Final
Este artigo diz: "Pare de construir IAs bagunçadas onde a segurança e o controle de custos estão misturados com a lógica principal."
Em vez disso, use o método de Objetivos para Aspectos:
- Desenhe o que a IA deve fazer.
- Identifique onde a segurança, o custo e a auditoria "cortam" através de tudo.
- Use os 12 Padrões (o manual) para criar módulos separados que cuidam dessas preocupações.
Isso torna as IAs mais seguras, mais baratas de rodar, mais fáceis de auditar e muito mais fáceis de manter, como trocar de pneu em um carro onde o freio é um sistema único e bem organizado, em vez de peças soltas pelo chassi.
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.