El anuncio de TypeSafe: qué es un System One model, latencia y precio.
Qué es Jev
Le preguntas y te responde con texto. Tú tienes que interpretar ese texto para decidir qué hace el programa.
Le preguntas con opciones y marca una. El programa usa esa opción directamente, como en un switch.
Como no genera texto, es mucho más rápido y barato que un LLM. Y la probabilidad dice cuánta seguridad tiene en cada respuesta.
Dónde lo hemos probado
En puntuar una code review. Un agente revisa el código y genera findings, que son los problemas que encuentra. Después, cada finding resta puntos a una nota de 10.
El LLM revisa cada finding (si es real, si se aplica, de qué tipo es) y el scoring resta según el tipo (testing −2, alineamiento −1, naming −0,5). La respuesta no dice cuánta seguridad tiene.
Jev responde esas mismas preguntas, cada una con su probabilidad. Con el ámbito y la gravedad se calculan los puntos. Si la probabilidad es baja, decide una persona.
El finding
Un nombre vacío deja una fila sin título
El código comprueba que el nombre exista, pero no que tenga texto. Si el nombre llega como '', la fila de la pantalla se queda sin título.
Arreglo propuesto: comprobar también que tenga texto y añadir un test para el caso vacío.
A Jev le mandamos este finding con su contexto: el código de alrededor, los criterios del ticket y las decisiones previas del equipo. Y le hacemos cinco preguntas en una sola llamada. Jev las responde a la vez y cada una por separado, sin usar la respuesta de las demás.
El test, contestado
Del test a la nota, un ejemplo
- Si se decidió a propósito, se descarta.
- Si Jev no llega a la seguridad mínima, decide una persona. La nota queda pendiente hasta que decida.
- Si no, se aplica y resta puntos según la gravedad.
Mueve la seguridad mínima para ver por dónde sale este finding.
Resta de ejemplo: crítico −3, mejora −1, limpieza −0,25. Los pesos reales son otros.
Por qué Jev
| LLM normal | Jev | |
|---|---|---|
| Qué devuelve | Texto o JSON que hay que validar | Una opción de la lista |
| Seguridad | No la da | Probabilidad por opción |
| Esta llamada | — | 3.635 tokens de entrada, 95 de salida, ≈ $0,00015 |
| Latencia | Segundos | 70–500 ms según TypeSafe (sin medir aquí) |
Límites
- No explica sus respuestas. El finding y el arreglo los sigue escribiendo el LLM de la review.
- Clasifica tan bien como estén escritas las opciones.
- Admite poco contexto: 32.000 tokens para el contexto más la pregunta más larga. Además, acierta menos si el contexto trae mucho ruido, así que hay que mandarle solo lo que necesita.
- De momento hemos hecho pocas pruebas.
La llamada real
{
"model": "jev-latest",
"state": { // 1
"finding": { "title": "An empty plan name…", … },
"plannerAssumptions": [ /* decisiones previas */ ],
"acceptanceCriteria": "<criterios del ticket>",
"codeAroundFinding": "<80 líneas>"
},
"questions": { // 2
"intentional": {
"type": "noul", // 3
"instructions": "Does one of the planner…",
"criteria": { "true": "…", "false": "…" } // 4
},
"decision": {
"type": "choice",
"criteria": { "apply": "…", "discard": "…", "doubt": "…" }
},
/* genuineImprovement, severity, scope */
}
}
- 1state es el contexto, en bruto y sin esquema: el finding, las decisiones previas, los criterios del ticket y el código de alrededor.
- 2questions son las preguntas del test. Jev las responde todas a la vez en una sola llamada.
- 3type dice qué forma tiene la respuesta.
noules un sí/no ychoiceelige de una lista. - 4criteria explica en lenguaje natural qué significa cada opción. De lo bien escrito que esté depende que Jev acierte.
{
"answers": {
"intentional": { "noul": 0.15 }, // 1
"genuineImprovement": { "noul": 0.89 },
"decision": {
"choice": "apply", // 2
"probabilities": {
"apply": 0.93, "doubt": 0.05, "discard": 0.02
},
"confidence": 0.90 // 3
},
"severity": { "choice": "improvement", … },
"scope": { "choice": "codeQuality", … }
},
"usage": { // 4
"input_tokens": 3635, "output_tokens": 95
}
}
- 1noul es la probabilidad de que la respuesta sea «sí». 0,15 quiere decir que casi seguro es «no».
- 2choice es la opción elegida, y probabilities reparte el 100 % entre todas las opciones.
- 3confidence resume cuánto destaca la opción elegida sobre el resto. Es el número que usa el código para la seguridad mínima.
- 4usage son los tokens de la llamada. Solo se paga la entrada.
Documentación
Los tres tipos de pregunta: choice, score y noul.
En qué se diferencia de la probabilidad y cómo se calcula.
El patrón de la seguridad mínima: actuar o pasar a una persona.
Precio, límites de uso y tamaño de contexto.
Dónde falla Jev hoy: cálculos, fechas y contexto con ruido.