hermes-jev-skills README

The project's README from github.com/kerpopule/hermes-jev-skills. As one markdown file: README.md.

Hermes Jev Skills

Give your agent a fast, cheap second brain for the small decisions.

Your agent burns frontier-model tokens on things that are not thinking: which model should answer this turn, which of 377 skills to load, which retrieved passages matter, which turns survive a summary, which button comes next. Those are decisions, not prose. Hand them to something that costs a fraction of a cent and answers in about 0.4 seconds, and let the expensive model do the writing.

That is what Jev is. It is TypeSafe's decision model. It never writes text. You give it a state and typed questions (pick one, score this, yes or no) and it answers with a calibrated confidence. This repo wires that into an agent's day.

The model routing dashboard: the Jev on/shadow/off switch, the routing pools grid, and live decisions as they happen

jev dashboard. The profiles, paths and decisions here are a demo home; the pools are a real working set. python3 scripts/demo_home.py builds a home where nothing is real, which is where the next one comes from. One switch for Jev routing, every pool as a tier-by-work-kind grid, and each decision as it happens (tier, work kind, model, which pool it came from, confidence, latency).

What Jev decides, and what it costs

Skill What Jev decides Measured
Model routing Which model is good enough for this turn, from every model you can call ~0.4 s per turn
Search Which of the results you fetched are worth opening, whether the evidence answers the question, and which of your candidate queries to run next. Jev never writes a query ~1.9 s per round (median of five live runs, two requests: rank, then sufficiency and the pick)
Memory Which retrieved passages are worth reading, and which contain hidden instructions 60 passages per request, up to 480 per call; an injection screen runs locally even when Jev is down
Handoffs Nothing, by default. We measured it: a handoff written from Jev's keep / summarize / drop digest recalled less than one written from the plain transcript. What ships is the whole dialogue, 1,200 words and a way back to the old session 58.7% recall alone, 75.0% with one search, against 37.5% and 68.3% before (scorecard)
Choosing turns Which turns to keep when a transcript must be cut to a fixed size 71 turns in 0.95 s; beat choosing by recency 11 questions to 4
Skill selection Which installed skill this turn needs, or none 377 skills in ~2.8 s; acknowledgements answered locally for free
Triage How urgent a message is, what kind it is, and whether a person must see it ~0.4 s per message, $0.00006
Mailbox sorting Which lane an inbox message belongs in — needs reply, updates, promotional, sales, spam — and whether it is worth a person's attention ~0.44 s p50 per message, $0.00002 each
Computer use The next GUI action, from a table of actions you already judged safe. --plan splits a multi-step command once, up front ~0.5 s per decision
Browser use The next page action, same contract ~0.4 s per step

Nine skills ship as plain SKILL.md files, so they are not Hermes-only. The same folder works in Claude Code, Codex, or anything that reads a skill file.

jev mail --file inbox.json             # sort a mailbox into lanes
jev mail --file inbox.json --summary   # counts per lane, what was unsure, what it cost

Try it in two commands

git clone https://github.com/kerpopule/hermes-jev-skills ~/hermes-jev-skills && python3 ~/hermes-jev-skills/install.py
jev setup-key   # paste your key into the one-time page it opens, then run: jev doctor

Python 3.9 or newer, no dependencies. Got it as a zip? Unzip it anywhere and run python3 install.py from that folder. Or point your agent at this repo and say "install Hermes Jev Skills": it will follow AGENTS.md.

The installer finds Hermes, Claude Code and Codex on the machine and installs for each one it finds. python3 install.py --check shows exactly what it would do without changing anything. --uninstall reverses it.

Not sure yet? Run jev models suggest --write to draft routing pools from price bands, then /jev routing shadow for a day. Shadow mode decides and logs without switching anything, so a day of decisions costs almost nothing and risks nothing. Turn it on when the log looks right.

On Hermes

Built for Hermes. The dashboard has its own notes in router-dashboard/README.md.

Start in shadow mode. It is the honest way to see what Jev would do before it does anything.

/jev                         status
/jev routing shadow          decide and log, do not switch (start here)
/jev routing on              switch models per turn
/jev skills on               suggest the right skill per turn
/jev notice on               show "[Jev] hard · coding → kimi-k3 · confidence 0.92" on routed replies
/jev routing on all          make it the default for every profile (a profile's own setting still wins)

The agent gets five tools: jev_memory_filter, jev_compact_select, jev_choose_action, jev_supervise, jev_escalate.

The hermes-jev plugin uses only public plugin seams (pre_llm_call, the llm_request middleware, tools, a slash command), so hermes update does not break it and nothing in Hermes core is patched.

A plugin can swap the model, not the provider connection. On OpenRouter that still covers every vendor. If you run /model yourself, your choice wins.

Every model you have

jev models list              # everything this machine can call: price, context, vision, reasoning
jev models providers         # which providers you hold a key or login for
jev models suggest --write   # first-draft pools from price bands; then edit to taste

The catalog is models.dev, filtered to providers whose API-key name is set in your environment or Hermes .env, or that Hermes holds a login for. Only key names are read. Pools live in ~/.hermes/jev/routing.json (the default for every profile); ~/.hermes/profiles/<name>/jev/routing.json overrides it for one profile. Details in skills/jev-model-routing.

Your API key never touches the agent

jev setup-key opens a one-time page served only by your own computer. You paste your TypeSafe key there. It goes straight into the OS secret store (macOS Keychain, or secret-tool on Linux, or a 0600 file as a last resort) and, on a Hermes machine, into each profile's .env. The agent that ran the command sees one line: stored, verified, yes or no. Never the key, not even a prefix.

The page lives on an unguessable one-time URL, refuses requests with a foreign Host header (DNS rebinding), sends no referrer, logs nothing, and shuts down after one use or ten minutes. On a headless box, run jev setup-key --tty yourself for a hidden prompt.

Do not paste your key into a chat. If you already did, make a new one.

What leaves your machine

Jev is a cloud API, so this is spelled out rather than implied:

Logs hold decisions only (tier, model, confidence, latency). Never prompt text.

One thing to be plain about: in the default redacted-text mode, routing sends the turn itself, redacted. The plugin also tells your agent never to send Jev customer data — and on an automatically routed turn the agent has no say in that, because routing happens before it acts. If a profile handles data that must not leave the machine, put it in private_profiles, which sends only coarse features (length, code present, risk words) and never the text.

Everything fails open

No key, timeout, rate limit, malformed reply, low confidence: routing keeps your current model, memory returns the original list, compaction drops nothing, skill selection suggests nothing, search returns the screened head of your list with the decision marked unknown, and computer use returns reobserve. A Jev outage costs you at most the time budget (2.5 s for routing) and never blocks a turn.

Safety rails that do not depend on Jev being right:

Layout

jevkit/            the library and the `jev` command (stdlib only)
skills/            nine SKILL.md skills, agent-agnostic
hermes/plugin/     the Hermes plugin
router-dashboard/  the model routing page (`jev dashboard`)
install.py         installer / uninstaller
tests/             offline tests, every Jev reply faked
scripts/           the release gate, the demo home, and a nightly report on open PRs and issues
evals/             measurements you can rerun on your own sessions
docs/              integration notes and hard-won operational lessons
Doc Read it when
turning-a-jev-feature-on.md Before you enable anything. Shadow mode, silent defaults, why a quiet log proves nothing, and bounding by the clock rather than the count.
using-jev-in-a-hermes-fleet.md Running Jev across more than one agent: the never-bypass rule, why fail-open is not a bypass, which decisions Jev owns, the thresholds that must not drift, and where a fleet's own facts belong.
writing-a-jev-question.md Before you write a state or a question. The measured finding that one sentence about what is required versus merely preferred doubled accuracy, and how to phrase each of the three shapes.
measuring-a-router.md Replaying routing against your own traffic before you trust the savings.
search-loop.md Running a search as a loop: which results to open, when to stop, and how to write candidate queries so Jev can pick one.
wiring-triage-into-a-live-pipeline.md Adding classification to something already carrying real traffic.
hermes-compaction.md Handoffs on Hermes: what we measured, what ships, and the two search calls that make a handoff enough.
response-caches.md Before you put a response cache in front of an agent. Why it does little for a Jev loop, and the plan cache we built instead.
evals/compaction Measuring handoffs on your own sessions.

The tests are offline and every Jev reply is faked, so they are safe to run anywhere:

python3 -m unittest discover -s tests

License

MIT (LICENSE). Work ported or borrowed from other MIT projects is listed in NOTICE, with their copyright notices: fazlerocks/jevmail (the mailbox lanes), savka777/jev-use (plan-once) and rohanarun/computer-use-cache (two cache ideas). The optional browser runner wraps browser-use/jev-ultrafast (MIT), which is not bundled.

Jev and TypeSafe are products of TypeSafe AI; this project is independent.

Contributions are welcome and keep their author in the git history. People whose work is in a release are named in CHANGELOG.md.

hermes-jev-skills (kerpopule/hermes-jev-skills)

Searching Database…

这是什么?Hermes Jev Skills 为 AI 智能体提供一个廉价、快速的“第二大脑”来处理小型例行决策(模型路由、记忆过滤、技能选择、轮次压缩、计算机/浏览器使用),让昂贵的前沿模型只负责写作。这些决策由 TypeSafe 的校准决策模型 Jev 处理。
这是 Hermes 专属插件,还是在别处也能用?其中九个技能以纯 SKILL.md 文件的形式提供,因此它们在 Claude Code、Codex 或任何能读取技能文件的智能体中都能工作,不限于 Hermes。在 Hermes 上它还可以作为插件安装,利用 Hermes 的公开插件扩展点添加五个工具。
除了 Python,运行它还需要什么?安装技能只需要 Python 3.9 或更新版本,没有额外依赖。要真正获得 Jev 的决策,你还需要一个 TypeSafe API 密钥,通过 'jev setup-key' 设置。
如果 Jev 不可达或拿不准怎么办?一切都遵循 fail open 原则:没有密钥、超时、限流、错误回复或置信度低时,路由保持当前模型,记忆返回原始列表,压缩不丢弃任何内容,技能选择不做建议,计算机使用只是重新观察。Jev 故障最多损失一小段时间预算,绝不会阻塞当前轮次。
Jev 做决策时究竟有什么数据离开我的机器?每个技能只发送与其决策相关的、已脱敏且有长度上限的片段(例如路由最多发送一轮对话的 2,500 个字符,记忆/搜索每段最多 900 个字符),电子邮件、电话、令牌以及任何看似机密的内容都会被剔除或扣留;商店 ID、文件路径和截图绝不发送。
既然它是这一切的核心,Jev 到底是什么?Jev 是 TypeSafe 的决策模型:它从不撰写正文,只回答有类型的问题(选一个、给这个打分、是或否),并附带校准过的置信度,每次调用通常约 0.4 秒。
我的 TypeSafe API 密钥会经过智能体本身吗?不会。'jev setup-key' 会打开一个一次性的本地页面让你粘贴密钥;密钥直接进入操作系统的密钥库(macOS Keychain、Linux secret-tool 或 0600 权限的文件),智能体只能看到已存储/已验证的是或否,永远看不到密钥。
开启这些功能会不会有风险?安全——先运行 '/jev routing shadow':Jev 会决策并记录它将做什么,但不会真的切换任何东西,这样你可以在真正启用之前审查一整天的决策。
把交接/压缩交给 Jev 真的有帮助吗,还是只是省钱?会话交接后的实测召回率从 37.5% 提升到 58.7%,配合一次后续搜索则从 68.3% 提升到 75.0%;在选择保留哪些轮次上,它胜过简单的按新近度裁剪,所需问题从 11 个降到 4 个。
Creator
kerpopule
Size
3 MB
Stars
1.1K
Age
29d
Commits · 90 Days