first commit

This commit is contained in:
2026-06-13 08:23:21 -03:00
commit 89c23fb0ed
439 changed files with 32801 additions and 0 deletions

BIN
config/.DS_Store vendored Normal file

Binary file not shown.

18
config/agents.yaml Normal file
View File

@@ -0,0 +1,18 @@
default_agent_id: backoffice_anatel
agents:
- agent_id: backoffice_anatel
name: Agente Backoffice ANATEL
description: Agente de backoffice convertido para o framework corporativo local.
prompt_policy_path: ./config/agents/backoffice_anatel/prompt_policy.yaml
routing_config_path: ./config/routing.yaml
guardrails_config_path: ./config/agents/backoffice_anatel/guardrails.yaml
judges_config_path: ./config/agents/backoffice_anatel/judges.yaml
mcp_servers_config_path: ./config/mcp_servers.yaml
tools_config_path: ./config/tools.yaml
metadata:
domain: backoffice
rag_namespace: backoffice_anatel
system_prefix: |
Você está executando o agente backoffice_anatel.
Use somente memória, checkpoints, guardrails, judges e ferramentas deste agent_id.
Não misture histórico de billing, sales, collection ou outros agentes.

BIN
config/agents/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,54 @@
agent_id: backoffice_anatel
profile: backoffice_anatel_enterprise
input:
- code: INPUT_SIZE
enabled: true
action: block
max_chars: 12000
- code: MSK
enabled: true
action: sanitize
- code: PINJ
enabled: true
action: block
- code: TOX
enabled: true
action: block
- code: DLEX_IN
enabled: true
action: block
- code: RAGSEC
enabled: true
action: block
- code: VLOOP
enabled: true
action: block
output:
- code: REVPREC
enabled: true
action: sanitize
- code: DLEX_OUT
enabled: true
action: sanitize
- code: OOS
enabled: true
action: review
- code: CMP
enabled: true
action: review
- code: AOFERTA
enabled: true
action: block
business_rules:
require_evidence_for:
- protocolo
- cliente
- contrato
- status_siebel
- acao_operacional
forbid_without_tool_ok:
- registrar_acao_backoffice
- registrar_acao_siebel
domain_workflows:
checklist: src.agent.graphs.main_graph.create_main_agent_graph
response_emulator: src.agent.graphs.emulator_graph.create_emulator_graph

View File

@@ -0,0 +1,20 @@
agent_id: backoffice_anatel
judges:
- name: response_quality
enabled: true
threshold: 0.75
- name: groundedness
enabled: true
threshold: 0.80
- name: backoffice_no_fabricated_protocol
enabled: true
description: Verifica se a resposta não inventa protocolo, cliente, contrato, SLA ou status operacional.
- name: siebel_action_requires_tool_ok
enabled: true
description: Bloqueia confirmação de registro/fechamento Siebel sem evidência ok/registered.
- name: anatel_domain_traceability
enabled: true
description: Exige rastreabilidade para decisão de cancelamento, reclassificação, tratamento ou encaminhamento.
- name: response_emulator_policy
enabled: true
description: Valida resposta formal ANATEL gerada pelo emulador antes de persistir/aprovar/fechar.

View File

@@ -0,0 +1,25 @@
agent_id: backoffice_anatel
system_prompt: |
Você é o agente Backoffice/ANATEL da TIM executado pelo Agent Framework.
Use a arquitetura padrão do framework para gateway, identidade, sessão, memória,
checkpoint, guardrails, judges, supervisor, observabilidade e MCP.
Para eventos completos de reclamação ANATEL, preserve o workflow original develop:
fetch_ticket, validation, bypass_rules, cache_check, imdb_enrichment,
identity_verification, speech_enrichment, knowledge_base_enrichment,
canceling_analysis, tim_complaint_analysis, tratamento por operadora,
reclassification_analysis, treatment_decision e siebel_sr_opening.
Para Response Emulator, preserve o workflow original develop:
start_response_emulation, fetch_case, validate_actions, router,
retrieve_templates, retrieve_history, generate_response, validate_response,
persist_draft, approve_draft e close_case.
Regras obrigatórias:
- Não invente protocolo, cliente, contrato, status, SLA, parecer, classificação ou ação Siebel.
- Não confirme registro operacional sem retorno ok/registered da ferramenta ou workflow.
- Use evidências de IMDB, Siebel, Speech Analytics, TAIS KB, ABRT e Portabilidade quando disponíveis.
- Se uma evidência não for encontrada, declare a ausência de evidência de forma objetiva.
- Se faltar identificador de reclamação/protocolo/chamado, peça somente esse dado.
- Toda resposta passa por OutputSupervisor, guardrails de saída e judges do framework.

View File

@@ -0,0 +1,8 @@
input:
- code: MSK
enabled: true
- code: VLOOP
enabled: true
output:
- code: REVPREC
enabled: true

View File

@@ -0,0 +1,7 @@
judges:
- name: response_quality
enabled: true
threshold: 0.7
- name: groundedness
enabled: true
threshold: 0.6

View File

@@ -0,0 +1,6 @@
id: retail_orders_prompt_policy
version: 1
description: Prompt base isolado do agente de varejo/pedidos.
system_prefix: |
Você é um agente corporativo de varejo especializado em pedidos, entrega, troca, devolução e garantia.
Seja claro, objetivo e não use regras de negócio de telecom neste agente.

View File

@@ -0,0 +1,8 @@
input:
- code: MSK
enabled: true
- code: VLOOP
enabled: true
output:
- code: REVPREC
enabled: true

View File

@@ -0,0 +1,7 @@
judges:
- name: response_quality
enabled: true
threshold: 0.7
- name: groundedness
enabled: true
threshold: 0.6

View File

@@ -0,0 +1,6 @@
id: telecom_contas_prompt_policy
version: 1
description: Prompt base isolado do agente de telecom/contas.
system_prefix: |
Você é um agente corporativo de atendimento telecom especializado em faturas, produtos, VAS e suporte.
Seja claro, objetivo e não prometa execução operacional sem ferramenta ou confirmação válida.

8
config/guardrails.yaml Normal file
View File

@@ -0,0 +1,8 @@
input:
- code: MSK
enabled: true
- code: VLOOP
enabled: true
output:
- code: REVPREC
enabled: true

79
config/identity.yaml Normal file
View File

@@ -0,0 +1,79 @@
identity:
version: "2"
required:
- session_key
keys:
customer_key:
description: Cliente/assinante canônico.
sources:
- business_context.customer_key
- customer_key
- customer.customerId
- customer.id
- customer.msisdn
- customer.document
- customer.cpf
- msisdn
- customer_id
- cpf_hash
- document_hash
- user_id
contract_key:
description: Contrato, linha, conta, asset, chamado ou reclamação principal.
sources:
- business_context.contract_key
- contract_key
- contract_id
- account_id
- asset_id
- complaint_id
- complaintProtocol
- complaint.complaintProtocol
- complaint.protocol
- complaint.protocol_id
- complaint.id
- transactionId
- transaction_id
- protocolo
- protocol_id
interaction_key:
description: Protocolo, reclamação, chamado, call id ou message id.
sources:
- business_context.interaction_key
- interaction_key
- protocol_id
- protocolo
- complaint_id
- complaintProtocol
- complaint.complaintProtocol
- complaint.protocol
- complaint.protocol_id
- complaint.id
- transactionId
- transaction_id
- ticket_id
- ura_call_id
- call_id
- message_id
account_key:
description: Conta comercial ou conta de cobrança.
sources:
- business_context.account_key
- account_key
- billing_account_id
- account_id
resource_key:
description: Recurso específico como linha, produto, asset ou serviço.
sources:
- business_context.resource_key
- resource_key
- msisdn
- asset_id
- product_id
session_key:
description: Sessão técnica estável escopada por tenant/agente.
sources:
- business_context.session_key
- session_key
- conversation_key
- session_id

7
config/judges.yaml Normal file
View File

@@ -0,0 +1,7 @@
judges:
- name: response_quality
enabled: true
threshold: 0.7
- name: groundedness
enabled: true
threshold: 0.6

View File

@@ -0,0 +1,51 @@
defaults: {}
tools:
consultar_reclamacao:
map:
interaction_key: protocol_id
customer_key: customer_key
consultar_cliente_backoffice:
map:
customer_key: customer_key
contract_key: contract_key
session_key: session_key
registrar_acao_backoffice:
map:
interaction_key: protocol_id
session_key: operator_session
consultar_siebel_caso:
map:
interaction_key: protocol_id
customer_key: customer_key
registrar_acao_siebel:
map:
interaction_key: protocol_id
session_key: operator_session
consultar_imdb_cliente:
map:
customer_key: customer_key
contract_key: contract_key
session_key: session_key
consultar_speech_analytics:
map:
interaction_key: protocol_id
customer_key: customer_key
consultar_tais_kb:
map:
interaction_key: protocol_id
customer_key: customer_key
consultar_abrt:
map:
customer_key: customer_key
interaction_key: protocol_id
consultar_portabilidade:
map:
customer_key: customer_key
contract_key: contract_key
buscar_templates_emulador:
map:
interaction_key: protocol_id
gerar_rascunho_emulador:
map:
interaction_key: protocol_id

View File

@@ -0,0 +1,6 @@
servers:
backoffice:
transport: http
endpoint: http://backoffice-mcp:8010
enabled: true
description: MCP Server Backoffice via docker-compose.

7
config/mcp_servers.yaml Normal file
View File

@@ -0,0 +1,7 @@
servers:
backoffice:
description: Servidor MCP/HTTP de backoffice. Endpoint local padrão do MCP Server.
enabled: true
transport: http
endpoint: http://localhost:8010
timeout_seconds: 20

19
config/prompt_policy.yaml Normal file
View File

@@ -0,0 +1,19 @@
tone:
style: "claro, objetivo, empático"
forbidden_phrases:
- "procure atendimento humano"
vocabulary:
preferred:
fatura: "fatura"
contestacao: "contestação"
intents:
billing_agent:
- fatura
- boleto
- cobrança
- segunda via
product_agent:
- plano
- produto
- oferta
- serviço

120
config/routing.yaml Normal file
View File

@@ -0,0 +1,120 @@
router:
mode: router
fallback_agent: backoffice_agent
confidence_threshold: 0.60
allow_handoff: false
state_policies:
- state: BACKOFFICE_ACTIVE
agent: backoffice_agent
description: Mantém confirmações e complementos dentro do agente Backoffice/ANATEL nativo.
- state: WAITING_BACKOFFICE_IDENTIFIER
agent: backoffice_agent
description: Mantém mensagens curtas com protocolo/chamado/reclamação dentro do mesmo agente.
- state: BACKOFFICE_WAITING_ACTION_TEXT
agent: backoffice_agent
description: Solicita texto de ação antes de registrar operação em sistema externo.
intents:
- name: backoffice_anatel_triage
domain: backoffice
agent: backoffice_agent
description: Triagem completa de demanda de backoffice, reclamação, protocolo, ANATEL ou solicitação operacional.
priority: 10
next_state: BACKOFFICE_ACTIVE
mcp_tools:
- consultar_reclamacao
- consultar_cliente_backoffice
- consultar_siebel_caso
- consultar_imdb_cliente
- consultar_speech_analytics
- consultar_tais_kb
- consultar_abrt
- consultar_portabilidade
keywords:
- backoffice
- bko
- anatel
- reclamação
- reclamacao
- protocolo
- atendimento
- chamado
- demanda
- pendência
- pendencia
- contestação
- contestacao
examples:
- Preciso analisar uma reclamação da ANATEL.
- Consultar protocolo do cliente.
- Verificar pendência de atendimento.
- name: backoffice_customer_lookup
domain: backoffice
agent: backoffice_agent
description: Consulta de cliente, contrato, linha, CPF/CNPJ mascarado, protocolo ou solicitação operacional.
priority: 20
next_state: BACKOFFICE_ACTIVE
mcp_tools:
- consultar_cliente_backoffice
- consultar_imdb_cliente
- consultar_portabilidade
keywords:
- cliente
- contrato
- linha
- msisdn
- cpf
- cnpj
- cadastro
- conta
examples:
- Consultar dados do cliente.
- Verificar contrato da linha.
- name: backoffice_response_emulator
domain: backoffice
agent: backoffice_agent
description: Geração ou consulta de rascunho/resposta para emulador de resposta ANATEL.
priority: 25
next_state: BACKOFFICE_ACTIVE
mcp_tools:
- consultar_reclamacao
- buscar_templates_emulador
- gerar_rascunho_emulador
keywords:
- emulador
- rascunho
- minuta
- resposta
- template
- anatel
examples:
- Gerar rascunho de resposta da ANATEL.
- Buscar template para responder reclamação.
- name: backoffice_action_register
domain: backoffice
agent: backoffice_agent
description: Registro de ação, parecer, conclusão, encaminhamento ou atualização de demanda.
priority: 30
next_state: BACKOFFICE_ACTIVE
mcp_tools:
- consultar_reclamacao
- consultar_siebel_caso
- registrar_acao_backoffice
- registrar_acao_siebel
keywords:
- registrar
- concluir
- atualizar
- parecer
- encaminhar
- resolver
- finalizar
- observação
- observacao
examples:
- Registrar parecer no protocolo.
- Atualizar o chamado com a conclusão.

62
config/tools.yaml Normal file
View File

@@ -0,0 +1,62 @@
tools:
consultar_reclamacao:
description: Consulta reclamação/protocolo de backoffice/ANATEL.
mcp_server: backoffice
enabled: true
args_schema: { protocol_id: string, customer_key: string, interaction_key: string }
consultar_cliente_backoffice:
description: Consulta contexto operacional do cliente para backoffice.
mcp_server: backoffice
enabled: true
args_schema: { customer_key: string, contract_key: string, session_key: string }
registrar_acao_backoffice:
description: Registra ação operacional, parecer ou encaminhamento no sistema de backoffice.
mcp_server: backoffice
enabled: true
args_schema: { protocol_id: string, action_text: string, operator_session: string }
consultar_siebel_caso:
description: Consulta caso/SR no Siebel.
mcp_server: backoffice
enabled: true
args_schema: { protocol_id: string, interaction_key: string, customer_key: string }
registrar_acao_siebel:
description: Registra ação, reclassificação ou fechamento no Siebel.
mcp_server: backoffice
enabled: true
args_schema: { protocol_id: string, action_text: string, operator_session: string }
consultar_imdb_cliente:
description: Consulta enriquecimento IMDB/PMID do cliente.
mcp_server: backoffice
enabled: true
args_schema: { customer_key: string, contract_key: string, session_key: string }
consultar_speech_analytics:
description: Consulta histórico/resumo do Speech Analytics.
mcp_server: backoffice
enabled: true
args_schema: { protocol_id: string, customer_key: string, interaction_key: string }
consultar_tais_kb:
description: Consulta TAIS Knowledge Base/RAG e templates.
mcp_server: backoffice
enabled: true
args_schema: { query: string, protocol_id: string, customer_key: string }
consultar_abrt:
description: Consulta ABRT associado ao cliente/caso.
mcp_server: backoffice
enabled: true
args_schema: { customer_key: string, protocol_id: string }
consultar_portabilidade:
description: Consulta status de portabilidade.
mcp_server: backoffice
enabled: true
args_schema: { customer_key: string, contract_key: string }
buscar_templates_emulador:
description: Busca templates/documentos para Response Emulator.
mcp_server: backoffice
enabled: true
args_schema: { protocol_id: string, query: string }
gerar_rascunho_emulador:
description: Gera rascunho de resposta do Response Emulator.
mcp_server: backoffice
enabled: true
args_schema: { protocol_id: string, selected_actions: array, operator_instructions: string }