面向開發者的獨立指南與社群
Jev 官方資訊:typesafe.ai

Jev AI Model
從認識到實作。

Jev 是 TypeSafe 推出的首個 System One 模型,能依輸入回傳預先定義型別的判斷結果與機率。了解適用情境,以及如何透過 API 串接。

依任務選擇

它和生成式模型有什麼不同?

TypeSafe 將 Jev 歸為 System One 模型:它回傳預設型別的選項與機率,而不是生成開放式文字。對照生成式模型與規則程式碼,看看各自適合哪些任務。

比較面向Jev生成式 LLM規則程式碼
輸出事先定義好的選項、分數和機率靈活的文字、程式碼或結構化輸出由明確條件產生的確定性結果
速度針對低延遲決策最佳化;TypeSafe 在其測試中報告 70–500 毫秒取決於模型、提示詞與輸出長度對已知條件通常非常快
適用任務軟體中反覆出現的語義判斷寫作、複雜推理與開放式任務邊界清楚且穩定的條件
主要限制無法生成自由文字;型別正確的答案也可能判斷錯誤靈活輸出可能需要解析與驗證遇到語意模糊的輸入,規則難以涵蓋所有情況
i

速度數據來自 TypeSafe 對特定結構化決策任務的測試,並非本站獨立基準測試,也不是通用速度保證。 閱讀測試方法

如何選擇

可選答案已經明確,但仍需要理解輸入內容時,可以考慮 Jev;需要生成新內容時,選生成式模型;條件能清楚寫成程式碼時,直接使用規則。

核心概念

為軟體中的決策而設計。

Jev AI Model 會依照你提出的問題分析文字或結構化資料,回傳程式碼能直接處理的選項、分數和機率。下一步怎麼做,仍由你的應用程式決定。

三步看懂 Jev AI Model流程示意 · 並非實際模型輸出
01客戶訊息

“我的訂閱被扣了兩次費用,可以幫我處理嗎?”

02問題與選項

應該交給哪個團隊處理?

可選答案:帳務 · 技術 · 銷售
03結構化結果
帳務Jev

示意機率 0.92

01

提供背景資料

傳入相關文字、JSON 資料或文字清單。Jev 目前不接受圖片、音訊或影片。

02

定義答案範圍

事先定義可選答案,讓模型回傳選項、分數或「是」的機率。

03

由程式碼決定下一步

根據結果與信心分數決定要自動分流、交由人工審核,或執行其他動作。格式正確,判斷也可能出錯。

依據 TypeSafe 官方文件

適用情境

讓模型處理具體判斷。

Jev 適合處理應用程式中反覆出現、答案範圍明確的判斷。以下是可以嘗試的用法,效果仍需用自己的資料驗證。

01

客戶支援

將客訴與商家回饋分類、評估緊急程度,再交給合適的團隊;不確定的案件由人工處理。

應用範例這是帳務問題還是技術問題?
02

推薦與排序

依使用者表達的偏好篩選資訊流,評估候選內容的相關程度,再結合站內訊號與業務規則排序。

應用範例這個候選內容與目前請求有多相關?
03

Agent 工作流程

判斷請求該交給哪個模型、工具或 Agent,是否需要搜尋,以及結果是否足夠完整、能否進行下一步。

應用範例這個請求需要交給專門模型嗎?
04

內容安全

依明確規則檢查訊息、程式碼變更或工具呼叫;高風險或不確定的情況交由人工複核。

應用範例這則訊息違反了這項規則嗎?
GitHubjev-guard
05

遊戲與模擬

依目前的遊戲狀態與一組合法動作,為 AI 對手或 NPC 選擇下一步;規則檢查和實際執行仍由遊戲程式負責。

應用範例對手下一步該選哪個合法動作?
06

個人自動化

按自己的規則整理郵件與通知、判斷智慧家庭狀態,或決定何時啟動日常自動化。

應用範例這則通知值得現在打斷我嗎?
GitHubHA-Jev
開始使用

從一個具體判斷開始。

先找出應用中已存在的一項明確判斷。定義可能的答案,再由程式碼決定如何使用結果。

01

選定一個判斷

例如將客服案件分流,或評估候選內容的相關性。

02

定義選項

呼叫前先寫清楚輸入內容、要問的問題,以及允許回傳的答案。

03

處理不確定性

結合機率與信心分數,決定執行、回退或人工覆核。

API 串接範例

把 Jev 串接到程式碼中。

下方的伺服器端 TypeScript 範例透過 OpenRouter,向 Jev 1.13 傳送一則客服訊息和兩個預先定義好答案形式的問題。API 金鑰只放在伺服器端,結果交由應用程式處理。

免費體驗 Jev
伺服器端 TypeScripttypesafe/jev-1.13
const apiKey = process.env.OPENROUTER_API_KEY;
if (!apiKey) throw new Error("Set OPENROUTER_API_KEY");

const response = await fetch("https://openrouter.ai/api/alpha/decisions", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + apiKey,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "typesafe/jev-1.13",
    state: "My card was charged twice. Please help ASAP.",
    questions: {
      department: {
        type: "choice",
        instructions: "Which team should handle this?",
        criteria: {
          billing: "Payments and refunds",
          technical: "Bugs and integrations"
        }
      },
      urgent: {
        type: "noul",
        instructions: "Does this message need urgent attention?"
      }
    }
  })
});

if (!response.ok) throw new Error("Jev request failed: " + response.status);
const {answers} = await response.json();

if (answers.department.choice === "billing" && answers.urgent.noul > 0.8) {
  // Route to the billing review queue.
}
端點POST /api/alpha/decisions
輸入state + questions
輸出answers

讀取結果

choice 指出負責團隊;noul 用 0 到 1 的數值表示「是」的傾向。再由程式碼結合業務規則完成分流。

投入正式環境前

正式上線前,請用具代表性的客服案件測試、記錄模型版本,並將結果不確定或出錯代價高的情況交由人工審核。範例中的 0.8 只是示意門檻。

API 來源: OpenRouter · TypeSafe

LangChain · Python

把 Jev 放進 LangChain Agent 的 Harness

Harness 負責協調 Agent 的模型呼叫與工具執行。在需要判斷的節點,Jev 讀取使用者訊息、待執行的工具呼叫或 Agent 狀態,回傳結構化結果;後續分支由程式碼決定,開放式工作仍交給聊天模型。

ModelRouterMiddlewarebefore_agent → wrap_model_call

執行開始前判斷最新的使用者請求,選定適合的模型,並在這次執行中沿用。選項、機率與信心值會留在 Agent 狀態中,供後續邏輯使用。

AutoModeMiddlewarewrap_tool_call

在指定工具執行前檢查呼叫。如果 Jev 判定風險較高或授權不足,中介軟體會阻止呼叫並回傳錯誤 ToolMessage;它不會自動請求人員核准。

TypeSafeClassifierChoice · Score · Noul

也可以在自訂中介軟體加入檢查點:把 Agent 訊息或狀態交給 TypeSafeClassifier,以 Choice、Score 或 Noul 提問,再由程式碼決定分支或交由人工複核。

看懂請求與回傳欄位

請求中定義要判斷的問題,回應會依問題名稱回傳結果。以下說明範例中用到的 JSON 欄位。

請求欄位

model
模型 ID。範例指定 Jev 1.13,避免呼叫的版本不明確。
state
待判斷的文字或結構化資料;這裡是一則客服訊息。
questions
按名稱組織的多個問題;回傳的 answers 會沿用這些名稱。
type
答案形式:choice 從候選項中選擇,noul 回傳「是/否」判斷對應的數值。
instructions
希望模型回答的具體問題或判斷標準。
criteria
對 choice 而言,是允許回傳的選項及各選項的意義。

回傳欄位

answers
每個問題的結果,名稱與請求中的 questions 對應。
choice
模型選中的選項鍵,也是機率最高的選項。
probabilities
各選項的機率分布,數值加總為 1。
confidence
根據機率分布計算的信心分數;它不等於所選選項的機率。
noul
是非問題的 0 到 1 數值;越接近 1 越傾向於「是」。

結果符合欄位格式,判斷也可能出錯。請用自己的樣本驗證,並依業務風險設定分流門檻。

專案庫

System One.

Jev 是 TypeSafe 的模型。社群開發者也透過開源模型與介面探索快速、結構化的決策。這裡可以比較各專案的程式碼、做法與限制。

這些是社群獨立專案,並非 Jev 官方版本。

System One 開發者指南 瀏覽所有 GitHub 專案
開放資料與社群動態 在 GitHub 查看 Jev AI Radar
圍繞 Jev AI Model

看看社群在討論什麼。

這裡整理了發布貼文、官方 SDK 與獨立解說影片的重點。先在本站了解背景,再視需要查看原文。

X

TypeSafe 在 X 分享產品動態與背景資訊。這些內容代表團隊自身說法;實際開發前仍應核對官方文件。

查看原文

GitHub

官方 JavaScript 與 TypeScript SDK 提供 API 定義、範例與版本更新。想知道 Jev 的請求如何寫成程式碼,可以從這裡開始。

查看原文

Hacker News

發布討論串談到決策模型適合哪些環節、如何評估,以及高信心分數的錯誤結果該怎麼處理。這是開發者討論,不能當作效能測試。

查看原文
ThursdAI · TypeSafe AI

TypeSafe 團隊談 Jev:從原理到現場示範

TypeSafe 的 Allie Laabs 在 ThursdAI 訪談中解釋 System One 與 Choice、Score、Noul 三種輸出。節目現場測試貼文分類、展示 Doom 示範,也討論 Jev 的局限。

查看原文
站內觀看

影片解讀:Jev AI Model 的結構化決策與使用邊界

RepoChad 的獨立影片整理輸出格式、TypeSafe 的速度數據、示範與待驗證的問題。點擊播放後才會載入影片。

查看原文
Jev AI Model 背後的團隊

讓 AI 判斷更容易用在軟體中。

TypeSafe AI 將 Jev 作為首個 System One 模型推出,目標是讓快速、結構化的判斷進入一般軟體工作流程。

創辦人 Diogo Almeida 曾在 OpenAI 與 Google Brain 工作。根據 TypeSafe 的介紹,他參與的指令遵循及 RLHF 研究影響了 ChatGPT 背後的技術。

常見問題

幾個常見問題。

Jev AI Model 是聊天機器人嗎?

不是。Jev 回傳的是依指定格式組織的判斷結果和機率,不負責生成聊天回覆或程式碼。

Jev AI 模型可以用於推薦嗎?

它可以協助評估候選內容的語義相關性或進行重排。完整推薦系統仍需候選召回、業務規則、效果評估與自己的排序邏輯。

回傳格式正確,判斷就一定對嗎?

不一定。格式限制不了判斷本身。請用具代表性的資料測試,並在程式碼中處理不確定的結果。

從哪裡學習使用 Jev AI Model?

可以從 TypeSafe 官方文件與 SDK 開始;OpenRouter 的模型頁面也提供透過其平台使用 Jev 的入口。

從一個問題開始

試著把一項判斷接進應用程式。

先定義一個清楚的問題和答案範圍,再由應用程式決定如何使用 Jev 的結果。

社群動態

用適合你的方式關注 Jev 生態。

透過持續更新的公開儲存庫,或不定期寄送的電子報精選,掌握新的 Jev 專案、System One 社群模型與實際應用案例。

持續公開更新

Jev AI Radar

面向開發者、指令碼與 AI Agent 的開源資料庫,內容可讀取、重複使用,也能追蹤歷次變更。

到 GitHub 按個 Star
低頻人工精選

電子報

不定期收到社群精選:值得關注的熱門專案、實用程式碼範例與 Jev 應用案例。

提交電子郵件即表示你同意接收 Jev AI Dev 不定期寄送的郵件。