jev-use

Entrega as etapas não relacionadas à escrita de um agente de codificação — qual elemento clicar, se o build passou, se este comando é seguro — ao Jev, um modelo de julgamento, e devolve ao LLM quando necessário.

Documentação

jev-use

Inglês | 简体中文

A melhor maneira de Claude Code, Codex e pi trabalharem com Jev: entregue as tarefas que não precisam de saída de texto ao Jev — passos mais rápidos, menos tokens, tarefas concluídas mais cedo e melhor.

Isso torna o LLM e o Jev verdadeiros colaboradores: quando o conteúdo precisa ser escrito, o LLM assume; quando um passo só precisa de uma decisão rápida, o Jev executa.

Demonstrações — execuções reais, velocidade 1×

Tarefa de direções: Jev clica, o LLM digita — 10 decisões (p50 274 ms) · 4 escritas; Jev rejeita uma rota errada, o LLM reescreve
OpenStreetMap directions: Jev picks controls in green, the LLM types the locations in blue; a wrong 1809km geocode is rejected by Jev and repaired by the LLM, ending on the real 3.7km walking route
Compactação de contexto — 200 mensagens julgadas em 7 chamadas, um parágrafo do LLM substitui a pilha descartada; recall 3/3
A real transcript fills the context window to 94%; Jev tints each message keep or drop, the LLM's summary paragraph replaces the dropped block, the window falls to 44% and three recall checks pass
Pong: velocidade da bola = latência de decisão — 86 decisões do Jev em 20 s vs 6 (haiku) e 3 (gemini) chamadas da maneira usual; restrinja ambos com enum e a diferença é de 3×
Three Pong lanes replaying a live run at 1x: the Jev ball sweeps the field at ~224ms per decision while the LLM balls crawl
Controle cada comando de shell — os perigosos são negados em ~230 ms com um motivo, zero tokens do LLM
A 24-command dev session gated at 1x: dangerous commands denied at confidence 1.00, benign ones allowed

Cada demonstração é um script reexecutável em bench/examples/; todos os números, metodologia, variância e ressalvas: bench/RESULTS.md · medições de terceiros: docs/evidence.md.

Instalação

npx -y jev-use install    # wires Claude Code, Codex, and pi — whichever it finds

Defina uma chave no ambiente em que seu agente executa (JEV_BACKEND=mock para uma execução de teste sem chave):

ProvedorVariável de ambiente
TypeSafe diretoTYPESAFE_API_KEY
OpenRouterOPENROUTER_API_KEY
Vercel AI GatewayAI_GATEWAY_API_KEY

npx -y jev-use doctor verifica a conexão. O estado julgado vai para o provedor que você configurar; JEV_BACKEND=mock permanece local. Formato de plugin com a habilidade de roteamento e o portão PreToolUse: harness/claude-code · harness/codex.

Uso como biblioteca

npm i jev-use — zero dependências de runtime no caminho de julgamento:

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 }

Qualquer coisa que o Jev não possa ou não deva decidir retorna com escalate: true e um motivo tipado. Ferramentas, formato de veredito, contrato de escalonamento, CLI: docs/reference.md.

Pequeno o suficiente para ler

ArquivoFunção
src/protocol.tsPerguntas (check/pick/rate), vereditos, motivos de escalonamento
src/dispatch.tsRoteamento pré-chamada: o que nunca chega ao Jev
src/judge.tstela → backend → devolver o que não tem certeza; gate
src/jev.tsO cliente Jev sobre esse mecanismo
src/backends/TypeSafe, OpenRouter, Vercel, adaptadores mock
src/server.tsAs duas ferramentas MCP
src/cli.tsinstall, serve, hook gate, doctor
skills/jev-use/SKILL.mdAs regras de roteamento que o agente segue

Desenvolvimento

$ 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

Substancialmente escrito com Claude Code (assistido por IA).

MIT © shitianfang