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 falha | Exemplo | Impacto potencial | Controle principal |
|---|---|---|---|
| Geração | Texto com formato incorreto | Baixo | Validação de esquema |
| Dependência | API externa não responde | Médio | Nova tentativa com backoff |
| Execução | Ação duplicada | Alto | Verificação de estado prévio |
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.
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 falha | Ação recomendada | Condição de encerramento |
|---|---|---|
| Tempo limite esgotado | Tentar novamente (máx. 3) | Resposta bem-sucedida ou encaminhar |
| Saída inválida | Abster-se | Revisão humana |
| Resultado ambíguo | Encaminhar para humano | Aprovação explícita |
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.
- 01Identificar a ação que falhou ou foi interrompida.
- 02Consultar o sistema de destino para verificar se a ação já foi concluída.
- 03Se a ação estiver concluída, marcar a tarefa como resolvida sem nova tentativa.
- 04Se a ação não estiver concluída, executá-la com um identificador único para evitar duplicatas futuras.
- 05Registrar o resultado da verificação no log de auditoria.
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.
Continue a explorar
Fontes consultadas
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