Para bancos
Concepto
Un banco hace tres preguntas: ¿puede llegar a producción?, ¿es seguro?, ¿podemos confiar en las cifras? Esta página responde cada pregunta con evidencia y límites.
Analogía física
Piensa en una sucursal bancaria. El modelo es el empleado que escucha. La política es el manual de reglas. El código es el cajero que revisa el recibo antes de mover dinero.
Mecánica técnica
Camino a producción
El prototipo ejecuta el mismo código que producción, con los mocks documentados. Esta lista nombra solo lo que debe cambiar. Tabla completa.
- Identidad. Hoy hay una sesión de prueba; antes de producción, el proveedor de identidad del banco y Azure Key Vault.
- Estado. Hoy, SQLite en una réplica; antes de producción, PostgreSQL para más de una instancia.
- Gold. Hoy es un mock etiquetado en la ejecución local. Antes de producción, Gold en Databricks; la lectura en cada solicitud aún no está decidida.
- Política. Hoy hay valores sintéticos; antes de producción, la política aprobada del banco en el mismo formato.
- Traspaso. Hoy hay una vista de asesor de demostración. Antes de producción, una cola hacia el CRM del banco, enrutada por idioma y especialidad.
- LLM. Hoy, GLM 5.3 Flash en Fireworks AI. Antes de producción, los mismos pesos en Azure AI Foundry o Databricks, con cuotas y un tope de gasto.
- Capacidad. Hoy no hay prueba de carga. Una prueba de carga como requisito de lanzamiento antes de producción. Ver dimensionamiento.
- Monitoreo. Hoy hay registros de turnos. Antes de producción, trazas centrales y alertas para cada país.
- Costo. Hoy es una estimación. Antes de producción, una proyección, no una medición. Ver costo.
Compruébalo tú mismo
Puedes comprobar la evidencia y reproducir una corrida congelada sin conexión. No necesitas ninguna clave de modelo, ningún dato bancario ni ninguna credencial de nube. La configuración completa está en Ejecútalo 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
Los dos nombres de modelo son públicos. No son claves. El comando verify no hace ninguna llamada en vivo. Recalcula una corrida congelada a partir de sus grabaciones. Compara el resultado con el summary.json de la corrida. Al momento de escribir esto, 2024Q4-train-v1, 2024Q4-resolution-v1 y 2024Q4-resolution-v2 coinciden. El equipo nunca edita una corrida congelada. Una nueva medición es una nueva corrida. Índice de evidencia.
La suite de ataques escribe una corrida nueva solo cuando lo pides: SENTINEL_WRITE_EVIDENCE=1 python3 -m pytest tests/adversarial -q.
Seguridad y control
Lo que el modelo nunca recibe
- El id del cliente. La sesión vincula las herramientas.
- Identificadores personales. El código los enmascara por patrón antes de cualquier llamada al modelo.
- La decisión. El modelo etiqueta la intención. Decide el motor de políticas.
Límite: el enmascaramiento solo encuentra los patrones que conoce. No encuentra otros datos personales. Decisión 004.
Cada decisión tiene una razón
- El motor de políticas devuelve un id de regla con cada decisión.
- Un «¿por qué?» posterior recibe la decisión guardada. El modelo no inventa una respuesta nueva.
- El asesor ve la traza de cada paso.
Ataques
0/42 resultados inseguros en 42 ataques. La suite cuenta 3 intentos de inyección como seguros solo con el modelo mock. También los ejecutamos con el modelo real: 0/3 inseguros. Lo declaramos.
evidence/adversarial/20261005T014816Z · totals; evidence/adversarial/20261005T204313Z · totalsLímites de equidad
- Los datos no tienen segmento de cliente para los casos de resolución, así que no mostramos desglose por segmento.
- Los números por idioma y por país son descriptivos. Cada grupo es pequeño.
Resultados por idioma
Simulación. Exactitud de intención del router LLM en los casos sellados de prueba. Cada variante tiene los mismos casos, escritos en esa variante. El router obtiene lo mismo en cada variante. Ver el explorador de evidencia.
en 77 casos
en 77 casos
en 77 casos
en 77 casos
Un modelo escribió los casos en portugués. Ningún hablante nativo los revisó. Decisión 018.
Preguntas frecuentes
¿Está en producción?
No. Es un prototipo. Ejecuta el código que ejecutaría producción, con mocks documentados. Ningún número de este sitio es una medición de producción.
¿Qué es un mock?
Un sustituto con el mismo contrato que la pieza de producción. Producción reemplaza el backend y conserva el código. La página de mocks lista cada uno con su límite. El diagrama de arquitectura los marca.
¿Por qué el techo de resolución es 16 de 56?
La política deja resolver solo esos casos simulados. Los demás casos deben terminar en un traspaso o en una pregunta. Tanto la línea base como el enrutador LLM resuelven todos los casos bajo el techo. El conjunto no puede distinguirlos en resolución.
Entonces, ¿qué aporta el enrutador LLM?
Etiqueta mejor la intención. Obtiene 81.8% frente a 69.2% de la línea base de palabras clave en 308 turnos reservados. Es una simulación con casos escritos por el equipo.
¿Decide el modelo?
No. El modelo etiqueta la intención. El código enmascara, busca, decide, actúa y vuelve a leer el caso.
¿Qué requeriría un piloto?
La lista del camino a producción nombra el trabajo: identidad, estado, Gold, política, traspaso, LLM, capacidad y monitoreo. Ninguna fecha ni precio forma parte de este prototipo.