契約審査で、同じ条項を過去にどう修正したかを審査記録から根拠付きで引く
審査中の契約の条項について、過去の審査記録から同じ種類の条項を探し、そのときどう修正して、どこで折り合ったかを根拠付きで示します。担当者の作業は、記憶をたどって探すことから、出てきた事例を見て方針を決めることに変わります。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Make/n8n/Power Automate
- 対象業界
- IT・SaaS/不動産/商社/士業/製造
- 対象部門
- 法務
- 対象業務
- 情報検索/比較検討
- 主な課題
- 判断に時間がかかる/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 属人化解消/工数削減/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 事業部門から契約審査の依頼が届く
- 担当者が契約書を読み、論点を洗い出す
- 自社に不利な条項について、過去にどう対応したかを思い出そうとする
- 心当たりのある案件のフォルダを開いて確かめる
- 見つからなければ、契約管理システムで相手方や契約の種類で絞って探す
- 該当しそうな案件の審査記録を読み、今回に当てはまるかを判断する
- 修正案を作り、事業部門へ渡す
- 相手方との交渉の結果を受けて、再度の審査を行う
- 締結後、審査記録を保管する
- 事業部門から契約審査の依頼が届く
- 担当者が契約書を読み、論点を洗い出す
- 人気になる条項を検索の窓口へ入力する(条文を貼るか、論点を書く)
- 自動条項の種類と論点を読み取る
- 自動過去の審査記録から、近い条項を探す
- 自動そのときの修正の要求と、最終的にどう決着したかを示す
- 自動相手方の立場(仕入先/販売先など)が同じかを併記する
- 自動引用の箇所を、元の審査記録へのリンクとともに返す
- 人担当者が事例を読み、今回に当てはまるかを判断する
- 人修正案を作り、事業部門へ渡す
- 自動締結後、今回の審査記録を検索の対象に足す
各工程の詳しい説明を読む
- 事業部門から契約審査の依頼が届く
- 担当者が契約書を読み、論点を洗い出す
- 自社に不利な条項について、過去にどう対応したかを思い出そうとする
- 心当たりのある案件のフォルダを開いて確かめる
- 見つからなければ、契約管理システムで相手方や契約の種類で絞って探す
- 該当しそうな案件の審査記録を読み、今回に当てはまるかを判断する
- 修正案を作り、事業部門へ渡す
- 相手方との交渉の結果を受けて、再度の審査を行う
- 締結後、審査記録を保管する
問題は7つあります。
(a)探す手がかりが記憶しかない。 「同じ論点」という切り口で引ける仕組みがありません。
(b)案件単位のフォルダしか開けない。 契約書の名前で並んでいるため、条項の内容から辿れません。
(c)契約の種類で絞っても当たらない。 「業務委託」で絞っても数百件あります。その中の損害賠償の条項だけを見たいのに、全件を開くことになります。
(d)読んで比べる時間がかかる。 候補が5件出ても、今回に当てはまるかを判断するには審査記録を読む必要があります。
(e)ベテランに偏る。 過去の事例を思い出せるのは経験の長い人です。若手は探しようがありません。
(f)譲る線が担当者によって違う。 同じ論点でも、担当者によって修正の要求が変わります。相手方から見ると一貫性がないように映ります。
(g)相手方の主張を確かめられない。 「前回はこの条件で」と言われても、その場で確認できません。後から調べて、違っていたことが分かることもあります。
- 事業部門から契約審査の依頼が届く
- 担当者が契約書を読み、論点を洗い出す
- 【人】 気になる条項を検索の窓口へ入力する(条文を貼るか、論点を書く)
- 【自動】 条項の種類と論点を読み取る
- 【自動】 過去の審査記録から、近い条項を探す
- 【自動】 そのときの修正の要求と、最終的にどう決着したかを示す
- 【自動】 相手方の立場(仕入先/販売先など)が同じかを併記する
- 【自動】 引用の箇所を、元の審査記録へのリンクとともに返す
- 【人】 担当者が事例を読み、今回に当てはまるかを判断する
- 【人】 修正案を作り、事業部門へ渡す
- 【自動】 締結後、今回の審査記録を検索の対象に足す
自動化されるのは「論点の読み取り」「検索」「修正と決着の提示」「立場の併記」の4つです。残るのは、当てはまるかの判断と、修正案の作成です。
修正案は書きません。 どう直すか、どこまで譲るかは、担当者と事業部門が判断します。過去の事例をそのまま流用すると、今回の取引に合わない条項になります。
法律上の判断もさせません。 「この条項は無効です」「この規定は法令に違反します」といった記述を出させないでください。法律の解釈は弁護士と法務の担当が行います。
「最終的にどう決着したか」を示すことが、この構成の中心です。 過去にどう修正を求めたかだけでは足りません。その要求が通ったのか、押し戻されたのか、折衷案になったのかが分かって初めて、参考にする価値が決まります。
02今回想定するシステム構成
過去の審査記録 ・契約書の原案と最終版 ・審査のコメント(条項ごと) ・修正の要求と、その理由 ・交渉の経緯と決着の内容 ・契約の属性(種類、相手方の立場、金額の規模) │ ▼ 条項の単位に分割し、属性を付ける │ OpenSearch │ ・k-NN ベクトルフィールドで意味の近さの検索 │ ・ハイブリッド検索(キーワード+ベクトル) │ ・検索パイプラインの正規化プロセッサでスコアをそろえる │ ・属性(条項の種類、相手方の立場、決着の内容)で絞り込み │ ▲ │【トリガー】担当者が条文または論点を入力する │ Claude API │ ・条項の種類と論点を読み取って検索の問いに直す │ ・返ってきた事例が、どの論点で似ているかを書く │ ・structured outputs でスキーマどおりのJSONを返させる │ ▼ 検討材料の一覧(SharePoint リスト) │ ・似た条項 / 似ている論点 / そのときの修正 / 決着 │ ・相手方の立場 / 契約の種類 / 時期 │ ・元の審査記録の該当箇所へのリンク │ ▼ 担当者が読んで判断 ──【人】今回に当てはまるか │ ▼ 修正案を作って事業部門へ ──【人】 │ ▼ 締結後、今回の記録を検索の対象に足す
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | OpenSearch | Azure AI Search、Vertex AI Search |
| 生成AI | Claude API | OpenAI API、Gemini API |
| 連携 | Power Automate | Make、n8n |
| 保管 | SharePoint | Box、Google ドライブ |
| 契約管理 | 既存の契約管理システム | 各社の製品 |
契約管理システムに条項単位の検索があるなら、まずそちらを確認してください。 近年の製品には条項の抽出と比較の機能が入っているものがあります。自前で組む価値があるのは、自社の審査記録(修正の理由と決着の経緯)まで含めて探したい場合です。
契約書の条文だけを検索できても、半分の価値しかありません。 「どう直したか」と「どう決着したか」が、実務でいちばん知りたい部分です。
OpenSearch を選ぶ理由は、キーワードと意味の近さを組み合わせられることです。 契約の条項には、「損害賠償」「免責」といった決まった語が使われます。キーワードだけでも一定の絞り込みができます。
一方で、同じ論点を違う語で書いた条項は、キーワードでは引けません。 「責任の限度」「賠償の上限」「填補する範囲」が同じことを指していることがあります。
OpenSearch は k-NN ベクトルフィールドを使った意味の近さの検索に対応しています。 索引のマッピングで k-NN ベクトルフィールド型のフィールドを定義することで使えます。
ハイブリッド検索が、この構成に向きます。 キーワード検索(BM25)とベクトル検索の結果を1つの要求で組み合わせるハイブリッドクエリがあり、検索パイプラインの正規化プロセッサでスコアをそろえてから統合します。 キーワード検索と意味の近さでは点数の尺度が違うため、この正規化が要ります。
属性による絞り込みも重要です。 条項の種類、相手方の立場、契約の金額の規模。これらで絞らないと、関係のない事例が上位に出ます。
03どうやって実装するのか
処理の起点を決める
担当者が条文または論点を入力したときを起点にします。
自動で走らせないでください。 契約書を受け取るたびに全条項を自動で検索すると、担当者が契約書を読む前に結果が出ます。 まず自分で読んで論点を見つけることが、この業務の出発点です。
入力の形は2通り用意してください。
| 入力の形 | 使う場面 |
|---|---|
| 条文をそのまま貼る | 相手方の原案の条項について探す |
| 論点を自分で書く | 「損害賠償の上限を設けたい」など、方針から探す |
1つ目が実務ではよく使われます。 相手方から届いた条文を貼れば、似た条文を過去にどう直したかが出ます。
2つ目も必要です。 自社から提案する条項を考えるとき、過去にどういう書き方をして通ったかを探したくなります。
もう1つの起点として、交渉中の確認があります。 相手方から「前回はこの条件で」と言われたとき、その場で確かめられる形にしてください。 スマートフォンからも引ける窓口があると、交渉の場で使えます。
締結後の記録の追加も、トリガーとして設計してください。 契約が締結されたら、今回の審査記録を検索の対象に足します。この蓄積がないと、索引が古くなります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 契約書の原案 | 相手方から提示された条文 | 共有フォルダ |
| 契約書の最終版 | 締結した条文 | 契約管理システム |
| 審査のコメント | 条項ごとの指摘と、修正の要求 | 審査記録 |
| 修正の理由 | なぜその修正を求めたか | 審査記録 |
| 交渉の経緯 | どう押し戻され、どこで折り合ったか | 審査記録/担当者のメモ |
| 契約の属性 | 種類、相手方の立場、金額の規模、期間 | 契約管理システム |
| 条項の分類 | 社内で使う条項の種類の区分 | 法務部の文書 |
| ひな形 | 自社のひな形の条文 | 法務部の文書 |
データの取得方法を決める
条項の分類が、この構成の質を決めます。 「損害賠償」だけでは粗すぎます。次の粒度で分けてください。
| 大区分 | 小区分の例 |
|---|---|
| 責任・賠償 | 賠償の上限/間接損害の除外/免責事由/保証の範囲 |
| 解除・終了 | 解除事由/中途解約/期間と更新/終了後の措置 |
| 知財 | 成果物の権利の帰属/実施権/既存の知財の扱い |
| 秘密保持 | 秘密の定義/例外/期間/返還と破棄 |
| 支払 | 支払条件/遅延損害金/相殺/値上げの条項 |
| 契約の管理 | 譲渡の禁止/変更の方法/通知/完全合意 |
| 紛争 | 準拠法/管轄/仲裁/協議 |
| 個別事項 | 再委託/検収/瑕疵担保・契約不適合/不可抗力 |
小区分まで分けることが重要です。 「責任・賠償」で引くと2,800件中1,500件が当たります。「賠償の上限」で絞れば、200件程度に落ちます。
この分類は、過去の記録に後から付けることになります。 2,800件すべてに人が付けるのは現実的ではありません。生成AIに下書きさせて、人が確かめる形にしてください。条項単位で見れば、1件あたり数十秒で済みます。
「決着の内容」を、必ず属性として持ってください。
| 列 | 中身 |
|---|---|
| 契約ID / 条項の小区分 | |
| 原案の内容 | 相手方が提示した内容の要旨 |
| 自社の要求 | どう直すよう求めたか |
| 要求の理由 | なぜその修正が必要か |
| 決着 | 要求どおり/一部受け入れ/取り下げ/相手方の案のまま |
| 決着の内容 | 最終的にどういう条文になったか |
| 交渉の回数 | |
| 相手方の立場 | 仕入先/販売先/委託先/委託元/その他 |
| 金額の規模 | 区分(1,000万円未満/1億円未満/それ以上) |
「決着」と「相手方の立場」の組み合わせが、この構成でもっとも価値のある情報です。 「賠償の上限について、仕入先に対しては要求が通った事例が18件、販売先に対しては取り下げた事例が12件」と分かれば、方針の判断が変わります。
「要求の理由」も必ず記録してください。 同じ修正を求めた理由が、「自社のひな形に合わせるため」と「この取引の特性上必要だから」では、譲る余地が違います。
ひな形の条文も索引に入れてください。 「自社のひな形ではどう書いているか」を引けると、審査の基準がそろいます。
AIへ渡す前に整形する
- 契約書の条項への分割 … 条番号と見出しで分けます。別紙や付属文書も対象にします
- 原案と最終版の対応づけ … 同じ条項の、修正前と修正後を対応させます。条番号がずれることがあるため、内容からも対応づけます
- 審査のコメントの紐づけ … コメントがどの条項についてのものかを対応させます
- 条項の分類の付与 … 小区分を判定します。生成AIの下書きを人が確かめます
- 決着の判定 … 原案と最終版を比べて、要求が通ったかを判定します
- 属性の付与 … 契約の種類、相手方の立場、金額の規模
- 索引への取り込み … キーワード検索用のフィールドと、k-NN ベクトルフィールドの両方を作ります
- 秘匿の確認 … 相手方の名称、金額、特定の取引の内容を、検索の結果に出すかを決めます
2の対応づけが、この構成でいちばん手間のかかる部分です。 原案と最終版の条文を並べないと、「どう直したか」が分かりません。 変更履歴が残っているファイルがあれば、そこから取れます。
8の秘匿の確認は、法務の用途では必須です。 過去の契約の相手方名や金額を、誰でも見られる状態にしないでください。条文と論点だけを見せて、相手方名は権限のある人にだけ見せる設計も可能です。
AIに処理させる
2つの工程に分けます。
(1)検索基盤にさせること
| 処理 | 内容 |
|---|---|
| 索引の作成 | 条項の単位で取り込む |
| キーワード検索 | 決まった語(「損害賠償」など)での一致 |
| ベクトル検索 | 意味の近さでの検索 |
| ハイブリッド検索 | 上記2つを1つの要求で組み合わせ、正規化して統合 |
| 属性による絞り込み | 条項の小区分、相手方の立場、決着の内容 |
(2)Claude API にさせること
| 処理 | 内容 |
|---|---|
| 条項の分類 | 入力された条文がどの小区分に当たるか |
| 論点の読み取り | その条項の何が自社に不利か |
| 検索の問いの組み立て | 論点ごとに、検索に渡す文を作る |
| 似ている点の説明 | 返ってきた事例が、どの論点で今回と似ているか |
| 違う点の明示 | 相手方の立場、契約の種類、金額の規模の違い |
| 並べ替え | 論点の一致の度合いで並べる |
修正案を書かせません。 「次のように修正してください」といった条文案を出させないでください。
法律上の判断もさせません。 「この条項は公序良俗に反します」「消費者契約法により無効です」といった記述を禁じてください。法律の解釈は弁護士と法務の担当が行います。
リスクの大きさの評価もさせません。 「この条項のリスクは高い」といった判断は、取引の内容と金額を踏まえて人が行います。
過去の判断の評価もさせません。 「この修正の要求は妥当でした」といった記述は不要です。決着という事実を示せば足ります。
指示内容を固定する
あなたは法務部で契約審査を支援する担当者です。
審査中の条項について、過去の似た条項と、そのときの修正・決着を
探して並べることが役割です。
【厳守事項】
- 修正案を書かないでください。
「次のように修正してください」という条文案を出さないでください。
どう直すかは担当者と事業部門が判断します。
- 法律上の判断をしないでください。
「この条項は無効です」「法令に違反します」「公序良俗に反します」
と書かないでください。
**法律の解釈は弁護士と法務の担当が行います。**
- リスクの大きさを評価しないでください。
「この条項のリスクは高い」「重大な問題があります」と書かないでください。
- 過去の判断を評価しないでください。
「この要求は妥当でした」「譲りすぎです」と書かないでください。
決着という事実を示すだけにしてください。
- 検索の結果に含まれていない事例を作らないでください。
該当が見つからない場合は「該当する事例が見つかりません」と返してください。
- 事例ごとに、必ず契約IDと、元の審査記録の該当箇所を示してください。
示せない事例は出さないでください。
- 「似ている点」と「違う点」を必ず両方書いてください。
特に、相手方の立場(仕入先/販売先など)が違う場合は必ず明記してください。
**立場が逆だと、譲る線もまったく変わります。**
- 契約の種類が違う事例を排除しないでください。
条項の論点が同じなら、種類が違っても参考になります。
ただし、違うことは明記してください。
- 決着(要求どおり/一部受け入れ/取り下げ/相手方の案のまま)を必ず併記してください。
- 並べ替えは、論点の一致の度合いで行ってください。
要求が通った事例を上に並べないでください。
**通った事例だけを見せると、判断が偏ります。**
- 相手方の名称と金額は、検索の結果には含めないでください。
必要な場合は、担当者が元の記録を開いて確かめます。
【審査中の条項】
{clause_text}
【この条項の分類(AIが判定した小区分)】
{clause_category}
【検索で見つかった過去の条項(条文 / 修正の要求 / 決着 / 属性)】
{search_results}
【自社のひな形の該当する条項】
{template_clause}
【今回の契約の属性(種類 / 相手方の立場 / 金額の規模)】
{contract_context}
「相手方の立場の違いを必ず明記する」の指示が、この構成で特に重要です。 同じ「賠償の上限」でも、自社が委託する側か、受託する側かで、求める方向が逆になります。 立場を見落とすと、逆の事例を参考にしてしまいます。
「通った事例だけを見せない」の指示も外せません。 要求が通った事例だけを上に並べると、「この要求は通るものだ」という誤った印象を与えます。 実際には取り下げた事例のほうが多いかもしれません。
「相手方の名称と金額を検索の結果に含めない」の指示は、秘匿の観点です。 条文と論点を見るだけなら、相手方が誰かは要りません。必要なときだけ、権限のある担当者が元の記録を開きます。
「法律上の判断をしない」の指示については、具体例を書いておくことが有効です。 「無効」「違反」「公序良俗」といった語を禁止語として挙げてください。抽象的に禁じるだけでは、モデルは境界を誤ります。
出力形式を固定する
{
"query_id": "",
"input_type": "clause_text | issue_description",
"detected_category": {
"major": "",
"minor": "",
"confidence": "high | low"
},
"issues": [
{ "point": "", "why_unfavorable": "" }
],
"precedents": [
{
"contract_id": "",
"contract_type": "",
"counterparty_role": "supplier | customer | contractor | client | other",
"amount_band": "",
"year": "",
"original_clause_summary": "",
"our_request": "",
"request_reason": "",
"outcome": "as_requested | partially_accepted | withdrawn | as_is",
"final_clause_summary": "",
"negotiation_rounds": 0,
"similar_points": [],
"different_points": [],
"role_matches_current": true,
"source": { "document": "", "location": "" },
"similarity": "high | medium | low"
}
],
"template_clause_present": false,
"no_match_reason": "",
"counts_by_outcome": { "as_requested": 0, "partially_accepted": 0, "withdrawn": 0, "as_is": 0 },
"counts_by_role": {}
}
Claude API で出力をスキーマに沿わせるには、output_config の format に json_schema を指定します。 古い output_format は非推奨で、output_config.format に置き換わりました。
スキーマには制約があります。 enum は文字列・数値・真偽値・null に限られ、const と anyOf / allOf(allOf と $ref の組み合わせは不可)が使えます。$ref / $def / definitions は使えますが、外部の $ref は使えません。 一方、再帰的なスキーマ、数値の minimum / maximum / multipleOf、文字列の minLength / maxLength / pattern、条件付きの if / then / else は使えません。 minItems は0と1のみです。
オブジェクトには additionalProperties: false を設定する必要があります。
counts_by_outcome と counts_by_role が、実は最も見られる部分になります。 「この論点で過去32件、うち要求どおり8件・一部受け入れ14件・取り下げ10件。仕入先に対しては通りやすく、販売先には通りにくい」という分布が、方針の判断に直接効きます。
role_matches_current のフラグが要ります。 相手方の立場が今回と同じかどうかを、一目で分かる形にしてください。 立場が逆の事例を参考にすると、判断を誤ります。
request_reason を持たせている理由があります。 同じ修正を求めた理由が「ひな形に合わせるため」なのか「この取引特有の事情」なのかで、今回に当てはまるかが変わります。
template_clause_present は、自社のひな形に該当する条項があるかです。 ひな形があるなら、まずそれと比べるのが筋です。
システムへ連携する
検索の結果を一覧として出すだけで、他のシステムへの書き込みは行いません。
| 出力先 | 内容 |
|---|---|
| SharePoint リスト | 検討材料の一覧 |
| 契約管理システム | 書き込まない |
| 記録 | 検索の履歴と、担当者が採用した事例 |
契約管理システムへ書き戻さないでください。 契約の管理情報に検索の結果が混ざると、後から何が正式な記録か分からなくなります。
事業部門へ自動で送らないでください。 過去の事例には、他の取引の交渉の経緯が含まれます。事業部門が見てよい範囲を、法務が判断してから渡してください。
相手方へは一切出さないでください。 「過去にこういう事例があります」という情報は、自社の交渉の手の内を明かすことになります。
記録への追加は、締結後に人が行ってください。 決着の内容と交渉の経緯を、索引の対象へ足します。自動で追加する形にすると、決着の判定が誤ったまま蓄積されます。
人が確認する
担当者が、事例を読んで判断します。
| 見る点 | 判断 |
|---|---|
role_matches_current が false | 立場が違う。そのまま参考にしない |
similarity が high の事例 | 元の審査記録を読む |
counts_by_outcome の分布 | その論点で、どの決着がどれだけあるか |
outcome が withdrawn の事例 | なぜ取り下げたかを読む。ここが学びになる |
different_points の内容 | 今回に当てはまらない理由がないか |
template_clause_present | ひな形があるなら、まずそれと比べる |
確認を速くするための設計が効きます。
counts_by_outcomeを一覧の先頭に置くrole_matches_currentを色で分ける- 元の審査記録の該当箇所へ直接開けるリンクを付ける
- 同じ相手方との過去の契約に印を付ける
- 時期が新しい事例に印を付ける(法改正の影響)
4つ目が、相手方の主張を確かめる場面で効きます。 「前回はこの条件で」と言われたとき、同じ相手方との過去の契約を即座に引けます。
5つ目も重要です。 民法の改正など、条項の書き方に影響する変更があります。古い事例をそのまま参考にすると、現在の規定と合わない条文になります。
最終的な方針は担当者が決めます。 過去に32件中8件しか通らなかった要求でも、今回の取引では通すべきかもしれません。 取引の重要度と力関係を踏まえた判断が要ります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 該当する事例がない | 「見つかりません」と返す。推測で作らない |
| 条項の分類が判定できない | confidence を low にして、人が分類を確かめる |
| 相手方の立場が今回と逆 | role_matches_current を false にして明示する |
| 古い事例が法改正前のもの | 時期を明示する。担当者が現行の規定と照らす |
| 原案と最終版の対応がつかない | その条項を索引から外す。「どう直したか」が分からない |
| 変更履歴が残っていない契約 | 決着の判定ができない。対象外として明示する |
| 相手方の名称や金額が結果に出る | 検索の結果に含めない設計にする |
| 同じ相手方との契約が多い | 別に集めて示す。交渉の経緯が追える |
| AIが修正案を書いた | 指示で禁止する。テストで確認する |
| AIが法律上の判断をした | 禁止する。最優先で確認する |
| AIがリスクを評価した | 禁止する |
| 要求が通った事例だけが上に出る | 並べ替えは論点の一致の度合いで行う |
| 検索の結果が毎回同じ契約ばかり | 属性による絞り込みを足す。小区分を細かくする |
| 締結後に記録が追加されない | 締結の手続きに組み込む |
| 事業部門が直接検索する | 権限を法務に限る。他の取引の経緯が漏れる |
「事業部門が直接検索する」は、必ず制限してください。 過去の審査記録には、他の取引の交渉の経緯が含まれます。事業部門が自由に見られる状態にすると、取引先ごとの条件が社内で広く知られることになります。
記録を残す
この記録は、条項の分類と検索の精度を育てる材料になります。
- 検索の入力(貼った条文、書いた論点)
- 判定した条項の分類
- 返した事例と、その
similarity - 担当者が実際に採用した事例
- 採用しなかった事例と、その理由
- 今回決めた方針と、その後の決着
「担当者が実際に採用した事例」を必ず記録してください。 上位に出した事例が使われているかが、検索の精度を測る指標です。
「採用しなかった理由」も記録してください。 「相手方の立場が逆」「時期が古すぎる」といった理由が集まれば、different_points に書かせるべき観点や、絞り込みの条件が分かります。
審査記録には、取引先の名称、契約の金額、交渉の経緯が含まれます。 これらは秘密保持義務の対象になりえます。外部のAIサービスへ渡す範囲を、法務部として決めてください。
検索の結果に相手方の名称と金額を含めない設計を、初めから入れてください。 条文と論点だけで検索の目的は果たせます。必要なときだけ、権限のある担当者が元の記録を開きます。
保存期間は、契約書の保存期間に合わせるのが自然です。 契約に関する紛争は、締結から長い時間が経ってから起きることがあります。
04実装レベルの3段階
半自動化の時点で、24分が13分程度になります。 探す作業が消えるためです。本格構成では7.5分になりますが、減るのは読んで比べる時間です。 本格構成の「ハイブリッド検索」を、必ず入れてください。 キーワードだけでは、同じ論点を違う語で書いた条項が引けません。意味の近さだけでは、決まった語での絞り込みが効きません。 両方の組み合わせが、この用途では効きます。 「採用した事例の記録」も本格構成で入れます。 検索の精度を測る唯一の方法です。 「締結後の自動追加」は、索引を古くしないための仕組みです。 ただし、決着の判定は人が確かめてから追加してください。 誤った決着が蓄積すると、以後の検索が歪みます。 段階を飛ばさないでください。 条項の分類が粗いまま索引を作ると、検索の結果が毎回同じ契約ばかりになります。 索引に入れる範囲も段階的に広げてください。 まず直近3年分、次に8年分。古い事例は法改正の影響を受けている可能性があります。
05工数削減シミュレーション
導入後 100件 × 7.5分 ÷ 60 = 12.5 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 契約審査が月に50件以上あり、過去の審査記録が数百件たまっている企業。同じ種類の条項について、過去にどこまで譲ったかを探す作業が発生している場合。審査の判断が特定の担当者に依存している場合。相手方から「前回はこの条件でしたが」と言われて、確かめられない場合。
- 契約審査が月に数件の企業。ひな形での締結が大半で、修正の交渉がほとんど発生しない場合。審査記録が残っておらず、電子化の予定もない場合。契約審査を全面的に外部の弁護士へ委ねている場合。
07最小構成で試す方法
- 条項の小区分を10個決める(審査でよく論点になるものから)
- 過去の審査記録を80件選ぶ(その10区分に当たる条項を含むもの)
- 条項の単位に分け、小区分・修正の要求・決着・相手方の立場を人が付ける
- 最近の審査案件から、論点になった条項を5件用意する
- 生成AIのチャット画面に、80件の要約と今回の条項を貼り付けて、似た事例を挙げさせる
- 担当者が実際に参考にした事例と突き合わせる
見るのは次の5点です。
| 見る点 | 判断 |
|---|---|
| 担当者が参考にした事例を挙げられたか | 5件中4件以上。外すなら分類を見直す |
| 相手方の立場の違いが明記されているか | ここを外すと逆の事例を参考にする |
| 決着が併記されているか | 要求どおり/取り下げが分かるか |
| 修正案・法律上の判断・リスク評価が混ざっていないか | 1件でも混ざったら指示を直す |
| 相手方の名称や金額が結果に出ていないか | 出ないよう設計する |
2つ目を最優先で確かめてください。 自社が委託する側の事例と、受託する側の事例が混ざって出ると、判断を誤ります。 立場の違いが明記されているかを、1件ずつ見てください。
次に、「取り下げた事例」が出ているかを確かめてください。 要求が通った事例だけが出てくるなら、索引に決着が入っていないか、並べ替えが偏っています。
キーワード検索と意味の近さの両方を試してください。 同じ論点を違う語で書いた条項を意図的に用意し、キーワードだけでは引けないが、意味の近さでは引けることを確かめます。 ここでハイブリッド検索の価値が測れます。
条項の分類の粒度も、この段階で調整してください。 10区分で80件を分けて、1区分に25件以上集まるなら粗すぎます。8件前後に分かれる粒度が目安です。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| AIが修正案を書く | 禁止する。テストで必ず確認する |
| AIが法律上の判断をする | 禁止する。禁止語を具体的に列挙する |
| AIがリスクを評価する | 禁止する |
| 相手方の立場の違いが示されない | 必ず明記させる。逆の事例を参考にする事故を防ぐ |
| 条項の分類が粗くて絞れない | 小区分まで分ける。1区分8件前後が目安 |
| 決着が索引にない | 必ず属性として持つ。これがないと参考にできない |
| 要求が通った事例だけが上に出る | 並べ替えは論点の一致の度合いで行う |
| キーワードだけで検索する | ハイブリッド検索にする。違う語で書かれた条項が引けない |
| スコアの尺度が違って統合できない | 検索パイプラインの正規化プロセッサを使う |
| 相手方の名称や金額が結果に出る | 検索の結果に含めない設計にする |
| 事業部門が直接検索する | 権限を法務に限る |
| 原案と最終版の対応がつかない | 変更履歴のある契約から始める |
| 古い事例が法改正前のまま | 時期を明示する。担当者が現行の規定と照らす |
| 締結後に記録が追加されない | 締結の手続きに組み込む |
| 決着の判定を自動で確定させる | 人が確かめてから索引に追加する |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 契約書の条文、審査のコメント、交渉の経緯、相手方の名称、契約の金額。秘密保持義務の対象になりえる情報です。
- 秘密保持義務との関係 … 契約書の内容には、相手方との秘密保持義務がかかっていることがあります。社内での利用の範囲を超えないか、外部のAIサービスへ渡してよいかを、法務部として整理してください。 ここを確認せずに始めないでください
- 相手方の名称と金額の秘匿 … 検索の結果に相手方の名称と金額を含めない設計にしてください。 条文と論点だけで検索の目的は果たせます。必要なときだけ、権限のある担当者が元の記録を開きます
- アクセス権限 … 過去の審査記録には、他の取引の交渉の経緯が含まれます。事業部門が自由に検索できる状態にしないでください。 権限を法務部に限ってください
- 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます。契約の内容を扱う以上、必須条件です
- 法律上の判断との分離 … この構成は法律の解釈をしません。 条項の有効性、法令への適合は、弁護士と法務の担当が判断します。出力にその旨を明記してください
- 弁護士法との関係 … 社内の法務部門が自社の契約を審査することは問題ありませんが、この構成の出力を他社へ提供する形にしないでください
- 過去の事例の流用 … 過去の条項をそのまま流用すると、今回の取引に合わない条文になることがあります。参考にするのと流用するのは違います。 出力にも注意書きを入れてください
- 法改正の影響 … 古い事例は、改正前の規定を前提にしていることがあります。時期を必ず明示し、現行の規定と照らす工程を残してください
- 交渉の手の内 … 検索の結果は、自社の交渉の方針を示します。相手方へは一切出さないでください
- 記録の保存 … 契約に関する紛争は、締結から長い時間が経ってから起きることがあります。保存期間を契約書の保存方針に合わせてください
- 自動実行してよい範囲 … 条項の分類、論点の読み取り、検索、事例の提示までです。修正案の作成、譲る線の判断、事業部門への回答、締結の判断は人が行います
誤りが起きた場合のリスクは、立場の逆の事例や古い事例を参考にして誤った方針を取ること、そしてAIの法律上の判断を鵜呑みにすることです。後者を防ぐため、法律上の判断を禁じる指示を、禁止語を挙げた形でテストしてください。 前者を防ぐため、role_matches_current と時期の明示を必ず入れてください。
10まず何から始めるか
1週目:条項の小区分を決める
担当者4名に「よく論点になる条項」を挙げてもらいます。10〜15区分に収まるはずです。 「損害賠償」で止めず、「賠償の上限」「間接損害の除外」まで分けてください。この粒度が、この構成の成否を決めます。
2週目:過去80件に属性を付ける
条項の単位に分け、小区分・修正の要求・決着・相手方の立場を付けます。変更履歴の残っている契約から選んでください。 原案と最終版を並べられることが条件です。
3週目:最近の5件で試す
チャット画面に80件の要約を貼り、似た事例を挙げさせます。相手方の立場の違いが明記されているかを、1件ずつ確かめてください。 そして、法律上の判断や修正案が混ざっていないかを見ます。
4週目:キーワードと意味の近さの違いを確かめる
同じ論点を違う語で書いた条項を用意し、キーワードだけでは引けないが、意味の近さでは引けることを確かめてください。 ここでハイブリッド検索を入れる価値が測れます。
2か月目: 直近3年分(約900件)を条項に分けて索引を作ります。相手方の名称と金額を結果に出さない設計を、最初から入れてください。 アクセス権限も法務部に限定します。
3か月目以降: 8年分へ広げ、ハイブリッド検索と属性による絞り込みを足します。同時に、採用した事例の記録を始めてください。 検索の精度は、これがないと測れません。
半年後: 上位3件に採用された事例が入っている割合を見てください。7割を超えていれば、並べ替えは機能しています。 同時に、「担当者が知らなかったが採用した事例」の件数を数えてください。 記憶では届かなかった範囲の広さを示します。
1年後には、条項ごとの決着の分布そのものが資産になります。 「賠償の上限について、仕入先に対しては7割で要求が通り、販売先に対しては3割」といった傾向が、自社の実績として見えます。審査の方針を、経験ではなく実績から決められるようになることが、この構成のいちばん長く残る成果です。 同時に、通りにくい要求を毎回出し続けている論点が見えたら、ひな形そのものを見直すという判断もできます。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| OpenSearch が k-NN(k近傍)のベクトル検索に対応し、索引のマッピングで k-NN ベクトルフィールド型のフィールドを定義することで使えること。k-NN クエリ、ニューラルクエリ、ニューラルスパースクエリ、複数の検索方式を1つの要求で組み合わせるハイブリッドクエリがあること | OpenSearch Documentation: Vector search | 2026-09-28 |
| OpenSearch のハイブリッド検索が、キーワード検索(BM25)とベクトル検索を組み合わせること。検索パイプラインの正規化プロセッサが、尺度の異なるスコアをそろえてから統合する役割を持つこと。統合後は、キーワードの一致と意味の近さの両方を反映した順位になること | OpenSearch Documentation: Hybrid search | 2026-09-28 |
Claude API で出力をスキーマに沿わせる際、output_config の format に json_schema を指定すること(output_format は非推奨で output_config.format に置き換わった)。enum が文字列・数値・真偽値・null に限られ、const、anyOf / allOf(allOf と $ref の組み合わせは不可)、$ref / $def / definitions(外部の $ref は不可)が使えること。再帰的なスキーマ、数値の minimum / maximum / multipleOf、文字列の minLength / maxLength / pattern、条件付きの if / then / else が使えず、minItems は0と1のみであること。オブジェクトには additionalProperties: false の設定が必要なこと | Anthropic Docs: Structured outputs | 2026-09-28 |
条項の分類、審査の基準、譲る線の判断は、企業と取引の内容によって異なります。この部分は自社の法務部門の定めに応じた個別対応が必要です。 条項の有効性、法令への適合、契約上のリスクの評価については、弁護士および自社の法務部門の判断に従ってください。この記事は法律の解釈や契約上の判断を示すものではありません。契約書の内容には相手方との秘密保持義務がかかっていることがあります。外部のAIサービスへ渡してよいかは、自社の法務部門と情報管理の責任者の判断が必要です。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0280)についてのご相談はこちらから。
