Files
agent_contas/FIX_AOFERTAS_CONTAS_20260821.md
2026-08-21 10:44:34 -03:00

1.7 KiB

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.