企業年金基金の事務局に届く給付・手続の問い合わせに、規約と手続の案内を根拠にして回答の下書きを作る
企業年金基金の事務局に届く給付と手続の問い合わせに、規約と手続の案内から根拠の条項を引いて回答の下書きを作ります。給付額や加入者期間のような個人の記録が要る箇所は、AIに書かせず空欄にして職員へ渡します。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 対象業界
- 商社/製造/金融
- 対象部門
- 人事/総務
- 対象業務
- 問い合わせ対応/書類作成
- 主な課題
- 人手が足りない/問い合わせが多い/属人化している
- AIで行う処理
- 生成
- 主な効果
- 品質標準化/属人化解消/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 受付担当がメール・Webフォーム・書面を受付台帳に登録し、送り主が加入者か受給者か中途脱退者かを加入者番号で確かめる
- 担当職員が問い合わせを読み、質問がいくつ含まれているかを数える
- 規約と給付規程の PDF を開き、該当しそうな条文を探す。手続の案内とよくある質問の資料も開く
- 退職者からの問い合わせなら、退職日を記録管理のシステムで確かめ、その時点で施行されていた規約の版を探す
- 個人の記録が要る質問なら、記録管理のシステムで加入者期間や給付の見込額を照会する
- 過去の似た回答を受付台帳から探し、言い回しをまねて回答文を書く
- 係長が回答文を読み、条文の引き方と数字を確かめてから送る
- 人受付担当が問い合わせを受付台帳に登録する。書面はスキャンして添付する
- 自動登録をきっかけに処理が動き、加入者番号から区分(加入者/受給者/中途脱退者)と、資格の取得日・喪失日を引く
- 自動本文から氏名・住所・電話番号・口座番号を伏せ、基準日(退職者は資格の喪失日、在職者は今日)を決める
- 自動規約・規程・手続の案内の索引から、基準日に施行されていた版だけに絞って根拠を検索する
- 自動Azure OpenAI が質問ごとに分け、根拠の条項を付けて回答の下書きを作る。個人の記録が要る箇所は空欄の印にする
- 自動下書きの数字と条番号を検査し、根拠に無い数字や存在しない条番号があれば印を付ける
- 人担当職員が下書きを読み、空欄の印の箇所を記録管理のシステムで照会して埋める
- 人係長が確認し、加入者へ送る
- 自動送った回答と、職員が直した箇所を受付台帳に残す
各工程の詳しい説明を読む
- 受付担当がメール・Webフォーム・書面を受付台帳に登録し、送り主が加入者か受給者か中途脱退者かを加入者番号で確かめる
- 担当職員が問い合わせを読み、質問がいくつ含まれているかを数える
- 規約と給付規程の PDF を開き、該当しそうな条文を探す。手続の案内とよくある質問の資料も開く
- 退職者からの問い合わせなら、退職日を記録管理のシステムで確かめ、その時点で施行されていた規約の版を探す
- 個人の記録が要る質問なら、記録管理のシステムで加入者期間や給付の見込額を照会する
- 過去の似た回答を受付台帳から探し、言い回しをまねて回答文を書く
- 係長が回答文を読み、条文の引き方と数字を確かめてから送る
(a)同じ条文を毎回探し直している。 規約は本文と別表と附則で100ページを超え、給付規程と手続の案内を合わせると数百ページになります。「年金の受取開始を遅らせられるか」の答えがどの条にあるかを覚えているのは、在籍10年を超える職員だけです。 新しい職員は3番に時間がかかります。
(b)改正前後の規約を取り違える。 4番を飛ばすと、今の規約で答えてしまいます。附則の経過措置で、ある日付より前に加入していた人だけ旧来の扱いになるという書き方が多く、本文だけ読むと見落とします。
(c)規約の説明と個人の記録が混ざる。 「あなたの場合は月額○円です」と書くとき、その金額が記録管理のシステムで照会したものか、規約の算定式から職員が手で計算したものかが、回答文からは分かりません。 係長の確認で数字の出どころを聞き返すことが、毎週あります。
(d)言い回しが職員ごとに違う。 「支給されます」と「請求に基づいて裁定のうえ支給します」では、加入者の受け取り方が変わります。前者は約束に読めます。 同じ質問に職員によって違う書き方をしていると、加入者同士の話で食い違いが表に出ます。
- 【人】 受付担当が問い合わせを受付台帳に登録する。書面はスキャンして添付する
- 【自動】 登録をきっかけに処理が動き、加入者番号から区分(加入者/受給者/中途脱退者)と、資格の取得日・喪失日を引く
- 【自動】 本文から氏名・住所・電話番号・口座番号を伏せ、基準日(退職者は資格の喪失日、在職者は今日)を決める
- 【自動】 規約・規程・手続の案内の索引から、基準日に施行されていた版だけに絞って根拠を検索する
- 【自動】 Azure OpenAI が質問ごとに分け、根拠の条項を付けて回答の下書きを作る。個人の記録が要る箇所は空欄の印にする
- 【自動】 下書きの数字と条番号を検査し、根拠に無い数字や存在しない条番号があれば印を付ける
- 【人】 担当職員が下書きを読み、空欄の印の箇所を記録管理のシステムで照会して埋める
- 【人】 係長が確認し、加入者へ送る
- 【自動】 送った回答と、職員が直した箇所を受付台帳に残す
7番目が、この設計の分かれ目です。 金額や期間を埋めるのは、記録管理のシステムを見た職員です。AIは「ここに加入者期間が入る」という場所を示すだけで、値は書きません。 空欄が多い下書きに見えますが、それが正しい姿です。
6番目の検査は、AIの出力を信じないための工程です。 根拠の文書に無い数字が下書きにあれば、規約の算定式から計算したか、作った数字です。どちらであっても、送る前に止めます。
02今回想定するシステム構成
問い合わせ(メール・Webフォーム・書面のスキャン) │ 受付台帳に登録 ▼【トリガー】受付台帳への新規登録 Azure Functions ── 加入者番号の照合、区分と資格の取得日・喪失日を引く │ 個人情報の伏せ字、基準日の決定 ▼ Azure AI Search ── 規約・給付規程・手続の案内・確定済みの回答例 │ 基準日に施行中の版だけに絞り、全文検索とベクトル検索を併用 ▼ Azure OpenAI(構造化出力)── 質問の分解、区分、根拠付きの下書き │ ① 質問ごとの回答 ② 根拠の文書と条番号 │ ③ 個人の記録が要る箇所(空欄の印) ④ 人へ回す理由 ▼ Azure Functions ── 数字と条番号の検査、受付台帳への書き戻し ▼ 【担当職員が空欄を記録管理のシステムで埋め、係長が確認して送付】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | Claude API、Gemini API |
| 連携 | Azure Functions(受付台帳の監視、照合、伏せ字、検査、書き戻し) | Azure Logic Apps |
| 文書検索 | Azure AI Search(規約・規程・案内の索引。施行日で絞り込み) | 規約を条ごとに分けた一覧と、質問の種類からの手引き |
| 保管 | Azure Blob Storage(規約の各版の原本、問い合わせの添付) | SharePoint のドキュメント ライブラリ |
受付台帳と記録管理のシステムは、新しく足すものではありません。 この構成は受付台帳に下書きを書き戻すだけで、記録管理のシステムには触りません。 個人の記録は、職員が照会画面で見るものです。
Azure OpenAI を選ぶ理由は、構造化出力で JSON スキーマに沿った出力を受けられることです。 公式の説明では、構造化出力は推論の呼び出しで指定した JSON スキーマに従うもので、Chat Completions API と Responses API の両方で使えます。 質問の区分を列挙型で縛れるので、決めた区分以外の値が受付台帳に入りません。基金の加入者情報を Azure の中で扱い、契約と権限の管理をまとめられることも理由です。
ただし、Azure OpenAI の「持ち込みデータ」(On Your Data)の機能は使いません。 公式ページでは、構造化出力は持ち込みデータのシナリオではサポートされていないとされています。検索は Azure AI Search を自前で呼び、見つかった条文をプロンプトに入れます。
Azure AI Search のハイブリッド検索を使う理由は、条番号と言い換えの両方に当てるためです。 公式の説明では、ハイブリッド検索は全文検索とベクトル検索を1つの要求で並行して実行し、相互ランク融合(RRF)で結果をまとめます。 全文検索は「第41条」「脱退一時金」のような完全一致に強く、ベクトル検索は「辞めたらお金はどうなる」のような言い換えに強いとされています。フィルターも併用できるので、施行日での絞り込みを検索と同じ要求で行えます。
03どうやって実装するのか
処理の起点を決める
受付台帳への新規登録を起点にします。 メールとWebフォームは受付担当が台帳に登録した時点、書面はスキャンを添付して登録した時点です。メールの受信そのものを起点にしません。 基金の代表アドレスには、受託機関からの連絡、母体企業の人事からの照会、広告も届きます。加入者からの問い合わせかどうかを判断して台帳に載せるのは、受付担当の仕事として残します。
処理は1件ずつ、登録の直後に動かします。 夕方にまとめて動かすと、翌朝の担当職員は前日分の下書きが一度に並んだ状態から始めることになり、急ぎの問い合わせ(受給者の死亡の連絡など)が埋もれます。台帳に「急ぎ」の列を設け、受付担当が付けた印を下書きの一覧の並び順に使います。
同じ人から続けて届いたものは、前の問い合わせと関連付けます。 加入者番号が同じで、前の問い合わせが未回答のまま14日以内なら、新しい下書きを作らず、前の問い合わせへの追記として扱います。 2通に別々の回答を送ると、内容が食い違ったときに説明がつきません。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 問い合わせの本文 | メール・Webフォームの本文、書面のスキャンを読み取った文字 | 受付台帳 |
| 送り主の区分 | 加入者/受給者/中途脱退者、実施事業所、資格の取得日・喪失日 | 加入者名簿(基金の台帳) |
| 規約と給付規程 | 本文・別表・附則を条ごとに分けたもの。改正ごとの版と施行日 | Azure AI Search の索引 |
| 手続の案内 | 加入者のしおり、請求書の記入例、手続の一覧 | 同上 |
| 確定済みの回答例 | 係長が「例として残す」と印を付けた過去の回答。個人の記録は伏せたもの | 同上 |
質を決めるのは、規約の版と施行日です。 索引の各条に「施行日」と「失効日」の2つの日付を持たせ、改正のたびに旧い版を消さずに失効日を入れます。旧い版を消すと、中途脱退者への回答の根拠が無くなります。
附則の経過措置は、本文とは別の条として索引に入れ、どの条に効くかを書き添えます。 「第○条の規定にかかわらず、平成○年○月○日前に加入者の資格を取得した者については」という形の附則は、本文の条と一緒に引かれないと意味を持ちません。
確定済みの回答例は、多くても200件ほどに絞ります。 過去の回答を全部入れると、誤っていた回答も根拠として拾われます。係長が「この書き方でよい」と確かめたものだけを入れます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 本文と添付 | 受付台帳の新規の行 | 質問の分解と回答の材料 |
| 区分と資格の日付 | 加入者名簿を加入者番号で引く | 基準日の決定、答えてよい範囲の判断 |
| 根拠の条文 | Azure AI Search のハイブリッド検索(施行日で絞り込み) | 回答の根拠 |
| 手続の案内の該当箇所 | 同上 | 必要な書類と提出先の説明 |
検索は質問ごとに行います。 1通に「住所が変わった」「年金はいつから受け取れるか」の2つが含まれていれば、まずAzure OpenAI に質問を分けさせ、質問ごとに検索をかけてから下書きを作らせます。 1通まとめて検索すると、どちらか一方の根拠しか上位に来ません。
絞り込みの条件は、施行日が基準日以前で、失効日が基準日より後(または空)の条だけです。 基準日は、在職中の加入者と受給者は今日、中途脱退者は資格の喪失日とします。中途脱退者が「今から受け取る手続」を聞いているときは、手続の案内だけ今日の版を使い、給付の要件は喪失日の版を使います。この使い分けを、質問の種類ごとの表として持っておきます。
AIへ渡す前に整形する
- 書面の読み取り … 書面で届いたものは、スキャンを Azure AI Document Intelligence の読み取りにかけて文字にします
- 加入者番号の照合 … 本文と台帳の加入者番号を名簿で引き、氏名の一致を確かめます。一致しなければ処理を止めて受付担当へ戻します
- 個人情報の伏せ字 … 氏名・住所・電話番号・口座番号・基礎年金番号を、
[氏名][口座]のような印に置き換えます。回答の下書きに個人情報は要りません - 基準日の決定 … 区分と資格の喪失日から、上に書いた規則で決めます
- 本人確認の状態の付与 … 登録済みの住所・メールアドレスから届いたものか、Webフォームのログインを経たものかを印にします
- 長文の分割 … 書面で何ページにもわたる不服の申し出は、要約の対象にせず、人へ回す印を付けます
3番目は、下書きの質のためではなく、外へ出す範囲を絞るためです。 回答の下書きを作るのに、加入者の氏名も口座番号も要りません。要らないものは最初から渡しません。
5番目は、答えてよい範囲を決めるのに使います。 本人確認が取れていない経路から「私の年金額を教えて」と届いたら、一般的な説明と照会の手順だけを答え、個人の記録には触れません。 この判断は AI ではなく、印を見た規則で行います。
AIに処理させる
させるのは、質問を分けること、質問ごとに区分を付けること、根拠の条文を引いて回答の下書きを書くこと、個人の記録が要る箇所に空欄の印を置くことです。
| させること | 中身 |
|---|---|
| 質問の分解 | 1通に含まれる質問を1つずつに分ける |
| 区分 | 手続/給付の仕組み/個人の記録の照会/裁定・不服/範囲外(公的年金・税) |
| 回答の下書き | 渡した条文と案内だけを根拠に、加入者が読める言葉で書く |
| 根拠の記録 | 文書名、版、条番号、写した一文 |
| 空欄の印 | 加入者期間、給付の見込額、受給開始の年月など、個人の記録で決まる値の位置 |
| 人へ回す理由 | 根拠が見つからない、規約の解釈が分かれる、不服の申し出である |
| させないこと | 理由 |
|---|---|
| 給付額・加入者期間の記載 | 記録管理のシステムの値でなければならない。算定式からの計算も禁じる |
| 支給の約束 | 給付は受給権者の請求に基づき、事業主等が裁定する(確定給付企業年金法第30条) |
| 脱退一時金と移換のどちらがよいかの助言 | 本人の生活設計の判断。両方の手続を並べて書くまでにする |
| 公的年金・税の回答 | 基金の規約の範囲外。窓口を案内するだけにする |
| 不服の申し出への回答 | 係長と基金の判断が要る |
1行目がいちばん起きやすい失敗です。 規約の別表に給付の算定式があり、問い合わせに「勤続20年」と書いてあれば、AIは計算して金額を書きます。算定式は正しくても、その人の給与の記録や経過措置で値は変わります。 書かせない理由は、計算が難しいからではなく、記録のほうが正しいからです。
2行目も同じくらい重要です。 確定給付企業年金法第30条では、給付を受ける権利は受給権者の請求に基づいて事業主等が裁定するとされています。「支給されます」と書くと、裁定の前に結論を伝えたことになります。 「請求をいただいたうえで、基金が支給の要件を確かめます」という書き方に統一します。
3行目は、選択肢の説明と助言の境目の話です。 法第41条の脱退一時金と、法第81条の2の他の確定給付企業年金への移換は、どちらも中途脱退者が選べる手続です。それぞれの手続と期限を並べて書くまでがこの構成の役目で、どちらを選ぶべきかは書きません。
指示内容を固定する
あなたは企業年金基金の事務局で、加入者・受給者・中途脱退者からの
問い合わせに回答の下書きを作る担当です。
下書きは事務局の職員が確かめてから送ります。
【使ってよい根拠】
- 【根拠の条文】として渡した規約・給付規程の条と、手続の案内の箇所だけ
- 根拠の条文はすべて【基準日】に施行されていた版です
- 渡されていない条文や、一般的な知識で補わないでください
【やること】
1. 問い合わせに含まれる質問を1つずつに分ける
2. 質問ごとに category を1つ選ぶ
procedure / benefit_rule / personal_record / decision_or_appeal / out_of_scope
3. 質問ごとに回答の下書きを書き、根拠にした条を basis に入れる
basis.quote には根拠の文書から写した一文をそのまま入れる
【厳守事項】
- 給付の金額、加入者期間、受給開始の年月など、その人の記録で決まる値は
書かないでください。その位置に {{要照会:項目名}} と書き、
record_fields に項目名を入れてください。
- 規約の別表に算定式があっても、計算しないでください。
- 「支給されます」「受け取れます」と書かないでください。
「ご請求をいただいたうえで、基金が支給の要件を確認いたします」と書いてください。
- 脱退一時金と移換のどちらが有利かを書かないでください。
両方の手続を並べて説明するまでにしてください。
- 公的年金(老齢基礎年金・老齢厚生年金)と税金の質問には答えず、
category を out_of_scope にしてください。
- 根拠の条文で答えられない質問は、answer を空にし、
escalate_reason に「根拠なし」と書いてください。
- 附則に経過措置がある条は、本文と附則の両方を basis に入れてください。
- 問い合わせの文面に書かれていない事情(勤続年数、退職の理由など)を
推測で補わないでください。不明なら {{要照会:項目名}} にしてください。
【送り主の区分】{member_type}
【基準日】{reference_date}
【本人確認の状態】{identity_status}
【問い合わせ(個人情報は伏せ字済み)】{inquiry_text}
【根拠の条文】{retrieved_articles}
【確定済みの回答例】{approved_examples}
「計算しないでください」を、金額を書かない指示とは別に書いているのには理由があります。 金額を書くなとだけ言うと、「月額の目安は加入者期間×○円です」と式の形で答えを書くことがあります。読む側にとっては金額を書いたのと同じです。
「推測で補わない」も明記が要ります。 「定年で辞めました」と書いてあれば、AIは勤続年数を規約の定年から逆算します。逆算した勤続年数で支給要件を満たすと書けば、それは記録を見ずに出した結論です。
出力形式を固定する
次の形の JSON で受け取ります。
{
"inquiry_id": "",
"questions": [
{
"question": "",
"category": "procedure | benefit_rule | personal_record | decision_or_appeal | out_of_scope",
"answer": "",
"basis": [
{ "doc": "", "version": "", "article": "", "quote": "" }
],
"record_fields": [""],
"escalate_reason": ""
}
],
"overall_note": ""
}
1つ目の理由は、category を列挙型で縛れることです。 構造化出力では列挙型が使えます。受付台帳の集計がこの区分で行われるので、表に無い値が入ると集計が崩れます。
2つ目は、basis の quote を後段で照合できることです。 下書きを台帳に書き戻す前に、quote の文字列が索引の該当の条に本当にあるかをプログラムで確かめます。無ければ、条番号ごと作られた根拠です。 その質問の下書きを空にし、人へ回す印を付けます。
3つ目は、record_fields で職員の作業が決まることです。 「加入者期間」「年金の見込額」と並んでいれば、職員は記録管理のシステムでその項目だけを照会します。本文の {{要照会:項目名}} と record_fields の数が合わなければ、下書きを差し戻します。
スキーマの書き方には制約があります。 公式ページでは、すべてのフィールドを必須にし、オブジェクトに additionalProperties: false を設定すること、文字列の minLength や pattern、配列の minItems などがサポートされないことが書かれています。最大100個のプロパティと5段の入れ子という上限もあります。「basis が1件以上あること」はスキーマで強制できないので、後段の検査で見ます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付台帳 | Azure Functions から読み書き | 新規の行の検知、下書きと区分の書き戻し |
| 加入者名簿 | 読み取りのみ | 区分、資格の取得日・喪失日 |
| Azure AI Search | 検索の API | 施行日で絞った根拠の条文 |
| Azure OpenAI | 推論の API(構造化出力) | 質問の分解と下書き |
| 記録管理のシステム | 連携しない | 職員が照会画面で見る |
記録管理のシステムとつながないのは、意図してのことです。 つなげば空欄を自動で埋められますが、照会の権限を持つのは職員で、照会の記録も職員の名前で残るべきものです。また、受託機関のシステムに基金側から自動で問い合わせる経路を作ると、委託の契約と監査の範囲が変わります。
下書きは受付台帳の別の列に書き、送る文面の列には書きません。 職員が下書きを写して直したものだけが、送る文面の列に入ります。
人が確認する
全件、担当職員と係長の2段階で確かめます。 AIの下書きをそのまま送る経路は作りません。
- 区分を確かめる …
decision_or_appealとout_of_scopeは、下書きを読む前に係長へ回します - 根拠を開く …
basisの条を索引で開き、版と施行日が基準日に合っているかを見ます - 空欄を埋める …
record_fieldsの項目を記録管理のシステムで照会し、値を書き入れます - 言い回しを確かめる … 支給の約束になっていないか、選択の助言になっていないかを読みます
- 係長が確認して送る … 直した箇所は受付台帳に記録します
2番目を省かないでください。 施行日の絞り込みは、索引の日付が正しく入っていることが前提です。改正のときに失効日の入れ忘れがあると、旧い条と新しい条が両方引かれます。 職員が版を目で確かめる工程は、索引の誤りに気づく唯一の場所です。
目標は、1件あたりの職員の手を12分にすることです。 30分のうち、条文を探す12分と回答文の骨組みを書く時間が減ります。空欄の照会と言い回しの確認は残ります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 加入者番号が名簿に無い、氏名が一致しない | 処理を止めて受付担当へ戻す。別人の記録で下書きを作らない |
| 本人確認が取れていない経路からの個人の記録の照会 | 一般的な説明と照会の手順だけを下書きにする |
| 根拠の条文が見つからない | escalate_reason に「根拠なし」。下書きを作らずに係長へ |
quote が索引の条文に無い | その質問の下書きを空にし、人へ回す |
| 根拠に無い数字が下書きにある | 数字に印を付け、職員の確認を必須にする |
| 基準日に施行中の版が2つ引かれる | 索引の失効日の誤り。下書きを止め、索引の担当に知らせる |
| 受給者の死亡の連絡 | 下書きを作らず、急ぎの印を付けて担当へ。遺族の給付の手続は人が案内する |
| 不服・苦情の申し出 | 要約もせず、原文のまま係長へ回す |
| Azure OpenAI が応答しない、構造化出力の拒否 | 受付台帳の状態を「下書きなし」にして、従来の手順で処理する |
6行目の「数字の検査」は、正規表現で足ります。 下書きの中の数字(年数、月数、金額、年齢)を拾い、basis の quote の中に同じ数字があるかを見ます。規約に「60歳」とあって下書きに「60歳」とあれば通し、規約に無い「月額3万2千円」があれば止めます。
7行目は、AIの出来とは関係なく人へ回します。 受給者が亡くなった知らせに、規約の条文を引いた定型の文面を返すのは、内容が正しくても失礼になります。
記録を残す
- 問い合わせの原文(伏せ字前)と、伏せ字後に AI へ渡した文
- 基準日と、そのときの検索の条件(施行日の絞り込み)、引かれた条の一覧
- Azure OpenAI の出力の JSON 全文と、数字・
quoteの検査の結果 - 職員が直した箇所の差分と、空欄に入れた値の照会日時
- 係長の確認の記録と、送った文面
- 区分ごとの件数と、人へ回した理由の件数
4つ目の差分がいちばん役に立ちます。 職員が毎回同じ書き換えをしている箇所は、プロンプトか確定済みの回答例を直すべき箇所です。月に一度、差分の多い区分を見て、回答例を足すか入れ替えます。
3つ目の検査の結果は、索引の傷みの指標にもなります。 quote が見つからない件数が増えたら、規約の改正が索引に反映されていないことを疑います。
04実装レベルの3段階
最小構成では、版の取り違えを防げません。 職員が貼った章が今の規約なら、今の規約で答えます。確かめるための段階です。 半自動化で、1件30分が18分程度になります。 条文を探す時間はほぼ無くなりますが、職員が問い合わせを開いて区分と基準日を自分で決め、検索の画面を動かす作業が残ります。本格構成で12分になり、この段階が本記事の想定です。 差は、照合・伏せ字・基準日の決定と、送る前の検査が自動になることから出ます。 索引の整備が、どの段階でもいちばん時間のかかる準備です。 規約の改正の履歴を遡って、各条に施行日と失効日を付ける作業は、AIの有無にかかわらず事務局の財産になります。
05工数削減シミュレーション
導入後 360件 × 12分 ÷ 60 = 72 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 確定給付企業年金の基金型(企業年金基金)や、規約型で事務局を置いている企業のうち、加入者・受給者・中途脱退者からメールや書面で月に数百件の問い合わせを受けている場合。規約・給付規程・手続の案内(加入者のしおり、請求書の記入例など)が電子ファイルでそろっている場合。給付額や加入者期間などの個人の記録を、記録管理のシステムで事務局が照会できる場合。Azure を使っている場合。
- 問い合わせの大半が電話で、文面の回答をほとんど作っていない場合。規約の改正の履歴が整理されておらず、どの時点の規約がどれかを事務局でも追えない場合。月の問い合わせが数十件で、ベテランの職員が一人で回せている場合。なお、給付の裁定、規約の解釈が分かれる場合の判断、加入者が脱退一時金と移換のどちらを選ぶべきかの助言は、この構成では代替できません。
07最小構成で試す方法
- 先月の問い合わせから20件を選ぶ(中途脱退者からのものと、改正をまたぐものを必ず入れる)
- その20件について、当時の回答と、根拠にした条番号を受付台帳から書き出す
- 規約・給付規程・手続の案内の PDF のうち、20件に関係する章だけを用意する
- 社内で使える Azure OpenAI のチャットの画面に、章と問い合わせ(個人情報は伏せる)を貼る
- 「渡した規約の条文だけを根拠に、質問ごとに回答の下書きを書き、根拠の条番号を付けてください。金額と期間は書かず、{{要照会}} と書いてください」と指示する
- 出てきた下書きを、当時の回答と条番号で突き合わせる
20件のうち、改正をまたぐものが何件正しく答えられたかを最初に見ます。 最小構成では版の絞り込みをしていないので、今の規約で答えてしまう件があるはずです。 その件数が、索引に施行日を持たせる必要の大きさです。
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ条番号を引き、金額を書かずに空欄にした | 索引と構造化出力の構成に進む |
| 条番号は合っているが、金額を計算して書いた | 指示の書き方で直る。構成は有効 |
| 改正前の規約で答えるべきものを今の規約で答えた | 版の絞り込みが要る。 索引の設計を先に行う |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 今の規約で、退職当時の扱いを答える | 基準日で版を絞る。 中途脱退者は資格の喪失日を基準日にする |
| 附則の経過措置を見落とす | 附則を別の条として索引に入れ、効く条を書き添える |
| 算定式から金額を計算して書く | 金額を書かない指示と、計算しない指示を別に書く。数字の検査で止める |
| 「支給されます」と約束する | 書き方をプロンプトで固定する。確定済みの回答例もその書き方にそろえる |
| 脱退一時金と移換のどちらがよいかを書く | 両方の手続を並べるまでにする。選び方の助言は書かせない |
| 根拠の条番号を作る | quote を索引と照合し、無ければその質問の下書きを空にする |
| 持ち込みデータの機能で検索させ、構造化出力が使えない | 検索は Azure AI Search を自前で呼び、結果をプロンプトに入れる |
| 本人確認が取れていない経路で個人の記録に触れる | 本人確認の状態を前処理で印にし、規則で答える範囲を決める |
| 過去の回答を全部索引に入れ、誤った回答を根拠に拾う | 係長が確かめた回答例だけを入れる |
| 公的年金の質問に基金の規約で答える | out_of_scope にして窓口を案内する |
上の3行が、この構成の失敗のほとんどです。 どれも「規約の文面としては正しい答え」が、その人には当てはまらないという同じ形をしています。版、附則、個人の記録の3つを、AIの外で決めてから渡すことで防ぎます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 加入者・受給者の氏名、住所、加入者番号、資格の取得日・喪失日、問い合わせの本文(退職の事情、家族の状況、健康や死亡に関する記述を含むことがある)、規約と給付規程です。
- 個人情報を伏せてから渡す … 下書きに氏名や口座番号は要りません。加入者番号の照合と区分の判定はプログラムで行い、Azure OpenAI には伏せ字後の本文だけを渡します
- 処理の地域を決める … 公式の説明では、プロンプトと応答は顧客が指定した地域の中で処理され、Global や DataZone のデプロイの種類ではそれぞれの範囲で処理されうるとされています。日本の地域の標準のデプロイを選びます
- 学習への利用と不正利用の監視を確かめる … 公式の説明では、プロンプトと応答は他の顧客や OpenAI に提供されず、基盤モデルの学習に使われないとされています。一方で、不正利用の監視の仕組みがあり、兆候が検知されるとプロンプトと応答の一部が確認の対象になり、必要に応じて人が確認するとされています。監視の扱いの変更を申請できる条件に当たるかを確かめます
- 履歴を残す機能を使わない … Responses API はメッセージの履歴を保存する機能とされています。1件で完結する処理なので、Chat Completions API を使います
- 回答は送る前に必ず人が読む … 給付は請求に基づいて事業主等が裁定するもの(確定給付企業年金法第30条)です。AIの下書きが裁定の結論に読める文面のまま出ることを、工程で止めます
- 規約の周知と回答を混同しない … 法第73条では、事業主等は業務の概況を加入者に周知させなければならないとされています。個別の回答は周知の代わりになりません。 多くの人から同じ質問が来る項目は、回答で済ませずにしおりやお知らせに載せることを検討します
誤りが起きた場合のリスクは、加入者が誤った前提で退職や受給の時期を決めてしまうことです。 金額や時期を誤って伝えると、加入者の人生の判断に響きます。だからこそ、その値をAIに書かせず、記録を見た職員が書く設計にしています。
10まず何から始めるか
1週目:規約の版をそろえる
規約・給付規程の改正の履歴を遡り、今も中途脱退者の給付に効いている版を全部そろえます。 共有フォルダに今の版しか無い基金は少なくありません。受託機関や母体企業の人事に残っている版も集めます。
2週目:20件で試す
先月の問い合わせから20件を選び、関係する章を Azure OpenAI のチャットの画面に貼って下書きを作らせます。改正をまたぐ質問と、金額を聞く質問で、何が起きるかを最初に見ます。
3週目:索引の設計を決める
条ごとの分け方、施行日・失効日の付け方、附則の結び付け方を決めます。ここは規約を読める職員と一緒に決めます。 あわせて、確定済みの回答例として残す回答を係長が選び始めます。
4週目:索引を作り、検索だけを試す
Azure AI Search に規約を入れ、20件の質問で基準日に合った版の条が上位に来るかを確かめます。下書きの生成はまだつなぎません。
2か月目: 受付台帳からの起動、照合、伏せ字、構造化出力の下書き、数字と quote の検査をつなぎ、職員が直した差分を記録します。3か月目以降: 差分の多い区分の回答例を足し、1件30分が何分になったかを実測します。改正のたびに索引の失効日を入れる手順が事務局の決まりになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 規約型で承認を受けた規約を事業主が被保険者に周知させなければならないこと(第5条第3項)。給付を受ける権利は受給権者の請求に基づいて事業主等が裁定すること(第30条)。脱退一時金の支給の要件と、規約で3年を超える加入者期間を要件として定めてはならないこと(第41条)。中途脱退者が他の確定給付企業年金へ脱退一時金相当額の移換を申し出ることができること(第81条の2)。事業主等が業務の概況を加入者に周知させなければならないこと(第73条) | e-Gov 法令API: 確定給付企業年金法 | 2026-10-15 |
構造化出力が指定した JSON スキーマに従い、Chat Completions API と Responses API の両方で使えること。すべてのフィールドを必須にし additionalProperties: false を設定すること。最大100個のオブジェクトのプロパティと最大5段の入れ子。minLength・pattern・minItems などがサポートされないこと。列挙型が使えること。持ち込みデータのシナリオでは構造化出力がサポートされないこと | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-15 |
| プロンプトと応答が他の顧客や OpenAI に提供されず、基盤モデルの学習に使われないこと。プロンプトと応答は顧客が指定した地域で処理され、Global と DataZone のデプロイではそれぞれの範囲で処理されうること。Responses API がメッセージの履歴を保存すること。不正利用の監視で兆候が検知されるとプロンプトと応答の一部が確認の対象になり、必要に応じて人が確認すること。監視の扱いの変更を申請できること | Microsoft Learn: Data, privacy, and security for Foundry Models sold by Azure | 2026-10-15 |
| ハイブリッド検索が全文検索とベクトル検索を1つの要求で並行して実行し、相互ランク融合(RRF)で結果をまとめること。フィルターやセマンティック ランキングを併用できること。製品コードや日付、人名などの完全一致には全文検索が強いこと | Microsoft Learn: Hybrid search overview(Azure AI Search) | 2026-10-15 |
給付の裁定と規約の解釈は、基金の理事会・事務局と、必要に応じて顧問の専門家で決めてください。 本記事は、上記の公開情報で確認できた範囲だけを扱っています。規約の内容と改正の履歴は、基金ごとに異なります。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1698)についてのご相談はこちらから。
