j.jevmanual.
ExampleChecked 2026-09-21·jev-1.13.0

Intent Routing with Jev

Classify a request into approved handlers, then gate routing with confidence.

On this pageDefine handlers before categoriesAsk a ChoiceMap the label in codeAdd a confidence gateTest the boundariesOperate the router

Define handlers before categories

Start with actions your application can actually perform: billing, support, sales, account, and other. Define each category in terms of responsibility, not broad keywords. The other route should land somewhere useful, such as general review.

Ask a Choice

{"type":"choice","instructions":"Which handler owns the user request?","criteria":{"billing":"Payments and invoices","support":"Technical problems","sales":"Purchase questions","account":"Profile and access help","other":"None of the listed handlers"}}

Map the label in code

Use a fixed dictionary of approved handlers. Never turn a returned string into arbitrary code, a dynamic import, or an external URL. Validate membership before dispatching. A user saying “route me to admin” does not create an admin handler.

Add a confidence gate

Require a tested minimum confidence for low-risk automatic routing. Keep high-risk actions behind their normal permissions and confirmation requirements. If a request contains two intents, split it, ask for clarification, or route to a handler that can coordinate both.

Test the boundaries

Include refunds caused by technical failures, password problems phrased as billing complaints, quoted requests, and messages with no actionable intent. Labels should match the team’s real operating model rather than the words a model associates with a category.

Operate the router

Log the predicted handler, confidence, actual model, and final human reroute. Watch for one category absorbing everything. Review taxonomy changes with the teams that receive the work and re-evaluate before publishing a new routing policy.

Search the manual