mirror of
https://github.com/hoshikawa2/compass_backoffice.git
synced 2026-07-09 13:54:20 +00:00
first commit
This commit is contained in:
BIN
config/.DS_Store
vendored
Normal file
BIN
config/.DS_Store
vendored
Normal file
Binary file not shown.
18
config/agents.yaml
Normal file
18
config/agents.yaml
Normal 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
BIN
config/agents/.DS_Store
vendored
Normal file
Binary file not shown.
54
config/agents/backoffice_anatel/guardrails.yaml
Normal file
54
config/agents/backoffice_anatel/guardrails.yaml
Normal 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
|
||||
20
config/agents/backoffice_anatel/judges.yaml
Normal file
20
config/agents/backoffice_anatel/judges.yaml
Normal 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.
|
||||
25
config/agents/backoffice_anatel/prompt_policy.yaml
Normal file
25
config/agents/backoffice_anatel/prompt_policy.yaml
Normal 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.
|
||||
8
config/agents/retail_orders/guardrails.yaml
Normal file
8
config/agents/retail_orders/guardrails.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
input:
|
||||
- code: MSK
|
||||
enabled: true
|
||||
- code: VLOOP
|
||||
enabled: true
|
||||
output:
|
||||
- code: REVPREC
|
||||
enabled: true
|
||||
7
config/agents/retail_orders/judges.yaml
Normal file
7
config/agents/retail_orders/judges.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
judges:
|
||||
- name: response_quality
|
||||
enabled: true
|
||||
threshold: 0.7
|
||||
- name: groundedness
|
||||
enabled: true
|
||||
threshold: 0.6
|
||||
6
config/agents/retail_orders/prompt_policy.yaml
Normal file
6
config/agents/retail_orders/prompt_policy.yaml
Normal 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.
|
||||
8
config/agents/telecom_contas/guardrails.yaml
Normal file
8
config/agents/telecom_contas/guardrails.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
input:
|
||||
- code: MSK
|
||||
enabled: true
|
||||
- code: VLOOP
|
||||
enabled: true
|
||||
output:
|
||||
- code: REVPREC
|
||||
enabled: true
|
||||
7
config/agents/telecom_contas/judges.yaml
Normal file
7
config/agents/telecom_contas/judges.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
judges:
|
||||
- name: response_quality
|
||||
enabled: true
|
||||
threshold: 0.7
|
||||
- name: groundedness
|
||||
enabled: true
|
||||
threshold: 0.6
|
||||
6
config/agents/telecom_contas/prompt_policy.yaml
Normal file
6
config/agents/telecom_contas/prompt_policy.yaml
Normal 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
8
config/guardrails.yaml
Normal 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
79
config/identity.yaml
Normal 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
7
config/judges.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
judges:
|
||||
- name: response_quality
|
||||
enabled: true
|
||||
threshold: 0.7
|
||||
- name: groundedness
|
||||
enabled: true
|
||||
threshold: 0.6
|
||||
51
config/mcp_parameter_mapping.yaml
Normal file
51
config/mcp_parameter_mapping.yaml
Normal 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
|
||||
6
config/mcp_servers.docker.yaml
Normal file
6
config/mcp_servers.docker.yaml
Normal 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
7
config/mcp_servers.yaml
Normal 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
19
config/prompt_policy.yaml
Normal 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
120
config/routing.yaml
Normal 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
62
config/tools.yaml
Normal 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 }
|
||||
Reference in New Issue
Block a user