Para bancos
- Conceito
- Analogia
- Mecânica
- Caminho para a produção
- Verifique você mesmo
- Segurança e controle
- Perguntas
Conceito
Um banco faz três perguntas: pode chegar à produção, é seguro e podemos confiar nos números? Esta página responde a cada pergunta com evidências e limites.
Analogia física
Pense em uma agência bancária. O modelo é o funcionário que escuta. A política é o manual de regras. O código é o caixa que confere o recibo antes de mover dinheiro.
Mecânica técnica
Caminho para a produção
O protótipo executa o mesmo código que a produção, com os mocks documentados. Esta lista nomeia apenas o que deve mudar. Tabela completa.
- Identidade. Hoje há uma sessão de teste; antes da produção, o provedor de identidade do banco e o Azure Key Vault.
- Estado. Hoje, SQLite em uma réplica; antes da produção, PostgreSQL para mais de uma instância.
- Gold. Hoje é um mock rotulado na execução local. Antes da produção, Gold no Databricks; a leitura em cada solicitação ainda não está decidida.
- Política. Hoje há valores sintéticos; antes da produção, a política aprovada do banco no mesmo formato.
- Transferência. Hoje há uma visão de atendente de demonstração. Antes da produção, uma fila para o CRM do banco, roteada por idioma e especialidade.
- LLM. Hoje, GLM 5.3 Flash na Fireworks AI. Antes da produção, os mesmos pesos no Azure AI Foundry ou Databricks, com cotas e um teto de gasto.
- Capacidade. Hoje não há teste de carga. Um teste de carga como requisito de lançamento antes da produção. Ver dimensionamento.
- Monitoramento. Hoje há registros de turnos. Antes da produção, rastreamentos centrais e alertas para cada país.
- Custo. Hoje é uma estimativa. Antes da produção, uma projeção, não uma medição. Ver custo.
Verifique você mesmo
Você pode conferir as evidências e reproduzir uma execução congelada offline. Não precisa de nenhuma chave de modelo, nenhum dado bancário nem nenhuma credencial de nuvem. A configuração completa está em Execute localmente.
git clone https://github.com/rdorta27/sentinel-engine.git
cd sentinel-engine/sentinel-ai-core
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev,eval]"
export SENTINEL_LLM_CHEAP_MODEL=accounts/fireworks/models/glm-5p3-flash
export SENTINEL_LLM_STRONG_MODEL=accounts/fireworks/models/glm-5p3-flash
python3 -m eval.run verify 2024Q4-train-v1
Os dois nomes de modelo são públicos. Não são chaves. O comando verify não faz nenhuma chamada ao vivo. Recalcula uma execução congelada a partir de suas gravações. Compara o resultado com o summary.json da execução. No momento em que escrevemos isto, 2024Q4-train-v1, 2024Q4-resolution-v1 e 2024Q4-resolution-v2 coincidem. A equipe nunca edita uma execução congelada. Uma nova medição é uma nova execução. Índice de evidências.
A suíte de ataques grava uma nova execução só quando você pede: SENTINEL_WRITE_EVIDENCE=1 python3 -m pytest tests/adversarial -q.
Segurança e controle
O que o modelo nunca recebe
- O id do cliente. A sessão vincula as ferramentas.
- Identificadores pessoais. O código os mascara por padrão antes de qualquer chamada ao modelo.
- A decisão. O modelo rotula a intenção. Quem decide é o motor de políticas.
Limite: o mascaramento só encontra os padrões que conhece. Não encontra outros dados pessoais. Decisão 004.
Cada decisão tem uma razão
- O motor de políticas devolve um id de regra a cada decisão.
- Um «por quê?» posterior recebe a decisão guardada. O modelo não inventa uma resposta nova.
- O atendente vê o rastro de cada passo.
Ataques
0/42 resultados inseguros em 42 ataques. A suíte conta 3 tentativas de injeção como seguras apenas com o modelo mock. Também as executamos com o modelo real: 0/3 inseguras. Nós declaramos isso.
evidence/adversarial/20261005T014816Z · totals; evidence/adversarial/20261005T204313Z · totalsLimites de equidade
- Os dados não têm segmento de cliente para os casos de resolução, então não mostramos detalhamento por segmento.
- Os números por idioma e por país são descritivos. Cada grupo é pequeno.
Resultados por idioma
Simulação. Acurácia de intenção do roteador LLM nos casos selados de teste. Cada variante tem os mesmos casos, escritos nessa variante. O roteador obtém o mesmo resultado em cada variante. Veja o explorador de evidências.
em 77 casos
em 77 casos
em 77 casos
em 77 casos
Um modelo escreveu os casos em português. Nenhum falante nativo os revisou. Decisão 018.
Perguntas frequentes
Está em produção?
Não. É um protótipo. Ele roda o código que a produção rodaria, com mocks documentados. Nenhum número deste site é uma medição de produção.
O que é um mock?
Um substituto com o mesmo contrato da peça de produção. A produção troca o backend e mantém o código. A página de mocks lista cada um com seu limite. O diagrama de arquitetura os marca.
Por que o teto de resolução é 16 de 56?
A política permite resolver só esses casos simulados. Os demais casos devem terminar em uma transferência ou em uma pergunta. Tanto a linha de base quanto o roteador LLM resolvem todos os casos abaixo do teto. O conjunto não consegue distingui-los em resolução.
Então o que o roteador LLM acrescenta?
Etiqueta melhor a intenção. Obtém 81,8% contra 69,2% da linha de base de palavras-chave em 308 turnos reservados. É uma simulação com casos escritos pela equipe.
O modelo decide?
Não. O modelo rotula a intenção. O código mascara, busca, decide, age e relê o caso.
O que um piloto exigiria?
A lista do caminho para a produção nomeia o trabalho: identidade, estado, Gold, política, transferência, LLM, capacidade e monitoramento. Nenhuma data ou preço faz parte deste protótipo.