jev-use
Delega los pasos no relacionados con la escritura de un agente de codificación —qué elemento hacer clic, si la compilación pasó, si este comando es seguro— a Jev, un modelo de juicio, y los devuelve al LLM.
Documentación
jev-use
Inglés | 简体中文
La mejor manera para que Claude Code, Codex y pi trabajen con Jev: entrégale las tareas que no necesitan salida de texto a Jev — pasos más rápidos, menos tokens, tareas terminadas antes y mejor.
Hace que el LLM y Jev sean verdaderos colaboradores: cuando el contenido necesita ser escrito, el LLM toma el control; cuando un paso solo necesita una decisión rápida, Jev lo ejecuta.
Demostraciones — ejecuciones reales, velocidad 1×
Tarea de direcciones: Jev hace clic, el LLM escribe — 10 decisiones (p50 274 ms) · 4 escrituras; Jev rechaza una ruta incorrecta, el LLM reescribe![]() | Compactación de contexto — 200 mensajes evaluados en 7 llamadas, un párrafo del LLM reemplaza la pila descartada; recuperación 3/3![]() |
Pong: velocidad de la pelota = latencia de decisión — 86 decisiones de Jev en 20 s frente a 6 (haiku) y 3 (gemini) llamadas de la manera habitual; restringe ambos con enum y la brecha es 3×![]() | Controla cada comando de shell — los peligrosos se deniegan en ~230 ms con una razón, cero tokens del LLM![]() |
Cada demostración es un script reejecutable en bench/examples/; todos los números, metodología, varianza y advertencias: bench/RESULTS.md · mediciones de terceros: docs/evidence.md.
Instalación
npx -y jev-use install # wires Claude Code, Codex, and pi — whichever it finds
Establece una clave en el entorno donde se ejecuta tu agente (JEV_BACKEND=mock para
una ejecución de prueba sin clave):
| Proveedor | Variable de entorno |
|---|---|
| TypeSafe directo | TYPESAFE_API_KEY |
| OpenRouter | OPENROUTER_API_KEY |
| Vercel AI Gateway | AI_GATEWAY_API_KEY |
npx -y jev-use doctor verifica la conexión. El estado evaluado va al
proveedor que configures; JEV_BACKEND=mock permanece local. Forma de plugin con
la habilidad de enrutamiento y la compuerta PreToolUse:
harness/claude-code ·
harness/codex.
Uso como biblioteca
npm i jev-use — cero dependencias de ejecución en la ruta de evaluación:
import { Jev, check, pick, rate } from "jev-use";
const jev = new Jev();
const { answers } = await jev.judge(state, {
next: pick("Next action?", { merge: "all green", rerun: "looks flaky", hold: "needs attention" }),
risk: rate("How risky?", ["routine", "worth a look", "incident"]),
passed: check("Did the run fully succeed?"),
});
// answers.next → { answer: "merge", confidence: 0.93, confidenceFrom: "reported", escalate: false }
Cualquier cosa que Jev no pueda o no deba decidir regresa con escalate: true
y una razón tipada. Herramientas, forma del veredicto, contrato de escalamiento, CLI:
docs/reference.md.
Lo suficientemente pequeño para leer
| Archivo | Función |
|---|---|
| src/protocol.ts | Preguntas (check/pick/rate), veredictos, razones de escalamiento |
| src/dispatch.ts | Enrutamiento previo a la llamada: lo que nunca llega a Jev |
| src/judge.ts | pantalla → backend → devolver lo que no está seguro; gate |
| src/jev.ts | El cliente Jev sobre ese motor |
| src/backends/ | Adaptadores TypeSafe, OpenRouter, Vercel, mock |
| src/server.ts | Las dos herramientas MCP |
| src/cli.ts | install, serve, hook gate, doctor |
| skills/jev-use/SKILL.md | Las reglas de enrutamiento que sigue el agente |
Desarrollo
$ npm run typecheck && npm test # unit tests incl. per-provider wire fixtures
$ npm run smoke # real MCP client ↔ built CLI over stdio
$ node bench/run.mjs # micro-benchmarks, your key and region
Escrito sustancialmente con Claude Code (asistido por IA).
MIT © shitianfang



