製造現場の改善提案を作業者とAIとの対話で聞き取り、現状・対策・効果の見込みの様式にそろえて審査に回す
現場の作業者が思いついた改善の案を、共用タブレットでのAIとの短い対話で聞き出し、「現状・対策・効果の見込み」の提案書の様式にそろえます。班長の仕事は、聞き取って清書することから、そろった下書きを確かめて審査に回すことに変わります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- 小売/建設/物流/製造
- 対象部門
- 生産
- 対象業務
- データ入力・転記/書類作成
- 主な課題
- 人手が足りない/属人化している/書類作成に時間がかかる
- AIで行う処理
- 対話
- 主な効果
- 品質標準化/属人化解消/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 作業者が思いついた案を、班長に口頭で伝えるか、提案用紙に一言だけ書いて箱に入れる
- 班長が休憩時間か終業後に作業者を呼び、何に困っていて何を変えたいのかを聞き取る
- 班長が提案用紙の4欄に清書する。効果の欄は、作業者に回数や時間を聞き直して数字を入れる
- 班長が提案用紙をスキャンし、事務局の共有フォルダへ入れる
- 事務局が提案を管理台帳に登録し、4欄が埋まっているか、効果の数字に根拠があるかを確かめる
- 埋まっていない、または効果の根拠が分からないものは、班長に差し戻す
- そろったものを審査会の資料にまとめる
- 人作業者が休憩所の共用タブレットで「改善提案」を開き、社員番号と工程を選ぶ
- 自動ワークフローが工程の情報(工程名、主な作業、設備の呼び名)を引き、対話の最初の質問を出す
- 【人/自動】 作業者が話すか打つかで答え、AIが現状・対策・効果の見込みを1問ずつ聞き出す
- 自動効果の見込みは、作業者が答えた回数と時間を数値で受け取り、計算はワークフローが行う
- 自動聞き取りが終わると、AIが提案書の項目に沿ったJSONを返し、提案書の下書きにする
- 自動安全に関わる対策(安全装置・保護具・手順の省略に触れるもの)には印を付ける
- 自動下書きを管理台帳に登録し、その班の班長に確認を依頼する
- 人班長が下書きを読み、事実と違うところを直して「審査へ」を押す
- 人事務局が審査会の資料にまとめる。安全の印が付いたものは安全衛生の担当にも回す
各工程の詳しい説明を読む
- 作業者が思いついた案を、班長に口頭で伝えるか、提案用紙に一言だけ書いて箱に入れる
- 班長が休憩時間か終業後に作業者を呼び、何に困っていて何を変えたいのかを聞き取る
- 班長が提案用紙の4欄に清書する。効果の欄は、作業者に回数や時間を聞き直して数字を入れる
- 班長が提案用紙をスキャンし、事務局の共有フォルダへ入れる
- 事務局が提案を管理台帳に登録し、4欄が埋まっているか、効果の数字に根拠があるかを確かめる
- 埋まっていない、または効果の根拠が分からないものは、班長に差し戻す
- そろったものを審査会の資料にまとめる
(a)班長の聞き取りが重い。 1件の聞き取りに10分以上かかり、ライン作業の合間には取れません。 聞き取りが後回しになり、案を言ってから提案書になるまでに2〜3週間かかることがあります。 その間に作業者の熱が冷めます。
(b)書き方が班長によって違う。 ある班長は現状を細かく書き、別の班長は対策だけを書きます。同じ内容の提案でも、班長の書き方で審査の印象が変わります。 作業者から見ると、「どの班にいるかで採用されやすさが違う」と映ります。
(c)効果の欄が数字にならない。 「楽になる」「早くなる」と書かれた提案は、審査会で「どれくらい?」と聞かれます。1日に何回その作業をするか、1回に何秒かかるかを聞けば数字になりますが、その聞き直しを班長が毎回できるわけではありません。
(d)作業者の言葉が消える。 班長が清書すると、作業者が何に困っていたのかという元の言葉が残りません。 審査会で「この提案の本当の困りごとは何か」が分からなくなり、表面の対策だけで採否が決まります。
- 【人】 作業者が休憩所の共用タブレットで「改善提案」を開き、社員番号と工程を選ぶ
- 【自動】 ワークフローが工程の情報(工程名、主な作業、設備の呼び名)を引き、対話の最初の質問を出す
- 【人/自動】 作業者が話すか打つかで答え、AIが現状・対策・効果の見込みを1問ずつ聞き出す
- 【自動】 効果の見込みは、作業者が答えた回数と時間を数値で受け取り、計算はワークフローが行う
- 【自動】 聞き取りが終わると、AIが提案書の項目に沿ったJSONを返し、提案書の下書きにする
- 【自動】 安全に関わる対策(安全装置・保護具・手順の省略に触れるもの)には印を付ける
- 【自動】 下書きを管理台帳に登録し、その班の班長に確認を依頼する
- 【人】 班長が下書きを読み、事実と違うところを直して「審査へ」を押す
- 【人】 事務局が審査会の資料にまとめる。安全の印が付いたものは安全衛生の担当にも回す
8番目が、この設計の分かれ目です。 AIが聞いた内容を、作業者の上長である班長が一度読んでから審査に出します。 現場を知らないAIは、作業者が言い間違えた工程名も、実際には無理な対策も、そのまま書きます。班長はゼロから聞く人から、下書きを確かめる人に変わります。
4番目で計算をAIにさせないのも、意図してのことです。 「1日に40回、1回15秒短くなる」と聞いたら、AIは2つの数を記録するだけで、掛け算と月の時間への換算はワークフローの式で行います。 効果の数字は審査で報奨の等級に直結するため、計算の誤りが入り込む場所を1つでも減らします。
02今回想定するシステム構成
共用タブレット(休憩所・詰所) │ 社員番号と工程を選ぶ/音声または文字で答える ▼【トリガー】「改善提案」を開いて最初の発話を送る Make(Custom webhook で発話を受け取る) ├──▶ 工程マスタから工程名・主な作業・設備の呼び名を引く ├──▶ 音声なら OpenAI の音声認識(speech to text)で文字にする ▼ ChatGPT(OpenAI API の Responses API) │ ・現状 → 対策 → 効果の見込み の順に1問ずつ聞く │ ・previous_response_id で往復をつなぐ │ ・聞き終えたら Structured Outputs で提案書のJSONを返す ▼ Make(Webhook response で次の質問をタブレットへ返す) │ ├──▶ 効果の見込みを式で計算(回数 × 短縮秒 × 稼働日) ├──▶ 安全に関わる語の印 ▼ 提案の管理台帳へ下書きとして登録 ▼ 班長が確認・修正 ──【人】審査へ回す ▼ 事務局が審査会の資料にまとめる ──【人】採否と報奨は審査会
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | ChatGPT(OpenAI API の Responses API) | Claude API、Gemini API |
| 連携 | Make | n8n、Zapier、Power Automate |
| 音声の文字起こし | OpenAI の音声認識(speech to text) | 端末の音声入力 |
| 画面 | 共用タブレットで開く1枚のWebページ | 社内チャットのボット |
| 台帳 | 提案の管理台帳(スプレッドシート) | 既存の提案管理システム |
提案の管理台帳と審査会の運用は、今あるものをそのまま使います。 足すのは、タブレットで開く1枚のページと、Make のシナリオと、OpenAI API の呼び出しだけです。最初の準備は、工程マスタ(工程名、主な作業、現場での設備の呼び名)を作ることです。
対話の往復は、OpenAI の Responses API でつなぎます。 previous_response_id を指定すると前の応答に続けて応答させることができ、過去のやり取りを毎回こちらで連結して送る必要がありません。 ただし、連鎖した一連の応答の入力トークンは、すべて入力として課金されます。 対話が長くなるほど1件あたりの費用が増えるので、質問の数に上限を設けます。
途中で作業に戻る作業者には、Conversations API を使う方法もあります。 会話を持続的な識別子を持つオブジェクトとして保持し、セッションや端末をまたいで使えます。 休憩の終わりで中断し、次の休憩で続きを答える場面に向きます。
タブレットとAIの間には Make を置きます。 Make の Custom webhook は任意のデータを送れるURLを作り、Webhook response のモジュールで、処理の結果をそのままタブレットへ返せます。 1往復ごとにこのURLを呼ぶ形にすれば、タブレット側のページは送って受け取るだけの単純なものになります。
03どうやって実装するのか
処理の起点を決める
作業者がタブレットで「改善提案」を開き、最初の発話を送った時点を起点にします。 社員番号と工程を選ぶ画面のあとに、「どんなことを変えたいですか」という最初の問いが出ます。ここで何か答えると、Make の Custom webhook が呼ばれます。
その後は、作業者が答えるたびに同じ webhook が呼ばれ、AIの次の質問が返ります。 1件の提案は、6〜10往復ほどで終わる想定です。最後の往復で提案書のJSONが返り、台帳への登録が始まります。
定時に動く処理は1つだけ置きます。 毎日終業後に、途中で止まったままの対話を数えて班長に知らせます。休憩の終わりで中断した作業者に、続きを促すためです。中断が多い工程は、質問の数が多すぎるか、タブレットの置き場所が遠いかのどちらかです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 作業者の発話 | 文字、または音声を文字にしたもの | タブレット |
| 作業者の情報 | 社員番号、所属の班、工程 | 社員一覧(班長が管理) |
| 工程の情報 | 工程名、主な作業、現場での設備の呼び名、標準作業の時間 | 工程マスタ |
| 過去の提案 | 同じ工程の直近の提案の題名と採否 | 提案の管理台帳 |
いちばん効くのは工程マスタの「現場での呼び名」です。 現場では「3番の圧入機」「青いカート」のように呼び、設備台帳の正式名称とは違います。呼び名の一覧が無いと、AIは作業者が言ったものが何を指すかを聞き返し続けます。
過去の提案は、似た案が最近出ていないかを作業者に伝えるために持ちます。 「先月、同じ工程で部品箱の配置の提案が出ています。それと違う点はありますか」と聞ければ、重複した提案が審査会に上がる前に、作業者自身が違いを言葉にできます。 判断はさせず、知らせるだけです。
データの取得方法を決める
タブレットのページは、社員番号・工程コード・発話・会話の識別子の4つを webhook に送るだけです。Make の Custom webhook は、クエリパラメータと本文を1つのバンドルにまとめて受け取ります。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 発話と会話の識別子 | Custom webhook の受信 | AIへの入力と、往復のつなぎ |
| 工程の情報 | 工程マスタのスプレッドシート | 対話の最初の指示に入れる |
| 過去の提案 | 管理台帳の直近3か月分 | 似た提案の題名を知らせる |
| 前の応答の識別子 | 前回の往復で保存したもの | previous_response_id に入れる |
音声で答えた場合は、先に文字にします。 OpenAI の音声認識は /v1/audio/transcriptions に音声ファイルを送り、mp3、mp4、mpeg、mpga、m4a、wav、webm の形式で、1ファイル25MBまで受け付けます。gpt-transcribe では keywords に聞こえるはずの語を渡せるので、工程マスタの設備の呼び名を入れます。
keywords は手がかりで、必ず出力されるものではありません。 公式の説明でも、関係のある語だけを入れ、言っていない語が出てこないかを確かめるよう書かれています。呼び名を何十個も入れると、言っていない設備名が文字起こしに混ざることがあります。その工程の呼び名だけに絞って渡します。
AIへ渡す前に整形する
- 社員番号の確認 … 社員一覧にあるか、選んだ工程がその人の班の担当かを確かめます
- 工程の情報の差し込み … 工程名・主な作業・設備の呼び名を、対話の最初の指示に入れます
- 音声の文字化 … 音声で届いたものは文字にし、文字と元の音声の両方を保存します
- 個人名の伏せ字 … 発話に同僚の氏名が出たら、「同僚A」に置き換えてからAIへ渡します
- 往復の数の確認 … 10往復を超えたら、AIに「残りは班長に聞く」でまとめるよう指示を切り替えます
- 長さの確認 … 1回の発話が極端に長いもの(貼り付けなど)は、先頭だけを渡して人に知らせます
4番目を軽く見ないでください。 改善提案には「○○さんのやり方だと時間がかかる」のように、同僚の名前と、その人の作業への評価が混ざることがあります。 提案書に残すと、審査会で個人の評価として読まれます。名前は伏せ、作業の中身だけを残します。
5番目は費用の上限でもあります。 往復を連鎖させると、それまでの入力がすべて入力として課金されるため、往復の数がそのまま費用に効きます。 10往復で聞き切れない提案は、AIで聞くより班長が直接聞いたほうが早い提案です。
AIに処理させる
させるのは、提案書の3つの欄を埋めるために、作業者に1問ずつ聞くことと、聞き終えた内容を項目に分けて返すことです。
| 聞くこと | 聞き方 | 埋まらないときの扱い |
|---|---|---|
| 現状:どの作業で、何に困っているか | 「どの作業のときですか」「何が大変ですか」 | unknown のまま班長へ |
| 現状:どれくらいの頻度か | 「1日に何回くらいその作業をしますか」 | 数が出なければ null |
| 対策:何をどう変えたいか | 「どう変えたら楽になりますか」 | 対策が無ければ「困りごとの共有」として登録 |
| 対策:必要なもの | 「何か買ったり作ったりする必要がありますか」 | 分からなければ unknown |
| 効果:1回あたりどれくらい変わるか | 「1回あたり何秒くらい短くなりそうですか」 | 数が出なければ null |
| 効果:時間以外の変化 | 「楽になる、間違いが減る、などはありますか」 | 無ければ空 |
右端の列にある「困りごとの共有」が、この構成の隠れた要です。 作業者の多くは、困りごとは言えても対策までは思いつきません。 対策が無いからといって提案を捨てると、現場の困りごとが班長に届かなくなります。対策が無いものは別の種類として登録し、班で対策を考える材料にします。
| させないこと | 理由 |
|---|---|
| 効果の時間・金額の計算 | 報奨の等級に直結する。計算はワークフローの式で行う |
| 作業者が言っていない数字の補完 | 「だいたい10秒くらいでしょう」と埋めると、根拠の無い効果になる |
| 対策の良し悪しの評価 | 採否は審査会が決める。AIが先に評価すると作業者が言うのをやめる |
| 安全かどうかの判断 | 安全装置・保護具・手順に関わるものは、安全衛生の担当が判断する |
| 作業者の言葉の言い換え | 元の言葉を worker_words に残し、整えた文は別の欄に置く |
2行目がいちばん起きやすい失敗です。 作業者が「ちょっと早くなる」としか言わないと、AIは対話を進めるために「10秒程度と考えられます」と書きます。その10秒は誰も測っていない数字ですが、提案書に載った瞬間に根拠のある数字に見えます。
指示内容を固定する
あなたは工場の改善提案の受付係です。作業者と1問ずつ対話し、
提案書の「現状」「対策」「効果の見込み」をそろえるのが役目です。
【この作業者の工程】
工程名:{process_name}
主な作業:{main_tasks}
設備の呼び名:{equipment_names}
この工程で直近に出た提案:{recent_titles}
【聞き方】
- 質問は1回に1つだけ。短く、やさしい日本語で聞いてください。
- 現状 → 対策 → 効果の見込み の順に聞いてください。
- 「1日に何回」「1回に何秒」のように、数で答えられる聞き方をしてください。
- 作業者が数を言わなければ、もう1回だけ聞き直し、
それでも出なければ null のまま先へ進んでください。
- 直近に似た提案があれば、題名を伝えて違いを聞いてください。
同じかどうかを判断しないでください。
- 10往復を超えたら、残りは班長に聞くと伝えてまとめてください。
【厳守事項】
- 作業者が言っていない数字を書かないでください。
「〜くらいと考えられます」のように推測で埋めないでください。
- 効果の時間や金額を計算しないでください。
回数と1回あたりの秒数を、それぞれ数として返すだけにしてください。
- 対策が良いか悪いか、採用されそうかを言わないでください。
- 安全装置を外す、保護具を省く、手順を飛ばす、に当たりそうな話が出たら、
safety_flag を true にしてください。安全かどうかは判断しないでください。
- 作業者の発言は、worker_words にそのまま写してください。
言い換えた文は summary の欄にだけ書いてください。
- 同僚の名前が出ても、提案書に名前を書かないでください。
- 改善の提案ではなく、設備の故障や不具合の申告だと分かったら、
対話を終えて type を equipment_trouble にしてください。
【まとめるとき】
聞き終えたら、指定されたJSONの形だけで返してください。
「推測で埋めない」と「計算しない」を別々に書いているのには理由があります。 推測を禁じるだけだと、作業者が言った数を使って月の時間を計算し、計算の結果を作業者が言ったことのように書きます。 計算そのものを禁じ、回数と秒数を別の数として返させることで、どの数を作業者が言ったのかが残ります。
最後の「故障の申告だと分かったら終える」も外せません。 改善提案の窓口を開くと、「3号機の音がおかしい」という不具合の申告が混ざります。 改善提案として審査会に回すと、修理が1か月遅れます。
出力形式を固定する
聞き終えたら、次の形のJSONで受け取ります。 OpenAI API の Structured Outputs で、text.format に type: "json_schema" と strict: true を指定します。strict: true のとき、必須のキーが欠けたり、列挙にない値が返ったりしません。 公式の説明では、すべての項目を required に入れ、additionalProperties を false にします。
{
"proposal_id": "",
"type": "kaizen | concern_only | equipment_trouble",
"process_code": "",
"current_state": {
"task": "",
"problem": "",
"times_per_day": null
},
"countermeasure": {
"what_to_change": "",
"needs": ""
},
"expected_effect": {
"seconds_saved_per_time": null,
"other_effects": ""
},
"safety_flag": false,
"similar_recent": "",
"worker_words": [""],
"summary": "",
"open_questions": [""]
}
1つ目の理由は、計算をこちらの式に置けることです。 times_per_day と seconds_saved_per_time が数で返るので、Make で「回数 × 秒 × 稼働日 ÷ 3600」を計算して月の時間を出します。どちらかが null なら計算せず、効果の欄に「班長が確認」と出します。
2つ目は、type で行き先を分けられることです。
type | 行き先 |
|---|---|
kaizen | 提案の管理台帳に下書きとして登録し、班長に確認を依頼 |
concern_only | 「困りごとの共有」として班の一覧に登録。審査会には回さない |
equipment_trouble | 対話を終え、保全への申告の窓口へ案内する |
3つ目は、worker_words と summary を分けて持てることです。 審査会の資料には summary を載せ、作業者の元の言葉は、班長が確認する画面と審査会の補足に出します。 第3章の(d)で消えていた元の言葉が、ここで残ります。
open_questions には、聞き切れなかったことが入ります。 班長は下書きを読んだあと、この欄だけを作業者に聞けば済みます。 ゼロから聞き直す必要がありません。
例外の扱いも決めておきます。 安全上の理由でモデルが応じなかった場合は、スキーマではなく refusal の欄が返るので、プログラムで見分けられます。トークンの上限に達した場合や安全のフィルタが働いた場合も、スキーマに沿わない応答になりうるので、応答の status と incomplete_details を確かめてから台帳に登録します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共用タブレット | Make の Custom webhook と Webhook response | 発話を受け、次の質問を返す |
| OpenAI API | API呼び出し | 対話の応答、聞き終えたときの提案書のJSON、音声の文字化 |
| 工程マスタ・社員一覧 | スプレッドシートの読み取り | 工程の情報と、作業者の所属 |
| 提案の管理台帳 | スプレッドシートへの行の追加 | kaizen と concern_only を下書きとして登録 |
| 社内チャット | 通知 | 班長へ確認の依頼、終業後の中断の件数 |
台帳への登録は「下書き」の状態で行います。 審査会の資料に載るのは、班長が「審査へ」に変えたものだけです。AIが聞いたものが、班長を通らずに審査に出る経路は作りません。
Make の webhook には受け付けの上限があります。 10秒あたり300件までの受信を処理し、超えると429のエラーが返ります。休憩時間に全員が一斉に使っても、800名の工場でこの上限に届くことはまずありません。 ただし、どのシナリオにもつながっていない webhook は、120時間(5日)を過ぎると自動で無効になり、410のエラーを返します。 シナリオを作り直すときに、タブレットのページが動かなくなる原因になります。
人が確認する
最初に提案を読むのは、その作業者の班長です。 次の順で確かめます。
worker_wordsを読む … 作業者が何に困っていたかを、元の言葉で確かめます- 工程と作業が合っているかを見る … 呼び名の取り違えが無いかを確かめます
open_questionsを作業者に聞く … 聞き切れなかったことだけを聞いて埋めます- 効果の数字を見る … 回数と秒数が現場の感覚と合うかを確かめます。合わなければ、作業者と一緒に一度測ります
- 「審査へ」を押す … ここで初めて、事務局と審査会に見えるようになります
4番目で「測る」まで書いているのは、効果の数字が報奨の等級に効くからです。 作業者が言った「15秒」は、作業者の感覚としては正しくても、ストップウォッチで測ると8秒のことがあります。 審査で数字が問題になる前に、班長の段階で測っておきます。
safety_flag が true のものは、班長の確認のあとに安全衛生の担当にも回ります。 安全装置や保護具に触れる提案は、良い案であっても、そのまま実施すると事故につながることがあります。 判断は人が行います。
事務局の確認は、様式の確認から審査会の準備に変わります。 4欄が埋まっているかは機械で分かるので、事務局が見るのは、似た提案の重なりと、審査会での議論の順番です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 故障・不具合の申告が来た | equipment_trouble で対話を終え、保全の申告の窓口を案内する |
| 対策が出てこない | concern_only として班の一覧へ。審査会には回さない |
| 数を言えない | もう1回だけ聞き、出なければ null。班長が作業者と測る |
| 10往復を超えた | 残りは班長が聞くと伝えてまとめる。open_questions に残す |
| 休憩の終わりで中断した | 会話の識別子を残し、次に開いたときに続きから再開する |
| 音声の文字化がおかしい | 文字と元の音声を班長の画面に並べ、班長が直す |
| 安全に関わる対策 | safety_flag を立て、安全衛生の担当にも回す |
| 同僚の名前や評価が出た | 名前を伏せ、作業の中身だけを残す |
| 応答が拒否・途中で切れた | refusal と status を確かめ、台帳に登録せず班長に知らせる |
| webhook が応答しない | タブレットに「あとで班長に伝えてください」と出し、入力を端末に残す |
上から3行目までが、件数の大半を占めます。 どれもAIの失敗ではなく、改善提案という業務のもともとの性質です。 故障の申告が混ざること、対策が出ないこと、数が言えないことを、最初から行き先として用意しておくかどうかで、運用に乗るかが決まります。
記録を残す
- 作業者の発話の全文(文字と、音声の場合は元の音声)と、AIの質問の全文
- 提案書のJSONと、そのとき使った工程マスタの内容
- 班長が直した箇所(直す前と直した後)
- 効果の数字を班長が測り直した場合は、その値と測った日
typeごとの件数と、safety_flagの件数- 中断した対話の件数と、中断した往復の位置
3つ目の「班長が直した箇所」が、指示を直す材料になります。 同じ工程で呼び名の取り違えが続くなら工程マスタの不足、効果の数字が毎回大きく直されるなら、聞き方の問題です。
Make の webhook のログは3日間(Enterprise は30日間)しか残りません。 対話の記録は Make のログに頼らず、往復のたびに台帳側の記録用シートへ書き出します。 審査会で「この提案は何を言っていたか」を聞かれたときに、元の会話までたどれるようにしておきます。
04実装レベルの3段階
最小構成は確かめるための段階です。 同席が要るので班長の時間は減りません。 半自動化で、班長は同席しなくてよくなります。 作業者が休憩時間に1人で話し、班長は下書きを読んで open_questions だけを聞きます。この段階が本記事の想定で、1件30分が10分になります。 減るのは、聞き取りと清書と差し戻しの往復です。 段階を飛ばさないでください。 半自動化を1〜2か月回すと、どの工程で呼び名の取り違えが多いか、どの質問で作業者が止まるかが分かります。 音声を足すのは、文字での対話が安定してからにします。
05工数削減シミュレーション
導入後 120件 × 10分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 改善提案制度があり、現場の作業者から月に100件前後の提案が出ている工場・物流センター。提案用紙に書くのが苦手な作業者が多く、班長が聞き取って清書している場合。提案書の書き方が班ごとにばらばらで、審査の場で「現状は何か」「効果はどれくらいか」を聞き直している場合。休憩所や詰所に共用のタブレットを置ける場合。
- 提案の件数が月に数件で、班長が口頭で聞けば足りる場合。作業者が提案書を自分で書き慣れていて、様式の不備がほとんど無い場合。現場に端末を持ち込めない、または通信できない環境の場合。なお、提案を採用するか、報奨をいくらにするか、対策が安全かの判断はこの構成では代替できません。
07最小構成で試す方法
- 先月の提案のうち、班長が聞き取って書いたものを10件選ぶ
- その10件の作業者に、班長が同席して、手元の ChatGPT の画面で同じ提案をもう一度話してもらう
- 最初に、第7章のプロンプトの「聞き方」と「厳守事項」を貼り、工程名と設備の呼び名を書き添える
- 対話が終わったら「提案書の現状・対策・効果の見込みにまとめてください。作業者が言っていない数字は書かないでください」と指示する
- 出てきた提案書を、班長が先月清書したものと並べて読む
10件は必ず作業者本人に話してもらってください。 班長が代わりに打つと、答えを知っているので聞き方の問題が見えません。
| 出てきた内容 | 判断 |
|---|---|
| 班長の清書と同じ内容が、元の言葉付きで出た | Make とタブレットの連携に進む |
| 言っていない数字が入っていた | 指示の書き方で直る。構成は有効 |
| 作業者が途中で答えるのをやめた | 質問の数か聞き方が先。 1問を短くする |
3行目が出たら、むしろ収穫です。 止まったところに、班長がふだん無意識にやっている助け舟があるということです。それを指示に書き足します。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 言っていない数字が提案書に入る | 推測と計算を別々に禁じ、回数と秒数を別の数として返させる |
| 効果の計算がAIの文章に混ざる | 計算は Make の式で行う。AIには数だけを返させる |
| 設備の呼び名を取り違える | 工程マスタに現場での呼び名を入れる。 その工程の分だけ渡す |
| 音声の文字化に言っていない設備名が出る | keywords を絞る。手がかりであって、必ず出る語ではない |
| 作業者が途中で答えるのをやめる | 1問を短くし、数で答えられる聞き方にする |
| 故障の申告が提案に混ざる | equipment_trouble で対話を終え、保全の窓口へ |
| 対策の無い提案が捨てられる | concern_only として班の一覧に残す |
| 同僚の名前と評価が提案書に残る | 前処理で伏せ、指示でも禁じる |
| 往復が長くなり費用が増える | 10往復で打ち切り、残りは班長が聞く |
| webhook が急に410を返す | シナリオにつながっていない webhook は5日で無効になる。 作り直しの手順に入れる |
| AIが提案を評価してしまう | 評価を禁じる。先に評価されると作業者が言うのをやめる |
| 班長が確認せずに審査へ回す | 「審査へ」は班長の操作だけ。worker_words を読まずに押せない画面にする |
上の2行が、この構成の失敗のほとんどです。 どちらも効果の数字に関わり、報奨の等級と作業者の納得に直結します。 数字はAIに作らせず、作業者が言った数と、班長が測った数だけで組み立てます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 作業者の社員番号と所属、作業の手順と時間、設備の呼び名、そして発話に混ざる同僚の名前とその人の作業への評価です。工程の手順と標準時間は、自社の生産の仕方そのものでもあります。
- 外部へ渡す範囲を、提案の聞き取りに必要なものに限る … 社員番号はAIに渡さず、ワークフローの側で扱います。AIに渡すのは、工程名・主な作業・呼び名と、発話だけです
- 同僚の名前と評価を残さない … 前処理で伏せ、指示でも提案書に書かないよう禁じます。提案書が人事の評価の材料として読まれないようにします
- この構成は採否も安全も判断しない … 採否と報奨は審査会、安全装置や保護具に関わる対策の判断は安全衛生の担当が行います。この構成が出すのは、作業者が言ったことを様式にそろえたものだけです
- 保存の扱いを決めておく … OpenAI API の応答は既定で30日間保存され、
storeをfalseにすると保存されません。会話オブジェクトは30日の期限の対象外なので、Conversations API を使う場合は、使い終わった会話の扱いを決めておきます - 音声を残す期間を決める … 作業者の声は、本人が思っている以上に個人を特定できる情報です。 文字にしたあと、班長の確認が終わったら消すなど、期間を決めます
誤りが起きた場合のリスクは、根拠の無い効果の数字で報奨が決まることと、安全に関わる対策が確認されずに実施されることの2つです。 前者は計算と推測をAIにさせなければ防げ、後者は safety_flag と班長の確認で防ぎます。どちらも、AIに判断させないという同じ設計から出ています。
10まず何から始めるか
1週目:工程マスタに現場での呼び名を集める
提案の多い3班を選び、班長にその工程の設備・治具・台車の、現場での呼び名を書き出してもらいます。正式名称との対応も付けます。この3班だけで始めます。
2週目:10件で試す
先月の提案から10件を選び、班長が同席して、作業者本人に手元の ChatGPT の画面で話してもらいます。言っていない数字が入っていないか、作業者がどこで答えるのをやめたかを最優先で見ます。
3週目:提案書の形と行き先を決める
kaizen / concern_only / equipment_trouble の3つの行き先を、事務局と保全と安全衛生の担当と決めます。 特に concern_only を誰が受け取るかが決まっていないと、困りごとが宙に浮きます。
4週目:タブレットから台帳までをつなぐ
Make の Custom webhook と Webhook response で往復を作り、聞き終えたら台帳に下書きとして登録するところまで作ります。この時点では効果の計算を入れず、回数と秒数がきちんと返ってくるかだけを見ます。
2か月目: 効果の計算と safety_flag を足し、3班で運用します。班長が直した箇所を毎週数えます。3か月目以降: 全班に広げ、音声での回答と中断からの再開を足します。1件30分が何分になったか、案を言ってから審査に乗るまでの日数がどう変わったかを実測した時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
OpenAI の Responses API で previous_response_id を指定すると応答を連鎖させて会話の形にでき、前の応答の文脈が渡されること。連鎖した一連の応答の入力トークンはすべて入力として課金されること。Conversations API では会話を持続的な識別子を持つオブジェクトとして保持し、セッションや端末をまたいで使えること。応答は既定で30日間保存され、store を false にすると保存されないこと。会話オブジェクトとその中の項目は30日の期限の対象外であること | OpenAI Docs: Conversation state | 2026-10-05 |
Structured Outputs が text.format に type: "json_schema" と strict: true を指定して使え、必須キーの欠落や列挙にない値が返らないこと。すべての項目を required に入れ、additionalProperties を false にすること。安全上の理由で拒否された場合は refusal が返りプログラムで判別できること。トークンの上限やフィルタで途中で終わる場合があり、status と incomplete_details で確かめること | OpenAI Docs: Structured Outputs | 2026-10-05 |
音声の文字化が /v1/audio/transcriptions で行えること。mp3、mp4、mpeg、mpga、m4a、wav、webm の形式で1ファイル25MBまでであること。gpt-transcribe で keywords に聞こえるはずの語を渡せ、それは手がかりであって必ず出力されるものではないこと | OpenAI Docs: Speech to text | 2026-10-05 |
| Make の Custom webhook が任意のデータを送れるURLを作り、クエリパラメータと本文を1つのバンドルにまとめること。Webhook response のモジュールで応答を返せること。10秒あたり300件までの受信を処理し、超えると429を返すこと。webhook のログが3日間(Enterprise は30日間)保存されること。シナリオにつながっていない webhook が120時間(5日)を過ぎると自動で無効になり410を返すこと | Make Help Center: Webhooks | 2026-10-05 |
改善提案制度の様式、審査の基準、報奨の等級は、会社ごとに異なります。この部分は自社の改善提案制度の規程に応じた個別対応が必要です。 安全装置・保護具・作業手順に関わる対策の実施は、自社の安全衛生の定めと責任者の判断に従ってください。この記事は対策の安全性や提案の採否について判断を示すものではありません。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0412)についてのご相談はこちらから。
