職員からの例規や事務手続きの質問に、例規集と事務マニュアルを根拠に条文付きで答える
職員が「この支出は誰の決裁か」「この文書の保存期間は何年か」と聞くと、現行の例規と事務マニュアルから根拠の条文を示して答えます。答えられない質問は、法規担当へ質問の記録ごと引き継ぎます。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- 教育/自治体
- 対象部門
- 総務
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/属人化解消/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 職員が、例規集のWeb版やマニュアルを探し、見つからなければ法規担当か所管課に質問する
- 法規担当が質問を読み、どの例規のどの条に関係するかを見当を付ける
- 例規集で条文を開き、別表や附則、関連する規則・要綱をたどる
- 事務マニュアルに具体的な手順があれば、所管課のフォルダから最新版を探す
- 条文とマニュアルの該当箇所を示して、メールやチャットで回答する
- 条文だけでは答えられない事案は、所管課と相談して回答する
- 自動例規集のデータと事務マニュアルを、改正の反映のたびに索引へ取り込み直す
- 人職員が、庁内ポータルの検索画面に質問を入力する
- 自動中継プログラムが、質問を受け取り、現行の文書だけに絞る条件を付ける
- 自動Vertex AI Search(Agent Search)が、根拠の条文とマニュアルの箇所を付けた回答を返す
- 自動中継プログラムが、回答が返らなかった理由、根拠の有無、例規とマニュアルの食い違いの有無を確かめる
- 自動根拠付きの回答は、そのまま職員の画面に表示する。条文のリンクと施行日を必ず添える
- 自動回答が返らなかったもの、根拠が弱いものは、「法規担当へ送る」ボタンを出す
- 人職員が、根拠の条文を開いて自分の事案に当てはまるかを確かめる
- 人送られてきた質問に、法規担当が回答する
- 自動毎月、答えられなかった質問と食い違いの指摘を集計し、法規担当と所管課へ返す
各工程の詳しい説明を読む
- 職員が、例規集のWeb版やマニュアルを探し、見つからなければ法規担当か所管課に質問する
- 法規担当が質問を読み、どの例規のどの条に関係するかを見当を付ける
- 例規集で条文を開き、別表や附則、関連する規則・要綱をたどる
- 事務マニュアルに具体的な手順があれば、所管課のフォルダから最新版を探す
- 条文とマニュアルの該当箇所を示して、メールやチャットで回答する
- 条文だけでは答えられない事案は、所管課と相談して回答する
(a)条文の所在を探すのに時間がかかる。 旅費の日当は旅費条例の本則ではなく別表に、決裁の区分は事務決裁規程の別表に、というように、答えそのものは別表や附則にあることが多いのです。条文をたどる手順を知っている職員は速く、知らない職員は何十分もかかります。
(b)答えられる人が限られる。 法規担当の中でも、財務の例規に詳しい人、服務に詳しい人と分かれています。その人が休むと、質問が翌日まで止まります。 異動すると、どの質問にどう答えていたかの記録も一緒に消えます。
(c)改正前の条文で答えてしまう。 改正が施行された直後は、職員の手元のマニュアルも、答える側の記憶も、改正前のままのことがあります。 公布済みで施行前の改正は、どちらの条文で答えるべきかを日付で確かめる必要があります。
(d)同じ質問に何度も答えている。 質問の多くは、条文の所在さえ分かれば職員が自分で読んで分かるものです。それでも法規担当に聞くのは、例規集の探し方が分からないからです。
- 【自動】 例規集のデータと事務マニュアルを、改正の反映のたびに索引へ取り込み直す
- 【人】 職員が、庁内ポータルの検索画面に質問を入力する
- 【自動】 中継プログラムが、質問を受け取り、現行の文書だけに絞る条件を付ける
- 【自動】 Vertex AI Search(Agent Search)が、根拠の条文とマニュアルの箇所を付けた回答を返す
- 【自動】 中継プログラムが、回答が返らなかった理由、根拠の有無、例規とマニュアルの食い違いの有無を確かめる
- 【自動】 根拠付きの回答は、そのまま職員の画面に表示する。条文のリンクと施行日を必ず添える
- 【自動】 回答が返らなかったもの、根拠が弱いものは、「法規担当へ送る」ボタンを出す
- 【人】 職員が、根拠の条文を開いて自分の事案に当てはまるかを確かめる
- 【人】 送られてきた質問に、法規担当が回答する
- 【自動】 毎月、答えられなかった質問と食い違いの指摘を集計し、法規担当と所管課へ返す
8番目が、この設計の分かれ目です。 回答は、職員が根拠の条文を読むための入口です。「回答にこう書いてあったから」で事務を進めるのではなく、条文を開いて確かめることを、画面の作りで求めます。回答の文より、条文へのリンクを目立たせます。
10番目が、この構成を育てます。 答えられなかった質問は、例規やマニュアルに書かれていないか、書かれていても探せない形になっていることを示しています。マニュアルを直すのは所管課で、この集計はその材料です。
02今回想定するシステム構成
例規集のデータ(提供事業者から)/事務マニュアル(各課のPDF・Word) │ 改正の反映のたびに、現行か・施行日・所管課などを付けて Cloud Storage へ ▼ Vertex AI Search(Agent Search)の非構造化データストア │ レイアウトパーサーで解析し、見出し付きで分割 │ メタデータ:文書の種別/現行か/施行日/所管課 ▼ 職員(庁内ポータルの検索画面) │ 質問を入力 ▼ 中継プログラム(Python) ├──▶ 現行の文書だけに絞る条件を付けて answer メソッドを呼ぶ ├──▶ 回答しなかった理由・根拠の有無・例規とマニュアルの食い違いを確かめる ▼ 回答(本文/根拠の条文とマニュアルの箇所/施行日) ├──▶ 職員の画面へ └──▶ 答えられないものは法規担当へ(質問の記録ごと) ▼ 質問と回答の記録 ──▶ 月次で集計し、法規担当と所管課へ返す
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search) | Azure AI Search、OpenSearch |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。検索画面・検索基盤・記録をつなぎ、規則で判定する) | Node.js で同じものを書く |
| 保管 | Cloud Storage(例規とマニュアルの原本と、メタデータ) | ─ |
例規集のWeb版と、各課のマニュアルは、置き換えません。 職員はこれまでどおりWeb版を見られます。この構成は、質問から条文の所在にたどり着くまでの入口を足すものです。最初の準備作業は、例規集のデータをどの形で受け取れるかを、提供事業者と確かめることです。 受け取れる形は契約によって違うため、個別の確認が要ります。
土台になるのは、Vertex AI Search です。 Google Cloud のドキュメントでは、Agent Search へ名称が変わりつつあると注記されています。使うのは、Cloud Storage に置いた文書から作る非構造化データのデータストアで、PDF、HTML、DOC、TXT、PPTX の文書を取り込めるとされています。文書ごとにメタデータを付けて取り込む形式も用意されています。
文書の解析には、レイアウトパーサーを使います。 段落、表、リスト、見出しなどの構造を検出し、文書の分割(チャンキング)にはレイアウトパーサーが必要とされています。分割の大きさは100から500トークンの間で指定でき、既定は500です。見出しを分割した各部分に付ける設定(includeAncestorHeadings)があり、既定では無効です。例規では、この設定が効きます。 「第12条」だけの断片では何の例規か分からず、例規名と章の見出しが付いて初めて根拠として使えます。
回答の生成は、answer メソッドで行います。 根拠を付ける設定(includeCitations)、関連性の低い内容しかないときに代わりの応答を返す設定(ignoreLowRelevantContent)、回答を求めていない入力を扱わない設定(ignoreNonAnswerSeekingQuery)があり、回答しなかった理由は answerSkippedReasons に入ります。 回答の根拠の強さを示す支持スコアを返させる設定もあります。
03どうやって実装するのか
処理の起点を決める
処理の起点は2つあります。 1つは職員が検索画面に質問を入力したとき、もう1つは例規や事務マニュアルが改正・更新されたときです。
質問の入力は、そのたびに1件ずつ処理します。 職員は事務の途中で聞いているので、待たせません。同じ職員が続けて聞く質問は、前の質問の文脈を引き継げるように、セッションとして扱います。 answer メソッドには、会話の文脈を踏まえた複数回のやり取りのためのセッションの指定があるとされています。
索引の取り込み直しは、例規集の更新に合わせます。 例規の改正は毎月のように公布され、施行日もまちまちです。提供事業者から更新されたデータが届いた日に、取り込みをやり直します。 データストアの自動の定期取り込み(1日、3日、5日ごと)もありますが、この方式では元のデータの権限の制御に対応していないとされています。例規と全職員向けのマニュアルだけを入れる前提なので支障はありませんが、特定の課だけが見るべき文書をこの索引に入れないことを運用の規則にします。
施行日をまたぐ日にも取り込み直します。 公布済みで施行前の改正は、施行日になった時点で「現行」に切り替わります。施行日の朝に、メタデータの「現行か」を付け替えて取り込み直す予定を、改正の公布のたびに登録しておきます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 例規の本文 | 条例・規則・訓令・要綱の本文、別表、附則 | 例規集の提供事業者から受け取るデータ |
| 例規のメタデータ | 例規番号、名称、種別、所管課、最終改正日、施行日、現行/施行前/廃止 | 同上と、法規担当の管理表 |
| 事務マニュアル | 各課の手順書、様式の記入例 | 各課が登録した最新版 |
| マニュアルのメタデータ | 所管課、版、更新日、根拠にしている例規の番号 | 各課が登録時に記入 |
| 職員の質問 | 質問の文、所属、同じセッションの前の質問 | 検索画面 |
質を決めるのは、メタデータの「現行か」と「根拠にしている例規の番号」です。 「現行か」が無いと、改正前の条文と改正後の条文が同じ重みで検索に出ます。第3章の(c)は、ここで防ぎます。 マニュアルに根拠の例規の番号が無いと、例規が改正されたときに、どのマニュアルを見直すべきかが分かりません。
マニュアルの登録は、所管課が行います。 法規担当が各課のフォルダから集めると、どれが最新版かを判断できません。最新版だけを、根拠の例規の番号を付けて登録してもらうのが、マニュアルの側の最初の作業です。
データの取得方法を決める
例規と事務マニュアルは、Cloud Storage に置いてデータストアに取り込みます。 取り込みの際、文書ごとのメタデータを structData または jsonData として、文書の置き場所と一緒に書いた形式で渡します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 例規の本文とメタデータ | 例規集の提供事業者のデータ | 根拠の条文 |
| マニュアルとメタデータ | 各課の登録 | 具体的な手順 |
| 現行か・施行日の付け替え | 法規担当の管理表 | 検索の絞り込み |
| 質問と回答の記録 | 中継プログラムの記録 | 月次の集計 |
メタデータは、絞り込みに使えるよう「索引可能」にします。 ドキュメントでは、メタデータで絞り込むには、スキーマの設定でその項目を索引可能にする必要があるとされています。絞り込みの式は、status: ANY("current") のように書けます。 日付の項目には比較の演算子も使えるとされており、施行日で絞ることもできます。
検索のたびに付ける絞り込みは、中継プログラムが決めます。 職員が「改正前の扱いを知りたい」と明示したときだけ、施行前・廃止の文書も含めます。既定は、現行のものだけです。
AIへ渡す前に整形する
- 例規の単位で1文書にする … 例規集のデータを、1つの例規を1つの文書にそろえます。別表と附則は、その例規の文書に含めます
- 現行・施行前・廃止を付ける … 法規担当の管理表から、例規ごとの状態と施行日を付けます
- 改正前の条文を分ける … 改正履歴として残っている旧条文は、「廃止」の別の文書として分けます
- マニュアルの版を確かめる … 同じマニュアルの古い版は取り込みません。最新版だけにします
- 根拠の例規の番号を付ける … マニュアルに、根拠にしている例規の番号をメタデータとして付けます
- スキャンのマニュアルを確かめる … テキストの無いPDFは、OCR パーサーで読めますが、先頭の500ページまでとされています。長いものは分けます
- 個人の情報を含む文書を除く … 様式の記入例に実在の職員の氏名が入っていないかを確かめます
1番目と3番目を分けて考えてください。 例規集のデータには、1つの例規の中に改正の履歴が並んでいることがあります。そのまま取り込むと、同じ条の新旧の条文が1つの文書の中に並び、絞り込みでは分けられません。 旧条文は別の文書にして「廃止」を付けます。
6番目のOCR パーサーとレイアウトパーサーは、Document AI の料金がかかるとされています。例規集のデータがテキストで受け取れるなら、例規の側はテキストのまま取り込み、パーサーの費用はマニュアルの側に限られます。
AIに処理させる
させるのは、索引の中の条文とマニュアルを根拠に、質問に答える文を作ることです。 答えの形は、次の4つの要素に決めます。
| 要素 | 中身 | 根拠が無いときの扱い |
|---|---|---|
| 結論 | 質問への答えを1〜2文で | 根拠が無ければ答えない |
| 根拠の条文 | 例規名、条・項・号、別表の番号、施行日 | 無ければ回答全体を法規担当へ |
| 手順 | マニュアルに書かれた具体的な手順 | 無ければ「手順の記載なし」 |
| 食い違い | 例規とマニュアルで記載が違う点 | 無ければ空 |
左から2列目の「根拠の条文」が、この構成で最も大事な要素です。 職員が確かめるのは、回答の文ではなく条文です。条文の場所が付かない回答は、正しくても使えません。 中継プログラムは、根拠の中に例規の文書が1つも無い回答を、職員に表示せず法規担当へ回します。
answer メソッドでの設定は、次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
includeCitations | 有効 | 回答の文ごとに根拠を付ける |
ignoreLowRelevantContent | 有効 | 関係の薄い条文で無理に答えない |
ignoreNonAnswerSeekingQuery | 有効 | 挨拶や雑談に答えない |
| 支持スコアの返却 | 有効 | 根拠の強さを中継プログラムの判定に使う |
promptSpec.preamble | 下の指示 | 答え方の規則を与える |
| 絞り込みの条件 | status: ANY("current") | 現行の例規だけにする |
| させないこと | 理由 |
|---|---|
| 条文の解釈が分かれる点に結論を出す | 解釈は法規担当が判断する |
| 個別の事案に当てはめて可否を言う | 事案の事情は職員と所管課にしか分からない |
| 索引に無い一般的な法令の知識で答える | 国の法令の一般的な説明は、本市の例規の根拠にならない |
| 例規とマニュアルの食い違いを片方に寄せる | どちらを直すかは法規担当と所管課が決める |
| 改正前の条文で答える | 絞り込みで防ぎ、指示でも禁じる |
3行目が最も起きやすい失敗です。 地方自治法や地方公務員法の一般的な知識は、回答を生成するモデルが持っています。それを使って答えると、本市の規則で上乗せや別の定めがある事項で誤ります。 索引の中の文書だけで答えることを、指示で明記します。
指示内容を固定する
answer メソッドの promptSpec.preamble に、次の指示を入れます。
あなたは市役所の職員からの、例規と事務手続きの質問に答えます。
答えを読むのは市の職員で、答えの根拠の条文を開いて確かめてから
事務を進めます。
【答え方】
1. 最初に、質問への答えを1〜2文で書いてください。
2. 次に、根拠にした例規の名称と、条・項・号、別表の番号を書いてください。
3. 事務マニュアルに具体的な手順があれば、その手順を書いてください。
4. 例規とマニュアルで記載が違う点があれば、両方を書き、
「例規と事務マニュアルの記載が異なります」と明記してください。
【厳守事項】
- 検索結果の文書に書かれていることだけで答えてください。
地方自治法、地方公務員法などの一般的な知識で補わないでください。
- 金額、日数、期間、決裁の区分は、別表や条文に書かれているとおりに
書いてください。計算や言い換えをしないでください。
- 条文の解釈が分かれる点や、個別の事案に当てはめた可否は書かないでください。
「個別の事案の判断は法規担当または所管課に確認してください」と書いてください。
- 例規とマニュアルが食い違うとき、どちらが正しいかを決めないでください。
- 根拠になる条文が見つからないときは、答えを作らないでください。
- 施行前の改正や、改正前の条文について聞かれたときは、
その旨と施行日を明記してください。
- 質問者の所属や氏名を答えに書かないでください。
「計算や言い換えをしない」は、別表の金額のためです。 旅費の日当は、職の区分と行き先で金額が分かれた表になっていることが多く、生成された文が表を読み違えて別の区分の金額を書くことがあります。 表のとおりに写させ、職員には表そのものを開かせます。
「個別の事案の判断は確認を」を定型の文にしているのは、職員が次の一歩を迷わないためです。 答えられないことを答えないだけでは、職員は結局また誰かに聞きます。誰に聞けばよいかまで書かせます。
出力形式を固定する
answer メソッドの応答を、中継プログラムが次の形に整えて画面と記録に渡します。
{
"query_id": "",
"session": "",
"status": "answered | skipped | escalated",
"skipped_reasons": [],
"answer_text": "",
"citations": [
{ "doc_type": "reiki | manual", "title": "", "article": "",
"effective_date": "", "status": "current", "uri": "" }
],
"support_score": 0,
"conflict": { "found": false, "reiki": "", "manual": "" },
"route_to": "none | houki | shokan"
}
1つ目の理由は、status で表示の仕方を分けられることです。 answered は回答と根拠を表示し、skipped は回答しなかった理由(answerSkippedReasons の内容)に応じて文面を変え、escalated は法規担当へ送る画面を出します。回答しなかったことを隠さず、次にどうするかを示します。
2つ目は、citations の doc_type で判定できることです。 中継プログラムは、citations の中に reiki が1つも無い回答を escalated に書き換えます。マニュアルだけを根拠にした回答は、例規の改正に追いついていないマニュアルからの答えかもしれないからです。
3つ目は、support_score で根拠の強さを使えることです。 支持スコアは0から1の値で、一定の値に届かない回答は、根拠が弱いとして法規担当へ送るボタンを目立たせます。 境の値は、最初の1か月の記録を見て法規担当が決めます。
4つ目は、conflict を記録として集められることです。 食い違いが見つかった回答は、月次の集計で所管課へ返します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 庁内ポータルの検索画面 | 中継プログラムの呼び出し | 質問の受け付けと、回答の表示 |
| Vertex AI Search(Agent Search) | answer メソッドの呼び出し | 絞り込みの条件付きで回答を得る |
| Cloud Storage とデータストア | 取り込みの実行 | 改正の反映と、施行日の付け替え |
| 法規担当への送付 | チャットまたはメール | 質問、回答の候補、根拠を添えて送る |
| 質問と回答の記録 | 中継プログラムが保存 | 月次の集計と、回答の見直し |
例規集のWeb版には、書き込みません。 回答の根拠のリンクは、Web版の該当の例規を開くものにします。職員が確かめる条文は、いつも正式な例規集のほうです。
法規担当への送付には、職員が入力した質問と、回答の候補と根拠をそのまま添えます。 法規担当は、AIがどの条文を見て答えられなかったかから始められるので、①の見当付けの時間が減ります。
人が確認する
この構成では、すべての回答を人が事前に確かめることはしません。 質問は事務の途中で、待たせられないからです。その代わり、確かめる責任を2か所に置きます。
- 職員が根拠の条文を開く … 画面には回答の文より条文へのリンクを大きく出し、「条文を開いて確かめた」を押さないと回答を閉じられないようにします
- 法規担当が、送られた質問に答える …
escalatedと、職員が「法規担当へ送る」を押したものです - 法規担当が、回答を抜き取りで見る … 毎週、
answeredの回答から20件を選び、根拠と答えが合っているかを確かめます - 所管課が、食い違いの指摘を見る … 月次の集計で返された食い違いについて、マニュアルを直すか法規担当と相談します
3番目の抜き取りを省かないでください。 職員は根拠の条文を開いても、それが自分の質問に当てはまる条文かまでは分からないことがあります。誤った根拠で答えた回答は、職員の側では気づかれません。抜き取りで見つかった誤りは、前処理の文書の分け方か、指示の書き方の問題として直します。
目標は、1件あたり4.5分です。 職員が根拠の条文を確かめる時間と、法規担当が送られた質問に答える時間、抜き取りの時間をならした値です。送られる質問が全体の2割という想定で、2割を大きく超える月は、索引に入っていない文書があるか、メタデータの付け替えが漏れています。
例外に対処する
| 起きること | 対応 |
|---|---|
回答しなかった(answerSkippedReasons に理由) | 理由に応じた文面で、法規担当へ送る画面を出す |
| 根拠に例規が1つも無い | マニュアルだけの回答は escalated に書き換える |
| 支持スコアが境の値に届かない | 回答を表示したうえで、法規担当へ送るボタンを目立たせる |
| 例規とマニュアルが食い違う | 両方を表示し、月次の集計で所管課へ返す |
| 施行前の改正に関わる質問 | 現行の条文で答え、施行前の改正があることと施行日を添える |
| 取り込みの失敗・遅れ | 前回の索引のまま動かし、画面に最終の取り込み日を表示する |
| 個別の事案についての質問 | 条文の所在だけを示し、所管課への確認を促す |
| 検索基盤が応答しない | 例規集のWeb版へのリンクと、法規担当への送付の画面を出す |
下から3行目の「最終の取り込み日」を画面に出すのは、改正の反映が遅れたときのためです。 職員が、回答がいつ時点の例規にもとづくかを知っていれば、直近の改正の有無を自分で確かめられます。
記録を残す
- 質問の文、質問者の所属、日時、セッション
- answer メソッドに渡した絞り込みの条件と、応答の全文
- 回答しなかった理由、支持スコア、根拠の文書の一覧
- 法規担当へ送られた質問と、法規担当の回答
- 抜き取りで見つかった誤りと、その原因
- 例規とマニュアルの食い違いの指摘と、所管課の対応
- 索引の取り込みの日時と、そのときの文書の一覧
4つ目が、この構成を育てる材料になります。 法規担当の回答がたまると、どの種類の質問が索引で答えられず、どの例規の条文が探しにくいかが見えてきます。 マニュアルに1段落足すだけで次から答えられる質問が、毎月いくつも見つかります。
最後の行は、後から回答を確かめるための記録です。 職員から「この回答は正しかったのか」と問われたとき、そのときどの版の例規が索引に入っていたかが分からないと、確かめようがありません。
04実装レベルの3段階
最小構成では、文書の量がさばけません。 例規は数百本あり、画面に貼れる量ではありません。答え方を確かめるための段階です。 半自動化で、1件12分が7分程度になります。 法規担当が回答の候補と根拠を見て返すので、条文をたどる時間は減りますが、すべての質問が法規担当を通ります。 本格構成で4.5分になり、この段階が本記事の想定です。 差が出るのは、職員が根拠の条文だけで分かる質問が、法規担当を通らなくなるからです。 段階を飛ばさないでください。 半自動化で法規担当自身が1か月使うと、どの例規の分け方が悪く、どのマニュアルが古いかが先に分かります。 そこを直してから職員に開くほうが、最初の印象で使われなくなる事態を避けられます。
05工数削減シミュレーション
導入後 400件 × 4.5分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 職員数が千人を超え、決裁の区分、旅費、文書の保存期間、契約の手続きなどの質問が総務課の法規担当や各制度の所管課に月に数百件届く市区町村・都道府県。例規集と、各課の事務マニュアル・要綱がテキストまたはテキスト付きのPDFで手に入る場合。質問への回答が、特定のベテラン職員の記憶に頼っている場合。教育委員会や公立学校で、学校管理規則や服務の手引きについて同じ種類の質問が多い場合。
- 職員数が少なく、法規担当が質問にすぐ答えられている規模の団体。例規集のデータを取り出せる形で手に入れられず、事務マニュアルも紙しか無い場合。質問の多くが、条文の解釈が分かれる個別の事案についての判断で、条文の所在を示すだけでは答えにならない場合。なお、例規の解釈の最終的な判断と、個別の事案への適用の判断は、この構成では代替できません。
07最小構成で試す方法
- 過去1か月に法規担当が受けた質問から30件を選ぶ(うち数件は、別表の金額や区分を答えるものを入れる)
- その30件に関係する例規と事務マニュアルを、10本ほど選ぶ
- 10本の現行の本文を、庁内で利用が認められている生成AIの画面に貼る
- 「貼った文書だけを根拠に、この質問に答えてください。根拠の例規名と条・別表の番号を書き、書かれていないことは答えないでください」と指示し、30件を1件ずつ聞く
- 出てきた回答を、法規担当が実際に返した回答と見比べる
30件は、答えが分かっている質問でやってください。 見るのは、根拠の条文が正しいか、別表の金額を読み違えていないかの2点です。
| 出てきた内容 | 判断 |
|---|---|
| 根拠の条文が正しく、答えも法規担当と同じ | データストアの構築に進む |
| 答えは正しいが、根拠の条文が違う | 例規の分け方と見出しの付け方の問題。分割の設定を先に確かめる |
| 一般的な法令の知識で答えている | 指示の書き方で直る。構成は有効 |
2行目が出たら、それは重要な結果です。 答えが合っていても根拠が違えば、職員が開いた条文は質問と関係がなく、確かめたことになりません。 本格構成で見出しを分割の各部分に付ける設定を有効にするのは、これを防ぐためです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 改正前の条文で答える | 現行のメタデータで絞り込み、旧条文は別の文書にする |
| 施行日を過ぎても施行前のまま | 施行日の朝の付け替えを、公布のたびに予定に入れる |
| 「第12条」だけの断片が根拠に出る | 見出しを分割の各部分に付ける設定を有効にする |
| 別表の金額を読み違える | 表のとおりに写させ、職員に表を開かせる |
| 一般的な法令の知識で答える | 検索結果の文書だけで答えるよう指示する |
| マニュアルだけを根拠に答える | 例規の根拠が無い回答は法規担当へ回す |
| マニュアルの古い版が混ざる | 所管課が最新版だけを登録する |
| 特定の課だけの文書が全職員に見える | 自動の定期取り込みは元の権限に対応しない。 全職員向けの文書だけを入れる |
| メタデータで絞り込めない | スキーマの設定でその項目を索引可能にする |
| 職員が条文を開かずに事務を進める | 条文のリンクを目立たせ、確かめた操作を求める |
上の2行が、この構成の失敗のほとんどです。 どちらも、例規集の「今」が索引に反映されていないところから起きます。メタデータの付け替えを法規担当の日常の事務にできるかどうかで、運用に乗るかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 例規の本文(公開されているもの)、各課の事務マニュアル(庁内向け)、そして職員の質問の文と所属です。
- 索引に入れる文書の範囲を決める … 自動の定期取り込みは元のデータの権限の制御に対応していないとされています。人事や監査のように、特定の課だけが見るべき文書は入れないでください
- 質問の文に個人の情報が入ることを前提にする … 職員は「○○さんの休暇の扱い」のように、実在の人の事情を書いて質問することがあります。質問の記録を見られる人を法規担当に限ります
- 解釈と当てはめをAIに寄せない … この構成が示すのは条文の所在です。個別の事案の可否は、法規担当と所管課が判断します
- 回答がいつ時点の例規にもとづくかを示す … 画面に最終の取り込み日を出し、改正の反映の遅れを職員が自分で確かめられるようにします
- 食い違いを放置しない … 例規とマニュアルの食い違いは、マニュアルに従って事務を進めた職員が誤る原因です。月次の集計で所管課へ返し、対応を記録します
- 正式な例規集を置き換えない … 回答の根拠のリンクは、正式な例規集の該当箇所を開くものにします
誤りが起きた場合のリスクは、改正前の条文や古いマニュアルで事務を進めることと、根拠の違う条文を正しいと思い込むことの2つです。 前者はメタデータの付け替えの漏れから、後者は分割の断片に見出しが無いことから起きます。どちらも取り込みの側の設計で防げるので、そこは運用で守ります。
10まず何から始めるか
1週目:例規集のデータの受け取り方を確かめる
提供事業者に、例規のデータをどの形で受け取れるか、改正の反映のたびに受け取れるかを確かめます。あわせて、法規担当の管理表に「現行/施行前/廃止」と施行日の列があるかを確かめ、無ければ足します。
2週目:30件で試す
過去1か月の質問から30件を選び、関係する例規10本を生成AIの画面に貼って答えさせます。根拠の条文が正しいかと、別表の金額を読み違えていないかを最優先で見ます。
3週目:データストアを作る
例規のデータとメタデータを Cloud Storage に置き、レイアウトパーサーと見出し付きの分割を有効にしてデータストアを作ります。この時点では、現行の例規だけを入れ、マニュアルは入れません。
4週目:法規担当だけで使う
中継プログラムで絞り込みと根拠の判定を付け、法規担当が質問を受けたときに回答の候補を見る形で使い始めます。 質問の多い上位3つの所管課に、マニュアルの最新版の登録を依頼します。
2か月目: マニュアルを索引に足し、施行日の付け替えと食い違いの検出を動かします。法規担当が回答の候補を採用した割合を数えます。3か月目以降: 職員が直接質問できる画面を開き、法規担当へ送られる割合と抜き取りの誤りを毎週見ます。送られる割合が2割前後に落ち着き、1件12分が何分になったかを実測できた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Cloud Storage から非構造化データのデータストアを作れ、PDF、HTML、DOC、TXT、PPTX を取り込めること。メタデータを structData または jsonData として付けられること。1回の取り込みは手動で更新が要り、定期の取り込みは1日・3日・5日ごとで、元のデータの権限の制御に対応しないこと | Google Cloud: Create a data store(Cloud Storage) | 2026-09-29 |
レイアウトパーサーが段落・表・リスト・見出しを検出し、分割に必要なこと。分割の大きさが100〜500トークン(既定500)、includeAncestorHeadings の既定が無効であること。OCR パーサーが先頭の500ページまでであること。OCR とレイアウトのパーサーに Document AI の料金がかかること | Google Cloud: Parse and chunk documents | 2026-09-29 |
メタデータで絞り込むには、スキーマでその項目を索引可能にする必要があること。ANY() による一致と、数値・日付の比較の演算子が使えること | Google Cloud: Filter search by metadata | 2026-09-29 |
Agent Search への名称の変更の注記。answer メソッドの includeCitations、ignoreLowRelevantContent、ignoreNonAnswerSeekingQuery、支持スコア(0〜1)、answerSkippedReasons、promptSpec.preamble、セッションによる複数回のやり取り | Google Cloud: Get answers and follow-ups(answer method) | 2026-09-29 |
例規の解釈と個別の事案への適用は、各団体の法規担当の判断に従ってください。 本記事は Google Cloud の公開ドキュメントで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0321)についてのご相談はこちらから。
