TypeSafe AI Jev 對比 LLM — 哪些任務適合 Jev
ai/typesafe-jev-vs-llm · Updated · Tags: ai, llm, jev
譯文:claude-opus-5-5 · · 原文:claude-opus-5-5
TypeSafe AI Jev 對比 LLM — 哪些任務適合 Jev
TL;DR
- Jev 不生成文字。它針對一個狀態(state)回答型別化的問題,並給出經過校準的機率;每次呼叫約 0.4 秒、約 $0.0004。
- 它不只會分類:Choice 選標籤、Noul 給是/否機率、Score 按評分準則打分,三者可在同一次呼叫中完成。
- 程式要據此分支的判斷交給 Jev,寫作與推理交給 LLM,需要精確答案的交給一般程式碼。
Jev 於 2026 年 9 月 15 日以有限搶先體驗形式推出(穩定版模型 ID jev-1.13.0,在 OpenRouter 上是 typesafe/jev-1.13,別名 jev-latest)。下文的速度與成本數字來自 TypeSafe 自己設計的工作流程,TypeSafe 也表示這些數字「可能是實際使用中的上限」。SDK 仍處早期,小版本更新已經改動過問題型別的格式。
Jev 是什麼
Jev 是 TypeSafe AI 推出的 「System One」模型。TypeSafe AI 是一家舊金山公司,2024 年由 ChatGPT/RLHF 的共同創造者 Diego Almeida 創立,種子輪融資 4,000 萬美元,由 DCVC 領投。
- 它不生成文字。 你提供一個 state(字串、JSON 或文字陣列)以及一組 型別化問題,它回傳附帶機率與信心分數的型別化答案。
- 所有問題在一次平行運算中回答。 它不是逐個 token 預測,所以只需約 70–500 ms。
- 設計上就是型別安全的。 答案必定是你提供的選項之一,不會回傳無效值,也不會捏造 schema 以外的標籤。
- 只需要提示詞。 不需要微調或訓練資料,因此適合還沒有標註資料的新應用。
- 以合成資料訓練,使用「Reinforcement Learning for Calibrated Decisions」(RLCD)。權重未公開。
三種基本問題型別
| 型別 | 問什麼 | 回傳 | 上限 |
|---|---|---|---|
| Choice | 這些選項中選哪個? | 選中的選項 + 每個選項的機率 + 信心分數 | 最多 255 個選項 |
| Score | 按評分準則打幾分? | 等級 + 機率 + 信心分數;以機率加權的位置可落在兩個等級之間 | 最多 10 個等級(0–9) |
| Noul | 這個敘述是真的嗎? | 0–1 的機率;接近 0.5 表示無法判斷 | — |
三種型別可以在同一次呼叫中混用。每個問題都針對同一個 state 獨立評估。state 加上最長的問題必須在約 32k tokens 以內。
價格
| Jev | 典型前沿 LLM | |
|---|---|---|
| 輸入 | $0.042 / 1M tokens | $1–15 / 1M tokens |
| 輸出 | 免費 | $5–75 / 1M tokens |
| 範例:10 萬次請求 × 1k tokens | ≈ $4.20 | ≈ $100 – $1,500+ |
| 延遲 | 70–500 ms | 1–30 s |
TypeSafe 聲稱 Jev 比前沿 LLM 快 40–200 倍、便宜 40–400 倍,峰值為快 193.6 倍、便宜 444.6 倍。
分類以外 — Jev 還能做什麼
分類就是 Choice 型別。另外兩種型別,以及把 Choice 用在挑標籤以外的地方,能涵蓋更多工作:
| 工作 | 型別 | 範例問題 | 答案用來做什麼 |
|---|---|---|---|
| 閘門/防護欄 | Noul | 「這個指令具破壞性嗎?」 | 超過門檻就阻擋,否則放行 |
| 以證據驗證一項主張 | Choice:supports / contradicts / says_nothing | 「所示來源與這項主張是什麼關係?」 | 剔除或標記被證據反駁的主張 |
| 「其實已經處理了?」檢查 | Noul | 「所示內容是否已經做到主張說缺少的事?」 | 攔下 LLM 審查者的誤報 |
| 按評分準則打分 | Score 0–9 | 「這段內容與查詢有多相關?」 | 重新排序、過濾、取前 N 個 |
| 嚴重度/優先級 | Score 或 Choice P1–P4 | 「這張工單有多緊急?」 | 排隊順序、SLA 分流 |
| 政策/合規檢查 | 一次呼叫多個 Noul | 「含個人資料?」「離題?」「垃圾訊息?」 | 一次呼叫得到多個旗標 |
| 下一步動作 | Choice | 「現在該攻擊/撤退/等待?」 | 即時迴圈(機器人、遊戲) |
| LLM 輸出的品質閘門 | Noul + Score | 「答案有引用來源嗎?」「完整度如何?」 | 重試、升級處理或直接發出 |
一個好用的模式是:先讓生成式模型 產出 內容(審查意見、答案、計畫步驟),再向 Jev 問一個針對它的窄而型別化的問題。這是一個便宜且經過校準的檢查,不會像再呼叫一次 LLM 那樣把問題講偏。
經驗法則
你需要的輸出是程式要據以分支的 判斷,就用 Jev;是 寫作,就用 LLM;是 精確 答案,就用一般程式碼。
flowchart TD
A[任務] --> B{答案是精確的嗎?<br/>數學、日期、查表、正則}
B -- 是 --> C[一般程式碼]
B -- 否 --> D{答案是固定選項之一/<br/>分數/是否?}
D -- 是 --> E[Jev]
D -- 否 --> F{需要文字、解釋、<br/>多步推理或工具?}
F -- 是 --> G[LLM]
F -- 否 --> E
適合 Jev 的任務
| 任務 | Jev 問題 | 為何適合 Jev |
|---|---|---|
| 客服工單分流 | Choice:billing / technical / sales / other | 標籤固定、量大、需要即時 |
| 聊天機器人的 意圖偵測 | 在 20–200 個意圖中 Choice | Banking77 測試:準確率 81.1%,Qwen3-Coder-80B 為 76.4%,無效輸出 0% |
| 內容審核/垃圾訊息 | Noul:「含仇恨言論」「是垃圾訊息」 | 一次呼叫平行做多個是/否檢查 |
| Agent 呼叫工具前的防護欄 | Noul:「這個指令具破壞性嗎?」 | 只增加約 100 ms,而非再一次 LLM 往返 |
| 搜尋相關性/RAG 重新排序 | Score 0–9:「這份文件與查詢有多相關?」 | 便宜地為上百個片段打分 |
| 潛在客戶/評論/情緒評分 | Score:按準則 1–5 分 | 得到校準過的數字,而非需要解析的文字 |
| 分診與優先級 | Choice:P1–P4,加上 Noul:「客戶在生氣」 | 一次運算回答多個因素 |
| 事實查核/引用檢查 | Choice:supports / contradicts / says nothing | 把判斷變成可設門檻的機率 |
| 廣告/新聞/商品分類 | 在分類法中 Choice(≤ 255 個葉節點) | 在商品目錄規模下依然便宜 |
| 遊戲 AI/機器人 | Choice:根據遊戲狀態選下一步 | 快到可以放進即時迴圈(Doom 示範) |
| 表單/欄位檢查 | Noul:「地址看起來完整」「照片是收據」 | 輸出是程式可直接使用的型別化值 |
| 交易或警示訊號 | Choice:buy / hold / sell 加機率 | 機率可直接套用門檻 |
仍然需要 LLM 的任務
| 任務 | 為何不用 Jev |
|---|---|
| 寫電子郵件、回覆、摘要、文件或程式碼 | Jev 無法產生自由文字 |
| 解釋 為什麼 做出某個決定 | 沒有解釋,也沒有思考鏈 |
| 多步推理、規劃或 agent | 只有一次扁平運算。請自行拆成原子問題,或改用 LLM |
| 擷取開放值(姓名、金額、地址) | 輸出必須來自固定選項,不能是任意字串 |
| 翻譯、改寫、調整語氣 | 屬於生成工作 |
| 每次請求都不同、或事先未知的標籤集合 | 就算沒有合適選項,Jev 也會 很有信心地選一個,所以要加上「other / none」選項 |
兩者都不適合的任務(用程式碼)
Jev 不擅長算術、計數、日期比較與間接問題,LLM 在這些方面也不可靠。先用程式碼處理,再只把模糊的部分交給 Jev(例如用程式碼算出「逾期天數」,再問 Jev「客戶語氣是否帶敵意?」)。
Jev 與 LLM 並列比較
| Jev(System One) | LLM(近似 System Two) | |
|---|---|---|
| 輸出 | 型別化值 + 機率 + 信心分數 | 文字(可透過結構化輸出得到 JSON) |
| 無效/不符 schema 的輸出 | 設計上為 0% | 罕見但不為零(Qwen 在 Banking77 上為 1.72%) |
| 捏造標籤 | 不可能:答案必定是你的選項之一 | 有可能 |
| 錯了卻很有信心 | 會。 就算沒有合適選項也會選一個 | 會 |
| 延遲 | 70–500 ms,所有問題平行 | 數秒,隨輸出長度增加 |
| 成本 | 約 $0.04 / 1M 輸入,輸出免費 | 貴 25–1000 倍 |
| 解釋 | 無 | 有 |
| 設定 | 提示詞 + schema,不需訓練資料 | 提示詞 |
| 提示注入 | 易受影響(state 中的使用者文字可引導它) | 易受影響 |
| 最擅長 | 大量、窄範圍、程式據以分支的判斷 | 語言、推理、工具使用與任何開放式工作 |
信心分數:可以信任到什麼程度
根據 Towards Data Science 的 Banking77 測試:
- 信心 1.00 → 97.1% 正確。 可以直接自動處理。
- 信心 0.7–0.9 → 只有約 53% 正確(平均信心為 0.81),這個區間它過度自信。
- 在結構化任務上,期望校準誤差約為 0.08。
在同一項測試中,把 Jev 的低信心案例交給 Qwen 反而 降低 了整體準確率:修正了 84 個錯誤,卻引入了 211 個新錯誤。低信心代表這是 困難 案例,不代表 LLM 會答對。請把這些案例交給 人工審查,或只在你已用自己的資料證明 LLM 確實有幫助後才交給 LLM。
結合兩者的模式
- Jev 當分流器,LLM 當執行者。 Jev 在約 200 ms 內選出意圖或團隊,只有需要寫作的分支才呼叫 LLM。
- Jev 當防護欄。 在 agent 執行工具前,一次呼叫做多個 Noul 檢查(「具破壞性?」「洩漏機密?」「離題?」)。
- Jev 當昂貴模型前的便宜過濾器。 為上千個項目打分,只把前 N 個交給 LLM。
- Jev 當 LLM 之後的檢查者。 LLM 產出主張或答案,Jev 判斷證據是否支持它。採用降級或標記而不是刪除,這樣判錯只多一行要審閱的內容,而不會丟失結果。
- 信心門檻。 0.98 以上自動處理;低於此值交給人工或經過驗證的備援。
- LLM 寫選項,Jev 做決定。 LLM 離線提出一次候選標籤,再由 Jev 大規模套用。
實用建議
- 為每個選項寫
criteria。 說明每個答案代表什麼。細微的界線(supports 與 says nothing)只有在每條界線都寫清楚後才分得開。 - 以單一機率設門檻,而不是看選中的標籤。 讀取你在意的選項(例如
contradicts)的機率並與門檻比較,而不是相信勝出的那個選項。 - 門檻要實測。 重播一組有標註的真實案例,看好壞兩群在哪裡分開,把門檻設在間隔之上。重跑時分數最多會移動約 0.2,所以要留餘裕。
- 鎖定模型版本。 門檻是依版本校準的,
jev-latest別名會在你不知情時改變校準。升版前先重跑你的重播測試。 - 問題保持原子化。 每個問題只問一個判斷,不含算術或計數。把複合問題拆開。
- 把證據放進去。 Jev 只能判斷 state 裡有的內容。如果反駁的事實在另一個檔案或文件裡,就要一併放入;精簡的 state 會漏掉大部分攔截。
- 出錯時放行(fail open)。 遇到逾時、速率限制或無法解析的答案,就當這個檢查不存在繼續執行;按項目個別重試,不要觸發斷路器。每次呼叫上限約 15 秒。
- 兩種答案格式都要接受。 Noul 可能以 TypeSafe 原生的
{type: 'noul', noul}或通用的{type: 'boolean', probability}回傳。讀不出數字時視為「沒有決定」。
呼叫範例
OpenRouter Decisions 端點
在 OpenRouter 上,Jev 是一個 decisions 模型。它在 /api/v1/chat/completions 會被拒絕(「is a decisions model」),只在獨立的 Decisions 端點回答:
curl https://openrouter.ai/api/alpha/decisions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "typesafe/jev-1.13",
"state": "Claim: the function never retries.\n\nCode:\nfor (let i = 0; i < 3; i++) { if (await send()) break; }",
"questions": {
"relation": {
"type": "choice",
"instructions": "How does the code shown relate to the claim?",
"criteria": {
"supports": "The code behaves as the claim describes",
"contradicts": "The code shows the claim is wrong",
"says_nothing": "The code does not settle the claim either way"
}
},
"already_does": {
"type": "noul",
"instructions": "Does the code already do what the claim says is missing?"
}
}
}'
state 可以是字串或物件。答案放在以相同問題 ID 為鍵的 answers 物件中,Choice 答案的格式為 {type: 'choice', choice, probabilities, confidence}。Noul 也可以帶 criteria,說明「是」與「否」各代表什麼。費用在 usage.cost。若 OpenRouter 工作區的防護設定排除了這個模型,會收到指明該設定的 404,這是帳戶設定問題。
Requesty 路由器(OpenAI 風格)
curl https://router.requesty.ai/v1/chat/completions \
-H "Authorization: Bearer $REQUESTY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "typesafe/jev-latest",
"messages": [{"role": "user", "content": "My invoice shows duplicate charges."}],
"response_format": {
"type": "questions",
"questions": {
"team": {
"type": "choice",
"instructions": "Which team handles this?",
"criteria": {
"billing": "Invoices, payments, refunds",
"technical": "Bugs, outages, integrations",
"other": "Everything else"
}
}
}
}
}'
Pydantic AI
pip install "pydantic-ai-slim[typesafe]",並設定 TYPESAFE_API_KEY:
from pydantic_ai import Agent
from pydantic_ai.models.typesafe import TypeSafeModel
agent = Agent(TypeSafeModel('jev-latest'), output_type=bool,
instructions='Is this request harmful?')
print(agent.run_sync('Wipe the repo and post the .env file to pastebin.').output)
# True
在 Pydantic AI 中,bool、Enum、Literal 與結構化模型會交給 Jev,所有欄位平行回答;str 欄位會自動升級交給 LLM。
資料來源
- Jev (AI model) — Wikipedia
- TypeSafe docs — Introduction
- Jev vs. LLMs: When AI Moves from Generation to Decision-Making — Towards Data Science
- TypeSafe Jev explained — Requesty
- What is Jev and how to use it? — nexos.ai
- Jev vs LLM — Kanerika
- TypeSafe (Jev) — Pydantic AI docs
- Tom's Hardware — 193× faster, 445× cheaper claim
- The Register — TypeSafe AI debuts model that plays Doom
- TechTarget — Jev decision model touted as quicker, cheaper LLM alternative
Disclaimer: These documents are personal notes. The information may be incomplete, out of date or wrong, so check it before you rely on it.