Ajustes conforme relatorio de testes 2026-08-27

This commit is contained in:
2026-08-29 09:53:32 -03:00
parent 0ecff719b7
commit 88e1f070d7
791 changed files with 27040 additions and 29038 deletions

View File

@@ -30,8 +30,50 @@ nodes:
return_from: $.output.mensagem
expected_input:
key: resposta_usuario
allowed_values: ["SIM", "NAO"]
allowed_values: ["SIM", "NAO", "CONTINUAR"]
normalize: upper_strip
reprompt: "Não entendi. Essa explicação resolveu sua dúvida? Responda sim ou não."
semantic_classifier:
enabled: true
include_relevant_context: true
option_actions:
CONTINUAR:
action: contextual_reentry
prompt: |
Classifique a fala do cliente em exatamente UMA das opções de {{ allowed_values }}.
A pergunta pendente é:
{{ pending_prompt }}
Contexto conversacional relevante imediatamente anterior a esta decisão:
{{ relevant_conversation_context }}
A fala atual do cliente é:
{{ user_input }}
Para este workflow:
- SIM: use somente quando o cliente indicar entendimento, aceitação ou encerramento da dúvida,
sem introduzir nova pergunta, hipótese, valor, referência ou fato a validar.
- NAO: use quando o cliente responder negativamente à pergunta pendente ou disser de forma
explícita que a explicação não resolveu sua dúvida. Exemplos: "não", "de jeito nenhum",
"não resolveu", "ainda não entendi".
- CONTINUAR: use quando a fala for compreensível, mas não responder diretamente SIM ou NAO e,
considerando o contexto imediatamente anterior, complementar, especificar ou continuar a
solicitação que originou a pergunta pendente. Inclua novas perguntas, hipóteses, valores,
referências e fatos propostos pelo cliente que ainda precisem ser validados.
Exemplos:
- "sim", "legal", "ok", "beleza", "entendi", "obrigado" => SIM
- "não", "de jeito nenhum", "não resolveu", "ainda não entendi" => NAO
- contexto: "tem uma cobrança aqui que eu não reconheço"; fala: "é a de quatorze e noventa e nove" => CONTINUAR
- "então minha fatura ficaria R$ 275,00, certo?" => CONTINUAR
- "quer dizer que no próximo mês vou pagar menos?" => CONTINUAR
Regras de segurança:
- Nunca trate pergunta, hipótese, valor, referência ou fato proposto pelo cliente como concordância.
- CONTINUAR não confirma nem ratifica nenhum dado dito pelo cliente; apenas solicita reentrada
contextual para nova validação pelas fontes de negócio.
- Retorne somente uma das opções oferecidas em {{ allowed_values }}.
resume_from: decisao
- id: checar_tentativa
@@ -73,12 +115,23 @@ nodes:
scenario: invoice_explanation_aceite_fechado
request_status: Fechado
status: CLOSED
workflow_response_final: true
mensagem_final: "Seu número de protocolo é {protocol}."
- id: registrar_nao
action: registrar_atendimento_invoice_explanation
input:
resposta_usuario: NAO
# Política de jornada do agente Contas: uma negativa à pergunta de confirmação da
# explicação transfere o atendimento para continuidade humana. A primitive de
# HUMAN_HANDOFF é do framework; a decisão e a fraseologia ficam declaradas aqui.
- id: handoff_pos_explicacao_nao
action: preparar_handoff_invoice_explanation
input:
mensagem: "Para continuar com a sua solicitação, aguarde um instante."
reason: invoice_explanation_not_resolved
# A variação foi causada por VAS avulso ou estratégico? Sem VAS variado não há nada que
# o bot resolva, e insistir com o orquestrador só gasta turno (SPEC §9 "Explicação da variação recusada").
- id: checar_vas_variacao
@@ -144,7 +197,10 @@ edges:
to: END
- from: registrar_nao
to: checar_vas_variacao
to: handoff_pos_explicacao_nao
- from: handoff_pos_explicacao_nao
to: END
- from: checar_vas_variacao
to: finalizar_nao_resolvido

View File

@@ -9,6 +9,10 @@ nodes:
tipo: termino_desconto
msisdn: $.input.msisdn
nome_plano: $.input.nome_plano
invoice_detail: $.input.invoice_detail
billing_analysis: $.input.billing_analysis
discount_evidence: $.input.discount_evidence
plan_data: $.input.plan_data
edges:
- from: formatar