顧問先から届く労務相談のメールに、その会社の就業規則と事務所の過去の回答を根拠にして回答案を作る
顧問先から届く労務相談のメールを読み取り、その会社の就業規則・賃金規程の該当条文と、事務所が過去に似た相談へ返した回答を探して、根拠の箇所を示した回答案を作ります。社労士が確かめて送ります。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/OpenSearch
- 連携・自動化
- Make/n8n/Power Automate
- 対象業界
- 士業
- 対象部門
- 人事
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 判断に時間がかかる/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 属人化解消/工数削減/検索時間短縮
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 担当者が相談メールを読み、どの顧問先の、何についての相談かをつかむ
- SharePointでその顧問先のフォルダを開き、就業規則・賃金規程・育児介護休業規程などの中から該当しそうな条文を探す
- 規程が改定されている場合は、どの版が今の規程かを確かめる
- 事務所の過去のメールや相談記録から、似た相談にどう答えたかを探す
- 規程の条文と過去の回答を踏まえて、回答のメールを書く
- 判断に迷うものは、所長や経験の長い社労士に相談する
- 回答を送り、相談記録に残す
- 自動相談用の共有メールボックスにメールが届くと、連携の仕組みが送信元のアドレスから顧問先を特定する
- 自動生成AIが相談の論点を読み取り、検索に使う問いを作る
- 自動検索基盤で、その顧問先の現行の規程だけを対象に該当条文を探す
- 自動同じく、事務所の過去の回答から似た論点のものを探す
- 自動生成AIが、見つかった条文と過去の回答だけを根拠に回答案を作り、根拠の箇所を付ける
- 自動回答案と根拠の一覧を担当者に通知する
- 人担当者が根拠の箇所を開いて確かめ、「規程に定めがない」とされた部分を判断して書き足す
- 人社労士が内容を確認し、顧問先へ送る
- 自動送った回答を、次の相談の検索対象として過去の回答に加える
各工程の詳しい説明を読む
- 担当者が相談メールを読み、どの顧問先の、何についての相談かをつかむ
- SharePointでその顧問先のフォルダを開き、就業規則・賃金規程・育児介護休業規程などの中から該当しそうな条文を探す
- 規程が改定されている場合は、どの版が今の規程かを確かめる
- 事務所の過去のメールや相談記録から、似た相談にどう答えたかを探す
- 規程の条文と過去の回答を踏まえて、回答のメールを書く
- 判断に迷うものは、所長や経験の長い社労士に相談する
- 回答を送り、相談記録に残す
(a)条文を探すのに時間がかかる。 規程のファイル名は顧問先ごとにばらばらで、「就業規則(2023改定).docx」「賃金規程_最新.pdf」のようなものが並んでいます。どれが今の版かを確かめるところから始まる相談が少なくありません。
(b)過去の回答が見つからない。 同じ論点の相談は、顧問先を変えて何度も届きます。しかし過去の回答は担当者ごとのメールボックスに残っており、探せるのはその回答を書いた本人だけです。 担当者が変わると、同じ調べものを最初からやり直すことになります。
(c)回答の質が担当者で変わる。 経験の長い社労士は、規程の条文だけでなく「この会社は以前こう運用していた」まで踏まえて答えます。経験の浅い担当者は条文だけで答え、後から所長が直すことになります。 6番目の相談がそのたびに発生し、所長の時間が詰まります。
(d)他社の規程を見てしまう危険がある。 フォルダを行き来して探すうちに、別の顧問先の同じ名前の規程を開いたまま答えを書き始めることがあります。気づかずに送れば、他社の規程の中身を別の顧問先へ伝えたことになります。
- 【自動】 相談用の共有メールボックスにメールが届くと、連携の仕組みが送信元のアドレスから顧問先を特定する
- 【自動】 生成AIが相談の論点を読み取り、検索に使う問いを作る
- 【自動】 検索基盤で、その顧問先の現行の規程だけを対象に該当条文を探す
- 【自動】 同じく、事務所の過去の回答から似た論点のものを探す
- 【自動】 生成AIが、見つかった条文と過去の回答だけを根拠に回答案を作り、根拠の箇所を付ける
- 【自動】 回答案と根拠の一覧を担当者に通知する
- 【人】 担当者が根拠の箇所を開いて確かめ、「規程に定めがない」とされた部分を判断して書き足す
- 【人】 社労士が内容を確認し、顧問先へ送る
- 【自動】 送った回答を、次の相談の検索対象として過去の回答に加える
3番目が、この設計でいちばん守るべき工程です。 顧問先の絞り込みは、検索の問いに「この会社の」と書くのではなく、検索の条件として機械的にかけます。 生成AIに任せる部分には置きません。
7番目の人の作業は、全件で残します。 回答は顧問先の労務管理の判断に直結し、誤れば顧問先の従業員に影響が出ます。削減するのは探す時間であって、確かめる時間ではありません。
02今回想定するシステム構成
相談メール(共有メールボックス) │【トリガー】メールの受信 ▼ Power Automate ── 送信元アドレスから顧問先IDを特定 ▼ Claude API ── 論点の読み取りと検索の問いの作成 ▼ Amazon OpenSearch Service │ ① 顧問先の規程(client_id と現行の版でフィルタ) │ ハイブリッド検索:キーワード(条番号・手当名)+ベクトル(意味の近さ) │ ② 事務所の過去の回答(論点で検索、他社のものは「他社の事例」と表示) ▼ Claude API ── 根拠の箇所を付けた回答案(citations) ▼ 担当者へ通知(Teams)──【人】根拠の確認と判断の書き足し ▼ 【人】社労士が確認して送信 ▼ 送った回答を過去の回答の索引に追加
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service | OpenSearch(自社で運用)、Azure AI Search |
| 生成AI | Claude API(論点の読み取りと、根拠付きの回答案) | OpenAI API、Gemini API |
| 埋め込み | 日本語に対応したテキスト埋め込みモデル(OpenSearch に接続) | 同等の多言語埋め込みモデル |
| 連携 | Power Automate(メールの受信、顧問先の特定、通知) | Make、n8n |
| 保管 | SharePoint(顧問先別の規程フォルダ) | Box、Google ドライブ |
SharePointの規程フォルダは、今のまま使います。 検索基盤に入れるのは、そこから取り出した条文の写しです。原本はSharePointに残し、検索結果からは原本の該当ファイルへリンクします。
検索基盤に OpenSearch を選ぶ理由は3つあります。 1つ目は、ベクトル検索の中でフィルタをかけられることです。 OpenSearch の効率的な k-NN フィルタリングは、検索の前でも後でもなくベクトル検索の最中にフィルタを適用し、条件に合う文書が k 件以上あれば k 件を返すとされています。Lucene エンジンと Faiss エンジンで使えます。顧問先IDでの絞り込みを、検索の精度を落とさずにかけられます。
2つ目は、ハイブリッド検索です。 キーワード検索と意味の検索を組み合わせ、検索時に動く検索パイプラインでスコアを正規化してから統合します。「第38条」「皆勤手当」のような語はキーワードで、「辞める前に有給をまとめて取りたい」のような言い回しは意味で引けます。
3つ目は、日本語の解析です。 Amazon OpenSearch Service では Japanese(kuromoji)Analysis のプラグインがすべてのドメインに含まれ、Sudachi Analysis は日本語向けとして推奨されている任意のプラグインです。
03どうやって実装するのか
処理の起点を決める
相談用の共有メールボックスにメールが届いたことを起点にします。 担当者の個人のメールボックスに届いたものは、共有メールボックスへ転送する運用にします。入口を1つにしないと、検索の対象になる過去の回答も集まりません。
もう一つの起点は、規程の改定です。 顧問先の規程フォルダに新しい版が保存されたら、その規程を条文の単位に分け直して検索基盤へ入れ、古い版に「効力の終了日」を付けます。 消しはしません。過去の出来事についての相談には、当時の版で答える必要があるからです。
三つ目は、回答の送信です。 社労士が回答を送ったら、その回答を過去の回答の索引に加えます。送らなかった下書きは加えません。 確認を経ていない文章が次の回答の根拠になるのを防ぎます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 相談メール | 送信元、件名、本文、添付 | 共有メールボックス |
| 顧問先の対応表 | 顧問先ID、会社名、相談を送ってくるメールアドレスの一覧、担当社労士 | 事務所で持つ一覧 |
| 顧問先の規程 | 規程名、条番号、条文、効力の開始日と終了日、原本へのリンク | SharePoint の規程フォルダ |
| 過去の回答 | 相談の要旨、回答の本文、論点のタグ、顧問先ID、回答日、回答者 | 送信済みの回答 |
質を決めるのは2つ目の対応表です。 顧問先を取り違えると、その後の検索がどれほど正確でも、別の会社の規程で答えることになります。1つのアドレスが複数の顧問先に紐づく場合(グループ会社の人事部がまとめて相談してくる、など)は、対応表にその旨を持たせ、自動では決めずに担当者に選ばせます。
過去の回答には、論点のタグを付けます。 「年次有給休暇/時季変更」「育児短時間勤務/対象年齢」のような2階層で十分です。タグは生成AIに案を出させ、送信のときに担当者が確かめます。
データの取得方法を決める
規程は、SharePoint の規程フォルダから取り出し、条の単位に分けて検索基盤へ入れます。1つの条が長いときは項の単位まで分けます。条番号と規程名は、分けた断片の全部に持たせます。 断片だけを見ても、どの規程の何条かが分かるようにするためです。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 条文の断片 | 規程ファイル | 該当条文の検索と、回答案の根拠 |
| 条番号・規程名 | 規程の見出し | キーワード検索と、根拠の表示 |
| 効力の開始日・終了日 | 規程の附則と事務所の管理表 | 現行の版だけを対象にするフィルタ |
| 顧問先ID | 保管フォルダ | 顧問先での絞り込み |
| 過去の回答 | 送信済みの回答 | 似た論点の回答の検索 |
検索は2回に分けて行います。 1回目は顧問先の規程が対象で、顧問先IDと「今日の日付が効力の期間内」の2つを必ずかけるフィルタにします。2回目は過去の回答が対象で、顧問先では絞りません。そのかわり、別の顧問先の回答には「他社の事例」という印を付けて返します。
意味の検索のための埋め込み(文章を数値の並びに変えたもの)は、規程を取り込むときに作っておきます。OpenSearch では、取り込みのパイプラインに text_embedding プロセッサを置くと、指定した項目の文章から埋め込みを作って別の項目へ保存できます。
1回目の検索の、意味の検索の部分は次のような形になります。フィルタが k-NN の句の内側にあることが大事です。
{
"size": 5,
"query": {
"knn": {
"rule_embedding": {
"vector": [0.012, -0.034, "…"],
"k": 5,
"filter": {
"bool": {
"must": [
{ "term": { "client_id": "C-0417" } },
{ "range": { "effective_from": { "lte": "2026-09-29" } } }
],
"must_not": [
{ "range": { "effective_to": { "lt": "2026-09-29" } } }
]
}
}
}
}
}
}
検索の後で顧問先を選り分ける作りにはしません。 先に全顧問先から上位5件を取ってから絞ると、他社の条文ばかりが上位に来たときに、その顧問先の条文が1件も残らないことがあります。効率的なフィルタリングなら、条件に合う断片の中から5件を返します。 ハイブリッド検索では、この句とキーワード検索の句を並べ、検索パイプラインでスコアをそろえて統合します。キーワード側の句にも、同じ顧問先IDと版の条件を必ず付けます。
AIへ渡す前に整形する
- 顧問先の特定 … 送信元アドレスを対応表で引きます。見つからない、または複数に当たるときは、ここで止めて担当者に選ばせます
- 引用部分の除去 … 返信の連鎖で過去のやり取りが下に続いているメールは、最新の本文だけを取り出します。古い相談の文面で検索しないためです
- 個人名の置き換え … 相談に出てくる従業員の氏名は「従業員A」のように置き換えてから生成AIへ渡します
- 添付の扱い … 雇用契約書や勤怠の記録が添付されていることがあります。この構成では添付を検索の問いに使わず、担当者に「添付あり」と知らせるだけにします
- 規程の版の確認 … 顧問先の規程のうち、効力の終了日が入っていない版が1つだけかを確かめます。2つあれば改定の取り込み漏れなので、担当者に知らせます
1番目で止めることを、手間と考えないでください。 自動で「いちばん近い顧問先」を選ぶ仕組みにすると、選び間違いは検索の結果にまったく表れません。正しい1社が決まるまで先に進まないのが、この構成の前提です。
AIに処理させる
AIにさせる仕事は2つです。 論点を読み取って検索の問いにすることと、見つかった根拠だけを使って回答案を書くことです。
| させること | 中身 |
|---|---|
| 論点の読み取り | 相談が何についての質問か。論点のタグの案と、検索に使う語(制度の名前、手当の名前、条番号が書かれていればそれ) |
| 回答案の作成 | 規程の条文と過去の回答を根拠に、顧問先の担当者に向けた回答の文章 |
| 文の種類分け | 回答案の各部分を「規程に書いてある」「過去に回答した」「規程に定めがない」の3つに分ける |
| 確認事項の書き出し | 答えるために顧問先へ確かめるべきこと(対象者の勤続年数、雇用形態など) |
| させないこと | 理由 |
|---|---|
| 顧問先の特定 | 取り違えは守秘の事故になる。対応表で機械的に決める |
| 規程に定めがない点についての結論 | 法令や個別の事情の判断が要る。社労士が書く |
| 他社の規程の条文の引用 | 過去の回答は論点の参考にとどめ、条文は引かない |
| 法令の条文の引用 | 法令は検索の対象にしていない。書くなら社労士が確かめて書く |
| 回答の送信 | 顧問先の労務判断に直結する |
2行目がいちばん起きやすい失敗です。 規程に書かれていない点を問われると、生成AIは一般的な運用やそれらしい法令の説明で埋めようとします。それは根拠のない回答で、この構成が出してはいけないものです。
根拠の箇所は、Claude API の citations の機能で付けます。 文書ごとに citations を有効にすると、回答の文ごとに、根拠にした文書の位置が返ります。検索で見つけた条文の断片を1つずつ文書として渡せば、どの文がどの条文に基づくかを機械的に取り出せます。 断片をそれ以上細かく分けたくない場合は、そのまま使われるカスタムコンテンツの文書として渡します。
指示内容を固定する
あなたは社会保険労務士事務所で、顧問先からの労務相談に答える回答案を作る担当です。
渡された「規程の条文」と「過去の回答」だけを根拠にしてください。
【相談】{consult_text}
【顧問先】{client_name}(この会社の規程だけが渡されています)
【規程の条文】{client_rules} … 顧問先の現行の規程から検索した断片
【過去の回答】{past_answers} … 事務所の過去の回答。other_client が true のものは他社の事例
【作ってほしいもの】
1. 相談の論点(1〜3個)
2. 顧問先の担当者に向けた回答案
3. 回答案の各部分の種類
- rule ......... 渡された規程の条文に書いてあること
- precedent .... 事務所の過去の回答で示したこと
- not_in_rules . 規程に定めがなく、判断が要ること
4. 回答するために顧問先へ確かめるべきこと
【厳守事項】
- 規程の条文に書かれていないことを、規程に書いてあるかのように書かないでください。
- 規程に定めがない点は、結論を書かないでください。
not_in_rules とし、「規程に定めがありません。個別に判断が必要です」とだけ書いてください。
- 法令の条文や一般的な運用で、規程にない点を埋めないでください。
- other_client が true の過去の回答は、論点の参考にだけ使ってください。
その会社の規程の中身や会社名を、回答案に書かないでください。
- 条番号は、渡された断片に書かれているものをそのまま使ってください。
番号を推測したり、並びから補ったりしないでください。
- 従業員は「従業員A」のまま書いてください。
- 渡された規程の条文が相談と関係なさそうなときは、無理に使わず
「該当する条文が見つかりませんでした」と書いてください。
「規程にない点の結論を書かない」を、書き方まで指定しているのが要点です。 「推測しないでください」だけでは、「一般的には〜とされています」という形で結論を書きます。決まった一文しか書かせないことで、社労士が書き足す場所がはっきりします。
「他社の事例」の扱いを明記しているのは、守秘のためです。 過去の回答を検索の対象に入れる以上、他社の規程の中身が回答案に紛れ込む経路があります。論点の参考にするだけで、中身は書かせません。
出力形式を固定する
次の形のJSONで受け取ります。 回答案の本文は citations の結果から組み立て、種類分けと確認事項はJSONの項目で受け取ります。
{
"consult_id": "",
"client_id": "",
"issues": [
{ "tag": "年次有給休暇/退職前の取得", "keywords": ["年次有給休暇", "退職"] }
],
"answer_parts": [
{ "kind": "rule | precedent | not_in_rules",
"text": "",
"sources": [ { "doc_type": "rule", "rule_name": "", "article": "", "effective_from": "" } ] }
],
"questions_to_client": [""],
"no_matching_rule": false
}
1つ目の理由は、kind で担当者の見る場所を分けられることです。 rule と precedent は根拠の箇所を開いて確かめるだけ、not_in_rules は社労士が判断して書き足す場所です。通知の画面で not_in_rules を色分けすれば、1件のうち時間を使う場所が最初から分かります。
2つ目は、sources に規程名・条番号・効力の開始日を持たせることです。 根拠がどの版の何条かまで記録に残るので、後から規程が改定されても、当時の回答が何に基づいていたかをたどれます。
3つ目は、no_matching_rule です。 その顧問先の規程から何も見つからなかったときに true にします。規程が取り込まれていないのか、本当に定めがないのかを、担当者が最初に確かめる合図です。
担当者への通知は、JSONから次のような表に組み立てて出します。
| 種類 | 回答案の文 | 根拠 |
|---|---|---|
| 規程 | 年次有給休暇は、退職日までの間であれば申し出により取得できます | 就業規則 第22条(2025年4月1日施行の版) |
| 過去の回答 | 引継ぎの期間は、本人と日程を相談して決める形をお勧めしています | 2026年3月の回答(他社の事例) |
| 要判断 | 規程に定めがありません。個別に判断が必要です | なし |
3行目の「要判断」だけが、社労士が書き足す場所です。 表の形にすると、担当者は上から順に根拠を開き、最後の行で手を止めるという読み方になります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有メールボックス | Power Automate のトリガー | 相談メールの受信を検知する |
| 顧問先の対応表 | 一覧の読み取り | 送信元アドレスから顧問先IDを引く |
| Claude API | API呼び出し | 論点の読み取りと、根拠付きの回答案 |
| Amazon OpenSearch Service | 検索API | 顧問先の規程(フィルタ付き)と過去の回答の検索 |
| Teams | 通知 | 回答案と根拠の一覧を担当者へ |
| SharePoint | 読み取り | 規程の取り込みと、根拠からの原本へのリンク |
メールの送信はこの構成に入れません。 回答案はTeamsの通知とメールの下書きまでで、送るのは社労士です。 下書きのフォルダに置いた回答案は、送信の操作をしない限り顧問先へは届きません。
検索基盤への書き込みは、規程の取り込みと、送信済みの回答の追加の2つだけです。回答案の段階のものは書き込みません。
人が確認する
全件、社労士が確認してから送ります。 そのうえで、確認の順番を決めておきます。
- 顧問先が正しいかを見る … 通知の先頭に顧問先名を出します。ここが違えば、以降は読まずに差し戻します
not_in_rulesを先に読む … 判断が要る部分です。社労士が書き足すか、顧問先への確認事項に回しますruleの根拠を開く … 条文の断片へのリンクから原本を開き、その条文が本当にそう書いているかを確かめますprecedentの時期を見る … 過去の回答が規程の改定前のものなら、今の規程と食い違っていないかを見ます- 送信し、論点のタグを確かめる … タグは次の検索の手がかりになります
3番目を省かないでください。 根拠の位置が機械的に付いていても、その条文を相談の場面に当てはめてよいかは別の話です。育児短時間勤務の条文が見つかっても、相談の社員が対象になるかは勤続年数や雇用形態で変わります。
目標は、1件12分です。 回答を一から書く時間はなくなりますが、根拠を開く時間と判断を書き足す時間は残ります。not_in_rules の多い相談ほど長くかかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 送信元アドレスが対応表にない | 処理を止め、担当者が顧問先を選ぶ。 選んだ結果を対応表に追加する |
| 1つのアドレスが複数の顧問先に当たる | 自動では決めない。担当者が選ぶ |
| 顧問先の規程が1件も見つからない | no_matching_rule。規程の取り込み漏れを先に疑う |
| 効力の終了日がない版が2つある | 改定の取り込み漏れ。回答案を作らず担当者へ |
| 過去の出来事についての相談 | その時点で効力があった版で検索し直す。版の日付を回答案に明記する |
| 相談が複数の論点にまたがる | 論点ごとに検索し、回答案を論点ごとに分ける |
| 添付に重要な情報がある | 検索には使わない。「添付あり」を通知し、担当者が読む |
| 相談ではなく手続の依頼だった | 回答案を作らず、手続の担当へ回す |
| 検索基盤が応答しない | 相談メールは未処理のまま残し、通常の手順で対応する |
上の4行が、守秘と誤回答に直結します。 どれも「迷ったら止めて人に渡す」形にしてあり、自動で推し進める分岐を1つも作っていません。
記録を残す
- 相談メールの原文と、特定した顧問先ID(自動で決めたか、人が選んだか)
- 生成AIが作った検索の問いと、検索でかけたフィルタの条件
- 検索で返った条文の断片と過去の回答の一覧(規程の版の日付を含む)
- 回答案のJSONと、citations で付いた根拠の位置
- 社労士が直した箇所と、送った回答の全文
- 論点のタグと、それを誰が確かめたか
2つ目で「かけたフィルタの条件」を残すのは、守秘の証跡になるからです。 顧問先から「うちの相談に他社の情報が使われていないか」と問われたとき、その相談の検索が顧問先IDで絞られていたことを記録で示せます。
5つ目は、次の検索の質を決めます。 回答案ではなく、社労士が直して送った回答だけを過去の回答として積み上げます。
04実装レベルの3段階
最小構成は、顧問先が増えると続きません。 80社分のプロジェクトを手で保ち、改定のたびに入れ替えるのは現実的ではありません。確かめるための段階です。 半自動化で、1件30分が20分程度になります。 条文を探す①の10分はほぼなくなりますが、過去の回答を探す②と、書く③が残ります。本格構成で12分になり、この段階が本記事の想定です。 差が大きいのは、過去の回答を事務所全体で引けるようになることです。 半自動化の段階で、規程の版の管理を固めてください。 効力の開始日と終了日が正しく入っていないと、本格構成で過去の回答まで足したときに、古い版の条文と新しい回答が食い違うことになります。
05工数削減シミュレーション
導入後 120件 × 12分 ÷ 60 = 24 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 顧問先が数十社以上あり、労務相談がメールで毎月100件前後届く社会保険労務士事務所。顧問先ごとの就業規則・賃金規程を電子データで預かっている場合。過去の相談と回答がメールや共有フォルダに散らばり、同じ論点を何度も調べ直している場合。回答の質が担当者の経験に左右されている場合。
- 顧問先が数社で、担当者が規程を覚えている事務所。相談の大半が電話で、記録が残らない場合。顧問先の規程を紙でしか預かっておらず、電子化の予定もない場合。なお、個別の事案について法令上どう判断するかは、この構成では代替できません。
07最小構成で試す方法
- 先月届いた相談メールから20件を選ぶ(規程に答えがあるもの、ないもの、両方を入れる)
- その20件について、実際に送った回答を用意する
- 1件ずつ、その顧問先の就業規則と関係する規程のファイルを、手元の生成AIサービスのプロジェクトに入れる。プロジェクトは顧問先ごとに分ける
- 「この相談に、渡した規程だけを根拠に回答案を作ってください。根拠にした条番号を書き、規程に定めがない点は結論を書かずに『規程に定めがありません』と書いてください」と指示する
- 出てきた回答案を、実際に送った回答と突き合わせる
3番目で、顧問先ごとにプロジェクトを分けてください。 1つの場所に複数の顧問先の規程を入れて試すと、試験の段階で他社の規程が混ざることを確かめる意味がなくなります。
| 出てきた内容 | 判断 |
|---|---|
| 実際の回答と同じ条文を根拠にした | 検索基盤の構築に進む |
| 規程にない点を一般論で埋めた | 指示の書き方で直る。構成は有効 |
| 条文が見つからない相談が多い | 規程の電子化が先。預かっている規程の版を整理する |
3行目は、事務所の側の課題が見つかったということです。 最新の規程を預かっていない顧問先が分かれば、それだけで改定の提案のきっかけになります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 別の顧問先の条文が候補に出る | 顧問先IDを検索の必須フィルタにする。 問いの文面で絞らない |
| 顧問先の特定を誤る | 対応表で引き、当たらない・複数当たるときは止める |
| 古い版の条文で答える | 効力の開始日と終了日を持たせ、現行の版だけを対象にする |
| 規程にない点を一般論で埋める | 決まった一文しか書かせない。not_in_rules を色分けする |
| 「第38条」のような語で引けない | キーワード検索を組み合わせる。条番号は断片に必ず持たせる |
| 日本語の語の区切りがおかしい | 日本語の解析プラグインを使う。手当の名前など独自の語は辞書に足す |
| 辞書を足しても反映されない | Sudachi は辞書を関連付け直してもすぐには反映されない。反映を確かめてから使う |
| 他社の過去の回答の中身が回答案に出る | 「他社の事例」の印を付け、中身を書かないよう指示する |
| 返信の連鎖で古い相談の文面で検索する | 最新の本文だけを取り出す |
| 回答案の下書きが次の根拠になる | 送信済みの回答だけを過去の回答に加える |
上の3行が、この構成の失敗のほとんどです。 どれも回答案の文章を読んでいるだけでは気づけません。検索でかけたフィルタの条件を記録し、定期的に見直すしか防ぎ方がありません。
下から2行目も早く効いてきます。 過去の回答は、事務所の考え方そのものです。他社の中身を持ち込まずに論点だけを借りる線引きを、最初の指示で固めてください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧問先の就業規則・賃金規程、相談に出てくる従業員の勤怠、休職、処遇、健康状態、そして事務所の過去の回答です。
- 顧問先の規程を混ぜない … 検索の段階で顧問先IDのフィルタを必ずかけます。これは精度の問題ではなく、守秘義務の問題です
- 従業員の個人名を渡さない … 生成AIに渡す前に「従業員A」に置き換えます。相談の論点を読み取るのに、氏名は要りません
- 健康状態に関わる相談は特に慎重に扱う … 休職や復職の相談には、病名や診断の内容が書かれていることがあります。自動処理の対象から外し、担当者が直接読む運用にすることも考えてください
- この構成は社労士の判断を代替しません … 出すのは、規程の該当箇所と過去の回答に基づく回答案までです。規程に定めがない点の判断、法令に照らした判断は、社労士が行います
- 送信を自動にしない … 回答は顧問先の労務管理の判断に直結します。誤った回答が顧問先の従業員の処遇に影響するため、送るのは必ず人です
- 検索基盤の利用範囲を事務所の中に限る … 顧問先80社の規程がまとまった索引です。顧問先に検索の画面を開放する設計にはしないでください
誤りが起きた場合のリスクは、別の顧問先の規程で答えることと、規程にない点を根拠のあるように答えることの2つです。 前者は守秘の事故、後者は顧問先の誤った労務判断につながります。どちらも検索と指示の設計で防ぎ、最後に社労士が確かめます。
10まず何から始めるか
1週目:顧問先の対応表を作る
顧問先IDと会社名、相談を送ってくるメールアドレスの一覧、担当社労士をまとめます。グループ会社など、1つのアドレスが複数の顧問先に当たるものに印を付けます。ここが、以降のすべての前提です。
2週目:20件で試す
先月の相談から20件を選び、顧問先ごとのプロジェクトに規程を入れて回答案を作らせます。実際に送った回答と、根拠にした条文が一致するかを見ます。 規程にない点を一般論で埋めていないかも確かめます。
3週目:規程の版を整理する
顧問先ごとに、今効力のある規程がどれかを確かめ、効力の開始日を記録します。最新の版を預かっていない顧問先の一覧が、この週の成果です。
4週目:規程を検索基盤に入れる
利用の多い顧問先20社の規程を条の単位に分け、顧問先IDと版の日付を付けて取り込みます。顧問先IDのフィルタをかけた検索で、他社の条文が1件も返らないことを最初に確かめます。
2か月目: 相談メールの受信を起点に、論点の読み取りと規程の検索、回答案の作成までをつなぎます。3か月目以降: 送信済みの回答を過去の回答として取り込み、1件30分が何分になったかを実測します。全顧問先の規程が現行の版で入り、not_in_rules の割合が安定した時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 効率的な k-NN フィルタリングが、ベクトル検索の前後ではなく検索の最中にフィルタを適用し、条件に合う文書が k 件以上あれば k 件を返すこと。Lucene エンジン(HNSW)と Faiss エンジン(HNSW、IVF)で使えること。k-NN クエリの中に filter として bool・term・range などの条件を書くこと | OpenSearch Documentation: Efficient k-NN filtering | 2026-09-29 |
| ハイブリッド検索がキーワード検索と意味の検索を組み合わせ、検索時に動く検索パイプラインでスコアを正規化して統合すること。正規化プロセッサ(スコアに基づく)とスコアランカープロセッサ(順位に基づく RRF)があること。テキスト埋め込みモデルが前提で、取り込みパイプラインの text_embedding プロセッサが指定した項目から埋め込みを作ること | OpenSearch Documentation: Hybrid search | 2026-09-29 |
| Amazon OpenSearch Service で Japanese(kuromoji)Analysis がすべてのドメインに含まれ、Sudachi Analysis が日本語向けに推奨される任意のプラグインであること。Sudachi の辞書ファイルを関連付け直しても、ドメインにすぐには反映されないこと | Amazon OpenSearch Service Developer Guide: Plugins by engine version | 2026-09-29 |
| 文書ごとに citations を有効にすると、回答の根拠にした文書の位置が返ること。1つの要求の中では全文書で有効にするか全文書で無効にするかのどちらかであること。RAG の断片を1つずつ文書として渡せること、カスタムコンテンツの文書はそれ以上分けずに使われること。title と context は引用の対象にならないこと | Anthropic Docs: Citations | 2026-09-29 |
| 常時10人以上の従業員を使用する使用者は、労働基準法第89条により就業規則を作成し、所轄の労働基準監督署長に届け出なければならず、変更する場合も同様であること。モデル就業規則が令和7年12月に改訂されていること | 厚生労働省: モデル就業規則について | 2026-09-29 |
個別の相談について規程や法令に照らしてどう判断するかは、社会保険労務士が行ってください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0314)についてのご相談はこちらから。
