研究者の依頼を受けて、エージェントが特許と論文の公開情報を検索して読み、先行技術の調査メモの下書きと検索式の記録を作る
研究者が出した調査の依頼から、エージェントが検索式を組み、特許と論文の公開情報をAPIで検索して読みます。技術の構成要素ごとに近い文献を対比し、調査メモの下書きと、使った検索式と件数の記録を作ります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Python
- 対象業界
- IT・SaaS/医療/製造
- 対象部門
- 知財/研究開発
- 対象業務
- 情報検索/書類作成
- 主な課題
- 人手が足りない/属人化している/情報が見つからない
- AIで行う処理
- エージェント
- 主な効果
- 属人化解消/工数削減/検索時間短縮
- 導入難易度
- ★★★★★
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 研究者の依頼を読み、技術の構成要素を書き出す。分からない点は研究者に聞く
- J-PlatPat と有料の特許データベースで、言葉と分類を組み合わせて検索する
- 件数が多すぎれば絞り、少なすぎれば広げる。これを何度か繰り返す
- 時間があれば、外国の特許と英語の論文も検索する
- 上位の文献の要約と請求の範囲を読み、近そうなものを本文まで読む
- 近い文献について、構成要素ごとに一致・相違を書き出す
- 調査メモにまとめ、研究者に返す
- 人研究者が受付フォームで依頼を出す(項目は変わらない)
- 自動依頼の登録をきっかけに、エージェントが依頼を読み、構成要素の案を作る
- 人調査担当が構成要素の案を見て、直すか承認する
- 自動エージェントが構成要素ごとに検索式を組み、OPS と J-STAGE WebAPI を呼ぶ。件数を見て式を直す
- 自動返った文献の書誌と要約を読み、近いものを選んで全文を読む(読めるものだけ)
- 自動日本の公報の全文検索に使う J-PlatPat の検索式を組む
- 人調査担当が J-PlatPat でその式を流し、近い公報の番号を候補に足す
- 自動エージェントが候補を構成要素ごとに対比し、調査メモの下書きと検索の記録を作る
- 人調査担当が近い文献の原文を開いて対比を確かめ、メモを直して研究者に返す
各工程の詳しい説明を読む
- 研究者の依頼を読み、技術の構成要素を書き出す。分からない点は研究者に聞く
- J-PlatPat と有料の特許データベースで、言葉と分類を組み合わせて検索する
- 件数が多すぎれば絞り、少なすぎれば広げる。これを何度か繰り返す
- 時間があれば、外国の特許と英語の論文も検索する
- 上位の文献の要約と請求の範囲を読み、近そうなものを本文まで読む
- 近い文献について、構成要素ごとに一致・相違を書き出す
- 調査メモにまとめ、研究者に返す
(a)依頼が順番待ちになる。 1件に半日以上かかるので、6名で月40件を回すと、出願や中間処理の期限のある仕事が先になり、簡易調査は後回しになります。 研究者が待つあいだにテーマは進みます。
(b)検索の過程が残らない。 2番目と3番目の試行錯誤は、担当者の画面の上だけで行われます。メモには「近い文献」しか書かれず、どの検索式で何件見たかは残りません。 半年後に同じテーマの依頼が来ても、前回どこまで見たかが分かりません。
(c)外国と論文が抜ける。 4番目は「時間があれば」です。英語の論文や欧州の特許に近い技術があっても、見なかったものは「無かった」と同じ扱いでメモに載ります。
- 【人】 研究者が受付フォームで依頼を出す(項目は変わらない)
- 【自動】 依頼の登録をきっかけに、エージェントが依頼を読み、構成要素の案を作る
- 【人】 調査担当が構成要素の案を見て、直すか承認する
- 【自動】 エージェントが構成要素ごとに検索式を組み、OPS と J-STAGE WebAPI を呼ぶ。件数を見て式を直す
- 【自動】 返った文献の書誌と要約を読み、近いものを選んで全文を読む(読めるものだけ)
- 【自動】 日本の公報の全文検索に使う J-PlatPat の検索式を組む
- 【人】 調査担当が J-PlatPat でその式を流し、近い公報の番号を候補に足す
- 【自動】 エージェントが候補を構成要素ごとに対比し、調査メモの下書きと検索の記録を作る
- 【人】 調査担当が近い文献の原文を開いて対比を確かめ、メモを直して研究者に返す
3番目が、この設計の分かれ目です。 構成要素の切り方を誤ると、以降の検索がすべてずれます。エージェントに検索を始めさせる前に、担当者が構成要素を承認します。
7番目を人に残しているのは、日本の公報の全文をこの構成からは機械で引けないためです。 引けない範囲を推測で埋めさせず、担当者の検索として記録に残します。
02今回想定するシステム構成
受付フォーム(技術の概要、着目する構成、用途、既知の文献) ▼【トリガー】依頼の登録 Claude API ── 構成要素の案 ▼ 【担当者が承認】 ▼ Claude API(エージェント)⇄ Python(道具の実行) ├── search_patents ──▶ EPO OPS(CQL で書誌を検索) ├── get_family ───────▶ EPO OPS(ファミリーを引く) ├── get_fulltext ─────▶ EPO OPS(EP・WO 等の請求の範囲と明細書) ├── search_papers ────▶ J-STAGE WebAPI(記事を検索) ├── web_fetch ────────▶ 許可したドメインの論文の本文(サーバー側の道具) └── record_search ────▶ 検索の記録(式・件数・日時) ▼ J-PlatPat の検索式 ──▶【担当者が流し、候補を足す】 ▼ Claude API ── 構成要素ごとの対比、調査メモの下書き ▼ 【担当者が原文で確認】──▶ 研究者へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Claude API(構成要素の案、検索の計画と道具の呼び出し、文献の読み込みと対比、メモの下書き) | OpenAI API、Gemini API |
| 連携 | Python(道具の実行、OPS と J-STAGE の呼び出し、検索の記録) | n8n、Make |
| 特許データ | EPO Open Patent Services(OPS) | 有料の特許データベースのAPI |
| 論文データ | J-STAGE WebAPI | CiNii Research |
| 人が使う検索 | J-PlatPat(日本の公報の全文検索) | 有料の特許データベースの画面 |
エージェントの土台は、Claude API の道具(tool use)です。 自社で定義した道具(クライアントの道具)は、Claude が stop_reason: "tool_use" と tool_use のブロックで呼び出しを返し、自社のプログラムが実行して tool_result で結果を返します。 web_fetch のようなサーバーの道具は、Anthropic の側で実行されます。OPS と J-STAGE を呼ぶのは自社の Python で、APIの認証情報は Claude に渡りません。
特許の側は OPS です。 OPS は、欧州特許庁の書誌・世界の法的状態・全文・画像のデータベースに標準化されたXMLで接続するウェブサービスで、登録して認証情報を取得する必要があります。 無償では週4GBまでのデータを使え、それを超える場合は年間の有償契約(2,800ユーロ)になります。検索は CQL で書き、英語の題名・要約(ta)、出願人(pa)、CPC(cpc)、IPC(ic)、公開日(pd)などの索引を使えます。
全文の提供国には限りがあります。 OPS が請求の範囲と明細書を提供するのは、EP、WO と、欧州の各国・カナダなどで、日本(JP)は含まれていません。 日本の出願は、OPS では書誌と英語の題名・要約で探し、EP や WO にファミリーがあれば、その全文を読みます。
論文の側は J-STAGE WebAPI です。 J-STAGE に公開されている記事を、記事の題名・著者名・キーワード等の条件で検索し、メタデータをXMLで返します(Atom と OpenSearch に準拠)。 利用には利用規約への同意が必要で、商用利用では有償・無償を問わず申請書の提出が必要とされています。社内での利用が当たるかを、最初に確かめて申請します。
03どうやって実装するのか
処理の起点を決める
受付フォームへの依頼の登録を起点にします。 登録を受けて、エージェントは依頼を読み、構成要素の案だけを作って止まります。検索は、担当者が構成要素を承認してから始めます。
承認を挟むのは、エージェントが最も間違えやすいのが構成要素の切り方だからです。研究者の依頼は「この材料をこう使う」のように用途の話で書かれていることが多く、そのまま検索すると、用途は同じでも構成の違う文献ばかりを拾います。 担当者は案を見て、要素を足す、分ける、重みを付けるの3つを行います。
承認は、受付の一覧の状態を「承認」に変えることで伝えます。 Python が10分ごとに一覧を見て、承認された依頼を1件ずつエージェントに渡します。同時に走らせる依頼は2件までにし、「発明届の前」の依頼を先に回します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 依頼 | 技術の概要、着目する構成、想定する用途、既知の文献、急ぎの区分 | 受付フォーム |
| 承認された構成要素 | 要素ごとの記号(A、B、C…)、内容、重み(必須/あれば) | 担当者が承認した一覧 |
| 分類の対応表 | 自社の技術分野ごとによく使う CPC と FI の一覧 | 知財部が管理する表 |
| 同義語の一覧 | 社内の呼び方と、特許・論文での呼び方の対応 | 知財部が管理する表 |
| 過去の調査の記録 | 同じテーマで前に使った検索式と件数 | 検索の記録 |
質を決めるのは、同義語の一覧です。 社内で「ナノ繊維シート」と呼んでいるものが、特許では「不織布」「繊維集合体」、英語では "nonwoven" "fibrous web" と書かれています。エージェントに一から考えさせると、毎回違う言葉で引くので、件数が比べられなくなります。 一覧を渡し、そこから使わせます。
分類の対応表は、ベテランが使ってきた「この分野ならこの分類」を表にしたものです。 これを渡すのが、属人化をほどく最初の一歩です。
データの取得方法を決める
| 取るもの | どこから | どの道具で |
|---|---|---|
| 特許の書誌と英語の要約 | OPS の published-data の検索(CQL) | search_patents |
| ファミリー | OPS の family の取得 | get_family |
| 請求の範囲と明細書(EP・WO 等) | OPS の全文の取得 | get_fulltext |
| 論文の書誌 | J-STAGE WebAPI の記事の検索 | search_papers |
| 論文の本文(公開されているもの) | 論文のページやPDF | web_fetch(サーバー側の道具) |
| 日本の公報 | J-PlatPat(担当者が検索) | 担当者が候補に足す |
OPS の検索は、1回に返せる範囲が決まっています。 返す範囲は既定で1〜25件、指定しても1回の最大は100件で、検索結果の総数が2,000件を超えると、それ以上は取り出せません。 search_patents は総数を先に返し、2,000件を超えたら書誌を取らずに「絞り込みが必要」と返すように作ります。エージェントは総数を見て、式を絞るか広げるかを決めます。
OPS のアクセストークンは約20分(expires_in が1199秒)で切れます。 Python 側で取り直し、Claude には渡しません。
web_fetch は、取りに行ける先を絞ります。 web_fetch は会話の中にすでに現れたURLしか取りに行けず、allowed_domains で取得先を限れます。J-STAGE や OPS の結果に出た論文のページだけを取りに行かせ、取得先は J-STAGE と自社で許可した学術出版のドメインに限ります。 JavaScript で描画するページは取れません。
web_search は使いません。 依頼の内容は未公開の発明であることが多く、検索の言葉が外部の検索エンジンに出ていく経路を、増やしたくないためです。 組織の管理者は Claude Console で web_search を無効にでき、無効にした組織で道具を指定するとエラーで止まります。
AIへ渡す前に整形する
- 依頼の整形 … 受付フォームの項目を、決まった形のテキストにします
- 秘密の度合いの確認 … 研究者が「社外秘の数値・配合」の欄に書いたものは、エージェントに渡しません
- 構成要素の承認 … 担当者が承認した一覧だけを、エージェントに渡します
- 同義語と分類の取り出し … 依頼の技術分野で、同義語の一覧と分類の対応表から該当する行だけを取り出します
- 過去の記録の引き当て … 同じ技術分野で過去1年の検索の記録を引き、使った式と件数を渡します
- 道具の上限の設定 … 1件の依頼で呼べる回数を、
search_patents30回、get_fulltext15回、web_fetch10回のように決めます
2番目が、この構成の安全の要です。 先行技術の調査に、配合の比率や実験の数値は要りません。検索式に入るのは構成の言葉と分類で、数値ではありません。 研究者には、受付フォームの段階で「調査に要る範囲」と「社外秘」を分けて書いてもらいます。
6番目の上限は、式を少しずつ変えて何十回も呼ぶのを止めるためです。 web_fetch には max_uses で上限を付けられます。上限に当たったら打ち切り、そのことをメモに書きます。
AIに処理させる
させるのは、検索の計画と実行、文献の読み込み、構成要素ごとの対比、メモの下書きです。
| 段階 | させること | 判断できないときの扱い |
|---|---|---|
| 構成要素の案 | 依頼から、技術の構成要素を記号付きで書き出す | 依頼の情報が足りなければ、研究者への質問を作る |
| 検索の計画 | 要素ごとに言葉(同義語の一覧から)と分類を組み合わせた式を作る | 一覧に無い言葉を使うときは、その旨を記録する |
| 検索の実行 | 道具を呼び、総数を見て式を直す | 上限に当たったら打ち切る |
| 文献の選別 | 書誌と要約から、読む文献を選ぶ | 要約が無い文献は「要約なし」として候補に残す |
| 読み込み | 全文が取れるものは請求の範囲と実施例を読む | 取れないものは「全文未読」と付ける |
| 対比 | 構成要素ごとに、一致/相違/記載なし/未確認を付け、根拠の箇所を書く | 根拠の箇所が示せなければ「未確認」 |
| J-PlatPat の式 | 日本の公報の全文検索に使う論理式を組む | — |
対比の右端の列がいちばん大事です。 「記載なし」は、全文を読んで見当たらなかったということ、「未確認」は、要約しか読めていないということです。要約に書かれていないことを「記載なし」とすると、近い文献が遠く見えます。 全文を読んでいない文献に「記載なし」を付けさせません。
| させないこと | 理由 |
|---|---|
| 新規性・進歩性の判断 | 弁理士と知財部の判断。簡易調査の範囲を超える |
| 「先行技術は無い」という結論 | 見た範囲で見つからなかった、としか言えない |
| 文献番号の推測 | 道具が返した番号だけを書く。覚えている番号を書かない |
| 社外秘の数値を検索式に入れる | 外部のサービスに出ていく |
| 日本の公報の全文の内容を推測する | 読めていないものを読んだように書かない |
3行目がいちばん危ない失敗です。 エージェントは、道具が返していない文献を「関連する文献として JP20XX-XXXXXX がある」と書くことがあります。番号が実在しても内容が違い、実在しないこともあります。 メモに載る番号は、Python 側で検索の記録と突き合わせ、記録に無い番号は下書きから外して印を付けます。
指示内容を固定する
あなたは知財部で先行技術の簡易調査を担当するエージェントです。
承認された構成要素に沿って、道具で特許と論文を検索し、読み、対比してください。
【使える道具】
- search_patents(cql, range) : OPS の書誌検索。総数と書誌・英語の要約を返す
- get_family(publication_number) : ファミリーを返す
- get_fulltext(publication_number) : 請求の範囲と明細書(EP・WO 等のみ)
- search_papers(keyword, pubyear_from) : J-STAGE の記事の書誌を返す
- web_fetch : 検索結果に出た論文のページ・PDFを読む
- record_search(source, query, total, note) : 検索の記録を残す
【進め方】
1. 構成要素ごとに、同義語の一覧と分類の対応表から式を作る。
一覧に無い言葉を使うときは record_search の note に理由を書く。
2. 検索のたびに record_search を呼ぶ。式と総数を必ず残す。
3. 総数が2,000件を超えたら絞る。数件しかなければ広げる。
4. 読む文献は、構成要素のうち「必須」のものに関わるものから選ぶ。
5. 日本の出願は書誌と英語の要約で見る。EP・WO のファミリーがあれば
その全文を読む。無ければ「全文未読」とする。
6. 最後に、日本の公報の全文検索に使う J-PlatPat の論理式を作る。
【対比の付け方】
- match ........ 全文または要約に、その要素と同じ構成が書かれている
- differ ....... 全文に、その要素と異なる構成が書かれている
- absent ....... 全文を読んで、その要素についての記載が見当たらない
- unverified ... 要約しか読めていない、またはその部分が取れなかった
全文を読んでいない文献に absent を付けないでください。
【厳守事項】
- 文献番号は、道具が返したものだけを書く。覚えている番号を書かない。
- 新規性・進歩性、出願の可否についての意見を書かない。
- 「先行技術は無い」と書かない。見た範囲と、その範囲で見つかったものを書く。
- 社外秘の数値・配合を検索式に入れない(そもそも渡されていない)。
- 上限に当たって打ち切った場合は、打ち切ったことと、見ていない範囲を書く。
【依頼】{request}
【承認された構成要素】{elements}
【同義語の一覧】{synonyms}
【分類の対応表】{classes}
【過去の検索の記録】{history}
「全文を読んでいない文献に absent を付けない」を明記しないと、要約に無いことを記載なしと書きます。 要約は数行で、構成要素の多くには触れていません。触れていないことを「書かれていない」と読む癖を、指示で止めます。
「見た範囲を書く」を求めるのは、結論の言い方を縛るためです。 「先行技術は見当たらない」と書かれたメモは、研究者に「出せる」と読まれます。言えるのは「OPS で何件、J-STAGE で何件を見た範囲では」までです。
出力形式を固定する
次の形のJSONで受け取ります。
{
"request_id": "",
"elements": [ { "id": "A", "text": "", "weight": "required | optional" } ],
"searches": [
{ "source": "OPS | J-STAGE | J-PlatPat", "query": "", "total": 0, "note": "" }
],
"candidates": [
{ "number": "", "source": "OPS | J-STAGE | J-PlatPat", "title": "",
"read_level": "fulltext | abstract | none",
"comparison": [
{ "element": "A", "status": "match | differ | absent | unverified",
"evidence": "" }
] }
],
"jplatpat_query": "",
"truncated": false,
"not_covered": [""],
"memo_draft": ""
}
スキーマでは source、read_level、status を enum にし、すべてのオブジェクトの additionalProperties を false にします。
1つ目の理由は、検索の過程と結論を分けて残せることです。 searches が過程、candidates が結論です。半年後に同じテーマの依頼が来たら、searches を引けば前回の式と件数がそのまま分かります。
2つ目は、読んだ深さを文献ごとに残せることです。 read_level が abstract の文献の対比は、unverified が多くなります。担当者は、match が多く read_level が fulltext の文献から原文を開きます。
3つ目は、見ていない範囲を書かせられることです。 not_covered に「日本の公報の全文(J-PlatPat の式は別記)」「中国語の公報」のように書かせ、truncated で打ち切りの有無を示します。
read_level と status | メモでの扱い |
|---|---|
fulltext で必須の要素がすべて match | 「近い文献」の筆頭。担当者が原文で必ず確かめる |
fulltext で一部が differ | 「相違点のある文献」。相違の要素を明記 |
abstract で unverified を含む | 「全文の確認が要る文献」 |
| 記録に無い番号 | Python が外し、「出典不明」として担当者に示す |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォームの一覧 | Python で読み書き | 依頼の取得、状態の変更(承認/調査中/下書き済み) |
| Claude API | API呼び出し(道具付き) | 構成要素の案、検索の計画と実行、対比、メモ |
| EPO OPS | Python から REST で呼ぶ | 書誌の検索、ファミリー、全文 |
| J-STAGE WebAPI | Python から呼ぶ | 記事の書誌の検索 |
| 検索の記録 | Python で書き込み | 依頼ごとの式・件数・日時 |
| 文書の共有フォルダ | Python で書き込み | 調査メモの下書き |
エージェントのやり取りは、Python が1往復ずつ回します。 Claude が tool_use を返したら、Python が道具を実行して tool_result を返し、stop_reason が tool_use でなくなるまで続けます。1往復ごとに、呼んだ道具と入力と結果の要約を記録に書きます。
web_fetch と自社の道具が同じ並列の呼び出しに入ると、 API は stop_reason: "tool_use" で返し、自社の道具の結果を返した次の要求で web_fetch を実行します。 ループをこの前提で書きます。
人が確認する
下書きは全件を担当者が確かめます。 研究者の判断の材料になる文書で、誤りがテーマの進め方に響くためです。
- 構成要素を承認する(検索の前) … 要素の切り方と重みを直します
- J-PlatPat で式を流す … エージェントが組んだ式を流し、件数を見て必要なら直し、近い公報の番号を候補に足します
- 「近い文献」の原文を開く …
matchが多い文献は、請求の範囲と実施例を原文で読みます。エージェントの対比をそのまま写しません - 「出典不明」を消す … 記録に無い番号は、原則として消します
- 見ていない範囲を書く …
not_coveredを読み、研究者に伝える範囲をメモに書きます
3番目を省かないでください。 対比の match は、言葉が似ているだけのことがあります。近い文献の数件を原文で読む時間が、確認の30〜40分の大部分です。
判定を覆した記録を残します。 match を differ に直した、候補を外した、の理由を残すと、同義語の一覧と分類の対応表の直しどころが分かります。
例外に対処する
| 起きること | 対応 |
|---|---|
| OPS の検索が2,000件を超える | 書誌を取らずに総数だけ返し、エージェントに絞らせる |
| OPS の使用量が週の上限に近づく | 新しい依頼の検索を止め、担当者に知らせる |
| OPS のトークンが切れる | Python が取り直して再実行する |
| 全文が無い(JP 等) | read_level を abstract にし、ファミリーを引く |
| web_fetch が取れない | url_not_accessible などのエラーが返る。「全文未読」として続ける |
| 道具の呼び出しの上限に当たる | 打ち切り、truncated を true にして下書きを作る |
| 依頼の情報が足りない | 構成要素の案の段で、研究者への質問を作って止まる |
| 記録に無い文献番号が出る | 下書きから外し、「出典不明」として担当者に示す |
| API が応答しない | 状態を「承認」のまま残し、次の回に拾い直す |
4行目が最も多く起きます。 EP や WO のファミリーが無い日本の出願は、担当者の J-PlatPat の検索で埋めます。
記録を残す
- 依頼の内容と、担当者が承認した構成要素
- 検索の記録 … 道具の名前、式、総数、日時、打ち切りの有無
- エージェントの往復の記録(呼んだ道具、入力、結果の要約)
- 返ったJSONの全文と、調査メモの下書き、担当者が直した後のメモ
- 担当者が J-PlatPat で流した式と件数、足した公報の番号
- 担当者が判定を覆した記録
2つ目が、この構成で最も価値のある記録です。 同じ技術分野の次の依頼で、エージェントは過去の式と件数から始められます。担当者が替わっても、調査のやり方が記録として残ります。
04実装レベルの3段階
最小構成では工数はほとんど減りません。 確かめるための段階です。 半自動化で、1件360分が200分程度になります。 検索の実行と書誌の一覧化は自動になりますが、全文を読んで対比する作業が人に残ります。本格構成で120分になり、この段階が本記事の想定です。 残る120分は、構成要素の承認、J-PlatPat の検索、近い文献の原文の確認、メモの手直しです。 段階を飛ばさないでください。 半自動化の段で、同義語の一覧と分類の対応表の穴が見えます。
05工数削減シミュレーション
導入後 40件 × 120分 ÷ 60 = 80 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 研究開発の部門が、テーマの着手前や発明届の前に「似た技術がすでに出ていないか」を知財部門に毎月数十件依頼している製造業・素材・電機・医療機器のメーカー。知財部門の調査担当が少なく、簡易調査が順番待ちになっている場合。調査の結果が担当者の頭の中にあり、どの検索式で何件見たかが記録に残っていない場合。外国の特許や英語の論文まで見たいが、手が回っていない場合。
- 依頼が月に数件で、調査担当が十分に手当てできている場合。侵害の有無や登録の可能性について、鑑定や正式な見解を出す必要がある調査(弁理士や調査会社の仕事です)。日本の公報の全文を機械で検索することが必須の場合(この構成では日本の公報の全文検索は担当者が J-PlatPat で行います)。なお、新規性・進歩性の判断や、出願するかどうかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の簡易調査から5件を選ぶ(近い文献が見つかった依頼と、見つからなかった依頼を混ぜる)
- 依頼の内容から社外秘の数値を外し、構成要素を担当者が書き出す
- 社内で使えるAIのサービスに依頼と構成要素を貼り、OPS の CQL の式と J-PlatPat の式を作らせる
- その式を担当者が実際に流し、件数と上位の文献を見る
- 当時の担当者の式と件数、見つけた文献と比べる
最小構成では、エージェントに検索を実行させません。 式を作らせて人が流すだけです。確かめたいのは、式の質です。
| 出てきた内容 | 判断 |
|---|---|
| 当時見つけた近い文献が、作らせた式の上位に入った | 道具をつないでエージェントに進む |
| 件数が多すぎる・少なすぎる | 同義語の一覧と分類の対応表で直る。構成は有効 |
| 構成要素がずれていて、的外れな文献ばかり | 構成要素の承認の段が要る。 先にその運用を固める |
| 実在しない分類や文献番号を書いた | 指示と後段の検査で止める前提で進める |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 実在しない文献番号がメモに載る | 検索の記録と突き合わせ、記録に無い番号を外す |
| 要約に無いことを「記載なし」とする | unverified を設け、全文を読んでいない文献に absent を付けない |
| 「先行技術は無い」と書く | 見た範囲と件数を書かせる。結論の言い方を指示で縛る |
| 構成要素がずれて的外れになる | 検索の前に担当者が承認する |
| 毎回違う言葉で引いて件数が比べられない | 同義語の一覧から言葉を選ばせ、使った言葉を記録する |
| OPS の検索が2,000件を超えて取り出せない | 総数を先に見て絞らせる |
| 日本の公報の全文が読めない | OPS の全文に JP は無い。ファミリーと J-PlatPat で補う |
| エージェントが何十回も検索する | 道具ごとに回数の上限を付け、当たったら打ち切る |
| web_fetch で取れないページがある | JavaScript で描画するページは取れない。「全文未読」で続ける |
| 社外秘の数値が検索式に入る | 受付の段で社外秘を分け、渡さない |
| J-STAGE の商用利用の申請を忘れる | 利用の前に申請書を出す |
上の3行が、この構成の失敗のほとんどです。 どれも「見ていないものを見たように書く」という同じ癖から出ています。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 研究者の依頼に含まれる未公開の発明の内容、構成要素、検索式、そして公開された特許と論文です。
- 未公開の発明の内容を、外部へ出す範囲を絞る … 検索式は OPS と J-STAGE に送られます。構成の言葉と分類だけにし、配合や数値を入れません。 web_search は使わず、組織の設定でも無効にしておきます
- web_fetch の取得先を限る … 公式ページは、信頼できない入力と機微なデータを同時に扱う環境では、データが外へ持ち出されるおそれがあると警告しています。
allowed_domainsで取得先を学術出版のドメインに限り、max_usesで回数を抑えます - API に渡したデータの扱いを確かめる … 未公開の発明を扱うので、生成AIのAPIの利用条件とデータの保持の取り決めを、社内の基準に照らして先に確かめます
- 新規性・進歩性の判断をさせない … 出願するか、テーマを進めるかは、研究者と知財部と弁理士が決めることです。 この構成が出すのは、見た範囲で近い文献の一覧です
- 見ていない範囲を必ず書く … 簡易調査のメモが「調べ尽くした」と読まれると、正式な調査が省かれます
- 利用規約を守る … J-STAGE WebAPI は、JST から提供された情報である旨の表示を求めています。メモに出典として明記します
誤りが起きた場合のリスクは、近い文献を見落として「無い」と伝えることと、実在しない文献を「ある」と伝えることの2つです。 前者は見ていない範囲を書かせないと起き、後者は記録との突き合わせを省くと起きます。
10まず何から始めるか
1週目:同義語の一覧と分類の対応表を作り始める
依頼の多い技術分野を3つ選び、ベテランの担当者が使っている言葉と分類を表にします。
2週目:5件で式を作らせる
先月の依頼から5件を選び、AIの画面で OPS と J-PlatPat の式を作らせて担当者が流します。当時見つけた近い文献が上位に入るかを最優先で見ます。
3週目:OPS の登録と J-STAGE の申請
OPS の登録をして認証情報を取り、J-STAGE WebAPI の利用申請書を出します。 あわせて、受付フォームに「社外秘」の欄を設けます。
4週目:検索の実行と記録までをつなぐ
Python で OPS と J-STAGE を呼ぶ道具を作り、検索の記録を残すところまでを組みます。全文はまだ読ませません。
2か月目: エージェントに式を直させ、全文の読み込みと対比を足し、記録に無い番号を外す検査を入れます。3か月目以降: 調査メモの下書きを足し、1件360分が何分になったかを実測します。同義語の一覧と分類の対応表を担当者の直しで育て、新任の担当者でも同じ式から始められるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
クライアントの道具は自社のアプリで実行し、Claude が stop_reason: "tool_use" と tool_use のブロックを返し、tool_result で結果を返すこと。web_search・web_fetch などのサーバーの道具は Anthropic の側で実行されること | Claude Docs: Tool use with Claude | 2026-10-07 |
web_fetch が会話に現れたURLしか取得できないこと。allowed_domains・max_uses・max_content_tokens があること。JavaScript で描画するページに対応しないこと。データ持ち出しの警告。追加料金がなくトークンの分だけかかり、500kBの論文のPDFで約125,000トークンが目安であること。サーバーの道具と自社の道具を同じ並列の呼び出しに入れたときの扱い | Claude Docs: Web fetch tool | 2026-10-07 |
| web_search が組織の管理者により Claude Console で無効にでき、無効のときは400エラーになること。料金が1,000回あたり10ドルであること | Claude Docs: Web search tool | 2026-10-07 |
構造化出力が output_config.format で指定でき、enum が使え、additionalProperties を false にすること | Claude Docs: Structured outputs | 2026-10-07 |
| OPS が EPO の書誌・世界の法的状態・全文・画像のデータに標準化されたXMLで接続するサービスであること。登録が必要なこと。無償で週4GBまで、超える場合は年間2,800ユーロの契約であること。公正な利用の取り決めがあること | EPO: Open Patent Services (OPS) | 2026-10-07 |
| OPS が請求の範囲と明細書を提供する国が EP・WO と欧州の各国・カナダ等で、JP を含まないこと | EPO FAQ: What is the coverage of full text? | 2026-10-07 |
書誌検索が CQL で、ta(英語の題名・要約)・pa・cpc・ic・pd などの索引があること。返す範囲が既定で1〜25、最大100、総数2,000件までであること。アクセストークンの expires_in が1199秒であること。ファミリーの取得のサービスがあること(PDFの原文を取得して確認) | EPO: OPS RESTful Web Services Reference Guide v1.3.19 | 2026-10-07 |
| J-STAGE WebAPI が公開中の記事の情報を検索し、メタデータをXML(Atom・OpenSearch 準拠)で返すこと。記事の検索条件に記事タイトル・著者名・キーワード等があること。利用規約への同意が必要で、商用利用には有償・無償を問わず申請書が必要なこと。JST から提供された旨の表示を求めていること(原文を取得して確認) | J-STAGE: WebAPI について | 2026-10-07 |
新規性・進歩性の判断と、出願するかどうかは、知財部と弁理士で決めてください。 本記事は公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0831)についてのご相談はこちらから。
