CONOCE JEV
Un modelo System One para software
Los LLM tradicionales generan principalmente texto para personas. Jev se centra en decisiones que el software puede consumir directamente: envía un contexto y preguntas tipadas para recibir resultados estructurados que tu código puede usar para ramificar, clasificar y enrutar.
Resultados tipados
Decisiones en paralelo
Probabilidad y confianza
INICIO RÁPIDO
Valida una decisión en la zona de pruebas
La zona de pruebas es la forma más rápida de entender las entradas y salidas de Jev. Cuando la pregunta esté lista, crea una clave API y conéctala a tu producto.
- 1
Abre la zona de pruebas
Inicia sesión, abre la zona de pruebas de Jev AI e introduce un caso real de tu negocio.
- 2
Prepara el contexto
Usa texto, un objeto JSON o un array de texto para proporcionar el contexto necesario.
- 3
Añade preguntas
Elige Choice, Score o Noul. Puedes combinar los tres tipos en una solicitud.
- 4
Conecta tu código
Crea una clave API en tu espacio de trabajo y llama al endpoint de producción con un SDK o REST.
ENTRADA
Proporciona el contexto necesario para decidir
El contexto es la información que leen todas las preguntas. Usa una cadena para un caso sencillo y un objeto JSON cuando debas combinar un ticket, un pedido y una política.
textLenguaje natural, un ticket o un mensaje
objectRegistros estructurados y campos anidados
arrayContexto formado por varios elementos de texto
Jev acepta texto, objetos JSON y arrays de texto. Aún no admite entradas de imagen, audio ni vídeo.
TIPOS DE PREGUNTA
Compón decisiones con preguntas concretas
Cada pregunta debe plantear algo específico y bien delimitado. Varias preguntas se evalúan en paralelo sobre el mismo contexto, sin necesidad de encadenar llamadas.
Campos y estructura comunes
Los tres tipos incluyen type e instructions; criteria depende del tipo. instructions puede ser una cadena, un objeto o un array. Para aportar más contexto, estructura la pregunta y los datos en campos y refiérete a ellos por nombre.
typeObligatorio: noul, choice o score.
instructionsObligatorio: cadena, objeto o array que describe la decisión.
criteriaSegún el tipo: objeto opcional para Noul, mapa obligatorio para Choice y array obligatorio para Score.
{
"type": "noul",
"instructions": "Does this message convey urgency?",
"criteria": {
"true": "Explicitly needs immediate attention",
"false": "No urgency expressed"
}
}Para preguntas largas o con datos adicionales, separa la pregunta y el contexto en campos y refiérete a ellos por nombre.
"instructions": {
"potential_duplicate": {
"name": "John Smith",
"location": "Oakland, California",
"last_employer": "Google"
},
"question": "Is the resume for the same person as `potential_duplicate`?"
}Choice
Choice selecciona una respuesta entre opciones predefinidas. type debe ser choice, instructions describe la decisión y criteria relaciona las opciones con sus descripciones. Admite hasta 255 opciones; las descripciones pueden ser cadenas, objetos, arrays o null.
{
"state": "Help! My payouts have been failing for 3 days.",
"model": "jev-latest",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this?",
"criteria": {
"billing": "Payments, invoicing, refunds",
"technical": "Bugs, outages, integrations",
"sales": "Pricing, upgrades, new accounts"
}
}
}
}Score
Score evalúa niveles, como gravedad o satisfacción. type debe ser score; instructions explica la evaluación y criteria es un array ascendente de 2 a 10 niveles. Los elementos pueden ser cadenas, objetos o arrays. La puntuación ponderada por probabilidad puede quedar entre niveles.
{
"state": "Help! My payouts have been failing for 3 days.",
"model": "jev-latest",
"questions": {
"frustration": {
"type": "score",
"instructions": "How frustrated is the customer?",
"criteria": ["Calm", "Frustrated", "Very angry"]
}
}
}Noul
Noul sirve para decisiones de sí o no. type debe ser noul e instructions contiene la pregunta. criteria es opcional y usa true y false para describir sí y no. Noul expresa la probabilidad de que la respuesta sea sí, no un campo de confianza adicional.
{
"state": "Help! My payouts have been failing for 3 days.",
"model": "jev-latest",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this convey urgency?",
"criteria": {
"true": "Explicitly time-sensitive",
"false": "No urgency expressed"
}
}
}
}SALIDA
Qué aporta la respuesta a tu código
result.answers usa los mismos ID que enviaste. La salida tipada garantiza la estructura de los campos, pero ajusta los umbrales al riesgo y ofrece revisión humana cuando sea necesario.
- answers: Choice devuelve la opción, las probabilidades y la confianza; Score devuelve puntuación, leyenda, probabilidades por nivel y confianza; Noul devuelve noul.
- usage: Incluye input_tokens y output_tokens; también puede incluir el coste en USD.
- elapsedMs: Tiempo desde el envío hasta la recepción del resultado, incluida la validación; no solo la inferencia del modelo.
La probabilidad y la confianza orientan la automatización, pero no garantizan la precisión del negocio. Para acciones arriesgadas, usa umbrales altos o revisión humana.
Campos de la respuesta
modelModelo que realizó la evaluación; este proyecto incluye answers y usage dentro de result.answersUna respuesta por pregunta, identificada con el mismo ID de la solicitud.usageContiene input_tokens y output_tokens.elapsedTiempo adicional devuelto por este proyecto, en milisegundos.Ejemplo de respuesta
{
"model": "jev-1.13.0",
"answers": {
"is_urgent": {
"type": "noul",
"noul": 0.95
}
},
"usage": { "input_tokens": 296, "output_tokens": 20 }
}Tipos de respuesta
Cada respuesta coincide con el tipo de su pregunta. Choice y Score también incluyen confianza de 0 a 1, calculada a partir de la distribución de probabilidad.
Choice
Devuelve la opción más probable, las probabilidades de todas las opciones y la confianza derivada de la distribución.
typeObligatorio; el valor es choice.
choiceCadena obligatoria; la opción con mayor probabilidad.
probabilitiesMapa obligatorio de string a number; las probabilidades suman 1.
confidenceNúmero obligatorio; certeza derivada de la distribución de probabilidad.
{
"model": "jev-1.13.0",
"answers": {
"department": {
"type": "choice",
"choice": "billing",
"probabilities": { "billing": 0.88, "technical": 0.12, "sales": 0.0 },
"confidence": 0.81
}
},
"usage": { "input_tokens": 318, "output_tokens": 34 }
}Score
Devuelve una puntuación ponderada por probabilidad, una leyenda por nivel, sus probabilidades y la confianza. La puntuación puede quedar entre niveles.
typeObligatorio; el valor es score.
scoreNúmero obligatorio; puntuación ponderada entre los niveles.
legendMapa obligatorio de string a string; relaciona cada nivel con su descripción.
probabilitiesMapa obligatorio de string a number; las probabilidades de los niveles suman 1.
confidenceNúmero obligatorio; certeza derivada de la distribución.
{
"model": "jev-1.13.0",
"answers": {
"frustration": {
"type": "score",
"score": 1.05,
"legend": { "0": "Calm", "1": "Frustrated", "2": "Very angry" },
"probabilities": { "0": 0.0, "1": 0.95, "2": 0.05 },
"confidence": 0.92
}
},
"usage": { "input_tokens": 304, "output_tokens": 18 }
}Noul
Devuelve noul de 0 a 1, la probabilidad de que la respuesta sea sí.
typeObligatorio; el valor es noul.
noulNúmero obligatorio; 0 significa no y 1 significa sí.
{
"model": "jev-1.13.0",
"answers": {
"is_urgent": {
"type": "noul",
"noul": 0.95
}
},
"usage": { "input_tokens": 307, "output_tokens": 20 }
}Campos de uso
input_tokensinteger · Número de tokens de entrada usados.
output_tokensinteger · Número de tokens de salida generados.
REFERENCIA DE LA API
Evalúa el contexto y devuelve respuestas estructuradas
Referencia completa de la API HTTP: evalúa un contexto con preguntas tipadas y recibe una respuesta estructurada por pregunta.
Endpoint de evaluación
Incluye una clave API Bearer en Authorization y el tipo de contenido application/json en cada solicitud.
Authorization: Bearer <API_KEY>
Content-Type: application/jsonCuerpo de la solicitud
Cada solicitud requiere tres campos principales. questions es un mapa de claves elegidas por ti, reutilizadas en la respuesta.
statestring | object | array · obligatorio: texto o datos estructurados que se evaluarán.modelstring · obligatorio: modelo que procesa la solicitud. Usa el modelo insignia de TypeSafe, jev-latest.questionsmap<string, Question> · obligatorio: preguntas que se evaluarán en paralelo.Las claves de questions son tuyas y la Answer vuelve con el mismo ID. No se envían al modelo subyacente ni se usan durante la inferencia.
Ejemplo de solicitud
curl -X POST https://thejevai.com/v1/systemone \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-latest",
"state": "Help! My payouts have been failing for 3 days.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this convey urgency?"
}
}
}'Ejemplo del cuerpo de la solicitud
{
"state": "Help! My payouts have been failing for 3 days.",
"model": "jev-latest",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this convey urgency?"
}
}
}Guarda la clave API en una variable de entorno del servidor. Nunca la incluyas en el código del navegador ni la subas al repositorio. Aquí se describen campos, tipos de pregunta, respuestas, errores y reintentos.
USO CON AGENTES
Usa Jev dentro de un agente de programación
Jev Agent Skill enseña a Codex, Claude Code, Cursor y otros agentes a usar esta API para decisiones acotadas, mientras la ejecución y los permisos siguen en tu aplicación.
Instala y configura
Instala la Skill, crea una clave API de Jev AI y elige el idioma de la guía y los ejemplos.
Configura una vez
Usa variables de entorno para mantener la clave fuera del código, los registros y las conversaciones del agente.
Haz una pregunta acotada
Indica al agente qué decisión necesita; debería elegir Choice, Score o Noul y enviar el contexto mínimo necesario.
Instala y configura
npx skills add jev-ai/jev-agent-skill
export JEV_API_KEY="sk_your_key_here"
export JEV_LANGUAGE="en-US"Crea una clave en https://thejevai.com/settings/apikeys. El inglés (en-US) es el idioma predeterminado; configura JEV_LANGUAGE=zh-CN para la guía en chino simplificado. Nunca pegues una clave real en el código ni en un prompt público.
Cinco ejemplos para empezar
Copia uno de estos prompts después de instalar la Skill. Muestran cómo usar Jev para decidir sin darle permiso para ejecutar la acción final.
Enrutar un ticket de soporte
Usa Choice para seleccionar un equipo autorizado y deja que el código enrute el ticket. Envía los casos dudosos a revisión.
Usa Jev Agent Skill. Clasifica este ticket de soporte en exactamente un equipo: billing, technical, account o sales. Devuelve el equipo seleccionado, las probabilidades y la confianza. No contactes con el cliente ni modifiques todavía el ticket.
Ticket: Me han cobrado dos veces el plan anual y necesito un reembolso.Proteger una llamada a una herramienta
Usa Noul para decidir si una acción requiere aprobación; los permisos deterministas y las políticas siguen teniendo la última palabra.
Usa Jev Agent Skill antes de ejecutar esta llamada propuesta a una herramienta. Decide si es segura sin aprobación humana. Ten en cuenta los efectos secundarios, la reversibilidad, el alcance y las políticas. Si es arriesgada o hay dudas, no la ejecutes.
Herramienta: delete_customer_records
Argumentos: {where: last_login < 2023-01-01}
Política: las operaciones destructivas en la base de datos requieren una copia de seguridad y aprobación humana.Enrutar a un modelo aprobado
Usa Choice con los candidatos permitidos y una pregunta Noul aparte si ninguno encaja.
Usa Jev Agent Skill para elegir un modelo aprobado para esta tarea. Prioriza la calidad y después la capacidad de contexto y el coste. Devuelve el modelo seleccionado, las probabilidades y si hay que escalar el caso. Todavía no llames a ningún modelo.
Tarea: revisar una disputa de un cliente de 100k tokens.
Candidatos: fast-model (32k, coste bajo), reasoning-model (200k, coste alto), fallback-model (128k, coste medio).Verificar pruebas de investigación
Usa Noul para comprobar si las pruebas bastan antes de que un agente publique o cite una afirmación.
Usa Jev Agent Skill para comprobar si hay pruebas suficientes para publicar esta afirmación. Valora la calidad y actualidad de las fuentes, si la respaldan directamente y si existen contradicciones. Devuelve la probabilidad de que pueda publicarse y las verificaciones pendientes. No la publiques todavía.
Afirmación: Nuestra API redujo un 40 % el tiempo mediano de procesamiento.
Pruebas: una prueba comparativa interna del mes pasado con 120 casos; sin datos del tráfico de producción; un informe anterior que mostraba una mejora del 12 %.Revisar si la tarea ha terminado
Usa Choice o Score para decidir si el trabajo está completo, necesita verificación o sigue incompleto antes de informar del éxito.
Usa Jev Agent Skill para comprobar si esta tarea está terminada. Devuelve complete, verify_more o incomplete. Ten en cuenta el objetivo, los archivos modificados, las pruebas ejecutadas, las lagunas conocidas y la verificación en el entorno de destino.
Objetivo: añadir autenticación con clave API al endpoint de producción.
Hecho: se ha añadido la comprobación de Authorization y la búsqueda de la clave API.
Verificación: las pruebas unitarias pasan; no se han probado las solicitudes de producción ni el comportamiento del límite de solicitudes.GESTIÓN DE ERRORES
Errores y reintentos
El endpoint usa códigos de estado HTTP estándar y devuelve una respuesta JSON con el error.
401No autorizado: falta la clave API o no es válida. Comprueba el encabezado Authorization.422Entidad no procesable: el cuerpo no supera la validación por un campo ausente o una pregunta mal formada. La respuesta señala el campo afectado.429Demasiadas solicitudes: has superado el límite. Espera y vuelve a intentarlo.529Sobrecarga: el servicio está temporalmente saturado. Espera y vuelve a intentarlo.Ante un 429 o 529, reintenta con retroceso exponencial en vez de reenviar la solicitud de inmediato. Los SDK con una política predeterminada pueden hacerlo automáticamente.
Qué hacer ahora
Empieza con una decisión de bajo riesgo y bien delimitada. Después, cuando sepas dónde resulta útil la señal, intégrala con el enrutamiento, las colas, las protecciones o el flujo de un agente.