Skip to content

omo-jevlike-router

Jev-style skill router for OmO: frozen Qwen2.5-0.5B plus a small head scores the skill catalog and trims the system prompt to top-K.

Modelprototype

Overview

omo-jevlike-router is a one-pass skill router for OmO. On each agent start, a small local model, a frozen Qwen2.5-0.5B plus a tiny option-attention head from the jevlike project, scores the entire skill catalog against the user's prompt in a single forward pass. An OmO extension then shrinks the skills block of the system prompt to the top-K skills before the main model sees it. It runs as a CPU Docker service and fails open if unreachable.

From the deployment it was extracted from (1,414 labelled turns, 141 skills, 132 held-out turns), the README reports 27.3% top-1, 47.0% top-3, 84.1% recall@24, ECE about 0.10, and 50-70 ms warm latency. It openly corrects an earlier evaluation bug that inflated numbers. Because routing is weak on short prompts, the design is lossless: cut skills keep their names in an index, and flat-confidence turns skip filtering. You train it on your own session data.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich skills from the catalog are relevant to this prompt?—

How it works

  1. Extract a training set from your own OmO sessions.
  2. Train the head and run the router in Docker.
  3. On agent start, score all skills and keep the top-K (default 12).
  4. Skip filtering on flat-confidence turns; list cut skill names.

Strengths

  • Smaller system prompts with sub-100 ms warm routing.
  • Fails open and never fully hides a skill.
  • Honest, corrected evaluation.

Caveats

  • Modest top-1 accuracy; best used as a recall filter.
  • Needs your own labelled session data.
  • First full-catalog call takes about 9 s.

Getting started

git clone https://github.com/islee23520/omo-jevlike-router && cd omo-jevlike-router && python3 extract/extract_dataset.py, then follow the setup guide to train and start the router.

At a glance

Type
Model
Status
prototype
Language
Python
Runtime
Docker service, OmO extension
Has code
yes

Use cases and integrations

How curated lists describe it

  • Skill routing: shrinks the skill catalog in a system prompt with one forward pass over a frozen Qwen, routing each request Jev-style.

    yibie/awesome-jev

Frequently asked questions

What does the router decide?

Which skills from the catalog to keep in the system prompt for this request.

Can it hide a needed skill?

Not completely; cut skills remain listed by name, and uncertain turns skip filtering.

Does it need TypeSafe?

No, it uses a local Qwen2.5-0.5B with a trained head.

Related projects

  • Middleware for LangChain deepagents where Jev ranks and verifies which SKILL.md skills each turn needs, keeping the rest out of the prompt.

    Agent skillbetaPython
  • MCP router that catalogs and deduplicates tools and exposes each agent only a relevant, authorised subset using typed decisions.

    MCP serverbetaPython
  • Local Python MCP service that keeps the skill catalog out of the agent's context and lets Jev pick which SKILL.md files to load.

    MCP serverbetaPython
  • Toolkit where Jev condenses large MCP responses for Claude Code and maps Codex requests to reviewed, fixed repository operations.

    ProjectbetaTypeScript
  • Claude Code plugin with three Jev tools: verbatim context compaction, per-edit model routing and per-prompt skill selection.

    ProjectbetaPython
  • Pi extension that strips the inlined skill list and asks Jev which single skill, if any, to load per turn.

    Agent skillbetaTypeScript