乗合バスの運行管理者から出る遅延・事故・車両の不具合のときの取扱いの質問に、運行管理規程と運輸局の通達を根拠に答える
営業所の運行管理者が「この遅れで折返しをどうするか」「ミラーが割れた車両を走らせてよいか」「この接触は報告が要るか」を聞くと、運行管理規程・乗務員の手引き・運輸局の通達から、その営業所と路線に効く箇所を引用して取扱いを返します。判断は運行管理者が行います。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- その他/自治体
- 対象部門
- 総務
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 判断に時間がかかる/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/属人化解消/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 運転者から無線または携帯電話で、運行中の出来事の連絡を受ける
- 運行管理者が、場面に当たる運行管理規程の章と乗務員の手引きのページを探す
- その時期に効いている通達や本社の指示文書がないかを、メールとファイルで探す
- 営業所の路線の決まり(迂回・折返し・代わりの車両)を紙のファイルで確かめる
- 運転者に指示し、必要なら本社の運輸課の当番に電話で相談する
- 運行の記録と、営業所の対応の記録に書く。事故なら報告の要否を本社と確かめる
- 人運行管理者が、営業所の端末の問い合わせ画面で、場面の種類、営業所、系統、出来事の日時、運転者からの連絡の要点を入れて送る
- 自動場面の種類が「人身・火災・急病」なら、検索をせず初動の手順を表示して終わる
- 自動それ以外は、中継プログラムが営業所・系統・場面・日付で検索の絞り込みの条件を作る
- 自動Agent Search(Vertex AI Search)の answer メソッドが、規程・手引き・通達・路線の決まりから該当箇所を探し、引用付きの回答を返す
- 自動場面が事故・接触なら、中継プログラムが自動車事故報告規則の報告の基準の条文を回答に必ず添える
- 自動中継プログラムが、回答を `self`(運行管理者がこの根拠で判断できる)/`escalate`(本社の運輸課に上げる)に分ける
- 人運行管理者が引用を読んで判断し、運転者に指示する。`escalate` は本社の当番に、回答と引用を付けて相談する
- 人運行管理者が対応の記録を書く。本社の運輸課が、新しい判断を回答集に登録する(翌晩に取り込まれる)
各工程の詳しい説明を読む
- 運転者から無線または携帯電話で、運行中の出来事の連絡を受ける
- 運行管理者が、場面に当たる運行管理規程の章と乗務員の手引きのページを探す
- その時期に効いている通達や本社の指示文書がないかを、メールとファイルで探す
- 営業所の路線の決まり(迂回・折返し・代わりの車両)を紙のファイルで確かめる
- 運転者に指示し、必要なら本社の運輸課の当番に電話で相談する
- 運行の記録と、営業所の対応の記録に書く。事故なら報告の要否を本社と確かめる
(a)文書が4か所に分かれ、探すのに時間がかかる。 規程は共有フォルダ、手引きは冊子、通達はメール、路線の決まりは紙のファイルです。
(b)夜間は聞ける相手がいない。 「この系統で道路が通行止めのときは、どこで折り返すか」「この通達は今も効いているか」。こうした問いに即答できるのは、その営業所に長くいる数名です。 夜間の1人勤務では、本社の当番に電話するしかありません。
(c)事故の報告の要否の確認が担当しだいになる。 軽い接触で乗客のけがも無いと聞くと、報告の基準を読み返さずに「記録だけ」で済ませてしまうことがあります。後から乗客が通院していたと分かると、報告の基準を確かめ直すことになります。
(d)同じ場面で営業所ごとに取扱いが違う。 本社の指示文書が、ある営業所では紙のファイルに綴じられ、別の営業所ではメールのまま埋もれています。
- 【人】 運行管理者が、営業所の端末の問い合わせ画面で、場面の種類、営業所、系統、出来事の日時、運転者からの連絡の要点を入れて送る
- 【自動】 場面の種類が「人身・火災・急病」なら、検索をせず初動の手順を表示して終わる
- 【自動】 それ以外は、中継プログラムが営業所・系統・場面・日付で検索の絞り込みの条件を作る
- 【自動】 Agent Search(Vertex AI Search)の answer メソッドが、規程・手引き・通達・路線の決まりから該当箇所を探し、引用付きの回答を返す
- 【自動】 場面が事故・接触なら、中継プログラムが自動車事故報告規則の報告の基準の条文を回答に必ず添える
- 【自動】 中継プログラムが、回答を
self(運行管理者がこの根拠で判断できる)/escalate(本社の運輸課に上げる)に分ける - 【人】 運行管理者が引用を読んで判断し、運転者に指示する。
escalateは本社の当番に、回答と引用を付けて相談する - 【人】 運行管理者が対応の記録を書く。本社の運輸課が、新しい判断を回答集に登録する(翌晩に取り込まれる)
2番目で初動を検索から外すのが、この設計の前提です。 検索の結果を待つ数十秒が、そのまま初動の遅れになります。
5番目で報告の基準をAIの回答とは別に添えるのは、AIが「報告は不要と考えられます」と書く余地をなくすためです。 基準の条文は、回答の中身にかかわらず中継プログラムが同じものを付けます。読んで当てはめるのは運行管理者です。
02今回想定するシステム構成
運行管理規程 乗務員の手引き 通達・本社の指示文書 営業所の路線の決まり 回答集 │ 種類・営業所・系統・場面・効力の期間を付ける ▼ Cloud Storage ── メタデータ(JSON Lines) ▼ Agent Search(Vertex AI Search)── データストア(レイアウト パーサー、見出しの付与) │ doc_kind/office/route/scene/effective_from/effective_to ▼ 営業所の端末の問い合わせ画面 ──【トリガー】運行管理者の送信 ▼ 中継プログラム(Python、Cloud Run) ├──▶ 初動の場面なら固定の手順を返して終了 ├──▶ 営業所・系統・場面・日付で絞り込み ├──▶ answer メソッド:該当箇所の引用と取扱いの手順 ├──▶ 事故・接触なら報告の基準の条文を添付 └──▶ self / escalate の振り分け ▼ 営業所の端末へ返信 / 本社の運輸課の当番へ相談
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、問い合わせ画面・検索・本社への相談をつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(規程・手引き・通達・路線の決まり・回答集の写しとメタデータ、問い合わせの記録) | ─ |
運行管理の仕組みと無線には、何も書き込みません。 この構成が返すのは、根拠の箇所と取扱いの手順までです。運転者への指示は、これまでどおり運行管理者が無線か電話で行います。 回答が画面に出ても、それが運転者へ自動で送られることはありません。
検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 公式のドキュメントでは、引用を付ける設定(includeCitations、既定は無効)、関係の薄い内容で答えない設定(ignoreLowRelevantContent)、回答を求めていない書き込みや敵対的な問いに答えない設定、回答の作り方を指示する preamble、前の session を渡してやり取りを続ける機能があります。運行管理者が「その場合、後続の便は」と続けて聞けるのは、この機能によります。
規程と手引きの取り込みには、レイアウト パーサーを使います。 公式では、段落・表・見出しを検出し、チャンクに上位の見出しを付ける設定(includeAncestorHeadings、既定は無効)があり、チャンクの大きさは100〜500トークンです。手引きの「車両の不具合」の節の一文が単独で引かれても、どの章のどの節かが分かるように見出しを付けます。 チャンクの設定はデータストアを作った後に切り替えられないので、最初に決めます。
03どうやって実装するのか
処理の起点を決める
起点は、運行管理者が営業所の端末の問い合わせ画面で送信したことです。 無線を受けながら打てるよう、項目は選ぶものを中心にします。営業所と系統が欠けると、どの路線の決まりで答えるかが決まりません。 画面で必須にします。
| 画面の項目 | 書き方 | 使い道 |
|---|---|---|
| 場面の種類 | 人身・火災・急病/事故・接触/車両の不具合/遅延・運休/道路の通行止め・迂回/異常気象/乗客の対応/その他 | 初動の切り分け、絞り込み、振り分け |
| 営業所 | 3営業所から選ぶ(既定はログインした営業所) | 絞り込み |
| 系統 | 系統番号を選ぶ(複数可) | 絞り込み |
| 出来事の日時 | 日時(既定は今) | 版の絞り込み |
| 連絡の要点 | 自由記述(運転者から聞いたこと) | 検索の質問文 |
「人身・火災・急病」を選んだら、送信の前に初動の手順が出ます。 救護、119番・110番、乗客の安全の確保、本社への第一報の順で、営業所の壁に貼ってあるものと同じ文面です。この場面では answer メソッドを呼びません。 落ち着いた後で「その後の取扱い」を聞くときは、場面を「事故・接触」に変えて送ります。
もう一つのトリガーは、通達・指示文書の発出と、規程・手引き・路線の決まりの改正です。 本社の運輸課の担当が文書を置き、メタデータに効力の期間と対象の営業所を書きます。取り込みは毎晩まとめて行いますが、異常気象に伴う臨時の指示文書は、出したその場で取り込みを始めます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 問い合わせ | 画面の5項目と、運行管理者 | 営業所の端末 |
| 運行管理規程 | 運行管理者の業務、点呼、異常気象のときの措置、事故の処理と報告の手順 | 文書管理の共有フォルダ |
| 乗務員の手引き | 運行中の取扱い(遅延、車両の不具合の確かめ方、乗客の対応、事故のときの運転者の動き) | 文書管理の共有フォルダ |
| 通達・本社の指示文書 | 運輸局からの通達と、それを受けた社内の指示。対象と期間 | 本社の運輸課のメールとファイル |
| 営業所の路線の決まり | 系統ごとの迂回の経路、折返しの場所、代わりの車両の出し方、連絡先 | 各営業所の紙のファイル(電子化する) |
| 回答集 | 過去の問い合わせの要旨、取扱い、根拠の箇所、判断した日 | 本社の運輸課の相談の記録から作る |
質を決めるのは、すべての文書に付ける「対象の営業所・系統」と「効力の期間」です。 迂回の決まりに系統を書いておかないと、別の系統の折返し場所が引かれます。 期間を限った指示文書に終わりの日を書かないと、工事が終わった後も迂回の指示が引かれます。
営業所の路線の決まりは、紙のファイルを文書にするところから始まります。 ここが無いと、回答は規程と手引きの一般論で止まり、運行管理者がいちばん知りたい「この系統でどこで折り返すか」に答えられません。
データの取得方法を決める
規程と手引きは章ごとに、通達・指示文書・路線の決まり・回答は1件ずつファイルにして Cloud Storage に置きます。公式では、非構造化データは TXT・JSON・Markdown・PDF・HTML・DOCX・PPTX・XLSX・XLSM に対応し、1ファイルの上限は200MB、1回の取り込みで10万ファイルまでです。メタデータは JSON Lines で、1行ごとに id、structData、content(mimeType と uri)を書きます。
{"id":"route-rule-east-12","structData":{"doc_kind":"route_rule",
"office":["east"],"route":["12","12A"],"scene":["detour","delay"],
"effective_from":"2026-09-01T00:00:00Z",
"effective_to":"2099-12-31T23:59:59Z"},
"content":{"mimeType":"text/html","uri":"gs://bus-ops/route-rule-east-12.html"}}
| 項目 | 中身 | 使い道 |
|---|---|---|
doc_kind | 規程/手引き/通達・指示/路線の決まり/回答 | 振り分けの規則、表示 |
office | 対象の営業所(全社の文書は全営業所を並べる) | 絞り込み |
route | 対象の系統(全系統の文書は all) | 絞り込み |
scene | 事故、車両の不具合、遅延、迂回、異常気象、乗客の対応 | 絞り込み |
effective_from/effective_to | 効力の始まりと終わり | 出来事の日時で版を選ぶ |
問い合わせのたびに、中継プログラムが絞り込みの条件を作ります。 公式の構文では、文字の項目は ANY() に並べた値のどれかと完全に一致するかを見られ、日時の項目は ISO 8601 の文字列と比べられます。項目はスキーマで索引可能にしておかないと絞り込みに使えません。
office: ANY("east") AND route: ANY("12","all")
AND scene: ANY("detour","delay")
AND effective_from <= "2026-10-20T06:40:00Z"
AND effective_to >= "2026-10-20T06:40:00Z"
系統の絞り込みに all を必ず足します。 全系統に効く規程と手引きを落とさないためです。逆に、office には全社の文書にも営業所を並べて書き、別の営業所の路線の決まりが引かれないようにします。
AIへ渡す前に整形する
- 規程と手引きを章ごとに分ける … 章・節の番号と見出しが崩れないよう、元の文書からHTMLで書き出します
- 路線の決まりを系統ごとに文書にする … 紙のファイルを、系統・迂回の経路・折返しの場所・連絡先の形で書き起こします
- 版と効力の期間を付ける … 改正の履歴から、版ごとの施行日と終わりの日を書きます
- 通達と指示文書に対象と期間を付ける … 本文の「○月○日から」「当分の間」と対象の営業所を、本社の担当が読んで書きます
- 回答集を整える … 過去の相談の記録を、根拠の箇所を確かめて1件ずつ文書にします。乗客と運転者の氏名は外します
- 連絡の要点から個人の情報を外す … 乗客の氏名や連絡先、運転者の氏名が書かれていたら、検索の質問文から外します
4番目の「当分の間」は、機械に任せません。 終わりの日の無い指示は、effective_to を遠い日付にしたうえで、本社の担当が3か月ごとに効いているかを確かめる一覧に載せます。 終わりの日を推し量って入れると、まだ効いている指示が黙って外れます。
AIに処理させる
させるのは、その営業所と系統に効く規程・手引き・通達・路線の決まりから該当箇所を探し、引用して取扱いの手順を並べることです。
| させること | 中身 |
|---|---|
| 該当箇所を探す | 規程の条、手引きの節、当てはまる通達・指示、その系統の路線の決まり |
| 箇所を引用する | 文書の名前と章・条の番号、本文をそのまま |
| 手順を並べる | 運行管理者がすること、運転者に指示すること、連絡する先を、文書の順に |
| 確かめる事実を挙げる | 取扱いを決めるために運転者に聞くこと(乗客のけがの有無、車両の状態、場所) |
| させないこと | 理由 |
|---|---|
| 運行を続けるか止めるかの結論 | 運行管理者と整備管理者が車両の状態を聞いて決める |
| 事故の報告の要否の結論 | 報告の基準の条文を添え、運行管理者と本社が当てはめる |
| 文書に無い取扱いを一般論で補う | 「一般にバス会社では」と書くと根拠の無い指示になる |
| 別の営業所・系統の決まりで答える | 折返しの場所や連絡先が違う |
| 気象の予報と社内の基準の数値の照合 | 基準の数値は引用し、照らすのは運行管理者 |
4つ目の「確かめる事実を挙げる」が、運行管理者にいちばん効きます。 「乗客が転んだ」という連絡でも、けががあるか、病院に行くか、車内か停留所かで、手引きの当たる節と報告の基準の当てはまり方が変わります。何を運転者に聞けばよいかが先に分かれば、無線のやり取りが一往復で済みます。
answer メソッドの設定は次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
includeCitations | 有効 | 箇所に出典を付ける(既定は無効) |
ignoreLowRelevantContent | 有効 | 関係の薄い文書で答えない |
filter | 営業所、系統、場面、効力の期間 | その営業所と系統に効く文書だけを引く |
includeGroundingSupports | 有効 | 文ごとの根拠のスコア(0〜1)を受け取る |
session | 同じ問い合わせの続き | 続けての質問に前のやり取りを使う |
preamble | 下の指示 | 答え方の規則を与える |
指示内容を固定する
answer メソッドの preamble に、次の指示を入れます。中継プログラムは、画面の項目を検索の文の先頭に付けます。
あなたは乗合バス会社の本社の運輸課の担当として、営業所の
運行管理者からの運行中の取扱いの問い合わせに、運行管理規程・
乗務員の手引き・通達と指示文書・営業所の路線の決まりを根拠に
回答を作る立場です。読むのは、無線で運転者とやり取りしている
運行管理者です。短く、手順の順に書いてください。
【前提】
検索の文の最初に、場面の種類、営業所、系統、出来事の日時、
運転者からの連絡の要点が並んでいます。
検索の対象は、その営業所と系統に、その日時に効く文書だけです。
【答え方】
1. 最初に、運転者に確かめることを3つまで箇条書きにする
2. 次に、取扱いの手順を、文書の名前と章・条・節の番号を付けて順に並べる
3. 手順の根拠の本文を、そのまま引用する
4. 当てはまる通達・指示文書があれば、番号と期間を書いて引用する
5. その系統の路線の決まり(迂回・折返し・代わりの車両)があれば引用する
【厳守事項】
- 検索結果に無い取扱い、別の営業所や系統の決まりで答えないでください。
- 運行を続けてよい、止めるべき、と結論を書かないでください。
文書が定める確かめ方と、判断する人を書いてください。
- 事故の報告が要る・要らないと書かないでください。
報告の基準は別に添えられます。
- 社内の基準の数値(風速・雨量・遅れの分数など)は、
文書の本文のまま引用し、今の状況に当てはまるかは書かないでください。
- 回答集だけが根拠のときは、そのことと判断した日を書いてください。
- 一般的なバス会社の慣行や、他社の例で補わないでください。
- 該当する箇所が見つからないときは、
「該当する箇所は見つかりませんでした。本社の運輸課に相談してください」
とだけ書いてください。
「運行を続けてよいと書かない」を明記しないと、AIは手引きの確かめ方から結論を出します。 「ミラーの破損は運行に支障がない場合に限り」と書かれた節を引き、そのまま「運行を続けてかまいません」と書きます。支障があるかを見ているのは運転者と整備管理者で、AIではありません。
出力形式を固定する
answer メソッドの返り値と添付する条文を、中継プログラムが次の形にまとめます。
{
"inquiry_id": "",
"office": "",
"routes": [],
"scene": "accident | vehicle_defect | delay | detour | weather | passenger | other",
"occurred_at": "",
"facts_to_confirm": [],
"steps": [
{ "order": 1, "text": "", "doc_kind": "rule | manual | notice | route_rule | answer",
"title": "", "section": "", "quote": "", "uri": "" }
],
"report_criteria_attached": false,
"route_decision": "self | escalate",
"escalate_reason": []
}
steps の引用は、answer メソッドの references から取ります。引用の位置(startIndex/endIndex)は UTF-8 のバイト数なので、日本語の文を文字数で切るとずれます。report_criteria_attached は、場面が事故・接触のときに中継プログラムが立て、画面の下に自動車事故報告規則の報告の基準と速報の条文を表示します。この表示はAIの返り値を使わず、毎回同じ文面です。
route_decision は次の規則で決めます。
escalate_reason | 立てる条件 |
|---|---|
accident | 場面が事故・接触(報告の要否を本社と確かめる) |
no_citation | 該当する箇所が無い、または answerSkippedReasons が返った |
answer_only | 引用が回答集だけで、規程・手引き・通達・路線の決まりが無い |
conflict | 引用に、同じ場面で手順の違う通達と規程が並んだ |
conclusion | 回答に「運行を続けて」「運休して」「報告は不要」などの結論の語がある |
weak_support | 根拠のスコアが低い文がある |
どれにも当たらないものだけが self です。 self でも、判断して運転者に指示するのは運行管理者です。escalate は「本社と一緒に判断する」という意味で、本社の当番の画面に回答と引用がそのまま並びます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 営業所の端末の問い合わせ画面 | 画面から中継プログラムを呼ぶ | 5項目を受け取り、回答を返す |
| Agent Search | answer メソッド | 箇所の引用と取扱いの手順 |
| 本社の運輸課の当番 | 共有の一覧に1行足し、当番の携帯電話に通知 | escalate を回す |
| 回答集 | 本社の運輸課の担当が判断を登録 | 翌晩に取り込む |
| 運行管理の仕組み | つながない | 運行の記録は運行管理者がこれまでどおり書く |
当番に回す1行には、問い合わせの内容、引用された箇所、escalate_reason を付けます。 当番は、ファイルを開くところからではなく、引用を読んで判断するところから始められます。夜間の電話が、探しものの相談から判断の相談に変わります。
人が確認する
この構成では、すべての回答を運行管理者が読んで判断します。 AIの回答が運転者に直接届く経路はありません。
- 確かめることを運転者に聞く …
facts_to_confirmを無線で聞き、答えを問い合わせの続きとして入れます - 引用を読んで手順を決める … 規程・手引き・路線の決まりの本文を読み、運転者に指示します
- 事故・接触なら報告の基準を当てはめる … 添付の条文を読み、本社の当番と要否を確かめます
- 判断を記録する … 何を根拠に、どう指示したかを対応の記録に書きます
3番目を省かないでください。 自動車事故報告規則は、事故の種類によって30日以内の報告書の提出と、24時間以内のできる限り速やかな速報を求めています。負傷の程度が後から分かることもあるので、その場で「不要」と決めず、本社と記録を残してから決めます。
本社の運輸課は、毎週 escalate の一覧を読み、同じ判断が続くものを回答集に登録します。
運用を始めてから2か月は、self の回答も本社の担当が後から全件読みます。 運行管理者の判断と回答の手順が食い違ったものが1割を超えるなら、文書の整備が先です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 人身・火災・急病の場面 | 検索をせず初動の手順を表示する |
| 営業所や系統が選ばれていない | 送信できないようにする |
| その系統の路線の決まりが無い | 規程と手引きだけで答え、「路線の決まりが登録されていません」と添えて escalate |
| 期間の切れた指示文書しか当たらない | 絞り込みで外れる。回答に「期間を過ぎた指示があります」と出す |
| 通達と規程で手順が違う | conflict で本社へ。どちらが先かをAIに決めさせない |
| 回答に「運行を続けて」などの結論が出た | 結論の文を消し、conclusion で本社へ |
| 検索の呼び出しが失敗した | 「検索できませんでした。本社の当番に電話してください」と返す |
| 異常気象で問い合わせが集中する | 同じ場面・同じ系統の問い合わせをまとめ、本社が1件判断して指示文書として取り込む |
6行目の結論の語の検知は、プロンプトとは別に、中継プログラムの文字列の照合で行います。 最後の門は機械の照合に置きます。
記録を残す
- 問い合わせの内容(5項目)、営業所、運行管理者、日時
- answer メソッドへの要求(絞り込みの条件、
preambleの版)と返り値の全文 - 報告の基準の条文を添えたかどうか
route_decisionとescalate_reason、本社の当番の判断と理由- 運行管理者が実際に行った指示(対応の記録として本人が書く)
AIの回答と、運行管理者が実際に指示したことを分けて残します。 後から事故の経緯を確かめるとき、どの根拠を見て何を指示したかを、回答の文面と混ぜずに示すためです。
04実装レベルの3段階
最小構成では夜間に使えません。 文書を貼る手間がかかり、1人勤務の時間帯には回りません。確かめるための段階です。 半自動化で、15分が9分程度になります。 探す時間は減りますが、本社の当番に電話して状況を一から説明する手間と、報告の基準を自分で探す手間が残ります。本格構成で6分になり、この段階が本記事の想定です。 差が大きいのは、当番への相談に引用が付いて届くことと、報告の基準を探す手間が無くなることです。
05工数削減シミュレーション
導入後 240件 × 6分 ÷ 60 = 24 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 営業所を複数持つ乗合バス会社・公営バスの交通局で、運行管理者が早朝・夜間に1名で点呼と運行中の連絡を受け持つ時間帯がある場合。運行管理規程・乗務員の手引きに加えて、運輸局からの通達や本社の指示文書、営業所ごとの迂回・折返しの決まりがあり、どれを見ればよいかを経験の長い管理者に聞いている場合。過去の運行中の対応の記録が文書で残っている場合。
- 営業所が1つで路線も少なく、運行管理者が全員で取扱いを覚えていられる場合。運行を続けるか止めるか、事故の報告が要るかをAIに決めさせたい場合(この構成は根拠の条文を示すだけで、判断は運行管理者と本社の運輸課・安全統括管理者が行います)。人身事故・車両火災・車内の急病など、一刻を争う初動をAIの回答を待って行う運用を考えている場合(初動は固定の手順で行い、この構成は使いません)。
07最小構成で試す方法
- 問い合わせの多い場面(遅延、車両の不具合、迂回)について、規程の章と手引きの節、いま効いている指示文書を書き出す
- 1つの営業所の、よく迂回が起きる系統について、路線の決まりを文書にする
- 過去3か月の対応の記録から20件を拾う(事故・接触のもの、夜間のもの、通達が絡んだものを数件入れる)
- 手元のAIサービスに文書を貼り、第7章の指示を貼って、問い合わせを1件ずつ入れる
- 出てきた回答を、当時の運行管理者の指示と突き合わせる
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ箇所と手順を引用した | 検索基盤への取り込みに進む |
| 「運行を続けてかまいません」「報告は不要です」と書いた | 指示で直るか試す。直らなければ結論の語の照合を最初から作る |
| 別の系統の折返し場所で答えた | 路線の決まりに系統を書く作業が先 |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 人身事故の初動にAIの回答を待つ | 初動の場面は検索をせず、固定の手順を出す |
| AIが「報告は不要」と書く | 結論の語を照合で消し、報告の基準の条文を毎回添える |
| AIが「運行を続けてかまいません」と書く | 結論を禁じ、照合で消して escalate |
| 別の系統の折返し場所が引かれる | 路線の決まりに系統を書き、route で絞る |
| 全系統に効く規程が落ちる | 系統の絞り込みに all を足す |
| 工事が終わった迂回の指示が引かれる | 指示文書に終わりの日を書く。「当分の間」は3か月ごとに確かめる |
| 通達と規程の手順が違う | conflict で本社へ。どちらが先かは本社が決める |
| 引用の位置がずれる | 位置は UTF-8 のバイト数。文字数で切らない |
上の3行が、この構成の失敗のほとんどです。 初動の切り分け、結論の語の照合、報告の基準の添付を、AIの外の規則で守ります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 運行管理規程・乗務員の手引き・指示文書・路線の決まり(社内の文書)、運輸局の通達、回答集、運行管理者からの問い合わせ(乗客のけがや運転者の状態を含みうる)です。
- 運行の継続と事故の報告の判断をAIに置かない … 旅客自動車運送事業運輸規則は、運行管理者の業務として、天災その他の理由で輸送の安全の確保に支障が生ずるおそれがあるときの措置を挙げています。判断する人は、規則のとおり運行管理者です
- 運行を中断したときの乗客の取扱いは、条文と社内の手順で答える … 運輸規則は、運行を中断したときに、乗客の運送の継続、出発地までの送還、その他の保護について適切な処置を求めています。自社の手引きがそれをどう具体化しているかを、引用で示します
- 報告の基準を毎回添える … 自動車事故報告規則は、報告の対象となる事故の種類、30日以内の報告書、一部の事故についての24時間以内の速報を定めています。当てはまるかの判断は、負傷の程度を確かめてから人が行います
- 乗客と運転者の個人の情報を検索に入れない … 問い合わせの要点から氏名や連絡先を外し、回答集にも残しません。けがの状態は、検索に要る範囲(けがの有無、病院に行ったか)に留めます
- データの置き場所を確かめる … 公式では、データストアの場所は
global・us・euで、日本のリージョンはありません。公営バスの交通局は、自治体の情報セキュリティの規程と合わせて、問い合わせの記録をどこに置くかを確かめてください
誤りが起きた場合のリスクは、運行の安全に関わる場面で根拠の無い指示が出ることと、報告の要る事故を報告しないことです。 どちらも、AIの回答を判断そのものとして扱ったときに起きます。初動・運行の継続・報告の要否を、AIの外に置きます。
10まず何から始めるか
1週目:1つの営業所の路線の決まりを文書にする
迂回と折返しの多い営業所を1つ選び、紙のファイルを系統ごとの文書にします。系統番号と停留所の名前で書き、対象の系統を見出しに入れます。
2週目:20件の問い合わせで試す
手元のAIサービスに規程・手引き・指示文書・路線の決まりを貼り、過去の対応の記録から20件を入れます。「運行を続けてかまいません」「報告は不要です」と書いていないかを最優先で見ます。
3週目:指示文書に期間と対象を付ける
いま効いている通達と本社の指示文書を洗い出し、対象の営業所と終わりの日を書きます。終わりの日の無いものは、3か月ごとの確認の一覧に載せます。
4週目:データストアを作り、日中に使う
規程・手引き・指示文書・路線の決まり・回答集を取り込み、1つの営業所の日中の勤務で、運行管理者が検索画面で聞く運用を始めます。
2か月目: 問い合わせの画面、初動の切り分け、報告の基準の添付、振り分けの規則を作り、夜間にも広げます。self の回答も本社が後から全件読みます。3か月目以降: 残りの営業所の路線の決まりを文書にして広げます。すべての指示文書に対象と終わりの日が付き、夜間の1人勤務でも同じ根拠で判断できるのが当たり前になった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称中であること。answer メソッドの includeCitations(既定は false)、ignoreAdversarialQuery・ignoreNonAnswerSeekingQuery・ignoreLowRelevantContent、preamble、検索の指定の filter、session で前のやり取りを続けられること。根拠のスコアが 0〜1 の範囲であること。answerSkippedReasons。引用の startIndex/endIndex が UTF-8 のバイト単位であること | Google Cloud: Get answers and follow-ups | 2026-10-14 |
絞り込みの ANY() が列挙した値との完全一致を見ること、AND/OR、日時の項目を ISO 8601 の文字列と比べられること、項目を索引可能にする必要があること | Google Cloud: Filter custom search for structured or unstructured data | 2026-10-14 |
非構造化データの対応形式と、1ファイル200MBの上限、1回の取り込みで10万ファイルまでであること。メタデータを JSON Lines で id・structData・content(mimeType・uri)として書くこと | Google Cloud: Prepare data for ingesting | 2026-10-14 |
レイアウト パーサーが段落・表・見出しを検出すること。チャンクの大きさが100〜500トークンで、includeAncestorHeadings(既定は false)で見出しを付けられること。チャンクの設定がデータストアの作成後に切り替えられないこと | Google Cloud: Parse and chunk documents | 2026-10-14 |
| 旅客自動車運送事業運輸規則第18条(運行を中断したときの旅客の運送の継続・出発地までの送還・保護)、第20条(天災その他の理由で輸送の安全の確保に支障が生ずるおそれがあるときの措置)、第48条(運行管理者の業務。第2号で第20条の措置を講ずること) | e-Gov 法令API: 旅客自動車運送事業運輸規則 | 2026-10-14 |
データストアの場所が global・us・eu で、日本のリージョンが無いこと | Google Cloud: Locations | 2026-10-14 |
| 自動車事故報告規則第2条(報告の対象となる事故の定義)、第3条(事故があった日から30日以内の報告書の提出)、第4条(一部の事故について、電話その他適当な方法により24時間以内においてできる限り速やかに速報すること) | e-Gov 法令API: 自動車事故報告規則 | 2026-10-14 |
運行の継続、事故の報告の要否、乗客の取扱いは、各社の運行管理規程と運行管理者・本社の判断に従ってください。 本記事は Google Cloud の公式ドキュメントと e-Gov の法令データで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1526)についてのご相談はこちらから。
