損害保険の代理店で事故の連絡を受けたときに、過去の事故対応の記録から似た事故の経過・必要書類・お客さまへの説明を探して担当者に返す
代理店がお客さまから事故の連絡を受けたときに、受付メモをもとに過去の事故対応の記録から似た事故を探します。その事故がどう進んだか、どの書類が要ったか、お客さまに何をどう説明したかを、根拠の記録付きで担当者に返します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- 保険/金融
- 対象部門
- カスタマーサポート/営業
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 属人化している/引き継ぎができていない/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/属人化解消/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- お客さまから事故の連絡を受け、日時・場所・状況・相手・けがの有無を聞いて受付メモに書く
- 顧客管理システムで契約を確かめ、どの保険会社のどの契約かを特定する
- 保険会社の代理店向けシステムまたは電話で事故を報告する
- 似た事故の対応を思い出すか、隣の席のベテランに聞く。 分からなければ過去の対応メモを顧客名で当てずっぽうに開く
- 保険会社の手引を開き、その事故の種類で求められる書類を確かめる
- お客さまに、このあとの流れ、用意してもらう書類、保険会社から来る連絡を説明する
- 説明した内容と次にやることを対応メモに書く
- 人お客さまから事故の連絡を受け、受付メモを書く(これまでどおり)
- 人契約を確かめ、保険会社へ事故を報告する(これまでどおり)
- 自動受付メモの保存をきっかけに、保険会社・保険の種類・事故の型を添えて検索を始める
- 自動受付メモから氏名・電話番号・証券番号・車両の登録番号を伏せた検索文を作る
- 自動同じ保険会社・同じ保険の種類の過去の記録に絞り、言葉の一致と意味の近さの両方で似た事故を探す
- 自動上位の記録を生成AIに渡し、経過・必要書類・お客さまへの説明を、記録の引用付きでまとめさせる
- 自動記録の日付が古いもの、保険会社の手引が改訂されたあとの事故が無いものに印を付ける
- 人担当者がまとめと引用元の記録を読み、必要書類は保険会社の現在の手引で確かめる
- 人お客さまに今後の流れと書類を説明する
- 人説明した内容と次にやることを対応メモに書く。参考にした記録の番号も残す
- 自動事故対応が完了したら、その記録を整えて検索の対象に加える
各工程の詳しい説明を読む
- お客さまから事故の連絡を受け、日時・場所・状況・相手・けがの有無を聞いて受付メモに書く
- 顧客管理システムで契約を確かめ、どの保険会社のどの契約かを特定する
- 保険会社の代理店向けシステムまたは電話で事故を報告する
- 似た事故の対応を思い出すか、隣の席のベテランに聞く。 分からなければ過去の対応メモを顧客名で当てずっぽうに開く
- 保険会社の手引を開き、その事故の種類で求められる書類を確かめる
- お客さまに、このあとの流れ、用意してもらう書類、保険会社から来る連絡を説明する
- 説明した内容と次にやることを対応メモに書く
(a)似た事故が見つからない。 顧客管理システムは顧客名と証券番号でしか引けないため、「似た事故」から記録をたどる道がありません。 4番目は、結局ベテランの記憶か、担当者自身の経験に頼っています。
(b)ベテランが席にいないと止まる。 隣の席に聞ける時間帯はよくても、支店で1人で受けている時間や、事故が重なる台風のあとは聞く相手がいません。同じ種類の事故でも、受けた人と時間帯によって説明の中身が変わります。
(c)担当が替わると見通しが引き継がれない。 途中で担当が替わると、新しい担当は「この先どうなりそうか」を自分で組み立て直します。
(d)保険会社ごとの違いが混ざる。 4社の手引は書類の名前も流れも違い、他社の経験から話すと要らない書類を頼んでしまいます。
- 【人】 お客さまから事故の連絡を受け、受付メモを書く(これまでどおり)
- 【人】 契約を確かめ、保険会社へ事故を報告する(これまでどおり)
- 【自動】 受付メモの保存をきっかけに、保険会社・保険の種類・事故の型を添えて検索を始める
- 【自動】 受付メモから氏名・電話番号・証券番号・車両の登録番号を伏せた検索文を作る
- 【自動】 同じ保険会社・同じ保険の種類の過去の記録に絞り、言葉の一致と意味の近さの両方で似た事故を探す
- 【自動】 上位の記録を生成AIに渡し、経過・必要書類・お客さまへの説明を、記録の引用付きでまとめさせる
- 【自動】 記録の日付が古いもの、保険会社の手引が改訂されたあとの事故が無いものに印を付ける
- 【人】 担当者がまとめと引用元の記録を読み、必要書類は保険会社の現在の手引で確かめる
- 【人】 お客さまに今後の流れと書類を説明する
- 【人】 説明した内容と次にやることを対応メモに書く。参考にした記録の番号も残す
- 【自動】 事故対応が完了したら、その記録を整えて検索の対象に加える
8番目が、この設計の分かれ目です。 まとめに出てくる書類の一覧は、過去にその事故で要った書類であって、いまの手引が求める書類ではありません。手引は改訂されます。過去の記録は「何が起きうるか」の見通しに使い、書類の最終の確認は手引で行う、という役割分担を崩さないでください。
02今回想定するシステム構成
【取り込み】顧客管理システム(事故対応の完了) ▼【トリガー】対応状況が「完了」になる(夜間にまとめて) AWS Lambda ── 対応メモを取り出し、氏名・電話・証券番号を伏せる ▼ Claude(Amazon Bedrock)── 経過・必要だった書類・説明の要点に分けて整える ▼【人】記録を閉じた担当者が整えた内容を確かめる Amazon OpenSearch Service ├── 取り込みのパイプライン:埋め込みを作って保存(Bedrock の埋め込みモデルへのコネクタ) └── 索引:保険会社・保険の種類・事故の型・完了日・本文・ベクトル 【検索】受付メモの保存 ▼ Amazon OpenSearch Service ├── hybrid クエリ:言葉の一致(match)+意味の近さ(neural) ├── filter:保険会社・保険の種類・完了日の範囲 └── 検索パイプライン:normalization-processor で点数をそろえて合算 ▼ Claude(Amazon Bedrock)── 検索結果のブロックで渡し、引用付きでまとめる ▼ 担当者の画面(まとめ+引用元の記録)── 【人】手引で書類を確かめて説明
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service(hybrid クエリと normalization-processor、細かなアクセス制御) | Azure AI Search、Vertex AI Search(Agent Search) |
| 埋め込み | Amazon Bedrock の埋め込みモデル(ML コネクタ経由) | Cohere Embed v4、OpenAI の埋め込みモデル |
| 生成AI | Claude(Amazon Bedrock。記録の整理と検索結果のまとめ) | Gemini API、OpenAI API |
| 連携 | AWS Lambda(取り込み、伏せ字、検索の呼び出し、画面への返却) | AWS Step Functions |
| 保管 | Amazon S3(伏せたあとの記録の写しと、保険会社の手引) | 既存のファイルサーバー |
| 顧客管理 | 既存の顧客管理システム | ― |
この構成の中心は、OpenSearch の hybrid クエリです。 公開されているドキュメントでは、hybrid クエリは複数の句の点数を合わせて1つの点数にするもので、合わせ方は検索パイプラインで決めます。句は5つまでです。
絞り込みは filter で、すべての句にかかります。 条件が複数あるときは bool クエリにまとめます。言葉の句にも意味の句にも同じ絞り込みがかかるのが、この構成で使う理由です。
点数のそろえ方は、normalization-processor です。 句ごとに点数を独立にそろえてから合わせ、既定は min_max と arithmetic_mean、句ごとの重みは0.0〜1.0で合計1.0です。そろえずに足すと、点数の桁の大きいほうだけで順位が決まります。
組み方は、取り込みのパイプラインの text_embedding で埋め込みを作り、knn_vector の項目に入れる形です(ハイブリッド検索の導入はバージョン2.11)。
埋め込みは、Bedrock のモデルを OpenSearch の ML コネクタから呼びます。 Amazon OpenSearch Service のドキュメントでは、コネクタを作れる先に Amazon Bedrock と Amazon SageMaker AI が挙がっており、IAM ロールを用意してコネクタを作ります。意味の検索に使うモデルとして登録するときは model_config を付ける必要があり、無いと索引の作成で失敗するとされています。
03どうやって実装するのか
処理の起点を決める
検索は、受付メモが保存されたときに動かします。 事務担当が事故の聞き取りを終えて受付メモを保存し、保険会社への報告を済ませるころには、画面の横に似た事故のまとめが出ている、という流れです。担当者が「検索する」と思い立つ前に出ていることが大事で、検索の画面を別に開かせると、忙しい時間ほど使われません。
保存のたびに動かすと、書きかけで保存したメモでも検索が走ります。そこで、保険会社と保険の種類と事故の型の3つが入っていないメモでは検索しません。 3つがそろった時点で初めて動きます。後から受付メモを書き足したときは、事故の型が変わったときだけ検索し直します。
取り込みは、事故対応が「完了」になった記録を夜間にまとめて行います。 対応中の記録は経過が途中で、必要だった書類もそろっていません。途中の記録を混ぜると、「このあと何が起きるか」の見通しが短く出ます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 受付メモ | 事故の日時・場所・状況・相手の有無・けがの有無・お客さまの不安 | 顧客管理システム |
| 契約の区分 | 保険会社、保険の種類、事故の型(担当者が選ぶ) | 顧客管理システム |
| 過去の事故対応の記録 | 経過のメモ、必要だった書類、お客さまへの説明、完了日、対応した支店 | 顧客管理システム(完了したもの) |
| 保険会社の手引の改訂日 | 保険会社ごと・保険の種類ごとの、事故の手続きの手引の最終改訂日 | 共有フォルダの手引から人が登録 |
| 事故の型の一覧 | 「車両の物損・相手あり」「水濡れ・上の階から」など代理店で決めた分類 | 代理店で用意する一覧 |
質を決めるのは、下の2つです。 事故の型の一覧が無いと、検索を保険会社と保険の種類でしか絞れず、自動車保険の中で物損と人身が混ざって出てきます。 手引の改訂日が無いと、改訂前の事故の記録を、いまの書類の根拠のように読んでしまいます。
お客さまの不安は、受付メモに1行で書いてもらいます。 「修理の間の代車が要るか」「相手の連絡先が分からない」「下の階に謝りに行くべきか」。似た事故の記録の中で、同じ不安にどう答えたかを探すための手がかりになります。
データの取得方法を決める
顧客管理システムから、完了日・保険会社・保険の種類・事故の型・対応メモの全文を書き出します。API があればそれを使い、無ければ夜間のCSVの書き出しを Lambda が読みます。取り込みの単位は1件の事故です。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 対応メモの全文 | 顧客管理システム | 経過・書類・説明に分けて索引に入れる |
| 保険会社・保険の種類・事故の型 | 顧客管理システムの項目 | filter の条件 |
| 完了日 | 顧客管理システムの項目 | 手引の改訂日との比較と、期間の絞り込み |
| 対応した支店 | 顧客管理システムの項目 | 細かなアクセス制御の条件 |
索引には、伏せたあとの文章だけを入れます。 氏名、電話番号、住所の番地、証券番号、車両の登録番号、相手方の名前は、取り込みの前に伏せます。探したいのは事故の中身で、誰の事故かではありません。 元の記録は顧客管理システムにあり、記録の番号から人がたどれれば足ります。
AIへ渡す前に整形する
- 伏せ字 … 氏名、電話番号、メールアドレス、住所の番地、証券番号、車両の登録番号、相手方の名前を、規則(正規表現と顧客マスタの照合)で
[氏名]のような記号に置き換えます - 記録の整理 … Claude に対応メモを読ませ、「経過」「必要だった書類」「お客さまへの説明」「お客さまの不安と答え」の4つに分けさせます
- 人による確認 … 整理した内容を、記録を閉じた担当者が確かめます。確定するまで索引には入れません
- 埋め込みの作成 … 取り込みのパイプラインで、「事故の状況」と「経過」の文から埋め込みを作ります
- 項目の付与 … 保険会社・保険の種類・事故の型・完了日・支店を項目として入れます
- 手引の改訂日との比較 … 完了日がその保険会社の手引の最終改訂日より前なら
before_revision: trueを付けます
2番目と3番目を分けているのは、整理の誤りが検索の質にそのまま出るからです。 例えば「代車の手配をした」を「必要だった書類」の欄に入れてしまうと、書類を探す人に代車の話が出ます。記録を閉じた担当者が、そのときの経過を一番よく覚えています。 確認は1件1分程度で、完了の処理の一部にします。
1番目は規則でやり、AIに任せません。 伏せ漏れはそのまま索引に残り、他の支店の担当者にも見えます。漏れても気づける仕組みとして、伏せたあとの文に電話番号や証券番号の形が残っていないかを、もう一度規則で確かめます。
AIに処理させる
AIにさせることは2つの場面に分かれます。 取り込みのときの記録の整理と、検索のときのまとめです。
| 場面 | させること | させないこと |
|---|---|---|
| 取り込み | 対応メモを4つの欄に分ける。書かれていないことは空欄にする | 書かれていない経過を補う、書類の名前を言い換える |
| 検索 | 上位の記録から、経過の流れ・必要だった書類・説明の要点をまとめる。どの記録から取ったかを引用で示す | 支払の可否や金額の見込み、記録に無い書類の追加、保険会社の手引の内容を記憶から書くこと |
検索のときのまとめは、次の4つです。
- 経過の流れ … 似た事故で、報告のあと何がどの順に起きたか(修理工場の見積、保険会社の担当の決定、相手方との連絡、書類の回収、完了まで)
- 必要だった書類 … 似た事故で実際に回収した書類。「手引で確認すること」を必ず添える
- お客さまへの説明の要点 … 似た事故で、担当者が最初に何を伝え、どこで質問が出たか
- 違いの指摘 … 上位の記録どうしで経過が分かれている箇所と、その分かれ目になった事情
4つ目がいちばん役に立つことが多い項目です。 似た事故でも、相手がいたかどうか、けががあったか、修理か買い替えかで経過が分かれます。「この事故はどちらに当たりそうか」を担当者が考える材料になります。
させないことの中で、いちばん起きやすいのは支払の見込みです。 過去の記録には「全額支払われた」「一部のみ」と書かれていることがあり、まとめに写すと、担当者がそのままお客さまに伝えかねません。支払の結果はまとめに出さず、経過の一部として「保険会社の判断が出た」とだけ書かせます。
指示内容を固定する
あなたは損害保険の代理店で、事故の連絡を受けた事務担当を手伝う立場です。
下の「似た過去の事故対応の記録」だけを根拠に、今回の事故の参考になる点を
まとめてください。記録に書かれていないことは書かないでください。
【今回の事故】
保険会社:{insurer} 保険の種類:{line} 事故の型:{accident_type}
受付メモ(伏せ字済み):{intake_memo}
お客さまの不安:{customer_concern}
【まとめる項目】
1. 経過の流れ:似た事故で、報告のあと何がどの順に起きたか
2. 必要だった書類:似た事故で実際に回収した書類。
各書類の後ろに必ず「(保険会社の現在の手引で確認)」と付ける
3. お客さまへの説明の要点:最初に何を伝えたか、どこで質問が出たか、
お客さまの不安にどう答えたか
4. 違いの指摘:記録どうしで経過が分かれている箇所と、その事情
【厳守事項】
- 保険金が支払われるか、いくら支払われるかの見込みを書かないでください。
記録に支払の結果が書かれていても、まとめには写さないでください。
- 記録に無い書類を、一般的に必要そうだという理由で足さないでください。
- 保険会社の手引の内容を、あなたの知識から書かないでください。
- 過失の割合や責任の有無について書かないでください。
- 記録が1件しか当たらない項目は、「1件のみ」と明記してください。
- 記録のどれにも書かれていない項目は「該当する記録なし」と書いてください。
- 今回の事故と記録の事故で、相手の有無・けがの有無が違う場合は、
その違いを先頭に書いてください。
検索で当たった記録は、検索結果のブロック(type: "search_result"、source に記録の番号、title に事故の型と完了月、content に4つの欄)として渡します。
「記録に無い書類を足さない」を明記しないと、一般的な書類を補ってきます。 自動車の物損なら「修理見積書、事故証明書、写真」と、それらしく並べます。どれも正しそうに見えるのが問題です。 保険会社によって、また事故の型によって要らないものがあり、要らない書類を頼まれたお客さまは手間をかけたうえに代理店への信頼を下げます。
「支払の結果を写さない」は、厳守事項の1行目に置きます。 担当者が読む画面にある以上、いつかお客さまへの説明に混ざります。代理店は支払を約束する立場にありません。
出力形式を固定する
引用付きの文章で受け取り、プログラムで4つの欄に振り分けて画面に出します。
Claude の検索結果のブロックを使うと、回答の文に、どの検索結果のどのブロックから取ったかの引用が付きます。 引用は search_result_location という形で返り、source・title・cited_text(引用したブロックの文)・start_block_index と end_block_index(content の中の位置)を持ちます。記録の4つの欄をそれぞれ別のブロックにして渡せば、「経過」から取ったのか「必要だった書類」から取ったのかまで分かります。
画面に出す形は次のとおりです。
{
"query_id": "Q-2026-10-0412",
"filters": { "insurer": "A社", "line": "自動車", "accident_type": "車両の物損・相手あり" },
"hits": [
{ "record_id": "J-2025-0731", "closed": "2025-09", "score": 0.82,
"before_revision": false }
],
"summary": {
"timeline": [ { "text": "", "cites": ["J-2025-0731#0"] } ],
"documents": [ { "text": "", "cites": ["J-2025-0731#1"], "note": "保険会社の現在の手引で確認" } ],
"explanation": [ { "text": "", "cites": ["J-2024-1102#2"] } ],
"differences": [ { "text": "", "cites": ["J-2025-0731#0", "J-2024-1102#0"] } ]
},
"flags": ["single_record_only", "before_revision"]
}
1つ目の理由は、引用の無い文を画面で見分けられることです。 まとめの文に引用が付いていなければ、記録から取っていない文です。cites が空の文は灰色で出し、説明に使わない運用にします。
2つ目は、before_revision を書類の欄に結び付けられることです。 引用元の記録が手引の改訂より前なら、その書類の行に印を出します。担当者が手引を開く理由が、画面の上で見えます。
なお、Claude API では引用(Citations)と構造化出力は一緒に使えません。 そのため、JSON の形はプログラムの側で組み立てます。引用の有効・無効は、1回の依頼の中のすべての検索結果でそろえる必要があることにも注意します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 顧客管理システム | API または夜間のCSV | 完了した記録の取り出しと、受付メモの保存の検知 |
| Amazon OpenSearch Service | 検索の API | 取り込み(パイプライン付き)と hybrid クエリ |
| Amazon Bedrock(埋め込み) | OpenSearch の ML コネクタ | 取り込み時と検索時の埋め込み |
| Claude(Amazon Bedrock) | Lambda から呼び出し | 記録の整理と、検索結果のまとめ |
| 担当者の画面 | 顧客管理システムの横に出す小さな画面 | まとめと引用元の記録の表示 |
検索パイプラインは次のように作ります。重みは言葉の句0.4、意味の句0.6から始め、第14章の試しで直します。
PUT /_search/pipeline/accident-hybrid
{
"phase_results_processors": [
{ "normalization-processor": {
"normalization": { "technique": "min_max" },
"combination": { "technique": "arithmetic_mean",
"parameters": { "weights": [0.4, 0.6] } } } }
]
}
検索は、filter に保険会社・保険の種類・事故の型・完了日の範囲を bool でまとめ、queries に match(受付メモの文)と neural(同じ文から作る埋め込み)を並べます。hybrid クエリは問い合わせの一番外側に置く必要があり、function_score などの中には入れられません。新しい記録を少し上げたいときも、点数の関数ではなく完了日の範囲の絞り込みで扱います。
人が確認する
人が確認するのは、取り込みの整理と、検索のまとめの2か所です。
- 取り込み … 記録を閉じた担当者が、4つの欄の振り分けを確かめます。確定するまで索引に入れません
- 検索のまとめ … 担当者が、まとめと引用元の記録を読みます。引用の無い文は使いません
- 必要書類 … 保険会社の現在の手引で確かめます。
before_revisionの印があるものは必ず - お客さまへの説明 … まとめをそのまま読み上げず、今回の事故との違い(相手の有無、けがの有無)を考えて話します
- 参考にした記録の番号を残す … 対応メモに記録の番号を書きます
3番目を省かないでください。 過去の記録の書類は、その時点の手引に基づいています。改訂のあとに同じ書類を頼むと、要らない書類を集めさせるか、足りない書類で手続きが止まります。 どちらもお客さまの手間になります。
目標は、1件の調べものを8分にすることです。 内訳は、まとめと引用元を読むのに4分、手引で書類を確かめるのに2分、説明の組み立てに2分です。8分を超える事故が続くなら、事故の型の一覧が粗いか、記録の整理が足りません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 似た記録が1件も当たらない | 「該当する記録なし」と出し、ベテランへの相談を促す。事故の型を広げて自動で探し直さない |
| 当たったが点数が低い | 上位の点数がしきい値を下回るときは「参考程度」と表示し、まとめを出さない |
| 記録が1件しかない | single_record_only の印を出し、その1件の事情が今回にも当てはまるかを担当者が考える |
| 引用元が全部、手引の改訂より前 | 書類の欄を出さず、「手引で確認」だけを出す |
| 保険会社が契約から特定できない | 検索しない。他社の記録で代わりにしない |
| 人身事故・死亡事故 | 検索はするが、まとめは経過だけにし、説明の要点は出さない。責任者が対応する |
| 受付メモに伏せ字の漏れ | 検索の前に規則で検知し、伏せ直してから検索する |
| Bedrock・OpenSearch が応答しない | まとめを出さず、従来どおりの調べものに戻る。受付と報告は止めない |
上から3行目までが、運用を始めた直後に多い例外です。 記録の取り込みが進むまでは、珍しい事故の型では当たりが少なく出ます。そこで AI に一般論で埋めさせないことが、この構成の要です。
6行目の人身事故は、検索を止めはしませんが説明の要点を出しません。 けがをされたお客さまへの説明は、過去の言い回しを借りるべき場面ではないからです。
記録を残す
- 検索ごとの記録:検索の番号、日時、担当者、絞り込みの条件、伏せ字済みの検索文
- 当たった記録の番号と点数、
before_revisionの有無 - Claude に渡した検索結果のブロックと、返ってきた文と引用
- 担当者が「使った」「使わなかった」を付けた結果と、使わなかった理由(任意)
- 取り込みの記録:整理の前後の文と、確認した担当者
- 伏せ字の規則にかかった件数と、規則の版
4つ目が、重みの調整と事故の型の一覧の見直しの材料になります。 「使わなかった」が多い事故の型は、言葉の句と意味の句の重みが合っていないか、型の分け方が粗いかのどちらかです。
検索ログには、伏せたあとの文だけを残します。 受付メモの元の文は顧客管理システムにあります。検索の仕組みの側に、もう1か所お客さまの情報が溜まる場所を作らないためです。
04実装レベルの3段階
最小構成は、記録が役に立つかを確かめるための段階です。 半自動化で、1件20分が12分程度になります。 似た事故は検索で出ますが、担当者が検索の画面を開いて条件を入れる手間と、記録の整理がされていない古い記録を読み解く手間が残ります。本格構成で8分になり、この段階が本記事の想定です。 差が大きいのは、記録が4つの欄に整理されていて、引用元のどの欄かまで見えることです。 段階を飛ばさないでください。 半自動化の検索ログで「使わなかった」の多い事故の型を直してから自動で動かすほうが、外れのまとめが減ります。
05工数削減シミュレーション
導入後 240件 × 8分 ÷ 60 = 32 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 複数の損害保険会社の商品を扱う乗合の代理店で、自動車・火災・傷害・賠償の事故の連絡を月に百件以上受け、受付から保険会社への報告、お客さまへの説明、書類の回収までを代理店の事務担当が支えている場合。過去の事故対応の経過が顧客管理システムのメモに文章で残っているのに、似た事故の対応を探すのがベテランの記憶頼みになっている場合。事務担当の異動や退職のたびに「この種類の事故はどう進んだか」が分からなくなる場合。AWS を社内の基盤として使え、お客さまの情報を伏せたまま検索と生成AIを閉じた環境で動かせる場合。
- 事故の連絡を受けたら保険会社の事故受付へつなぐだけで、代理店側で経過を追っていない場合。事故対応の記録が日付と「保険会社へ報告済み」の一言しか残っておらず、経過や説明の中身が書かれていない場合(先に記録の書き方を決める必要がある)。月の事故が十数件で、担当者が全件を覚えていられる規模の場合。なお、保険金が支払われるか、いくら支払われるかは保険会社が判断するもので、この構成も代理店もそれを約束しません。
07最小構成で試す方法
- 去年完了した事故対応の記録から、事故の型が偏らないように50件を選ぶ(自動車の物損・人身、火災の水濡れ・風災、賠償など)
- 氏名・電話番号・証券番号を手で伏せ、テキストにして1つのファイルにまとめる
- 手元の生成AIの画面にファイルを渡し、最近受けた事故の受付メモ(伏せたもの)を5件、1件ずつ入れる
- 「この事故に似た記録を3件挙げ、経過・必要だった書類・説明の要点を、どの記録から取ったか分かるように書いてください。記録に無いことは書かないでください。支払の見込みは書かないでください」と指示する
- 出てきたまとめを、ベテランの事務担当に見てもらい、「自分ならこの記録を挙げるか」「抜けている記録は無いか」を聞く
検索の仕組みを作る前に、記録の中身が役に立つかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
| ベテランが挙げる記録とおおむね同じ | 索引と hybrid 検索の構築に進む |
| 記録に無い書類や支払の見込みが混ざる | 指示の書き方で直る。構成は有効 |
| 記録に経過が書かれておらず、まとめが薄い | 記録の書き方を先に決める。 検索の問題ではない |
3行目が出たら、対応メモに「経過」「書類」「説明」の欄を作るところから始めます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 他社の契約の記録が上位に出る | filter で保険会社を必ず絞る。 検索の後で並べ替えない |
| 言葉の句だけ、意味の句だけで順位が決まる | normalization-processor で点数をそろえる。重みは試しで決める |
| hybrid クエリを点数の関数で包んでエラーになる | hybrid は一番外側に置く。 新しさは日付の絞り込みで扱う |
| まとめに一般的な書類が混ざる | 「記録に無い書類を足さない」を指示に書き、引用の無い文を画面で灰色にする |
| 支払の見込みがまとめに出る | 指示の1行目で禁じ、支払の結果の文を取り込みの整理で別の欄に分ける |
| 改訂前の手引の書類を頼んでしまう | 手引の改訂日を登録し、before_revision の印を出す |
| 伏せ字が漏れる | 規則で伏せ、伏せたあとにもう一度規則で検知する |
| 支店をまたいで記録が見える | 細かなアクセス制御の文書レベルの制限で、見てよい支店の記録だけを返す |
| 事故の型が粗く、物損と人身が混ざる | 事故の型の一覧を、「使わなかった」の多い型から分ける |
上の2行が、この構成の失敗の大半です。 保険会社の絞り込みと点数のそろえ方を、検索の設計の最初に決めます。
細かなアクセス制御は、有効化に HTTPS・保存時の暗号化・ノード間の暗号化が必要で、有効にしたあと無効にはできません。 最初のドメインを作るときに決めてください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 事故の状況、けがの有無、相手方とのやり取り、修理や治療の経過、お客さまの不安の内容です。伏せる前の記録には、氏名、住所、電話番号、証券番号、車両の登録番号、相手方の名前が含まれます。
- 索引には伏せたあとの文だけを入れる … 探したいのは事故の中身で、誰の事故かではありません。元の記録は顧客管理システムに残し、記録の番号から人がたどります
- 支店ごとに見える記録を分ける … 細かなアクセス制御では、索引・文書・項目の単位で制限でき、文書レベルの制限では役割に設定した問い合わせに合う文書だけが見えます。支店の項目で制限するか、全社で共有するかは、代理店の個人情報の取り扱いの規程で決めます
- 支払を約束しない … まとめに支払の結果を出さないのは、代理店が支払の可否を判断する立場にないからです。過去の結果を伝えることは、今回の結果の約束に聞こえます
- 保険会社の情報の扱いを確かめる … 保険会社の手引や代理店向けシステムの情報を、代理店の検索の仕組みに入れてよいかは、各保険会社との代理店委託契約と、各社の取り扱いの定めを確かめてください
- Bedrock の利用を社内の取り決めに載せる … 伏せたあとでも事故の内容は機微な情報です。使うリージョンとモデルを情報管理の担当と決めます
誤りが起きた場合のリスクは、要らない書類を頼むことと、来るはずの連絡の順番を取り違えて説明することの2つです。 前者は手引の確認で、後者は引用元の記録を読むことで防ぎます。
10まず何から始めるか
1週目:事故の型の一覧を決める
去年の事故対応の記録をベテランと一緒に眺め、自動車・火災・傷害・賠償のそれぞれで、経過が分かれる型を書き出します。最初は20前後で十分です。あわせて、4社の手引の最終改訂日を一覧にします。
2週目:50件で試す
型が偏らないように50件の記録を選んで伏せ、手元の生成AIで受付メモ5件のまとめをさせます。ベテランが挙げる記録と同じものが出るか、記録に無い書類が混ざらないかを見ます。
3週目:対応メモの書き方を決める
試しで経過の薄い記録が多かったら、対応メモに「経過」「書類」「説明」「お客さまの不安と答え」の欄を設けます。 新しく閉じる記録から、この書き方に揃えます。
4週目:直近2年分を取り込む
伏せ字の規則、記録の整理と確認、取り込みのパイプライン、検索パイプラインを作り、直近2年分の完了した記録を入れます。 担当者が検索の画面から自分で呼ぶ形(半自動化)で使い始めます。
2か月目: 検索ログの「使った」「使わなかった」を毎週数え、重みと事故の型を直します。3か月目以降: 受付メモの保存での自動の検索と、完了の処理への確認の組み込みを足し、1件20分が何分になったかを実測します。新しく閉じた記録が翌月の検索で使われるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
hybrid クエリが複数の句の点数を合わせて1つの点数にし、合わせ方を検索パイプラインで決めること。queries の句は5つまでで、文書は少なくとも1つの句に当たる必要があること。filter がすべての句にかかり、1つの問い合わせの形で書くこと。一番外側に置く必要があり、function_score などの中に入れられないこと | OpenSearch Documentation: Hybrid query | 2026-10-13 |
normalization-processor がバージョン2.10で入った検索の結果の処理で、句ごとに点数をそろえてから合わせること。そろえ方の既定が min_max、合わせ方の既定が arithmetic_mean で、重みは0.0〜1.0・合計1.0であること | OpenSearch Documentation: Normalization processor | 2026-10-13 |
ハイブリッド検索がバージョン2.11で入り、text_embedding の取り込みのパイプライン、knn_vector の項目、normalization-processor の検索パイプライン、hybrid クエリの順に組むこと | OpenSearch Documentation: Hybrid search | 2026-10-13 |
Amazon OpenSearch Service の ML コネクタの接続先に Amazon Bedrock と Amazon SageMaker AI があり、IAM ロールを用意してコネクタを作ること。意味の検索に使うモデルの登録に model_config が必要なこと | Amazon OpenSearch Service: ML connectors for AWS services | 2026-10-13 |
| 細かなアクセス制御が索引・文書・項目の単位の制限を提供し、文書レベルの制限が役割の問い合わせに合う文書だけを見せること。有効化に HTTPS・保存時の暗号化・ノード間の暗号化が必要で、有効にしたあと無効にできないこと | Amazon OpenSearch Service: Fine-grained access control | 2026-10-13 |
検索結果のブロック(source・title・content)で渡すと、Claude が search_result_location(cited_text・start_block_index・end_block_index)の引用付きで答えること。引用の有効・無効をすべての検索結果でそろえる必要があること。Claude API、Amazon Bedrock、Google Cloud で使えること | Claude Docs: Search results | 2026-10-13 |
| 引用(Citations)と構造化出力を一緒に使うと 400 エラーになること | Claude Docs: Citations | 2026-10-13 |
保険金が支払われるか、いくら支払われるかは、保険会社が約款に照らして判断します。 本記事は公開仕様で確認できた範囲だけを扱っています。必要書類は、各保険会社の現在の手引で確かめてください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1316)についてのご相談はこちらから。
