01Decisão determinística fora do modelo
Autorizar, calcular, classificar segundo norma e definir elegibilidade são funções puras em Python, com teste unitário. O agente recebe a decisão pronta e escreve a mensagem. Ele não sabe aprovar nem negar.
Por quê: Auditor não aceita "o modelo entendeu assim". Aceita função versionada e testada.
02Guardrails como envelope obrigatório
Todo agente roda dentro de um wrapper: guarda de fluxo (o usuário pode estar aqui?), guarda de entrada (escopo, tamanho, tentativa de injeção, dado sensível) e guarda de saída (vazamento técnico, PII de terceiro, formato). Nenhum nó escapa.
Por quê: Controle aplicado por convenção falha. Aplicado por construção, não.
03Prompt é artefato versionado
Prompts vivem em YAML versionado, com número de versão explícito. Trocar comportamento é criar a versão seguinte, rodar a avaliação e promover. Voltar atrás é apontar para a versão anterior — sem deploy de código.
Por quê: Rollback de comportamento em minutos, com rastro de quem mudou o quê e quando.
04Avaliação com gate de regressão
Cada agente tem conjunto de avaliação construído com casos reais do seu domínio. Mudou prompt, modelo ou regra, a suíte roda. Queda além do limiar acordado bloqueia a promoção.
Por quê: É o equivalente a teste de regressão para comportamento não determinístico.
05Observabilidade em três camadas
Log estruturado em JSON sempre ativo; buffer em memória alimentando o painel operacional; tracing externo opcional. As camadas superiores degradam em silêncio — se o tracing cai, o sistema não cai junto.
Por quê: Diagnosticar incidente em produção sem depender de fornecedor externo estar de pé.
06Estado da sessão persistido
Cada turno de conversa é persistido com o estado completo. A sessão sobrevive a reinício e a falha de processo, e pode ser reconstruída passo a passo meses depois.
Por quê: É isso que transforma "acho que foi assim" em trilha de auditoria de verdade.
07Camada de modelo trocável
O provedor de LLM fica atrás de uma fábrica com cache e configuração por variável de ambiente. Trocar de fornecedor, ou migrar para modelo aberto na sua infraestrutura, não toca na lógica de negócio.
Por quê: Preço e qualidade de modelo mudam a cada trimestre. Sua arquitetura não deveria.
08Decisões arquiteturais registradas
Toda escolha estrutural relevante vira um ADR curto no repositório: contexto, alternativas consideradas, decisão e consequência. Entregamos o histórico junto com o código.
Por quê: Seis meses depois, o time novo entende por que está assim — sem arqueologia.
09Fallback em toda dependência externa
Provedor de modelo, banco de estado, tracing: cada dependência externa tem caminho degradado previsto e testado. O sistema perde recurso, não disponibilidade.
Por quê: Em ambiente regulado, indisponibilidade também é incidente reportável.