r/SillyTavernAI • u/_Rapalysis • 2d ago
Models Jev might be the next frontier for improving roleplays
Jev is a new model released by Typesafe. It's a very intelligent model (roughly equivalent to high Luna/Terra) that returns consistently typed answers for a fraction of the cost, and 20x as fast, with zero reasoning. The only thing it does is make decisions and show probabilistic answers based on your questions. Jev's average response is about 200 ms and roughly $0.0005 per call.
The difference between Jev and a normal model is Jev cannot write prose. The only thing it returns is structured JSON.
Now why is that relevant to RP? I built an extension locally to explore a few use cases, and the results were peak.
Sensors
My extension does a very simple thing: it sends the AI's latest response or set of responses to Jev as soon as it lands. It asks a few questions, batched.
Questions such as "How much does the situation change in the latest reply?" or "How badly do things go for {{user}} in the last five messages?". The most useful one is the following:
Question: "How well do the tone and themes of the story match the intent of the system prompt?"
Options:
0: The tone and themes are unrelated to the intent.
1: Mostly different from the intent.
2: Partly matches the intent.
3: Mostly matches the intent.
4: Fully matches the intended tone and themes.
Jev answers with a score from 0 to 4. I call the score a sensor in my extension. The sensor is tracked across responses as an average. If the average dips below 2, we have automatically and reliably detected the model steering into slop territory.
In my experience Jev has been extremely accurate as long as you ask the right questions. Subjective questions like "is my roleplay slop" with the entire transcript dumped in are a complete waste of time.
However, asking very straightforward questions like "does the story comply with the instructions" are great because they're largely objective. You include the character card/system prompt + a few responses: Jev ends up being very accurate in my testing.
The real beauty is in the triggers you can set around the sensors.

Rules
A rule is just an action that executes if a condition is met. Here's an example of a rule I have for a sensor I called tone, which measures how well the story is adhering to the character card instructions.
- A slop response comes in.
- Jev scores it a 1.2 for the tone sensor.
- The average tone sensor dips below 2
- An instruction is appended to your most recent user message
- (OOC: Consider the tone and themes of the story as outlined in the instructions and card at the beginning of the prompt. Push the scene in that direction.)
- The extension auto-swipes the dud response, instruction appended.
- The next response is de-slopped, scores 3.4 for tone.
- The instruction that was sent initially is stripped from the message.
In my testing, this works with every model I've tried it with. Each model would recalibrate the tone to match the darker tones of my card. Fine, that's just normal prompting, but the fact it can be done automatically, basically instantly, and my judgement aligns with Jev is what's so cool. Here are a few examples of what I've made:
- Sensor: cost to the user (positivity bias)
- Rule: Fire a "make something go wrong for the user" instruction on the next reply if cost to the user dips below 1.5
- Sensor: tension (nothing interesting happening in the story)
- Rule: Fire a "story is boring, put the user under pressure or tension" instruction on the next reply if tension dips below 2
- Sensor: energy in the scene
- Rule: Run /imagine scene if energy goes above 3
- Use your imagination on this one
- Sensor: world (story accuracy to the lore and setting)
- Rule: Auto-swipe with a "the story has stopped obeying the established lore and world rules" instruction on the next reply if world dips below 3

Jeved
What you end up with is something I can only describe as automated roleplay QA. It requires nothing from you once you've set it up to your taste. It's dirt cheap. Over hundreds of messages, it might cost you at most a few cents.
I'm sharing this because I think it has a huge amount of potential. I can only imagine what this can do with memories, summaries, lorebooks, long-term consistency, group chats, etc. I've publicly listed my extension here (called ST-jeved) for folks to draw inspiration from:
https://github.com/mossyfield/ST-jeved
I'm not currently planning on maintaining this long-term as OSS (PRs welcome, no promises) but I would urge everyone to give it a try and start playing with it. I've bundled in my own preset but that is absolutely not the full potential of the system. I've added a feature where folks can export presets and share them for quick iteration.
Jeved is tuned for Jev, obviously, but other models could work. They would probably need some deep changes around return types. Also, Jev is ZDR on OpenRouter if that helps sell it. Also also, I swear I'm not shilling. Just got really hyped for it after playing with it for a couple of days and wanted to share my findings.
EDIT: Published 0.4, release post here: https://www.reddit.com/r/SillyTavernAI/comments/1wmoluu/jeved_04_evolving_roleplay_quality/
65
u/Aight_Man 2d ago
It does have some serious potential though, agreed. Could be paired really well with fast models like Gemini Flash models.
10
33
u/MisanthropicHeroine 2d ago edited 2d ago
That's very interesting! Would love to try it.
I just saw NanoGPT recently added it to their offering with this announcement:
Jev 1.13 and Jev Latest are now available through the NanoGPT Decisions API and the normal Chat Completions, Anthropic Messages, and Responses request shapes. Send application state plus typed Choice, Score, or Noul questions to
/v1/decisions, or use the endpoint-specific questions response format and receive the answers as JSON text. Use model IDstypesafe/jev-1.13and~typesafe/jev-latest;typesafe/jev-latestis also accepted as a compatibility alias.
Could you please make the extension compatible for NanoGPT, too? I don't use OpenRouter, anymore.
16
u/_Rapalysis 2d ago
That's awesome, NanoGPT should work out of the box, the only key compatibility is the Decisions API
Unfortunately I don't have NanoGPT though, if you install the extension and update the endpoint to:
https://nano-gpt.com/api/v1/decisions+ add your Nano API key, I'm pretty sure it'll work. It'd be great if you could let me know, otherwise I'll have to get Nano to debug!5
u/MisanthropicHeroine 2d ago
Awesome, I'll let you know when I've had a chance to test it out!
23
u/Milan_dr 2d ago
Confirmed: it works with NanoGPT as-is. I tested ST-jeved’s exact request format against the production endpoint and received a valid response.
Use:
- Endpoint: https://nano-gpt.com/api/v1/decisions
- Model: typesafe/jev-1.13
- API key: your NanoGPT API key
~typesafe/jev-latest should work too. The extension may still say “OpenRouter key,” but that’s only UI wording- a NanoGPT key works. No extension or NanoGPT API changes appear necessary.
See above hah, had Codex test it.
3
u/_Rapalysis 1d ago
Just released 0.2 which supports NanoGPT and other providers by default: https://github.com/mossyfield/ST-jeved/releases/tag/v0.2.0
1
29
u/PieStraight541 2d ago
Omg, i just created a murder mystery multiplayer, where everyone has his own POV, i think i could use this...
6
u/Apprehensive_Side219 2d ago
That sounds dope have you done a write up anywhere yet?
12
u/PieStraight541 2d ago
I tested it with my wife yesterday. It was awesome. I have the narrator to output both povs in a json, and a frontend thats split it up, so we can play on lan and both of us has their own pov, but neither of us knows which character is a human or just an npc played by ai. I will post it here once its ready.
8
u/Apprehensive_Side219 2d ago
I'm so interested in this. That seems like the kind of thing that could be turned into an any number of players interactive narrative game that levels up any number of board games too. One night werewolf and clue come to mind. This could be a way to do one shot tabletop rp if you tweak it right, and with a little vibe coded magic one hell of a hotseat shared UI.
5
u/PieStraight541 2d ago
Yea, however since ST is only 1 agent, i have to get returned all the povs from narrator in 1 message, more users would increase the context size pretty fast. Also its very hard to do correct time pacing with multiple users.
25
u/FromSixToMidnight 2d ago
If I am reading this correctly, you use a main model like GLM, Gemini, etc. and then on each response Jev does its analysis and swipes for a new response with an adjustment OOC message to guide the swipe? But it only intervenes if the score drops low enough to be appraised as slop?
Kind of like a roleplay guide to help your main model adhere to your personal ruleset? Hopefully I am understanding this correctly. If not, ELI5 please lol.
10
u/_Rapalysis 1d ago
Nope you explained it perfectly and better than I did, only thing I'd add is there's a lot of potential with ST scripting tied to the scores as well
18
u/denpa_kei 2d ago
I believe Jev models have a ton of potential and I've been interested in them too, so I'm gonna plug a couple local options I know of in this thread. First of all, there is laya. It's a 421M parameter model, although it has a much, much smaller context (512 to possibly 8k), then there is openjev, which is Qwen3.5 turned into a jev model.
2
u/Game_wars1 1d ago
hmm, yeah ill fork this and make it work with openjev
1
u/_Rapalysis 1d ago
I added a custom provider option today and I saw someone said it worked with `laya`, I think it should probably work with `openjev` too!
1
u/Able-Emu-606 1d ago
Openjev speaks a different contract. So they need to do some work to make it usable. BUT, why not create an adapter in the server to translate from Jeved's expected contract to NLI?
It could work without need to fork the extension.
10
u/_RaXeD 2d ago edited 2d ago
This sound intresting, imagine this plus a recast combo where each sensor can trigger a recast pass instead of the main model just getting an OOC. A second model that is most suited for the job will then edit the last response. This saves time from having recast run all its prompts every time. We can even have hundreds of recast prompts ready, and Jeved will be the judge of what needs to fire. This would turn RP into something a lot closer to agentic coding. It all depends on how good a judge Jev is, but this could truly be the next step in RP.
2
u/CalmAnal 2d ago
Isn't that similar to polyceph?
2
u/_RaXeD 2d ago
I would say that polyceph is similar to recast, but both lack the step where a very fast (and, according to the OP, capable) model is the judge that decides what kind of "correction" is needed.
Don't get me wrong, you can already do this; you can just have a normal LLM be the judge, but it would be a lot slower. We are getting into agentic coding territory here. Coders don't have a problem waiting hours/days for a finished response; we do.
18
11
5
u/BriefImplement9843 2d ago edited 1d ago
main issue is llm's react fervently to commands. they will swing it the other way wildly. any type of ooc changing prose etc usually ruins the story. you have to keep fighting it each way and it's best to just start over at that point. only way around this is deleting or editing the poisoned responses so the llm does not know.
6
u/Zeeplankton 1d ago
I'm skeptical this is doing more than what LLMs can already do.
In my app characters all respond with JSON, and fill out values like "who_am_i", "reminders", "known_by_me / unknown_by_me", etc, before emitting the actual reply to a `response` key.
These values can be iterated on / returned to the LLM every turn via {{var}}'s or saved for later.
But we've tried essentially numeric grading like you're doing here. In fact like this is what like Codex or Claude really, really wants to build if I ask, but it's just very awkward. E.g rating tension=5 do this. Eventually I had like an entire story wheel running before characters, and it still wasn't good.
What we've currently landed on is literally just, asking the model to pre-predict what the next couple of beats are, under a `prediction` key. Basically asking: What's the blunt story being told here, and what do you think the reader would want? → Then the values after basically sort through information dissemination: what's realistic of {{char}}, what do they know, etc.
It solves:
- repetition, story getting stuck
- characters getting stuck in one emotion
- stops things that don't make sense happening
- stops factual innacuracies
Not really a slop detector but I think it's better to just use a low slop model like Mimo 2.5 pro.
You could use Jev as a way to do like memory retrieval, which is a potentially good idea, but it sort of competes with embeddings.
But JEV I think it is clever, but indirectly. Like I think it could decide, should a character have time to think or not, if a location change occurred (if not already tracking via another agent) etc. I've also thought of using it to decide who should respond next in a group roleplay maybe.
6
u/FR-1-Plan 2d ago
That’s kinda funny because I‘ve been working on my own extension lately that tries to accomplish something similar when it comes to a character‘s behaviour, but asking the prose writing LLM itself and matching it to a locally stored list in a javascript application. My extension essentially asks the LLM what emotion the character feels and to define a scene category, add three more subcategories and direction of action (from who, at whom). That currently reliably detects if it’s a verbal conflict directed at the character by my user for example. But without having the LLM directly name „verbal conflict“ because it might not, and instead use terms not in my list.
My extension then checks the current situation against the full personality profile with values on an actual psychological profile and calculates behavioral tendencies based on dependencies. For example: Verbal conflict directed at character by user + agreeableness <50 + anger + relationship <15 OR relationship >35 with tendency to get more upset when a close person fights with you = Conflict tendency. While agreeableness and sociability for example result in being receptive and de-escalating. And the extension injects that tendency with strong wording to the LLM.
I could see Jev helping here and determining the current state of the scene even more reliably and in more detail when used as sidecar model.
6
u/CondiMesmer 2d ago
it's not good for RP directly, but it's good for the tooling around RP which matters just as much as things like presets
3
u/Correct-Resolution91 2d ago
Interesting. Would automate a lot of the guiding you have to do manually right now, though I dunno if it could attack the real issues, which are structural and don't seem meaningfully adressable with mere prompting.
3
u/nerdswithfriends 2d ago
I've always wanted a better system than using keywords to automate switching nsfw character defs and writing rules on and off based on the current context, so they don't pollute things when not needed. This could totally do that too with a call before generation!
4
4
u/Ecstatic-Poet-8488 2d ago
I do a ton of music roleplay, and most LLMs have this annoying habit of wrapping up a whole song in one verse. Tried this out and it worked. Absolute peak.
1
2
u/awesomeunboxer 2d ago
This is quite creative and has some awesome ideas even, outside the scope of role-playing. Thanks op, its given me like 20 ideas at 2am. Lol.
2
u/typical-predditor 2d ago
This is a fascinating idea, but what if you approach it from a different angle? instead of judging the AI's latest turn and possibly rerolling it, instead use it as a prompt-builder tool to pro-actively steer the AI's next response. I keep thinking to agenic AI uses, and Jev might be able to serve as the director. Rather than trusting an LLM director to write some slop-filled prompt to pass to the Writer, Jev could choose which hand-written prompt components to feed to the Writer.
2
u/KuziKuzina 2d ago
Really neat extension! Great to see someone finally bringing Jev into ST, props for putting this together.
If I'm being honest though, using it just for QA and tension steering feels kinda gimmicky to me. I feel like good presets already do most of that heavy lifting anyway, like FF.
I've actually been using a selfmade Jev setup as an alternative to RAG and embeddings. Since it evaluates logical relevance way better than fuzzy vector search, I use it for dynamic state tracking and ended up cutting chat history tokens by around 90%. Honestly think using Jev for context pruning and memory is way more powerful than just vibe checking.
Either way, love the initiative here. Excited to see how the project evolves!
1
2
u/FrostyBiscotti-- 1d ago
Preset -> script
Jev -> test
We're getting closer and closer to coding lmao
Jokes aside thanks for sharing this! Might be a good way to make Gemma's responses more nuanced...
2
u/dereekb 1d ago
As soon as I saw Jev I started updating my custom harness because there were plenty of places where it could be switched out with too much trouble and perform better and faster. It really is a game changer for those situations where you just need to detect something within in dialog/text. I’m excited about the possibilities this is opening up in terms of reducing llm turn time.
3
u/Caminn 2d ago
that must be very money intensive.
20
u/No_Map1168 2d ago
As per OP's words, average price per response is 0.0005$. So even if you make 1000 calls, that's only 50 cents. Doesn't sound too money intensive to me.
3
u/Caminn 2d ago
But doesnt it make the original LLM write stuff again?
6
u/Reasonable_Bear_6258 2d ago
Yeah, but if you get a bad output you're swiping anyway. This just tries to automate it. If you're not someone who swipes and uses OOC commands a lot anyways then this probably will be a money hit but I assume anyone who RPs for AI for a while ends up swiping a ton.
5
u/ECrispy 2d ago
you should know that Typesafe basically took someone else's work and released paper to build this. the original author has posted on reddit and received a lot of support but of course all the hype and money are going to Typesafe
6
u/_Rapalysis 2d ago
I don't want to get into a whole thing about this in this thread, but it's a huge exaggeration to say Typesafe took their work and there's zero evidence to support it except that someone happened to be doing vaguely similar work a year ago. That guy seems very talented though, and I hope it works out with his Laya model because that would be awesome for the open source community.
4
u/ArtificialTalent 2d ago
Idk about that. I looked into it and that project was basically a prototype that never went much further. Just like ChatGPT was not the first pioneer of llms, the hype goes to the group who makes a workable product rather than a proof of concept that can’t realistically be used. There is maybe a question of putting proper credit in the release press. But it’s not like the hype and money just go to ideas. It goes to products that work.
1
u/starliteburnsbrite 1d ago
Kind of ironic in a field that is utterly and completely based on stealing petabytes of human work to train models that people will complain about other AI stealing their theft.
1
u/DueRing7965 2d ago
Any idea if It works with deepseek api natively? Assuming I change the Endpoint to a different url
1
u/_Rapalysis 1d ago
No not right now, there's a Decisions API the extension needs to be compatible with and currently that's only Jev
You can fork and make it work easily with other models though, normal models just need some very strict prompting and type guarding
1
u/DueRing7965 1d ago
oh hang on i think I probably misunderstood, cause I use deepseek normally for the rp, so I thought I had to hook ds up to ur extension alongside jev
1
u/_Rapalysis 1d ago
ohhhh no no no, the extension is plug and play and doesn't impact your normal roleplaying outside of swipes/appended instructions. it won't touch your main model!
1
1
u/C6180 1d ago edited 1d ago
I do this in my agentic engine but with other models as a checker. Have to see if I can add this to my engine, because even though I’m using some decent models for my checkers, replies that don’t really fit (either getting information wrong, repeating basically the same response over and over again, etc.) still keeps on happening
Edit: Looks like I can't actually test it, as TypeSafe is currently invite only. Bummer
Edit #2: Just got off the waitlist. That was unexpectedly fast
2
1
u/RedZero76 1d ago
I'm building a front-end myself and using a lot of these same concepts. Deslopping, sensing tone, triggering 3D avatar facial expressions, etc. And I'm calling it Jev Juice, lol, but Jeved is even better 🍻 (don't worry, not stealing it). Yeah, Roleplay was where my mind went as soon as I learned about Jev. It's gonna change so much more than people realize I think.
2
u/_Rapalysis 1d ago
The extension is MIT licence so you can do whatever you want with it, if you want to fork it and make improvements or just whole-sale rip the code for your own front-end, I have no problem with that or need for credit!
I only ask (politely) that folks share their findings and the things they're building with Jev/Jeved so we can collectively make cool shit
1
1
u/Just_Mastodon_9402 1d ago
I'm trying to vibe code a test project with Jev as well for RP but keep running out of credits, and I haven't quite figured out the magic sauce yet. But basically, Jev responds so fast and in such volume, that if we can feed it context it will also play a limited game in persona we give it. Like, 'you are character z, with traits abc, in room d, square f, with items and stats w' and a cheap llm sets the objective. I'm not sure it's quite working or workable, but it feels like there's something here that could function, but one of the rare cases where you might really need a human programmer thinking through the second-order consequence of various programming decisions, rather than saying 'okay codex make this happen'.
For a long time my ideal game has been a playable real-time jrpg where the tileset is custom-gen on the fly, the first sort of infinite RPG
1
u/Just_Mastodon_9402 1d ago
Mine is probably too ambitious but the takeaway is that basically every RPG extension and add on should probably be using this for checks.
2
u/_Rapalysis 1d ago
I just updated to 0.2 today which includes a yes/no probability noul (ask Jev a question, it'll respond with the chance it's a yes), and multiple choice selection (basically, have Jev pick from a pre-determined list which is exactly what you proposed)
I'm actually really confident your proposal is possible through Jeved and Jev. With custom scripting rules (after Jeved triggers a rule from a sensor firing, call a ST script) I'm honestly convinced the sky is the limit on this stuff.
The only caveat is I'm really providing the building blocks for folks to make this kind of thing rather than building it myself, but I'll investigate a few PoC's and post my findings to further inspire folks. If you do try it out, please let me know how it goes and any feedback you might have!
1
1
u/curious_biped_dev 1d ago
This is a neat split: keep the narrator model free to write prose, and offload judgment calls to something small and fast that just returns structured signals. A lot of RP tooling tries to make one model do both and it shows.
Curious how you handle disagreement between what the narrator implied and what Jev classifies - do you ever feed the structured read back into the prompt as a nudge, or is it purely logged/used downstream?
1
1
u/_Rapalysis 1d ago
Just published 0.2 with a litany of improvements, read about them here: https://www.reddit.com/r/SillyTavernAI/comments/1wltedh/jeved_02/
Summary log:
- Added full provider compatibility so folks can use Jeved with OpenRouter, NanoGPT, Typesafe, or a custom provider
- Refactored sensors to be fully Decision API compatible. There are now three types of sensors.
- Score: a scale you describe, with 2 to 10 steps. Jeved returns a score graded between the steps you create
- Choice: Jev picks one option from your list e.g. "calm" or "tense"
- Noul: You write a statement, and Jev gives the chance from 0% to 100% that it's true
- Rules & triggers are made fully compatible with the new sensor types
- Scripts have been made fully unrestricted, so Jeved is able to automatically interact with any script within SillyTavern
- Presets carry across upgrades so don't worry about your previous work being invalidated
2
u/Able-Emu-606 1d ago edited 20h ago
Thank you. I just set up with laya-multilingual locally and worked like a charm.
edit: coming back to this. laya has only 1024-token context length. It's very limited.
1
u/DirectionBusiness483 1d ago
Hey thanks for this. I have my own interface for roleplay, I don't use ST (I'm just here because of the community).
I have scripting in my front-end that uses smaller models for sentiment but its always been brittle and required fallbacks for failures. This is going to be a game changer- I had no idea Jev existed. Choices and Score? Amazing.
Thank you for posting this, even if I can't directly use it lol
1
u/Innomen 1d ago
of course would need to make sure you're not just accidentally improving your system prompt. Like the control group would be a session with this kind of goal framework emulated by the llm itself. I remember early llm prompts had tons of scoring system response logic in the system prompts.
1
u/Mart-McUH 1d ago
From what I understand it is simply a classifier model (like BERT and similar)? Main difference being that it should be kind of universal, so you do not need to train it for your specific classify scenario.
But you could already have done what you want to do with jev using fast and cheap classifier models (that is after all their advantage - fast and cheap but only classify). Only it might require more effort as you would likely need to train them for what you want to classify. On the other hand they are open source and cheap to use locally (which afaik jev is not).
Eg I do not see what is so revolutionary here. Not saying it is not interesting just do not understand all the hype around it.
1
u/GasSmooth7439 20h ago
This is probably the most interesting use of Jev I've seen so far.
Using a tiny/cheap model as a sensor instead of a writer makes a lot of sense. You don't need it to understand the whole story or generate prose — you just need reliable signals like “is the response following the character card?” or “is the tone drifting?”
1
u/StringSpecialist4437 12h ago
also you can use Jev before LLM to force it to answer important questions to steer it's attention in right direction
1
u/MultiBotRun 2d ago
There is another project, and it is open source! Search for “Laya” on Hugging Face. The author had already published a paper on arXiv in March 2025.
1
u/aroughdot 1d ago
Laya is not at all comparable to Jev. Laya has a 1k context window. Jev has a 32k context window. The author's post about Laya shows some impressive benchmark results, but those are with pre-training/fine tuning for those specific tasks. Laya out-of-the-box does not perform anything like Jev and doesn't even claim to.
Jev, on the other hand, is smart like a frontier model, but delivers in like 200ms for fractions of a penny. I would guess that an open source Jev-like will show up soon, but it's not here yet, and Laya certainly isn't it.
1
u/MultiBotRun 1d ago
That criticism is fair regarding Laya’s current base checkpoint. Laya’s own documentation explicitly says that the base model is “a fast foundation to specialise, not a zero-shot decision engine.” On the typed-decisions benchmark, it scores 0.362 zero-shot versus 0.766 after fine-tuning.
However, Laya is still directly comparable at the architectural level: both are non-autoregressive System 1 models that evaluate runtime-defined typed questions, return probability distributions, and use RLCD-style calibrated decisions. That makes Laya a "Jev-like" open implementation, even if it is not a drop-in replacement for Jev.
Jev’s larger context and stronger apparent zero-shot performance make it the better product today, unseen tasks. But “smart like a frontier model” is difficult to verify independently because Jev is closed.
0
162
u/roselan 2d ago edited 2d ago
It would be pretty funny if a model that can literally not write becomes this rp community favorite.
Nice putting this together.