The outcome
Replace a brittle keyword router with one call that returns a department, a frustration level and an urgency probability, plus the confidence to act on them.
Step by step
A workflow you can repeat.
- 01
Build the state as a JSON object with named fields — the ticket text, the customer's plan and any open order — rather than one pasted string, so each question can point at the field it needs with a backtick path such as ticket.text.
- 02
Define three questions in one request: a Choice for the department with a rubric line per option and an explicit "other", a Score for frustration with three ordered level descriptions, and a Noul for "The message conveys urgency or time-sensitivity".
- 03
Send it to jev-latest with client.system_one(state=..., questions={...}) and log the whole response: the chosen option, the full probabilities map, each confidence value and the model field, so you can replay decisions later.
- 04
Write the thresholds in code, not in the prompt: auto-assign when department confidence is above 0.8, ask the agent to confirm between 0.5 and 0.8, and send anything below 0.5 to a human queue, with a stricter bar for any action that is hard to reverse.
- 05
Replay a week of real tickets through the same questions, compare against what your team actually did, then adjust the criteria wording and thresholds before switching the router on for live traffic.
Working standard
What good use looks like.
- Keep every question and threshold in one reviewable file.
- Add an "other" option to every Choice.
- Log probabilities, not just the chosen answer.
Official references
Check the current product documentation.
- TypeSafe AI: Introducing System One Models & Jev ↗
- TypeSafe docs: Quick start ↗
- TypeSafe docs: Primitives (Choice, Score, Noul) ↗
- TypeSafe docs: Confidence ↗
- TypeSafe docs: Models, pricing and rate limits ↗
- TypeSafe docs: HTTP API reference ↗
- TypeSafe docs: Jev 1.13 jaggedness (known failure modes) ↗
- TypeSafe workflow evals ↗
- TypeSafe agent skill for Claude Code and other agents ↗