Design de degradação segura: guia para automações com IA
Imagen generada con gpt-image-2.5-sunburst para InferamaFonte ↗
01

Delimitar o caso e o dano possível

Antes de definir como uma automação responde a um erro, é essencial limitar o escopo da tarefa e o impacto potencial de uma falha. Nem todos os erros têm a mesma gravidade: uma saída de texto mal formatada é um problema de validação, enquanto a execução de uma ação com efeitos externos, como o envio de um e-mail ou a modificação de um registro em um banco de dados, constitui um risco operacional maior.

A distinção fundamental reside em separar as falhas de geração, que afetam a qualidade da saída do modelo, das falhas de execução, que afetam a capacidade do sistema de completar a tarefa. Essa separação permite aplicar controles proporcionais: a validação estrita para a geração e a verificação de estado idempotente para a execução.

A delimitação do escopo deve considerar a frequência e a previsibilidade da tarefa, pois esses fatores influenciam diretamente a capacidade de detectar e corrigir erros de forma eficiente. Uma tarefa que ocorre com regularidade e possui padrões de entrada consistentes permite a implementação de validações mais robustas e a definição de limites de proteção mais precisos. Quando a tarefa é menos previsível, o risco de falhas não antecipadas aumenta, exigindo uma abordagem mais conservadora na definição dos controles de segurança e na alocação de recursos para a revisão humana.

O impacto potencial de uma falha não se limita apenas à execução imediata da ação, mas estende-se às consequências secundárias que podem surgir em processos subsequentes. Por exemplo, um erro na validação de dados pode levar a decisões incorretas em etapas posteriores, amplificando o dano inicial. Portanto, a avaliação do dano possível deve incluir uma análise do fluxo completo da automação, identificando pontos onde uma falha pode se propagar e afetando a integridade dos dados ou a confiança do usuário no sistema.

Classificação de falhas por impacto

Tabela que distingue entre falhas de leitura, validação e execução para priorizar controles.

Tipo de falhaExemploImpacto potencialControle principal
GeraçãoTexto com formato incorretoBaixoValidação de esquema
DependênciaAPI externa não respondeMédioNova tentativa com backoff
ExecuçãoAção duplicadaAltoVerificação de estado prévio
02

Catálogo de estados observáveis

Uma política de recuperação eficaz requer que cada condição de falha seja detectável por meio de um sinal objetivo e reproduzível. Evitar a dependência de impressões subjetivas, como 'a resposta parece duvidosa', é crucial para a automação da resposta ao erro. Os estados devem ser definidos como condições binárias: verdadeiro ou falso, baseados em métricas ou validações técnicas.

Entre os estados críticos estão a saída inválida, a resposta incompleta, o esgotamento do tempo limite e o resultado ambíguo. Cada um desses estados deve ser mapeado para uma ação específica na política de degradação, garantindo que não existam zonas cinzentas onde o sistema não saiba como proceder.

A definição de estados observáveis deve ser feita em colaboração com as equipes de operações e desenvolvimento, garantindo que as métricas escolhidas sejam acessíveis e interpretáveis em tempo real. A reprodutibilidade dos sinais de falha é essencial para que a política de recuperação seja consistente e confiável, evitando variações que possam levar a ações inadequadas. Além disso, a documentação clara desses estados facilita a manutenção e a atualização da política à medida que o sistema evolui ou novas dependências são introduzidas.

A ausência de zonas cinzentas na política de degradação é um requisito fundamental para a automação eficaz. Ambiguidades na definição dos estados de falha podem levar a decisões inconsistentes, comprometendo a segurança e a confiabilidade do sistema. Por isso, cada estado deve ser claramente delimitado, com critérios objetivos que permitam uma classificação inequívoca, assegurando que o sistema saiba exatamente como proceder em cada cenário de falha.

03

Política por estado: tentar novamente, abster-se ou encaminhar

Para cada estado observável, deve-se definir uma ação padrão. As principais opções são tentar novamente com limites, abster-se (deixar a tarefa pendente sem executar a ação final) ou encaminhar para uma pessoa. A decisão deve basear-se na reversibilidade da ação e no custo da intervenção humana.

A nova tentativa é apropriada para falhas transitórias de dependências externas, mas deve ser limitada em número e tempo. A abstenção é a opção mais segura quando o estado da ação é incerto: o sistema não executa a ação final e marca a tarefa para revisão. O encaminhamento humano é obrigatório quando o risco de erro é alto ou a ação não é reversível.

A decisão entre reintentar, abster-se ou encaminhar para revisão humana deve levar em conta o custo operacional da intervenção humana e o tempo médio de resolução. Em cenários onde a intervenção humana é rápida e o custo de erro é alto, o encaminhamento pode ser a opção mais eficiente. Por outro lado, em tarefas de baixo risco e alta frequência, a abstenção pode ser preferível para evitar sobrecarregar os responsáveis humanos com revisões desnecessárias.

A reversibilidade da ação é um critério decisivo na escolha da política de recuperação. Ações que podem ser facilmente revertidas, como a exclusão de um registro temporário, permitem uma abordagem mais flexível, com reintentos e correções automáticas. Já ações irreversíveis, como o envio de comunicações externas ou a modificação de dados críticos, exigem uma verificação rigorosa antes da execução, muitas vezes necessitando de aprovação humana explícita para garantir a segurança e a conformidade.

Matriz de decisão de recuperação

Associação entre estados de falha e ações recomendadas.

Estado de falhaAção recomendadaCondição de encerramento
Tempo limite esgotadoTentar novamente (máx. 3)Resposta bem-sucedida ou encaminhar
Saída inválidaAbster-seRevisão humana
Resultado ambíguoEncaminhar para humanoAprovação explícita
04

Evitar efeitos duplicados e idempotência

O maior risco na recuperação de automações com IA é a duplicação de ações com consequências. Se um sistema tentar novamente uma ação que já foi executada parcialmente, pode gerar efeitos indesejados, como o envio de dois e-mails ou a criação de dois registros. Para evitar isso, é necessário distinguir entre repetir uma consulta (seguro) e repetir uma ação com efeitos (arriscado).

A solução técnica é a idempotência: projetar as ações de forma que sua execução múltipla produza o mesmo resultado que uma única. Quando isso não for possível, deve-se exigir uma verificação do estado prévio antes de reexecutar a ação. Essa verificação deve ser parte integrante do fluxo de recuperação, não uma opção.

A implementação da idempotência requer um design cuidadoso das interfaces e dos fluxos de dados, garantindo que cada ação possa ser identificada de forma única e que seu estado seja consultável a qualquer momento. Isso envolve o uso de identificadores únicos para cada transação e a manutenção de um registro de auditoria que permita rastrear o histórico de execuções. A verificação do estado prévio deve ser automatizada e integrada ao fluxo principal, eliminando a dependência de intervenções manuais para evitar duplicatas.

Em sistemas onde a idempotência natural não é possível, a verificação do estado prévio deve ser realizada de forma síncrona, antes da execução da ação, para garantir que não haja sobreposição de efeitos. Essa verificação deve ser robusta o suficiente para lidar com condições de corrida e falhas de comunicação, assegurando que o sistema não execute a ação novamente se ela já tiver sido concluída com sucesso. O registro detalhado dessas verificações no log de auditoria é essencial para a rastreabilidade e a resolução de incidentes futuros.

Fluxo de verificação de estado prévio

Passos para garantir que uma ação não seja duplicada durante a recuperação.

  1. 01Identificar a ação que falhou ou foi interrompida.
  2. 02Consultar o sistema de destino para verificar se a ação já foi concluída.
  3. 03Se a ação estiver concluída, marcar a tarefa como resolvida sem nova tentativa.
  4. 04Se a ação não estiver concluída, executá-la com um identificador único para evitar duplicatas futuras.
  5. 05Registrar o resultado da verificação no log de auditoria.
05

Testes com falhas induzidas e critérios de aceitação

A política de degradação não é válida até que tenha sido testada sob condições de falha. Os testes de aceitação devem incluir a indução de erros controlados: queda de dependências, saídas mal formadas, respostas tardias e interrupções durante a execução. O objetivo é verificar se o sistema se comporta conforme definido na matriz de decisões.

Os critérios de aceitação devem ser verificáveis: a falha foi detectada no tempo esperado? A ação de recuperação correta foi executada? A duplicação foi evitada? O responsável humano foi notificado quando necessário? Sem esses testes, a automação não está pronta para uso em produção.

Os testes com falhas induzidas devem ser realizados em ambientes de staging que simulem fielmente as condições de produção, incluindo a latência de rede e a variabilidade das dependências externas. A indução de erros controlados permite validar a eficácia da política de degradação sem colocar em risco os dados ou os usuários reais. Esses testes devem ser repetidos periodicamente, especialmente após atualizações significativas no sistema, para garantir que a política de recuperação continue a funcionar conforme o esperado.

Os critérios de aceitação devem ser documentados e compartilhados com todas as partes interessadas, incluindo desenvolvedores, operadores e gestores. A verificação desses critérios deve ser automatizada sempre que possível, utilizando ferramentas de monitoramento e alertas que confirmem a detecção da falha, a execução da ação de recuperação e a notificação do responsável humano. A ausência de qualquer um desses elementos deve resultar na rejeição da automação para uso em produção, até que as deficiências sejam corrigidas e validadas.

Questões em aberto

  • A evidência primária vem da documentação do Azure Well-Architected, que se concentra em cargas de trabalho de infraestrutura e não estabelece uma política universal específica para agentes de IA conversacionais.
  • A fonte secundária oferece orientação geral para pequenos negócios, mas não fornece detalhes técnicos sobre a implementação de idempotência em sistemas de IA.
06

Continue a explorar

06

Fontes consultadas

03

Correções e transparência

Se encontrar informação incorreta ou desatualizada, envie-nos a página e a fonte que devemos rever.

Propor uma correção