bugfix: route stickness precedences (transaction in the same intent)

This commit is contained in:
2026-08-20 09:22:03 -03:00
parent bb0ef019bf
commit 9df2467deb
434 changed files with 7098 additions and 281 deletions

View File

@@ -6,6 +6,10 @@ mcp_parameter_mapping:
map:
customer_key: msisdn
session_key: session_id
consultar_plano:
map:
customer_key: msisdn
session_key: session_id
invoice_explanation:
map:
customer_key: msisdn

View File

@@ -6,3 +6,15 @@ system: |
Se houver resultado de invoice_explanation, preserve nomes, valores e conclusões vindas da tool.
Não prometa nem estime valores de faturas futuras.
Seja objetivo e mantenha o comportamento de negócio do Contas.
Quando o cliente perguntar pelo plano contratado, use somente itens
classificados como plano na fatura/tool. Não liste VAS, streamings ou benefícios
como se fossem o plano principal.
Se houver mais de um plano, diga que há mais de um plano associado à conta
e liste cada um com seu respectivo valor quando disponível.
Não use informações de uma cobrança antiga para completar a pergunta atual.
Quando houver resultado de tool, não extrapole procedimentos ou políticas
que não estejam nesse resultado.

View File

@@ -1,7 +1,43 @@
system: |
Você é o agente de Contestação e Ações do Contas TIM.
Trabalhe apenas com itens explicitamente identificados pelos dados da fatura/tool.
Cancelamento de VAS avulso, contestação e demais mutações são transações determinísticas: nunca execute ação em texto livre.
O agent_framework_oci coleta parâmetros, mantém stickiness e exige confirmação antes da tool transacional.
Não conceda ressarcimento em dobro quando a regra de negócio não permitir.
Comunique o resultado real da tool, sem inventar protocolo ou sucesso.
Trabalhe somente com itens, valores, categorias e resultados explicitamente
presentes na mensagem atual, nas tools ou no contexto de fatura autorizado.
A referência explícita mais recente do cliente ao item da cobrança prevalece
sobre itens mencionados anteriormente. Nunca reutilize um serviço antigo para
completar uma nova contestação quando o cliente identificou outro item.
Diferencie:
- VAS avulso: serviço adicional classificado como avulso.
- VAS estratégico: serviço estratégico; não o transforme em avulso por inferência.
- Incluso no plano: benefício do plano; não o trate como VAS cancelável.
- Plano: item classificado como plano na fatura; não o trate como VAS.
- Juros, multas e demais categorias: preserve a classificação retornada pela fatura/tool.
"Não conheço", "não sabia que tinha" ou dúvida sobre o que é um serviço não
significam automaticamente que o cliente deseja contestar ou cancelar.
"Não contratei", "não reconheço a contratação" ou pedido explícito de contestação
caracterizam intenção de contestação quando houver item identificável.
Se a referência do cliente for ambígua e houver mais de um item possível,
não escolha um deles por inferência. Peça clarificação.
Cancelamento, contestação e demais mutações são transações determinísticas.
Nunca execute nem simule uma ação em texto livre.
Confirmação, stickiness, coleta de parâmetros e execução pertencem ao
agent_framework_oci.
Ao receber resultado de tool:
- preserve exatamente o item e o valor retornados;
- preserve a categoria retornada;
- não substitua o item por outro encontrado na fatura;
- não declare sucesso quando a tool falhou ou bloqueou;
- não invente protocolo.
Se a tool retornar OUT_OF_SCOPE, bloqueio ou categoria não tratável,
explique somente o motivo efetivamente retornado.
Não invente canal alternativo, central de atendimento, gravações, histórico,
prazo, estorno, recurso ou procedimento que não esteja explícito em tool ou RAG.
Seja objetivo e responda apenas sobre a solicitação atual.

View File

@@ -12,3 +12,12 @@ system: |
Quando a intent for consulta do plano principal, responda somente com os dados de consultar_plano; não substitua o plano por uma lista de VAS.
Em consultas informativas, não termine com convite para outra ação ou outro canal.
Preserve a classificação original do serviço retornada pela tool/fatura:
avulso, estratégico ou incluso.
Nunca trate plano como VAS.
Nunca trate benefício incluso como serviço avulso.
Nunca trate estratégico como avulso por similaridade de nome.
"Não conheço este serviço" é inicialmente uma dúvida sobre o serviço;
não converta automaticamente em pedido de cancelamento ou contestação.

View File

@@ -21,6 +21,30 @@ state_policies:
- state: COLLECTING_SUPORTE_CONTAS_PARAMETERS
agent: suporte_contas_agent
intents:
- name: contas_plan_information
domain: telecom_contas
agent: faturas_agent
priority: 142
description: Consulta do nome, identificação ou valor do plano principal ou dos planos contratados da linha. Não se aplica a VAS, serviços adicionais, aplicativos, assinaturas, parceiros ou benefícios incluídos.
mcp_tools:
- consultar_plano
keywords:
- qual é meu plano
- qual e meu plano
- qual é o meu plano
- qual e o meu plano
- meu plano contratado
- plano contratado
- nome do meu plano
- que plano eu tenho
- quais são meus planos
- quais sao meus planos
examples:
- Qual é meu plano?
- Qual é o meu plano contratado?
- Que plano eu tenho?
- Qual o nome do meu plano?
- Quais são os planos da minha linha?
- name: contas_invoice_query
domain: telecom_contas
agent: faturas_agent
@@ -110,6 +134,12 @@ intents:
- ajuste na fatura
- estorno
- valor indevido
- não contratei
- nao contratei
- não reconheço a contratação
- nao reconheco a contratacao
- não contratei esse plano
- nao contratei esse plano
examples:
- Quero contestar essa cobrança
- Esse valor é indevido
@@ -118,7 +148,7 @@ intents:
domain: telecom_contas
agent: contestacao_agent
priority: 145
description: Cancelamento ou retirada de serviço/VAS e sua cobrança recorrente.
description: Cancelamento ou retirada explicitamente solicitada de serviço/VAS. Não use para simples alegação de contratação não reconhecida; nesses casos use contestação.
mcp_tools:
- consultar_vas
- cancelar_vas_avulso
@@ -130,12 +160,9 @@ intents:
- retirar servico
- desativar serviço
- desativar servico
- não contratei esse serviço
- nao contratei esse servico
- tirar esse vas
examples:
- Quero cancelar esse serviço
- Não contratei esse VAS
- Quero retirar essa assinatura
- name: contas_vas_strategic
domain: telecom_contas
@@ -169,7 +196,8 @@ intents:
agent: vas_agent
priority: 110
description: Consulta ou explicação de VAS, serviço adicional, assinatura, aplicativo,
parceiro, bundle ou benefício do plano.
parceiro, bundle ou benefício adicional. Não use esta intent para perguntas sobre
nome, identificação ou valor do plano principal/plano contratado da linha.
mcp_tools:
- consultar_vas
- buscar_informacao

View File

@@ -1,7 +1,7 @@
tools:
consultar_faturas:
description: Consulta faturas atuais/anteriores, status, vencimento, valor e existência
de fatura aberta sem iniciar o workflow de explicação.
description: Consulta faturas atuais/anteriores, status, vencimento, valor e existência de fatura aberta sem iniciar o
workflow de explicação.
mcp_server: contas
enabled: true
args_schema:
@@ -15,9 +15,26 @@ tools:
- fatura atual
- fatura em aberto
- conta em aberto
consultar_plano:
description: Consulta exclusivamente o nome e valor do plano ou planos contratados a partir da evidência de billing analysis;
não retorna VAS como plano.
mcp_server: contas
enabled: true
args_schema:
msisdn: string
selection_keywords:
- qual é meu plano
- qual e meu plano
- plano contratado
- nome do meu plano
- que plano eu tenho
- quais são meus planos
response:
mode: renderer
renderer: contas.plan
invoice_explanation:
description: Explica composição, diferença ou variação de valores de uma fatura;
não deve ser usada apenas para consultar/obter a fatura.
description: Explica composição, diferença ou variação de valores de uma fatura; não deve ser usada apenas para consultar/obter
a fatura.
mcp_server: contas
enabled: true
args_schema:
@@ -33,8 +50,7 @@ tools:
- cobrança diferente
- por que esse valor
buscar_informacao:
description: Conhecimento do Contas é atendido pelo RagService do agent_framework_oci,
não pelo MCP.
description: Conhecimento do Contas é atendido pelo RagService do agent_framework_oci, não pelo MCP.
mcp_server: contas
enabled: false
args_schema:
@@ -52,6 +68,9 @@ tools:
enabled: true
args_schema:
msisdn: string
response:
mode: renderer
renderer: contas.vas
selection_keywords:
- vas
- serviço adicional
@@ -74,8 +93,7 @@ tools:
- serviços anteriores
- servicos anteriores
cancelar_vas_avulso:
description: Executa cancelamento de VAS avulso no novo domínio Contas; confirmação
e estado são do framework.
description: Executa cancelamento de VAS avulso no novo domínio Contas; confirmação e estado são do framework.
mcp_server: contas
enabled: true
tool_type: action
@@ -93,8 +111,7 @@ tools:
- desativar serviço
- desativar servico
tratar_vas_estrategico:
description: Trata VAS estratégico/bundle no novo domínio Contas; diálogo e estado
são do framework.
description: Trata VAS estratégico/bundle no novo domínio Contas; diálogo e estado são do framework.
mcp_server: contas
enabled: true
tool_type: conversational
@@ -115,8 +132,7 @@ tools:
- globoplay
- amazon prime
contestar_cobranca:
description: Executa contestação no novo domínio Contas após confirmação transacional
do framework.
description: Executa contestação no novo domínio Contas após confirmação transacional do framework.
mcp_server: contas
enabled: true
tool_type: action
@@ -138,8 +154,7 @@ tools:
- ajuste na fatura
- estorno
finalizar_atendimento:
description: Executa apenas efeitos de domínio da finalização; encerramento, memória
e telemetria ficam no framework.
description: Executa apenas efeitos de domínio da finalização; encerramento, memória e telemetria ficam no framework.
mcp_server: contas
enabled: true
tool_type: action
@@ -160,8 +175,7 @@ tools:
msisdn: string
protocol: string
enviar_sms:
description: Envia SMS via integração TIM; use apenas quando um fluxo de domínio
exigir.
description: Envia SMS via integração TIM; use apenas quando um fluxo de domínio exigir.
mcp_server: contas
enabled: true
args_schema: