
kerpopule/hermes-jev-skills on GitHub
- Stars
- 721
- Forks
- 65
- Language
- Python
- License
- MIT
- Last push
- 23 Sep 2026
Post on X
- Views
- 100,055
- Likes
- 558
- Reposts
- 56
Read from GitHub and X on . Counts change daily.
hermes-jev-skills hands an agent’s small in-the-loop decisions to Jev instead of burning a frontier model’s tokens on them: which model is good enough to answer this turn, which of hundreds of loaded skills to use, which retrieved passages are worth reading, and which conversation turns survive a context summary. None of these need prose, so the project treats them as typed questions, choice, score or yes/no, that Jev answers with a calibrated confidence in roughly 0.4 seconds per turn for model routing, based on the author’s own measurements.
Search runs a slower round, about 1.9 seconds median across five live runs, since it covers ranking fetched results, judging whether the evidence answers the question, and picking the next query to try, with Jev never writing the query itself. Memory decisions run over up to 480 passages per call, screening for both relevance and hidden injected instructions, with the injection screen still running locally even if the Jev API is unreachable. The one skill the author explicitly does not ship as default is compaction by summary: they measured a Jev-summarized handoff recalling less than one built from the plain transcript, so the default handoff carries the full dialogue instead.
A dashboard shows Jev’s routing switch, on, shadow or off, and every decision as it happens with its tier, confidence and latency.
How it uses Jev
from . import keystore
ENDPOINT = "https://api.typesafe.ai/v1/systemone"
DEFAULT_MODEL = "jev-latest"
# Jev, reached through OpenRouter's Decisions API instead of TypeSafe directly: one key
# instead of two for anyone already on OpenRouter. Same request, same answers, same model -
# only the URL and the model id differ. Contributed as PR #1 by Lorenzo DZ (@Barba2k2),
# whose version prompted a chat model for JSON instead; that returns an LLM's guess with a
# made-up confidence, which is the one thing a decision model exists not to do.
OPENROUTER_ENDPOINT = "https://openrouter.ai/api/alpha/decisions"
OPENROUTER_MODEL = "~typesafe/jev-latest"
MAX_RESPONSE_BYTES = 1_000_000
MAX_STATE_CHARS = 60_000
USER_AGENT = "hermes-jev-skills/0.1"

