7 min de leitura

Aprovador de ações de agentes de IA: responsabilidade por turno

Escolha um aprovador para as ações de agentes de IA com base na responsabilidade pelo serviço e no turno de plantão, com transferências claras, permissões limitadas e registros de auditoria.

Aprovador de ações de agentes de IA: responsabilidade por turno

Um aprovador de ações de agentes de IA deve ser a pessoa responsável pelo sistema afetado durante o turno relevante. Essa função não deve ser atribuída automaticamente ao desenvolvedor que abriu a sessão de programação. Muitas vezes são pessoas diferentes, e tratá-las como equivalentes produz aprovações que parecem legítimas até que uma chamada de produção dê errado.

Já vi isso falhar de uma forma comum, sem sabotagem dramática. Um desenvolvedor pede a um agente que investigue um problema de compilação. O agente encontra um endpoint de produção relacionado, solicita uma escrita para ajustar uma configuração, e o desenvolvedor aprova porque o prompt apareceu em seu terminal. O responsável pelo serviço descobre a mudança mais tarde, durante seu turno de plantão, sem contexto e sem uma resposta útil para «quem aceitou esse risco?».

A responsabilidade precisa acompanhar o sistema, seu estado atual e a pessoa que está com o pager. Um bom desenho de aprovação torna esse fato visível antes que a ação seja executada.

Quem inicia a sessão raramente assume a consequência

A pessoa que inicia um agente é responsável pela solicitação que digitou. Ela não passa automaticamente a ser responsável pelo banco de dados, pela conta do fornecedor, pelo destino da implantação ou pelos dados dos clientes que o agente pode alcançar.

Essa distinção parece minuciosa até que uma tarefa de programação atravesse uma fronteira. Um repositório pode conter scripts de implantação, credenciais operacionais, ferramentas de migração e links para sistemas mantidos por várias equipes. Um agente pode seguir esses caminhos mais rápido que um humano que conhece bem o repositório. A familiaridade de quem iniciou a sessão com uma base de código não concede autoridade operacional sobre todos os sistemas alcançáveis.

Separe três funções no seu desenho:

  • O solicitante pede ao agente que investigue, altere ou implante algo.
  • O responsável pelo sistema aceita o risco operacional do serviço-alvo durante o turno atribuído.
  • O executor tem a capacidade de realizar a chamada ou o comando depois da autorização.

Uma mesma pessoa pode ocupar as três funções em uma equipe pequena. Não há problema, desde que isso seja explícito. O erro é juntá-las silenciosamente porque o agente roda no computador de um desenvolvedor.

Isso também esclarece uma discussão frequente: «O desenvolvedor é responsável pelo agente». Ele é responsável por orientá-lo e pelo código que envia. O responsável de plantão responde pelo comportamento do serviço, pelo tratamento dos dados, pelas decisões de reversão e pelo impacto nos clientes. O prompt de permissão deve chegar à pessoa capaz de tomar essa segunda decisão.

A NIST SP 800-53 Rev. 5, controle AC-2, exige gerentes de contas designados e procedimentos de gestão de contas. Ela não prescreve uma tela de aprovação para agentes, mas a disciplina subjacente se aplica bem: atribua responsabilidade pelo acesso, em vez de tratá-lo como uma propriedade automática de quem está conectado no momento. Para ações de agentes, o gerente de contas relevante costuma ser o responsável atual pelo serviço, não o usuário da estação de trabalho.

A responsabilidade pelo serviço precisa incluir o turno

Um registro duradouro de responsabilidade deve indicar tanto o serviço quanto a pessoa responsável naquele momento. Um nome estático de equipe não basta às 2h da manhã, durante uma ausência ou no meio de um incidente.

Para cada sistema que um agente pode afetar, mantenha uma escala pequena com quatro campos: equipe principal responsável, responsável do turno atual, substituto e caminho de escalonamento. A escala pode ficar em um sistema de plantão, em um repositório ou em um diretório interno. O local importa menos que sua atualização contínua e que um sistema de aprovação consiga consultá-la.

Use o limite de serviço que os operadores usam quando recebem um alerta. «API de pagamentos em produção» é um alvo útil. «Backend» não é. Um rótulo amplo de equipe esconde bancos de dados, fornecedores, classificações de dados e procedimentos de reversão diferentes.

Um registro mínimo pode ser assim:

service: billing-api-production
active_owner: billing-oncall
backup_owner: payments-duty-manager
escalation: incident-commander
approval_rules:
  read_customer_records: session
  change_remote_configuration: per_call
  production_database_write: per_call
  create_vendor_credentials: prohibited

Isso não é uma linguagem de políticas para um agente interpretar. É uma declaração, mantida por pessoas, sobre quem pode tomar decisões e quanto escrutínio uma ação exige. Ela evita uma falha conhecida: uma solicitação de aprovação chega a um canal geral de engenharia, alguém reconhece o nome do repositório e ninguém reconhece o sistema de produção por trás dele.

Trate a escala como dado operacional. Uma reorganização da equipe, um novo serviço gerenciado ou uma mudança na escala de plantão pode torná-la inválida. Se o roteamento das aprovações depender de uma planilha que apenas um gerente pode editar, você criou um ponto único de falha silencioso.

O risco da ação pertence ao alvo, não ao verbo

«Ler» e «escrever» são categorias rudimentares demais para definir direitos de aprovação. Uma leitura em um endpoint público de status é diferente de uma leitura que retorna uma exportação de clientes, um segredo de implantação ou uma lista completa de hosts internos. Uma escrita que cria uma branch temporária é diferente de uma escrita que altera uma configuração de um provedor de pagamentos.

Classifique as ações pelas consequências de um resultado bem-sucedido. Comece pelo sistema e pelos dados-alvo, depois considere a possibilidade de reversão e o alcance do impacto. Assim, os responsáveis têm uma base significativa para escolher o escopo da aprovação.

Um conjunto prático de categorias pode ser pequeno:

  • Leituras operacionais rotineiras não retornam material sensível nem alteram o estado.
  • Alterações limitadas afetam um recurso conhecido e têm uma reversão documentada.
  • Alterações de alto impacto afetam configurações de produção, dados de clientes, acesso ou compromissos externos.
  • Ações proibidas nunca devem passar por um canal de agente autônomo.

Não classifique uma ação como de baixo risco porque o método HTTP é GET. Já vi endpoints de diagnóstico retornarem variáveis de ambiente, links assinados e detalhes operacionais que nunca deveriam ter chegado a um agente de programação. O responsável que conhece o endpoint deve classificá-lo.

Da mesma forma, não exija confirmação manual para toda verificação de status inofensiva. Esse desenho cria fadiga de aprovação. Com o tempo, as pessoas clicam em um prompt rotineiro porque esperam que ele seja rotineiro e aprovam justamente a chamada que não era. Reserve a aprovação por chamada para credenciais e alvos em que cada execução merece uma decisão consciente.

O texto da aprovação deve identificar o alvo concreto. «O agente solicita acesso à API» não informa nada ao responsável. «O processo do agente solicita PATCH para a configuração de cobrança em produção usando a credencial billing-admin» oferece informação suficiente para parar e fazer as perguntas certas.

Uma sessão limitada não é um cheque em branco

Uma aprovação de sessão deve abranger um único processo de agente identificável por um período definido, não todos os processos futuros iniciados no mesmo repositório ou pela mesma conta de usuário.

Essa distinção importa quando um terminal permanece aberto durante uma troca de turno, quando um desenvolvedor reinicia um agente depois de alterar suas instruções ou quando um processo local malicioso imita um comando conhecido. Uma aprovação vinculada apenas à identidade do usuário é ampla demais. Uma aprovação vinculada a um processo sem identidade clara é fácil de interpretar mal.

Uma boa aprovação de sessão responde, em linguagem simples, a cinco pontos: qual processo solicitou, quem assinou ou forneceu esse processo, qual canal de ação ele pode usar, qual escopo de serviço se aplica e quando a permissão termina. A sessão deve terminar quando o processo for encerrado. Um novo processo exige uma nova decisão.

A autorização por sessão do Sallyport segue esse padrão ao mostrar a autoridade de assinatura de código do processo solicitante e aprovar aquela execução somente até seu encerramento. Esse é um padrão melhor que confiar em uma aba do terminal, porque uma aba do terminal não é um limite de identidade.

Mantenha as credenciais de alto impacto fora da concessão da sessão. Uma escrita em banco de dados de produção ou uma alteração de acesso de fornecedor deve solicitar o responsável atual a cada uso, mesmo que ele tenha aprovado a sessão de diagnóstico do agente dez minutos antes. A primeira aprovação diz: «Este processo pode trabalhar neste sistema». A aprovação posterior diz: «Aceito exatamente esta ação irreversível ou sensível». São decisões diferentes.

Evite aprovações permanentes chamadas «ferramentas do desenvolvedor». Elas se transformam em conjuntos invisíveis de direitos. Também tornam a revisão de incidentes muito difícil, porque ninguém consegue saber se a pessoa que aprovou esperava que aquele agente usasse a capacidade.

A troca de turno deve transferir autoridade, não apenas informação

Teste a trilha de auditoria
Verifique o registro de auditoria criptografado e encadeado por hash offline, sem expor os segredos operacionais.

Uma mensagem de troca que diz «Alex está de plantão agora» não resolve as aprovações de agentes se as sessões e aprovações de ontem continuarem funcionando sob o responsável anterior.

A pessoa que sai deve transferir o trabalho ativo dos agentes da mesma forma que transfere um alerta parcialmente mitigado. Registre a identidade do processo, os serviços-alvo, o escopo solicitado, a expiração e quaisquer ações aguardando confirmação. A pessoa que entra deve conseguir consultar esse registro antes de aceitar o turno.

Use esta sequência de troca:

  1. Encerre ou revogue as sessões que a pessoa que sai não deseja mais patrocinar.
  2. Liste as sessões ativas que precisam continuar, com seus alvos e prazos de expiração.
  3. Transfira a escala de serviços para a pessoa que entra e confirme seu canal de notificação.
  4. Exija que a pessoa que entra tome novas decisões para chamadas de alto impacto.

Não transfira uma aprovação ampla de um turno para outro apenas porque a tarefa de engenharia ainda não terminou. A pessoa que entra pode ter outro contexto de incidente, restrições de manutenção ou conhecimento de um problema em andamento com um fornecedor. A aprovação deve ser dela.

O caso mais delicado é uma ação já em andamento no momento da troca. Se ela for reversível e observável, deixe-a terminar sob a autorização registrada e torne o resultado visível para a nova pessoa responsável. Se for destrutiva, visível externamente ou estiver aguardando uma segunda chamada, pare no limite e peça nova aprovação. Alguns minutos de atraso custam menos que fazer um desconhecido herdar uma mudança de produção não revisada.

Incidentes exigem autoridade mais limitada, não memória mais permissiva

Durante um incidente, as equipes naturalmente querem velocidade. Muitas respondem concedendo a um agente uma permissão ampla e duradoura para «ajudar a corrigir a produção». Essa permissão sobreviverá à urgência e acabará se tornando uma brecha sem explicação.

Atribua a aprovação ao comandante do incidente ou à pessoa formalmente delegada por ele para o sistema afetado. O responsável normal de plantão pelo serviço deve continuar envolvido quando possível, mas um incidente precisa de uma pessoa decisora quando várias equipes tocam a mesma dependência.

Inclua a referência do incidente no registro de aprovação. Limite o escopo ao serviço e à ação de correção. Defina uma expiração curta, compatível com o trabalho, e encerre ou revogue a permissão quando o incidente acabar.

Considere um agente encarregado de mitigar uma fila descontrolada. Ele inspeciona métricas, propõe uma alteração de configuração e solicita um comando que elimina mensagens. O comandante do incidente pode aprovar um ajuste temporário de concorrência depois de revisar a reversão. Não deve aprovar a exclusão de mensagens apenas porque é rápida. A solicitação precisa indicar explicitamente qual fila e quais mensagens serão afetadas, qual caminho de recuperação existe e se os clientes perderão trabalho.

A velocidade vem de caminhos de autoridade preparados, responsáveis claros e solicitações compreensíveis. Ela não vem de transformar todo o pessoal de resposta em administrador de produção durante uma tarde.

Os prompts de aprovação devem levar a uma decisão útil

Mantenha as chamadas arriscadas separadas
Exija Touch ID ou aprovação com um clique a cada uso de uma chave de alto impacto.

Um prompt falha quando um responsável competente não consegue entender o que está aprovando em poucos segundos. Ele também falha quando exige uma análise de segurança inédita para uma ação comum. O prompt deve expor os pontos de decisão que o responsável já usa nas operações normais.

Inclua a identidade do solicitante, a identidade do processo do agente, o canal de ação, o rótulo da credencial, o alvo, a operação e o escopo. Para um comando, mostre o comando exato e o host remoto. Para uma chamada HTTP, mostre o método, o host, o caminho e uma descrição segura do corpo. Nunca exiba o segredo como prova de que a credencial existe.

Esta é a diferença entre prompts úteis e inúteis:

Request: production configuration change
Process: signed coding-agent process, session 8f3a
Owner: billing-oncall
Credential: billing-admin
Action: PATCH https://api.internal.example/v1/routing/default
Body: {"provider":"secondary"}
Scope: one call
Reason supplied: mitigate provider timeout during INC-482

Um prompt que diz apenas «Permitir acesso à ferramenta?» empurra o responsável para uma aprovação automática. Ele não informa o alvo nem o efeito. Se sua ferramenta não consegue produzir contexto suficiente para uma decisão, deve negar a ação até que o solicitante o forneça.

Não coloque um campo livre de «motivo» no comando da segurança. Agentes conseguem gerar textos persuasivos com facilidade. Trate o motivo como contexto para a pessoa, enquanto o sistema aplica o alvo, a credencial e o escopo da aprovação.

Os registros de auditoria devem responder às perguntas desconfortáveis

Depois de uma mudança inesperada, as pessoas perguntam quem a aprovou, qual processo a realizou, qual credencial utilizou, qual alvo alcançou e se alguém alterou o registro depois. Uma trilha de auditoria que não responde a todas essas perguntas é apenas um recurso de depuração.

Mantenha as decisões de sessão separadas dos eventos de ações individuais, mas conecte-os. Um registro de sessão estabelece o processo e o responsável que aprovou. Um registro de atividade estabelece cada chamada ou comando e seu resultado. Inclua recusas e revogações. Tentativas malsucedidas muitas vezes explicam uma solução alternativa posterior ou revelam um processo sondando os limites.

Torne o registro resistente a alterações. Um log encadeado por hash permite detectar remoções e modificações quando alguém pode verificar a cadeia de forma independente. Ele não transforma uma aprovação ruim em uma boa e não substitui os controles de acesso. Ele oferece aos investigadores uma forma de testar se o histórico ainda corresponde à sequência registrada.

O Sallyport projeta diários de sessão e atividade a partir de um log criptografado, encadeado por hash e sem permissão de escrita, e sp audit verify consegue verificar a cadeia offline sobre o texto cifrado. Esse desenho é útil porque o revisor não precisa acessar os segredos operacionais para testar a integridade do registro.

Não esconda as ações dos agentes em logs genéricos da aplicação. Esses logs costumam omitir a decisão humana, girar rapidamente e misturar ruído não relacionado à trilha de eventos. Mantenha um registro que um responsável de plantão, um revisor de segurança e um comandante de incidente consigam ler sem reconstruir uma história a partir de seis sistemas.

As falhas de responsabilidade geralmente começam com uma exceção conveniente

Preserve o registro das decisões
Registre aprovações de sessão, resultados de chamadas, recusas e revogações em um único registro de auditoria criptografado.

O padrão perigoso começa com um atalho razoável. Um desenvolvedor sênior precisa terminar uma migração. O responsável pelo serviço está em outro fuso horário. Alguém adiciona um grupo geral de aprovação, concede uma credencial reutilizável ou mantém uma sessão aberta durante o fim de semana. A exceção funciona e se torna o processo informal.

Então o agente recebe uma tarefa mais ampla. Ele consegue alcançar mais alvos do que a solicitação original exigia. O desenvolvedor original pode estar dormindo, o responsável pode ter mudado de turno e o grupo amplo pode presumir que outra pessoa verificou o prompt. Cada decisão individual parecia defensável. Juntas, elas removeram a responsabilidade.

Corrija isso tornando as exceções estruturadas, não informais. Uma exceção deve indicar serviço, aprovador, motivo, horário de término e ponto de revisão. Deve produzir um registro visível. Não deve ampliar silenciosamente as permissões permanentes de um desenvolvedor.

Resista à recomendação popular de resolver isso com um mecanismo de regras gigantesco. As regras parecem atraentes porque as equipes imaginam que podem codificar cada repositório, branch, endpoint, janela de tempo e cargo. Na prática, ninguém consegue explicar por que uma chamada específica correspondeu a uma regra, e regras antigas se transformam em permissões que ninguém pretendia manter. Comece com um modelo pequeno de decisão: acesso ao cofre, uma decisão de sessão limitada e confirmação por chamada para as ações que merecem isso.

Esse modelo força as equipes a resolver a parte difícil em linguagem simples: quem é responsável por este sistema agora e o que exatamente essa pessoa aceita autorizar?

Coloque o modelo de responsabilidade à prova em um turno real

Você pode encontrar a maioria das falhas de desenho antes de um incidente sério realizando um exercício controlado. Use um sistema de não produção parecido com um serviço que tenha uma escala real de plantão. Inicie uma sessão de agente perto de uma troca planejada de turno, solicite uma leitura rotineira e depois peça uma alteração que exija confirmação individual.

Observe os pontos em que as pessoas hesitam. A pessoa que sai consegue ver as sessões ativas? A pessoa que entra sabe qual serviço passou a controlar? A solicitação de aprovação identifica o processo e o alvo? Qualquer uma das duas consegue revogar a sessão? O registro de auditoria mostra, na ordem, as ações recusadas, aprovadas e executadas?

Não aceite «resolveríamos isso no chat» como resposta. O chat é útil para coordenação, mas não estabelece um limite de decisão nem preserva o registro completo da ação. Uma troca que depende da memória falhará na noite mais movimentada.

Comece registrando o responsável atual e o substituto do primeiro serviço de produção que seus agentes podem acessar. Depois, faça um agente solicitar uma ação limitada contra esse serviço. Se você não consegue identificar a pessoa que deveria aprovar a chamada sem perguntar a outras pessoas, o agente chegou à produção antes do seu modelo de responsabilidade.

FAQ

Quem deve aprovar as ações de um agente de IA?

A aprovação deve ser feita pela pessoa responsável pelo sistema afetado durante o período em que o agente atua. Essa pessoa precisa ter contexto técnico suficiente para avaliar a ação e autoridade operacional suficiente para aceitar suas consequências. Quem iniciou o agente só ocupa esse papel quando também atende a essas condições.

O desenvolvedor que inicia um agente de programação de IA pode aprovar suas ações?

Um desenvolvedor pode aprovar ações em um serviço pelo qual é responsável, desde que a ação esteja dentro de sua atribuição e do seu turno atual. Ele não deve aprovar mudanças de produção em um sistema pertencente a outra equipe apenas porque iniciou a sessão de programação. Iniciar um processo e assumir a responsabilidade operacional são funções diferentes.

Como definir quem aprova as ações de agentes autônomos?

Use uma lista publicada de responsáveis pelos serviços, com responsável principal, contato do turno atual, substituto e caminho de escalonamento. Vincule os direitos de aprovação ao serviço e ao período, não a uma lista permanente de pessoas de confiança. Revise a lista sempre que os limites entre equipes ou as escalas de plantão mudarem.

Quem aprova as ações do agente durante um incidente?

A aprovação emergencial deve ser feita pelo comandante do incidente ou pela função de incidente designada para o serviço afetado. A aprovação deve ser limitada, ter prazo definido e ser registrada com a referência do incidente. Não deixe que uma emergência se transforme em uma exceção permanente depois do encerramento do incidente.

Ações de agentes de IA somente de leitura precisam de aprovação?

Em geral, não é necessário. Uma inspeção somente de leitura ainda pode expor dados de clientes, a topologia interna, credenciais presentes na saída de configurações ou detalhes do incidente. Classifique as leituras pelos dados que podem retornar e decida se o agente precisa de uma permissão permanente de leitura, aprovação de sessão ou confirmação humana.

O que é fadiga de aprovação na segurança de agentes?

Fadiga de aprovação significa que as pessoas aprovam porque esperam um prompt inofensivo, não porque analisaram a ação. Reduza esse problema aprovando uma sessão limitada para tarefas de baixo risco e exigindo confirmação separada para credenciais destrutivas ou de alto impacto. Um prompt que aparece a cada chamada rotineira deixa de proteger qualquer pessoa.

Como as aprovações de agentes de IA devem funcionar na troca de turno?

A transferência deve indicar o responsável que entra, os serviços sob sua cobertura, as sessões ativas do agente e quaisquer permissões emergenciais temporárias. Revogue ou faça expirar a autoridade do turno que termina, em vez de confiar que as pessoas se lembrarão disso. O novo responsável deve conseguir consultar o registro de ações antes de assumir a responsabilidade.

O que deve constar no registro de auditoria das aprovações de um agente de IA?

O registro de auditoria deve identificar o processo do agente, a pessoa que aprovou, a credencial ou o canal de ação utilizado, o alvo, o horário e o resultado. Também deve mostrar revogações e tentativas malsucedidas. Uma planilha atualizada posteriormente não consegue responder com segurança sobre uma ação de produção contestada.

Como separar a execução do agente da autoridade de aprovação?

Separe o direito de solicitar uma ação do direito de aprová-la e da capacidade de executá-la. Um engenheiro pode executar o agente, um responsável de plantão pode aprovar uma chamada de produção e um gateway pode manter a credencial e realizar a chamada. Essa separação limita o que um processo de agente comprometido pode fazer.

Qual é o primeiro passo para configurar aprovações de ações de agentes de IA?

Comece pelos serviços em que uma escrita incorreta acordaria alguém ou exporia dados. Defina o responsável atual de cada serviço, indique um substituto e decida quais ações exigem confirmação por chamada. Depois, teste uma troca de turno enquanto uma sessão do agente está ativa, porque é nesse ponto que os processos definidos no papel costumam falhar.

Sallyport

O Sallyport executa chamadas de API e comandos SSH pelo seu agente de IA. As chaves ficam em um cofre local no seu Mac; você aprova cada execução e toda ação vai para um registro selado.

© 2026 Sallyport · Código aberto sob Apache-2.0 · Oleg Sotnikov