Docs
PlataformaAgentes

Exemplo completo

Configure o issues-manager do zero e veja, chamada por chamada, como cada parte da configuração responde.

Este exemplo monta um agente real e acompanha cinco chamadas até o resultado. A empresa usa Keycloak para as pessoas e Google Workspace para parte do time, e conectou o MCP server do GitHub.

O objetivo

O issues-manager ajuda o time de engenharia a cuidar de issues e pull requests. A política da empresa é:

  • todo mundo no Keycloak pode usar o agente, menos o Diego, que é de outra área;
  • o agente pode listar issues em acme/payments-api e acme/web;
  • o agente pode fazer merge, mas só em acme/payments-api, e só de pull requests com pelo menos duas aprovações e nenhuma mudança pedida;
  • o agente não pode criar branches.

A configuração

ParteConfiguraçãoPágina
Who can delegateKeycloak customer: 80 de 81 pessoas e serviços, todos menos o DiegoQuem pode delegar
ToolsGitHub · list_issues e GitHub · merge_pull_request. Sem create_branchTools
RegrasEm list_issues: "Payments and web repositories", repository is one of [acme/payments-api, acme/web]. Em merge_pull_request: "Payments repository only", repository is one of [acme/payments-api], e "At least 2 approvals, no changes requested", que lê as revisões do pull request numa context sourceRegras

No grafo, merge_pull_request mostra "2 rules", e uma ligação tracejada vai dela até a context source das revisões. Depois de publicar, a barra mostra a revisão efetiva.

As chamadas

Cada chamada passa pelas três verificações. A primeira que falha define o motivo.

ChamadaDelegaçãoToolRegrasResultado
Alice faz merge de um PR com 2 aprovações em acme/payments-api✓✓✓ALLOW
Alice faz merge de um PR com 1 aprovação em acme/payments-api✓✓✗ "At least 2 approvals"DENY · condition
Bruno faz merge em acme/infra✓✓✗ "Payments repository only"DENY · condition
release-pipeline cria um branch em acme/web✓✗—DENY · no_grant
Diego lista issues em acme/web✗——DENY · no_delegation

O Diego nem chega a chamar: a troca de token dele já é recusada com no_delegation, e o agente não recebe token em nome dele. A linha da tabela mostra o que aconteceria se a delegação fosse revogada depois da emissão do token: a verificação por chamada nega do mesmo jeito.

O que o administrador vê

Cada negação aparece no Investigate com a etapa que falhou e uma ação que leva direto à correção. A primeira chamada negada, no inspetor:

Inspetor de uma chamada negada por regra

O caminho vem primeiro: delegação, agente, server e tool passaram, e a etapa Rules nomeia a regra que falhou. O resultado diz "Rule not met:" com a regra como frase, e Open the rule, embaixo, leva ao painel da tool no grafo. Nenhum valor fica registrado: o registro não diz quantas aprovações o PR tinha.

A negação do Bruno cita a outra regra, "Payments repository only". Open the rule leva ao mesmo painel. O administrador avalia se o agente deve mesmo fazer merge em acme/infra. Se sim, inclui o repositório na lista daquela regra e publica, e a próxima chamada passa.

O que mudar se a política mudar

MudançaOndeEfeito
Diego entra na engenhariaMarcar o Diego no painel do Keycloak e publicarA próxima troca de token dele funciona
Merge também em acme/webIncluir acme/web na lista de "Payments repository only"Os merges em acme/web passam pela regra de aprovações
Merge só em horário comercialOutra regra, com um atributo de horário de uma context sourceTodas as regras precisam passar
Acesso temporário a create_branchIncluir a tool com expiraçãoDepois da data, volta a ser no_grant sem ninguém mexer
Incidente com o agenteDisable agentNenhum token novo, próxima chamada recusada