取引モニタリングが検知した取引のアラートについて、取引履歴・顧客情報・過去の判断記録から確認の論点と検討メモの下書きを作る
取引モニタリングのシステムが検知したアラートごとに、取引履歴・顧客情報・過去の判断記録を集めて、確認の論点と検討メモの下書きを作ります。疑わしい取引に当たるかの判断は担当者が行い、AIは結論を書きません。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 連携・自動化
- n8n/Power Automate
- 対象業界
- 保険/金融
- 対象部門
- 法務
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/判断に時間がかかる/属人化している
- AIで行う処理
- 生成
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 朝、案件管理の台帳に前日分のアラートが入る。担当者がシナリオと店で振り分ける
- 担当者が取引モニタリングのシステムでアラートを開き、検知された取引と、検知に使われたシナリオと敷居値を確かめる
- 勘定系の照会画面で、その口座の過去3か月の入出金を引き出し、表計算ソフトに貼って並べ替える
- 顧客管理のシステムで、職業・事業内容・取引の目的・想定していた取引の規模・顧客リスク評価・外国PEPsかどうかを確かめる
- 案件管理の台帳で、同じ顧客の過去のアラートと、そのときの判断と理由を探す
- 気になる点があれば、営業店に照会する(顧客の事業の実態、最近の取引の背景など)
- 検討メモを書き、クローズ・継続監視・届出の検討のいずれかに区分して、室長の確認に回す
- 自動夜間に取引モニタリングのシステムがアラートを出し、案件管理の台帳に登録される
- 自動登録をきっかけに処理が動き、アラートの内容と、検知された口座の過去3か月の取引データを取り出す
- 自動取引データを相手先・月・取引の種類ごとに集計し、検知された取引の前後の変化を数値で出す(AIは使わない)
- 自動顧客管理のシステムから、取引時確認の記録と顧客リスク評価、外国PEPsの区分を取り出す
- 自動案件管理の台帳から、同じ顧客の過去のアラートと判断・理由を取り出す
- 自動顧客名・口座番号・相手先の名前を内部の符号に置き換える
- 自動Azure OpenAI に、考慮すべき要素ごとの事実・申告との違い・確認が要る点と、結論欄を空けた検討メモの下書きを作らせる
- 自動下書きの中の数値と取引番号が、3番の集計と一致しているかを機械的に照合する
- 人担当者が下書きと根拠を確かめ、足りない点を調べ、結論と理由を書く
- 人届出の検討に回すものは、室長と届出の担当が判断する
各工程の詳しい説明を読む
- 朝、案件管理の台帳に前日分のアラートが入る。担当者がシナリオと店で振り分ける
- 担当者が取引モニタリングのシステムでアラートを開き、検知された取引と、検知に使われたシナリオと敷居値を確かめる
- 勘定系の照会画面で、その口座の過去3か月の入出金を引き出し、表計算ソフトに貼って並べ替える
- 顧客管理のシステムで、職業・事業内容・取引の目的・想定していた取引の規模・顧客リスク評価・外国PEPsかどうかを確かめる
- 案件管理の台帳で、同じ顧客の過去のアラートと、そのときの判断と理由を探す
- 気になる点があれば、営業店に照会する(顧客の事業の実態、最近の取引の背景など)
- 検討メモを書き、クローズ・継続監視・届出の検討のいずれかに区分して、室長の確認に回す
(a)3番に時間がかかる。 照会画面から貼り付けた入出金は、そのままでは読めません。相手先ごとに集計し、月ごとの件数と金額を出し、検知された取引の前後で何が変わったかを見るところまでで、1件の調査時間の3分の1が消えます。
(b)見る要素が担当者によって違う。 ある人は相手先の国を最初に見て、ある人は申告された取引の目的から見ます。どちらも間違いではありませんが、メモに書かれる項目がそろわないので、室長が読むときに「この点は確かめたのか」が分かりません。 書かれていないのが、確かめて問題がなかったからなのか、見ていないからなのかが区別できないのです。
(c)過去の判断が探せない。 同じ顧客の前回のアラートを、誰がどんな理由でクローズにしたか。台帳の自由記述を検索して探すことになり、見つからなければゼロから調べ直します。 前回と同じ理由でクローズにしてよいのか、前回から何が変わったのかを比べる材料がそろいません。
(d)件数に追いつかない。 600件を6名で見ると1人100件です。ガイドラインは、疑わしい取引に該当すると判断した場合に直ちに届出を行う態勢を求めています。 材料集めで日数を使うことは、その態勢の弱点になります。
- 【自動】 夜間に取引モニタリングのシステムがアラートを出し、案件管理の台帳に登録される
- 【自動】 登録をきっかけに処理が動き、アラートの内容と、検知された口座の過去3か月の取引データを取り出す
- 【自動】 取引データを相手先・月・取引の種類ごとに集計し、検知された取引の前後の変化を数値で出す(AIは使わない)
- 【自動】 顧客管理のシステムから、取引時確認の記録と顧客リスク評価、外国PEPsの区分を取り出す
- 【自動】 案件管理の台帳から、同じ顧客の過去のアラートと判断・理由を取り出す
- 【自動】 顧客名・口座番号・相手先の名前を内部の符号に置き換える
- 【自動】 Azure OpenAI に、考慮すべき要素ごとの事実・申告との違い・確認が要る点と、結論欄を空けた検討メモの下書きを作らせる
- 【自動】 下書きの中の数値と取引番号が、3番の集計と一致しているかを機械的に照合する
- 【人】 担当者が下書きと根拠を確かめ、足りない点を調べ、結論と理由を書く
- 【人】 届出の検討に回すものは、室長と届出の担当が判断する
9番目と10番目は、この構成でも人のままです。 AIが作るのは「何を見て、何が分かり、何が分かっていないか」の整理までで、疑わしいかどうかは書かせません。 結論欄は空欄で渡します。
3番目でAIを使わないのも意図してのことです。 集計はプログラムで行い、AIには結果を読ませるだけにします。8番目の照合は、AIが数字を書き換えていないかを確かめるためのものです。
02今回想定するシステム構成
取引モニタリングのシステム(シナリオ・敷居値で検知) │ 夜間にアラートを出す ▼【トリガー】案件管理の台帳へのアラート登録 Azure Functions(取り出しと集計と符号化) ├──▶ 勘定系の取引データ(過去3か月) ├──▶ 顧客管理のシステム(取引時確認の記録、顧客リスク評価、外国PEPsの区分) ├──▶ 案件管理の台帳(同じ顧客の過去のアラートと判断) ▼ Azure OpenAI(Microsoft Foundry)── 要素ごとの整理と検討メモの下書き │ ① 外国PEPs該当性 ② 顧客属性 ③ 事業 │ ④ 属性・事業に照らした取引態様 ⑤ 国・地域 ⑥ その他の事情 ▼ Azure Functions ── 数値と取引番号の照合、符号を元に戻す ▼ 案件管理の台帳(下書きを添付、結論欄は空欄) ▼ 【担当者が確認し、結論を書く】──▶ 室長・届出の担当
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry)の Standard デプロイ | Claude、Gemini |
| 連携 | Azure Functions(取り出し・集計・符号化・照合) | Power Automate、n8n |
| 保管 | Azure Blob Storage(入力の写しと下書きと照合の結果) | 案件管理の台帳の添付の機能 |
| アラートの発生元 | 既存の取引モニタリングのシステム | 各社の取引モニタリングの製品 |
取引モニタリングのシステムと案件管理の台帳は、新しく足すものではありません。 この構成は、検知と判断の間に入って材料をそろえるだけで、検知のシナリオと敷居値には手を触れません。
生成AIに Azure OpenAI を選ぶ理由は、データの扱いが公開されていることです。 Microsoft Learn のデータとプライバシーのページは、プロンプトと応答が他の顧客にも OpenAI にも提供されず、モデルの改善や基盤モデルの学習に使われないこと、モデルはステートレスでプロンプトと応答をモデルの中に保存しないことを示しています。Azure OpenAI のモデルは Microsoft の Azure 環境でホストされ、OpenAI が運営するサービスとはやり取りしないとされています。
デプロイの種類は、処理の場所で選びます。 同じページによると、プロンプトと応答は顧客が指定した地域(ジオグラフィ)の中で処理されますが、Global と付くデプロイでは、そのモデルが展開されているどの地域でも処理されうるとされ、DataZone と付くデプロイでは定められたデータゾーンの中で処理されます。顧客の取引を扱う本記事では、処理の場所が国内に収まる地域指定のデプロイを前提にします。 使いたいモデルがその地域で提供されているかは、導入時に確かめてください。
03どうやって実装するのか
処理の起点を決める
案件管理の台帳にアラートが登録されたことを起点にします。 取引モニタリングのシステムは夜間にまとめてアラートを出すので、登録も朝までにまとまって入ります。1件ずつ処理を動かし、担当者が出社した時点で、前日分のアラートに下書きが付いている状態を目標にします。
制裁対象の照合(取引フィルタリング)で止まった取引は対象にしません。 ガイドラインは取引モニタリングと取引フィルタリングを別の項目として扱っており、フィルタリングで当たったものは制裁リストとの照合を遅滞なく行う別の手順になります。アラートの種類が取引フィルタリングのものは、下書きを作らずに担当者へ回します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| アラート | アラート番号、検知日、シナリオの番号と説明、敷居値、検知された取引の番号 | 案件管理の台帳 |
| 取引データ | 過去3か月の入出金。日付、金額、取引の種類(現金・振込・外国送金など)、相手先、相手先の国・地域、経由した店舗やATM | 勘定系から連携された取引データ |
| 顧客情報 | 個人か法人か、職業または事業の内容、取引を行う目的、口座開設日、申告された取引の規模、顧客リスク評価、外国PEPsの区分、取引時確認の実施日 | 顧客管理のシステム |
| 過去の判断 | 同じ顧客の過去のアラート、そのときのシナリオ、区分(クローズ・継続監視・届出の検討)と理由 | 案件管理の台帳 |
| シナリオの説明書き | シナリオごとに、何を検知するためのものか、誤検知になりやすい典型 | マネロン対策室で用意する一覧 |
質を決めるのは、顧客情報の「取引を行う目的」と「申告された取引の規模」です。 ガイドラインが「顧客属性・事業に照らした取引金額・回数等の取引態様」を考慮するよう求めているのは、取引そのものではなく、申告との差を見よということです。この2つが空欄の顧客では、AIは差を示せません。空欄であること自体を確認が要る点として出させます。
シナリオの説明書きは、この構成で新しく作るものです。 「なぜこのアラートが出たのか」を担当者は頭の中で知っていますが、AIは知りません。シナリオごとに数行で、検知したいものと、誤検知になりやすい典型(給与の振込口座の変更、法人の決算期の資金移動など)を書いておきます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| アラートの内容 | 案件管理の台帳のAPIまたはデータベース | 検知された取引の特定 |
| 過去3か月の取引 | 勘定系から日次で連携されたデータ | 集計と前後比較 |
| 取引時確認の記録と顧客リスク評価 | 顧客管理のシステム | 要素①〜③の材料 |
| 同じ顧客の過去のアラート | 案件管理の台帳を顧客番号で検索 | 前回との異同 |
| シナリオの説明書き | マネロン対策室の一覧 | 検知の理由の説明 |
顧客の照合は、必ず顧客番号で行います。 名前で引くと、同姓同名や法人の旧商号で別の顧客の記録を混ぜます。別人の過去の判断が混ざった検討メモは、それだけで使えなくなります。
過去の判断は直近5件までに絞り、それを超える顧客は件数だけを別に渡します。
AIへ渡す前に整形する
- 取引の集計 … 相手先ごと、月ごと、取引の種類ごとに件数と金額を出します。検知された取引の前30日と前々30日の比較も出します
- 申告との比較の材料 … 申告された取引の規模と、実際の月平均の件数・金額を並べます。差を割合で出します
- 国・地域の整理 … 相手先の国・地域ごとに件数と金額を出します。国の名前は、取引データに入っている値をそのまま使います
- 符号化 … 顧客名、口座番号、相手先の個人名を、「顧客A」「相手先03」のような内部の符号に置き換えます。対応表は Azure Functions の側だけに置き、AIには渡しません
- 取引番号の付与 … 集計に使った取引に通し番号を振り、AIが根拠として挙げられるようにします
- 欠けている項目の印 … 顧客情報で空欄の項目と、取引時確認から長く経っているものに印を付けます
1番目と2番目が、担当者がいちばん時間を使っていた作業です。 これをプログラムで済ませておけば、AIが計算を間違える余地がなくなり、担当者は同じ表を毎回作らなくて済みます。
4番目では、相手先の法人名は業種を読み取る手がかりなので残し、個人名だけを符号に置き換える、という線引きが現実的です。最終的には自社の情報管理の規程に合わせて決めてください。
AIに処理させる
させるのは、6つの要素ごとに「データから言える事実」「申告や過去との違い」「確認が要る点」を書き分け、それを検討メモの下書きにまとめることです。 6つの要素は、ガイドラインが疑わしい取引の該当性で考慮するよう求めている事情を並べたものです。
| 要素 | 見るもの | 書かせること |
|---|---|---|
| ① 外国PEPs該当性 | 顧客情報の区分 | 区分の値と、取引時確認の日付 |
| ② 顧客属性 | 個人・法人、職業、口座開設日、顧客リスク評価 | 属性と、検知された取引の種類が合っているか |
| ③ 事業 | 申告された事業の内容と取引の目的 | 相手先の業種や取引の種類が、事業から説明できるか |
| ④ 属性・事業に照らした取引態様 | 集計結果と申告された取引の規模 | 件数・金額の申告との差、前後30日の変化 |
| ⑤ 国・地域 | 相手先の国・地域の集計 | どの国・地域と、何件・いくら |
| ⑥ その他の事情 | 過去の判断、シナリオの説明書き | 前回の判断と今回の違い、誤検知の典型に当たるか |
要素ごとに「事実」「違い」「確認が要る点」を分けるのが、この構成の中心です。 事実は取引番号や顧客情報の項目を根拠にできるもの、違いは申告や前回との比較、確認が要る点はデータからは分からないので人が調べるものです。3つを混ぜると、AIの推測が事実の顔をして並びます。
| させないこと | 理由 |
|---|---|
| 疑わしい取引に当たるかの結論 | 犯収法上の判断で、特定事業者が自ら行うもの |
| 区分(クローズ・継続監視・届出の検討)の提案 | 結論を誘導する。結論欄は空けて渡す |
| 取引の目的や背景の推測 | 「親族への仕送りと思われる」と書くと、確かめていない理由が残る |
| 件数・金額の計算 | 前処理の集計を使う。AIに計算させない |
| 顧客への照会文の作成 | 届出を検討していることが顧客に伝わる文面になりうる |
3行目が最も起きやすい失敗です。 生成AIは、取引の並びから「事業の仕入れの支払と考えられる」のような説明を作るのが得意です。その説明が正しいかどうかは、営業店に照会しないと分かりません。 推測が書かれた下書きを読むと、担当者は確かめずにその理由でクローズにしたくなります。
指示内容を固定する
あなたは銀行のマネロン対策室で、取引モニタリングのアラートの一次調査を補助する立場です。
渡されたデータだけを使い、担当者が疑わしい取引の該当性を判断するための材料を整理してください。
判断はしません。
【整理する6つの要素】
1. 外国PEPs該当性
2. 顧客属性(個人・法人、職業、口座開設日、顧客リスク評価)
3. 事業(申告された事業の内容と取引の目的)
4. 属性・事業に照らした取引態様(件数・金額、申告された規模との差、前後30日の変化)
5. 取引に係る国・地域
6. その他の事情(過去の判断との違い、シナリオの誤検知の典型に当たるか)
【要素ごとに書くこと】
- facts ......... データから言えること。必ず根拠(取引番号または顧客情報の項目名)を付ける
- differences ... 申告された内容や過去の判断との違い。比較の相手を明記する
- open_points ... データからは分からず、人が確かめる必要があること
【厳守事項】
- 疑わしいかどうか、届出が必要かどうかを書かないでください。
「疑わしい」「問題ない」「クローズが妥当」などの評価の言葉を使わないでください。
- 取引の目的や背景を推測しないでください。データに書かれていない理由は、
facts にも differences にも書かず、open_points に「確認が要る」として書いてください。
- 件数・金額・割合は、渡された集計結果の値をそのまま使ってください。
自分で足し算や割り算をしないでください。
- 顧客情報で空欄の項目は「記載なし」とし、open_points に挙げてください。
他の項目から補わないでください。
- 根拠のない facts を書かないでください。根拠を示せないものは書かないでください。
- 顧客や営業店に送る文面は作らないでください。確かめる項目だけを挙げてください。
- 符号(顧客A、相手先03 など)はそのまま使い、元の名前を推測しないでください。
- memo_draft は、6つの要素の順に、事実・違い・確認が要る点をまとめた文章にしてください。
末尾の「結論」と「理由」は空欄のまま残してください。
【アラート】{alert}
【シナリオの説明書き】{scenario_note}
【取引の集計結果】{txn_summary}
【顧客情報】{customer_profile}
【同じ顧客の過去の判断(直近5件まで)】{past_dispositions}
「評価の言葉を使わない」を例示つきで書くのは、書かないと必ず出てくるからです。 「総合的に見て疑わしい点は少ない」のような一文が、下書きの最後に付け加えられます。担当者がその一文に引きずられないよう、言葉の段階で止めます。
「推測しない」と「open_points に回す」をセットで書くのも同じ理由です。 推測を禁じるだけだと、その項目が黙って消えます。消えるのではなく、確認が要る点として残すように指示すると、担当者が次に何を調べればよいかが下書きに出てきます。
出力形式を固定する
Azure OpenAI の構造化出力で、次の形のJSONを受け取ります。 構造化出力は、API呼び出しのときに渡したJSON Schemaの定義にモデルを従わせる機能で、Chat Completions API では response_format、Responses API では text.format にスキーマを置きます。
{
"alert_id": "",
"scenario_id": "",
"factors": [
{
"factor": "foreign_peps | customer_attribute | business | transaction_pattern | country_region | other",
"facts": [ { "text": "", "evidence": [""] } ],
"differences": [ { "text": "", "compared_with": "declared | past_disposition | previous_30_days" } ],
"open_points": [""]
}
],
"missing_profile_items": [""],
"past_dispositions_used": [""],
"memo_draft": "",
"conclusion": "",
"reason": ""
}
1つ目の理由は、conclusion と reason を空欄のまま型で持てることです。 欄があるので、人が書き込む場所が決まります。Functions の側で、AIの応答のこの2つが空でなければ下書きを破棄して作り直します。 評価の言葉が紛れ込んだかどうかを、人が読む前に機械で止められます。
2つ目は、evidence を照合できることです。 facts の根拠に挙げられた取引番号と顧客情報の項目名が、前処理で渡したものの中にあるかを機械的に確かめます。存在しない取引番号を挙げた下書きは、担当者に渡しません。
スキーマの書き方には、Azure の決まりがあります。 Microsoft Learn によると、構造化出力ではすべての項目を required に入れる必要があり、任意にしたい項目は null との共用型で表します。オブジェクトには必ず additionalProperties: false を付けます。オブジェクトの項目は全体で100個まで、入れ子は5段までです。文字列の maxLength や pattern、配列の minItems などは使えないとされているので、件数や長さの制限はスキーマではなく Functions の側で確かめます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 案件管理の台帳 | API またはデータベースの読み取り・添付 | アラートの取得と、下書きの添付 |
| 勘定系の取引データ | 日次で連携されたデータの読み取り | 過去3か月の取引 |
| 顧客管理のシステム | 読み取り | 取引時確認の記録、顧客リスク評価、外国PEPsの区分 |
| Azure OpenAI | Azure Functions からのAPI呼び出し | 要素ごとの整理と検討メモの下書き |
| Azure Blob Storage | 書き込み | 入力の写し、AIの応答、照合の結果 |
案件管理の台帳へは、下書きを添付するだけです。 区分の欄や結論の欄には書き込みません。台帳上の区分を変えられるのは担当者と室長だけにしておきます。
顧客管理のシステムには書き込みません。 顧客リスク評価を見直すべきだと担当者が判断した場合も、その更新は既存の手順で人が行います。ガイドラインは、届出を契機にリスクが高いと判断した顧客について顧客リスク評価を見直すことを求めていますが、見直すかどうかの判断と更新は、この構成の外に置きます。
人が確認する
下書きが付いたアラートも、全件を担当者が開きます。 疑わしい取引の該当性の判断は、犯収法上の義務として特定事業者が行うものです。AIの下書きだけでクローズにする経路は作りません。
- 数字と根拠を確かめる …
factsの数字が集計表と合っているか、根拠の取引番号を開いて確かめます。照合で不一致が出たものは、下書きを使わずに最初から調べます - 確認が要る点を調べる …
open_pointsに挙がったものを、営業店への照会や追加の資料で確かめます - 結論と理由を書く … 区分を選び、理由を自分の言葉で書きます。下書きの文章をそのまま理由に写さないことを運用のルールにします
- 室長が確かめる … 届出の検討に回すもの、継続監視にするもの、クローズのうち抜き取りで選んだもの
3番目を省かないでください。 下書きは材料の整理であって、判断の理由ではありません。理由欄に下書きを貼ると、後から読んだ人には、誰が何を確かめて判断したのかが分からなくなります。
営業店への照会では、届出を検討していることを伝えない言い方にします。 犯収法第8条第4項は、特定事業者(役員と使用人を含む)が疑わしい取引の届出を行おうとすることや行ったことを、その届出に係る顧客等やその関係者に漏らしてはならないと定めています。営業店から顧客へ確認する場面を見越して、照会の書き方は室で決めておきます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 取引フィルタリング(制裁対象の照合)のアラート | 下書きを作らず担当者へ。別の手順で遅滞なく照合する |
| 顧客番号で顧客情報が引けない | 下書きを作らず「顧客情報なし」で担当者へ |
| 取引の目的・取引の規模が空欄 | 下書きは作る。missing_profile_items に出し、取引時確認の更新を検討する材料にする |
| 過去3か月の取引が極端に多い | 集計だけを渡し、明細は検知された取引の前後に絞る |
応答の conclusion や reason が空でない | 下書きを破棄して1回だけ作り直す。2回目も同じなら下書きなしで担当者へ |
evidence に存在しない取引番号がある | 下書きを担当者に渡さない。照合の結果を記録する |
| 応答が途中で止まる・ガードレールで止められる | 下書きなしで担当者へ。入力を変えて何度も投げ直さない |
| 同じ顧客のアラートが同じ日に複数 | 1つの下書きにまとめ、アラート番号を並べる |
| Azure OpenAI が応答しない | 台帳のアラートはそのまま残る。下書きが無くても通常の手順で調査できる |
ガードレールの行は、マネロン対策ならではです。 Microsoft Learn のページによると、プロンプトと応答は有害な内容の種類についてリアルタイムで評価され、設定した基準に基づいてフィルターされます。犯罪の収益や不正利用に関わる文章を扱うので、設定によっては応答が止まることがあります。 止まったときは下書きなしで人が調べ、どのアラートで止まったかを記録して、設定の見直しの材料にします。
記録を残す
- アラート番号と、下書きを作ったときに渡した入力の写し(集計結果、顧客情報、過去の判断、シナリオの説明書き)
- 使ったデプロイの名前とモデルのバージョン、指示文の版
- AIの応答の全文と、数値・根拠の照合の結果
- 担当者が書いた結論と理由、下書きから直した箇所
- 室長の確認の記録
- シナリオごとの、クローズ・継続監視・届出の検討の件数
1行目で入力の写しを残すのは、顧客情報が後から変わるためです。 取引時確認をやり直すと、取引の目的や申告された規模が書き換わります。当時の下書きが何を見て作られたのかを、後から再現できなければなりません。 ガイドラインも、取引記録などの記録の保存を、届出の要否の判断に必須の情報として位置付けています。
最後の行は、シナリオの見直しの材料になります。 ガイドラインは、検知結果や届出の状況を踏まえて、シナリオ・敷居値等の有効性を分析し改善を図ることを求めています。クローズばかりが続くシナリオと、その理由の傾向が、下書きと判断の記録から集計できます。
04実装レベルの3段階
最小構成では件数がさばけません。 1件ずつ材料を作って貼るので、手間はむしろ増えます。下書きが判断の材料として使えるかを確かめるための段階です。 半自動化で、1件30分が20分程度になります。 過去の判断を台帳から探す作業と、下書きを台帳に貼る作業が残ります。本格構成で12分になり、この段階が本記事の想定です。 過去の判断の引き当てと根拠の照合が自動になると、担当者は数字を確かめ直す時間が減ります。 段階を飛ばさないでください。 半自動化で missing_profile_items を1か月見ると、取引時確認の記録のどこが空いているかが分かります。
05工数削減シミュレーション
導入後 600件 × 12分 ÷ 60 = 120 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 取引モニタリングのシステムを入れており、検知したアラートの一次調査に担当者の時間の大半を取られている銀行・信用金庫・信用組合・証券会社・保険会社。アラートの多くが確認の結果クローズになっていて、調査の手順と検討メモの書き方が担当者ごとに違う場合。Azure の契約があり、データを自社のテナントの中で扱う構成を取れる場合。
- アラートが月に数十件で、担当者が1件ずつ丁寧に見て足りる場合。取引履歴と顧客情報を同じ顧客番号で引き出せる仕組みがなく、データをそろえるところから始める必要がある場合。なお、疑わしい取引に当たるかどうかの判断と届出の要否は、この構成では代替できません。
07最小構成で試す方法
- 先月のアラートから20件を選ぶ(クローズになったもの、継続監視になったもの、届出の検討に回ったものを混ぜる)
- 20件について、取引の集計表と顧客情報を、符号化したうえで表計算ソフトにまとめる
- 社内で利用が認められている Azure OpenAI の環境(Microsoft Foundry のプレイグラウンドなど)に、第7章の指示文と1件分の材料を貼る
- 出てきた下書きを、当時の担当者が書いた検討メモと並べる
- 「当時の担当者が見た要素を、下書きも挙げているか」「推測が事実の欄に混ざっていないか」を1件ずつ確かめる
試験でも材料は符号化してから貼り、外部の一般向けのAIサービスには貼らないでください。
| 出てきた内容 | 判断 |
|---|---|
| 当時の担当者が見た要素がそろっている | 取り出しと集計の自動化に進む |
| 取引の目的を推測して事実の欄に書いた | 指示の書き方で直る。構成は有効 |
| 結論めいた一文が付いた | 指示に例示を足し、conclusion の検査を前提に進める |
| 申告の欄が空欄で比べられない顧客が多い | 取引時確認の記録の整備が先 |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 取引の目的を推測して事実の欄に書く | 推測を禁じ、open_points に回すよう指示する |
| 結論めいた一文が付く | 評価の言葉を例示で禁じ、conclusion が空でなければ破棄する |
| 件数・金額を自分で計算して間違える | 集計はプログラムで行い、AIには結果を読ませるだけにする |
| 存在しない取引番号を根拠に挙げる | evidence を前処理の通し番号と照合する |
| 名前で引いて別の顧客の記録が混ざる | 照合は顧客番号だけで行う |
| 申告の欄が空欄で差が出せない | 空欄を missing_profile_items に出し、取引時確認の整備につなげる |
| Global のデプロイを選んでしまう | 処理の場所が地域の中に収まるデプロイの種類を選ぶ |
| スキーマで長さや件数を制限しようとして通らない | maxLength や minItems は使えない。Functions 側で確かめる |
| 下書きの文章を理由欄に写す | 理由は担当者の言葉で書くことを運用のルールにする |
| 照会の文面から届出の検討が顧客に伝わる | 照会の書き方を室で決める。AIに顧客向けの文面を作らせない |
上の2行が、この構成の失敗のほとんどです。 指示で止め、出力の型で止め、機械の検査で止める、と三重にしておきます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧客の取引履歴、職業・事業・取引の目的・取引の規模の申告、顧客リスク評価、外国PEPsの区分、そしてこの顧客の取引をマネロン対策の観点で調べているという事実です。
- 処理の場所を決めてからデプロイする … Global のデプロイでは、モデルが展開されているどの地域でも処理されうるとされています。地域指定のデプロイを選び、そのことを情報管理の規程の側にも記録します
- 不正利用の監視のためのデータ保存を確かめる … Microsoft Learn によると、不正利用の兆候が検知されると、プロンプトと応答の一部が人による確認のためにリソースのある地域に保存されることがあります。管理された顧客はこの監視の変更を申請でき、承認されると保存は行われず、リソースの JSON ビューで
ContentLoggingがfalseと表示されます - 顧客名と口座番号をAIに渡さない … 符号化してから渡し、対応表は Functions の側だけに置きます
- 届出の検討が顧客に伝わる経路を作らない … 犯収法第8条第4項は、届出を行おうとすることや行ったことを顧客等やその関係者に漏らしてはならないと定めています。下書き、ログ、照会のいずれも、営業店の一般の権限では読めない場所に置きます
- AIに判断させない … 疑わしい取引の該当性は、ガイドラインのいう「保有している具体的な情報を総合的に勘案した上で」の検討・判断です。この構成が出すのは、勘案する材料の整理だけです
誤りが起きた場合のリスクは、疑わしい点を下書きが拾い落とし、担当者がそれに引きずられてクローズにすることと、推測された理由が事実として記録に残ることの2つです。どちらも、結論を空欄にし、事実と確認が要る点を分ける設計で守ります。
10まず何から始めるか
1週目:シナリオの説明書きを作る
アラートの多い上位10のシナリオについて、何を検知するためのものか、誤検知になりやすい典型は何かを数行ずつ書きます。新しく配属された人の教育にも使えます。
2週目:20件で試す
先月のアラートから20件を選び、符号化した材料で下書きを作らせます。当時の検討メモと並べ、推測が事実の欄に入っていないか、結論めいた一文が付いていないかを最優先で見ます。
3週目:取り出しの経路と権限を決める
勘定系・顧客管理・案件管理の台帳の3つについて、顧客番号で読み取る経路と権限を情報システム部門と決めます。デプロイの種類と、不正利用の監視の変更を申請するかも決めます。
4週目:集計と下書きをつなぐ
Azure Functions で、取引の集計、符号化、Azure OpenAI の呼び出しまでを作ります。この時点では台帳に添付せず、担当者がこれまでどおり調べたうえで、下書きと見比べる運用にします。
2か月目: 過去の判断の引き当てと、数値・根拠の照合を足し、台帳への添付を始めます。下書きの照合で不一致が出た件数を毎週数えます。3か月目以降: 1件30分が何分になったかを実測し、シナリオごとのクローズの理由を集計します。その集計をシナリオと敷居値の見直しの材料として室長に渡せるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 取引モニタリングについて、自らのリスク評価を反映したシナリオ・敷居値等の抽出基準を設定し、検知結果や届出の状況を踏まえてその有効性を分析し改善を図ることが求められていること。取引モニタリングと取引フィルタリング(制裁対象の照合)が別の項目であること。疑わしい取引の該当性について、外国PEPs該当性、顧客属性、事業、顧客属性・事業に照らした取引金額・回数等の取引態様、国・地域その他の事情を考慮すること。疑わしい取引に該当すると判断した場合に直ちに届出を行う態勢、ITシステムの活用、記録の保存、届出を契機とした顧客リスク評価の見直しが求められていること | 金融庁: マネー・ローンダリング及びテロ資金供与対策に関するガイドライン(令和8年3月31日) | 2026-10-07 |
| 特定事業者が疑わしい取引の届出を行うこと(第8条第1項)。届出を行おうとすること又は行ったことを、届出に係る顧客等又はその関係者に漏らしてはならないこと(第8条第4項) | e-Gov 法令API: 犯罪による収益の移転防止に関する法律 | 2026-10-07 |
プロンプトと応答が他の顧客や OpenAI に提供されず、モデルの改善や学習に使われないこと。指定した地域で処理され、Global と DataZone のデプロイでは処理の場所が広がること。リアルタイムの有害な内容の評価とフィルター。不正利用の監視のための保存と、監視の変更の申請、ContentLogging の確認方法 | Microsoft Learn: Data, privacy, and security for Foundry Models sold by Azure | 2026-10-07 |
構造化出力が JSON Schema の定義にモデルを従わせる機能で、Chat Completions では response_format、Responses では text.format に置くこと。すべての項目を required にすること、additionalProperties: false、項目100個・入れ子5段までの制限、maxLength・pattern・minItems などが使えないこと | Microsoft Learn: How to use structured outputs with Azure OpenAI | 2026-10-07 |
疑わしい取引に当たるかどうかの判断と届出の要否は、自社のマネロン対策の責任者が決めてください。 本記事は、上記の公開資料で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0670)についてのご相談はこちらから。
