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
-
app/workflows/agent_graph.py_output_guardrail_context()passaconversation_historyaos guardrails de saída.- inclui
user_textcorrente quando ainda não está no histórico; - evita duplicação da última mensagem do cliente;
- mantém
history_textspara compatibilidade.
-
agent_framework_oci/.../prompts/_context.py- histórico em
dict(role,content) passa a ser formatado corretamente; - preserva suporte às mensagens LangChain existentes.
- histórico em
-
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.
-
config/guardrails.yamlAOFERTAfoi 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.