jev.directory
Systems
scoreHarnessTriage

RouteKit — Jev reads the task, a policy engine picks the model

Model routing for agents, with the judgment and the decision deliberately kept apart.

The premise is that asking a full LLM which LLM should handle a request is both slow and circular. RouteKit uses Jev as a lightweight decision layer that does one job — read the incoming request and Score its task requirements — and then hands off.

Agent request -> Jev: task requirements
              -> Eligibility: capabilities / context / constraints
              -> Policy engine: objective + model profiles
              -> Selected model

Jev never names a model. Eligibility filtering and the policy engine do that, from the scored requirements plus model profiles and whatever objective is configured — capability, cost or latency. That split is what keeps the routing table editable: adding a model or changing a cost ceiling is a profile change, not a re-prompt, and the judgment about the task stays valid across it.

Source (6 files)

src/decision/jev/jev-normalizer.ts
src/decision/jev/jev-provider.ts
src/decision/jev/jev-questions.ts
src/index.ts
src/router/model-router.ts
src/router/policy-engine.ts