SYSTEM ONE / JEV
Decision Intelligence
Jevを知った次は、「実際にどう使うのか」へ。Choice・Score・Noulという3つの基本プリミティブから、API・TypeScript・CRM・AI Agentへの組み込み方まで、実例を使って理解していきます。
QUICK ANSWERJevはどう使う?
Jevでは、まず判断材料となるStateを渡し、「何を判断してほしいか」をQuestionsとして定義します。
質問にはChoice・Score・Noulの3種類があり、返ってきた型付きの判断結果をコードで組み合わせて、自動処理・LLM・人間レビューなど次のアクションを決めます。
BEFORE YOU START
「Jevとは?」を先に知りたい場合
このページはJevの実践・使い方を中心に解説します。Jevの発表背景やSystem One Modelが生まれた理由を先に知りたい場合は、TypeSafe AIが発表したJevとSystem One Modelの解説をご覧ください。
機能・料金・関連コンテンツをまとめて確認したい場合は、AI Tools|Jevにまとめています。
まず理解したいJevの基本構造
Jevの使い方を理解するときは、まずState → Questions → Decisionsという流れを覚えると分かりやすくなります。
たとえば、顧客から次の問い合わせが来たとします。
SAMPLE STATE
できれば今週中に来てもらえますか?」
この1つのStateに対して、Jevへ複数の質問をまとめて送ることができます。
Jevで最初に覚える3つ|Choice・Score・Noul
TypeSafe AIでは、Jevへ質問する基本単位としてChoice・Score・Noulという3種類のプリミティブを用意しています。
どれ?
複数の候補から1つを選択。問い合わせ分類、担当部署、次に使うAIモデルなど。
どの程度?
順序のある基準で評価。優先度、重要度、リスク、顧客温度など。
当てはまる?
YESである確率を0〜1で取得。緊急性、不正可能性、購入意欲など。
Choice|複数候補から1つ選ぶ
Choiceは、答えが既知の候補のどれかになる場合に使います。
たとえば、問い合わせを「買取」「不用品回収」「その他」に分類したいケースです。
CHOICE EXAMPLE
問い合わせの目的を分類する
この問い合わせの主な目的は?
OPTIONS
purchase → 商品を売却したい
removal → 不用品を処分したい
other → その他
RESULT
choice → purchase
confidence → 0.91
Choiceでは選択された答えだけではなく、各候補のprobabilitiesと、分布の明確さを表すconfidenceも取得できます。
「どの部署へ送るか」「どのAIモデルを使うか」「どのカテゴリに分類するか」のような処理に向いています。
Score|段階に沿って評価する
Scoreは、「低・中・高」など順序のある複数の基準で評価したい場合に使います。
SCORE EXAMPLE
営業優先度を評価する
この問い合わせの営業優先度は?
LEVEL 0
低い:情報が少なく、対応を急がない
LEVEL 1
普通:具体的な相談がある
LEVEL 2
高い:商品・日程・要望が具体的で対応を急ぐ
Scoreは単なるカテゴリ分けではなく、対象がどのレベルに位置しているかを扱うためのものです。
ChoiceとScoreの違い
「営業・技術・請求」のように候補間に順番がないものはChoice。「低・中・高」のように段階があるものはScore、と考えると分かりやすくなります。
Noul|YES / NOを確率で扱う
Noulは、「この条件に当てはまるか?」というYES / NO型の判断に使います。
NOUL EXAMPLE
顧客が早急な対応を求めているか
この顧客は早急な対応を求めているか?
RESULT
noul → 0.94
Noulの値は、YESである確率です。1に近いほどYES寄り、0に近いほどNO寄り、0.5付近なら判断が不確実という見方ができます。
Noulには独立したconfidenceフィールドはありません。
ChoiceとScoreにはconfidenceがありますが、Noulでは0〜1のnoul値そのものがYESである確率です。
Choice・Score・Noulはどう使い分ける?
候補を選ぶ
Choice
営業 / 技術 / 請求など、候補に順番がない場合。
程度を測る
Score
低 / 中 / 高など、順序のあるレベルを測る場合。
条件を判定する
Noul
条件に当てはまる確率そのものを使いたい場合。
3つの質問を1回でまとめて送れる
Jevでは、同じStateについて複数の判断をしたい場合、Choice・Score・Noulを1回のリクエストにまとめることができます。
各質問は同じStateを見ながら独立して評価され、複数の質問を並列に処理します。
ONE REQUEST
「来週引っ越すので、冷蔵庫とテレビを売りたいです。
今週中に来てもらえますか?」
QUESTIONS
intent → Choice
問い合わせの主目的は?
priority → Score
営業対応の優先度は?
urgent → Noul
早急な対応を求めているか?
↓
ANSWERS
intent → purchase
priority → high
urgent → 0.94
Jevでは「大きな質問」を分解する
Jevを使うときに重要なのが、1つの質問へ多くの判断を詰め込まないことです。
あまり向いていない質問
「この顧客が重要顧客かどうかを総合的に分析して、成約する可能性と最適な営業方法を判断してください」
この質問には「顧客価値」「成約確度」「営業方法」など複数の判断が混ざっています。
そこで、判断を小さく分解します。
具体性
問い合わせ内容は具体的か?
意欲
取引意欲は高いか?
緊急性
早急な対応が必要か?
案件価値
高価値案件である可能性は高いか?
既存顧客
過去取引を考慮すべきか?
最後に統合
各結果をコードで重み付けし、最終的な優先度を決める。
つまり、Jevでは「AIに全部考えさせる」のではなく、小さな判断をAIに任せ、それをコードで組み合わせる考え方が重要になります。
confidenceは何に使う?
ChoiceとScoreでは、判断結果と一緒にconfidenceを取得できます。
confidenceを利用すると、「どこまで自動処理し、どこから人間へ確認させるか」をシステム側で制御できます。
confidenceが高い=必ず正しい、ではありません。
自動化する基準値は、実際の業務データを使って検証する必要があります。金銭・契約・個人情報など、誤判定の影響が大きい処理では特に慎重な設計が必要です。
TypeScriptからJevを使ってみる
TypeSafe AIはJavaScript / TypeScript向けSDKを公開しています。Node.js 20以上で利用でき、パッケージ名は@typesafe-ai/sdkです。
STEP 01
SDKをインストールする
APIキーは環境変数TYPESAFE_API_KEYに設定します。
STEP 02
問い合わせをChoiceで分類する
const client = new TypeSafeClient();
const response = await client.systemOne({
state: {
document: “冷蔵庫とテレビを売りたいです。今週中に来てもらえますか?”,
},
questions: {
category: choice(“この問い合わせの主な目的は?”, {
purchase: null,
removal: null,
other: null,
}),
},
});
console.log(response.answers.category.choice);
SDKでは質問から回答型が推論されるため、取得した結果をそのままアプリケーションの分岐処理へ利用できます。
APIを直接呼ぶ場合
SDKを使わず、HTTP APIを直接利用することもできます。
Authorization: Bearer <API_KEY>
Content-Type: application/json
リクエストでは主にstate・model・questionsを指定します。
判断材料
問い合わせ、顧客情報、文書、ログ、構造化データなど。
使用モデル
例:jev-latest。
Questions
Choice・Score・Noulで行わせる判断。
API EXAMPLE
“state”: “今週中に冷蔵庫とテレビを売りたいです”,
“model”: “jev-latest”,
“questions”: {
“urgent”: {
“type”: “noul”,
“instructions”: “この問い合わせは時間的な緊急性がありますか?”
}
}
}
JevをCRMへ組み込むとどうなる?
Jevの使い方として、OmochiXが特に注目しているのがCRMの判断レイヤーです。
たとえば、同じ問い合わせに対して次のような判断を同時に行えます。
問い合わせ種別
新規商談 / サポート / クレーム / その他。
営業優先度
どれだけ早く営業担当が対応すべきか。
緊急性
即時対応が必要な可能性。
その結果をCRM側のコードで利用すれば、例えば次のようなワークフローを組めます。
→ 営業担当へ即時通知
MEDIUM
→ AI営業が一次対応
LOW
→ 自動フォローへ
判断が不確実
→ 人間の確認へ
JevとClaude・ChatGPTを組み合わせる
JevとChatGPT・Claudeは、どちらか一方を選ぶ必要があるものではありません。
Jevに判断を任せ、LLMに生成や複雑な処理を任せる構成が考えられます。
例えばJevが先に「これは営業案件」「優先度が高い」と判断し、その場合だけClaudeやChatGPTへ顧客向け返信文を生成させる、といった構成です。
AI AgentにもJevを組み込める
AI Agentでは、タスクを終えるまでに「次に何をするか」という小さな判断が何度も発生します。
Tool選択
Web検索、DB、メールなど、次に利用するToolを選ぶ。
Skill選択
現在のタスクに必要なAgent Skillを判断する。
Model Routing
タスクに応じて使用するAIモデルを振り分ける。
続行
次のステップへ進む条件を判定する。
再試行
結果が不十分な場合にもう一度処理するか判断する。
人間へ渡す
自動処理を止め、人間の判断を求める。
TypeSafe AIは現在、Claude Codeなどのコーディングエージェントで利用するためのAgent Skillも提供しています。
Jevを使うときの注意点
01|型安全=判断が100%正しい、ではない
Jevは定義された出力空間から型付き回答を返します。ただし、分類や評価そのものを誤る可能性はあります。
02|大きすぎる判断を1問にしない
複数の要素からなる判断は小さい質問へ分解し、コード側で組み合わせます。
03|いきなり完全自動化しない
実データで精度を測り、不確実な案件は人間へ回しながら自動化範囲を広げる設計が重要です。
Jevは普通の生成AIと何が違う?
ここまでの使い方を整理すると、Jevと一般的なLLMでは担当する役割が異なります。
一般的なLLM
- 文章やコードを生成する
- 会話・説明・複雑な推論が得意
- 柔軟な自由形式の出力
- 人が読む結果を作る用途にも強い
Jev
- 型付きの判断を返す
- 分類・評価・ルーティングに向く
- 出力候補を事前に定義する
- コードの中で使う判断部品として設計
Jevの発表背景やSystem One Modelそのものを詳しく知りたい場合は、Jev発表時の解説記事で詳しく紹介しています。
Jevの料金は?
Jevは公開されたばかりで、価格や提供条件が今後変更される可能性があります。
そのためOmochiX Learnでは固定の料金表を持たず、最新価格・提供状況はAI Tools|JevとTypeSafe AI公式情報で確認する形にします。
海外ではすでにJevの実装事例が出始めている
Jevは公開直後ですが、メール分類、Model Routing、Browser操作、AI AgentのSkill選択など、さまざまな実装例が開発者から公開され始めています。
OmochiXでは、こうした第三者の公開事例を「Jev Case」として個別に取り上げ、仕組み・使い方・業務への応用方法を分析していきます。
JEV CASE STUDIES
今後取り上げる実装例
- 大量メールの分類・トリアージ
- AIモデルを自動で選ぶModel Router
- Browser操作での次アクション判断
- Agent Skillの選択・ルーティング
- 低confidence時だけ大型LLMへ回す構成
OmochiXでもJevを実際に検証する
OmochiXでは、Jevを紹介するだけでなく、実際のシステムに組み込んで検証していきます。
OMOCHIX LAB
検証予定
- CRM内のリード優先度判定
- 問い合わせの自動分類・振り分け
- 営業Lead Scoring
- Claude / ChatGPTへのModel Routing
- AI Agentの次アクション選択
- confidenceを使ったHuman-in-the-loop設計
- 実測レスポンス速度とAPIコスト
- 誤判定と質問設計の改善記録
検証状況について
本記事公開時点では、OmochiXによるJevの大規模な独自性能検証は進行中です。実測結果が揃い次第、Lab記事として公開し、このページからも接続します。
Jevを学ぶおすすめルート
NEXT ACTION
Jevは「何を聞くか」より、「どう分解するか」。
Choice・Score・Noulへ小さく分解した判断をコードで組み合わせる。そこにJevの使い方の本質があります。次はJevの製品情報や実際の活用事例へ進んでみてください。