SYSTEM ONEモデル · JEV
チャットではなく、判断。
ソフトウェアが直接使える確率モデル。
Jevはコンテキストと質問を受け取り、型付きの回答、確率、確信度を返します。長文を生成するのではなく、エージェントやワークフロー内の小さな判断を、コードで使える値に変換します。
1回のリクエスト · 並列回答
state
デプロイが3回失敗し、本番環境で500エラーが発生しています。
noul
今すぐ担当者に引き継ぐべきですか?
確信度
0.97
state
in
questions
parallel
output
typed
70–500ms
報告されているエンドツーエンドの範囲
3
Choice · Score · Noul
Typed
出力形式を先に定義
JEVとは何か
最も難しいif文に、不確実性も示せるモデルを。
従来のLLMは文章生成に優れ、JSONを返すよう指示することもできます。しかし実際の自動化ループでは、生成トークン、パーサー、スキーマ検証のそれぞれが遅延を増やし、障害箇所にもなります。
Jevは別の方法を取ります。コンテキストを入力に、質問をプログラムのインターフェースにし、回答をあらかじめ定義した形式に収めます。すべての回答に確率と確信度が含まれるため、自動処理を続けるか人に確認するかをコードで判断できます。
マシンネイティブな知能
チャット画面ではなく、ソフトウェアのために最適化。
TypeSafeはJevを、マシン同士のやりとりを軸に構築したモデル群「System One」の最初のモデルと説明しています。読みやすい回答を作ることではなく、限定的な判断を観測、検証でき、大きなシステムで活用できるようにすることが目的です。
人の好みに合わせて最適化
チャット中心のモデル
- —自然で役立つ文章を作成
- —メッセージと生成トークンの連続
- —幅広い内容を表現できる柔軟な文字列
- —好み、有用性、検証可能な成果
確率調整された判断に最適化
System Oneモデル
- 一度に1つの明確な判断を行う
- コンテキストと型付きの質問
- 制約された値と確率分布
- 正確性、キャリブレーション、速度、一貫性
2つのモデル、2つの役割
JevはLLMの代わりではなく、隣で動きます。
自由形式の推論や文章生成はLLMに任せましょう。ルーティング、ガードレール、スコアリング、トリアージは、ソフトウェアで使える高速な判断モデルに移せます。
人のための回答
従来のLLM
- 01トークン単位の逐次生成
- 02追加の解析が必要な文字列やJSON
- 03確信度を得るには通常、別途指示が必要
- 04チャット、文章作成、自由形式の推論
ソフトウェアのための判断
System One · Jev
- 複数の質問に並列で回答
- 事前に定義した型付きの値
- すべての結果に確率と確信度
- ルーティング、ガードレール、スコアリング、トリアージ
3つの基本タイプ
コードが理解できる形で質問を定義。
1つのコンテキストに複数の質問を含められます。範囲を定義するのはあなた、範囲内で判断するのがJevです。
Choice
候補から選ぶ
意図分類、モデルルーティング、チケットの振り分けに使います。各候補の確率と全体の確信度を返します。
route = [fast, powerful]Score
段階で評価する
リスク、緊急度、品質の評価に使います。スコア、各段階の確率分布、確信度を返します。
urgency = [low, medium, high]Noul
Yes/Noで判断する
安全性チェックやエスカレーションに使います。命題が真である確率を返し、条件分岐に直接利用できます。
needs_human = true?明確な質問を1つ作る
優れたJevの質問は、専門家への短い相談のようです。
範囲を絞った質問なら、モデルへの依頼が明確になります。「このチケットを分析して対応を決めて」のような依頼では、独立した複数の判断が混ざってしまいます。
範囲が広すぎる
このスタートアップの提案を評価してください。
市場規模、技術的な実現可能性、差別化、実行上のリスクなど、複数の独立した観点が含まれています。
個別の質問
要素ごとに質問する。
市場規模、技術的な実現可能性、差別化を別々に評価します。コード側で回答に重みを付け、しきい値を設定し、次の処理を決められます。
優先順位が変わったら、大きなプロンプトを書き直す代わりに、コードの係数や分岐を変更できます。
システムに戻して活用
コンテキストからアクションへ。必要な判断だけを使う。
ビジネスロジックを担うのはJevではありません。Jevは範囲を限定した質問に回答し、キュー、権限、再試行、最終アクションはシステム側で制御します。
01
入力コンテキスト
チケット、メッセージ、JSONオブジェクト、またはエージェントが参照する構造化データ。
02
質問を定義
Choice、Score、Noulを使って自動化したい判断を記述。
03
確率を取得
複数の質問への回答が並列で返り、コードから使える形式と確率が得られます。
04
アクションを実行
ルーティング、ブロック、キューへの追加、不確実な場合の人への確認。
確信度は制御シグナル
回答は判断の半分。もう半分は、どれだけ信頼できるかです。
ChoiceとScoreは、確率分布全体と確信度を返します。確率が一部に集中していれば明確なシグナル、広く分散していれば慎重な対応が必要です。
自動で実行
シグナルが明確で、操作が取り消し可能または低リスクです。
振り分け · 表示 · 続行
確認を挟んで続行
処理は続けながら、確認を求める、情報を補う、レビュー対象として印を付けるなどの対応をします。
確認 · 補足 · レビュー
推測しない
不確実性に応じて人に確認する、詳細を求める、または別の方法に切り替えます。
エスカレーション · 確認 · 切り替え
すべてに使えるしきい値はありません。読み取り専用の操作なら、送金や削除など取り消せない操作より低いしきい値にできます。
活用できる場面
ソフトウェアが1日に何千回も行う小さな判断。
モデルルーティング
簡単なタスクには軽量モデルを使い、複雑な推論が必要な依頼に高コストなモデルを使います。
ツールのガードレール
実行前にリスクのある操作を確認し、削除、支払い、影響の大きい処理を一時停止します。
チケットのトリアージ
意図、緊急度、人への引き継ぎを同時に分類し、キーワードの羅列ではなくシグナルに基づいて振り分けます。
リアルタイムアプリ
長い回答を待てないプロダクトで、高速かつ予測可能な判断を次の画面表示に使います。
組み合わせ可能なパターン
モデルは小さく、システムはより高機能に。
TypeSafeのドキュメントでは、Jevを組み合わせ可能な判断として紹介しています。基本タイプを再利用可能なワークフローにするパターンです。
先行して複数質問
一度のリクエストで必要になりそうな質問をまとめて送り、特定の入力にしか関係しない結果は無視します。
確信度に基づくルーティング
選択結果と確信度を別々のシグナルとして使います。確信度が低ければ、より高性能なモデルに切り替えられます。
複合スコアリング
深刻度、不満度、情報の充足度など独立したScoreの質問を、アプリ側で管理する重みで組み合わせます。
意図による振り分け
高コストまたは専門的なワークフローを開始する前に、依頼を既知の処理先に分類します。
1つのリクエストで複数の判断
スキーマはリクエストで定義し、結果はシステム内で活用。
Jevはコンテキストと質問から始まります。質問は並列で処理され、回答形式は事前に定義されます。
{
"model": "jev-latest",
"state": "Deploy failed twice; prod is returning 500s.",
"questions": {
"urgent": {
"type": "noul",
"instructions": "Needs attention now?"
},
"route": {
"type": "choice",
"options": ["fast", "powerful"]
}
}
}{
"urgent": {
"noul": 0.999
},
"route": {
"choice": "powerful",
"probabilities": {
"fast": 0.08,
"powerful": 0.92
}
}
}エージェントの処理ループ内で
文章を生成するモデルの周囲に、高速な判断レイヤーを追加。
LangChainではTypeSafeClassifierを通してJevを利用できます。Jevの判断をノード、ミドルウェアフック、ツールのワークフローに組み込めます。
LangChainガイドを読むfrom langchain_typesafe import Noul, TypeSafeClassifier
classifier = TypeSafeClassifier()
response = classifier.invoke({
"state": "The deploy failed twice and prod is returning 500s.",
"questions": {
"urgent": Noul(
instructions="Does this need attention now?"
),
},
})
urgency = response.nouls["urgent"].noul同じ仕組みでツール呼び出しも保護できます。実行前に予定された操作を確認し、リスクのある呼び出しをブロックまたは一時停止します。
なぜSystem Oneなのか
自動化に適したインターフェース。
見かけの確信度ではなくキャリブレーション
TypeSafeは学習方針をRLCD(Reinforcement Learning for Calibrated Decisions)と呼び、判断に使える確率を重視しています。
順番待ちの生成ではなく並列処理
質問ごとに会話を最初から始める代わりに、1回のリクエストで複数の質問を並列評価できます。
後から推測せず、最初から型を定義
候補を事前に定義するため、文章の意味を推測することなくソフトウェアで結果を処理できます。
対応範囲を知る
意思決定モデルは、機能を絞ることで力を発揮します。
Jevは生成モデルと決定論的なコードを補完します。出力候補が決まっていて、高速な型付き判断が必要な場面に適しています。
文章、コード、説明、自由形式の計画が必要なら、生成モデルを使いましょう。
長い多段階の推論が必要なら、まず個別のシグナルに分け、その組み合わせはアプリケーションまたは推論モデルに任せましょう。
選択肢や各段階の意味を定義できない場合は、Jevを呼び出す前に仕様を明確にしてください。
重大な判断では、独自データで正確性とキャリブレーションを検証し、人による確認や決定論的な制御を残してください。
プレイグラウンドから本番へ
1つのエンドポイント、1つのサーバー側キー、シンプルな構成。
公開クイックスタートではSystem Oneの単一エンドポイントを使います。プレイグラウンドで試した後、バックエンド経由でリクエストを送信します。
エンドポイント
POST https://api.typesafe.ai/v1/systemone
キーの管理
APIキーは環境変数に保存し、ブラウザーからのリクエストは自分のサーバー経由にしてください。
PYTHON SDK
pip install typesafe-sdk実際の質問から始める
エージェントが推測することを1つ減らす。
実際のコンテキストを用意し、Choice、Score、Noulの質問を定義します。連携先を決める前にプレイグラウンドで結果を確認してください。