重點摘要
- 簡單題兩家都滿分,題目一難才拉開差距。難題版 Jev 97.8%、OpenAI 93.3%;function call 整個 call 全對 Jev 94.7%、OpenAI 89.5%。Jev 同時也比較便宜、比較快。
- 兩家錯的題型剛好相反,也和官方文件自述的弱點相反。OpenAI 錯在數字、日期和規則計算;Jev 官方承認數字和日期是弱點,這些題卻全對,它錯在字面解讀,例如假設語氣和雙重否定。
- Jev 的機率比較能拿來設門檻。難題版只自動處理機率 ≥ 0.8 的題目時,Jev 準確率 100%;OpenAI 有兩題機率超過 0.9 仍然答錯,門檻擋不住。
- function call 的參數兩家都 100% 填對,包括從候選值裡挑出金額與帳號、客戶講到一半改口的情況。差別在選 function 與判斷參數是否齊全。
- 用一般 LLM 模擬可行,但划不來。Claude Haiku 5.5 加上 structured outputs 做得出同樣的介面,但延遲約 6–7 倍、成本約 2 倍,而且在數字和計數題上很有把握地答錯。
什麼是決策模型
決策模型(decision model,也有人叫 System One model)是一種新形狀的模型:不生成文字。你先把問題和所有可能的答案定義好,模型只回傳每個答案的機率。它適合分類、路由、審核,以及幫 AI Agent 選下一步要呼叫哪個工具。
| 一般 LLM | 決策模型 | |
|---|---|---|
| 輸出 | 自由文字或 JSON | 預先定義的答案加上機率 |
| 格式風險 | 可能格式錯、自己編出選項外的答案 | 答案一定在你給的範圍內 |
| 機率 | 通常拿不到 | 每次都有,可以直接設門檻 |
| 延遲 | 秒級 | 百毫秒級 |
| 適合 | 推理、生成、開放式問題 | 分類、路由、審核、選工具、是非判斷 |
兩家都提供三種題型,名稱略有不同:
| 題型 | Jev | OpenAI | 回傳 |
|---|---|---|---|
| 是非題 | noul | predicate | 答「是」的機率 |
| 單選題 | choice | choice | 選中的答案、每個選項的機率、confidence |
| 等級題 | score | score | 各等級的機率、機率加權的分數 |
受測對象
| 項目 | TypeSafe Jev | OpenAI Decisions | Claude Haiku 5.5(對照組) |
|---|---|---|---|
| 推出 | 2026 年 9 月中旬 | 2026-09-29 DevDay 發表,10-06 開放 public beta | 沒有決策 API,用 structured outputs 模擬 |
| 端點 | POST /v1/systemone | POST /v1/decisions | POST /v1/messages |
| 受測模型 | jev-1.13.0(可固定版本) | gpt-6-luna(目前唯一,無法固定版本) | claude-haiku-5-5 |
| 計費(每百萬 tokens) | input $0.042,output 免費 | input $0.10,output 免費 | input $0.10、output $0.50 |
| 圖片輸入 | 不支援 | 支援(base64) | 支援(本研究未測) |
| 拒答機制 | 沒有 | 有,單題拒答不影響其他題 | 有 |
| 官方說的弱點 | 字面解讀、數字、日期、選項順序等 9 項 | 文件未列 | — |
研究方法
三份題庫都以銀行客服為情境,繁體中文為主。題目只定義一次,由程式自動轉成兩家各自的格式,避免措辭不同造成偏差。
| 題庫 | 題數 | 內容 |
|---|---|---|
| 基本題庫 | 56 | 工單分派、轉真人意圖、個資偵測、急迫度、Agent 下一步、數字日期、prompt injection、否定問法,附中英對照題 |
| 難題版 | 75 | 14 類細分意圖、台語與注音文、多條件額度審核規則、數字、日期、計數、字面解讀(假設、他人、雙重否定、反諷)、進階 injection、長對話 |
| Function call | 49 | 19 個情境:選 function(9 選 1)、列舉參數、從候選值挑金額與帳號、判斷參數是否齊全 |
公平性控制
- OpenAI 與 Jev 都用 raw HTTP 直接呼叫,排除 SDK 對延遲的影響;Claude 用官方 SDK(額外開銷是毫秒級)
- 每題隨機決定先呼叫哪一家;正式計時前先暖機,排除連線建立的時間
- 每題重複 3 次,量答案與機率的穩定性
- 單選題另外把選項順序倒過來再問一次,量選項順序偏差
- 遇到限流或伺服器錯誤會自動重試,延遲只計成功的那一次
計分方式
是非題以機率 0.5 為界;單選題取模型選的答案;等級題取機率最高的等級。真的有兩種合理答案的題目,兩種都算對。拒答算答錯。準確率只計原始選項順序的題目。
整體結果
各題庫的錯誤率
越低越好。基本題庫兩家都沒有答錯。
數據表
基本題庫太簡單,兩家都拿 100%,分不出高下。這本身也是一個結論:一般的客服分類與路由,兩家都已經夠用。差距要到題目需要仔細閱讀或推理時才會出現。
難題版:兩家錯在相反的地方
難題版各題組準確率
每組題數 × 3 次重複。
數據表
OpenAI 錯在數字與規則計算
- 額度調升 37.5%(8 萬 → 11 萬),判成超過 50% 要轉人工 機率 0.47
- 額度調升剛好 50%,判成「超過」 0.50
- 「前天」沒算進往前 30 天內 0.59
- 「五十萬的十分之一,再多一千」判成沒超過 5 萬 0.96
- 「除了 7-11 那筆,其他四筆都不是我」判成不到 3 筆 0.94
Jev 錯在字面解讀
- 「如果哪天卡片被偷了,要打哪支電話掛失?」這是假設性的問題,卻判成「卡片遺失」 0.69
- 「我不是不確定,我很確定那筆不是我刷的」雙重否定判錯,3 次中有 1 次答對 0.51–0.64
Jev 官方承認數字、日期、計數是弱點,這些題卻全對。
OpenAI 最後兩題是「很有把握地答錯」(機率 0.94–0.96),用信心門檻擋不下來;Jev 的錯誤機率都在 0.7 以下。
兩家都全對的題組:台語漢字、注音文、簡體字、中英夾雜、進階 prompt injection(偽造系統訊息、英文指令、假 JSON 答案、角色扮演),以及把關鍵需求藏在最後的長對話。
Function call
決策模型不能生成文字,所以用在 function call 時要拆成幾個問題:先選要呼叫哪個 function,再逐一決定參數。帳號、金額這類自由格式的參數,採「先用規則抽出候選值、再讓模型挑」的混合作法。最後再問一題:參數齊不齊?不齊就該先追問客戶,不該直接呼叫。
Function call 各環節準確率
19 個情境、49 題,每題 3 次。「整個 call 全對」= function 與所有參數都答對。
數據表
觀察
- 參數兩家都 100%。卡別、期間、幣別、原因代碼都對;從候選值挑金額與帳號也都對,包括客戶自己改口(「轉給 700-888999,喔不對,是 700-888998」)和否定舊帳號(「不要轉到上次那個帳號了」)。
- OpenAI 對一題選 function 每次都拒答(6 次都一樣)。訊息是「不要轉到上次那個帳號了,這次轉 3 萬到我新開的帳戶」,推測被當成疑似詐騙的轉帳型態;同一則訊息改問參數,則正常回答。實際上線要處理拒答。
- Jev 選 function 會受清單順序影響。「Netflix 扣兩次,幫我申請退回」,Jev 選了排在第一個的「查交易明細」(機率 0.59);清單倒過來,就改選「建立爭議」。這印證了官方說的「偏好前面的選項」。
- 判斷參數齊不齊:OpenAI 75%,Jev 100%。OpenAI 把客戶改口的那一題判成參數不齊,機率 0.86。
機率可不可信:信心門檻
決策模型最大的賣點是每次都給機率。實務上的用法是設門檻:機率夠高就自動處理,不夠高就轉人工。這要求模型「答錯時機率要低」。
另一個現象:OpenAI 的機率比較分散。例如「出國兩週先暫時鎖卡」,OpenAI 選對了 function,機率卻只有 0.40;Jev 答對時多半給到 0.96 以上。用 OpenAI 時,門檻需要依題型個別校正。
延遲與成本
延遲中位數
從台灣呼叫,單位毫秒;短豎線是 p95。OpenAI 與 Jev 取兩家單獨測的那一輪,Claude 取四家一起測的那一輪。
數據表
每千次呼叫成本
基本題庫,美元。OpenAI 與 Jev 只收 input;Claude 的 output 也要收費。
數據表
- OpenAI 伺服器處理時間中位數約 152 ms,與 DevDay 宣稱的 150 ms 相符;從台灣量到的往返時間則約 230–290 ms。
- Jev 單價只有 OpenAI 的四成,但同樣的內容 Jev 算出的 tokens 多 1.6–2 倍,所以實際成本只便宜 15–33%,依題庫而定。
- 難題版與 function call 那兩輪,兩家的 p95 同時升到 0.8–1 秒,推測是當時的網路狀況;四家一起測時,夾在 Claude 呼叫之間的連線也較常變慢。延遲結論建議擇時重測確認。
對照組:用 Claude Haiku 5.5 模擬
這組要回答:一般 LLM 自己做,和專用的決策 API 比差多少?Claude 沒有決策端點,也不提供 logprobs,所以作法是把題目與選項寫進 system prompt,用 structured outputs 把輸出鎖成「每個選項一個機率」的 JSON(選項名稱就是 schema 的 key,不可能答出選項外的東西),再由程式把機率正規化。分兩種模式:thinking 關閉(圖表中標為「Claude 不思考」),以及 adaptive thinking、effort low(標為「Claude 思考」)。
- 格式完全可靠:Claude 兩種模式共 474 次呼叫,沒有任何一次格式錯誤。
- 但數字題很有把握地答錯:「美金 1,650 × 匯率 32 是否超過 5 萬台幣」6 次全錯,機率 0.99–1.00;「訊息裡有 3 筆不認得的交易」6 次全錯,機率 0.90–0.95。這兩題 Jev 與 OpenAI 都答對。
- effort 設 low 時幾乎不會啟動思考(237 次只有 3 次),所以兩種模式的結果幾乎一樣。
- Claude 給的是模型「說出來」的機率,不是內部分布;它很少給 1.0,多半落在 0.90–0.98。
- 官方文件說每種 schema 第一次使用要先編譯(之後 24 小時內有快取);本研究計時前都先預熱過,上線時也建議預熱。
使用方式
OpenAI Decisions API
from openai import OpenAI # openai >= 3.26.0
client = OpenAI()
decision = client.decisions.create(
model="gpt-6-luna",
input="我的卡在國外被刷了三筆,可是卡在我身上",
questions=[
{"type": "predicate", "name": "is_fraud", "instructions": "是否疑似盜刷?"},
{"type": "choice", "name": "dept", "instructions": "該分派給哪個單位?",
"choices": [{"value": "card", "description": "帳單、額度"},
{"value": "fraud", "description": "盜刷、詐騙"},
{"value": "other", "description": "以上皆非"}]},
],
)
for a in decision.answers:
if a.type == "refusal": # 一定要先檢查拒答
continue
print(a.name, getattr(a, "choice", None), getattr(a, "probability", None))
TypeSafe Jev
from typesafe_sdk import Choice, Noul, TypeSafeClient # pip install typesafe-sdk
with TypeSafeClient(model="jev-1.13.0") as client: # 讀取 TYPESAFE_API_KEY
r = client.system_one(
state={"verified": False, "message": "卡被偷了快停卡"}, # state 可以是結構化物件
questions={
"need_verify": Noul(instructions="依 `verified` 判斷,是否需要先驗證身分?"),
"dept": Choice(instructions="分派單位?",
criteria={"fraud": "盜刷、詐騙", "other": "以上皆非"}),
},
)
print(r.nouls["need_verify"].noul, r.choices["dept"].choice)
| 差異 | Jev | OpenAI |
|---|---|---|
| 題目容器 | dict,key 自己取 | 陣列,用 name 對應 |
| 選項寫法 | criteria: {"值": "說明"} | choices: [{"value", "description"}] |
| 輸入 | state:字串或 JSON 物件 | input:字串,或文字加圖片的訊息 |
| 拒答 | 無 | 回答可能是 refusal |
選型建議
適合用 Jev
- 純文字、量大的分類與路由,重視成本
- 要靠機率門檻自動分流(自動處理 vs 轉人工)
- 規則型判斷,例如額度審核、金額門檻、日期區間
- 需要固定模型版本、讓結果可重現
適合用 OpenAI Decisions
- 需要判斷圖片,例如證件或卡片照片分類
- 需要內建的拒答機制當安全網
- 假設語氣、雙重否定這類需要理解語意的題目
- 已在使用 OpenAI 生態,需要資料駐留或 HIPAA 等合規選項
不論選哪家都該做的事
- 用自己的標註資料校正門檻,而且依題型分開校正
- 單選題一定留一個「以上皆非」,並注意選項排序:模稜兩可時順序會影響答案
- 自由格式的參數不要交給決策模型生成:先抽出候選值,再讓模型挑
- 把「參數齊不齊」當成一道獨立的題目,不齊就先追問
- 境外 API 不要送出未去識別化的客戶資料;正式導入前確認金融業委外與跨境傳輸規範
研究限制
- 樣本數小:每份題庫 49–75 題,差一兩題就會影響百分比,結論只代表趨勢。
- 錯誤集中在少數題目:兩家都很少答錯,「錯在哪」的結論來自幾道題目的 3 次重複。
- 題目是設計出來的,不是真實客服語料;建議下一步換成去識別化的真實資料,每類至少 20 題。
- OpenAI Decisions 還在 beta,規格、價格、模型都可能改;所有結果以 2026-10-12 的版本為準。
- 延遲受網路影響,從台灣量到的數字不能直接和官方在美國量的數字比較。
- Claude 的 adaptive thinking 在 effort low 時幾乎沒有啟動,本研究沒有測到「先想再答」的真實效果。
附錄
題庫下載
測試輪次
| 輪次 | 題庫 | 受測 | 呼叫次數 |
|---|---|---|---|
| 1 | 基本題庫 × 3 次 + 選項倒序 | OpenAI、Jev | 474 |
| 2 | 基本題庫 × 3 次 + 選項倒序 | OpenAI、Jev、Claude 兩種模式 | 948 |
| 3 | 難題版 × 3 次 + 選項倒序 | OpenAI、Jev | 696 |
| 4 | Function call × 3 次 + 選項倒序 | OpenAI、Jev | 564 |