2. Un experimento reproducible y de coste acotado
Secciones
Ajustes de lectura
Ninguna voz para este idioma en este navegador.
Más voces
Código y términos técnicos en inglés
Desactivado: la voz de la página lo lee todo, sin pausa entre dos voces.
Ninguna voz para este idioma en este navegador.
Más voces
Más voces: Microsoft Edge ofrece voces naturales en línea, y Windows (Configuración › Hora e idioma › Voz), macOS y Android instalan otras.
El experimento parte de una pregunta falsable:
¿Puede una recomendación probabilística tipada entrar en una gate al estilo Gaia sin permitir que el proveedor cree autoridad ni coste ilimitado?
La hipótesis es estrecha: la misma política determinista debe aceptar una respuesta cerrada válida, rechazar una opción inventada, rechazar probabilidades mal formadas y mandar a revisión humana cuando falte autoridad explícita. Una llamada en vivo solo mediría después el comportamiento del modelo.
Fase A — base sin conexión
Sección titulada «Fase A — base sin conexión»cd code/typesafe-ai-system-onepython typesafe_lab.py mockpython -m unittest -vMedido localmente el 20 de septiembre de 2026 con Python 3.14.2:
{ "mode": "mock", "model": "mock-jev-course/1", "decision": "human_review:no_explicit_authority", "request_sha256": "67c1ee4bcd36b497f60872c0715d435b364c3b7743ad06f9be543071af044a1b"}
Ran 14 tests in 0.078sOKLas catorce pruebas solo demuestran propiedades locales: la fixture valida, la ausencia de autoridad impide el despacho, un Choice desconocido se rechaza, las probabilidades y el Score son coherentes, el modelo queda fijado y la evidencia no se sobrescribe. No demuestran que TypeSafe produjera la fixture, que los umbrales estén calibrados ni que la opción conocida sea correcta.
Fase B — sonda opcional de una llamada
Sección titulada «Fase B — sonda opcional de una llamada»No pegues la clave en un argumento. Define TYPESAFE_API_KEY con el mecanismo de secretos de tu sistema y ejecuta:
python typesafe_lab.py live --out live-result.jsonEl script:
- se niega antes de la red si falta la variable;
- construye una sola solicitud para
jev-1.13.0; - cuenta bytes UTF-8 de solicitud como proxy local de tamaño, no como estimación de tokens facturados;
- se niega por encima de 2.500 bytes o de su proxy de coste por bytes de 0,000105 $ con la tarifa consultada el 22 de septiembre de 2026;
- envía exactamente una solicitud con timeout de 20 segundos;
- rechaza redirecciones para mantener el bearer token ligado al origen API configurado;
- no reintenta automáticamente tras 429, 529, timeout o error de red;
- nunca imprime ni escribe el encabezado de autorización;
- valida la respuesta y exige el modelo fijado exacto antes de enrutar;
- exige autoridad verificada por código local de confianza, nunca por la respuesta Noul del modelo;
- registra fecha, modelo concreto, uso, digest, proxy previo y decisión, pero no la respuesta completa del proveedor.
El conteo de bytes limita el tamaño local de la solicitud. No es un límite demostrado de tokens o dólares facturados: el encuadre del servidor y los controles de gasto de la cuenta son distintos. El coste observado debe usar usage.input_tokens y el precio oficial vigente. Una llamada de pago requiere autorización separada.
Condiciones de parada
Sección titulada «Condiciones de parada»Detente si falta la clave o aparece en una salida, se supera el límite local de bytes/proxy, el contrato es inválido, llega 401/422/429/529 o un estado inesperado, cambia el modelo concreto, la decisión podría autorizar/fusionar/desplegar/publicar/eliminar, o la entrada contiene secretos o datos no aprobados. Una sola llamada no garantiza un techo en dólares.
Tabla de evidencia pendiente
Sección titulada «Tabla de evidencia pendiente»| Campo | Evidencia | Estado |
|---|---|---|
| identidad | SHA-256 de la solicitud | solo mock |
| modelo | model concreto |
vivo no probado |
| uso y coste | tokens × precio actual | vivo no probado |
| latencia | elapsed_ms |
vivo no probado |
| forma | validador correcto | mock correcto; vivo no probado |
| decisión | valor exacto | mock rechazó el despacho |
| calidad | resultado contra etiqueta previa | no probado |
Una llamada correcta es conectividad, no evaluación. Después hace falta un corpus versionado con casos claros, fronterizos y contraejemplos, puntuado antes de mover umbrales.
Ejercicios
Sección titulada «Ejercicios»- ¿Por qué fijar
jev-1.13.0en vez dejev-latest?
Solución
Porque un alias puede cambiar sin modificar el código. Umbrales y mediciones pertenecen al modelo concreto.
- El SDK puede reintentar, pero esta sonda no. ¿Es un error?
Solución
No. El presupuesto es exactamente una llamada. Un reintento ocultaría el coste y el número de observaciones. En producción, intentos y coste máximo deben ser explícitos.
Fuentes
Sección titulada «Fuentes»- TypeSafe AI: API, modelos y precios, inicio rápido
- Código:
code/typesafe-ai-system-one