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

37 lines
1.7 KiB
Markdown

# 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.