# Jev de TypeSafe: qué es, cuándo gana a un LLM y cómo usarlo

> Jev no escribe texto: devuelve una opción, una puntuación o un sí/no con probabilidades. Sirve para clasificar, enrutar y puntuar; para redactar, usa un LLM.

- URL: https://blog.laozhang.ai/es/posts/jev-ai-model-guide
- Published: 2026-09-24
- Updated: 2026-09-24
- Author: LaoZhang AI Team (https://blog.laozhang.ai/es/about)
- Category: Guías de API
- Tags: Jev, TypeSafe AI, API de IA, Agentes de IA, Clasificación con IA

---
Jev es el primer modelo público de TypeSafe AI, lanzado el 15 de septiembre de 2026, y funciona justo al revés que un chatbot: le das un contenido (el `state`) y una lista de preguntas cerradas, y te devuelve para cada una la opción elegida, la probabilidad de cada alternativa y un grado de confianza. No redacta, no explica y no razona en voz alta. Por eso encaja en los puntos de una aplicación o de un agente donde hoy llamas a un LLM solo para sacar una etiqueta —clasificar un ticket, decidir el siguiente paso, puntuar un riesgo, moderar un mensaje— y no sirve donde necesitas texto, cálculos exactos o varios pasos de razonamiento.

A 24 de septiembre de 2026 puedes usarlo sin lista de espera desde la consola de TypeSafe o a través de OpenRouter, a 0,042 $ por millón de tokens de entrada; la salida no se cobra. Lo decisivo para adoptarlo no es tanto el precio como ese número de confianza que acompaña a cada respuesta: con él decides qué casos se automatizan y cuáles pasan a una persona o a un LLM.

## Qué es Jev y qué devuelve

TypeSafe lo presenta como un «System One model», en referencia al sistema 1 de Kahneman en *Pensar rápido, pensar despacio*: juicios rápidos e intuitivos, del tipo que una persona resuelve en un par de segundos. El nombre viene de William Stanley Jevons, el economista de la paradoja de Jevons. Detrás está Diogo Almeida, que antes trabajó en OpenAI en la investigación de seguimiento de instrucciones que acabó en ChatGPT. Según el [anuncio de lanzamiento](https://typesafe.ai/blog/introducing-system-one-models-and-jev), el modelo combina una arquitectura nueva, un muestreador paralelo y un método de entrenamiento propio llamado RLCD (Reinforcement Learning for Calibrated Decisions).

En la práctica, cada petición lleva tres cosas: el `state` (texto, un objeto JSON o una lista de textos), el `model` y un mapa de `questions` con los nombres que tú elijas. Jev lee el estado una vez y evalúa todas las preguntas en paralelo y de forma aislada entre sí. Hay tres tipos de pregunta, que la documentación llama primitivas:

| Primitiva | Qué pregunta | Qué devuelve | Límites documentados |
| --- | --- | --- | --- |
| Choice | ¿Cuál de estas opciones? | `choice`, `probabilities` de cada opción y `confidence` | Hasta 255 opciones por pregunta |
| Score | ¿Dónde cae en esta escala ordenada? | `score` (puede quedar entre dos niveles), `legend`, `probabilities` y `confidence` | De 2 a 10 niveles |
| Noul | ¿Se cumple esta afirmación? | `noul`, un valor de 0 (no) a 1 (sí) | No trae `confidence` |

«Noul» es un término propio de TypeSafe para las preguntas de sí o no; no significa «nulo». En el AI SDK de Vercel el mismo tipo aparece como `boolean`.

La respuesta de ejemplo de la [guía rápida oficial](https://docs.typesafe.ai/introduction/quickstart), para un mensaje de soporte en inglés sobre una integración con Stripe que lleva tres días fallando, se ve así (recortada):

```json
{
  "model": "jev-1.13.0",
  "answers": {
    "department": {
      "type": "choice",
      "choice": "technical",
      "confidence": 0.78,
      "probabilities": { "technical": 0.85, "sales": 0.0, "billing": 0.15 }
    },
    "is_urgent": { "type": "noul", "noul": 1.0 }
  },
  "usage": { "input_tokens": 392, "output_tokens": 65 }
}
```

La `confidence` sale de la forma de la distribución de probabilidades: si todo el peso está en una opción vale 1, y si está repartido a partes iguales vale 0. La página de [Confidence](https://docs.typesafe.ai/confidence) usa como aproximación para una Choice de *n* opciones `(n × probabilidad máxima − 1) / (n − 1)`. Con los números de arriba: (3 × 0,85 − 1) / 2 = 0,775, que redondeado da el 0,78 de la respuesta. Tener ese número es lo que permite a tu código decidir cuándo actuar solo y cuándo pedir ayuda.

### Lo que Jev no es

- **No es un LLM.** No devuelve razonamientos ni explicaciones. Tampoco puede hacer de modelo base en Claude Code, Cursor o Copilot; la [propia documentación](https://docs.typesafe.ai/introduction/coding-agents) lo aclara. Lo que sí existe es una *skill* oficial para que tu agente de código sepa programar contra la API de TypeSafe.
- **«No alucina» se refiere al formato.** La respuesta siempre cae dentro de las opciones o la escala que definiste, porque el esquema está garantizado por construcción. TypeSafe reconoce que su «0 % de errores de tipo» no es una cifra empírica. Que la respuesta encaje en el esquema no significa que sea la correcta.
- **No es de código abierto.** Jev es un modelo propietario al que se accede por API; los SDK sí son abiertos. Los proyectos que circulan como «Jev abierto» son imitaciones de la comunidad entrenadas con datos sintéticos, como Kev, Laya (sobre ModernBERT-large) o SemIf/OpenJev (sobre Qwen3.5). No hay pruebas independientes publicadas que demuestren que rindan como el original.
- **No se puede ajustar con tus datos.** No hay fine-tuning ni LoRA por cliente: todas las cuentas usan los mismos pesos. Lo adaptas a tu dominio con el `state`, con las `instructions` y `criteria` de cada pregunta y partiendo decisiones grandes en preguntas pequeñas. Según su [página legal](https://docs.typesafe.ai/legal), TypeSafe no entrena con tus peticiones, y los clientes empresariales pueden negociar retención cero de datos.

## Jev frente a un LLM con salida JSON, código normal o una persona

Si hoy pides a GPT, Claude o DeepSeek que responda en JSON con una etiqueta, ya estás haciendo el trabajo de Jev, solo que pagas por generar texto, lo parseas y no sabes cuánto se fía el modelo de su propia respuesta. La comparación útil no es «Jev o LLM» en abstracto, sino qué herramienta le toca a cada punto de decisión.

| | Jev | LLM con salida JSON | Código (reglas, regex, parser) | Persona |
| --- | --- | --- | --- | --- |
| Qué produce | Opción, escala o sí/no con probabilidades | Texto libre o JSON que hay que validar | Resultado exacto y repetible | Criterio y justificación |
| Formato | Garantizado por el esquema | Suele cumplirse; conviene validarlo | Garantizado | Variable |
| Dice cuánto duda | Sí: `probabilities` y `confidence` | No con un número fiable | No hace falta: es exacto o falla | Puede decirlo |
| Explica por qué | No | Sí | Sí, porque lo lees en el código | Sí |
| Cálculo, fechas, recuentos | Poco fiable | Variable | Lo mejor | Lento |
| Coste y latencia | Solo entrada, 0,042 $ por millón de tokens; TypeSafe declara 70–500 ms | Entrada y salida; segundos o minutos | Casi nulo | El más caro |
| Dónde encaja | Clasificar, enrutar, puntuar, moderar, elegir la siguiente herramienta | Redactar, resumir, razonar en varios pasos, explicar una decisión | Todo lo que se puede calcular | Casos ambiguos o de alto riesgo |

Las cifras de velocidad y coste de Jev las publica TypeSafe y conviene leerlas con sus propias salvedades. Su anuncio habla de respuestas de 70 a 500 ms y de ser entre 40 y 200 veces más rápido que un LLM de frontera en preguntas de este tipo. Los titulares de «193,6 veces más rápido y 444,6 veces más barato» salen de flujos de evaluación escritos por el propio equipo, con respuestas de referencia promediadas de GPT-6 Astra y Fable 5.1, y la empresa admite que están «en el extremo alto» de lo que se verá en la realidad. Además, las latencias se midieron desde portátiles en la costa oeste de EE. UU., donde está hoy el servicio; desde Europa, sumarás la latencia de red transatlántica.

### Una prueba independiente, con sus límites

Emil Lindfors publicó una [prueba con acceso anticipado](https://lindfors.no/blog/a-first-look-at-typesafes-jev/), con datos del 18 de septiembre: 24 respuestas en noruego a una consulta pública de 2022 sobre el impuesto a la acuicultura del salmón. Las etiquetas de referencia las puso Claude Fable 5.1 en dos pasadas independientes, y comparó Jev con DeepSeek V4.1 Flash vía OpenRouter, con una sola llamada y salida JSON, con y sin razonamiento:

| Medida | Jev | DeepSeek sin razonamiento | DeepSeek con razonamiento |
| --- | --- | --- | --- |
| Postura (4 opciones) | 20/24 | 20/24 | 22/24 |
| Tipo de participante (6 opciones) | 21/23 | 22/23 | 23/23 |
| 192 preguntas sí/no sobre argumentos | 0,86 | 0,89 | 0,88 |
| Nivel de contenido sustantivo (acierto exacto) | 19/24 | 14/24 | 14/24 |
| Coste por cada 1.000 documentos | 0,22 $ | 1,31 $ | 3,08 $ |
| Latencia mediana | 0,32 s | 2,7 s | 26 s |
| Petición más lenta | 1,3 s | 17,9 s | 250 s |

El propio autor advierte de que mide coincidencia con las etiquetas de otro modelo, no acierto real, y que con 24 documentos el intervalo del 95 % en la postura es de unos ±15 puntos: en postura y argumentos, los tres empatan. La latencia de DeepSeek mezcla 13 proveedores distintos de OpenRouter. Su conclusión práctica no va de precisión, sino de que las probabilidades de Jev permiten fijar umbrales para automatizar. También demuestra que un idioma distinto del inglés puede funcionar, aunque sea una sola muestra pequeña.

### Regla para decidir cada punto de decisión

Aplica estas preguntas en orden a cada sitio de tu flujo donde hoy haya un `if` que dependa de entender un texto:

1. **¿Se puede calcular?** Importes, recuentos, comparar fechas, validar un formato, buscar un patrón: código. Jev no es una calculadora y TypeSafe lo dice abiertamente.
2. **¿Hace falta producir texto o encadenar varios pasos de razonamiento?** Redactar la respuesta al cliente, resumir, planificar, justificar una decisión por escrito: LLM.
3. **¿Es una elección cerrada que una persona haría en segundos?** Qué equipo, qué intención, qué herramienta sigue, si un mensaje es spam, qué nivel de riesgo: Jev, con una pregunta por decisión.
4. **Con la respuesta de Jev, mira la confianza.** Alta: actúa. Intermedia: pide confirmación al usuario o pásale el caso a un LLM. Baja: a una persona.
5. **¿La acción es irreversible o toca dinero, permisos o datos borrables?** Aunque la confianza sea alta, mantén una comprobación determinista o humana.

![Diagrama de decisión: lo que se puede calcular va al código, lo que exige texto al LLM y las elecciones cerradas a Jev, cuya respuesta se enruta según la confianza a actuar, al usuario o LLM, o a una persona](https://blog.laozhang.ai/posts/es/jev-ai-model-guide/img/regla-decision-jev.webp)

El reparto típico que sale de aquí es híbrido: Jev decide, el código ejecuta y un LLM entra solo cuando hay que escribir algo o cuando Jev duda. La propia OpenRouter, en sus preguntas frecuentes sobre Jev, propone usar Jev para decidir y un modelo de chat para redactar la explicación. Esa parte generativa puede ir por cualquier API compatible con OpenAI, por ejemplo laozhang.ai (`https://api.laozhang.ai/v1`), que ofrece modelos de OpenAI, Claude o Gemini pero no Jev.

## Cuánto cuesta: el cálculo con tokens de entrada

Jev solo cobra lo que entra: el estado más el texto de las preguntas. La salida es gratis. La fórmula es:

```text
coste (USD) = llamadas × tokens de entrada por llamada × 0,042 / 1.000.000
```

Un ejemplo con supuestos explícitos: un millón de tickets al mes, cada uno de unos 400 tokens de entrada contando el mensaje y tres preguntas (la respuesta de ejemplo de la documentación marca 392). Serían 400 millones de tokens, es decir, **16,80 $ al mes**. Para comparar, la misma entrada a los precios que TypeSafe cita para los LLM actuales, de 0,20 $ a 10 $ por millón, costaría entre 80 $ y 4.000 $, y a eso habría que sumar la salida, que según esa misma comparación suele costar unas cinco veces más por token que la entrada. Si quieres situar esas cifras frente a modelos concretos, tienes la [comparativa de precios LLM API 2026: modelos más baratos por tokens de entrada y salida](https://blog.laozhang.ai/es/posts/cheapest-llm-models) y el método de [Claude API vs OpenAI API: cómo comparar precios por carga real](https://blog.laozhang.ai/es/posts/claude-api-vs-openai-api-pricing).

Hay tres matices que cambian la cuenta:

- **El límite de peticiones pesa más que el precio.** En la API directa, jev-1.13.0 admite 1.200 peticiones por minuto y 250.000 tokens por segundo. Un millón de llamadas necesita como mínimo 1.000.000 / 1.200 ≈ 833 minutos, casi 14 horas, con una sola cuenta. El límite de tokens solo manda si cada petición supera unos 12.500 tokens (250.000 × 60 / 1.200). TypeSafe avisa de que estos límites se ajustan sobre la marcha y pueden cambiar sin previo aviso; para más capacidad hay que hablar con ventas.
- **Agrupar preguntas abarata.** El estado se lee una vez por petición, así que diez preguntas sobre el mismo ticket en una sola llamada salen más baratas que diez llamadas con el ticket repetido.
- **El precio puede no ser el definitivo.** TypeSafe reconoce en el anuncio que no puede demostrar que no esté subvencionado, aunque asegura que espera que baje. Tómalo como el precio a 24 de septiembre de 2026, no como una garantía.

![Cálculo para un millón de llamadas de 400 tokens: 16,80 $ al mes con Jev frente a unas 14 horas como mínimo por el límite de 1.200 peticiones por minuto de jev-1.13.0](https://blog.laozhang.ai/posts/es/jev-ai-model-guide/img/coste-vs-limite-jev.webp)

Varios medios informan de que las cuentas nuevas reciben 5 $ de crédito, que a 0,042 $ por millón equivaldrían a unos 119 millones de tokens, o unas 297.000 llamadas de 400 tokens. TypeSafe no lo publica en su documentación, así que fíate de lo que muestre tu consola.

## Tutorial: de la primera llamada al enrutado por confianza

Los ejemplos de código siguen los nombres de campos, métodos y excepciones de la documentación oficial de TypeSafe y OpenRouter a 24 de septiembre de 2026. Las respuestas con valores concretos que se citan son las publicadas en esas documentaciones; las de tus llamadas dependerán de tus textos y de la versión del modelo.

### Paso 1: elige la vía de acceso

| Vía | Qué necesitas | Contexto por petición | Cuándo elegirla |
| --- | --- | --- | --- |
| API de TypeSafe | Cuenta en console.typesafe.ai y clave en la página de claves | 64.000 tokens en total; 32.000 para el estado más la pregunta más larga | Producción con el proveedor directo, límites propios |
| OpenRouter | Solo tu clave de OpenRouter; se factura en tu cuenta de OpenRouter | 32.000 tokens (estado más preguntas) | Ya usas OpenRouter o no quieres otra cuenta |
| Vercel AI Gateway | Modelo `typesafe-ai/jev` con `experimental_evaluate` del AI SDK (desde la versión 7.0.105) | No lo detalla el anuncio de Vercel | Tu proyecto ya vive en Vercel y aceptas una API experimental |

La lista de espera desapareció el 20 de septiembre de 2026, aunque la web de TypeSafe aún habla de «early access». Vercel lo ofreció gratis en AI Gateway como promoción de lanzamiento solo hasta el 25 de septiembre de 2026, así que no lo planifiques como una vía gratuita.

Los únicos dominios oficiales son typesafe.ai, docs.typesafe.ai, console.typesafe.ai y api.typesafe.ai. Desde el 18 de septiembre han aparecido webs con nombres parecidos, como jevtypesafeai.com o jev-ai.net, que prometen «probar Jev gratis». No son de TypeSafe: no les des tu clave ni tus datos.

### Paso 2: prueba sin código en el Playground

En [console.typesafe.ai/playground](https://console.typesafe.ai/playground) pegas un texto como estado y añades preguntas. Merece la pena hacerlo con diez o veinte mensajes reales tuyos antes de escribir código. Así ves pronto si tus opciones están bien definidas: cuando la confianza sale baja en casos que a ti te parecen evidentes, casi siempre falta precisión en `criteria`.

### Paso 3: la llamada HTTP mínima

```bash
curl -X POST https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "Me habéis cobrado dos veces el pedido 4821. Necesito que devolváis uno de los cargos hoy.",
    "model": "jev-1.13.0",
    "questions": {
      "equipo": {
        "type": "choice",
        "instructions": "¿Qué equipo debe atender este mensaje?",
        "criteria": {
          "facturacion": "Cobros, facturas, reembolsos o suscripciones",
          "tecnico": "Errores, caídas o integraciones",
          "envios": "Entrega o seguimiento de paquetes",
          "otro": null
        }
      },
      "pide_reembolso": {
        "type": "noul",
        "instructions": "¿El cliente pide que se le devuelva dinero?"
      }
    }
  }'
```

Los nombres `equipo` y `pide_reembolso` son tuyos: no llegan al modelo y sirven para recuperar cada respuesta en `answers`. Los códigos de error que tienes que contemplar son 401 (clave inválida), 422 (la petición no pasa la validación; el cuerpo indica el campo), 429 (límite de velocidad) y 529 (servicio saturado). Ante 429 y 529, reintenta con espera exponencial.

### Paso 4: el mismo triaje en Python

Instala el SDK (Python 3.10 o superior) con `pip install typesafe-sdk` o `uv add typesafe-sdk` y define la variable `TYPESAFE_API_KEY`.

```python
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

# Fija la versión: los alias como jev-latest cambian cuando sale un modelo nuevo
client = TypeSafeClient(model="jev-1.13.0")

ticket = {
    "asunto": "Cobro duplicado",
    "mensaje": "Me habéis cobrado dos veces el pedido 4821. "
               "Necesito que devolváis uno de los cargos hoy.",
}

preguntas = {
    "equipo": Choice(
        instructions="¿Qué equipo debe atender este mensaje?",
        criteria={
            "facturacion": "Cobros, facturas, reembolsos o suscripciones",
            "tecnico": "Errores, caídas o integraciones",
            "envios": "Entrega o seguimiento de paquetes",
            "otro": None,
        },
    ),
    "urgencia": Score(
        instructions="¿Con qué urgencia hay que responder?",
        criteria=["Puede esperar", "Esta semana", "Hoy"],
    ),
    "pide_reembolso": Noul(
        instructions="¿El cliente pide que se le devuelva dinero?",
    ),
}

response = client.system_one(state=ticket, questions=preguntas)

equipo = response.answers["equipo"]
print(response.model)                              # versión que respondió
print(equipo.choice, equipo.confidence)            # opción y confianza
print(equipo.probabilities)                        # probabilidad de cada opción
print(response.answers["urgencia"].score)          # 0 a 2, puede caer entre niveles
print(response.answers["pide_reembolso"].noul)     # 0 a 1
```

Cuando el estado es un objeto, puedes señalar un campo concreto en la pregunta escribiendo su nombre entre comillas invertidas, por ejemplo «¿El `mensaje` expresa enfado?». Para trabajo concurrente existe `AsyncTypeSafeClient`, con la misma interfaz y `await`.

En JavaScript o TypeScript (Node 20 o superior, `npm install @typesafe-ai/sdk`), el patrón es el mismo y los tipos de respuesta se deducen de las preguntas:

```ts
import { choice, TypeSafeClient } from "@typesafe-ai/sdk";

const client = new TypeSafeClient(); // lee TYPESAFE_API_KEY

const response = await client.systemOne({
  state: { mensaje: "Me habéis cobrado dos veces el pedido 4821." },
  questions: {
    equipo: choice("¿Qué equipo debe atender este mensaje?", {
      facturacion: "Cobros, facturas, reembolsos o suscripciones",
      tecnico: "Errores, caídas o integraciones",
      otro: null,
    }),
  },
});

console.log(response.answers.equipo.choice);
```

### Paso 5: enruta según la confianza

Aquí está el valor real de Jev. Los umbrales de este ejemplo (0,6 como suelo y 0,85 para actuar solo) son los que usa la propia documentación de TypeSafe en su ejemplo de banca por voz, y la empresa insiste en que no existen umbrales universales: empieza siendo conservador y ajústalos con tus casos.

```python
SUELO = 0.6   # por debajo, Jev no está seguro: no adivines
AUTO = 0.85   # por encima, se puede actuar sin confirmación

def enrutar(response):
    equipo = response.answers["equipo"]
    reembolso = response.answers["pide_reembolso"].noul

    if equipo.confidence < SUELO or equipo.choice == "otro":
        return "persona", None
    if reembolso > 0.5:
        # Mover dinero: nunca en automático, por alta que sea la confianza
        return "persona", equipo.choice
    if equipo.confidence >= AUTO:
        return "automatico", equipo.choice
    # Zona intermedia: un LLM revisa o redacta, o se pide confirmación
    return "revision", equipo.choice
```

Dos detalles de este código son deliberados. El umbral del Noul (0,5) se trata por separado del de la Choice, porque los valores de una primitiva no se pueden trasladar a otra. Y la acción que toca dinero pasa por una persona aunque Jev esté seguro. Registra también `response.model` junto a cada decisión: si mañana cambias de versión, sabrás qué decisiones tomó cada una.

Para los errores, el SDK ya reintenta los 429 con espera y respeta la cabecera `retry-after`. Lo que te llegue después de esos reintentos lo capturas con las excepciones del paquete:

```python
from typesafe_sdk import (
    TypeSafeAPIError,
    TypeSafeRateLimitError,
    TypeSafeUnprocessableEntityError,
)

try:
    response = client.system_one(state=ticket, questions=preguntas)
except TypeSafeUnprocessableEntityError as err:
    # 422: pregunta mal formada; revisa err.body antes de reintentar
    raise
except TypeSafeRateLimitError:
    # 429 persistente: encola el ticket o pásalo a otro camino
    ...
except TypeSafeAPIError as err:
    # 401, 529 y demás; err.status trae el código HTTP
    ...
```

Qué hacer cuando un proveedor falla (reintentar, esperar o cambiar de modelo) se desarrolla en [¿Reintentar la API LLM o cambiar de modelo? Cinco comprobaciones](https://blog.laozhang.ai/es/posts/llm-api-retry-vs-fallback-model).

### Variante: el mismo código a través de OpenRouter

Si no quieres cuenta en TypeSafe, OpenRouter documenta dos caminos. El primero consiste en apuntar el SDK oficial a su API cambiando la URL base; el SDK añade `/v1/systemone` y los identificadores cortos como `jev-1.13` se traducen a `typesafe/jev-1.13`:

```python
import os
from typesafe_sdk import TypeSafeClient

client = TypeSafeClient(
    api_key=os.environ["OPENROUTER_API_KEY"],
    base_url="https://openrouter.ai/api",
    model="jev-1.13",
)
```

El segundo es su Decisions API, `POST https://openrouter.ai/api/alpha/decisions`, con el modelo `typesafe/jev-1.13` en el cuerpo y el mismo formato de `state` y `questions`. Está en fase alfa. Las respuestas por esa vía incluyen `usage.cost` en dólares: en el ejemplo de OpenRouter, 476 tokens de entrada cuestan 0,000019992 $, exactamente 476 × 0,042 / 1.000.000. Para no depender de los cambios del alias `~typesafe/jev-latest`, usa el identificador con versión. Recuerda que en OpenRouter el contexto es de 32.000 tokens para todo.

## Antes de ponerlo en producción: fallos conocidos

TypeSafe mantiene una página de [puntos débiles de jev-1.13](https://docs.typesafe.ai/model-jaggedness/jev-1.13), revisada el 17 de septiembre. Junto con las pruebas de terceros, da esta lista de comprobaciones:

- **Idioma.** El inglés es el idioma principal de entrenamiento y donde mejor rinde. El español funciona, pero no igual de bien, según la propia documentación de modelos. Antes de automatizar, pasa un lote de casos reales en español etiquetados por tu equipo y fíjate en cómo se distribuye la confianza.
- **Números, recuentos y fechas, al código.** Jev no cuenta de forma fiable ni compara fechas. Si necesitas saber si un pedido está dentro del plazo de devolución, deja que Jev extraiga el día y el mes como una Choice sobre opciones cerradas, con una opción de «no consta», y haz la resta en código.
- **Lectura literal.** Responde a lo que escribiste, no a lo que querías decir. Si al revisar un fallo te descubres explicando «lo que yo quería era…», esa explicación es lo que le falta a `instructions` o a `criteria`.
- **Estado corto.** El texto que no tiene que ver con la pregunta resta precisión. Filtra antes y manda solo los campos necesarios.
- **Una pregunta, una decisión, y nada de simetrías.** Con el mismo mensaje, «¿pide un reembolso?» dio 0,72 y «¿pide algo que no sea un reembolso?» dio 0,47: suman 1,19, no 1. No construyas lógica que dé por hecho que esas preguntas son complementarias, y no reutilices el umbral de un Noul en una Choice.
- **Inyección de instrucciones.** VentureBeat recoge [una prueba de un ingeniero de Octomind](https://venturebeat.com/security/companies-are-putting-jev-in-charge-of-ai-agent-decisions-and-prompt-injection-can-influence-the-verdict): al preguntarle a Jev si bloquear `rm -rf ~/.ssh`, la probabilidad de bloquear era 0,76 con confianza 0,64; tras meter en el estado una salida de herramienta falsa que decía que el comando estaba «preaprobado», bajó a 0,48 con confianza 0,22. TypeSafe reconoce que el contenido hostil puede mover las respuestas. Si Jev vigila herramientas de un agente, prueba con textos adversarios, cambia el orden de las opciones en las pruebas y registra estado, esquema, orden de opciones, versión y confianza de cada decisión. Para cortar bucles o acciones peligrosas de un agente, añade también límites en código, como se explica en [cómo detener un agente de IA atrapado en un bucle de herramientas](https://blog.laozhang.ai/es/posts/ai-agent-tool-loop).
- **Versión fija.** `jev-latest` y `jev-preview` apuntan hoy a `jev-1.13.0`, pero se moverán. Si ajustaste umbrales con una versión, fija esa versión y cambia cuando tú decidas, tras repetir tus pruebas.
- **Explicabilidad y sesgo.** Simon Willison, que publicó el plugin `llm-typesafe` para su herramienta `llm`, señala que Jev solo da probabilidades, sin razones, y que en decisiones sobre personas, como filtrar candidatos, hay que evaluar el sesgo antes de usarlo. Lo bueno es que el bajo coste permite repetir esas evaluaciones muchas veces.
- **Solo texto y límites cambiantes.** No acepta imágenes, audio ni vídeo: conviértelos antes a texto o a campos estructurados. Cuenta con 429 en picos mientras TypeSafe siga ajustando la capacidad.

## Preguntas frecuentes

**¿Jev es gratis?**
No. Cuesta 0,042 $ por millón de tokens de entrada y la salida es gratuita. Según varios medios, las cuentas nuevas reciben 5 $ de crédito, algo que TypeSafe no recoge en su documentación. La gratuidad en Vercel AI Gateway fue una promoción que terminaba el 25 de septiembre de 2026.

**¿Puedo descargar Jev o ejecutarlo en local?**
No. Es un modelo propietario al que solo se accede por API. Lo que puedes ejecutar en local son imitaciones de la comunidad, como Kev, que no son de TypeSafe y cuya calidad frente al original no está contrastada de forma independiente.

**¿Sirve como modelo para Claude Code o Cursor?**
No como modelo de chat o de código. Sí puedes instalar la *skill* oficial para que tu agente sepa escribir código que llame a Jev: en Claude Code, `claude plugin marketplace add typesafe-ai/skills` y después `claude plugin install typesafe@typesafe-ai`; en otros agentes, `npx skills add typesafe-ai/skills --skill typesafe-ai`.

**¿Funciona bien con textos en español?**
Funciona, pero TypeSafe reconoce que fuera del inglés no rinde igual. Mide con tus propios datos y apóyate en la confianza para mandar a revisión los casos dudosos.

**¿Qué pasa si una pregunta no tiene ninguna opción adecuada?**
Una Choice siempre elige la opción con más probabilidad entre las que diste. Incluye una opción explícita como «otro» o «no consta», y si necesitas saber si alguna encaja de verdad, pregúntalo aparte con un Noul por opción: la Choice compara las opciones entre sí y cada Noul evalúa una por separado, así que todos pueden salir bajos.
