派遣スタッフから届く有給・残業手当・社会保険の質問に、本人の就業条件明示書と派遣元の就業規則を根拠にチャットで答え、個別の相談は担当コーディネーターへ回す
派遣スタッフがマイページのチャットで質問すると、本人の就業条件明示書と派遣元の就業規則・FAQから答え、有給休暇の残りの日数は勤怠のシステムの値を添えます。個別の相談は担当コーディネーターへ回します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- IT・SaaS/人材
- 対象部門
- 人事
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 人手が足りない/問い合わせが多い/情報が見つからない
- AIで行う処理
- 対話
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- スタッフがコーディネーターに電話かメールで質問する
- コーディネーターが本人を確かめ、派遣管理のシステムで今の契約と明示書を開く
- 有給休暇の質問なら、勤怠のシステムで残りの日数と付与の日を見る
- 残業の手当の質問なら、明示書の時間外の労働の欄と、就業規則の賃金の章を見る
- 社会保険の質問なら、社内の加入の基準の資料と、契約の期間と労働時間を見る
- 答えを伝え、分からないものは人事部の労務の担当へ回す
- 対応の記録を派遣管理のシステムに書く
- 人スタッフがマイページにログインし、チャットで質問する
- 自動中継プログラムが本人のスタッフ番号と、今の契約の番号を派遣管理のシステムから引く
- 自動質問を「規程の質問」「本人の数値」「個別の相談」に分ける
- 自動個別の相談なら、検索せずに担当コーディネーターへ回し、スタッフにその旨を返す
- 自動本人の数値が要る質問なら、勤怠のシステムから残りの日数や残業の時間を読み取りで引く
- 自動Agent Search(旧 Vertex AI Search)の answer メソッドが、本人の明示書と就業規則・FAQだけから回答を作り、出典を付けて返す
- 自動回答の文と、勤怠のシステムの数値を別の枠に並べて、スタッフに返す
- 自動回答できない、または続けての質問で個別の事情に入ったら、担当コーディネーターへ回す
- 人コーディネーターは、回ってきたものだけを、会話の要約を見て答える
各工程の詳しい説明を読む
- スタッフがコーディネーターに電話かメールで質問する
- コーディネーターが本人を確かめ、派遣管理のシステムで今の契約と明示書を開く
- 有給休暇の質問なら、勤怠のシステムで残りの日数と付与の日を見る
- 残業の手当の質問なら、明示書の時間外の労働の欄と、就業規則の賃金の章を見る
- 社会保険の質問なら、社内の加入の基準の資料と、契約の期間と労働時間を見る
- 答えを伝え、分からないものは人事部の労務の担当へ回す
- 対応の記録を派遣管理のシステムに書く
(a)答える前に調べることが多い。 2番目から5番目まで、システムを3つ開いてから答えます。質問の答え自体は1分で言えるのに、調べるのに4分かかります。
(b)コーディネーターによって答えが違う。 有給休暇の付与の要件を、ある担当は「半年たったら」と答え、別の担当は「半年たって8割以上出勤していたら」と答えます。就業規則を開いて答える担当と、記憶で答える担当がいます。
(c)電話がつながらない。 コーディネーターは就業先を回っている時間が長く、スタッフは折り返しを待つか、同じ質問をメールでもう一度送ります。 1件の質問が2件に数えられます。
(d)個別の相談が埋もれる。 就業先での困りごとや体調の相談が、有給休暇の質問と同じ受け口に届きます。急ぐべき相談が、急がない質問の列に並んでしまいます。
4つのうち、(a)から(c)は調べ物の問題で、(d)は受け口の問題です。 調べ物はAIに寄せられますが、受け口の問題は寄せられません。この構成は、規則で答えられる質問を受け口から抜くことで、(d)の相談が見える場所を作ります。
- 【人】 スタッフがマイページにログインし、チャットで質問する
- 【自動】 中継プログラムが本人のスタッフ番号と、今の契約の番号を派遣管理のシステムから引く
- 【自動】 質問を「規程の質問」「本人の数値」「個別の相談」に分ける
- 【自動】 個別の相談なら、検索せずに担当コーディネーターへ回し、スタッフにその旨を返す
- 【自動】 本人の数値が要る質問なら、勤怠のシステムから残りの日数や残業の時間を読み取りで引く
- 【自動】 Agent Search(旧 Vertex AI Search)の answer メソッドが、本人の明示書と就業規則・FAQだけから回答を作り、出典を付けて返す
- 【自動】 回答の文と、勤怠のシステムの数値を別の枠に並べて、スタッフに返す
- 【自動】 回答できない、または続けての質問で個別の事情に入ったら、担当コーディネーターへ回す
- 【人】 コーディネーターは、回ってきたものだけを、会話の要約を見て答える
3番目が、この設計の分かれ目です。 就業先での困りごと、体調、契約の更新、給与の誤りの申し出は、内容にかかわらず個別の相談として回し、AIは答えません。 規程で答えられそうに見えても、事情を聞かないと答えられないものだからです。
7番目で数値を別の枠にするのは、数値の出どころを分けるためです。 回答の文の中に「残りは7日です」と書かせると、それがシステムの値なのか、AIが規程から計算した値なのか、読む人には分かりません。
9番目でコーディネーターが見るのは、全件ではありません。 規則で答えられた質問は、スタッフの評価が悪かったものと、週ごとの抜き取りだけを読みます。コーディネーターの1日は、事情を聞くべき相談と、就業先との調整に戻ります。
02今回想定するシステム構成
スタッフのマイページ(ログイン済みのチャット) ▼【トリガー】質問の送信 中継プログラム(Python、Cloud Run) ├──▶ 派遣管理のシステム → スタッフ番号・今の契約の番号 ├──▶ 質問の仕分け(規程の質問/本人の数値/個別の相談) │ └── 個別の相談 → 担当コーディネーターの受け口へ ├──▶ 勤怠のシステム(読み取り)→ 有給休暇の残りの日数・残業の時間 ▼ Agent Search(Vertex AI Search)── answer メソッド │ データストア:就業条件明示書(スタッフごと)+就業規則・賃金規程+FAQ │ 絞り込み:staff_id/contract_id/doc_type/status ▼ 中継プログラム ── 回答の文と数値の枠を並べてチャットへ └──▶ 答えられない・個別の事情 → 担当コーディネーターの受け口へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、マイページ・派遣管理・勤怠・検索をつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(明示書・就業規則・FAQの原本とメタデータ) | ─ |
派遣管理のシステム、勤怠のシステム、マイページは、新しく足すものではありません。 中継プログラムはどれにも書き込まず、読むだけです。最初の準備は、明示書のPDFをスタッフ番号と契約の番号付きで書き出せるかを、派遣管理のシステムで確かめることです。
検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 検索の結果から回答を作り、includeCitations で出典を付けられます。セッションを使った複数回のやり取りに対応し、前の質問を踏まえて次の質問を言い換えて検索するとされています。関係の薄い内容しか無いときは回答を作らず、理由を answerSkippedReasons で返します。
絞り込みは、メタデータの式で行います。 項目を索引可能にすれば、staff_id: ANY("S0012345") のような完全一致と、AND・OR・NOT の組み合わせが使えます。この絞り込みを、スタッフの本人の範囲を守る仕組みとして使います。
03どうやって実装するのか
処理の起点を決める
起点は、スタッフがマイページにログインしてチャットで質問を送ったことです。 ログインしていない人には、チャットを出しません。本人の明示書を根拠に答える以上、誰が聞いているかが分からない質問には答えられないからです。
1つの質問は、1つのセッションで続けます。 「有給はいつから」の次に「半日でも取れるか」と続けて聞かれることが多く、同じセッションなら前の質問を踏まえて言い換えて検索されます。 就業先が2つある人は、最初に「どちらの契約についての質問か」を選んでもらい、途中で契約を変えるときは新しいセッションにします。
処理は質問のたびに1件ずつ行います。 夜間や休日の質問にもその場で答え、個別の相談として回したものだけが、翌営業日のコーディネーターの受け口に載ります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 質問 | スタッフの質問の文 | マイページのチャット |
| 本人の情報 | スタッフ番号、今の契約の番号、担当コーディネーター | 派遣管理のシステム |
| 就業条件明示書 | 業務の内容、就業の場所、派遣の期間、就業日、始業と終業の時刻、休憩、時間外の労働の有無、安全と衛生 | 派遣管理のシステムで発行したPDF |
| 就業規則・賃金規程 | 有給休暇の付与の要件と日数、時間外の労働の手当の計算、社会保険の加入の基準 | 社内の共有フォルダ |
| FAQ | よくある質問と回答、改訂日 | 人事部が管理する一覧 |
| 勤怠の数値 | 有給休暇の残りの日数、次の付与の日、今月の時間外の労働の時間 | 勤怠のシステム(読み取り) |
質を決めるのは、明示書がスタッフ番号と契約の番号付きで取り込まれていることです。 番号が付いていない明示書は、本人の範囲で絞り込めません。付いていないものは取り込まず、その人の質問は規程とFAQだけで答えます。
就業規則の有給休暇の章は、法令の最低の基準より手厚い場合があります。 労働基準法の基準では、雇入れから6か月継続して勤務し、全労働日の8割以上を出勤した人に10日が付き、週の所定労働日数が少ない人には日数に応じた日数が付くとされています。回答の根拠には、法令の一般の説明ではなく自社の就業規則を使います。 自社の規程に書かれた日数が、そのスタッフに付く日数です。
データの取得方法を決める
明示書は、契約の開始と変更のたびに、派遣管理のシステムからPDFで書き出して Cloud Storage に置きます。 文書ごとのメタデータは JSONL の各行に id、structData、content.mimeType、content.uri を書きます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| スタッフ番号・契約の番号 | 明示書のメタデータ | 本人の範囲で絞り込む |
| 文書の種類(明示書/規程/FAQ) | メタデータ | 根拠の出し分け |
| 契約の期間、状態(有効/終了) | メタデータ | 終わった契約を除く |
| 有給休暇の残りの日数など | 勤怠のシステムの読み取り | 数値の枠に表示する |
絞り込みの式は、本人の明示書と、全員に共通の規程・FAQを合わせる形にします。 例えば (staff_id: ANY("S0012345") AND contract_id: ANY("C-88123") AND status: ANY("active")) OR doc_type: ANY("rule", "faq") です。本人の明示書と共通の文書だけが検索の対象になり、他の人の明示書は検索の時点で外れます。
この式は、必ず中継プログラムがログインの情報から組み立てます。 スタッフの入力した文から組み立てたり、スタッフの画面から渡したりしません。絞り込みが本人の範囲を守る唯一の仕組みなので、そこを外から触れる経路を作らないことが要です。
取り込みは、明示書の発行のたびと、規程とFAQの改訂のたびに行います。 Cloud Storage からの定期的な取り込み(1日、3日、5日ごと)もありますが、契約の変更の当日に古い明示書で答えないよう、発行のたびに取り込みます。
AIへ渡す前に整形する
- 明示書にスタッフ番号と契約の番号を付ける … 書き出しの時点でメタデータに入れます
- 終わった契約の明示書を外す … 契約が終わったら
statusをendedにします - 明示書から検索に要らない情報を除く … 住所、電話番号、生年月日は検索の文書に入れません
- 就業規則を章の単位で分ける … 有給休暇、賃金、社会保険の章を分けて、見出しを付けます
- FAQに改訂日を付ける … 規程の改訂とずれた古いFAQは外します
- 質問の仕分けの規則を作る … 個別の相談の言葉(体調、ハラスメント、辞めたい、更新、給与の誤り)の一覧を人事部が作ります
- 担当コーディネーターの受け口を決める … 回すときに誰へ届くかを、スタッフ番号から引けるようにします
3番目を省かないでください。 明示書には、本人の連絡先が載っていることがあります。検索の文書に入れた時点で、回答の文に出てくる可能性があります。 質問に答えるのに要るのは、就業の条件の欄だけです。
6番目は、AIに任せません。 個別の相談かどうかを生成AIの判断だけに任せると、「体調が悪いので有給を使いたい」が有給休暇の質問として答えられ、体調の相談が見落とされます。 言葉の一覧に当たったものは、必ず回します。一覧に当たらなかった質問も、生成AIの仕分けで「個別の相談」と出たら回します。 回す側に倒れる誤りは許し、答える側に倒れる誤りを減らす順序です。
AIに処理させる
させるのは、本人の明示書と就業規則・FAQの該当箇所を見つけ、質問への答えを出典を付けて短く返すことです。 数値は勤怠のシステムの値を使い、AIには作らせません。
| 質問の例 | AIが答えること | 根拠 | 数値の枠 |
|---|---|---|---|
| 有給は何日残っているか | 付与の要件と、半日などの取り方の規則 | 就業規則 | 残りの日数、次の付与の日 |
| この残業は手当が付くか | 本人の契約の時間外の労働の有無と、手当の計算の規則 | 明示書と賃金規程 | 今月の時間外の労働の時間 |
| 社会保険はいつから | 自社の加入の基準と、本人の契約の期間と労働時間の欄 | 規程と明示書 | ─ |
| 休憩は何分か | 本人の契約の休憩の時間 | 明示書 | ─ |
answer メソッドの設定は次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
session | 質問ごとのセッション | 続けての質問をつなぐ |
includeCitations | 有効 | 回答の文に出典を付ける |
ignoreLowRelevantContent | 有効 | 規程に無い質問に答えない |
ignoreAdversarialQuery | 有効 | 想定外の文面に答えない |
filter | 本人の明示書+共通の規程・FAQ | 他の人の明示書を除く |
userPseudoId | スタッフ番号から作った仮の識別子 | 記録と結びつける |
preamble | 下の指示 | 答え方の規則を与える |
| させないこと | 理由 |
|---|---|
| 有給休暇の残りの日数の計算 | 勤怠のシステムの値が正。規程から計算すると取得の実績が抜ける |
| 特定の日の残業に手当が付くかの断定 | 勤怠の記録と就業先の指示を確かめる必要がある |
| 社会保険の加入の可否の断定 | 個別の条件で決まり、労務の担当が判断する |
| 法令の一般の説明での回答 | 自社の規程が根拠。法令の説明は規程と違って見えることがある |
| 個別の相談への回答 | コーディネーターが事情を聞いて対応する |
1行目が最も起きやすい失敗です。 規程の付与の日数と入社の日が分かれば、モデルは残りの日数を計算して答えようとします。その数は、すでに取った日数も、時季の指定で取った日数も入っていない数です。 数値は答えさせず、勤怠のシステムの値だけを表示します。
指示内容を固定する
answer メソッドの preamble に、次の指示を入れます。
あなたは派遣会社で、派遣スタッフ本人からの労務の質問に答える担当です。
読むのは就業先で働いているスタッフ本人で、あなたの回答を見て自分の条件を確かめます。
【答え方】
1. 結論を1〜2文で先に書いてください。
2. 根拠にした文書の名前と箇所(就業条件明示書の欄の名前、就業規則の条と項)を書いてください。
3. 本人の就業条件明示書と就業規則の両方に関係するときは、
明示書の本人の条件を先に、規則の決まりを後に書いてください。
4. やさしい言葉で、5行以内で書いてください。
【厳守事項】
- 検索結果の文書に書かれていることだけで答えてください。
法令の一般的な説明や、他社の例で補わないでください。
- 有給休暇の残りの日数、残業の時間、給与の金額など、本人の数値を書かないでください。
数値は別の欄に表示されます。「残りの日数は下の欄をご確認ください」と書いてください。
- 特定の日の残業に手当が付くかどうか、社会保険に入れるかどうかを断定しないでください。
規則の決まりを書いたうえで、「ご自身の場合は担当コーディネーターが確認します」と書いてください。
- 体調、就業先での困りごと、契約の更新、給与の誤りの申し出には答えず、
「担当コーディネーターにおつなぎします」とだけ書いてください。
- 該当する記載が見つからないときは、
「お答えできる資料が見つかりません。担当コーディネーターにおつなぎします」とだけ書いてください。
- 他の人の条件や、就業先の社員の名前を書かないでください。
「本人の数値を書かない」と「数値は別の欄に表示される」を対で書くのが、この指示の要です。 書かないことだけを禁じると、数値を求められた回答が「規程では10日です」と付与の日数で答えます。読むスタッフは、それを残りの日数と受け取ります。 数値の行き先を指示の中で示すと、回答の文は規則の説明にとどまります。
検索の文は、中継プログラムが質問の前に本人の条件を足して組み立てます。 例えば「就業先:A社コールセンター、契約:C-88123。質問:この残業は手当が付きますか」のように、どの契約の質問かを最初に置きます。 就業先の名前は、本人が自分の契約を確かめるための表示だけに使います。
出力形式を固定する
answer メソッドの応答と勤怠のシステムの値を、中継プログラムが次の形にまとめます。
{
"message_id": "",
"session_id": "",
"staff_pseudo_id": "",
"contract_id": "",
"category": "rule_question | personal_numbers | personal_case",
"status": "answered | handed_over | skipped",
"handover_reason": "personal_case | not_found | user_request | none",
"answer_text": "",
"refs": [ { "doc_type": "notice | rule | faq", "section": "", "uri": "" } ],
"numbers": {
"paid_leave_remaining_days": null,
"next_grant_date": "",
"overtime_hours_this_month": null,
"source": "attendance_system",
"as_of": ""
},
"summary_for_coordinator": "",
"feedback": "solved | not_solved | none"
}
1つ目の理由は、answer_text と numbers を別の欄に持てることです。 画面では、回答の文の下に「勤怠のシステムの値(○月○日時点)」という枠を置き、numbers だけを表示します。as_of で時点を出すのは、今日取った有給休暇がまだ反映されていないことがあるためです。
2つ目は、summary_for_coordinator で引き継ぎが速くなることです。 回すときは、それまでの会話を3行に要約して受け口に載せます。コーディネーターは本人に同じことを聞き直さずに、続きから対応できます。 要約は中継プログラムが会話の記録から作り、コーディネーターの画面でだけ見せます。
3つ目は、refs の doc_type で根拠を検査できることです。 回答の出典に、本人以外の明示書が1件でも入っていたら、回答を表示せず、記録に残して人事部へ知らせます。 絞り込みが正しく組めていれば起きないことですが、起きたときに止まる仕組みを持ちます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| マイページのチャット | ログイン済みの画面 | 質問を受け、回答と数値の枠を表示する |
| 派遣管理のシステム | 読み取り | スタッフ番号、今の契約、担当コーディネーターを引く |
| 勤怠のシステム | 読み取り | 有給休暇の残りの日数、次の付与の日、時間外の労働の時間を引く |
| Agent Search | answer メソッドの呼び出し | 本人の範囲で絞り込んで回答を作る |
| コーディネーターの受け口 | 書き込み | 回すものを、要約と一緒に載せる |
派遣管理と勤怠のシステムには書き込みません。 有給休暇の申請も、この構成の中では受け付けません。申請はこれまでどおりの手続きで行い、チャットは申請の画面へのリンクを示すだけにします。 申請まで受け付けると、就業先との時季の調整を経ない申請が通ります。
人が確認する
AIの回答は、スタッフにそのまま返します。 規程と本人の明示書に書かれたことの説明で、1件ずつコーディネーターが確かめる設計にすると、200.0時間はほとんど減りません。 その代わり、確かめる仕組みを抜き取りと評価で持ちます。
- 回ってきたものに答える … 個別の相談と答えられなかった質問を、要約を見て本人に連絡します
- 評価の悪い回答を毎日見る … スタッフが「解決しない」を選んだ回答を、その日のうちに読みます
- 抜き取りで回答を確かめる … 週に30件を選び、根拠と答えが合っているかを労務の担当が見ます
- FAQを直す … 外れの多い質問から、FAQの回答と就業規則の見出しを直します
2番目を軽く見ないでください。 「解決しない」と選んだスタッフは、次は電話をかけてきます。 その前にコーディネーターから連絡できれば、1件の質問が2件に増えません。
目標は、1,500件をならして1件3分です。 チャットで解決した質問はコーディネーターの時間を使わず、回ってきたものと評価の悪いものに時間を使います。
例外に対処する
| 起きること | 対応 |
|---|---|
| ログインの情報からスタッフ番号が引けない | 検索せず、担当コーディネーターの連絡先を示す |
| 今の契約の明示書が取り込まれていない | 規程とFAQだけで答え、「ご自身の条件は担当が確認します」と添える |
| 就業先が2つあり、どちらか分からない | 契約を選んでもらってから検索する |
| 個別の相談の言葉が含まれる | 検索せず personal_case で回す |
| 勤怠のシステムが応答しない | 数値の枠に「ただいま表示できません」と出し、回答の文だけ返す |
| 出典に本人以外の明示書が入る | 回答を表示せず、人事部へ知らせる |
| 規程に該当する記載が無い | 回答を作らず not_found で回す |
| 契約の終了の後に質問が来る | 終わった契約の明示書も本人の範囲で引けるようにし、最終の給与の質問は回す |
6行目は、起きないはずのことへの備えです。 それでも、明示書のメタデータの付け間違い1件で起きえます。この行が一度でも動いたら、取り込みの手順を止めて付け方を確かめてください。
記録を残す
- 質問の文、日時、スタッフの仮の識別子、契約の番号
- 中継プログラムが組み立てた絞り込みの式
- answer メソッドの応答の全文(回答、出典、回答しなかった理由)
- 表示した数値と、その時点(
as_of) - 回す・回さないの判定と理由、コーディネーターが最終的に答えた内容
- スタッフの評価
2行目の絞り込みの式を全件残すのは、本人の範囲が守られていたことを後から示すためです。 スタッフから「他の人の条件が見えた」と申し出があったとき、式と出典を見れば、起きたかどうかを確かめられます。
04実装レベルの3段階
半自動化で、1件8分が5分程度になります。 調べる時間は縮みますが、電話を受けて答える形と、勤怠のシステムを開く手間が残ります。本格構成で3分になり、この段階が本記事の想定です。 差が大きいのは、規則で答えられる質問が、コーディネーターを通らずにスタッフ本人のところで完結するからです。 段階を飛ばさないでください。 半自動化の1か月で、どの質問が規則で答えられ、どの質問が個別の相談になったかを数えます。その割合が、個別の相談の言葉の一覧と、FAQの直しの元になります。
05工数削減シミュレーション
導入後 1,500件 × 3分 ÷ 60 = 75 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 数千人の派遣スタッフが稼働している派遣会社で、有給休暇の残りの日数、残業の手当、社会保険の加入の時期といった質問が担当コーディネーターに電話とメールで毎日届いている場合。就業条件明示書を電子データで持っており、スタッフごと・就業先ごとに引ける場合。勤怠と有給休暇の残りの日数を、勤怠のシステムから読み取りで引ける場合。スタッフ向けのマイページやアプリがあり、ログインした本人を特定できる場合。
- 就業条件明示書が紙だけで、スタッフごとに電子データで引けない場合(本人の条件を根拠にできないので、まず明示書の電子化が先です)。スタッフが数十人で、コーディネーターが一人ひとりの条件を覚えている場合。給与の計算の誤りや契約の更新の可否など、個別の判断までAIに答えさせたい場合(この構成は規程と本人の明示書の該当箇所を示すだけで、個別の判断はコーディネーターと労務の担当が行います)。スタッフの個人情報を外部のクラウドに置くことが社内規程で認められていない場合。
07最小構成で試す方法
- 先月の質問から30件を選ぶ(有給休暇・残業の手当・社会保険を10件ずつ。個別の相談だったものを数件入れる)
- その30件について、コーディネーターが何を見て、どう答えたかを対応の記録から拾う
- 就業規則・賃金規程・FAQと、該当するスタッフの明示書(氏名と連絡先を消したもの)を、手元のAIサービスに資料として読み込ませる
- 質問を貼り、「添付の明示書と規則だけを根拠に答えてください。本人の数値は書かないでください。体調や就業先の困りごとには答えないでください」と指示する
- 出てきた答えを、当時のコーディネーターの答えと突き合わせる
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ答えと根拠が出た | データストアの構築に進む |
| 規程から残りの日数を計算して書いた | 指示の書き方で直る。構成は有効 |
| 規則に答えが無い質問が多い | FAQと就業規則の見出しの整備が先。 検索の問題ではない |
明示書は、必ず個人の情報を消してから試してください。 手元のAIサービスに本人の連絡先を入れる理由はありません。
2行目が出ることは珍しくありません。 付与の日数と入社の日を渡せば、モデルは親切に引き算をします。それが本番で起きないよう、試す段階で「計算した答え」が何件出たかを数え、指示を直したあとに同じ30件で0件になることを確かめてください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 他の人の明示書が答えに混ざる | 絞り込みの式を中継プログラムがログインから組み立てる。 出典を検査して止める |
| 規程から残りの日数を計算して答える | 数値を書かせず、勤怠のシステムの値を別の枠に出す |
| 体調の相談に有給休暇の規則で答える | 個別の相談の言葉の一覧で、検索の前に回す |
| 法令の一般の説明で答える | 自社の規程だけで答えるよう指示する |
| 契約の変更の当日に古い明示書で答える | 発行のたびに取り込み、終わった契約に ended を付ける |
| 就業先が2つの人で条件が混ざる | 契約を選んでから検索し、契約を変えるときは新しいセッションにする |
| 明示書の連絡先が回答に出る | 検索の文書に就業の条件の欄だけを入れる |
| 有給休暇の申請までチャットで受けたくなる | 受けない。 申請の画面へのリンクだけを示す |
上の2行が、この構成の失敗のほとんどです。 どちらも、答えの中に本人のものではない情報が入るという失敗です。前者は他の人の条件、後者は本人の実績を反映していない数で、どちらも中継プログラムの規則で止めます。
3行目は、件数は少なくても重い失敗です。 体調の相談に規則の説明だけが返ると、スタッフは「話を聞いてもらえなかった」と受け取ります。一覧の言葉は、回ってきた相談の文面から毎月足していきます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: スタッフ一人ひとりの就業条件明示書(就業先、業務の内容、労働時間、契約の期間)、有給休暇と時間外の労働の数値、質問の文です。どれも本人の個人情報で、他の人に見えてはならないものです。
- 本人の範囲を中継プログラムで守る … 絞り込みの式はログインの情報から組み立て、スタッフの側から変えられない作りにします
- 検索の文書に連絡先を入れない … 明示書の就業の条件の欄だけを取り込みます
- 個別の相談をAIに答えさせない … 体調、困りごと、更新、給与の誤りの申し出は、必ずコーディネーターへ回します
- 数値はシステムの値だけを表示する … AIの回答の文に数値を書かせません
- 個別の判断は人が行う … 手当が付くか、社会保険に入れるかの個別の判断は、コーディネーターと労務の担当が行います。この構成が出すのは、規程と本人の明示書の該当箇所だけです
- 会話の記録の保存の期間を決める … 質問の文と回答は、対応の確認に使う期間だけ残します
誤りが起きた場合のリスクは、他の人の条件が見えることと、誤った数値で有給休暇の予定を立ててしまうことの2つです。 前者は絞り込みと出典の検査で、後者は数値を勤怠のシステムだけから出すことで防ぎます。どちらもAIの回答の文に頼らず、規則で守ります。
10まず何から始めるか
1週目:明示書の書き出しを確かめる
派遣管理のシステムの提供元に、明示書をスタッフ番号と契約の番号付きで書き出せるか、勤怠のシステムから残りの日数を読み取れるかを確かめます。ここができないと本格構成に進めないので、最初に確かめます。
2週目:30件で試す
先月の質問から30件を選び、個人の情報を消した明示書と規則を手元のAIサービスに読み込ませて聞きます。規程から残りの日数を計算していないか、体調の相談に答えていないかを最優先で見ます。
3週目:個別の相談の言葉の一覧とFAQを直す
人事部とコーディネーターで、回すべき相談の言葉の一覧を作ります。あわせて、外れた質問からFAQを直します。
4週目:データストアを作る
就業規則・賃金規程・FAQと、100名分の明示書を取り込み、コーディネーターが検索画面でスタッフ番号を指定して使います。 自分の答えと比べます。
2か月目: 中継プログラムとマイページのチャットを作り、100名のスタッフで試します。評価を毎週数えます。3か月目以降: 全スタッフに広げ、1件8分が何分になったかを実測します。本人以外の明示書が出典に入る件数が0件のまま3か月続き、評価の「解決しない」が1割を下回った時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称中であること。answer メソッドがセッションによる複数回のやり取りと質問の言い換えに対応すること。includeCitations、ignoreLowRelevantContent、ignoreAdversarialQuery、answerSkippedReasons、preamble、filter、userPseudoId | Google Cloud: Get answers and follow-ups | 2026-10-06 |
絞り込みの ANY() の完全一致、AND/OR/NOT、項目を索引可能にする必要があること | Google Cloud: Filter search for structured or unstructured data | 2026-10-06 |
Cloud Storage から取り込むときのメタデータの JSONL(id、structData/jsonData、content.mimeType、content.uri)。取り込みを1回または定期(1日・3日・5日ごと)から選べること | Google Cloud: Create a search data store | 2026-10-06 |
| 年次有給休暇が、雇入れから6か月継続勤務し全労働日の8割以上出勤した労働者に付与され、一般の労働者は10日から勤続に応じて20日までであること。週所定労働時間が30時間未満の労働者には所定労働日数に応じた日数が付与されること | 厚生労働省 スタートアップ労働条件: 年次有給休暇はどのような場合に、何日与えなければならないのでしょうか | 2026-10-06 |
| 派遣元が、6か月以上継続して勤務し、派遣元との労働契約で定められた全労働日の8割以上出勤した派遣労働者に年次有給休暇を付与し、賃金を支払わなければならないこと | 鳥取労働局: 派遣労働者に関する相談 | 2026-10-06 |
有給休暇の付与、時間外の労働の手当、社会保険の加入の個別の判断は、自社の就業規則と、労務の担当、必要に応じて社会保険労務士の確認に従ってください。 本記事は Google Cloud と厚生労働省の公開ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0432)についてのご相談はこちらから。
