製造現場の作業者から出る「この作業に保護具や資格・特別教育が要るか」の質問に、安全衛生規程・作業標準書・資格の一覧を根拠にチャットで答え、判断の要るものを安全担当へ回す
作業者や職長が「この作業に何の保護具が要るか」「この設備を動かすのに資格は要るか」をチャットで聞くと、作業標準書と設備台帳から作業を特定し、規程・法令の条文と本人の記録を並べて答えます。判断の要るものは安全衛生の担当へ回します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- 建設/物流/製造
- 対象部門
- 人事/生産
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/属人化している/確認ミスが多い
- AIで行う処理
- 対話
- 主な効果
- 品質標準化/対応スピード向上/属人化解消
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 作業者か職長が、作業の内容と設備を言葉で伝えて、安全衛生課の担当者に電話で聞く
- 担当者が、どのラインの何の作業か、設備の型式と能力、誰が作業するかを聞き返す
- 作業標準書、安全衛生規程、必要なら労働安全衛生法令の条文を開いて、該当する箇所を探す
- 資格が関わる質問は、人事の一覧で本人の免許・技能講習・特別教育の記録を確かめる
- 要る保護具と資格を伝え、記録が無ければ「作業に就かないで」と職長に伝える
- 作業標準書に無い作業や、記録の食い違いは、課長と相談して答える
- やり取りを、問い合わせの記録の表に書く
- 人作業者か職長が、工場の共用端末か会社貸与のスマートフォンで、安全衛生チャットに質問する(例:「来週から第2工場の出荷場に応援。フォークに乗ってよいか」)
- 自動中継プログラムが、ログインした社員の所属と工場を受け取る
- 自動質問を「保護具」「資格」「特別教育」「その他」に分け、足りない条件(作業標準書の番号、設備番号、作業する人の社員番号、定常の作業か)を選択肢で聞き返す
- 自動設備番号から設備台帳の値(最大荷重、つり上げ荷重、作業床の高さなど)を引き、要件の表の区切りと比べて、資格の区分(就業制限/特別教育/どちらでもない)を決める
- 自動回す条件(作業標準書に無い作業、台帳に値の無い設備、すでに作業した、請負や派遣の人)に当たれば、答えを作らずに安全衛生課へ回す
- 自動作業標準書の番号と資格の区分で絞り込み、Agent Search(旧 Vertex AI Search)の answer メソッドが作業標準書・規程・条文から根拠付きで答える
- 自動回答の下に、人事の記録から引いた本人の免許・技能講習・特別教育の有無を、AIを通さずに並べる
- 人作業者と職長は、根拠の作業標準書の欄と本人の記録を確かめてから作業に入る。記録が無ければ作業に就かない
- 人安全衛生課の担当者は、回ってきた質問だけを、聞き取り済みの条件を見て判断する
各工程の詳しい説明を読む
- 作業者か職長が、作業の内容と設備を言葉で伝えて、安全衛生課の担当者に電話で聞く
- 担当者が、どのラインの何の作業か、設備の型式と能力、誰が作業するかを聞き返す
- 作業標準書、安全衛生規程、必要なら労働安全衛生法令の条文を開いて、該当する箇所を探す
- 資格が関わる質問は、人事の一覧で本人の免許・技能講習・特別教育の記録を確かめる
- 要る保護具と資格を伝え、記録が無ければ「作業に就かないで」と職長に伝える
- 作業標準書に無い作業や、記録の食い違いは、課長と相談して答える
- やり取りを、問い合わせの記録の表に書く
(a)設備の能力を言葉で伝えられる。 「小さいフォーク」「2号機のホイスト」と言われても、最大荷重やつり上げ荷重は分かりません。担当者は保全の設備台帳を開き直し、ここで数分かかります。 聞き返さずに答えると、区切りの反対側の資格を伝えてしまいます。
(b)要るかどうかと、持っているかどうかが混ざる。 「フォークリフトの資格、持ってますよね」と職長に聞かれ、担当者が記憶で「持ってたはず」と答える。特別教育を受けた記録はあっても、それは1トン未満の運転の分で、1トン以上の運転の技能講習ではない、という取り違えがここで起きます。
(c)作業標準書に保護具が書いてあるのに、電話が来る。 書いてある内容を読み上げるだけの電話が、全体のかなりを占めます。それでも作業者が書類を開かないのは、どの作業標準書のどの欄を見ればよいかが分からないからです。
(d)判断の要る話が、普通の質問に混ざる。 「昨日、応援の人にリフトを動かしてもらった。資格を確かめていない」は保護具の質問ではなく、すでに起きた就業制限の違反の疑いです。 電話の山に埋もれると、確かめるのが遅れます。
- 【人】 作業者か職長が、工場の共用端末か会社貸与のスマートフォンで、安全衛生チャットに質問する(例:「来週から第2工場の出荷場に応援。フォークに乗ってよいか」)
- 【自動】 中継プログラムが、ログインした社員の所属と工場を受け取る
- 【自動】 質問を「保護具」「資格」「特別教育」「その他」に分け、足りない条件(作業標準書の番号、設備番号、作業する人の社員番号、定常の作業か)を選択肢で聞き返す
- 【自動】 設備番号から設備台帳の値(最大荷重、つり上げ荷重、作業床の高さなど)を引き、要件の表の区切りと比べて、資格の区分(就業制限/特別教育/どちらでもない)を決める
- 【自動】 回す条件(作業標準書に無い作業、台帳に値の無い設備、すでに作業した、請負や派遣の人)に当たれば、答えを作らずに安全衛生課へ回す
- 【自動】 作業標準書の番号と資格の区分で絞り込み、Agent Search(旧 Vertex AI Search)の answer メソッドが作業標準書・規程・条文から根拠付きで答える
- 【自動】 回答の下に、人事の記録から引いた本人の免許・技能講習・特別教育の有無を、AIを通さずに並べる
- 【人】 作業者と職長は、根拠の作業標準書の欄と本人の記録を確かめてから作業に入る。記録が無ければ作業に就かない
- 【人】 安全衛生課の担当者は、回ってきた質問だけを、聞き取り済みの条件を見て判断する
4番目が、この設計の分かれ目です。 1トン以上か未満かは、設備台帳の数字と要件の表の比較で決まり、AIの判断は入りません。 AIに任せると、「フォークリフトの運転には技能講習が要ります」という一般論か、「1トン未満なら特別教育で足ります」という条件付きの説明を返し、目の前の設備がどちらかを作業者に決めさせることになります。
7番目をAIの回答の外に置いているのも、意図してのことです。 記録の有無は人事の一覧の事実で、文章にする必要がありません。 モデルに渡すと、「技能講習修了」の行を見つけて別の区分の資格と取り違える余地が生まれます。
02今回想定するシステム構成
安全衛生チャット(作業者・職長。共用端末/スマートフォン) ▼【トリガー】質問の送信(社員の ID 付き) 中継プログラム(Python、Cloud Run) ├──▶ 質問の種類の判定 → 聞き返しの選択肢 ├──▶ 設備台帳:設備番号 → 最大荷重・つり上げ荷重・作業床の高さ ├──▶ 要件の表:設備の種類と値 → 就業制限/特別教育/該当なし ├──▶ 人事の記録:社員番号 → 免許・技能講習・特別教育の有無 ├──▶ 回す条件 → 安全衛生課の待ち行列(工場別) ▼ Agent Search(Vertex AI Search)── answer メソッド │ データストア:作業標準書(保護具の欄)+安全衛生規程 │ +労働安全衛生法・施行令・規則の条文+過去の質疑 │ 絞り込み:doc_type/plant/sop_no/req_class ▼ 中継プログラム ── 回答の資格の区分が要件の表と合っているかを確かめる ├──▶ 回答・根拠・本人の記録を返す └──▶ 答えられない・区分が合わない → 安全衛生課の待ち行列
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、チャット・設備台帳・人事の記録・検索・待ち行列をつなぐ) | Node.js で同じものを書く |
| 認証 | 社内の ID 基盤(社員番号でログイン) | Google の ID |
| 保管 | Cloud Storage(作業標準書・規程・条文の原本とメタデータ) | ─ |
設備台帳と人事の記録は、新しく足すものではありません。 中継プログラムは設備番号から能力の値を、社員番号から資格と教育の有無を読むだけで、どちらにも書き込みません。最初の準備は、要件の表を作ることです。 設備の種類ごとに、どの値で就業制限と特別教育が分かれるかを1行ずつ書きます。
検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 検索の結果から回答を作り、出典を付けられます。前のセッションの ID を渡すとやり取りを続けられ、質問の言い換えは既定で有効です。回答の文ごとに根拠の強さのスコアを返す設定と、スコアの低い回答を落とす設定があります。
根拠の条文は三つの層に分かれます。 労働安全衛生法第61条は、クレーンの運転その他の政令で定める業務について、免許を受けた者や技能講習を修了した者などでなければ就かせてはならないとし、就く者は免許証などを携帯していなければならないとしています。第59条第3項は、危険又は有害な業務に就かせるときの特別の教育を事業者に求めています。施行令第20条が就業制限の業務を、規則第36条が特別教育の業務を並べ、フォークリフトは最大荷重1トン、クレーンはつり上げ荷重5トン、玉掛けは1トンで両者が分かれます。
03どうやって実装するのか
処理の起点を決める
起点は、作業者か職長が安全衛生チャットに質問を送ったことです。 チャットは社員番号でログインした人が使え、所属と工場から、回したときにどの工場の担当者の待ち行列に載せるかを決めます。
資格と特別教育の質問では、設備番号と作業する人の社員番号を必須にします。 職長が部下のことを聞く場合もあるので、作業する人は「自分」か「社員番号を入れる」かを選ばせます。 設備番号が分からなければ、設備に貼ってある番号の位置を画面に写真で示します。
1件の質問は、1つのセッションで最後まで続けます。 「では荷の積み下ろしの補助だけなら」のような続けての質問も同じセッションでつなぎ、別の設備の話は新しいセッションで始めます。 前の設備の条件が言い換えの中に残るからです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 質問 | 作業者が打った質問の文、選んだ聞き返しの値 | チャット |
| 社員の情報 | 所属、工場、雇用の区分(社員/派遣/請負) | 社内の ID 基盤 |
| 設備の情報 | 設備番号、種類、最大荷重・つり上げ荷重・作業床の高さ、設置場所 | 保全の設備台帳 |
| 資格・教育の記録 | 免許・技能講習の種類と修了日、特別教育の科目と受講日 | 人事の仕組みの一覧 |
| 作業標準書 | 作業の手順、保護具の欄、必要な資格・教育の欄 | 社内ポータルのPDF |
| 安全衛生規程 | 保護具の支給と使用、資格者の配置、教育の実施の規定 | 社内ポータルのPDF |
| 法令の条文 | 法第59条・第61条、施行令第20条、規則第35条〜第38条・第41条・第593条〜第597条 | e-Gov 法令検索の法令API |
| 要件の表 | 設備の種類ごとの区切りの値と、就業制限/特別教育の区分 | 安全衛生課が作る表 |
| 回す条件の表 | 質問の種類ごとに、聞き返す項目と選択肢、答えずに回す値 | 安全衛生課が作る表 |
質を決めるのは、要件の表と回す条件の表です。 要件の表には「フォークリフト:最大荷重1トン以上は就業制限、未満は特別教育」のように、施行令第20条と規則第36条の区切りを設備の種類ごとに書きます。回す条件の表には、「作業標準書に無い作業」「すでに作業した」「派遣・請負の人」のような値を書きます。 派遣や請負の人の資格の記録は自社の人事の一覧に無いことが多く、記録が無いことが資格が無いことを意味しないからです。
人事の記録は、資格の種類と日付だけを引きます。 健康診断の結果や評価など、同じ仕組みにある別の項目は引きません。
データの取得方法を決める
作業標準書・規程・条文・過去の質疑は、Cloud Storage に置いてデータストアに取り込みます。 文書ごとのメタデータに、文書の種類、工場、作業標準書の番号、資格の区分、改訂日を持たせます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 文書の種類(作業標準書/規程/条文/質疑) | メタデータ | 絞り込みと、根拠の表示の順 |
| 工場 | メタデータ | 工場ごとに違う作業標準書を混ぜない |
| 作業標準書の番号 | メタデータ | 聞き取った作業の標準書だけに絞る |
| 資格の区分 | メタデータ | 要件の表で決めた区分の条文だけに絞る |
法令の条文は、e-Gov 法令検索の法令API(laws.e-gov.go.jp/api/2/law_data/…)から取り込みます。 労働安全衛生法、施行令、規則を条ごとに取り、改正の施行日をメタデータに持たせます。 規則は改正が多いので、半年に一度、安全衛生課がAPIの改正情報を確かめます。
絞り込みの式は、工場と作業標準書の番号と区分で書きます。 項目を索引可能にしておけば、plant: ANY("P2") AND sop_no: ANY("P2-SH-014", "COMMON") AND req_class: ANY("skill_course", "none") のように、その工場のその作業標準書と、決めた区分の条文だけを引けます。COMMON は全工場に共通の規程に付けます。
設備台帳と人事の記録は、中継プログラムが照会します。 保全の仕組みと人事の仕組みの照会のしかたは製品によって違い、この部分は個別の実装が必要です。 夜間に一覧を書き出して読む形でも、資格の質問には足ります。
AIへ渡す前に整形する
- 作業標準書を作業ごとに分ける … 1冊に複数の作業がある場合、作業の見出しで分け、それぞれに作業標準書の番号を付けます
- 保護具の欄を見出し付きで残す … 「保護具」「必要な資格・教育」の欄は、表のまま取り込みます
- 規程を条ごとに分ける … 安全衛生規程を、条の見出しが付いた形で取り込みます
- 条文を取り込む … 法・施行令・規則の該当条を、条の見出しと号の番号を付けて取り込みます
- 要件の表を作る … 施行令第20条と規則第36条から、自社にある設備の種類だけを拾って区切りの値を書きます
- 設備台帳の値を確かめる … 最大荷重などの値が空の設備を一覧にし、保全に埋めてもらいます
- 見出しを断片に含める … データストアの作成時に分割を有効にし、
includeAncestorHeadingsを有効にします
6番目が、この構成でいちばん効きます。 設備台帳に能力の値が無い設備は、区分を決められず、すべて安全衛生課に回ります。 古いフォークリフトやホイストほど値が抜けているので、銘板を見て埋める作業を先に済ませます。
7番目は、データストアを作る前に決めます。 分割はデータストアの作成のあとでは有効にも無効にもできず、見出しを含める設定は既定では無効です。 作業標準書の「保護具」の表は、見出しが無いとどの作業の保護具か分かりません。 分割の大きさは100〜500トークンで、既定は500です。
AIに処理させる
させるのは、聞き取った作業と決めた区分に当たる作業標準書・規程・条文の記載を見つけ、作業の前に何を着けて何を確かめるかを、根拠を付けて短く返すことです。 区分を決めること、記録を読むこと、回すかどうかは、中継プログラムが行います。
| 要素 | 中身 | 根拠 |
|---|---|---|
| 着ける保護具 | 作業標準書の保護具の欄のとおり | 作業標準書 |
| 要る資格・教育 | 中継プログラムが決めた区分の名前と、その根拠の条 | 条文、規程 |
| 作業の前に確かめること | 作業開始前の点検、立入禁止の範囲など | 作業標準書 |
| 根拠の場所 | 作業標準書の番号と欄、規程の条、法令の条 | 全部 |
answer メソッドの設定は次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
session | 質問ごとのセッション | 聞き返しと続けての質問をつなぐ |
includeCitations | 有効 | 作業標準書の欄と条文の場所を付ける |
ignoreLowRelevantContent | 有効 | 作業標準書と規程に無い話に答えない |
ignoreNonAnswerSeekingQuery | 有効 | あいさつや雑談で検索しない |
groundingSpec の filteringLevel | FILTERING_LEVEL_HIGH | 根拠の弱い回答を出さない |
filter | 工場、作業標準書の番号、区分 | 別の工場や別の区分の記載を混ぜない |
preamble | 下の指示 | 答え方の規則を与える |
| させないこと | 理由 |
|---|---|
| 就業制限か特別教育かを決める | 設備台帳の値と要件の表で決める |
| 本人が資格を持っているかの判断 | 人事の記録をそのまま表示する |
| 作業に就いてよいかの結論 | 職長と安全衛生課が決める |
| 作業標準書に無い保護具を足す・減らす | 作業標準書の改訂は安全衛生委員会を通す |
| 一般的な安全の知識で補う | 自社の作業標準書と違いうる |
1行目がいちばん起きやすい失敗です。 条文の検索で施行令第20条と規則第36条の両方が見つかると、モデルは両方を並べて「最大荷重によって異なります」と書きます。 正しい文ですが、現場で何をすればよいかが決まりません。区分は先に決めて検索の文に入れ、決めた区分の条文だけを引かせます。
指示内容を固定する
answer メソッドの preamble に、次の指示を入れます。
あなたは工場の安全衛生課の担当者として、
製造現場の作業者と職長から、保護具・資格・特別教育の質問に答えます。
読むのは、作業の手を止めてチャットを見ている人です。短く答えてください。
【前提】
検索の文の最初に、工場、作業標準書の番号、設備の種類、
中継プログラムが決めた資格の区分(就業制限/特別教育/該当なし)が並んでいます。
区分はすでに決まっています。その区分に当たる記載だけを使って答えてください。
【答え方】
1. 最初に、着ける保護具を作業標準書の欄のとおりに書いてください。
2. 次に、要る資格または教育の名前を、決まっている区分のとおりに書いてください。
3. 作業の前に確かめることが作業標準書にあれば、手順の順に書いてください。
4. 根拠にした作業標準書の番号と欄、規程の条、法令の条を書いてください。
【厳守事項】
- 検索結果の文書に書かれていることだけで答えてください。
一般的な安全の知識や他社の例で補わないでください。
- 区分を変えないでください。「荷重によって異なる」と書かないでください。
- 作業する人が資格を持っているかどうかを書かないでください。
記録は別に表示されます。
- 「作業してよい」「問題ない」と書かないでください。
- 作業標準書にない保護具を足したり、省いてよいと書いたりしないでください。
- 該当する記載が見つからないときは、
「作業標準書と規程に該当する記載が見つかりません。安全衛生課へ回します」
とだけ書いてください。
「区分を変えない」「荷重によって異なると書かない」が、この指示の要です。 区分を検索の文で渡すだけでは、検索結果にもう一方の条文が混ざったときに、モデルは親切のつもりで両方を説明します。 書き方そのものを禁じ、区分の取り違えは後段の検査でも拾います。
検索の文は、中継プログラムが組み立てます。 例えば「工場:第2工場、作業標準書:P2-SH-014(出荷場の積込み)、設備:フォークリフト、区分:就業制限(技能講習)。この作業で着ける保護具と、要る資格は何か」のように、条件を先に並べ、作業者の質問の文を最後に足します。 設備台帳の数値そのものは渡さず、区分の名前だけを渡します。
出力形式を固定する
answer メソッドの応答を、中継プログラムが次の形に整えて、チャットと記録に渡します。
{
"inquiry_id": "",
"session_id": "",
"plant": "",
"category": "ppe | license | special_training | other",
"conditions": { "sop_no": "", "equipment_no": "", "equipment_type": "", "capacity_value": "", "worker_id": "", "employment_type": "employee | dispatched | contractor", "routine": true },
"req_class": "work_restriction | special_training | none | unknown",
"status": "answered | escalated | skipped",
"escalate_reason": "not_in_sop | capacity_missing | already_worked | non_employee | no_record | class_mismatch | not_in_rules | skipped | user_request | none",
"answer_text": "",
"worker_records": [ { "kind": "license | skill_course | special_training", "name": "", "date": "" } ],
"refs": [ { "doc_type": "sop | rule | statute | qa", "title": "", "section": "", "revised": "", "uri": "" } ],
"feedback": "resolved | escalated_after | wrong | none"
}
1つ目の理由は、req_class を回答の文と別に持てることです。 区分は中継プログラムが要件の表で決め、answer_text の中に別の区分の名前(「特別教育」と「技能講習」)が出てきたら、回答を出さずに class_mismatch で回します。 区分の取り違えを、文の読み方に頼らずに検知できます。
2つ目は、worker_records を回答と並べて見せられることです。 人事の記録の行をそのまま入れ、AIは触りません。 作業者は「要るもの」と「持っているもの」を同じ画面で見比べ、足りなければ職長に伝えて作業に就きません。
3つ目は、escalate_reason で回った理由を数えられることです。 capacity_missing が多い工場は設備台帳の整備が、not_in_sop が多いラインは作業標準書の改訂が追いついていないことが分かります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 安全衛生チャット | 社内向けの画面 | 質問を受け、聞き返しと回答、本人の記録を表示する |
| 社内の ID 基盤 | ログイン | 所属・工場・雇用の区分を決める |
| 保全の設備台帳 | 読み取り(設備番号で照会) | 能力の値を引く |
| 人事の仕組み | 読み取り(社員番号で照会) | 免許・技能講習・特別教育の種類と日付を引く |
| Agent Search | answer メソッドの呼び出し | 作業標準書・規程・条文から回答を作る |
| 安全衛生課の待ち行列 | 書き込み | 回す質問を、条件と一緒に工場別に載せる |
| 問い合わせの記録 | 書き込み | 質問・条件・区分・回答・評価を残す |
設備台帳と人事の仕組みには、書き込みません。 記録が古いと分かっても、チャットからは直しません。記録の訂正は、受講の証明を見て人事が行います。 証明の無い記録を現場の申告で足すと、就業制限の確認そのものが崩れます。
人が確認する
作業者と職長は、回答を読んだあと、作業標準書の欄と本人の記録を確かめてから作業に入ります。 回答の上には、選んだ設備と区分を並べて表示します。
- 設備が合っているかを見る … 設備番号が、これから動かす設備の番号と同じかを確かめます
- 本人の記録を見る … 要る資格・教育の行が、記録の欄にあるかを見ます。無ければ作業に就きません
- 評価を付ける … 解決した/安全衛生課へ回した/誤りを選びます
1番目を軽く見ないでください。 同じ出荷場に最大荷重の違うフォークリフトが並んでいると、隣の設備の番号を入れるだけで区分が変わります。 画面に設備の写真と銘板の値を出し、目で照らせるようにします。
安全衛生課の担当者は、回ってきた質問だけを見ます。 already_worked はその日のうちに職長と話し、事実を確かめて対応を決めます。
目標は、240件をならして1件5分です。 チャットで解決した質問の記録の確認と、回ってきた質問を担当者が判断する時間の平均です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 設備番号が台帳に無い | 番号の打ち直しを促し、見つからなければ答えを作らず回す |
| 設備台帳に能力の値が無い | 答えを作らず capacity_missing で回し、保全に値の記入を頼む |
| 作業標準書に無い作業 | 答えを作らず not_in_sop で回す |
| 「すでに作業した」が選ばれる | 答えを作らず already_worked で回し、担当者へ即時に通知する |
| 派遣・請負の人の質問 | 答えを作らず non_employee で回す。記録が自社に無いため |
| 本人の記録が見つからない | 区分の回答は出し、記録の欄に「記録なし。作業に就かず職長へ」と表示する |
| 回答の区分が要件の表と合わない | 回答を出さず class_mismatch で回す |
| 検索の呼び出しが失敗する | 「回答を作れませんでした」と表示し、安全衛生課の内線を示す |
4行目は、運用の約束として現場に伝えておきます。 すでに作業してしまったことを報告できる窓口だと分かっていないと、職長は「これから作業するなら何が要るか」という形で聞き、記録の確認だけで済ませてしまいます。
記録を残す
- 質問の文、選んだ聞き返しの値、日時、所属と工場
- 引いた設備台帳の値と、要件の表のどの行で区分を決めたか
- 中継プログラムが組み立てた検索の文と、使った絞り込みの式
- answer メソッドの応答の全文(回答、出典、根拠のスコア、回答しなかった理由)
- 表示した本人の記録の行
- 回す・回さないの判定と、その理由、安全衛生課が最終的に答えた内容
- そのとき効いていた作業標準書の改訂日と、規則の施行日
2行目と最後の行は、後から確かめるときに効きます。 作業標準書が改訂されたり、設備台帳の値が直されたりしたあとで、当時なぜその区分で答えたかを並べて見られるようにしておきます。
04実装レベルの3段階
半自動化で、1件15分が10分程度になります。 探す時間は縮みますが、電話の聞き返しと、設備台帳と人事の一覧を担当者が開く手間が残ります。本格構成で5分になり、この段階が本記事の想定です。 差が大きいのは、設備番号と社員番号を作業者が自分で入れ、能力の値と記録が最初から並ぶからです。 段階を飛ばさないでください。 半自動化の1か月で、担当者が電話で何を聞き返しているかを拾い、聞き返しの選択肢と回す条件の表の元にします。
05工数削減シミュレーション
導入後 240件 × 5分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 工場に数百名以上の作業者がいて、フォークリフト・クレーン・玉掛け・アーク溶接・研削といしの取替えなど、資格や特別教育の要る作業が日常的にある製造業・物流業。作業標準書に保護具の欄があり、資格と特別教育の受講の記録を人事か安全衛生の担当が一覧で持っている場合。異動や応援、新しい設備の導入のたびに、職長や作業者から安全衛生の担当へ「これは要るのか」という質問が毎月届いている場合。
- 作業者が数十名で、安全衛生の担当者が全員の資格と作業を把握している場合。作業標準書に保護具の記載が無く、資格と教育の記録も紙のまま散らばっている場合(根拠にする文書が無いので、まず作業標準書と記録の一覧を整えるのが先です)。作業に就かせてよいかの最終の判断をAIに任せたい場合(この構成は規程と記録の該当箇所を示すだけで、就かせるかどうかは職長と安全衛生の担当が決めます)。
07最小構成で試す方法
- 過去半年に安全衛生課に届いた質問から30件を選ぶ(フォークリフトとクレーンの区切りが問題になった質問と、作業標準書を読み上げただけの質問を数件ずつ入れる)
- その30件について、担当者がどの作業標準書と条文を見てどう答えたかを記録から拾う
- 該当する作業標準書、安全衛生規程、法第59条・第61条、施行令第20条、規則第36条を、手元のAIサービスに資料として読み込ませる
- 設備の値と区分を条件として貼り、「添付の資料だけを根拠に、着ける保護具と要る資格を答えてください。区分は変えず、作業してよいかは書かないでください」と指示する
- 出てきた回答を、当時の担当者の回答と突き合わせる
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ根拠で同じ答えが出た | データストアの構築に進む |
| 区分を変えて両方を説明した | 指示の書き方と区分の検査で直る。構成は有効 |
| 作業標準書の保護具の欄が見つからない | 作業標準書の書き方をそろえるのが先。 検索の問題ではない |
3行目が出たら、 保護具を手順の文の途中から独立した欄に移す改訂を進め、同じ30件で試し直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 「荷重によって異なる」と両方を説明する | 区分を先に決めて渡し、書き方を禁じ、文の中の区分を検査する |
| 作業者が設備の大きさを言葉で伝える | 設備番号を必須にし、台帳の値で区分を決める |
| AIが記録を読んで「持っています」と書く | 記録は中継プログラムが表示し、モデルに渡さない |
| 特別教育の記録を技能講習と取り違える | 記録を種類(免許/技能講習/特別教育)で分けて表示する |
| 派遣・請負の人に「記録なし」と出る | 雇用の区分で分け、自社に記録が無い人は回す |
| 別の工場の作業標準書で答える | 工場で絞り込み、共通の規程だけに COMMON を付ける |
| 保護具の表がどの作業のものか分からない | 作成時に includeAncestorHeadings を有効にする。後から変えられない |
| 改正された規則の古い条文で答える | 法令APIから取り直し、施行日をメタデータに持たせる |
上の3行が、この構成の失敗のほとんどです。 どれも、正しい条文や記録を引いているのに、目の前の設備とその人には当てはまらないという失敗です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 作業標準書、安全衛生規程、法令の条文、設備台帳の能力の値、作業者の資格・教育の記録(種類と日付)です。記録は個人の情報なので、検索のデータストアには入れません。
- 資格・教育の記録をAIに渡さない … 記録は中継プログラムが照会して画面に並べるだけにし、検索の文にも回答の生成にも使いません。 人事の仕組みから引く項目も、資格の種類と日付に限ります
- 作業に就かせてよいかをAIに決めさせない … 労働安全衛生法第61条は、資格の無い者を就業制限の業務に就かせることも、その者が業務を行うことも禁じています。就かせるかどうかは職長と安全衛生課が記録を見て決めます
- 区分を規則とデータで決める … 1トン・5トンのような区切りは要件の表に置き、表の更新は安全衛生課の承認を通します
- すでに起きたことの報告を止めない …
already_workedは即時に人へ回し、チャットの中で手続きの案内に流しません - 問い合わせの記録の保存の期間を決める … 規則第38条は特別教育の記録を3年間保存するとしています。チャットの記録もそれに合わせて期間を決め、過ぎたら消します
誤りが起きた場合のリスクは、区分を取り違えて資格の要る作業に就かせることと、着けるべき保護具を伝え漏らすことの2つです。 前者は設備台帳の値と要件の表で、後者は作業標準書の欄の絞り込みと書き方の禁止で防ぎます。
10まず何から始めるか
1週目:要件の表を作る
施行令第20条と規則第36条から、自社にある設備の種類だけを拾い、どの値で就業制限と特別教育が分かれるかを表にします。あわせて、設備台帳で能力の値が空の設備を一覧にし、保全に渡します。
2週目:30件で試す
過去半年の質問から30件を選び、手元のAIサービスに作業標準書・規程・条文を読み込ませて、区分を条件として渡して聞きます。区分を変えて両方を説明していないか、作業してよいと書いていないかを最優先で見ます。
3週目:回す条件の表を決める
「作業標準書に無い作業」「すでに作業した」「派遣・請負の人」「設備の値が無い」を中心に、聞き返す項目と回す値を表にし、安全衛生委員会に報告して承認を取ります。
4週目:データストアを作る
分割・見出しの設定を決めて、作業標準書・規程・条文・質疑を取り込みます。安全衛生課の担当者が検索画面で使い、自分の回答と比べます。
2か月目: 中継プログラムとチャットを作り、工場の1つで試します。回った理由を毎週数えます。3か月目以降: 全工場に広げ、1件15分が何分になったかを実測します。安全衛生課に届く質問が、判断の要るものとすでに起きたことの報告だけになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称中であること。answer メソッドが前のセッションの ID でやり取りを続けられ、質問の言い換えが既定で有効なこと。includeCitations、ignoreLowRelevantContent、ignoreNonAnswerSeekingQuery、preamble、filter。groundingSpec の filteringLevel(FILTERING_LEVEL_LOW/HIGH)で根拠のスコアの低い回答を落とせること、文ごとに根拠のスコアが付くこと | Google Cloud: Get answers and follow-ups | 2026-10-08 |
絞り込みの ANY()、比較の演算子、AND/OR、項目を索引可能にする必要があること | Google Cloud: Filter search for structured or unstructured data | 2026-10-08 |
レイアウトパーサーが表と見出しを検出すること。分割の大きさが100〜500トークン(既定500)、includeAncestorHeadings が既定で無効、分割は作成後に切り替えられないこと | Google Cloud: Parse and chunk documents | 2026-10-08 |
| 労働安全衛生法第59条(雇入れ時・作業内容の変更時の教育、第3項の特別の教育)、第61条(就業制限。免許・技能講習の修了などが無ければ就かせてはならないこと、就ける者以外は業務を行ってはならないこと、免許証などの携帯)。2026年10月1日施行の改正を反映した版 | e-Gov 法令検索 法令API: 労働安全衛生法 | 2026-10-08 |
| 施行令第20条(就業制限に係る業務。つり上げ荷重5トン以上のクレーン、最大荷重1トン以上のフォークリフト、つり上げ荷重1トン以上のクレーン等の玉掛け、作業床の高さ10メートル以上の高所作業車など) | e-Gov 法令検索 法令API: 労働安全衛生法施行令 | 2026-10-08 |
| 規則第35条(雇入れ時等の教育。保護具の性能と取扱い方法を含む)、第36条(特別教育を必要とする業務。研削といしの取替え、アーク溶接、最大荷重1トン未満のフォークリフト、つり上げ荷重5トン未満のクレーン、1トン未満の玉掛けなど)、第37条(科目の省略)、第38条(特別教育の記録の3年間の保存)、第41条(就業制限の資格)、第593条〜第597条(保護具を備えること、同時に就業する人数と同数以上、労働者の使用義務) | e-Gov 法令検索 法令API: 労働安全衛生規則 | 2026-10-08 |
作業に就かせてよいか、どの保護具を定めるかは、自社の安全衛生規程と安全衛生委員会、必要に応じて労働基準監督署や専門家の助言に従ってください。 本記事は Google Cloud と e-Gov 法令検索で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0878)についてのご相談はこちらから。
