顧問先から届く「あの案件はいまどうなっているか」の問い合わせに、案件台帳と庁との往復書類を根拠にして回答案を作る
顧問先から届く「あの案件はいまどうなっているか」という問い合わせに、案件台帳の記録と庁との往復書類・事務所の報告メールを根拠にして回答案を作ります。担当者が根拠を確かめて送ります。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/OpenSearch
- 連携・自動化
- Make/n8n/Power Automate
- 対象業界
- 士業
- 対象部門
- 知財
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/工数削減/検索時間短縮
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 事務担当が問い合わせメールを読み、どの顧問先の、どの案件の話かの手がかりを拾う
- 案件管理システムで顧問先の案件を絞り込み、発明の名称や出願日から該当しそうな案件を探す
- 候補が複数あるときは、担当弁理士に聞くか、顧問先に案件番号を問い合わせる
- 台帳で現在の段階と次の期限を確かめる
- 書類の保管フォルダを開き、最後に届いた庁の書類と最後に出した書類を確かめる
- 台帳の段階と最新の書類が食い違っていないかを見る。食い違っていれば担当弁理士に聞く
- 過去の報告メールを探し、顧問先にどこまで伝えてあるかを確かめる
- 回答のメールを書き、担当弁理士の確認を受けて送る
- 自動問い合わせ用の共有メールボックスにメールが届くと、連携の仕組みが送信元のアドレスから顧問先と担当チームを特定する
- 自動生成AIが問い合わせから案件の手がかり(案件番号、出願番号、名称の語、時期、共同出願人)を取り出す
- 自動検索基盤で、担当チームの権限の範囲で、その顧問先の案件台帳から候補の案件を探す
- 自動候補が1件に決まれば、その案件の台帳の段階・期限と、最新の書類を日付の新しい順に取り出す
- 自動台帳の最終更新日より新しい書類があれば「台帳が古い可能性」の印を付ける
- 自動生成AIが、台帳の記録と書類だけを根拠に回答案を作り、文ごとに根拠を付ける
- 人事務担当が根拠を開いて確かめ、候補が割れたもの・印が付いたものを担当弁理士に回す
- 人担当弁理士が必要なものを確かめ、事務担当が顧問先へ送る
- 自動送った回答を、その案件の報告履歴として検索基盤に加える
各工程の詳しい説明を読む
- 事務担当が問い合わせメールを読み、どの顧問先の、どの案件の話かの手がかりを拾う
- 案件管理システムで顧問先の案件を絞り込み、発明の名称や出願日から該当しそうな案件を探す
- 候補が複数あるときは、担当弁理士に聞くか、顧問先に案件番号を問い合わせる
- 台帳で現在の段階と次の期限を確かめる
- 書類の保管フォルダを開き、最後に届いた庁の書類と最後に出した書類を確かめる
- 台帳の段階と最新の書類が食い違っていないかを見る。食い違っていれば担当弁理士に聞く
- 過去の報告メールを探し、顧問先にどこまで伝えてあるかを確かめる
- 回答のメールを書き、担当弁理士の確認を受けて送る
(a)案件の特定に時間がかかる。 「電池の件」と書かれても、その顧問先には電池に関わる案件が十数件あります。出願日、共同出願人、発明の名称の言い回しを手がかりに絞り込み、それでも2件に割れることが少なくありません。
(b)最新の状況が1か所にない。 台帳には段階と期限があり、書類はフォルダにあり、顧問先に何を伝えたかは担当者のメールにあります。3か所を見て初めて「いまどうなっているか」が言えます。 台帳の更新が書類の到着より遅れていると、台帳だけを見て答えた回答が1段階古くなります。
(c)答えられる人が限られる。 「この案件は応答期間の延長を出している」といった事情を覚えているのは、長くその顧問先を担当している人だけです。
(d)担当チームの線引きを守るのが人の注意だけになっている。 競合する顧問先を別チームで担当していても、書類の保管フォルダは事務所の共有です。急いで探しているうちに、担当外のチームの案件を開いてしまうことがあります。
- 【自動】 問い合わせ用の共有メールボックスにメールが届くと、連携の仕組みが送信元のアドレスから顧問先と担当チームを特定する
- 【自動】 生成AIが問い合わせから案件の手がかり(案件番号、出願番号、名称の語、時期、共同出願人)を取り出す
- 【自動】 検索基盤で、担当チームの権限の範囲で、その顧問先の案件台帳から候補の案件を探す
- 【自動】 候補が1件に決まれば、その案件の台帳の段階・期限と、最新の書類を日付の新しい順に取り出す
- 【自動】 台帳の最終更新日より新しい書類があれば「台帳が古い可能性」の印を付ける
- 【自動】 生成AIが、台帳の記録と書類だけを根拠に回答案を作り、文ごとに根拠を付ける
- 【人】 事務担当が根拠を開いて確かめ、候補が割れたもの・印が付いたものを担当弁理士に回す
- 【人】 担当弁理士が必要なものを確かめ、事務担当が顧問先へ送る
- 【自動】 送った回答を、その案件の報告履歴として検索基盤に加える
4番目で「1件に決まれば」と書いたのが、この設計の分かれ目です。 候補が2件以上あるときは回答案を作らず、候補の一覧と、顧問先に確かめる文の下書きだけを出します。 違う案件の状況を答えることは、答えないことよりはるかに悪い結果になります。
7番目の人の確認は、全件で残します。 顧問先はこの回答をもとに社内へ説明し、製品発表の時期を決めることもあります。削減するのは探す時間であって、確かめる時間ではありません。
02今回想定するシステム構成
問い合わせメール(共有メールボックス) │【トリガー】メールの受信 ▼ Make ── 送信元アドレスから顧問先IDと担当チームを特定 ▼ Claude API(呼び出し1)── 案件の手がかりをJSONで取り出す(structured outputs) ▼ Amazon OpenSearch Service │ 担当チームの検索用ユーザーで問い合わせる(文書レベルのセキュリティ) │ ① 案件台帳の索引:顧問先IDで絞り、手がかりで候補の案件を探す(ハイブリッド検索) │ ② 書類の索引:決まった案件の書類を日付の新しい順に取る ▼ Make ── 候補の件数、台帳の更新日と最新の書類の日付を突き合わせる ▼ Claude API(呼び出し2)── 根拠を付けた回答案(citations) ▼ 担当者へ通知(Teams)──【人】根拠の確認、弁理士への回付 ▼ 【人】送信 ── 送った回答を報告履歴として索引に追加
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service | OpenSearch(自社で運用)、Azure AI Search |
| 生成AI | Claude API(手がかりの取り出しと、根拠付きの回答案) | OpenAI API、Gemini API |
| 埋め込み | 日本語に対応したテキスト埋め込みモデル(OpenSearch に接続) | 同等の多言語埋め込みモデル |
| 連携 | Make(メールの受信、顧問先の特定、件数の判定、通知) | n8n、Power Automate |
| 保管 | 書類の保管フォルダ(案件番号別) | SharePoint、Box |
案件管理システムと書類の保管フォルダは、今のまま使います。 検索基盤に入れるのは、台帳の写しと書類の本文の写しです。正は案件管理システムの台帳に置き、検索結果からは原本の書類へリンクします。
OpenSearch を選ぶ理由は、権限と検索を同じ場所で扱えることです。 Amazon OpenSearch Service の細かなアクセス制御は、索引・文書・項目の単位で見られる範囲を制御でき、同じ検索でも、誰が要求したかによって返る件数が変わるとされています。そのうち文書レベルのセキュリティは、ロールに索引のパターンと OpenSearch のクエリを指定し、そのロールに割り当てた利用者はクエリに合う文書しか見られないというものです。担当チームの線引きを、検索の問いではなく検索基盤の権限に置けます。
もう一つは、ハイブリッド検索です。 キーワード検索と意味の検索を組み合わせ、検索時に動く検索パイプラインでスコアをそろえて統合します。「特願2025-」のような番号や共同出願人の社名はキーワードで、「去年の秋に出した電池の件」のような言い回しは意味で引けます。 ハイブリッド検索の filter は、すべての下位のクエリにかかります。
細かなアクセス制御は、有効にするとあとから無効にできません。 HTTPS、保存時の暗号化、ノード間の暗号化も前提とされるため、この用途のドメインを最初から有効にして作ります。
03どうやって実装するのか
処理の起点を決める
問い合わせ用の共有メールボックスにメールが届いたことを起点にします。 担当弁理士の個人のアドレスに届いた問い合わせは、共有メールボックスへ転送する運用にします。入口を1つにしないと、送った回答が報告履歴として積み上がりません。
二つ目の起点は、案件管理システムの更新です。 台帳は毎晩、案件管理システムから書き出したファイルを検索基盤へ入れ直します。書類は、保管フォルダに新しい書類が保存されたときに本文を取り出して入れます。台帳は1日1回、書類はその都度という時間差が、後述の stale の印の出どころです。
三つ目は、回答の送信です。 送った回答を案件の報告履歴として書類の索引に加えます。送らなかった下書きは加えません。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 問い合わせメール | 送信元、件名、本文、引用された過去のメール | 共有メールボックス |
| 顧問先の対応表 | 顧問先ID、会社名、問い合わせを送ってくるアドレスの一覧、担当チーム | 事務所で持つ一覧 |
| 案件台帳の写し | 事務所の案件番号、顧問先の整理番号、出願番号、発明の名称、共同出願人、現在の段階、次の期限、担当弁理士、台帳の最終更新日 | 案件管理システムの書き出し |
| 書類の本文の写し | 書類の種類(拒絶理由通知、意見書、補正書、査定など)、発送日または提出日、本文、原本へのリンク | 書類の保管フォルダ |
| 報告履歴 | 顧問先へ送った報告・回答の本文と送信日 | 送信済みの回答 |
質を決めるのは、台帳の「現在の段階」と「最終更新日」です。 この構成は段階を台帳から読むので、台帳が正しくなければ回答は正しくなりません。段階の値は、「出願済み」「審査請求済み」「拒絶理由通知・応答期間中」「応答済み・審査待ち」「特許査定・登録料納付待ち」「登録済み」のように、事務所で決めた選択肢から選ぶ形にしておきます。 自由記述の段階は、検索でも回答でも扱えません。
データの取得方法を決める
検索基盤に2つの索引を作ります。 案件台帳の索引は1案件1文書、書類の索引は書類を段落の単位に分けた断片を1文書にします。どちらにも、顧問先ID、事務所の案件番号、担当チームの項目を持たせます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 候補の案件 | 案件台帳の索引 | 手がかりに合う案件の絞り込み |
| 段階・期限・最終更新日 | 案件台帳の索引 | 回答の中身と、台帳が古い可能性の判定 |
| 最新の書類 | 書類の索引(案件番号で絞り、日付の新しい順) | 最後に届いた書類と最後に出した書類 |
| 問いに関わる書類の断片 | 書類の索引(案件番号で絞り、ハイブリッド検索) | 「補正は反映されたか」のような個別の問い |
| 報告履歴 | 書類の索引(種類が報告のもの) | 顧問先にどこまで伝えたか |
担当チームの線引きは、文書レベルのセキュリティで入れます。 チームごとに検索用の利用者を作り、バックエンドロールとしてチームの名前を持たせます。ロールの文書レベルのセキュリティには、次のクエリを書きます。
{ "terms": { "team": [${user.roles}] } }
${user.roles} は、利用者のバックエンドロールを引用符付き・カンマ区切りで並べたものに置き換わります。連携の仕組みは、顧問先の担当チームの検索用の利用者で問い合わせるので、担当外のチームの案件は検索結果に1件も現れません。 検索の問いに「このチームの」と書く方法とは違い、問いの組み立てを誤っても線引きは崩れません。
候補の案件の検索は、次のような形にします。顧問先IDは filter に置き、すべての下位のクエリにかけます。
{
"size": 5,
"query": {
"hybrid": {
"filter": { "term": { "client_id": "K-0231" } },
"queries": [
{ "multi_match": { "query": "電池 正極 共同 B社",
"fields": ["title", "co_applicants", "client_ref"] } },
{ "neural": { "title_embedding": { "query_text": "去年の秋に出した電池の件",
"model_id": "…", "k": 20 } } }
]
}
}
}
team と client_id の項目は、keyword の型にします。 文書レベルのセキュリティの説明では、text の型の値にハイフンなどの記号が入ると、標準の解析器が値を分割して扱い、意図しない文書が絞り込みを通ることがあるとされています。「team-A」「K-0231」のような値はこれに当たります。
AIへ渡す前に整形する
- 顧問先と担当チームの特定 … 送信元アドレスを対応表で引きます。見つからない、または複数の顧問先に当たるときは、ここで止めて事務担当に選ばせます
- 引用部分の切り分け … 返信の連鎖で下に続く過去のメールは、手がかりとしてだけ使い、問い合わせの本文とは分けて渡します。古い問い合わせへの回答を作らないためです
- 番号の形の正規化 … 「特願2025-012345」「2025-12345」のような表記を、台帳と同じ形にそろえてから検索します
- 台帳の鮮度の確認 … 台帳の書き出しが前の晩に成功しているかを確かめます。失敗していれば、すべての回答案に「台帳が前日より古い」と印を付けます
- 添付の扱い … 問い合わせに添付がある場合は検索に使わず、「添付あり」と知らせるだけにします
AIに処理させる
AIにさせる仕事は2つで、呼び出しも2回に分けます。 1回目は問い合わせから案件の手がかりを取り出すこと、2回目は決まった案件の台帳と書類だけを根拠に回答案を書くことです。
| させること | 中身 |
|---|---|
| 手がかりの取り出し | 案件番号、顧問先の整理番号、出願番号、名称の語、時期、共同出願人、問われていること(段階/期限/個別の書類) |
| 回答案の作成 | 台帳の段階・期限と最新の書類を、顧問先の知財担当者に向けた文にする |
| 文の種類分け | 台帳に基づく文、書類に基づく文、報告済みの内容を繰り返す文を分ける |
| 確認事項の書き出し | 担当弁理士に確かめるべきこと(台帳と書類の食い違い、見通しを問われた部分) |
| させないこと | 理由 |
|---|---|
| 段階の判定 | 台帳の値を正とする。書類の文面から推し量らない |
| 候補の案件から1件を選ぶこと | 取り違えると別の案件の状況を答える。件数は機械で数える |
| 審査の見通し・登録の時期の予測 | 弁理士の判断で、約束と受け取られる |
| 応答の方針への言及 | 顧問先との打合せで決めることで、回答案に書かない |
| 報告前の書類の中身の説明 | 弁理士が内容を確かめて報告する前に、要点を伝えない |
1行目がいちばん起きやすい失敗です。 書類を渡すと、生成AIは「拒絶理由通知が届いているので応答期間中です」と自分で段階を組み立てます。その通知がすでに応答済みの古いものでも、文は同じようにもっともらしくなります。 段階は台帳から渡し、文にするだけにします。
5行目も守秘に近い話です。 弁理士が確かめる前に回答案が「進歩性がないとの指摘です」と書けば、事務所として検討していない評価が顧問先に伝わります。
1回目の呼び出しでは structured outputs を使い、2回目では citations を使います。 Claude API では、この2つを同じ要求で使うと400のエラーが返るとされているためです。1回目は output_config.format にJSONスキーマを指定して手がかりを受け取り、2回目は台帳と書類の断片をそれぞれ citations を有効にした文書として渡します。文書の title と context は引用の対象にならないので、書類の種類と日付は context に入れ、本文だけを引用の対象にします。
指示内容を固定する
あなたは特許事務所で、顧問先の知財担当者からの問い合わせに答える回答案を作る担当です。
渡された「案件台帳の記録」と「書類」だけを根拠にしてください。
【問い合わせ】{inquiry_text}
【顧問先】{client_name}
【案件】{case_no}(この案件の記録と書類だけが渡されています)
【案件台帳の記録】{docket_record} … 段階・次の期限・台帳の最終更新日
【書類】{documents} … 日付の新しい順。reported が false のものは未報告
【台帳が古い可能性】{stale_flag}
【作ってほしいもの】
1. 問い合わせで問われていること(1〜3個)
2. 顧問先の担当者に向けた回答案
3. 回答案の各部分の種類
- docket ...... 案件台帳の記録に書いてあること
- document .... 渡された書類に書いてあること
- reported .... 過去に報告済みの内容を繰り返すこと
- ask_attorney 担当弁理士の判断が要ること
4. 担当弁理士に確かめるべきこと
【厳守事項】
- 現在の段階は、案件台帳の記録の「段階」の値をそのまま使ってください。
書類の内容から段階を判断したり、言い換えて別の段階にしたりしないでください。
- 審査の見通し、登録になる時期、応答の方針は書かないでください。
問われている場合は ask_attorney とし、
「担当弁理士から改めてご連絡します」とだけ書いてください。
- reported が false の書類は、書類の種類と日付だけを書いてください。
内容の要約や評価は書かないでください。
- 期限の日付は、案件台帳の記録に書かれているものだけを使ってください。
書類の日付から期限を計算しないでください。
- 【台帳が古い可能性】が true のときは、段階の文の末尾に
「(台帳の更新前の情報の可能性があります)」と付けてください。
- 出願番号・案件番号は、渡された記録に書かれているものをそのまま写してください。
- 渡された記録と書類で答えられないことは、「記録からは確認できません」と書いてください。
「段階の値をそのまま使う」を、言い換えの禁止まで書いているのが要点です。 「応答済み・審査待ち」を「もうすぐ結果が出る見込みです」と言い換えれば、段階の文が見通しの文に変わります。 決まった値のまま書かせれば、台帳の画面と見比べるだけで確かめられます。
「期限を計算しない」を別に書いているのも同じ理由です。 応答期間は延長の有無で変わり、その事実は台帳にしかありません。書類の発送日から数えた期限は、延長を出した案件で必ず外れます。
出力形式を固定する
次の形のJSONを、連携の仕組みで組み立てます。 回答案の本文と根拠は2回目の呼び出しの citations の結果から取り、case_candidates と stale は検索と突き合わせの結果から入れます。
{
"inquiry_id": "",
"client_id": "",
"team": "",
"clues": {
"case_no": "", "client_ref": "", "application_no": "",
"title_terms": [""], "period": "", "co_applicants": [""],
"asked": ["stage | deadline | document"]
},
"case_candidates": [ { "case_no": "", "title": "", "score": 0 } ],
"resolved_case": "",
"docket": { "stage": "", "next_deadline": "", "updated_at": "" },
"stale": false,
"answer_parts": [
{ "kind": "docket | document | reported | ask_attorney",
"text": "",
"sources": [ { "doc_type": "", "date": "", "link": "" } ] }
],
"questions_to_attorney": [""]
}
1つ目の理由は、case_candidates と resolved_case を分けていることです。 候補が1件のときだけ resolved_case に入り、2件以上なら空のまま回答案を作りません。 通知の画面は候補の一覧と、顧問先に確かめる文の下書きになります。
2つ目は、docket を回答案と別に持つことです。 担当者は docket.stage を案件管理システムの画面と見比べ、回答案の段階の文と一致しているかだけを見れば足ります。
3つ目は、stale です。 台帳の最終更新日より新しい書類が書類の索引にあれば true にします。台帳の更新が追いついていない案件を、回答の前に見つける合図です。
stale と候補の件数 | 担当者の扱い |
|---|---|
候補1件・stale が false | 根拠を確かめて送る |
候補1件・stale が true | 台帳を先に更新するか、担当弁理士に段階を確かめる |
| 候補2件以上 | 回答案は無い。顧問先に案件番号を確かめる |
| 候補0件 | 顧問先の特定か、手がかりの取り出しを疑う |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有メールボックス | Make のトリガー | 問い合わせメールの受信を検知する |
| 顧問先の対応表 | 一覧の読み取り | 送信元アドレスから顧問先IDと担当チームを引く |
| Claude API | API呼び出し(2回) | 手がかりの取り出しと、根拠付きの回答案 |
| Amazon OpenSearch Service | 検索API(チームごとの検索用の利用者) | 案件の候補、台帳の記録、書類の検索 |
| 案件管理システム | 毎晩の書き出し | 台帳の写しを索引へ入れ直す |
| Teams | 通知 | 回答案、候補の一覧、確認事項を担当者へ |
案件管理システムへは書き込みません。 台帳が古いと分かっても、この構成は印を付けるだけで、段階を直すのは事務担当が案件管理システムの画面で行います。 検索基盤の写しから台帳を直す経路を作ると、写しの誤りが正へ逆流します。
チームごとの検索用の利用者には、読み取りの権限だけを与えます。 文書レベルのセキュリティは検索や取得のような読み取りを制限するもので、書き込みは制限しないとされています。索引への追加は、別の取り込み用の利用者で行います。
人が確認する
全件、事務担当が確認してから送ります。 確認の順番を決めておきます。
- 顧問先と案件を見る … 通知の先頭に顧問先名と
resolved_caseの案件番号・発明の名称を出します。問い合わせの手がかりと合わなければ、以降は読まずに差し戻します docket.stageを案件管理システムと見比べる … 回答案の段階の文と一致しているかを見ますstaleがtrueなら先に台帳を確かめる … 新しい書類が台帳に反映されていなければ、台帳を更新してから回答案を作り直しますask_attorneyを担当弁理士へ回す … 見通しや方針を問われた部分です。事務担当が埋めませんdocumentの根拠を開く … 書類の原本で、その文が本当にそう書いているかを確かめます
2番目を省かないでください。 検索基盤の台帳は前の晩の写しで、今日の午前に段階を直していれば、写しはまだ古い値です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 送信元アドレスが対応表にない | 処理を止め、事務担当が顧問先を選ぶ。 選んだ結果を対応表に追加する |
| 候補の案件が2件以上 | 回答案を作らない。候補の一覧と、顧問先に案件番号を確かめる文の下書きを出す |
| 候補の案件が0件 | 担当外のチームの案件か、手がかりの誤り。チームを変えて検索し直さない。 事務担当が判断する |
| 台帳の書き出しが失敗した | すべての回答案に「台帳が前日より古い」と印を付ける |
| 台帳より新しい書類がある | stale を true にし、台帳の確認を先に求める |
| 未報告の書類について問われた | 種類と日付だけを書き、弁理士の報告を待つ旨の文にする |
| 1通の問い合わせで複数の案件を聞かれた | 案件ごとに検索し、回答案を案件ごとに分ける |
| 手続の依頼(補正の指示、期限の延長の依頼)だった | 回答案を作らず、担当弁理士へ回す |
| 検索基盤が応答しない | 問い合わせは未処理のまま残し、通常の手順で対応する |
3行目の「チームを変えて検索し直さない」が、線引きを守る最後の工程です。 権限の広い利用者で探し直す分岐を作れば、文書レベルのセキュリティを入れた意味がなくなります。
記録を残す
- 問い合わせメールの原文と、特定した顧問先ID・担当チーム(自動で決めたか、人が選んだか)
- 1回目の呼び出しで取り出した手がかりのJSON
- 検索に使った利用者、検索の条件、返った候補の案件の一覧
- 回答案のJSONと、citations で付いた根拠の位置
- 台帳の最終更新日と
staleの判定 - 事務担当と弁理士が直した箇所と、送った回答の全文
3つ目で「検索に使った利用者」を残すのは、線引きの証跡になるからです。 担当外の案件を見ていないことを後から示せます。
04実装レベルの3段階
最小構成は、約1,800件の案件には続きません。 確かめるための段階です。 半自動化で、1件18分が10分程度になります。 案件の特定と最新の書類の取り出しは速くなりますが、報告履歴を探す作業と、回答を書く作業が残ります。本格構成で6分になり、この段階が本記事の想定です。 差が大きいのは、報告履歴まで検索の対象に入り、顧問先にどこまで伝えたかを探さなくてよくなることです。 文書レベルのセキュリティは、半自動化の段階で入れてください。 後から足すと、それまでの検索がすべて広い権限で行われていたことになります。
05工数削減シミュレーション
導入後 160件 × 6分 ÷ 60 = 16 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 顧問先が数十社あり、出願中の案件を数百件以上抱える特許事務所。顧問先の知財担当者から「あの件はいまどうなっているか」という問い合わせがメールで毎月100件以上届き、案件管理システムと書類の保管フォルダと過去の報告メールを行き来して答えている場合。同じ技術分野で競合する顧問先を担当チームで分けており、その線引きを検索の仕組みでも守りたい場合。
- 顧問先が数社で、担当弁理士が案件の状況をすべて覚えている事務所。案件管理システムの段階の記録が更新されておらず、台帳を正と扱えない場合。庁との往復書類を紙でしか保管していない場合。なお、審査の見通しや、応答の方針についての判断は、この構成では代替できません。
07最小構成で試す方法
- 先月届いた問い合わせから20件を選ぶ(案件番号で書かれたもの、名称や時期だけで書かれたもの、両方を入れる)
- その20件について、実際に送った回答を用意する
- 1件ずつ、その顧問先の案件台帳の一覧(段階と期限の列を含む)と、該当する案件の最新の書類数点を、手元の生成AIサービスに入れる
- 「この問い合わせがどの案件のことかを候補で挙げてください。1件に決まる場合だけ、台帳の段階の値をそのまま使って回答案を作ってください。見通しは書かず、根拠にした記録と書類を示してください」と指示する
- 候補の挙げ方と回答案を、実際に送った回答と突き合わせる
3番目は、顧問先ごとに会話を分けてください。 複数の顧問先の台帳を1つの会話に入れないためです。
| 出てきた内容 | 判断 |
|---|---|
| 実際の回答と同じ案件を、同じ段階で答えた | 検索基盤の構築に進む |
| 書類から段階を組み立てた・見通しを書いた | 指示の書き方で直る。構成は有効 |
| 名称や時期だけの問い合わせで候補が絞れない | 台帳の項目が足りない。発明の名称の通称や共同出願人の列を足す |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 書類の文面から段階を組み立てる | 段階は台帳から渡し、言い換えを禁じる |
| 候補が2件あるのに1件を選んで答える | 件数を連携の仕組みで数え、2件以上なら回答案を作らない |
| 担当外のチームの案件が候補に出る | 文書レベルのセキュリティで絞る。 問いの文面で絞らない |
| 見つからないときに広い権限で探し直す | その分岐を作らない。見つからないことを人が判断する |
| 「team-A」で絞っても別チームの文書が通る | 絞り込みの項目を keyword の型にする |
| 台帳の写しが古く、1段階前の状況を答える | 台帳の最終更新日と最新の書類の日付を比べ、stale を付ける |
| 未報告の書類の中身を回答案が説明する | reported の印を持たせ、種類と日付だけを書かせる |
| 期限を書類の日付から計算する | 期限は台帳の値だけを使う。延長の事実は台帳にしかない |
| structured outputs と citations を1回で使おうとする | 2つは同じ要求で使えない。 呼び出しを分ける |
| 番号の表記ゆれでキーワード検索が当たらない | 全角・桁の省略を正規化してから検索する |
上の4行が、この構成の失敗のほとんどです。 段階は台帳、候補の件数は機械、線引きは権限という3つの置き場所を、最初の設計で固めてください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧問先の未公開の出願内容(公開前の明細書、補正の内容)、庁との往復書類、顧問先の製品計画に触れる問い合わせ、そして事務所の報告の履歴です。
- 担当チームの線引きを権限で守る … 競合する顧問先の案件を同じ検索基盤に入れる以上、線引きは検索の問いではなく、文書レベルのセキュリティで入れます。 チームごとの検索用の利用者には読み取りの権限だけを与えます
- 公開前の出願内容を生成AIに渡す範囲を絞る … 回答に要るのは段階と期限と書類の種類が中心です。明細書の本文を回答案の根拠に使わない設計にし、書類の索引にも入れる書類の種類を決めておきます
- 見通しを書かない … 「来月には登録になる見込み」は、顧問先の製品発表の判断に使われます。見通しは担当弁理士が自分の言葉で伝えます
- 未報告の書類の評価を先に出さない … 庁から届いた書類の内容は、弁理士が確かめて報告するものです。回答案の段階で要約や評価を出しません
- 送信を自動にしない … 別の案件の状況を答えれば、顧問先の社内への説明がそのまま誤ります。 送るのは必ず人です
- 検索基盤を顧問先へ開放しない … 約1,800件の案件の段階と書類がまとまった索引です。顧問先向けの検索画面を作る設計にはしないでください
誤りが起きた場合のリスクは、別の案件の状況を答えることと、担当外のチームの情報が回答に混ざることの2つです。 前者は顧問先の社内の判断を誤らせ、後者は事務所の信頼そのものを損ないます。どちらも件数の判定と権限の設計で防ぎ、最後に人が確かめます。
10まず何から始めるか
1週目:顧問先の対応表と担当チームの一覧を作る
顧問先IDと会社名、問い合わせを送ってくるメールアドレスの一覧、担当チームをまとめます。競合する顧問先を別チームで担当している組み合わせに印を付けます。ここが、権限の設計のすべての前提です。
2週目:20件で試す
先月の問い合わせから20件を選び、顧問先ごとに台帳の一覧と書類を入れて回答案を作らせます。実際に送った回答と、答えた案件と段階が一致するかを見ます。 書類から段階を組み立てていないか、見通しを書いていないかも確かめます。
3週目:台帳の段階をそろえる
案件管理システムの「現在の段階」を、事務所で決めた選択肢の値にそろえます。自由記述になっている案件の一覧が、この週の成果です。あわせて、顧問先が使う案件の通称を台帳に足します。
4週目:台帳を検索基盤に入れる
細かなアクセス制御を有効にしたドメインを作り、チームごとの検索用の利用者と文書レベルのセキュリティを設定してから、台帳の写しを入れます。担当外のチームの利用者で検索して、1件も返らないことを最初に確かめます。
2か月目: 書類の本文と報告履歴を取り込み、問い合わせメールの受信から候補の検索、回答案の作成までをつなぎます。3か月目以降: stale と候補が割れた件数を毎週数え、1件18分が何分になったかを実測します。台帳の更新の遅れが stale の件数で見え、それが減り始めた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 細かなアクセス制御が索引・文書・項目の単位の制御を提供し、要求した利用者によって検索の件数や項目が変わること。文書レベルのセキュリティが、ロールに索引のパターンと OpenSearch のクエリを指定し、割り当てた利用者がクエリに合う文書だけを見られるものであること。HTTPS、保存時の暗号化、ノード間の暗号化が前提で、有効にすると無効にできないこと。バックエンドロールでロールの割り当てを簡単にできること | Amazon OpenSearch Service Developer Guide: Fine-grained access control | 2026-09-30 |
文書レベルのセキュリティが検索や取得などの読み取りを制限し、書き込みは制限しないこと。${user.name}、${user.roles}(バックエンドロールの引用符付き・カンマ区切りの一覧)、${attr.<TYPE>.<NAME>} の置き換えがあること。複数のロールのクエリは OR で結合されること。text の型の値に記号が入ると標準の解析器が値を分割し、意図しない絞り込みになりうるため keyword の型が勧められていること | OpenSearch Documentation: Document-level security | 2026-09-30 |
ハイブリッドクエリが複数のクエリのスコアを検索パイプラインで1つに統合し、クエリの句が最大5つであること。filter がすべての下位のクエリにかかり、単一のクエリの形で書くこと | OpenSearch Documentation: Hybrid query | 2026-09-30 |
| ハイブリッド検索がキーワード検索と意味の検索を組み合わせ、検索時に動く検索パイプラインでスコアを正規化して統合すること。正規化プロセッサ(スコアに基づく)とスコアランカープロセッサ(順位に基づく RRF)があること。テキスト埋め込みモデルが前提で、取り込みパイプラインの text_embedding プロセッサが指定した項目から埋め込みを作ること | OpenSearch Documentation: Hybrid search | 2026-09-30 |
文書ごとに citations を有効にすると回答の根拠の位置が返り、1つの要求の中では全文書で有効か全文書で無効かのどちらかであること。title と context は引用の対象にならないこと。スキャンで抽出できる文字の無いPDFは引用できないこと。citations と structured outputs を同じ要求で使うと400のエラーになること | Anthropic Docs: Citations | 2026-09-30 |
structured outputs が output_config.format にJSONスキーマを指定して使い、スキーマに合う応答を返すこと。一般提供されていること | Anthropic Docs: Structured outputs | 2026-09-30 |
審査の見通しや応答の方針についての判断は、担当の弁理士が行ってください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0392)についてのご相談はこちらから。
