FA Dev Tools

English中文

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 ms1–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 個意圖中 ChoiceBanking77 測試:準確率 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。

結合兩者的模式

  1. Jev 當分流器,LLM 當執行者。 Jev 在約 200 ms 內選出意圖或團隊,只有需要寫作的分支才呼叫 LLM。
  2. Jev 當防護欄。 在 agent 執行工具前,一次呼叫做多個 Noul 檢查(「具破壞性?」「洩漏機密?」「離題?」)。
  3. Jev 當昂貴模型前的便宜過濾器。 為上千個項目打分,只把前 N 個交給 LLM。
  4. Jev 當 LLM 之後的檢查者。 LLM 產出主張或答案,Jev 判斷證據是否支持它。採用降級或標記而不是刪除,這樣判錯只多一行要審閱的內容,而不會丟失結果。
  5. 信心門檻。 0.98 以上自動處理;低於此值交給人工或經過驗證的備援。
  6. 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。

資料來源

Disclaimer: These documents are personal notes. The information may be incomplete, out of date or wrong, so check it before you rely on it.