比較 / JevModel
AIによるメール分類:受信メールにはルール、LLMプロンプト、型付き意思決定APIのどれを使うか
受信メールをサポート・営業・請求・取引先・低価値キューへ振り分ける方法。スレッドと署名の削り方、ルール/LLM/型付きAPIの比較、中間帯を人に回す設計。
最終更新:
要点:分類するのは最新の1通であり、スレッド全体ではない
- メール分類とは、自動返信・返金・転送の前に、受信メール1通ごとをサポート、営業、請求、取引先、低価値な営業メールなどの有界なルートへ割り当てることです。
- メール固有の作業はモデルの前にあります。引用返信・署名・法的フッターを除き、件名・送信元ドメイン・宛先エイリアスを残し、添付はメタデータとして記述します。テキスト専用モデルは添付を開けません。
- ルールは既知の送信者やエイリアスを安く処理し、LLMプロンプトは雑多な文面に強いがドリフトします。JevModelのChoice+Noulのような型付き意思決定APIは固定ラベルと確率を返すため、高帯は自動振り分け、中帯は人へ回せます。
メール分類はチケット分類やインテント分類と何が違うのか?
サポートチケットは通常1つの整った説明として届きます。メールは封筒のように届きます。From・To・Reply-Toヘッダー、「Re: Fwd: 請求書」のような件名、最上部の最新返信、その下に重なる複数の引用、署名、機密保持フッター、時に添付ファイル。ルートを決めるのは主に最新の人が書いた段落と少数のヘッダーです。どのエイリアス宛てか、送信元ドメインが顧客か取引先か、自動返信やバウンスかどうか。生のメールをそのまま送ると、モデルは引用履歴やフッターを根拠として読み、3週間前のメールの話題で分類しがちです。インテント分類は「書き手が何を望むか」を問い、メール分類はまず「どの部分が今の書き手の発言か」を決める必要があります。キュー設計はsupport-triage、チャネル横断のインテントはintent-classificationを参照してください。
Jev で問い合わせを振り分けるプロダクト/サポート文のインテント分類:ルール、LLM、型付きAPI受信メール:ルール vs LLMプロンプト vs 型付き意思決定API
本番の受信箱の多くは3層すべてを使うことになります。既知の事実はルール、本文はモデル、しきい値はコード。下表は保守性と失敗モードの比較でありベンチマークではありません。どの選択肢も自社メールのラベル付きテストセットの代わりにはなりません。
How to classify text with the JevModel APIJev or rules?Jev vs GPT・Claude:判断層を選ぶ| 観点 | メールルール/フィルター | LLMプロンプト+解析 | 型付きAPI(JevModel Choice/Noul) |
|---|---|---|---|
| 得意なシグナル | ヘッダー:宛先エイリアス、既知の送信元ドメイン、自動返信・バウンスの印 | 本文:言い換え、複数要件の混在、婉曲な言い回し | 整形済み本文+ヘッダーを、ルートごとの明文化された基準で評価 |
| 典型的な失敗 | 新しい言い回しを見逃し、ルールが増えすぎてどれが発火したか誰も分からない | 引用履歴を現在の内容として読む、ラベルを作り出す、プロンプト編集後にJSON形がずれる | 基準が弱いと確率が分散する。長いスレッドはstate上限に収まるよう削る必要がある |
| 不確実性 | なし。ルールは発火するかしないか | 自己申告の確信度テキストで校正しにくい | 選択肢ごとの確率があり、しきい値設定とラベル照合ができる |
分類器に送る前にメールをどう整形すべきか?
メールの解析は自分のコードで行い、小さなJSON stateだけを送ります。残すもの:「Re:」「Fwd:」を除いた件名、宛先エイリアス(billing@、sales@)、送信元ドメインとそれが顧客・取引先リストにあるか、最新メッセージの本文。除くもの:引用返信(「>」で始まる行や「On … wrote:」以降のブロック)、署名、機密保持フッター、トラッキングピクセル、HTML。転送チェーンは転送者のメモと元送信者の最初の段落の短い抜粋を「転送」と明記して残します。添付はファイル名と種類だけを渡します。JevModelはテキストかJSONを受け付け、ファイルや画像は受け付けないため、「invoice.pdf添付」は手がかりであってPDFの中身の証拠ではありません。JevModelではシリアライズ後のstateとリクエスト全体がそれぞれ8,000文字以内である必要がありますが、整形済みメールならほぼ収まります。例ではルート用のChoice質問と、今すぐ人が見るべきかのNoul質問を1つずつ使います。
JevModel API:リクエストと応答Choice, Score, and NoulJevはマルチモーダル/ダウンロード可能なモデルか?JevModelの実態{
"state": {
"subject": "Invoice 2291 charged twice",
"to_alias": "billing@",
"sender_domain": "customer-example.com",
"sender_known_as": "customer",
"latest_message": "Hi, our card was charged twice for invoice 2291 this morning. Can you refund the duplicate?",
"attachments": [
"receipt.png (not read)"
]
},
"questions": {
"route": {
"type": "choice",
"instructions": "Which team should own the newest message in this email? Ignore attachment names as evidence.",
"criteria": {
"support": "Product questions, bugs, how-to or account access problems.",
"sales": "Pricing, plans, demos, procurement or purchase questions from prospects.",
"billing": "Charges, refunds, invoices, receipts or payment method changes.",
"vendor": "Messages from suppliers or partners about their own services or invoices to us.",
"low_value": "Cold outreach, newsletters, automatic notifications needing no action."
}
},
"needs_person_now": {
"type": "noul",
"instructions": "Should a person read this email today instead of waiting in a queue?",
"criteria": {
"true": "Money, access, legal or a clear deadline is at stake today.",
"false": "It can wait in the normal queue."
}
}
}
}信頼度しきい値でメールをどう人に回すべきか?
ルールごとに3つの帯を、自社の保留メールで設定します。高帯:チームのフォルダーやキューへ移動しラベル付け(低リスクで取り消し可能な動作)。中帯:上位2候補ルートを添えて共有レビュー画面へ。「デモありがとう、ところで請求書が違う」のような混在メールはここに入ります。低帯や2ルートの僅差:共通受信箱に残します。ルートラベルだけで返金・契約関連の返信・メール削除といった取り消せない処理を起動しないでください。コード側で別のチェックを要求し、needs_person_nowのようなNoul質問でルートに関係なく緊急メールを前に出します。billing@とinfo@では構成が大きく違うため、エイリアスごとに帯を調整します。一般的なパターンはconfidence-and-abstentionにあります。
Jev probability, confidence and human-review thresholdsJev AI Decision Flows と人による確認メール分類器の回帰テストはどう行うか?
実在のメールを匿名化してfixtureを作り、固定します。メール振り分けを特に壊す形をカバーします。引用履歴が別の話題の返信、転送者が「下記参照」としか書いていない転送チェーン、不在通知、配信エラー(バウンス)、billing@宛ての取引先請求書(billingではなくvendor)、個人アドレスから書く顧客、第2言語のメール、中帯に入るべき混在依頼。パーサーと分類器を一緒に実行します。回帰の多くはモデルではなく整形処理の変更から生じるためです。JevModelのConsole → BatchではCSV・TXT・JSONLを固定質問でアップロードし、行ごとの回答をエクスポートしてスクリプトでラベルと突き合わせられます。Batchは正解率を計算しません。ゴールデンのルートが反転したり、中帯fixtureが棄権しなくなったら変更を不合格にします。手順はevaluationとbatch-text-classification-apiを参照してください。
Evaluate a Jev workflowJevModel API によるバッチテキスト分類JevModelがメール振り分けに向くとき・向かないとき
JevModelはホスト型の意思決定APIです。整形したメールをstateとして、1〜8個の名前付き質問と共に/api/v1/systemoneへPOSTすると、OpenRouter経由で固定モデルtypesafe/jev-1.13が呼ばれます。メールワーカー、ヘルプデスク、CRM同期など複数サービスが確率付きの同一ルート定義を共有したいとき、中帯を推測せず人に届けたいときに向きます。Choiceは2〜12ルート、Scoreは緊急度などの順序付き段階、Noulははい/いいえを確率で答えます。スパムやフィッシングのフィルターには向きません。メールプロバイダーのスパム判定と送信者認証チェックを前段に置いてください。添付・画像・スキャンPDFは読めず、オープンソースではなく重みのダウンロードもありません。無料の認証済みアカウントはUTC日ごとに成功5回までなので、忙しい共有受信箱には有料プランかバッチ計画が必要です。ヘルプデスク向けはzendesk-ai-ticket-classificationを参照。
JevModel の料金と Jev 無料枠Zendesk AIチケット分類とルーティング:内蔵Intelligent Triageと独自分類器LLM-as-a-Judge:自由形式プロンプト、ルーブリック採点、棄権付きの型付きジャッジJev で問い合わせを振り分けるプロダクト/サポート文のインテント分類:ルール、LLM、型付きAPIJev probability, confidence and human-review thresholdsJevModel API によるバッチテキスト分類顧客フィードバック分類:テーマは1つ、優先度は別、感情分析だけでは足りない理由よくある質問
AIメール分類器は添付ファイルを読めますか?
JevModelは読めません。テキストかJSONのみ受け付けます。添付が重要なら、自前のOCRやパーサーで先に文字を抽出し、短い抜粋をstateに入れてください。それ以外はファイル名と種類を手がかりとして渡すだけにします。
スパムフィルターにLLMや意思決定APIを使うべきですか?
いいえ。スパム、フィッシング、送信者認証はメールプロバイダーに任せてください。分類器はその後段で、営業メール、ニュースレター、自動通知など正当だが返信不要な業務カテゴリーに使います。
support-triageやZendeskのガイドとどう違いますか?
それらのガイドは既に存在するチケットから始まります。本ページはその前段、ヘッダー・引用履歴・署名・添付を含む生メールをきれいなstateにし、サポート以外も含むチーム間で振り分ける工程を扱います。
メールの中帯しきい値はどう決めますか?
エイリアスごとに保留セットをラベル付けして実行し、自動振り分けがチームの許容範囲で正しくあり続ける最低確率を選びます。その点と低帯の間はすべてレビューへ。パーサーや基準を変えたら再確認します。
JevModel は独立したプロジェクトで、TypeSafe AI とは提携していません。