Media > AI活用ユースケース > 経理 > 税理士事務所で、顧問先に税務調査の連絡が来たときに、過去の調査の対応記録から業種と論点の近い調査を探し、指摘事項と対応・結果を根拠の記録付きで返す

税理士事務所で、顧問先に税務調査の連絡が来たときに、過去の調査の対応記録から業種と論点の近い調査を探し、指摘事項と対応・結果を根拠の記録付きで返す

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

顧問先に税務調査の連絡が来たときに、事務所の過去の調査の対応記録から、業種と論点の近い調査を探します。当時指摘された事項と、事務所の対応と結果を、記録番号付きの準備メモにして担当に返します。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
Azure AI/Google Vertex AI/OpenSearch
対象業界
士業
対象部門
経理/財務
対象業務
情報検索/書類作成
主な課題
属人化している/引き継ぎができていない/情報が見つからない
AIで行う処理
検索(RAG)
主な効果
対応スピード向上/属人化解消/教育コスト削減/検索時間短縮
導入難易度
★★★★☆
実装レベル
本格構成
費用感
RAG・個別開発(大)
人間の確認
条件付き
現在工数
36h/月
AI導入後
10h/月
想定削減
72%
年間削減
312h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 事前通知の連絡を受け、日時・税目・対象期間を顧問先の管理表に記録する
  2. 同じ業種の顧問先で、最近調査を受けた先を思い出すか、ベテランに聞く
  3. 思い当たった顧問先のフォルダを開き、調査の対応記録を読む
  4. 今回の顧問先の決算書と申告書を見て、指摘されそうな論点を準備メモに書く
  5. 顧問先との打合せで、準備メモをもとに資料の準備を頼む
導入後(After)
  1. 自動調査の対応記録の新しいものを読み込む
  2. 自動Claude が記録を、指摘ごとに「論点の区分」「指摘の内容」「事務所の説明」「結果」に分ける
  3. 自動顧問先の名前と個人名を、顧問先コードと記号に置き換える
  4. 人担当の税理士が、新しく付いた論点の区分を週に1回まとめて確かめる
  5. 自動指摘ごとに1件として、調査番号・業種・税目・対象期間・結果を付けて検索基盤に登録する
  6. 人担当が、管理表の画面に事前通知の内容(税目・対象期間・調査の目的として説明されたこと)を入れて「過去の調査を見る」を押す
  7. 自動業種と税目で絞り、今回の顧問先の特徴(売上の規模、同族会社か、主な取引)と近い調査を、調査ごとにまとめて引く
  8. 自動Claude が、引いた調査の指摘と対応から準備メモを書き、各行に調査番号を付ける
  9. 人担当の税理士が準備メモを読み、顧問先の決算書と申告書で確かめてから、打合せに使う
各工程の詳しい説明を読む
  1. 事前通知の連絡を受け、日時・税目・対象期間を顧問先の管理表に記録する
  2. 同じ業種の顧問先で、最近調査を受けた先を思い出すか、ベテランに聞く
  3. 思い当たった顧問先のフォルダを開き、調査の対応記録を読む
  4. 今回の顧問先の決算書と申告書を見て、指摘されそうな論点を準備メモに書く
  5. 顧問先との打合せで、準備メモをもとに資料の準備を頼む

(a)過去の調査が記憶でしか引けない。 2番目で、思い出せるのは自分が立ち会った調査と、ベテランが話してくれた調査だけです。1,900件の記録のうち、実際に使われているのはごく一部です。

(b)同じ業種でも、論点が違う調査が混ざる。 3番目で開いた記録が、同じ建設業でも消費税の調査だったり、10年前の調査だったりします。読んでから「今回とは違う」と分かる記録に、時間の多くが使われます。

(c)若手の準備が浅くなる。 立会いの経験が少ない担当ほど、思い出せる調査が少なく、準備メモが決算書の数字の確認だけになります。 調査の当日に初めて聞かれる論点が出ます。

(d)打合せが遅れる。 事前通知から調査の開始までの短い期間に、顧問先は資料をそろえる必要があります。準備に時間がかかるほど、顧問先に資料を頼むのが遅れます。

取り込み(毎晩)

  1. 【自動】 調査の対応記録の新しいものを読み込む
  2. 【自動】 Claude が記録を、指摘ごとに「論点の区分」「指摘の内容」「事務所の説明」「結果」に分ける
  3. 【自動】 顧問先の名前と個人名を、顧問先コードと記号に置き換える
  4. 【人】 担当の税理士が、新しく付いた論点の区分を週に1回まとめて確かめる
  5. 【自動】 指摘ごとに1件として、調査番号・業種・税目・対象期間・結果を付けて検索基盤に登録する

事前通知の後

  1. 【人】 担当が、管理表の画面に事前通知の内容(税目・対象期間・調査の目的として説明されたこと)を入れて「過去の調査を見る」を押す
  2. 【自動】 業種と税目で絞り、今回の顧問先の特徴(売上の規模、同族会社か、主な取引)と近い調査を、調査ごとにまとめて引く
  3. 【自動】 Claude が、引いた調査の指摘と対応から準備メモを書き、各行に調査番号を付ける
  4. 【人】 担当の税理士が準備メモを読み、顧問先の決算書と申告書で確かめてから、打合せに使う

4番目を人に残しているのが、この設計の分かれ目です。 論点の区分は、検索の絞り込みの単位です。区分が担当ごとにぶれると、同じ論点の指摘が別の区分に散って、検索で拾えなくなります。

9番目で決算書と申告書を確かめるのは、準備メモが過去の傾向にすぎないためです。 過去の調査で指摘された論点でも、今回の顧問先では取引の形が違うことがあります。

02今回想定するシステム構成

構成図
【取り込み】調査の対応記録(共有フォルダ)/顧問先の管理表
   ▼【トリガー】毎晩
AWS Lambda ── 新しい記録の読み込み、顧問先名の置き換え
   ▼
Claude API ── 指摘ごとに区分・内容・説明・結果へ分ける
   ▼【人】区分の確認(週1回)
Amazon OpenSearch Service(指摘の索引:調査番号、業種、税目、区分、本文。kuromoji と事務所の辞書)

【事前通知の後】担当が「過去の調査を見る」を押す
   ▼
Amazon OpenSearch Service
   ├─ bool:業種・税目・対象期間の絞り込み、論点の言葉
   ├─ collapse:調査番号ごとに1件、inner_hits で同じ調査の指摘
   └─ highlight:根拠になった箇所の抜き出し
   ▼
Claude API ── 準備メモ(各行に調査番号)
   ▼
顧問先の管理表(準備メモの欄)
役割想定する製品代替候補
検索基盤Amazon OpenSearch Service(kuromoji の形態素解析、bool クエリ、collapse と inner_hits、highlight)Azure AI Search、Vertex AI Search(Agent Search)
生成AIClaude API(記録の分解と、準備メモの作成)Gemini API、OpenAI API
連携AWS Lambda(取り込み、検索の呼び出し、管理表への返却)AWS Step Functions
保管Amazon S3(取り込みの記録と、準備メモの版)―
台帳既存の顧問先の管理表と共有フォルダ―

顧問先の管理表には、準備メモの欄にだけ返します。 申告書や決算書を書き換えることはありません。

日本語の形態素解析は、Amazon OpenSearch Service に最初から入っています。 公式のドキュメントでは、kuromoji の解析器は IPAdic の辞書で日本語の文を語に分け、助詞などを外し、語を辞書の基本形にそろえて返すとされています。Amazon OpenSearch Service の対応プラグインの一覧では、Japanese(kuromoji)Analysis はすべてのドメインに含まれるとされ、日本語に推奨される Sudachi も追加のプラグインとして選べます。

03どうやって実装するのか

Step1

処理の起点を決める

取り込みと検索で、起点が2つあります。

取り込みは毎晩です。 調査の対応記録は、調査の終わった日か、修正申告を出した日に担当が書きます。次の事前通知の準備に載れば足ります。 顧問先の管理表で「調査あり」の欄が付いた顧問先のフォルダを読み、記録のファイルが無ければ担当に書くよう知らせます。

区分の確かめは週に1回です。 毎晩の取り込みでAIが付けた区分のうち、新しく作られた区分と、自信が低いと書かれたものを一覧にし、担当の税理士がまとめて直します。

検索は、担当が管理表の画面で「過去の調査を見る」を押したときに動きます。 事前通知の内容を入れた後に押します。通知された税目と対象期間で絞るためです。 調査の途中で新しい論点を聞かれたときに、もう一度押せるようにもします。

Step2

入力データを集める

データ中身取得元
調査の対応記録調査番号、調査の日、税目、対象期間、聞かれたこと、指摘、事務所の説明、結果共有フォルダ
顧問先の管理表顧問先コード、業種、決算月、売上の規模、同族会社か、担当顧問先の管理表
今回の事前通知税目、対象期間、調査の目的として説明されたこと、調査の開始日担当が画面に入れる
論点の区分の一覧事務所で決めた区分(売上の計上時期、外注費、役員給与、交際費等、棚卸資産、源泉徴収 など)事務所で用意する一覧

質を決めるのは、いちばん下の区分の一覧です。 区分が無いと、指摘の文章だけで検索することになり、「計上時期」と「期ズレ」と「売上の前倒し」が別の言葉として扱われます。

今回の事前通知の内容は、担当が画面に入れます。 通知は電話で受けることが多く、記録は担当のメモです。税目と対象期間は選択肢から選ばせ、自由に書かせません。 検索の絞り込みに使うからです。

Step3

データの取得方法を決める

調査の対応記録は、Lambda が顧問先のフォルダから読みます。読んだ時点で、顧問先の名前を管理表の顧問先コードに機械的に置き換えます。 代表者や従業員の個人名は、Claude に「人名らしい語」を挙げさせ、「代表者」「従業員A」に置き換えます。

索引の項目は、次のように持たせます。

項目型使いどころ
audit_idkeyword調査番号。collapse の単位と準備メモの根拠
industrykeyword業種。絞り込み
tax_typekeyword税目(法人税、消費税、源泉所得税)
period_enddate対象期間の最後の事業年度の末日
issue_categorykeyword論点の区分
featureskeyword顧問先の特徴(同族会社、売上の規模の帯、主な取引)
finding/responsetext(kuromoji)指摘の内容と事務所の説明
outcomekeyword指摘なし/修正申告/更正
audited_ondate調査の日。新しさの並べ替え

audit_id を keyword で持たせるのは、collapse の条件だからです。 公式のドキュメントでは、collapse する項目は keyword か数値の型でなければならないとされています。

検索は、次のように組みます。

GET /audit_findings/_search
{
  "size": 6,
  "query": { "bool": {
    "filter": [ { "term": { "industry": "建設業" } },
                { "term": { "tax_type": "法人税" } },
                { "range": { "audited_on": { "gte": "now-8y/d" } } } ],
    "should": [
      { "terms": { "features": ["同族会社", "売上10億未満", "外注が主"] } },
      { "match": { "finding": "外注費 工事 計上時期 未成工事" } }
    ],
    "minimum_should_match": 1
  } },
  "collapse": { "field": "audit_id",
    "inner_hits": { "name": "findings", "size": 4,
                    "sort": [ "_score" ] } },
  "highlight": { "fields": { "finding": { "fragment_size": 80,
                                          "number_of_fragments": 2 } } }
}

minimum_should_match を1にしているのは、特徴も論点の言葉も1つも重ならない調査を外すためです。 同じ建設業でも、規模も取引の形も違う会社の調査は、準備の根拠になりません。

Step4

AIへ渡す前に整形する

  1. 指摘ごとに分ける … 1つの記録に複数の指摘があれば、指摘ごとに1件にします
  2. 区分を付ける … 事務所の論点の区分の一覧から選びます
  3. 顧問先と個人を隠す … 顧問先の名前は管理表の名前で機械的に置き換え、残った人名だけをAIに挙げさせます
  4. 事務所の辞書を作る … 「役員給与」「交際費等」「未成工事支出金」のように、1語として扱いたい税務の言葉を kuromoji の user_dictionary_rules に入れます
  5. 結果を分ける … 指摘なし、修正申告、更正を outcome に入れます
  6. 顧問先の特徴を付ける … 管理表の欄から写します

4番目の辞書が、検索の精度を大きく左右します。 公式のドキュメントでは、kuromoji の既定の search の分け方は、複合語をさらに細かい語に分けて拾い漏れを減らすとされています。拾い漏れは減りますが、「役員給与」で「役員」だけの記録まで拾います。よく使う税務の言葉は、辞書で1語にして、細かく分けさせません。

3番目の置き換えは、AIに任せきりにしません。 顧問先の名前は管理表にあるので、取り込みの処理が先に置き換え、AIはその後の文を読みます。

Step5

AIに処理させる

AIの仕事は2か所です。 取り込みで記録を指摘ごとに分けて区分を付けることと、検索の結果から準備メモを書くことです。検索は検索基盤が行います。

させること中身
記録の分解と区分指摘ごとに、区分・内容・事務所の説明・結果に分ける。区分は一覧から選ぶ
準備メモの作成引いた調査の指摘から、今回の打合せで確かめる論点と、当時求められた資料を並べる
根拠の添付各行に、根拠の調査番号と調査の日を付ける
結果の書き分け指摘なしで終わったものと、修正申告になったものを分けて書く
させないこと理由
今回の調査で指摘されるかの予想過去の傾向からは決まらない。担当の税理士の判断
指摘への主張の組み立て税理士が顧問先と相談して決める
税額や追徴の見込みの計算根拠の無い数字が顧問先に伝わる
根拠の無い論点の追加一般的な調査の知識で準備メモを埋めない
顧問先の名前の記載他の顧問先の調査が特定される

最初の行が、いちばん外せない線です。 準備メモに「この論点は指摘される可能性が高い」と書かれると、担当はそのまま顧問先に伝えたくなります。過去に指摘されたことは、今回指摘されることを意味しません。

最後の行は、税理士の秘密を守る義務に関わります。 準備メモは他の顧問先の調査の記録から作るので、顧問先が特定される情報が1つでも残ると、そのまま漏えいになります。

Step6

指示内容を固定する

あなたは税理士法人で、税務調査の事前通知を受けた顧問先の打合せに向けて、準備メモを作る係です。
渡された検索結果だけを根拠にしてください。一般的な税務調査の知識で補わないでください。

【今回の顧問先】業種:{industry} 特徴:{features}
【事前通知】税目:{tax_type} 対象期間:{period} 調査の目的として説明されたこと:{purpose}
【検索結果】過去の調査ごとに、調査番号、調査の日、指摘の区分と内容、事務所の説明、結果

【準備メモに書くこと】
1. 論点の区分ごとに1行。その区分の指摘があった調査の数と、結果(指摘なし/修正申告/更正)の内訳
2. 各行に、根拠の調査番号と調査の日
3. 当時、調査官から求められた資料と、事務所が出した説明の要点
4. 指摘なしで終わった調査で、事務所がどう説明したか

【厳守事項】
- 今回の調査で何が指摘されるかを予想しないでください。
- 指摘に対してどう主張すべきかを書かないでください。
- 税額や追徴の見込みを書かないでください。
- 検索結果に無い論点を足さないでください。根拠の調査番号の無い行は書かないでください。
- 顧問先の名前、代表者や従業員の名前を書かないでください。
- 記載が無いことは「記録なし」と書き、推測で埋めないでください。

「根拠の調査番号の無い行は書かない」を明記しないと、AIは一般的な調査の論点を足します。 「役員の給与が定期同額か確かめる」は正しい項目ですが、事務所の記録に無い論点が混ざると、準備メモが一般論の一覧になり、記録を探した意味が薄れます。

検索結果は、Claude の検索結果ブロックで渡します。 調査1件を1つの search_result にし、source に調査番号、title に業種と税目と調査の年を入れます。引用を有効にすると、答えの文に、どの調査のどの部分を引いたか(search_result_location)が付きます。 引用は既定で無効で、1つのリクエストの検索結果はすべて同じ設定にします。

Step7

出力形式を固定する

collapse の結果は、調査ごとに1件の文書と、inner_hits の findings に同じ調査の他の指摘が入った形で返ります。 公式のドキュメントでは、collapse は上位の検索結果だけに効き、ヒットの総数は collapse の前の件数で、グループの数は返らないとされています。画面に「何件の調査」と出すときは、返ってきた行を数えます。

準備メモは、次のJSONで管理表に返します。

{
  "client_code": "C-0812",
  "notice": { "tax_type": "法人税", "period": "2023-04〜2026-03" },
  "memo": [
    { "issue_category": "外注費の計上時期",
      "audits": 4, "outcomes": { "no_finding": 1, "amended": 3, "reassessed": 0 },
      "requested_docs": "工事台帳、外注先との契約書と請求書、検収の記録",
      "firm_response": "",
      "evidence": [ { "audit_id": "A-2023-0144", "audited_on": "2023-11-08",
                      "highlight": "" } ] }
  ],
  "no_record_items": ["調査の目的として説明された事項のうち、記録に該当の無いもの"],
  "searched": { "industry": "建設業", "tax_type": "法人税", "hits_shown": 6 }
}

1つ目の理由は、outcomes で「指摘なしで終わった例」を並べられることです。 同じ論点で、ある調査は指摘なし、別の調査は修正申告になっていれば、その差が、顧問先に頼む資料を決める手がかりになります。

2つ目は、highlight で根拠の箇所をすぐ読めることです。 公式のドキュメントでは、既定の unified の強調表示は文を単位に分けて関連の度合いを付けます。fragment_size は既定で100字、number_of_fragments は既定で5です。80字の抜き出しを2つまでにし、担当が記録を開く前に当たりを付けられるようにします。

3つ目は、no_record_items で記録の無い論点を明示できることです。 事前通知で説明された目的に、事務所の記録が無い論点があれば、それは担当が自分で調べる必要がある論点です。

Step8

システムへ連携する

つなぎ先方式内容
共有フォルダ毎晩の読み取り調査の対応記録
顧問先の管理表毎晩の読み取り/画面からの呼び出し顧問先の特徴を読み、準備メモを返す
Amazon OpenSearch Service索引への登録と検索指摘の索引、collapse と highlight
Claude APILambda からの呼び出し記録の分解と区分、準備メモ
Step9

人が確認する

この構成の確認は、必須です。 準備メモは、顧問先との打合せと、調査の当日の対応に直結します。

  1. 区分を週に1回確かめる … 担当の税理士が、新しい区分の候補と自信の低いものを直します
  2. 準備メモを記録で確かめる … 担当が、evidence の調査番号から記録を開き、要点が合っているかを見ます
  3. 顧問先の決算書と申告書で確かめる … 今回の顧問先に、その論点の取引があるかを見ます
  4. 顧問先に渡す形にする … 他の顧問先の調査が特定される情報を外し、資料の依頼の形に書き直します

4番目を省かないでください。 準備メモは事務所の中で使うものです。そのまま顧問先に渡すと、他の顧問先の調査の経過を見せることになります。

1件あたり25分を目安にします。 準備メモを読み、記録と決算書で確かめる時間です。記録の多い業種で論点が2〜3個に絞れていれば15分ほどで終わり、税目が複数の調査や記録の少ない業種では40分を超えます。

準備メモの論点が多すぎると感じたら、検索の条件を疑います。 顧問先の特徴の欄が空のままだと、規模も取引の形も違う調査が混ざり、論点の数だけが増えます。 管理表の欄を埋めてから押し直します。

Step10

例外に対処する

起きること対応
同じ業種・税目の記録が少ない(3件未満)業種を外し、税目と顧問先の特徴だけで引いた結果を「業種が違う」旨を付けて出す
記録が指摘ごとに分けられない取り込みで止め、担当に書き直しを頼む
区分の一覧に無い指摘「新しい区分の候補」として週1回の確かめに回す
税制の改正の前の調査対象期間が改正の前の調査には印を付け、準備メモに「当時の制度」と出す
置き換えの漏れが見つかったその記録を索引から外し、置き換えをやり直してから入れ直す
Claude の呼び出しに失敗した調査ごとの一覧と強調表示をそのまま出す
調査の途中で対象の税目が広がった担当が税目を足して、もう一度検索する
事前通知が無いまま調査が始まった担当が調査官から税目と対象期間を聞き取って画面に入れ、同じ手順で引く
前の税理士の時代の調査で、記録が無い顧問先から当時の調査結果の書面を借り、記録として取り込むかを担当が決める

5行目は、見つかった時点で必ず止めます。 準備メモに他の顧問先の名前が出たら、その記録を使った準備メモもすべて確かめ直します。

Step11

記録を残す

  • 取り込みの件数、止めた記録とその理由、置き換えの結果
  • AIが付けた区分と、担当の税理士が直した区分
  • 事前通知ごとの検索の条件、返ってきた調査番号、準備メモの版
  • 準備メモを確かめた担当と日時
  • 調査の後に、実際に指摘された論点が準備メモに載っていたか

最後の行が、この構成の効き目を測る材料です。 準備メモに載っていた論点が指摘されたなら、準備が効いたかを担当に聞きます。載っていなかった論点は、取り込みで新しい記録として入ります。

準備メモの版を残すのは、担当の交代に備えるためです。 調査は数か月にわたることがあり、途中で担当が替わると、何を根拠に何を準備したかが後任に引き継がれません。 版が残っていれば、後任は同じ記録から読み直せます。

04実装レベルの3段階

最小構成:記録をAIサービスに貼って区分を付け、表計算で数える / 区分の一覧と業種の傾向の確認
半自動化:上記+指摘の索引で、業種・税目の絞り込みと調査ごとの一覧を画面で出す / 過去の調査の探し出し
本格構成:上記+準備メモの作成、顧問先の管理表への返却 / 準備の材料づくりの全体

半自動化で、①の探す時間は大きく減ります。 ただし記録を読んで準備メモを書く作業は人が行います。本格構成で1件25分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化を1か月使うと、辞書に足すべき税務の言葉と、記録の少ない業種が先に見つかります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
15 名
月間件数
24 件
1件あたり現在時間
90 分
1件あたり導入後時間
25 分
現在  24件 × 90分 ÷ 60 = 36 時間/月
導入後 24件 × 25分 ÷ 60 = 10 時間/月
月間削減時間
26h
削減率
72%
年間削減時間
312h
年間金額換算(時間単価4,500円)
140万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 顧問先が千社を超え、顧問先への税務調査の連絡が毎月20件以上ある税理士法人・税理士事務所。過去の調査の経過と指摘事項、修正申告の内容を案件ごとに記録として残しているが、探すのがベテランの記憶頼みになっている場合。担当の交代や若手の配属が多く、調査の立会いの経験が事務所の中で偏っている場合。
向いていない
  1. 顧問先が数十社で、調査の連絡が年に数件の場合。調査の経過を記録に残しておらず、修正申告書の控えしか無い場合。なお、指摘に対してどう主張するか、修正申告に応じるかの判断は税理士が顧問先と相談して行うもので、この構成はそれを代わりに行いません。

07最小構成で試す方法

  1. よく顧問先のある業種を1つ選び、その業種の過去5年の調査の記録を20件集める(顧問先の名前は消す)
  2. 手元のAIサービスに記録を貼り、「指摘ごとに、次の区分の一覧から1つを選んで分けてください。一覧に無いときは『候補』と書いてください」と指示する
  3. 区分ごとの件数と結果を表計算で数える
  4. 最近事前通知を受けた同じ業種の顧問先について、表を見ながら準備メモを書く
  5. 実際の調査で指摘された論点と、準備メモを突き合わせる
出てきた内容判断
実際の指摘が、表の上位の区分に入っている索引と検索の構築に進む
同じ論点が別の区分に散る区分の一覧の作り方で直る。構成は有効
記録に指摘の内容が書かれていない調査の対応記録の書き方を決めるのが先。 検索の問題ではない

3行目が出ることは珍しくありません。 「修正申告で終了」だけの記録では、何も分かりません。その場合は、記録の様式を先に作り、半年ためてから試します。 様式は「聞かれたこと」「指摘」「事務所の説明」「結果」の4つの欄で足ります。欄を増やすほど、調査の終わった忙しい時期に書かれなくなります。

08実装時につまずきやすいポイント

問題対策
同じ調査の指摘が上位を埋めるaudit_id で collapse し、inner_hits で指摘を添える
collapse の項目が text 型でエラーになるaudit_id を keyword で持たせる
「役員給与」で「役員」だけの記録を拾う辞書で1語にする
調査の件数を総ヒット数で数えるヒットの総数は collapse の前の件数。返った行を数える
同じ論点が別の区分に散る区分を一覧から選ばせ、週1回人が直す
AIが一般的な論点を足す根拠の調査番号の無い行を禁じる
改正前の調査を今の制度として扱う対象期間で印を付ける
準備メモに他の顧問先が特定される情報が残る名前を機械的に置き換え、顧問先に渡す前に人が書き直す
規模も取引も違う会社の調査が混ざるminimum_should_match を1にする

1行目が、この構成を作る理由そのものです。 collapse をしないと、指摘の多い調査が1件で画面を埋め、似た調査を幅広く見る、という目的が果たせません。

3行目は、運用に入ってから少しずつ効いてきます。 新しい論点の言葉が記録に出てくるたびに、辞書に足すかを決めます。辞書を止めると、新しい制度の言葉ほど細かく分けられ、拾い漏れと拾いすぎが同時に起きます。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 顧問先の税務調査の経過、指摘事項、修正申告の内容です。顧問先の取引、利益の状況、役員の給与が含まれます。

  1. 秘密を守る義務を前提にする … 税理士法では、税理士は正当な理由がなくて、税理士業務に関して知り得た秘密を他に洩らし、又は窃用してはならず、税理士でなくなった後も同様とされています。索引には顧問先の名前を入れず、指摘の内容からも置き換えます
  2. 準備メモを事務所の外に出さない … 顧問先に渡すのは、資料の依頼の形に書き直したものだけです
  3. 見られる範囲を絞る … 索引と準備メモは、顧問先を担当する税理士とスタッフだけが使えるようにし、画面の利用を記録します
  4. 指摘の予想をAIに書かせない … 準備メモは過去の傾向の材料で、判断は税理士が行います
  5. 外部のAIに渡す範囲を絞る … Claude に渡すのは、置き換え済みの指摘・説明と顧問先の特徴だけです

3番目の利用の記録は、置き換えの漏れが見つかったときに効きます。 漏れのあった記録を、いつ、誰の画面に出したかが分かれば、確かめ直す準備メモの範囲が決まります。 記録が無いと、その期間のすべての準備メモを疑うことになります。

誤りが起きた場合のリスクは、他の顧問先の秘密を漏らすことと、過去の傾向を予想のように顧問先へ伝えることの2つです。 前者は機械的な置き換えと人の書き直しで、後者は予想を禁じる指示と税理士の確認で防ぎます。

10まず何から始めるか

1週目:記録の中身を数える

過去5年の調査の記録から50件を選び、指摘の内容と事務所の説明が書かれている割合を数えます。半分を下回るなら、記録の様式を先に作ります。

2週目:区分の一覧と辞書を作る

ベテランの税理士と、税目ごとに論点の区分を15〜20個決め、1語として扱う税務の言葉を集めます。

3週目:1つの業種で試す

最小構成で、1つの業種の記録を区分に分け、最近の事前通知の準備メモを書いてみます。

4週目:索引と検索を作る

その業種の記録を取り込み、collapse で調査ごとに並ぶ画面を作ります。置き換えの漏れが無いかを、全件で確かめます。

2か月目: 準備メモの作成を足し、1つの事務所で使います。3か月目以降: 全事務所に広げ、調査の後に指摘が準備メモに載っていたかを毎月数えます。立会いの経験の少ない担当でも、事前通知の翌日には事務所の記録をもとに顧問先と打合せができるようになった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-08/最終更新:2026-10-08
確認した内容情報源確認日
国税通則法第74条の9で、実地の調査の前に、納税義務者(税務代理人がある場合はその税務代理人を含む)に、調査を開始する日時、場所、目的、対象となる税目・期間・帳簿書類などを通知するとされていること。第74条の11で、更正決定等をすべきと認められない場合は書面で通知し、認める場合はその額と理由を含む調査結果の内容を説明するとされていることe-Gov法令API: 国税通則法2026-10-08
税理士法第38条で、税理士は正当な理由がなくて税理士業務に関して知り得た秘密を他に洩らし、又は窃用してはならず、税理士でなくなった後も同様とされていることe-Gov法令API: 税理士法2026-10-08
kuromoji の解析器が IPAdic の辞書で日本語を語に分け、基本形にそろえること。search の分け方が既定で複合語を細かく分けること。user_dictionary_rules で語を足せることOpenSearch Documentation: Kuromoji analyzer2026-10-08
collapse が項目の値ごとに最上位の1件を返し、項目が keyword か数値の型である必要があること。inner_hits でグループを展開できること。ヒットの総数が collapse の前の件数で、グループの数は返らないことOpenSearch Documentation: Collapse search results2026-10-08
既定の強調表示が unified で、文を単位に分けること。fragment_size の既定が100、number_of_fragments の既定が5であることOpenSearch Documentation: Highlight query matches2026-10-08
Amazon OpenSearch Service で Japanese(kuromoji)Analysis がすべてのドメインに含まれ、Sudachi が日本語に推奨される追加のプラグインであることAWS: Plugins by engine version in Amazon OpenSearch Service2026-10-08
検索結果ブロック(source・title・content)で引用付きの答えが返り、引用に search_result_location が付くこと。引用が既定で無効で、1つのリクエストの検索結果はすべて同じ設定にすることClaude Docs: Search results2026-10-08

調査への対応と修正申告の判断は、税理士が顧問先と相談し、法令と通達に照らして行ってください。 本記事は公開仕様と法令で確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0871)についてのご相談はこちらから。

AI活用について相談する
目次