bugfix: enviar subject para contexto do guardrail
This commit is contained in:
33
FIX_CONFIRMATION_FRASEOLOGIA_20260821.md
Normal file
33
FIX_CONFIRMATION_FRASEOLOGIA_20260821.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Correção da confirmação transacional x FRASEOLOGIA — 2026-08-21
|
||||
|
||||
## Sintoma observado
|
||||
|
||||
Para a entrada `quero cancelar o serviço TIM Fashion`, o fluxo entrava corretamente em `AWAITING_CONFIRMATION`, e o guardrail `AOFERTA` permitia a resposta. Porém a confirmação determinística era montada a partir do nome técnico da tool:
|
||||
|
||||
`Você confirma cancelar vas avulso?`
|
||||
|
||||
O guardrail `FRASEOLOGIA` bloqueava essa saída porque `vas avulso` é nomenclatura interna.
|
||||
|
||||
## Causa raiz
|
||||
|
||||
`AgentRuntimeMixin.transaction_confirmation_message()` convertia o nome da tool com `tool_name.replace("_", " ")` quando não havia label explícito. Para `cancelar_vas_avulso`, isso vazava o identificador técnico para a resposta ao cliente.
|
||||
|
||||
## Correção
|
||||
|
||||
Quando a tool representa cancelamento (`cancelar_*`) e os argumentos pendentes possuem `subject`, a confirmação passa a ser construída com o nome comercial do item:
|
||||
|
||||
`Você confirma o cancelamento do serviço {subject}? Responda 'sim' para executar ou 'não' para cancelar.`
|
||||
|
||||
Exemplo:
|
||||
|
||||
`Você confirma o cancelamento do serviço TIM Fashion? Responda 'sim' para executar ou 'não' para cancelar.`
|
||||
|
||||
A correção preserva o comportamento anterior das demais confirmações, como devolução e troca de pedidos.
|
||||
|
||||
## Teste de regressão
|
||||
|
||||
Adicionado `agent_framework_oci/tests/test_transaction_confirmation_customer_facing.py`, garantindo que:
|
||||
|
||||
- `cancelar_vas_avulso` com `subject=TIM Fashion` nunca exponha `vas avulso` nem `cancelar_vas_avulso`;
|
||||
- o nome comercial apareça na confirmação;
|
||||
- confirmações existentes de varejo continuem idênticas.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user