AI 日报hiw3c.com

20 Agentic Use Cases of TypeSafe AI’s Jev

MarkTechPost www.marktechpost.com RSS 全文
正文为英文,可一键机器翻译(仅首次需要等待)

Last week, TypeSafe AI released Jev, its first System One model. Founder Diogo Almeida previously worked at OpenAI on the instruction-following research behind ChatGPT.

Jev does not chat, write code or summarize. It takes unstructured state and returns typed decisions with calibrated probabilities. That makes it a natural fit for the thousands of small judgments inside an agent loop: which model to call, whether a command is safe, which passage is relevant, whether the agent is actually done.

How Jev Works

Every call sends a state (text or JSON) plus a dictionary of typed questions. TypeSafe’s docs define 3 primitives:

  • Choice picks one option from a list and returns a probability per option plus confidence.
  • Score rates the state on ordered rubric levels and returns probabilities plus confidence.
  • Noul returns the probability (0 to 1) that a statement is true.

All questions are evaluated in parallel against the same state in one request. TypeSafe trains Jev with Reinforcement Learning for Calibrated Decisions (RLCD), so higher confidence should track higher accuracy. Choice supports up to 255 options.

The main claims, 193.6x faster and 444.6x cheaper, come from TypeSafe’s own workflow evals. The launch post says these figures sit on the higher end of real-world gains and use GPT-6 Astra and Fable 5.1 as the reference answer.

Interactive Explainer

Run both</button> <span class="note">Schematic animation, not to scale. Published ranges: frontier LLMs 3 to 329 s end-to-end (benchmark cited by TypeSafe) vs Jev 70 to 500 ms. Jev answer values are from TypeSafe's quickstart docs.</span> </div> </div> <!-- PANEL 2 --> <div class="panel" id="p2"> <div class="row"> <div class="col"> <div class="lbl">Pick an agent decision</div> <select id="scen"> <option value="ticket">Ticket triage (support agent)</option> <option value="tool">Tool-call gate (coding agent)</option> <option value="router">Model router (multi-model agent)</option> <option value="rag">Injection screen (RAG agent)</option> </select> </div> <div class="col"> <div class="lbl">Act automatically when value ≥ <span class="mono" id="tv">0.60</span></div> <input type="range" id="thr" min="0.30" max="0.95" step="0.01" value="0.60"> </div> </div> <div class="flow" style="margin-top:12px"> <span class="node" id="n1">STATE</span><span class="arrow">→</span> <span class="node" id="n2">TYPED QUESTIONS</span><span class="arrow">→</span> <span class="node" id="n3">JEV</span><span class="arrow">→</span> <span class="node" id="n4">PROBS + CONFIDENCE</span><span class="arrow">→</span> <span class="node" id="n5">YOUR CODE</span> </div> <div class="row"> <div class="col card"> <div class="lbl">State</div> <div class="state mono" id="st"></div> <div id="qs"></div> </div> <div class="col"> <div class="card"> <div class="lbl">Gate result</div> <div class="verdict" id="vd">RUN</div> <div class="why" id="why"></div> </div> <pre class="code mono" id="code"></pre> <button class="btn" id="run">▶ Evaluate</button> </div> </div> <p class="note" id="src"></p> </div> <!-- PANEL 3 --> <div class="panel" id="p3"> <div class="row"> <div class="col card"> <div class="lbl">Decisions per day: <span class="mono" id="dv"></span></div> <input type="range" id="dec" min="3" max="7" step="0.1" value="5"> <div class="lbl" style="margin-top:10px">Input tokens per decision: <span class="mono" id="kv"></span></div> <input type="range" id="tok" min="100" max="5000" step="50" value="800"> <div class="lbl" style="margin-top:10px">LLM input price ($/MTok): <span class="mono" id="pv"></span></div> <input type="range" id="price" min="0.2" max="10" step="0.1" value="1"> <div class="lbl" style="margin-top:10px">LLM output tokens per decision: <span class="mono" id="ov"></span></div> <input type="range" id="otok" min="5" max="400" step="5" value="50"> </div> <div class="col"> <div class="kpi"> <div><b id="cj">$0</b><span>Jev / month</span></div> <div><b id="cl">$0</b><span>LLM / month</span></div> <div><b id="cx">0x</b><span>LLM ÷ Jev</span></div> </div> <div class="card" style="margin-top:12px"> <div class="lbl">Monthly spend (30 days)</div> <div class="bar"><div class="t"><span>Jev</span><span class="mono" id="bj"></span></div><div class="tr"><div class="f" id="fj"></div></div></div> <div class="bar lose"><div class="t"><span>LLM</span><span class="mono" id="bl"></span></div><div class="tr"><div class="f" id="fl"></div></div></div> </div> <p class="note">Jev list price: $0.042 per million input tokens, output free. LLM output priced at 5x input, following TypeSafe's "~5x" comparison. Model-call cost only; excludes reviews, retries and escalations. Estimate, not a quote.</p> </div> </div> </div> <!-- PANEL 4 --> <div class="panel" id="p4"> <div class="chips" id="cats"></div> <div class="grid" id="ucg"></div> <div class="card detail" style="margin-top:10px"> <div class="lbl" id="dh">Tap a use case</div> <div id="dt" style="font-size:13.5px">Each tile shows which Jev primitive does the work and where your code takes over.</div> </div> </div> <div class="foot mono"> <span>Sources: docs.typesafe.ai · typesafe.ai/blog · openrouter.ai</span> <span>Built by <a href="https://www.marktechpost.com" target="_blank" rel="noopener">© Marktechpost</a></span> </div> </div> <script> (function(){ function post(){try{parent.postMessage({type:'mtp-jev-h',h:document.getElementById('app').offsetHeight+40},'*')}catch(e){}} window.addEventListener('load',post);window.addEventListener('resize',post);setTimeout(post,400); var tabs=document.querySelectorAll('.tab'); tabs.forEach(function(b){b.addEventListener('click',function(){ tabs.forEach(function(x){x.classList.remove('on')});b.classList.add('on'); document.querySelectorAll('.panel').forEach(function(p){p.classList.remove('on')}); document.getElementById(b.dataset.t).classList.add('on');setTimeout(post,60); })}); function bars(el,list,fill){ el.innerHTML=list.map(function(r){return '<div class="bar '+(r.w?'win':'lose')+'"><div class="t"><span>'+r.k+'</span><span class="mono">'+(fill?r.v.toFixed(3):'...')+'</span></div><div class="tr"><div class="f" style="width:'+(fill?(r.v*100):0)+'%"></div></div></div>'}).join(''); } /* PANEL 1 race */ var jevRows=[{k:'department = technical',v:0.84,w:1},{k:'department = billing',v:0.159},{k:'is_urgent (noul)',v:0.999,w:1}]; var jb=document.getElementById('jevBars');bars(jb,jevRows,false); var tokens=['{"','department','":"','tech','nical','",','"','frus','tration','":','1',',"','is','_ur','gent','":','true','}']; var timer=null; document.getElementById('race').addEventListener('click',function(){ clearInterval(timer);var out=document.getElementById('llmOut'),m=document.getElementById('llmMeter'),i=0,s=''; out.innerHTML='<span class="cursor"></span>';bars(jb,jevRows,false); document.getElementById('jevMeter').textContent='questions: 3 · evaluating in paralle