# Correção aOfertas + Contas — 2026-08-21 ## Problema O guardrail AOFERTA podia receber uma confirmação transacional isolada, por exemplo `Você confirma cancelar o TIM Music?`, sem o pedido do cliente no contexto. Com isso, um cancelamento legitimamente solicitado podia ser interpretado como oferta proativa. Além disso, o histórico do Contas usa principalmente `dict` (`role`/`content`), enquanto o formatador de contexto do guardrail tratava apenas objetos de mensagem LangChain. ## Correções aplicadas 1. `app/workflows/agent_graph.py` - `_output_guardrail_context()` passa `conversation_history` aos guardrails de saída. - inclui `user_text` corrente quando ainda não está no histórico; - evita duplicação da última mensagem do cliente; - mantém `history_texts` para compatibilidade. 2. `agent_framework_oci/.../prompts/_context.py` - histórico em `dict` (`role`, `content`) passa a ser formatado corretamente; - preserva suporte às mensagens LangChain existentes. 3. `agent_framework_oci/.../prompts/ausencia_oferta_proativa.py` - explicita que uma confirmação da mesma transação já solicitada pelo cliente é permitida; - não exige que a confirmação repita a justificativa da solicitação; - marcadores de oferta adicional continuam bloqueados. 4. `config/guardrails.yaml` - `AOFERTA` foi reativado, pois estava comentado na versão recebida. ## Validação Os testes específicos da correção passaram: 47/47. O teste global de paridade ainda aponta `FRASEOLOGIA` desabilitado em `config/guardrails.yaml`. Essa configuração já veio assim no pacote recebido e não foi alterada por esta correção, pois está fora do escopo aOfertas/Contas.