Clausius Sama
← Wiki
Sistemas de controle

Autonomia de agentes como ganho de malha

Novo em sistemas de controle, ou precisando de uma revisão? Comece por Sistemas de controle: os fundamentos.

Eu rodo agentes de IA que operam minhas empresas no dia a dia. Toda manhã eles leem os números, escrevem campanhas e respostas e me pedem aprovação para tudo que envolve um cliente ou dinheiro. A pergunta em aberto é quanto desses pedidos pode acabar. Respondo do mesmo jeito que comissionaria uma nova malha de controle no chão de fábrica: começar no manual, medir e só aumentar o ganho na velocidade que as medições justificam.

Esse é um problema diferente do que está em Meu método para trabalhar com agentes de IA. Lá, o agente trabalha dentro de um repositório, tudo o que ele faz fica no controle de versão, e dar permissão total é a escolha certa. Um agente de operações age no mundo de fora: manda e-mails para prospects e muda gastos com anúncios. Essas ações não se desfazem com git, então a autonomia dele precisa ser conquistada.

A malha

Cada ação que o agente propõe passa pela mesma malha:

Elemento de controle Equivalente no agente
Setpoint O resultado que o agente prevê: "a taxa de rejeição desta campanha fica abaixo de 2% por 7 dias"
Saída do controlador A ação que ele propõe, como pausar uma campanha ou lançar um público
Portão Minha aprovação ou rejeição, com uma nota opcional
Planta O negócio: campanhas, contas de anúncio, prospects
Sensor A métrica real, lida quando a previsão vence
Erro A nota: acerto, parcial ou erro

Diagrama de blocos da malha de autonomia do agente

Figura 1. A malha interna (branca e azul) é o agente operando o negócio. A malha externa (âmbar) avalia as previsões e ajusta o ganho K. Quando K = 0, uma ação só passa depois que eu aprovo; quando K = 1, ela passa direto. O limite diário e os intertravamentos ficam entre o portão e a planta.

A regra que faz a malha funcionar: todo pedido é uma previsão. O agente não pode pedir nada sem dizer o que vai acontecer, até quando e com que certeza, na forma de uma probabilidade pp. Um pedido vago não pode receber nota, e uma malha sem medição é uma malha aberta.

O que é medido

Três números por tipo de ação me dizem se o agente está pronto para mais ganho:

  • Taxa de aprovação. Com que frequência eu concordo com o que ele pede. Mede se o julgamento dele bate com o meu.
  • Taxa de acerto. Com que frequência as previsões se confirmaram, com um acerto parcial valendo metade. Mede se o modelo que ele tem do negócio está certo.
  • Calibração. O escore de Brier, 1N∑i(pi−oi)2\frac{1}{N}\sum_i (p_i - o_i)^2, em que oio_i vale 1 para um acerto e 0 para um erro. Zero é perfeito. Dizer 0,5 para tudo dá 0,25, um cara ou coroa. Um agente que diz 90% e acerta 60% das vezes é um sensor lendo alto, e quero saber disso antes de confiar nele.

O agente dá nota às próprias previsões, porque tem os dados e o tempo. Mas notas autodeclaradas são um sensor que precisa de calibração. Por isso, uma vez por semana recebo as notas como um único pedido de aprovação: aprovar confirma as notas, e rejeitar com uma nota contesta. Uma nota contestada não conta até que o agente a refaça.

Aumentando o ganho

A autonomia é definida por tipo de ação, não para o agente como um todo. Pausar uma campanha e retomá-la são decisões diferentes, com riscos diferentes, então recebem notas separadas. Um tipo fica elegível para autonomia quando, no histórico recente:

  1. Eu decidi sobre ele pelo menos 10 vezes, aprovando pelo menos 90%.
  2. Pelo menos 5 resultados têm nota, com pelo menos 80% de acertos.
  3. Os últimos 5 estão limpos: nenhuma rejeição, nenhum erro, nada contestado.

A elegibilidade só gera uma recomendação. Quem aumenta o ganho sou eu, adicionando o tipo a um arquivo que o agente não pode editar. A partir daí ele age e me avisa depois, e continua recebendo nota exatamente nos mesmos termos de antes.

É assim que se coloca uma malha nova em operação. Você a roda no manual, depois no automático com uma sintonia conservadora, e só aperta à medida que as tendências mostram que ela se mantém. Não se passa para uma sintonia agressiva porque o primeiro dia foi bem.

Proteção

Só ganho não é seguro. Três proteções ficam em volta dele.

Um disjuntor. Se qualquer um dos 3 últimos resultados com nota de um tipo promovido for um erro ou estiver contestado, a autonomia dele se desliga sozinha e os pedidos voltam para mim. Como um disjuntor que desarmou, ele não rearma sozinho: primeiro eu vejo o que aconteceu. Uma malha que acabou de tomar uma decisão ruim é a última que deveria continuar agindo sem supervisão.

Um limite de taxa. Cada tipo promovido tem um limite diário. Funciona como a saturação de um atuador: nem um controlador correto deveria conseguir bater a válvula de uma vez.

Intertravamentos fixos. Algumas ações nunca podem ser promovidas, seja qual for a nota: gastar dinheiro, fazer o primeiro contato com um cliente e qualquer coisa que não possa ser desfeita. Em uma planta, as funções de segurança não ficam no mesmo programa que o controle de processo, e os operadores não podem editá-las pela IHM. A mesma regra vale aqui. A lista do que nunca pode ser promovido, o arquivo de autonomia e as próprias ferramentas do agente ficam onde ele não pode escrever, e o executor bloqueia edições no próprio código dele. Um agente que pudesse editar seus intertravamentos não teria nenhum.

Por que vale a pena

Sem isso, as duas opções são ruins. Ou você aprova tudo para sempre, e o agente quase não economiza seu tempo. Ou você entrega tudo de uma vez, no feeling, e descobre as falhas dele pelos clientes. A malha dá uma terceira opção: autonomia que cresce com as evidências, encolhe sozinha quando as evidências mudam e nunca alcança o que deve sempre ter uma pessoa no comando.

É o mesmo raciocínio que uso com dinheiro em Dinheiro como sistema de controle: meça o ganho antes de aumentá-lo, respeite o atraso e mantenha os limites rígidos fora do controlador.