Voltar
Um pouco de determinismo para agentes de IA
🤖CEVIU

Um pouco de determinismo para agentes de IA

Aprofundamento CEVIU

Aprofundamento

O autor do post, que trabalha na Sentry, descreve como a equipe tenta criar comportamento determinístico no Junior, agente open source ligado ao Slack. Ele nasceu para transformar threads em issues do GitHub e hoje é usado para entregar software na empresa. O ponto de partida é simples: restringir demais o agente o deixa menos capaz, e instruções em skills, AGENTS.md ou system prompt quase nunca resolvem sozinhas.

A solução que mais funcionou foi um proxy de egress man-in-the-middle, rodando no firewall da Vercel. Ele aplica dois padrões: negar ações e forçar reações por mensagens automáticas. Se o agente chama gh pr create no shell, o proxy lê a mutation GraphQL createPullRequest e rejeita. A resposta orienta o agente a usar a ferramenta github_createPullRequest, que acrescenta o rodapé e o co-authored-by em 100% dos casos. O proxy distingue as origens porque as requisições do sandbox levam um token assinado. Ele também esconde credenciais do agente e limita permissões, já que o Junior não pode aprovar PRs mesmo com um token que permitiria.

O segundo padrão são os watches, um sistema parecido com webhooks. Eventos como falha de CI, comentários de review, aprovações e merge entram como mensagens de usuário com marcação especial, em vez de loops do tipo "verifique o PR a cada 5 minutos". O mesmo truque vale para a escolha do repositório: o proxy rejeita a chamada se o sandbox estiver na imagem padrão, e o agente descarta o sandbox e cria outro com as dependências certas.

Por que isso importa

Para quem opera agentes com acesso a shell e sistemas internos, a leitura é que a camada de rede serve também como ponto de controle de comportamento, não só de segurança. Regras aplicadas fora do prompt são verificáveis, e o agente mantém a liberdade de escolher ferramentas. O próprio autor diz que a abordagem não depende da Vercel e que mais treino de modelo ou mais prompt dificilmente eliminariam essa necessidade.

Perguntas frequentes

O que é o proxy de egress man-in-the-middle usado no Junior?

É um proxy no firewall da Vercel que intercepta todas as requisições de saída do agente. Ele pode ler o conteúdo, como mutations GraphQL, e aprovar, rejeitar ou alterar a chamada. Também injeta credenciais, para que o agente nunca veja tokens e chaves.

Por que não basta usar skills, AGENTS.md ou system prompt?

Segundo o autor, instruções em texto quase nunca garantem o comportamento desejado. O agente pode simplesmente seguir outro caminho, como chamar o git ou o GitHub CLI no shell em vez da ferramenta prevista. O proxy impõe a regra de fora, sem depender de o modelo obedecer.

O que são os watches do Junior?

São assinaturas de eventos, no estilo de webhooks, que chegam ao agente como mensagens de usuário com marcação especial. Cobrem falhas de CI, comentários e reviews de PR, merge e fechamento. Substituem loops periódicos, que desperdiçam tokens.

A solução só funciona na Vercel?

Não. O autor afirma que a stack usa Vercel, mas a abordagem pode ser aplicada em qualquer lugar. O requisito é ter um ponto de controle no tráfego de saída do agente.

Fontes

Avalie este artigo:
Categoria
CEVIU
Publicado
30 de outubro de 2026
Editoria
CEVIU

Quer receber mais sobre CEVIU?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser