証券会社の営業員から出る商品の取扱い・勧誘のルール・手続きの質問に、社内の取扱規程と商品資料を根拠に答え、答えられないものをコンプライアンス部門に回す
支店の営業員から届く「この商品をこの区分の顧客に勧誘できるか」「どんな手続きが要るか」の照会に、社内の勧誘・取扱いの規程と商品資料から該当する条項を探し、引用付きで答えます。規程で答えられないものはコンプライアンス部門へ回します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- 金融
- 対象部門
- 営業/法務
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 判断に時間がかかる/問い合わせが多い/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 品質標準化/対応スピード向上/検索時間短縮
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 営業員がチャットか電話で、商品名と顧客の状況を窓口に伝えて聞く
- 窓口の担当が、商品の取扱い開始の通知を開き、商品のリスクの区分と勧誘の対象の区分を見る
- 勧誘・取扱いの規程と細則を開き、顧客の区分に当てはまる制限と手続きを探す
- 新しい通知で規程が変わっていないかを、通知の一覧で確かめる
- 判断に迷うものはコンプライアンス部に聞き、回答をチャットで返す
- 人営業員が照会フォームで、商品のコード、顧客の区分(年齢・投資経験・取引の目的・口座の種類)、照会の内容を入れて送る
- 自動中継プログラムが、商品のコードから商品の属性(リスクの区分、勧誘の対象の区分、取扱いの状態)を引く
- 自動規程の表(商品のリスクの区分 × 顧客の区分)から、規程上の扱い(制限なし/事前承認/確認書/勧誘しない)を引く
- 自動Agent Search(Vertex AI Search)の answer メソッドが、規程・細則・商品資料から該当する条項を探し、引用付きの回答案を返す
- 自動中継プログラムが、3番目の表の結果と回答案の引用が合っているかを確かめ、`answer`(規程で答えられる)/`escalate`(コンプライアンス部門へ)に分ける
- 自動`answer` は営業員へ返す。`escalate` はコンプライアンス部門の待ち行列に入れる
- 人コンプライアンス部門の担当が `escalate` の照会を判断し、回答する。判断は回答集に登録する
各工程の詳しい説明を読む
- 営業員がチャットか電話で、商品名と顧客の状況を窓口に伝えて聞く
- 窓口の担当が、商品の取扱い開始の通知を開き、商品のリスクの区分と勧誘の対象の区分を見る
- 勧誘・取扱いの規程と細則を開き、顧客の区分に当てはまる制限と手続きを探す
- 新しい通知で規程が変わっていないかを、通知の一覧で確かめる
- 判断に迷うものはコンプライアンス部に聞き、回答をチャットで返す
(a)照会が窓口に集中する。 規程は営業員も読めますが、商品の通知、規程、細則、最新の改正を自分でたどるのは手間がかかります。窓口に聞けば数分で返ってくるので、照会が窓口に集まり、新商品の時期には返事が半日遅れます。
(b)規程と資料を探すのに時間がかかる。 1つの照会に答えるのに、商品の通知、規程の該当条、細則、改正の通知の4つを開くことがあります。どれが最新の版かを確かめる手間が、探す時間の半分を占めます。
(c)答え方がぶれる。 同じ照会に、ある担当は「事前の承認が要る」、別の担当は「承認は不要だが確認書が要る」と答えていたことが、後のモニタリングで分かります。どちらの根拠の条項で答えたかが、チャットの記録に残っていません。
(d)顧客の個人情報がチャットに残る。 営業員が顧客の氏名や資産の額を書いて聞くため、照会の記録に、本来要らない個人情報がたまっていきます。
- 【人】 営業員が照会フォームで、商品のコード、顧客の区分(年齢・投資経験・取引の目的・口座の種類)、照会の内容を入れて送る
- 【自動】 中継プログラムが、商品のコードから商品の属性(リスクの区分、勧誘の対象の区分、取扱いの状態)を引く
- 【自動】 規程の表(商品のリスクの区分 × 顧客の区分)から、規程上の扱い(制限なし/事前承認/確認書/勧誘しない)を引く
- 【自動】 Agent Search(Vertex AI Search)の answer メソッドが、規程・細則・商品資料から該当する条項を探し、引用付きの回答案を返す
- 【自動】 中継プログラムが、3番目の表の結果と回答案の引用が合っているかを確かめ、
answer(規程で答えられる)/escalate(コンプライアンス部門へ)に分ける - 【自動】
answerは営業員へ返す。escalateはコンプライアンス部門の待ち行列に入れる - 【人】 コンプライアンス部門の担当が
escalateの照会を判断し、回答する。判断は回答集に登録する
3番目を、AIではなく表で行うのがこの設計の要です。 「この区分の顧客に、このリスクの区分の商品は事前の承認が要るか」は、規程の文から読み取れますが、AIに読ませると、例外の条項や改正の通知を取り違えます。 規程の主管部署が表に起こしておけば、値どうしで引けます。AIにさせるのは、表の結果の根拠になる条項を引用することと、表に無い問い(説明の仕方、書類、商品の仕組み)に資料から答えることです。
5番目で、表の結果と引用が食い違ったら、必ず escalate にします。 表が古いか、AIが別の条項を引いたかのどちらかで、どちらも営業員に返してはいけない状態です。
02今回想定するシステム構成
社内規程・細則・改正の通知 商品資料(取扱い開始の通知・商品説明書) 過去の回答集 │ 版と施行日を付ける │ 商品コード・取扱いの状態を付ける │ ▼ ▼ ▼ Cloud Storage ── メタデータ(JSON Lines) 規程の表(リスクの区分 × 顧客の区分) ▼ 商品の属性(データベース) Agent Search(Vertex AI Search)── データストア │ doc_kind/product_code/product_risk/effective_from/audience ▼ 照会フォーム ──【トリガー】営業員の送信 ▼ 中継プログラム(Python、Cloud Run) ├──▶ 商品の属性と規程の表を引く ├──▶ answer メソッド:条項の引用と回答案 └──▶ 表と引用の突き合わせ、answer / 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、既定は無効)、回答の文ごとに 0〜1 の根拠のスコアを返す設定、session を渡して前のやり取りを続ける機能があります。営業員が続けて聞く「では確認書はどの様式か」にも、前の照会の文脈で答えられます。
コンプライアンス部門だけが読む資料は、別のデータストアに置きます。 公式では、文書ごとに読める人を決めるデータソースのアクセス制御はプレビューで、データストアを作るときにしか有効にできず、後から切り替えられません。営業員向けとコンプライアンス部門向けの2区分なら、データストアを分けるほうが単純です。
03どうやって実装するのか
処理の起点を決める
起点は、営業員が照会フォームを送信したことです。 チャットの自由な書き込みではなく、項目の決まったフォームにします。顧客の区分を選択肢にすることで、氏名や資産の額が書かれる余地をなくします。
| フォームの項目 | 書き方 | 使い道 |
|---|---|---|
| 商品のコード | 商品の一覧から選ぶ | 商品の属性と資料の絞り込み |
| 年齢の区分 | 規程の区分の選択肢 | 規程の表 |
| 投資経験の区分 | 規程の区分の選択肢 | 規程の表 |
| 取引の目的の区分 | 規程の区分の選択肢 | 規程の表 |
| 口座の種類 | 一般/特定/NISA など | 取扱いの可否 |
| 照会の内容 | 自由記述(300字まで) | 検索の質問文 |
照会の内容の欄には、入力の時点で氏名らしい語や数字の並びを検知して警告を出します。 消してから送らせます。
もう一つのトリガーは、規程の改正と商品の取扱い開始・終了です。 規程の主管部署が改正の通知を出したら、新しい版と施行日を置き、規程の表を直します。商品部が取扱い開始の通知を出したら、商品の属性に1行足します。取り込みは毎晩まとめて行い、規程の表と商品の属性は即時に直します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 照会の内容 | フォームの6項目と、照会した営業員の所属 | 照会フォーム |
| 社内規程・細則 | 勧誘・取扱いの規程、商品の種類ごとの細則、改正の通知 | 規程の文書管理から書き出した写し |
| 商品資料 | 取扱い開始の通知、商品説明書、目論見書の要点、社内の説明の手引き | 商品資料の共有フォルダ |
| 過去の回答集 | 照会の要旨、回答、根拠の条項、答えた日、判断した部署 | 窓口のチャットから作る |
| 規程の表 | 商品のリスクの区分 × 顧客の区分ごとの扱いと根拠の条 | 規程の主管部署が作る |
| 商品の属性 | 商品のコード、リスクの区分、勧誘の対象の区分、取扱いの状態 | 商品部の一覧 |
質を決めるのは、規程の表と商品の属性です。 この2つが値でそろっていれば、照会のうち「勧誘してよい区分か、承認が要るか」の部分は、AIの読み取りに頼らずに引けます。表の各行には根拠の条番号を書かせます。 AIの引用と突き合わせるためです。
過去の回答集には、判断した部署を必ず書きます。 窓口が規程から答えたものと、コンプライアンス部門が判断したものは、同じ回答でも重みが違います。 後者は個別の事情の上での判断なので、別の照会にそのまま当てはめられないことがあります。
データの取得方法を決める
規程・細則・商品資料・回答は、1件ごとにファイルにして Cloud Storage に置きます。公式では、メタデータは JSON Lines で、1行ごとに id、structData、content(mimeType と uri)を書きます。
{"id":"rule-solicit-2026-04","structData":{"doc_kind":"rule",
"product_risk":["R4","R5"],"audience":"sales",
"effective_from":"2026-04-01T00:00:00Z","effective_to":"9999-12-31T00:00:00Z",
"article_index":["第12条","第12条の2"]},
"content":{"mimeType":"application/pdf","uri":"gs://sales-rules/rule-solicit-2026-04.pdf"}}
| 項目 | 中身 | 使い道 |
|---|---|---|
doc_kind | 規程/細則/通知/商品資料/回答 | 表示、振り分けの規則 |
product_code | 商品資料・回答の対象の商品 | 絞り込み |
product_risk | その規程・細則が対象とするリスクの区分 | 絞り込み |
effective_from/effective_to | 施行日と、改正・廃止の前日 | 効力のある版だけを引く |
audience | 営業員向け/コンプライアンス向け | データストアの振り分け |
照会のたびに、中継プログラムが絞り込みの条件を作ります。 公式の構文では、文字の項目は ANY() に並べた値のどれかと完全に一致するかを見られ、OR でつなげ、日時の項目は ISO 8601 の文字列と比べられます。
(product_code: ANY("F-20931") OR product_risk: ANY("R4"))
AND effective_from <= "2026-10-13T00:00:00Z" AND effective_to >= "2026-10-13T00:00:00Z"
商品のコードとリスクの区分を OR でつなぐのは、商品資料と規程の両方を引くためです。 商品資料は商品のコードで、規程はリスクの区分で絞れます。項目はスキーマで索引可能にしておかないと絞り込みに使えません。
AIへ渡す前に整形する
- 規程に版と施行日を付ける … 改正の通知ごとに、どの条が変わったかと施行日を書きます
- 規程の表を作る … 規程の主管部署が、リスクの区分 × 顧客の区分の扱いと根拠の条を表にします
- 商品の属性をそろえる … 取扱い開始の通知から、リスクの区分と勧誘の対象の区分を値にします。取扱いを終えた商品には終了日を入れます
- 回答集を整える … チャットの記録から照会と回答を拾い、根拠の条項と判断した部署を確かめて1件ずつ文書にします。顧客の情報は区分に置き換えます
- 照会の文の個人情報を確かめる … 送信の後にも、氏名・口座番号・電話番号らしい文字列を検知し、見つかったら検索に使わず窓口へ回します
2番目の表は、規程の主管部署が責任を持ちます。 窓口やシステムの担当が規程を読んで作ると、読み方のずれが表の値として固定されます。 改正のたびに主管部署が直し、直した日を表に残します。
AIに処理させる
させるのは、規程・細則・商品資料から該当する条項と記述を探し、引用して回答案を書くことです。
| させること | 中身 |
|---|---|
| 該当する条項を探す | 照会の商品と顧客の区分に関係する規程・細則の条 |
| 条項を引用する | 規程の名前と条番号、本文をそのまま写す |
| 手続きを並べる | 条項が求める承認・確認書・説明の手順を、規程の言葉で並べる |
| 商品資料から答える | 商品の仕組み、リスク、手数料の区分などを、商品資料から引用する |
| させないこと | 理由 |
|---|---|
| この顧客に勧誘してよいかの判断 | 適合性の当てはめは営業員と承認者が行う |
| 規程の表の扱いを読み替える | 扱いは表から引く。AIは根拠の条項を示すだけ |
| 商品の将来の値動きや利回りの見通し | 照会の回答として出してはならない |
| 規程に無いことを一般論で補う | 業界の一般的な運用で答えると、自社の規程と違うことがある |
| 顧客への説明の文言を作る | 説明に使う資料と文言は、承認された資料に限る |
3つ目を名指しで禁じるのは、営業員の照会に「この債券はおすすめか」「元本割れの可能性は低いか」が混ざるからです。 AIがそれに答えると、営業員がそのまま顧客に伝える文になります。 金融商品取引法は、不確実な事項について断定的判断を提供して勧誘する行為を禁じています。照会の回答から、その種の文が生まれないようにします。
answer メソッドの設定は次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
includeCitations | 有効 | 条項と資料に出典を付ける |
ignoreLowRelevantContent | 有効 | 関係の薄い条文で答えない |
ignoreAdversarialQuery | 有効 | 規程の抜け道を探すような問いに答えない |
filter | 商品のコード、リスクの区分、効力のある版 | その商品と区分に関係する文書だけを引く |
includeGroundingSupports | 有効 | 根拠の弱い文に印を付ける |
session | 同じ営業員の続けての照会 | 前の照会の文脈で答える |
preamble | 下の指示 | 答え方の規則を与える |
指示内容を固定する
answer メソッドの preamble に、次の指示を入れます。
あなたは証券会社の営業推進部の照会窓口として、支店の営業員からの
商品の取扱い・勧誘の規程・手続きの照会に、社内の規程と商品資料を
根拠に回答案を作る立場です。読むのは支店の営業員です。
【前提】
検索の文の最初に、商品のコード、商品のリスクの区分、
顧客の年齢・投資経験・取引の目的の区分、口座の種類が並んでいます。
「規程の表の扱い」として、事前承認・確認書などの扱いが並んでいます。
【答え方】
1. 規程の表の扱いの根拠になる規程・細則の条を、名前と条番号を付けて
本文のまま引用してください。
2. その条が求める手続き(承認、確認書、説明)を、規程の言葉で
順に並べてください。
3. 照会に商品の仕組みやリスクの質問があれば、商品資料から引用して
答えてください。
4. 引用した条が、規程の表の扱いと合わないと思われるときは、
そのことを書いてください。
【厳守事項】
- この顧客に勧誘してよい、勧誘しないほうがよいと書かないでください。
- 規程の表の扱いを、別の扱いに読み替えないでください。
- 値動き、利回り、元本割れの可能性の見通しを書かないでください。
「安全」「おすすめ」「低リスク」と書かないでください。
- 検索結果に無い規程、他社や業界一般の運用で補わないでください。
- 顧客への説明の文言を作らないでください。
- 該当する条が見つからないときは、
「該当する規程は見つかりませんでした。コンプライアンス部門が
確認します」とだけ書いてください。
「規程の表の扱いを読み替えない」と「合わないと思われるときは書く」を両方入れているのが要です。 前者だけだと、表が古いときにAIは古い扱いの根拠を無理に探します。後者があれば、表と規程の食い違いが照会のたびに見つかり、表の直し漏れを拾えます。
「安全」「おすすめ」を名指しで禁じるのは、商品資料にそれに近い語があるからです。 商品説明書の「相対的に価格変動が小さい」を、AIは「低リスク」と要約したがります。
出力形式を固定する
answer メソッドの返り値と規程の表の結果を、中継プログラムが次の形にまとめます。
{
"inquiry_id": "",
"product_code": "",
"product_risk": "",
"customer_class": { "age": "", "experience": "", "purpose": "", "account": "" },
"rule_table": { "treatment": "none | pre_approval | confirmation | no_solicit",
"basis_article": "", "table_version": "" },
"citations": [
{ "doc_kind": "rule | detail | notice | product | answer",
"title": "", "article": "", "quote": "", "effective_from": "", "uri": "" }
],
"procedures": [],
"answer_text": "",
"route": "answer | escalate",
"escalate_reason": []
}
citations は、answer メソッドの references から取ります。公式では、citations の sources が referenceId で references を指し、references の chunkInfo に本文の断片と文書のメタデータが入ります。引用の位置(startIndex/endIndex)は UTF-8 のバイト数なので、日本語の文を文字数で切るとずれます。
route は次の規則で決めます。
escalate_reason | 立てる条件 |
|---|---|
article_mismatch | citations の条番号に、rule_table.basis_article が無い |
no_solicit | 規程の表の扱いが「勧誘しない」 |
product_ended | 商品の取扱いの状態が終了・停止 |
no_citation | 該当する条が見つからない、または answerSkippedReasons が返った |
banned_words | 回答案に「安全」「おすすめ」「勧誘できます」などの語がある |
answer_only_basis | 根拠が過去の回答だけで、規程・細則の引用が無い |
どれにも当たらないものだけが answer です。 JSONにする理由は、この振り分けを規則で行うためです。特に article_mismatch は、表の条番号と引用の条番号を値で比べなければ見つけられません。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 照会フォーム | フォームの送信を中継プログラムが受ける | 6項目を受け取る |
| 商品の属性・規程の表 | データベースの読み出し | 区分と扱いを引く |
| Agent Search(営業員向け) | answer メソッド | 条項の引用と回答案 |
| Agent Search(コンプライアンス向け) | 担当者の検索画面 | 判断の材料を探す |
| 社内のチャット | メッセージの送信 | answer の回答を営業員へ返す |
| コンプライアンス部門の待ち行列 | 共有の一覧に1行足す | escalate の照会を回す |
待ち行列の1行には、照会の内容、規程の表の結果、引用、escalate_reason を付けます。 担当は、探すところからではなく、判断するところから始められます。
顧客管理システムにも承認の手順にも書き込みません。 回答に「事前の承認が要る」とあれば、営業員がいつもの手順で承認を申請します。
人が確認する
人が確認するのは escalate の照会です。 answer の回答は営業員へ直接返しますが、運用を始めてから2か月は、全件を窓口の担当が見てから返します。
escalate_reasonを見る … 表と引用の食い違いか、勧誘しない区分か、禁止の語かを確かめます- 規程を確かめて判断する … 食い違いなら、表と規程のどちらが正しいかを規程の主管部署に確かめます
- 回答し、回答集に登録する … 根拠の条項と判断した部署を付けます
- 表を直す … 表の誤りが分かったら、主管部署が直し、直した日を残します
2か月の全件確認で見るのは、answer で返したもののうち、窓口が見れば escalate にしたものが無いかです。 1割を超えるなら、answer の直接の返信を始めません。
目標は、400件をならして1件3分です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 照会の文に氏名・口座番号らしい文字列がある | 検索に使わず窓口へ回し、営業員に書き直しを頼む |
| 商品のコードが一覧に無い | 取扱い前か誤入力。escalate にして商品部に確かめる |
| 規程の表に無い区分の組み合わせ | 扱いを空にして escalate |
| 改正の施行日の前後で扱いが変わる | 照会の日に効力のある版で答え、施行日と変わる点を添える |
| 回答に禁止の語が入った | 返さず escalate。文言を記録する |
| 続けての照会で別の商品に話が移った | session を切り、新しい照会として絞り込みを作り直す |
| 検索の呼び出しが失敗した | 「受け付けました。窓口から返します」と返し、待ち行列へ |
5行目の禁止の語の検知は、プロンプトとは別に、中継プログラムの文字列の照合で行います。 プロンプトで禁じても、言い換えて書くことがあります。最後の門は機械の照合に置きます。
6行目を忘れやすいので注意してください。 session を続けたまま別の商品の話を聞くと、前の商品の絞り込みと文脈で答えます。
記録を残す
- 照会の内容(6項目)、照会した営業員の所属、日時
- answer メソッドへの要求(絞り込みの条件、
preambleの版)と返り値の全文 - 規程の表の結果と、そのときの表の版
routeとescalate_reason、担当の判断と根拠- 営業員へ返した回答と、返した日時
表の版を残すのは、後のモニタリングや検査で回答の根拠を問われたときのためです。 その日の表と規程の版で答えたことを示せないと、回答の正しさを確かめられません。
04実装レベルの3段階
半自動化で、9分が5分程度になります。 探す時間は減りますが、窓口が全件を読み、商品の区分を確かめて返す作業が残ります。本格構成で3分になり、この段階が本記事の想定です。 差が大きいのは、answer の照会に窓口の手がかからなくなることと、商品の区分と規程の扱いを表で引けることです。
05工数削減シミュレーション
導入後 400件 × 3分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 支店の営業員が数百名いて、投資信託・債券・仕組債・外国株などの取扱商品が多く、商品ごとの勧誘の制限や事前の承認・確認書の手続きが社内規程で細かく決まっている証券会社。営業員からの「勧誘してよいか、何が要るか」の照会が営業推進やコンプライアンスの窓口に毎月数百件届き、規程と商品資料を探して答える時間が窓口を圧迫している場合。
- 取扱商品が少なく、勧誘の制限が単純で、営業員が規程を覚えていられる場合。特定の顧客に勧誘してよいかの判断(適合性の判断)そのものをAIに任せたい場合(判断は営業員と承認者・コンプライアンス部門が行い、この構成は規程と商品資料の該当箇所を示すだけです)。社内規程と商品資料の最新の版を一か所に集められない場合。
07最小構成で試す方法
- 照会の多い商品の種類(例:仕組債と外国株)について、規程・細則・取扱い開始の通知を書き出す
- 過去3か月のチャットから、照会と回答を20件拾う(勧誘しない区分の例、承認が要る例を数件入れる)
- 手元のAIサービスに規程と通知を貼り、顧客の情報を区分に置き換えた照会を1件ずつ入れる
- 第7章の指示を貼り、「条項を引用し、勧誘してよいかを書かず、見通しを書かない」と指示する
- 出てきた回答案を、当時の窓口の回答と突き合わせる
| 出てきた内容 | 判断 |
|---|---|
| 当時の窓口と同じ条項と手続きを挙げた | 規程の表と検索基盤の構築に進む |
| 「勧誘できます」「低リスク」と書いた | 指示で直るか試す。直らなければ禁止の語の照合を最初から作る |
| 改正前の条項で答えた | 版と施行日の管理が先 |
3行目が出ることは珍しくありません。 失敗ではなく、規程の改正の通知が本体に反映されていないことが分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 回答が「勧誘できます」と読める文になる | 指示で禁じ、中継プログラムでも禁止の語を照合する |
| 規程の表と引用の条が食い違う | article_mismatch で必ず escalate にし、表を直す |
| 改正前の条項で答える | 施行日で効力のある版だけを引く |
| 照会に顧客の個人情報が書かれる | 区分の選択肢のフォームにし、入力時と送信後に検知する |
| 商品資料の表現が「低リスク」に要約される | 語を名指しで禁じ、引用は原文のまま |
session で前の商品の文脈が残る | 商品のコードが変わったら session を切る |
| 取扱いを終えた商品の資料で答える | 商品の属性の終了日で product_ended を立てる |
| コンプライアンス向けの資料が営業員に届く | データストアを分ける |
| 項目で絞り込めない | スキーマで項目を索引可能にする |
上の2行が、この構成の失敗のほとんどです。 前者は勧誘の根拠になる一文、後者は誤った手続きの案内で、どちらも顧客の保護に直接かかわる誤りです。 AIの外の表と照合で守ります。
4行目の個人情報は、運用が始まってから効いてきます。 フォームを区分の選択肢にしても、照会の内容の欄に「先日お電話した○○様の件で」と書く営業員は必ず出ます。入力の時点の警告と、送信後の検知の2段にしておけば、検索にも記録にも残りません。 検知の語の一覧は、最初の1か月で窓口に回ってきた照会を見て足していきます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 社内の勧誘・取扱いの規程、商品資料、過去の照会と回答、営業員が入れる顧客の区分です。顧客の氏名・口座番号・資産の額は扱わない設計にします。
- 顧客の個人情報を受け取らない … 区分の選択肢のフォームにし、自由記述の欄は検知で守ります。照会の記録に顧客の情報がたまらないことが、この構成の前提です
- 適合性の判断をさせない … 金融商品取引法は、顧客の知識・経験・財産の状況・契約の目的に照らして不適当な勧誘で投資者の保護に欠けることのないよう求めています。当てはめは営業員と承認者が行い、この構成は規程の条項を示すだけです
- 断定的な判断の材料を作らない … 見通しや「安全」の語を禁じ、機械でも照合します
- 回答の記録を残す … 照会、表の版、引用、回答を、後のモニタリングで確かめられる形で残します
- 資料の見せる範囲を分ける … コンプライアンス部門の判断の記録や検査の資料は、営業員向けのデータストアに入れません
- データの置き場所を確かめる … 社内規程と照会の記録を外部のクラウドに置くことになります。データストアを作るリージョンと、社内の情報管理の規程、外部委託の管理の手順を合わせて確かめてください
誤りが起きた場合のリスクは、規程の手続きを欠いた勧誘が行われることと、回答の一文が勧誘の根拠や顧客への説明として使われることです。 どちらも、表と照合と振り分けで、AIの回答がそのまま判断にならないようにします。
10まず何から始めるか
1週目:規程の主管部署と表の形を決める
商品のリスクの区分、顧客の区分(年齢・投資経験・取引の目的)、扱い(制限なし/事前承認/確認書/勧誘しない)、根拠の条の列を決めます。区分の語は規程の語に合わせます。
2週目:20件の照会で試す
仕組債と外国株の規程と通知を手元のAIサービスに貼り、区分に置き換えた過去の照会20件を入れます。「勧誘できます」「低リスク」と書いていないかを最優先で見ます。
3週目:規程の表と商品の属性を作る
規程の主管部署が2つの商品の種類について表を作り、商品部が商品の属性を値にします。
4週目:データストアを作り、窓口で使う
規程・細則・商品資料・回答集を取り込み、窓口の担当が検索画面で照会を入れて回答案を見る運用を始めます。
2か月目: 照会フォーム、表の引き当て、突き合わせ、禁止の語の照合を作り、全件を窓口が見てから返します。3か月目以降: answer の中に窓口が escalate にしたものが1割未満になったら、answer の直接の返信を始め、商品の種類を広げます。規程の改正のたびに表が同じ日に直る手順ができた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称中であること。answer メソッドが検索の結果から回答を作り、session で前のやり取りを続けられること。includeCitations が既定で無効であること。ignoreAdversarialQuery・ignoreLowRelevantContent、preamble、検索の指定の filter。includeGroundingSupports で文ごとに 0〜1 の根拠のスコアが返ること。answerSkippedReasons。引用の startIndex/endIndex が UTF-8 のバイト単位であること。references の chunkInfo | Google Cloud: Get answers and follow-ups | 2026-10-13 |
絞り込みの ANY() が列挙した値との完全一致を見ること、AND/OR、日時の項目を ISO 8601 の文字列と比べられること、項目を索引可能にする必要があること | Google Cloud: Filter custom search for structured or unstructured data | 2026-10-13 |
| データソースのアクセス制御がプレビューであること。データストアの作成時にしか有効にできず、後から切り替えられないこと | Google Cloud: Set up data source access control | 2026-10-13 |
非構造化データの対応形式。メタデータを JSON Lines で id・structData・content(mimeType・uri)として書くこと | Google Cloud: Prepare data for ingesting | 2026-10-13 |
| 金融商品取引法第40条(顧客の知識、経験、財産の状況及び契約を締結する目的に照らして不適当な勧誘を行って投資者の保護に欠けることのないよう業務を行うこと)、第38条第2号(不確実な事項について断定的判断を提供して勧誘する行為の禁止) | e-Gov 法令API: 金融商品取引法 | 2026-10-13 |
勧誘の可否、承認、顧客への説明は、自社の規程とコンプライアンス部門の判断に従ってください。 本記事は Google Cloud の公式ドキュメントと e-Gov の法令データで確認できた範囲だけを扱っており、業界団体の自主規制規則の個別の条項は扱っていません。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1404)についてのご相談はこちらから。
