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
- cra.mrfonte original
- Categoria
- CEVIU
- Publicado
- 30 de outubro de 2026
- Editoria
- CEVIU

