tl;dr RAG and Jev have the same shape. In RAG, the developer decides up front what context the model gets. In Jev, the developer decides up front which options (including which tools) the model can pick from. In both, the model works inside a frame someone built in advance. Agentic models are the other design: the model works out from context what to fetch and which tool to use.

TypeSafe’s Jev is a model that doesn’t write text. You give it a state and a list of options, and it picks one with a calibrated probability. The more I looked at it, the more it reminded me of RAG.

RAG fixes the input

With RAG, the developer decides what the model reads before the model sees the question. You pick where the context comes from and how it gets fetched. That could be a vector index, a database query, an API call, or any other tool. The model then does its work on whatever arrives.

Jev fixes the output

With Jev, the developer decides what the model can answer before the model sees the state. For tool use, that means I list the tools that could apply in a given scenario. Jev doesn’t write strings, so I also decide how each tool gets called, by listing the arguments as options or extracting them in code.

One fixes the input and the other fixes the output, but it’s the same design. The model works inside a frame the developer built in advance.

Same trade

Both get the same things from this. The model’s job gets small, so it’s fast and cheap. The behavior is predictable, because nothing happens that wasn’t in the frame. And both hand the same step to the developer: working out what this situation needs.

The other design

Agentic models keep that step inside the model. The model gets a general toolbox once and works out from context which tool to use and how. It reads the result and decides again. That makes it the counterpart to both RAG and Jev: what RAG fetches in advance, the agentic model fetches when it finds it needs it, and what Jev picks from a list, the agentic model works out for itself.

RAG didn’t go away when agentic models showed up. Each one fits a different job. I expect Jev and agentic models to split the same way. When I can write the options down, Jev fits. When finding the options is the task, that’s a job for the agent.

Parting thoughts

One case that readers might bring up is when an agentic model uses Jev as a tool to make better decisions among different options. This could imply that Jev models reality better than agentic models. It is worth exploring.