住民からの手続きの問い合わせに、AIとの対話で必要な書類と窓口まで案内する
「引っ越したら何が要るか」「子どもが生まれたら何をするか」という住民からの問い合わせに、AIとの対話で状況を聞き取り、該当する手続き・必要書類・窓口・受付時間を案内します。根拠は自治体の公式の手続き案内ページだけで、必ずそのページへのリンクを添えます。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- 自治体
- 対象部門
- カスタマーサポート/総務
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 人手が足りない/問い合わせが多い/情報が見つからない
- AIで行う処理
- 対話
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 代表電話・総合案内・問い合わせフォームで問い合わせを受ける
- 職員が「どういう状況か」を聞き取る。転入か転出か、家族は何人か、子どもはいるか、勤め先の健康保険か国民健康保険か
- 聞き取った内容から、当てはまりそうな手続きを思い浮かべる
- 公式サイトで該当する案内ページを探し、必要書類・窓口・受付時間を確かめる
- 住民に口頭で伝える。フォームの場合は回答文を書いて返信する
- 案内ページで分からないものや、個別の判断が要るものは担当課へ転送する
- 受付簿に件名と対応を1行書く
- 【住民】 公式サイトの案内チャットを開き、「引っ越します」などと書き込む。電話・窓口では職員が同じ画面を開いて代わりに入力する
- 自動生成AIが状況を聞き取る。転入か転出か、世帯の人数、子どもの有無と年齢の区分、健康保険の種類など、決めてある項目だけを順に聞く
- 自動聞き取った状況から、手続きの一覧表を引いて、確かめる手続きを決める
- 自動手続きごとに検索基盤へ問い合わせ、公式の案内ページだけを根拠にした回答と、根拠のページを受け取る
- 自動根拠のページが付いているか、許可したURLの範囲か、個別の判断に踏み込んでいないかを規則で確かめる
- 自動手続きごとに、必要書類・窓口・受付時間・根拠のページへのリンクを並べて返す
- 自動根拠が見つからない手続きや、個別の判断が要る質問は、担当課の名称と連絡先を返す
- 人担当課へ回った問い合わせに、担当課の職員が対応する
- 人総務課が回答の記録を抜き取りで確かめる
- 【人/自動】 月に1回、答えられなかった質問を手続き・担当課ごとに集計し、担当課へ返す
各工程の詳しい説明を読む
- 代表電話・総合案内・問い合わせフォームで問い合わせを受ける
- 職員が「どういう状況か」を聞き取る。転入か転出か、家族は何人か、子どもはいるか、勤め先の健康保険か国民健康保険か
- 聞き取った内容から、当てはまりそうな手続きを思い浮かべる
- 公式サイトで該当する案内ページを探し、必要書類・窓口・受付時間を確かめる
- 住民に口頭で伝える。フォームの場合は回答文を書いて返信する
- 案内ページで分からないものや、個別の判断が要るものは担当課へ転送する
- 受付簿に件名と対応を1行書く
(a)聞き取りの質が職員によって違う。 転入の問い合わせで、子どもの有無を聞く職員と聞かない職員がいます。聞かなければ、児童手当や学校の手続きの案内が漏れます。 住民はそのまま窓口に来て、2回目の来庁が必要になります。
(b)答えはあるのに、ページが見つからない。 案内ページは課ごとに分かれ、「転入」で検索しても国民健康保険や児童手当のページは出てきません。職員も住民と同じ検索で探しています。
(c)答えられなかった質問が残らない。 受付簿には「担当課へ転送」とだけ書かれ、なぜ案内ページで答えられなかったのかは記録されません。 同じ質問が毎月来ても、ページを直すきっかけになりません。
(d)全件を電話で受けるのは続かない。 繁忙期には他の業務が止まります。住民が自分で確かめられる経路が無いと、件数そのものは減りません。
- 【住民】 公式サイトの案内チャットを開き、「引っ越します」などと書き込む。電話・窓口では職員が同じ画面を開いて代わりに入力する
- 【自動】 生成AIが状況を聞き取る。転入か転出か、世帯の人数、子どもの有無と年齢の区分、健康保険の種類など、決めてある項目だけを順に聞く
- 【自動】 聞き取った状況から、手続きの一覧表を引いて、確かめる手続きを決める
- 【自動】 手続きごとに検索基盤へ問い合わせ、公式の案内ページだけを根拠にした回答と、根拠のページを受け取る
- 【自動】 根拠のページが付いているか、許可したURLの範囲か、個別の判断に踏み込んでいないかを規則で確かめる
- 【自動】 手続きごとに、必要書類・窓口・受付時間・根拠のページへのリンクを並べて返す
- 【自動】 根拠が見つからない手続きや、個別の判断が要る質問は、担当課の名称と連絡先を返す
- 【人】 担当課へ回った問い合わせに、担当課の職員が対応する
- 【人】 総務課が回答の記録を抜き取りで確かめる
- 【人/自動】 月に1回、答えられなかった質問を手続き・担当課ごとに集計し、担当課へ返す
3番目が、この設計の分かれ目です。 確かめる手続きをAIの連想に任せると、案内が漏れたり混ざったりします。状況と手続きの対応は、総務課が一覧表で持ちます。 AIが行うのは、状況を聞き取って表の条件に当てはめるところまでです。
5番目を規則で行っているのも、意図してのことです。 回答が正しそうに見えても、根拠のページが付いていなければ住民に出しません。「答えない」と決めるのは、AIではなく規則の側です。
02今回想定するシステム構成
住民(公式サイトの案内チャット)/職員(電話・窓口で同じ画面) │ ▼ 中継プログラム(受付と規則の判定) ├──▶ Gemini API ── 状況の聞き取り │ 転入/転出/市内転居・世帯の人数・子どもの有無と年齢の区分・保険の種類 │ ※ 氏名・住所・生年月日・個人番号は聞かない ▼ 手続きの一覧表(総務課が管理)── 状況から、確かめる手続きを決める ▼ Vertex AI Search(Agent Search)の回答の生成 │ データストア:公式サイトの手続き案内ページだけ(URLパターンで限定) │ 根拠のページ付きの回答/根拠が足りなければ回答しない ▼ 中継プログラム ── 根拠のページの有無・URLの範囲・個別判断の検知 ├──▶ 案内(手続き/必要書類/窓口/受付時間/根拠のリンク) └──▶ 担当課の連絡先へ回す ▼ 対話の記録 ──▶ BigQuery ── 月次で答えられなかった質問を集計 ──▶ 担当課へ返却
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search) | Azure AI Search、OpenSearch |
| 生成AI | Gemini(Gemini API。状況の聞き取りと、担当課へ回すときの文面) | Claude、ChatGPT |
| 連携 | 中継プログラム(Python。チャット画面・生成AI・検索基盤をつなぎ、規則で判定する) | Node.js で同じものを書く |
| 集計 | BigQuery(対話の記録の保管と、答えられなかった質問の月次集計) | Google スプレッドシート、Looker Studio |
公式サイトとCMSは、新しく足すものではありません。 検索基盤は公開ページを読むだけです。最初の準備作業は、手続きの一覧表を作ることです。
土台になるのは、Vertex AI Search です。 Google Cloud のドキュメントでは、Agent Search へ名称が変わりつつあると注記されています。公開Webサイトを索引にでき、検索結果にもとづく生成AIの回答を返せます。
使うのは、ウェブサイトのデータストアです。 含めるサイトと除くサイトをURLパターンで指定でき、除くほうが優先されます。 手続き案内の階層だけを含めれば、根拠にできるページを手続きの案内に限れます。
要約や追加の質問への回答には、高度なウェブサイトの索引(Advanced website indexing)が要ります。 追加の費用とドメインの所有権の確認が必要です。一度有効にすると後から無効にはできず、索引の方式も後から変えられません。
回答の生成は、answer メソッドで行います。 根拠を付ける設定(includeCitations)、関連性の低い内容しかないとき代わりの応答を返す設定(ignoreLowRelevantContent)、根拠の強さを0から1で示す支持スコアがあり、一定のスコアに届いた回答だけを返すこともできます。 答えなかった理由は answerSkippedReasons に入ります。この構成の「答えない」は、この上に組みます。
03どうやって実装するのか
処理の起点を決める
住民がチャット画面に最初の書き込みをしたときに始まります。 公式サイトのトップと、手続きの案内ページの上部に入口を置きます。電話と窓口では、職員が同じ画面を開いて住民の代わりに入力します。 電話の問い合わせも同じ記録に残ります。
1回の対話を1つのセッションとして扱います。 回答の生成は1往復ごとに answer メソッドを呼ぶ形で、複数回のやり取りにできます。途中で画面を閉じた場合は、そこまでの状況を捨てます。
月次の集計は、毎月1日の夜に動かします。 住民への回答の経路とは切り離し、集計が止まっても案内は止まらない形にします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 住民の書き込み | 用件と状況。氏名・住所・生年月日・個人番号は入力させない | チャット画面 |
| 聞き取りの項目 | 手続きの種類ごとに、聞く項目と選択肢 | 総務課が管理する一覧表 |
| 手続きの一覧表 | 状況の条件と手続きの対応、手続きの名称、担当課、案内ページのURL | 総務課が管理する一覧表 |
| 手続きの案内ページ | 必要書類、窓口、受付時間、手続きの期限 | 公式サイト(検索基盤の索引) |
| 担当課の連絡先 | 課の名称、電話番号、受付時間、問い合わせフォームのURL | 公式サイトの組織案内 |
質を決めるのは、上から2つ目と3つ目です。 聞き取りの項目が決まっていないと、AIは思いついた順に聞き、子どもの有無を聞き忘れたまま案内を終えます。
手続きの一覧表は、住民の出来事ごとに作ります。 「転入」「転出」「市内転居」「出生」「死亡」「婚姻」などの行に、条件(子どもがいる、国民健康保険に入っている、など)と手続きを並べます。表の1行が、案内に出る1つの手続きです。
担当課の連絡先は、案内ページとは別に持ちます。 回し先なので、検索に頼らず表から確実に引きます。
データの取得方法を決める
案内ページは、検索基盤のウェブサイトのデータストアで読みます。 索引の方式は、サイトマップと手動で指定したURLだけを索引にする方式(Sitemap Mode が Exact)を選びます。
| 方式 | 中身 | この構成で選ぶか |
|---|---|---|
| URLの自動発見と継続的な更新 | 指定したURLのうち Google が知っているページを索引にし、新しいページや更新を best-effort で拾う | 選ばない。更新が遅れたページが残りうると書かれている |
| 指定したURL+ Google が知っているURL | サイトマップとURLパターンのページを索引にする。自動の更新は無い | 選ばない |
| サイトマップと手動で指定したURL | 索引にするものを完全に自分で決める。 更新はサイトマップで行う | 選ぶ |
3行目を選ぶのは、公式ページの更新に追随する責任を自分で持つためです。 自動の方式では、ページが直ってもいつ索引に反映されるかが決まりません。CMSのサイトマップを出発点にし、担当課がページを更新したらサイトマップを更新して索引を作り直します。
含めるURLは手続き案内の階層に限ります。 たとえば city.example.lg.jp/kurashi/tetsuzuki/* を含め、city.example.lg.jp/kurashi/tetsuzuki/archive/* を除きます。除くほうが優先されるので、過去の制度のページを確実に外せます。 動的なURLで同じ内容のページが増えると索引と保管の費用が大きく増えると注意されているので、検索結果のページや印刷用のURLも除きます。
手続きの一覧表と担当課の連絡先は、中継プログラムが起動時に読み込みます。
AIへ渡す前に整形する
- 個人情報の検知 … 書き込みに電話番号、郵便番号、番地、生年月日、12桁の数字の並びが含まれていれば、生成AIへ送る前に伏せ字にし、入力しないよう画面で伝えます
- 用件の振り分け … 手続きの問い合わせか、それ以外(苦情、道路の損傷の通報、ごみの収集日など)かを分けます。手続き以外は、その窓口の案内へ回します
- 状況の項目の確定 … 聞き取った内容を、一覧表の選択肢のどれかに当てはめます。当てはまらない答えは、選択肢を示して聞き直します
- 確かめる手続きの決定 … 状況の項目を一覧表の条件に当て、行を拾います。AIに手続きを足させません
- 検索の問い合わせ文の組み立て … 手続きの名称と、状況のうち関係する項目だけを文にします。たとえば「国民健康保険の加入の手続き 転入 必要なもの 窓口」
- 判断を求める質問の検知 … 「もらえますか」「対象になりますか」「いくらですか」のような問いを拾い、案内ではなく担当課への回し先として扱います
1番目を軽く見ないでください。 注意書きがあっても、住民は丁寧に書いてきます。入力させない設計と、送らない処理の両方が要ります。
4番目で手続きを決めるのは、表です。 AIに任せると一般的な手続きを並べ、この市に無い手続きまで出てきます。
AIに処理させる
AIにさせることは2つです。 1つは生成AIによる状況の聞き取り、もう1つは検索基盤による、案内ページを根拠にした回答の生成です。
| 担当 | させること | 判断できないときの扱い |
|---|---|---|
| 生成AI | 一覧表の項目を順に聞き、答えを選択肢に当てはめる | 当てはまらなければ選択肢を示して聞き直す |
| 生成AI | 担当課へ回すときの短い文面を作る | 文面が作れなければ、定型文を使う |
| 検索基盤 | 手続きごとに、必要書類・窓口・受付時間を案内ページから答える | 根拠が足りなければ回答せず、担当課へ回す |
| 規則 | 根拠のページの有無と、URLの範囲を確かめる | どちらかが欠ければ、回答を捨てて担当課へ回す |
検索基盤には、答えないための設定を最初から入れます。 関連性の低い内容、攻撃的な問い合わせ、質問でない書き込みに回答しない設定を有効にし、支持スコアが基準に届かない回答も返させません。
| させないこと | 理由 |
|---|---|
| 給付・減免・審査の対象になるかの判断 | 本人の事情と書類で担当課が決めること |
| 税額・保険料・手当の金額の計算 | 世帯の所得など、聞き取っていない情報が要る |
| 案内ページに無い手続きの補足 | ほかの自治体の一般論が混ざる |
| 窓口の名称・受付時間の推測 | 間違えると住民が閉まった窓口へ来る |
| 手続きの期限を過ぎたときの扱いの説明 | 個別の事情で変わる |
1行目がいちばん起きやすい失敗です。 住民は「子どもが生まれたら児童手当はもらえますか」と聞きます。答えは案内ページの対象者の欄から読めそうに見えますが、所得や養育の状況で変わる判断を、AIが「もらえます」と言い切ってしまいます。 案内は「申請の手続きと必要なもの」までにし、対象になるかは担当課へ回します。
指示内容を固定する
生成AI(聞き取り)への指示:
あなたは市役所の手続き案内の窓口で、住民の状況を聞き取る係です。
制度の説明や、手続きの案内そのものはしないでください。案内は別の仕組みが行います。
【聞く項目】{intake_items}
(出来事ごとに、聞く項目と選択肢の一覧が入ります)
【聞き方】
- 1回の返事で聞くのは1項目だけにしてください。
- 選択肢があるものは、選択肢を示して選んでもらってください。
- 答えが選択肢に当てはまらないときは、推測で当てはめず、選択肢を示して聞き直してください。
- すでに答えてもらった項目は、もう一度聞かないでください。
【聞いてはいけないこと】
- 氏名、住所、電話番号、生年月日、個人番号、世帯の所得は聞かないでください。
- 住民がこれらを書いてきた場合は、内容を繰り返さず、
「個人を特定できる情報は入力しないでください」とだけ伝えてください。
【してはいけないこと】
- 給付や減免の対象になるか、手続きが必要かどうかを判断しないでください。
- 金額や期限の扱いを答えないでください。
- 「もらえますか」「対象ですか」と聞かれたら、判断はできないことと、
担当課で確認できることだけを伝え、聞き取りを続けてください。
【出力】次のJSONだけを返してください。
{"event": "", "answers": {}, "missing_items": [], "judgement_question": "", "next_question": ""}
- missing_items が空になったら、next_question は空にしてください。
- 判断を求める質問があれば、judgement_question にその文を写してください。
検索基盤の回答の生成に渡す指示(preamble):
あなたは市の手続きの案内係です。検索結果に含まれる、市の公式の案内ページに
書かれていることだけで答えてください。
- 答えるのは、必要なもの(書類・持ち物)、手続きの窓口、受付時間、手続きの期限の4つです。
- 案内ページに書かれていない項目は「案内ページに記載がありません」と書き、補わないでください。
- ほかの自治体の例や、一般的な手続きの説明を加えないでください。
- 対象になるか、もらえるか、金額がいくらかは答えないでください。
- 窓口の名称と受付時間は、案内ページの表記をそのまま使ってください。
- 敬語で、箇条書きで答えてください。
聞き取りの指示に「1回に1項目」と書かないと、項目を全部まとめて聞きます。 住民は最初の2つにだけ答え、第3章の(a)の聞き漏れがそのまま起きます。
「案内ページに記載がありません」と書かせるのは、補わせないためです。 空欄のままにすると、生成の側が一般的な知識で埋めます。書かれていないという事実が住民にも見えれば、担当課に聞くきっかけになります。
出力形式を固定する
中継プログラムが住民へ返す前に組み立てる形は、次のJSONです。
{
"session_id": "",
"event": "転入",
"answers": {
"move_type": "市外からの転入",
"household": "2人以上",
"children": "未就学の子どもがいる",
"insurance": "国民健康保険"
},
"procedures": [
{
"procedure_id": "P-012",
"name": "国民健康保険の加入",
"status": "answered | no_source | judgement_needed",
"documents": [],
"counter": "",
"hours": "",
"deadline": "",
"source_urls": [],
"support_score": 0,
"skipped_reason": "",
"department": { "name": "", "phone": "", "form_url": "" }
}
],
"judgement_question": "",
"pii_masked": false
}
1つ目の理由は、手続きごとに status を持てることです。 全体を1つの回答にすると、答えられなかった手続きが見えなくなります。
status | 住民に出すもの | 条件 |
|---|---|---|
answered | 必要なもの・窓口・受付時間・期限と、根拠のページのリンク | source_urls が1つ以上あり、すべて許可したURLの範囲 |
no_source | 担当課の名称・電話番号・受付時間 | 回答が返らない、skipped_reason がある、根拠のURLが無いか範囲外 |
judgement_needed | 判断は担当課で行うことと、担当課の連絡先 | 対象かどうか、金額などを聞かれた |
2つ目は、status を規則で決められることです。 source_urls と skipped_reason は検索基盤の返り値からそのまま入れ、status は中継プログラムが表の条件で決めます。 生成の側に「答えられたか」を自己申告させません。
3つ目は、skipped_reason がそのまま月次の集計の材料になることです。 関連性の低い内容しかなければページが無い、根拠が弱ければページの書き方が足りないという意味になります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| チャット画面 | 公式サイトへの埋め込み | 住民と職員の入力を受け、案内を表示する |
| Gemini API | API呼び出し | 状況の聞き取りと、担当課へ回すときの文面 |
| Vertex AI Search(Agent Search) | answer メソッドの呼び出し | 手続きごとの回答と、根拠のページ・支持スコア・回答しなかった理由 |
| 手続きの一覧表・担当課の連絡先 | ファイルの読み込み | 状況から手続きを決め、回し先を引く |
| BigQuery | 対話の記録の書き込み | 月次の集計の元データ |
公式サイトのCMSへは書き込みません。 ページを直すのは担当課の仕事です。案内の誤りをAIの側で直す経路を作ると、ページと案内が食い違ったまま運用が続きます。
申請の受付や予約の仕組みにはつなぎません。 手続きそのものは、窓口か既存の電子申請で行います。
人が確認する
住民への案内は、1件ずつ人が確かめてから出す形にはしません。 答えてよい範囲を根拠のページで閉じ、規則で確かめたものだけを返し、確認は事後の抜き取りに移します。
- 担当課へ回ったものに対応する …
no_sourceとjudgement_neededのものは担当課の職員が対応します。判断が要る質問は、ここで初めて本人の事情を聞きます - 回答の記録を抜き取りで見る … 総務課が毎週一定数の
answeredを選び、案内の内容と根拠のページが一致しているかを確かめます - 食い違いを見つけたら止める … 案内とページが食い違っていれば、その手続きの行を一覧表で一時的に止め、担当課へ連絡します
- 月次の集計を担当課へ返す … 答えられなかった質問を手続きごとにまとめ、ページの追記を依頼します
3番目の「止める」を、手順として持っておいてください。 誤った案内が1件見つかれば、同じ手続きの案内はすべて同じ誤りを含みます。行ごとに止めれば、ほかの案内は止めずに済みます。
抜き取りで見る数は、制度の改正で案内ページが書き換わる年度替わりの前に増やします。
例外に対処する
| 起きること | 対応 |
|---|---|
| 回答が返らない(関連性の低い内容しかない) | answerSkippedReasons に理由が入る。no_source にして担当課へ回す |
| 支持スコアが基準に届かない | 回答を返させない設定にし、no_source で担当課へ回す |
| 根拠のURLが許可した範囲の外 | 回答を捨てる。索引の除外の設定を見直す |
| 質問でない書き込み・攻撃的な書き込み | 回答しない設定で弾き、定型文で用件を聞き直す |
| 氏名や住所が書き込まれた | 伏せ字にして送らない。画面で入力しないよう伝える |
| 手続き以外の用件(苦情、通報) | 聞き取りを止め、その窓口の連絡先を案内する |
| 聞き取りの答えが選択肢に当てはまらない | 選択肢を示して聞き直す。2回当てはまらなければ総務課の電話番号へ |
| 案内ページが更新された直後 | サイトマップを更新して索引を作り直すまで、その手続きの行を止める |
| 検索基盤が応答しない | 案内を出さず、総務課の電話番号と受付時間を表示する |
上から2行目までが大半を占めます。 どちらも仕組みの失敗ではなく、案内ページの不足の表れです。 回数を数えて担当課へ返します。
記録を残す
- 対話のセッションごとに、聞き取った状況の項目(選択肢の値だけ。自由記述は伏せ字にした後のもの)
- 手続きごとの
status、根拠のページのURL、支持スコア、回答しなかった理由 - そのとき使った手続きの一覧表の版と、索引を最後に作り直した日時
- 担当課へ回したものについて、担当課の対応の結果(案内ページで答えられる内容だったか)
- 抜き取りで食い違いを見つけた記録と、止めた手続きの行
- 手続きごとの
no_sourceの件数の推移
3つ目で一覧表の版と索引の日時を残すのは、誤案内の範囲を決めるためです。 誤りが分かったとき、いつからいつまでの案内に同じ誤りが含まれていたかは、この2つが無いと決まりません。
最後の行は、ページを直した効果の確かめにも使います。
04実装レベルの3段階
最小構成では件数がさばけません。 ページを探して貼るのは人の作業のままなので、確かめるための段階です。 半自動化は、職員の画面から始めます。 電話を受けた職員が状況を入力し、案内を見ながら伝えます。住民に直接出す前に案内の質を確かめられ、誤りも職員が口頭で直せます。 本格構成で住民へ直接出すのは、半自動化で no_source の多い手続きをページの側で直してからです。 答えられない手続きが多いまま公開すると、住民には「結局は電話してください」という画面に見えます。段階を飛ばさないでください。
05工数削減シミュレーション
導入後 1,200件 × 2.5分 ÷ 60 = 50 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 代表電話・総合案内・問い合わせフォームに、転入・転出・出生・死亡などの手続きの問い合わせが月に数百件以上ある市区町村。公式サイトに手続きごとの案内ページがそろっており、必要書類・窓口・受付時間がページに書かれている場合。問い合わせの多くが「何が要るか」「どこへ行けばよいか」で、担当課へ転送するまでの聞き取りに職員の時間が取られている場合。案内ページの更新を担当課が自分で行える体制がある場合。
- 公式サイトに手続きの案内ページがほとんどなく、必要書類が窓口の紙の資料にしか書かれていない場合。問い合わせの中心が個別の審査・給付の可否や、税額・保険料の計算など、本人の事情を踏まえた判断である場合。問い合わせが月に数十件で、担当課への直接の転送で足りる場合。なお、手続きの要否や給付の対象かどうかの最終的な判断は、この構成では代替できません。
07最小構成で試す方法
- 受付簿から、問い合わせの多い出来事を1つ選ぶ(転入が扱いやすい)
- その出来事について、先月の問い合わせを20件選び、住民の状況と、職員が案内した手続きを書き出す
- 総務課で、その出来事の手続きの一覧表(条件と手続き、案内ページのURL)を作る
- 手元のAIサービスに、20件それぞれの状況と、該当する案内ページの本文を貼り付ける
- 「このページに書かれていることだけで、必要なもの・窓口・受付時間を答えてください。書かれていないことは補わないでください。対象になるかは答えないでください」と指示する
- 出てきた案内を、当時の職員の案内と突き合わせる
20件は必ずやってください。 検索基盤を組む前に、「案内ページだけで答えられるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の職員の案内と同じ内容が出た | 検索基盤の索引づくりに進む |
| ページに無い一般論を補った | 指示の書き方で直る。構成は有効 |
| ページに必要書類や窓口が書かれておらず、答えられない件数が多い | 案内ページの整備が先。 AIの問題ではない |
3行目が出ることは珍しくありません。 職員が経験で補って答えていたため、ページの不足に気づいていなかったということです。担当課とページを直し、同じ20件で見直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 回答にほかの自治体の一般論が混ざる | 根拠のURLを許可した範囲に限り、範囲外なら捨てる。指示でも補わせない |
| 過去の制度のページが根拠に出る | 除外のURLパターンは含めるほうより優先される。 過去の階層を除く |
| ページが直ったのに古い案内が出る | サイトマップの更新と索引の作り直しを、ページ更新の手順に入れる |
| 索引の方式を後から変えたくなる | 後から変えられない。 作る前に決める |
| 「もらえますか」に答えてしまう | 聞き取りの側で判断の問いを拾い、judgement_needed にする |
| 聞き取りで項目をまとめて聞く | 1回に1項目と指示する。項目は一覧表で持つ |
| 住民が氏名や住所を書き込む | 画面の注意書きと、送る前の伏せ字の両方を入れる |
| 担当課へ回る件数が多すぎる | ページの不足を月次で返す。AIの設定で答えさせようとしない |
| 動的なURLで索引が膨らむ | 検索結果のページや印刷用のURLを除く |
| 判断の範囲を総務課だけで決めてしまう | どこまで案内し、どこから担当課へ回すかは担当課と決める |
上の3行が、誤案内のほとんどです。 どれも根拠にしてよいページの範囲が崩れて起きます。範囲をURLで決め、範囲外を規則で捨てているかで、運用に乗るかが決まります。
下から3行目も早く効いてきます。 答えられない件数を減らそうと基準を下げると、第1章で閉じた範囲が崩れます。 減らす方法は、ページを直すことだけです。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 住民の書き込み(用件と状況)と、公式サイトの公開ページです。聞き取るのは状況の選択肢だけで、氏名・住所・生年月日・個人番号は入力させない設計です。
- 個人情報を入力させない注意書きを、入口と聞き取りの途中の両方に置く … 住民が事情を書きたくなる、状況を聞く場面の直前にも出します。 入力されたものは送る前に伏せ字にし、記録にも残しません
- 誤案内のリスクを前提にする … 最新の手続き情報と食い違う案内は、索引の作り直しの漏れ、ページ同士の記載の食い違い、制度の改正の直後に起きます。すべての案内に根拠のページのリンクを付け、「最新の内容は案内ページでご確認ください」と添えます
- 公式ページの更新に追随させる運用を、担当課の手順に入れる … ページを更新した担当課が、サイトマップの更新と総務課への連絡までを行う手順にします。制度の改正が多い年度替わりの前には、案内の多い手続きのページを担当課と一緒に見直します
- 個別の審査・給付の可否を判断しない … 対象になるか、いくらになるかは、本人の事情と書類で担当課が決めることです。この構成が出すのは、手続きの名称、必要なもの、窓口、受付時間までです
- 利用のガイドラインに照らしてから公開する … 総務省は「自治体におけるAI活用・導入ガイドブック<導入手順編>」の第4版で、生成AIの利用方法や利用における留意事項の記述を追加し、自治体が作成する生成AIシステム利用ガイドラインのひな形も添えています。自団体のガイドラインがあればそれに、無ければこのひな形を参考に、住民に直接出す用途として扱いを決めてください
- 検索基盤に住民の情報を入れない … 索引にするのは公開ページだけです。対話の記録を索引に加えないでください。 住民の書き込みが別の住民への回答に出る経路ができます
誤りが起きた場合のリスクは、古い・誤った案内で住民が窓口に来て手続きができないことと、判断に踏み込んだ案内で住民が誤解することの2つです。 前者は根拠の範囲と更新の手順で、後者は判断の問いを担当課へ回す規則で防ぎます。
10まず何から始めるか
1週目:出来事を1つ選び、手続きの一覧表を作る
受付簿から問い合わせの多い出来事を1つ選び、状況の条件と手続き、案内ページのURL、担当課を並べた一覧表を作ります。すべての出来事をそろえる必要はありません。転入から始めると、関係する課が多く、効果が見えやすくなります。
2週目:20件で試す
先月の問い合わせから20件を選び、手元のAIサービスに案内ページを貼り付けて答えさせます。当時の職員の案内と突き合わせ、ページに無いことを補っていないかを最優先で見ます。
3週目:案内する範囲を担当課と決める
どこまでを案内し、どこから担当課へ回すかを、担当課と決めます。 あわせて、答えられなかった手続きのページを直してもらいます。
4週目:検索基盤の索引を作る
ウェブサイトのデータストアで、手続き案内の階層だけを含め、過去の階層を除いて索引を作ります。索引の方式は後から変えられないので、サイトマップで管理する方式にするかをこの時点で決めます。 職員の画面から引いて、20件の結果と比べます。
2か月目: 職員の画面で電話・窓口の問い合わせに使い、no_source の件数を手続きごとに数えます。3か月目以降: 聞き取りと一覧表を組み込み、住民向けに公開します。月次の集計を担当課へ返し、ページを直した手続きの no_source が下がり始めた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Vertex AI Search が Agent Search へ名称変更中であること。過去の名称に Vertex AI Search、AI Applications、Agent Builder などがあること。公開Webサイトや独自データのデータストアを検索でき、検索結果にもとづく生成AIの回答を返せること | Google Cloud Docs: Overview of Agent Search | 2026-09-29 |
| 含めるサイトと除くサイトをURLパターンで指定でき、除くほうが優先されること。高度なウェブサイトの索引が要約・追加の質問への回答などの機能を提供し、追加費用とドメインの所有権の確認が要り、後から無効にできないこと。索引の方式が3つあり後から変えられないこと。自動の方式は best-effort で更新が遅れたページが残りうること。サイトマップと手動指定の方式は索引の対象を完全に制御でき、サイトマップで更新すること | Google Cloud Docs: Create a search data store(Website Content) | 2026-09-29 |
answer メソッドを1往復ごとに呼んで複数回のやり取りにできること。includeCitations で根拠を含められること。ignoreLowRelevantContent で関連性が低いとき代わりの応答を返すこと。ignoreAdversarialQuery と ignoreNonAnswerSeekingQuery があること。支持スコアが0から1の値で、基準に届いた回答だけを返せること。回答しなかった理由が answerSkippedReasons に入ること(NO_RELEVANT_CONTENT など)。preamble で回答の指示を与えられること | Google Cloud Docs: Get answers and follow-ups | 2026-09-29 |
| 「自治体におけるAI活用・導入ガイドブック<導入手順編>」第4版が令和7年12月16日に公表され、生成AIの利用方法、利活用事例、利用における留意事項の記述が追加されたこと。自治体が作成する生成AIシステム利用ガイドラインのひな形が別添として追加されたこと | 総務省: 「自治体におけるAI活用・導入ガイドブック<導入手順編>(第4版)」の公表 | 2026-09-29 |
どこまでを案内し、どこから担当課へ回すかは、各担当課と自団体の規程で決めてください。 本記事は上記のページで確認できた範囲だけを扱っています。ガイドブック本体(PDF)の個別の記述は確認していません。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0288)についてのご相談はこちらから。
