業務シナリオのカタログ

このリポジトリで測る業務シナリオの一覧です。50件を8つの族に分けて定義しています。

ここに載っているのは「測れる形にできる仕事」だけです。実装済みのものはtasks/*.yaml にあり、それ以外はまだ定義だけの候補です。

全件が満たす前提

1. 正解を先に作り、seed を固定して文面を合成できる。実データは使いません。金額や日付といった値を先に決め、それを人が読む文面に組み立てます。この順序なので、本文と正解が食い違うことがありません。seed が同じなら誰の手元でも同じ入力になります。

2. 採点が決定論で決まる。応答からJSONを取り出し、スキーマを満たすかを見て、値が正解と一致するかを比べます。ラベルを返させる仕事なら文字列の一致だけを見ます。LLMに採点させることも、部分点も、類似度も使いません。

3. 正解が一意である。要約・翻訳・敬語への言い換えのように、正しい答えが複数ありうる仕事は入れません。採点のしかたを1文で書けない仕事は、このカタログに入れません。

列の読み方

実務区分

このカタログは「採点が決定論で書ける仕事」を選んでいます。この選び方は、採点しやすい仕事、つまり計算や検算の側にカタログを引っ張ります。計算・日付演算・構造化済みのデータどうしの突合は、実務ではExcelやコードでやる仕事です。その形でLLMを入れる会社はありません。「LLMは計算が苦手」は測れば出ますが、入れるかどうかの判断材料にはなりません。

同時に何本さばけるかを測る意味があるのは、実際にその形で使われる仕事だけです。そこで全件を2つに分けています。

分け方は次の3つで決めています。

  1. 分担: LLMが担うのは読む・見つける・書き換えるまで。計算・日付演算・ 構造化済みのデータどうしの突合をLLMにさせていないか
  2. : 束で届く仕事か。月に1度の点検作業に、同時32本の測定は要りません
  3. 社外に出せないデータか: 給与・診療・個人情報を扱う仕事は、 ローカルで動かす動機がそのまま導入の動機になります

A. 構造化抽出(12件)

id仕事の内容採点入力長出力形難所使う部品実務区分状態
invoice-json-ja経理の支払処理。請求書からJSONを抜き出す全項目一致短〜中JSON中基準線。明細5〜20行と値引き行社名・日付・金額・品目導入判断implemented
contract-terms-json-ja法務の契約台帳。契約書の基本条項をJSONにする当事者・期間・金額・解約予告の一致JSON小特約による原則の上書き社名・日付・金額導入判断piloted
resume-summary-json-ja人事の応募管理。職務経歴書から応募者サマリを作る職歴・経験年数の一致JSON中在籍期間の合算計算人名・社名・日付・部署・役職導入判断candidate
job-posting-json-ja人材・社内公募の台帳。求人票を構造化する給与レンジ・要件数の一致JSON中「応相談」「〜」の幅表現の正規化社名・金額・部署・住所導入判断candidate
business-card-json-ja営業のCRM入力。名刺のテキストをJSONにする社名・部署・役職・氏名の一致JSON小区切りのない1行テキストの切り分け人名・社名・部署・役職・電話番号・メールアドレス・住所導入判断candidate
payslip-json-ja労務・本人確認。給与明細をJSONにする支給・控除・差引の一致JSON中項目名ゆれと負数人名・金額・日付・部署導入判断piloted
bank-statement-json-ja経理の入金消込。銀行取引明細をJSON配列にする全行の日付・金額・振込人一致JSON中摘要欄に埋まった振込人名、入出金の符号日付・金額・社名・人名導入判断piloted
meeting-invite-json-ja秘書・営業。日程調整メールから予定JSONを作る日時・場所・URLの一致JSON小相対日付(来週火曜)の絶対化人名・日付・住所・URL導入判断candidate
property-listing-json-ja不動産の物件台帳。物件概要をJSONにする賃料・面積・徒歩分の一致JSON中坪/㎡の単位混在住所・金額・数量導入判断candidate
insurance-policy-json-ja代理店の証券管理。保険証券をJSONにする契約者・被保険者・特約リストの一致JSON中契約者≠被保険者の別人パターン人名・社名・日付・金額導入判断candidate
medical-receipt-json-ja医療事務。診療明細をJSONにする点数・自己負担額の一致JSON中点数×10円と負担割合の計算人名・日付・金額・品目導入判断candidate
purchase-order-mail-json-ja受注処理。発注メールから注文JSONを作る品番・数量・納期の一致JSON中本文中の訂正の最終値解決社名・人名・品目・数量・日付導入判断candidate

medical-receipt-json-jaresume-summary-json-ja は、難所に計算(点数×10円、在籍期間の合算)を含みますが、仕事の中心は明細や職歴を読み取るところなので導入判断にしています。計算にあたる部分は、実務ではコードでやります。

B. 分類・ルーティング(7件)

id仕事の内容採点入力長出力形難所使う部品実務区分状態
inquiry-routing-jaCS。問い合わせを担当窓口に振り分けるカテゴリ+緊急度の一致ラベル複数話題メールの主目的判定人名・社名・品目導入判断candidate
expense-account-code-ja経理。経費の摘要から勘定科目を決める科目一致ラベル与えた判定規程の適用力金額・品目・部署導入判断piloted
incident-severity-ja情シス/SRE。障害報告に重大度 Sev1-4 を付ける一致ラベル複数条件のAND/OR適用日付・部署・品目導入判断candidate
applicant-requirements-ja採用。応募者が必須要件を満たすか判定する充足/不足+不足項目の一致JSON小経験年数・資格の照合人名・社名・日付・品目導入判断candidate
solicitation-vs-notice-ja総務の受信箱。営業メールか正当な案内かを判定する一致ラベル取引先の正当な案内との区別社名・人名・メールアドレス導入判断candidate
survey-topic-polarity-jaマーケ/CS。自由回答にトピックと極性を付ける一致ラベル否定形(「安くはない」)品目導入判断candidate
contract-type-ja法務の受付。契約書の種別を判定する一致ラベルタイトルと中身の食い違い社名・日付・金額導入判断piloted

C. 書き換え(6件)

出力が入力とほぼ同じ長さになる族です。指示された箇所だけを直し、それ以外を1字も変えないことを求めます。

id仕事の内容採点入力長出力形難所使う部品実務区分状態
pii-masking-jaログ・議事録の外部共有。個人情報を伏せる正解文と完全一致入力同長人名と社名の区別人名・社名・住所・電話番号・メールアドレス導入判断piloted
date-number-normalize-ja文書管理。日付と数値の表記を統一する一致入力同長和暦→西暦の換算日付・金額参考candidate
address-normalize-ja顧客マスタ整備。住所を正規化する一致入力同長都道府県補完・政令市の区住所参考candidate
company-name-normalize-ja名寄せ前処理。社名を正規化する一致入力同長前株後株を入れ替えない社名参考piloted
contract-fill-in-ja総務・営業事務。契約書の差し込み箇所を更新する更新後全文の完全一致入力同長指示箇所以外を1字も変えない社名・人名・日付・金額参考candidate
transcription-fix-ja広報・経理。転記ミスを修正する修正後全文の一致入力同長正データ表との突合+非変更の保証社名・人名・金額・日付参考candidate

この族で導入判断に残るのは pii-masking-ja だけです。伏せる対象が文中のどれかを決めるのに文の意味が要るためです。残りは置き換えの規則が決まっていて、company-name-normalize-jadate-number-normalize-jaaddress-normalize-ja は辞書と正規表現、contract-fill-in-ja はテンプレートの差し込み、transcription-fix-ja は正データ表との突合で書けます。

D. 照合・検算(6件)

id仕事の内容採点入力長出力形難所使う部品実務区分状態
invoice-po-match-ja支払前チェック。請求書と発注書を突き合わせる不一致項目リストの一致JSON小並び順が違う明細の対応付け社名・品目・数量・金額導入判断candidate
line-total-audit-ja経理・監査。明細の合計を検算する誤り行の特定一致JSON小端数処理の適用品目・数量・金額参考piloted
double-booking-ja秘書・施設管理。ダブルブッキングを検出する重複ペア列挙の一致JSON小時間のまたぎ、境界の扱い人名・日付・部署参考candidate
attendance-vs-request-ja労務。勤怠打刻と申請を突き合わせる乖離日列挙の一致JSON小深夜の日付またぎ人名・日付参考candidate
stock-allocation-ja受注管理。在庫引当の可否を判定する可否+不足数の一致JSON中順次引当品目・数量参考candidate
quote-invoice-terms-ja営業事務。見積と請求の条件一致を確認する逸脱項目の一致JSON小割引率の適用計算社名・金額・品目参考candidate

invoice-po-match-ja は、並び順の違う明細を対応づけるのに表記ゆれ越しの同定が要るので導入判断です。残りは検算・時間の重なり・打刻との突合で、いずれもスクリプトの仕事です。

E. 変換(5件)

id仕事の内容採点入力長出力形難所使う部品実務区分状態
broken-csv-json-jaデータ整備。崩れたCSVをJSONにする一致JSON中引用符内カンマ・欠損のnull化人名・社名・住所・金額参考candidate
shift-request-table-ja店舗管理。シフト希望の自然文を可否表にする一致JSON中否定と選言の論理人名・日付導入判断candidate
memo-actions-ja全職種。短い会話メモをアクション配列にする担当・期限の一致JSON小代名詞解決(発言者特定)人名・日付導入判断piloted
faq-lookup-jaCS。FAQリストと質問から該当番号を返す番号一致(該当なし含む)ラベル言い換え越しの同定と「該当なし」品目導入判断candidate
phone-memo-json-ja受付。電話メモの走り書きを伝言JSONにする一致JSON小省略だらけの体言止め人名・社名・電話番号・日付導入判断candidate

broken-csv-json-ja は、引用符の中のカンマも欠損もパーサの守備範囲なので参考です。

F. 長文・万字級(6件)

id仕事の内容採点入力長出力形難所使う部品実務区分状態
long-report-jaPM。日報の束から決定事項を拾う一致JSON中位置の分散・紛らわし行人名・社名・日付・金額・部署導入判断implemented
contract-clause-locate-ja法務。契約書全文から条項の所在と内容を答える条番号+数値の一致JSON小解除と解約の区別、答えが終盤社名・日付・金額導入判断candidate
mail-thread-latest-ja営業/PM。メールスレッドから最新の合意を取る最終条件の一致JSON小時系列上書き(古い合意を答えない)人名・社名・日付・金額導入判断candidate
policy-lookup-ja総務・労務。規程集から該当規程と数値を引く規程名・条番号・数値の一致JSON小似た規程の混同部署・日付・数量導入判断piloted
audit-log-filter-ja情シス。監査ログから条件に合う行を列挙する行集合の一致JSON中大量の正常行に埋まった少数の該当人名・日付・メールアドレス参考candidate
transcript-todo-ja全職種。会議の書き起こしから発言者別の宿題を出す一致JSON中話者交錯(memo-actions-ja の長文版)人名・日付・部署導入判断candidate

audit-log-filter-ja は、条件に合う行を選ぶのが grep と SQL の仕事なので参考です。

G. 集計・計算(4件)

id仕事の内容採点入力長出力形難所使う部品実務区分状態
expense-category-total-ja経理。経費をカテゴリ別に集計する合計値一致JSON小多数の加算金額・品目・部署参考piloted
overtime-calc-ja労務。勤怠から残業時間を算出する一致JSON小休憩控除と丸めルール人名・日付参考candidate
sales-ratio-ja営業企画。売上表から前月比と構成比を出す一致JSON中割合と四捨五入指定社名・金額・日付参考candidate
timesheet-billing-ja受託業。工数表から請求額を出す一致JSON中人別単価と税端数人名・金額・数量参考candidate

集計・計算族は全件が参考です。expense-category-total-ja の定義に書いてあるとおり、測っているのは加算そのもので、実務ではSUMIFの仕事です。この業務でLLMが担うのは摘要から科目を決めるところで、それは expense-account-code-ja が測っています。

H. 判断系(4件)

id仕事の内容採点入力長出力形難所使う部品実務区分状態
counterparty-watchlist-ja与信管理。取引先リストと注意先を突き合わせる一致・類似一致の列挙JSON小表記ゆれ越しの同定社名・住所導入判断candidate
rfq-missing-fields-ja営業。RFQメールから条件を抽出し不足項目を指摘する不足項目列挙の一致JSON小書かれていないものを言う能力社名・人名・品目・数量・日付導入判断candidate
contract-renewal-due-ja総務の契約管理。基準日から90日以内に更新期限が来る契約を列挙する一致JSON小日付演算+自動更新条項社名・日付参考adopted
minutes-open-issues-jaPM・監査。議事録から保留・反対事項を抽出する一致JSON中決定と保留の区別(long-report-ja の裏面)人名・日付・部署導入判断candidate

contract-renewal-due-ja は、構造化済みの一覧に対する日付演算なので参考です。実務でLLMが担うのは契約書の本文から満了日・自動更新の有無・通知日数を抜くところで、contract-terms-json-ja がおおむね担っています(自動更新の有無と通知日数は、contract-terms の抽出項目に足す候補)。counterparty-watchlist-ja は表記ゆれ越しの同定なので導入判断に残しています。


変調軸(入力の荒れ)

入力の荒れはシナリオではなく、全シナリオに共通してかける変調です。同じシナリオを荒れレベル0〜3で測れば、「きれいな入力なら載るが、現場の書類では落ちる」という差が読めます。

レベル入れるもの
0荒れなし。整形済みの文面
1表記ゆれ。全角と半角、空白、句読点、単位(円/¥、㎡/平米)の混在
2レベル1に加えて誤字・脱字と、OCRの読み違え(1↔l、0↔O、力↔カ)を数%の文字に
3レベル2に加えて、前日分のコピペ残骸・重複行・段落順の乱れ

変調は文面だけにかけ、正解は変えません。 値そのものを壊す変調(金額の桁を落とす、日付を消す等)は入れません。壊すと正解が一意でなくなり、前提3を満たさなくなるためです。荒れレベルはタスク定義の側で指定し、結果のJSONに記録します。


共通部品の集計

「使う部品」列を数えたものです。generators/_lib/ に置く順番の根拠になります。上位7つで、50件のうち大半のシナリオがまかなえます。

部品使うシナリオ数中身
日付31西暦・和暦、相対表現(来週火曜)、期間、月末処理
人名28姓名、敬称、読み仮名
社名27前株・後株、法人格の有無、屋号
金額23円、カンマ区切り、税込税抜、負数
品目15商品名・サービス名・勘定科目・診療行為
部署12部・課・室、会議室名
数量8個数、面積、時間、点数
住所8都道府県〜番地、政令市の区、郵便番号
メールアドレス4ドメイン付き、社内・社外の別
電話番号3市外局番、携帯、内線
役職2部長・課長・主任などの階層
URL1会議URL

パイロットによる採否

候補をいきなり並列掃引にかけると、測る価値のないシナリオに時間を使います。先に小さく回して、モデルによって結果が変わるものだけを残します。

手順。 各候補を 同時1本・12件 で、手元にあるモデルすべてで測ります。モデルは2つあれば足りますが、多いほど判定が確かになります。seed はシナリオごとに1つ決め、全モデルで同じものを使います。

判定は正答率の95%区間(Wilson)で行います。 12件では正答率が1件あたり8ポイント刻みにしかならないので、点の値だけでは差も天井も読めません。

パイロットの結果扱い
どこか2モデルの区間が重ならない採用(adopted)。並列掃引に進める
すべてのモデルで区間の上端が50%未満床(rejected)。どのモデルでも成立しない
すべてのモデルが満点天井の疑い。48件・同時1本の追試で決める
それ以外piloted に留める。12件では差を言えない

天井は12件では判定できません。 12件で全問正解でも区間の下端は76%までしか上がらず、基準の95%を満たしているとは言えないためです。下端を95%より上に持ち上げるには、全問正解でも70件ほど要ります。全モデル満点のシナリオは48件・同時1本の追試に回し、そこで下端が基準を超えたら天井として不採用にします。

空応答は誤答として数えません。 思考を先に吐くモデルは、出力の上限に達するまで思考が終わらず、本文を1文字も出さないことがあります。これはそのモデルの答えの質を測れていない状態なので、床の根拠には使いません。件数は正答率とは別に記録します。あるシナリオで、あるモデルの不正解がすべて空応答だった場合、そのモデルの結果はそのシナリオの判定から外します。使えるモデルが2つ未満になったら piloted に留めます。

例外。 集計・計算族(expense-category-total-ja / overtime-calc-ja /sales-ratio-ja / timesheet-billing-ja)は、床であっても「この種の業務はLLMに載らない」という事実として掲載を残します。ただし並列掃引には進めません。

状態の遷移。

candidate → piloted → adopted           (区間の重ならない差が出た。並列掃引へ)
                    → rejected          (床、または追試で天井と確認)
                    → floor-documented  (床だが事実として残す。集計・計算族のみ)

最初に実装する10件

選定の基準は次の3つです。

この10件が必要とする部品は 日付・人名・社名・金額・品目・部署・数量の7つだけで、住所・メールアドレス・電話番号・役職・URLは要りません。実装済み2件は 短×JSON中 と 長×JSON中 なので、この10件はどちらの組み合わせも使いません。

id入力長×出力形選んだ理由
1company-name-normalize-jaC 書き換え短×入力同長必要な部品が社名だけで、書き換え族の出力形を最小の手数で通せる
2line-total-audit-jaD 照合・検算短×JSON小請求書の明細構造をそのまま流用でき、検算という別の測り方を1件で足せる
3expense-account-code-jaB 分類短×ラベル出力が1語なので、生成が短い仕事のときの並列挙動を初めて測れる
4memo-actions-jaE 変換短×JSON小部品が人名と日付だけで済み、代名詞の解決という抽出とは別の難所が入る
5contract-terms-json-jaA 構造化抽出中×JSON小上位3部品だけで作れて、入力長が中の帯を最初に埋める
6contract-renewal-due-jaH 判断系中×JSON小5番と同じ契約書の部品を使い回せて、日付演算という難所を足せる
7expense-category-total-jaG 集計・計算中×JSON小3番と同じ経費の部品を使い回せて、計算が載るかどうかを早めに確かめられる
8contract-type-jaB 分類中×ラベル入力が長いときにラベル1語を返す組み合わせを埋める
9bank-statement-json-jaA 構造化抽出中×JSON中行数の多い配列を返させる帯を埋める。上位4部品だけで作れる
10policy-lookup-jaF 長文長×JSON小長い入力に対して出力が小さい組み合わせを埋める。読み込みの重さだけを切り出せる