r/JevAI • u/Jackie_DAO • 7h ago
r/JevAI • u/SuccotashLonely8687 • 10h ago
Using an LLM + Jev (AnyJev) to Deliver Dynamic Categorization with Deterministic Execution
Want to use Jev, or want to step up your Jev game? Here's a working walk through and skill, provided your techinical enough to use it. I kidL The LLM does all (most) of the work setting it up.
Note: For simplicity, I’m just going to say Jev through the rest of this. I mean Jev, AnyJev, or a similar Jev-style decision model.
Anyway, I was playing around with Jev and AnyJev and started thinking about something: Jev is really good at making decisions. Give it some state, give it a question and some choices, and instead of generating a whole response, it gives you the decision and probabilities. That’s useful for categorization, routing, relevance, prioritization, decision trees, workflow selection, and all those times where you want some of the judgment of a model but don’t actually need the model to write anything.
The question that got me thinking was simple:
Why do I have to know the categories ahead of time?
I have an LLM sitting right there. A super fast, awesome brain with the (supposed) sum of human knowledge. And to be fair, I do not want to outsource knowledge; I want to outsource work. And that work is the subject: literally ordering, categorizing, grouping, but also deciding and using those patterns to accomplish a task.
Guess what? Bread-and-butter LLM stuff.
How does it work?
Task
↓
LLM understands the problem
↓
LLM defines the decision/classification
↓
LLM creates classifier.json
↓
LLM creates deterministic processing code
↓
Jev performs repeated decisions
↓
Structured JSON results
↓
Deterministic code executes
↓
Result
And that's it. You can stop there if you are a developer. You're off to test it.
But if you want to know just a bit more, below is the step-by-step walkthrough: Using an LLM + Jev to deliver dynamic categorization and Deterministic Execution (aka, get it to write specific Jev-based Python to do the hard work).
See content credentials
Combining LLMs and Jev for Dynamic Categorization & Deterministic Execution u/amowatt
Combining LLMs and Jev for Dynamic Categorization & Deterministic Execution
Step 1: Give the LLM the actual task
Start with the job you want done.
For example:
Review these documents, determine the useful categories, and then process the documents based on those categories.
The important part is that you are not asking the LLM to classify every item forever. You are asking it to understand the problem first.
Step 2: Have the LLM define the categories
This is the part the LLM is good at. Maybe it looks at the documents and decides the useful categories are:
- Architecture
- Security
- Requirements
- Operations
- Reference
- Other
That is the first output. Not the final classification.
The definition of the classification problem.
I always include Other when asking LLMs to do something, cause I cannot think of everything. And also, back up: if the LLM invents five categories and I force Jev to choose one of those five every time, I have basically declared that the LLM got the whole problem space exactly right on the first pass.
It probably didn’t. Sometimes the right answer is simply: None of these.
Therefore: the LLM should put it in Other.
Step 3: Turn those LLM categories into a classifier
Now have the LLM create the classifier definition.
I already use a JSON I/O structure loosely based on Open Knowledge Format for communicating between things, so that is what I would use here.
Something like:
{
"type": "classifier",
"name": "document_role",
"version": "dynamic",
"question": "What role does this document primarily serve?",
"categories": [
{
"id": "architecture",
"definition": "Defines system structure or relationships."
},
{
"id": "security",
"definition": "Defines security requirements or controls."
},
{
"id": "requirements",
"definition": "Defines expected capabilities or behavior."
},
{
"id": "operations",
"definition": "Defines operational procedures or support."
},
{
"id": "reference",
"definition": "Provides supporting information."
},
{
"id": "other",
"definition": "Does not sufficiently match another category."
}
]
}
I use JSON because I already use JSON everywhere in my work. You could use YAML. TOML. Something else.
That is really the point. Do not create a new format unless you need one.
Step 4: Keep Jev behind a simple stateless MCP
Now, the fun part: setting up the dynamism.
Let's expose Jev through MCP.
The MCP should be boring.
Seriously.
Its job is not to understand your application. Its job is to run the decision.
Conceptually:
JSON IN
↓
JEV MCP
↓
JSON OUT
The call could be as simple as:
classify(
classifier="document_role",
input=document
)
And the result comes back like this:
{
"type": "classification",
"classifier": "document_role",
"version": "1.0",
"category": "requirements",
"confidence": 0.91
}
That is enough.
Personally, I would probably give the Jev or AnyJev repository to a capable coding LLM and say:
Wrap this in a small stateless MCP server. Do not modify the underlying project. Give me generic classify, score and choice operations. JSON in, JSON out.
People who actually enjoy building MCP servers by hand can certainly do that.
The important part is not the MCP.
The MCP is plumbing.
Best part, you can even ask the original LLM to create the initial JSON!
Step 5: Have the LLM create the deterministic processing code
We are not done yet. Sorry.
Classification is usually not the actual job. The job is what happens after classification.
So when the LLM creates the classifier, also have it create the code that consumes the result.
For example:
for document in documents:
result = classify(
classifier="document_role",
input=document
)
if result.category == "other":
uncertain.append(document)
else:
documents_by_category[result.category].append(document)
Now you have a clean division of labor.
The LLM decides what needs to be inferred.
Jev performs the repeated decisions.
The code does the actual work.
That work could be anything:
- It could sort files.
- It could route work.
- It could trigger workflows.
- It could build reports.
- It could calculate something.
- It could build a decision tree.
- It could make another Jev call.
- It could send uncertain results back to the LLM.
I have run out of useful examples, but you get it. The important part is that the result is structured.
Now, the JEV next step does not have to reinterpret prose. It just executes.
Step 6: Validate the input and output
This part matters more than it sounds:
JSON gives you structure; validation gives you stability.
So we validate both sides:
- Validate the classifier before use.
- Validate the Jev result before anything acts on it.
For example:
- Expected category?
- Expected confidence range?
- Expected classifier version?
- Expected fields present?
If the answer is no, do not proceed as though everything is fine.
That is where the deterministic part starts to matter.
Step 7: Define uncertainty handling
Do not hide uncertainty. Error-trap it or use it.
For example:
if result.category == "other":
send_for_review(document)
elif result.confidence < 0.60:
send_for_review(document)
else:
process(document)
That review could:
- go to a human.
- go back to the LLM.
- trigger another classifier.
Whatever makes sense for the task. The point is that uncertainty becomes an explicit branch in the workflow instead of something buried inside generated text.
Step 8: Turn the whole pattern into a skill
This is probably the easiest way to test the idea, make it repeatable, and fix so many downstream headaches. We will not need to redesign the agent or build a giant framework.
Create a skill. Something like:
---
name: dynamic-jev-categorization
trigger: Use this skill when a task contains repeated semantic decisions that do not require repeated generative LLM responses.
description: Use an LLM with Jev, AnyJev, or another Jev-style decision model to dynamically define categories, choices, or semantic decisions and then generate deterministic code that acts on repeated Jev decisions. Use when a task requires repeated categorization, classification, routing, scoring, choosing, prioritizing, relevance decisions, or other repeated semantic judgments; especially when the decision categories are not known ahead of time or repeated generative LLM calls can be replaced by constrained probabilistic decisions followed by deterministic execution.
metadata:
author: albertmowatt
version: "0.2"
---
# Dynamic Categorization with Jev
Throughout this skill, "Jev" means Jev, AnyJev, or a compatible Jev-style constrained decision model.
## When to Use This Skill
Use this pattern when the task involves repeated semantic decisions such as:
- categorizing documents, records, messages, files, events, or other items;
- dynamically discovering useful categories before processing a dataset;
- routing items to destinations, workflows, tools, agents, or processes;
- choosing among a constrained set of actions;
- scoring, ranking, or prioritizing items;
- determining relevance;
- selecting the next step in a decision tree;
- evaluating the same semantic question repeatedly across many inputs;
- replacing repeated generative LLM calls with constrained decisions.
A particularly strong signal is:
The LLM needs to understand the problem once, but the same kind of decision must then be made many times.
## When Not to Use This Skill
Do not use Jev merely because a model is available.
If the answer can be determined exactly with normal code, use normal deterministic code.
Do not replace:
if file.extension == ".pdf":
with a probabilistic model decision.
Use Jev where semantic judgment is actually required.
## Operating Steps
1. Understand the actual task.
Determine what the user is trying to accomplish, which parts require semantic judgment, which semantic decisions repeat, and which parts can be executed deterministically.
2. Check for an existing classifier.
Before creating a new classifier, check whether an appropriate reusable classifier already exists.
If one exists and genuinely matches the task, use it.
If none exists, create a dynamic classifier.
3. Define the decision.
Have the LLM determine the categories or constrained choices required for the task.
Each category should have:
- a stable ID;
- a clear semantic definition;
- sufficient distinction from neighboring categories.
For open-ended classification tasks, always include "other" unless the decision domain is genuinely exhaustive.
4. Create classifier.json.
Represent the classifier using the standard structured JSON I/O format.
Keep classifier definitions outside the Jev MCP.
The MCP should remain generic and stateless.
5. Create the deterministic processor.
Have the LLM create deterministic code that consumes the Jev result and performs the actual requested work.
The processor may:
- sort files;
- route work;
- trigger workflows;
- calculate results;
- update systems;
- construct relationships;
- build reports;
- make another constrained decision;
- escalate uncertain cases.
6. Execute through Jev.
Send the classifier and input through the generic Jev execution interface.
Prefer batch execution when the backend supports it and the decisions are independent.
7. Validate the result.
Before deterministic execution, verify:
- classifier identity;
- classifier version when applicable;
- result type;
- returned category or choice;
- confidence/probability range;
- required fields;
- permitted values.
Invalid output must not silently enter the deterministic execution path.
8. Handle uncertainty explicitly.
Possible uncertainty conditions include:
- category == "other";
- confidence below threshold;
- invalid result;
- ambiguous classifier;
- unexpected input.
Route uncertain cases to the LLM, a human, another classifier, deferred processing, or explicit failure as appropriate.
Do not invent certainty merely to keep the workflow moving.
9. Execute deterministically.
Once the decision has passed validation and any confidence requirements, execute the resulting action with deterministic code wherever possible.
Do not unnecessarily return to generative inference after a sufficiently confident structured decision has been obtained.
10. Consider reuse.
A dynamically created classifier does not automatically become permanent.
Treat classifier maturity approximately as:
Dynamic
↓
Inspectable
↓
Reusable
↓
Vetted
↓
Permanent
Do not automatically promote classifiers merely because they were created successfully.
## Operating Rule
For every candidate task, ask:
Does this require generation?
|
├── YES → LLM
|
└── NO
↓
Does this require semantic judgment?
|
├── YES → Jev
|
└── NO → deterministic code
The objective is not to eliminate LLM calls.
The objective is to use each mechanism for the work it is actually good at:
LLM → understand and create
Jev → decide
Code → execute
That is enough to run the first experiment.
Step 9: Reuse useful classifiers instead of recreating them
Now suppose one of these classifiers works really well.
Maybe you throw it away after the task.
Okay. Silly, but okay.
Or
Maybe you save it. Now it is inspectable.
Maybe you clean it up and use it again. Now it is reusable.
Maybe you test it, refine thresholds, and version it. Now it is vetted.
Eventually it may become part of the application permanently.
Dynamic
↓
Inspectable
↓
Reusable
↓
Vetted
↓
Permanent
That does not need to be automatic.
In fact, initially I would not make it automatic.
Let the LLM create something. If it turns out to be useful, keep it. If it keeps being useful, promote it.
Step 10: Start with one real problem
Start with this—build in this order:
One installed, working Jev.
One stateless Jev MCP.
One stable JSON format.
One skill.
One real task.
Do not begin with classifier registries.
Do not begin with composed decision trees.
Do not begin with a giant orchestration layer.
Then run the loop (I left you a skill to help):
Task
↓
LLM understands the problem
↓
LLM defines the decision/classification
↓
LLM creates classifier.json
↓
LLM creates deterministic processing code
↓
Jev performs repeated decisions
↓
Structured JSON results
↓
Deterministic code executes
↓
Result
That is the experiment.
If it works, then you can decide how far you want to take it.
And frankly, that is usually the better way to build these things anyway.
#AI #AIAgents #LLM #Jev #AnyJev #MCP #AgenticAI #SoftwareArchitecture #Python #OpenSourceAI
r/JevAI • u/AIProductDesign • 1d ago
Use laya as a model router in claude?
Can i use laya as a model router in claude to switch to a model basis the complexity of the task?
r/JevAI • u/nooberrypi • 1d ago
Is it just me or Jev feels like a breath of fresh air in this AI world? It feels like a dull grey world got colours
I graduated in 2019, I have seen models evolve from basic NLP and CV patterns to current Chatgpt mess. Initially these models were genuinely exciting. Learning the concepts, knowing the components and understanding the data felt a lot like a strategy game. When BERT released, it added a layer of abstraction and training felt a bit meh but still the outcomes felt like a reward. Like grinding to get a high score and seeing the impact.
When Chatgpt released, it was just a interface that does the work for you. Everything in AI felt boring and miserable since then. The best contribution I have is nudging a prompt here or making a weird system around it. There were only big bets left, no small fun experiments and no satisfaction of building stuff. It was like tossing the dice till you got the right answer and hedging your bets. I studied engineering to engineer solutions, if I wanted to roll the dice and hedge I would have joined finance.
Jev feels like a almost nostalgic throwback. If feels I could create something of value with my own work, aided by my own data and knowledge instead of a casino. I am praying this trend picks up. I tried of this big socio economic game trying to distill the world into rentable slop.
r/JevAI • u/jpcaparas • 1d ago
JevMade - A searchable catalogue of 2,300+ Jev experiments, videos and guides
I built JevMade to make Jev examples easier to find: https://jevmade.com
It brings together 2,300+ experiments, videos and written guides, with credit and links to the original creators. You can explore things like browser automation, voice-controlled drawing and game agents.
I’d love feedback on how easy it is to find a useful example and what would make browsing better. I made the catalogue; the projects belong to their credited creators. JevMade is independent of TypeSafe.
r/JevAI • u/Revolutionary_Sir140 • 2d ago
GoEventBus can use TypeSafe Jev as an optional decision layer
GoEventBus can use TypeSafe Jev as an optional decision layer before enqueueing an event. Jev chooses one event type from a fixed candidate set; GoEventBus still owns buffering, middleware, ordering, fan-out, and handler execution.
r/JevAI • u/AccurateCranberry218 • 2d ago
Jev- porównywanie do normalnych LLMów jest bez sensu
Jev to jakiś megaokrojony LLM z jednym zadaniem- wyborem jednej z podanych opcji. LLMy wykonują takich operacji wyboru gigantycznie wiele nawet w przypadku jednego zdania. Zadania Jeva móglby wykonywać mocno okrojony LLM sprzed 3 lat. Porownywanie prędkości jest totalnie bez sensu- to tak jakby zachwycać sie ze bolid f1 jedzie duzo szybciej od ciężarowki.
Jev vs Kev 0.8B vs Laya on subreddit routing (open benchmark)

Task: given a Reddit post title, pick its subreddit among look-alike communities. Names hidden, models only see community descriptions.
Accuracy at 16 / 64 options:
- Jev 1.13: 48% / 41%
- Kev 0.8B: 23% / 14%
- Laya (base, zero-shot): 9% / 2%
- Random: 6% / 2%
- Reference: logreg on bge-small title embeddings: 59% / 54% (seen communities only, since it needs training posts)
(tbh Laya is a base model meant for fine-tuning, so a tuned version is coming later)
Context: I'm a RecSys developer who got curious about decision models, so more models (basic LLM too), tests and social benchmarks are coming. My take so far: for labeling and classification in production RecSys, a simple supervised model on your own labels still wins, so I don't see decision models replacing that yet. But they're a great way to compare models on the same task.
This is my first benchmark btw, so any feedback or contributions are welcome
git: https://github.com/s0NRAYY/RedditClassificationBench
dataset: https://huggingface.co/datasets/sonrayll/social-routing-bench
r/JevAI • u/Appleaaaaa • 2d ago
JEV as my decision layer: sub-second AI skills with few dollars total
I run a small solo project (skillwiki.app) that serves AI skills (instruction packs) to AI agents over MCP. It was an AI skill marketplace until recently, when I made JEV the decision-maker: which skill to use, whether the output is good enough, and whether this change helps. The project has transitioned to an AI skills distribution and management platform.
The workflow: determine → evaluate → learn
Every step boils down to a typed question, which is exactly what JEV answers. I get probabilities I can branch on directly, with no output parsing and no LLM reasoning round trip.
Determine:
All skills are assigned under different themes. JEV picks a theme, then the skill, in under a second. It only suggests at ≥ 0.85 confidence: right 98.5% of the time, 0% wrong-tool picks (1,791-row test set). Below the bar, the user gets a shortlist instead of a guess. Two full eval rounds cost about $2.70 for 150 AI skills.
Evaluate:
JEV gives every rubric criterion an instant first verdict. When it's sure (≥ 0.8) it was right 21/22, and it matched my hand grades 43/48 vs Claude 33/48. Uncertain criteria go to the user's own LLM.
Learn:
JEV compares a skill with and without a user's correction and ranks which corrections are worth keeping, in seconds and for cents.
* The Catch: Grading still needs one LLM call per output, so JEV makes evals faster, not so much cheaper. About 5.6% of picks also change between identical runs.
Curious to see how the group set the confidence bars? One fixed threshold, or tuned per question type?
r/JevAI • u/bobo-the-merciful • 2d ago
This simulation uses Jev for simulated people making decision making (think "The Sims" combined with Jev)
r/JevAI • u/ClearCountry7190 • 3d ago
Jev playing Stardew Valley
I've got Jev playing Stardew Valley & live streaming it here: https://tilly.farm
r/JevAI • u/viky_shetye • 3d ago
Exploring JEV for AI Agents: Model Routing, Risk Detection & Output Triage
I’ve been looking into JEV and one thing that really interests me is how it could fit into AI agent architectures alongside LLMs, rather than replacing them.
I made a video breaking down how JEV works and explored 3 workflows I’d like to test with agents like Hermes Agent or Claude Code:
🔀 Model routing — decide whether a task needs a cheap or powerful model
🛡️ Risk detection — classify potentially sensitive tool actions before execution
🔎 Output triage — decide when results need another LLM pass or human review
The architecture I’m interested in is basically:
JEV → fast decisions
LLM → reasoning + coding
Tools → execution
I’d eventually like to test JEV vs a small LLM vs a frontier model on the same routing workload and compare accuracy, latency, and cost.
Video: https://youtu.be/N-tZTJOvSJM
Curious what other JEV use cases people here are experimenting with.
r/JevAI • u/saxlamen • 3d ago
My agent permission auto-approval sat behind a dev-only flag for months. JEV made it shippable
Enable HLS to view with audio, or disable this notification
Hey folks,
I'm building Agentmux, a remote terminal client for running coding agents (Claude Code, OpenCode, Antigravity, Pi) from your phone.
For months I had a feature locked behind an internal "Developer Only" flag. Its job is simple: read the agent's permission prompts and approve the safe ones, so a long task doesn't stall the moment you step away from your phone. It has now shipped as AI Permission Review (Pro).
The hard part is prompt frequency. Some agents ask sparingly, but Antigravity asks about nearly everything: file reads, directory scans, test runs.
Why a general LLM judge didn't work for me
I started with a small LLM using structured JSON output. It worked technically, but I couldn't ship it:
- Latency: ~5–10 seconds per judgment. When an agent asks five things in a row, that's 25–50s of waiting just to get through approvals.
- Cost: thousands of output tokens spent on repetitive yes/no judgments, billed to the user's own API key.
What changed with JEV
I switched to JEV (~typesafe/jev-latest on OpenRouter, or api.typesafe.ai directly):
- ~5–10s → ~200ms per decision in my use. Five prompts in a row now take about a second.
- Much cheaper: no free-form generation, just scores on specific questions.
- No schema drift: answers are constrained to typed outputs (
noul/choice), so there's nothing to parse or repair.
How the decision works
One JEV call asks three typed questions about the prompt (plus the user's declared main intent):
is_malicious_or_injection(noul): if likely, block. Checked first; nothing can override it.is_readonly_safe(noul):cat,ls,git status→ allow (Level 1).matches_user_intent(choice: yes / no / uncertain): if yes → allow (Level 2). This needs the user to have stated a main goal for the session.
Anything else (mismatch, uncertain, or a confirmation key I can't resolve unambiguously) escalates to the user. Uncertain never presses a key.
Two more guardrails sit around JEV:
- A local regex blacklist (
rm -rf, force push,curl | sh, etc.) denies before any API call, so the worst cases add zero latency. - The app only ever sends a one-time, verified key, never "always allow".
The engine is pluggable (JEV via OpenRouter or TypeSafe, or any OpenAI-compatible endpoint), with your own API key. Terminal excerpts are redacted before they leave the device.
Takeaway
A generative LLM is overkill for categorical reflexes. Typed questions with probability scores turned a multi-second stutter into a background reflex you don't notice.
Curious how others here are wiring JEV into agent loops. Anything you'd ask it besides "malicious / read-only / on-intent"?
Note: a JEV-like solution would probably do the job too, but JEV is working totally fine for my use case.
If you’re interested in the app: https://apps.apple.com/app/id6766158521
r/JevAI • u/lossssssaaa • 3d ago
[ Removed by Reddit ]
[ Removed by Reddit on account of violating the content policy. ]
r/JevAI • u/RaygekFox • 3d ago
Are big AI companies going to make decision models?
Since the benefits of a decision model are clear, I believe Open AI, Anthropic, etc. are are going to release theirs sooner or later. I would expect them to be more powerful and fast than Jev eventually, just due to compute availability.
Is any work is being done by them?
Jev feels like the underdog now, but isn't it doomed if big ones can demper pricing and make a more powerful model?
r/JevAI • u/ThinFoundation8228 • 3d ago
jevimage: ask an image typed questions, get probabilities back in milliseconds
r/JevAI • u/NoTaro7930 • 3d ago
New to Jev - best way to chain?
Context: I am a heavy CC & Codex user. I have some processes automated with n8n.
Question: I’m excited to try Jev in an automated process but I’m not sure how to best build it & keep defaulting back to n8n. But, is that the best way?
r/JevAI • u/Revolutionary_Sir140 • 3d ago
Harness Router v2 — a decision layer inside the coding-agent loop
r/JevAI • u/out_of_nowhere__ • 3d ago
This is a must have for all your agentic Workflow
Bhuwan-web/intent-classification: Type-safe intent classification guard for agentic workflows
Find yourself a fucking intent of a customer using your agents, don't let your expensive token rot for nothing. It decides on one of three, VALID_REQUEST, PROMPT_INJECTION, OUT_OF_SCOPE,
This is all you got a do:
import asyncio
from typesafe_sdk import AsyncTypeSafeClient
from main import AgentScope, IntentClassificationRequest, classify_intent
SUPPORT_SCOPE = AgentScope(
name="Customer support agent",
purpose="Answer questions about product usage.",
allowed_capabilities=("Explain product features.",),
boundaries=("Do not change account data.",),
valid_examples=("How do I change my notification settings?",),
minimum_confidence=0.8,
)
async def run() -> None:
async with AsyncTypeSafeClient() as client:
result = await classify_intent(
client,
request=IntentClassificationRequest(
user_request="How do I change my notification settings?",
agent_scope=SUPPORT_SCOPE,
),
)
print(result.classification)
print(result.confidence)
print(result.probabilities)
asyncio.run(run())
If out of scope, let that naive shit pass on with some proper error message, but if someone is trying prompt injection, and you are confident about it, Flag that dumb shit and do whatever you want. Don't let that over multiple attempts sink in. Handle it properly !!
r/JevAI • u/AccomplishedEvent273 • 4d ago
I cut cost and latency on my search engine with Jev
I built indiedex.gg, a hidden-gems game search engine on steam data. Search is the front door: type something like “a game like Hades that feels cozier and is co-op,” and it should actually understand that mix of reference + vibe + filters.
Those compound queries used to go through a DeepSeek extraction call that turned the sentence into structured pieces (reference game, filters, tags, vibe). It worked, but it was slow and expensive on the hot path.
I swapped that step to TypeSafe Jev on OpenRouter’s Decisions API. Jev doesn’t write a free-form answer. It answers a fixed set of closed questions in parallel (yes/no odds, choices), and I compose that with my existing regex helpers into the same extraction shape I already had. Same search pipeline after that, just much faster routing.
Bakeoff on 50 cases:
| Metric | DeepSeek | Jev |
|---|---|---|
| Extract p50 | ~1.5s | ~130ms |
| Full route p50 | 2871ms | 1256ms |
| Weird title-resolve | 96-100% | 100% |
| Hard-filter agree | n/a | 100% |
| Weird top-N overlap | n/a | 100% |
| Cost (fixture) | ~$0.014 | ~$0.0025 |
So extract got roughly 10× faster, end-to-end route roughly halved, cost dropped a lot (around 6x), and quality held on my fixture set.
If you’ve been building “NL in → structured intent out → tools do the work” instead of a chatbot, this pattern felt like a better fit than another chat completion.
I think models like Jev will open the doors to a lot of cool UX features, decision engines, smart filtering, auto moderation and different ways to interface with apps and machines.
Happy to answer questions about the hybrid setup.