AIエージェント入門

Claude Cowork法務エージェント|契約AIの実装パターン

Claude Cowork法務エージェント|契約AIの実装パターン

この記事の結論

Claude Cowork法務プラグインのアーキテクチャを解剖。GREEN/YELLOW/REDトリアージ、NDA自動分類、契約レビューエージェントの実装パターンをコード例つきで開発者向けに解説する。

「法務AIを構築したい」という相談は、AIエージェント導入支援の中でも特に難しい部類に入る。契約書のリスク判定は「正解」が曖昧で、アウトプットが誤っていても気づきにくい。法務担当者が「AIが言うなら大丈夫」と思い込んだ瞬間がリスクの始まりだ。

そのジレンマに対して、Anthropicが2026年2月に投入したClaude Coworkの法務プラグインは一つの解答を示した。「AIは弁護士ではない。しかし、弁護士の仕事の多くの部分を構造化できる」という立場だ。

この記事では、Claude Cowork法務プラグインのアーキテクチャを技術的に解剖し、開発者が自社の法務AIエージェントを設計・実装するための具体的なパターンを提示する。コピペ可能なコード例と、よくある設計ミスの回避策を含む。

Claude Cowork法務プラグインの全体像

Claude Coworkは「Claude Code for the rest of your work(エンジニア以外の業務向けのClaude Code)」と位置づけられたプラットフォームだ。その法務プラグインは2026年2月2日にリリースされ、法務ワークフローをAIエージェントで自動化する6つのコア機能を提供する。

機能 スラッシュコマンド 処理内容
契約レビュー `/legal:review-contract` 条文分析・リスクフラグ付け・修正案生成
NDAトリアージ `/legal:triage-nda` 受領NDAの自動分類(GREEN/YELLOW/RED)
コンプライアンス検証 `/legal:compliance-check` GDPR・CCPAへの準拠チェック
リスク評価 `/legal:risk-assessment` 法的リスクの定量評価
ベンダー監視 `/legal:vendor-check` 契約期限・義務のトラッキング
法務ブリーフィング `/legal:brief` サマリー生成と対応テンプレート

注目すべきは、全11プラグインがオープンソース公開されている点だ。プラットフォーム(Claude Cowork)は有料(Pro月額$20〜)だが、プラグインのコードは公開されているため、設計思想を学べる。

(ソース: Claude Cowork Legal Plugin公式チュートリアル、参照日: 2026-04-09)

コアアーキテクチャ: GREEN/YELLOW/REDトリアージシステム

法務AIのアウトプットを「合否の二値」ではなく「3段階のリスクレベル」で分類するのがCoworkの基本設計だ。これは実務の法務プロセスを模したもので、開発者が同様のシステムを設計する際の参考になる。

以下は、このトリアージロジックを独自実装する場合の基本構造だ:


# 動作環境: Python 3.11+, anthropic>=0.40.0
# pip install anthropic
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
# このコードは法的アドバイスの代替ではありません。必ず資格を持つ弁護士のレビューを経てください。

import anthropic
import json
from enum import Enum

class RiskLevel(Enum):
    GREEN = "green"   # 標準的 — 自動承認
    YELLOW = "yellow" # 要確認 — 法務レビュー
    RED = "red"       # 重大問題 — 即エスカレーション

def triage_nda(
    nda_text: str,
    playbook_path: str = "legal_playbook.md"
) -> dict:
    """
    NDAのリスクレベルを判定し、自動分類する

    Args:
        nda_text: NDA全文テキスト
        playbook_path: 組織のネゴシエーションポリシーを記載したMarkdown

    Returns:
        {
            "risk_level": "green"|"yellow"|"red",
            "issues": [...],
            "recommended_action": "...",
            "clause_analysis": [...]
        }
    """
    # 組織のプレイブックを読み込む
    with open(playbook_path, "r") as f:
        playbook = f.read()

    client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

    response = client.messages.create(
        model="claude-opus-4-6-20260901",
        max_tokens=4096,
        system=f"""
あなたは法務リスク評価AIです。
以下のプレイブックに基づいてNDAを分析してください:

{playbook}

重要:
- あなたは法律の専門家ではありません
- このアウトプットは法的アドバイスではなく、スクリーニング結果です
- 重要な契約は必ず資格を持つ弁護士が最終判断してください

リスク分類基準:
GREEN: 標準的な条項、プレイブック内の許容範囲
YELLOW: 非標準的だが交渉可能な条項が含まれる
RED: 重大なリスク条項(無制限の免責条項、一方的な管轄合意等)
        """,
        messages=[{
            "role": "user",
            "content": f"""
以下のNDAを分析してください。

NDA全文:
{nda_text[:10000]}  # 長すぎる場合は最初の10,000文字

出力は以下のJSON形式で:
{{
  "risk_level": "green"|"yellow"|"red",
  "overall_assessment": "概要説明(3文以内)",
  "critical_clauses": [
    {{
      "clause_title": "条項名",
      "text_excerpt": "問題のある条文の抜粋",
      "risk": "リスク内容",
      "severity": "critical"|"high"|"medium"
    }}
  ],
  "recommended_action": "推奨アクション",
  "auto_approvable": true|false
}}
            """
        }]
    )

    result = json.loads(response.content[0].text)
    result["disclaimer"] = "このアウトプットは法的アドバイスではありません。重要な決定は必ず弁護士に確認してください。"
    return result

ポイント: システムプロンプトに「これは法的アドバイスではない」を明示するのは単なるお作法ではなく、AIが過度に断定的な言い方をしないよう誘導するための重要な設計だ。

MCP(Model Context Protocol)による外部システム統合

Claude Coworkの強みの一つは、MCP(Model Context Protocol)によるツール統合だ。法務ワークフローでよく使われるシステムへの接続設定を見てみよう。


// .mcp.json — Claude Cowork法務プラグインの設定例
// 最終確認日: 2026-04-09(APIバージョンは変更される可能性があります)
{
  "legal": {
    "version": "1.0.0",
    "integrations": {
      "document_management": {
        "provider": "box",
        "config": {
          "folder_id": "${BOX_LEGAL_FOLDER_ID}",
          "api_key": "${BOX_API_KEY}"
        }
      },
      "project_tracking": {
        "provider": "jira",
        "config": {
          "project_key": "LEGAL",
          "base_url": "${JIRA_BASE_URL}",
          "auth": "${JIRA_API_TOKEN}"
        }
      },
      "notifications": {
        "provider": "slack",
        "channels": {
          "red_alerts": "#legal-urgent",
          "yellow_review": "#legal-review",
          "approved": "#legal-approved"
        }
      }
    },
    "routing": {
      "green": "auto_approve",
      "yellow": "route_to_counsel",
      "red": "escalate_immediate"
    }
  }
}

ポイント: 認証情報は環境変数(`${BOX_API_KEY}`)で管理する。絶対にコードに直書きしない。

AIエージェントの基本設計パターンについては、AIエージェント構築完全ガイドでより詳しく解説している。

契約レビュー自動化: 条文単位の分析実装

契約書を条文単位に分解し、各条文にリスクスコアを付与するパイプラインを実装してみよう。


# 動作環境: Python 3.11+, anthropic>=0.40.0, pdfplumber
# pip install anthropic pdfplumber
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。

import pdfplumber
import re
from dataclasses import dataclass

@dataclass
class ClauseAnalysis:
    section: str
    text: str
    risk_level: str  # "critical", "high", "medium", "low"
    issues: list[str]
    redline_suggestion: str | None

def extract_clauses(pdf_path: str) -> list[dict]:
    """PDFから条文を抽出"""
    with pdfplumber.open(pdf_path) as pdf:
        full_text = "n".join(page.extract_text() for page in pdf.pages)

    # 条文の分割(数字ピリオド形式の見出しを基準に)
    pattern = r'(d+.s+[A-Z][^n]+)n'
    sections = re.split(pattern, full_text)

    clauses = []
    for i in range(1, len(sections), 2):
        if i + 1  list[ClauseAnalysis]:
    """
    契約書全体を条文単位で分析
    """
    clauses = extract_clauses(pdf_path)
    client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
    results = []

    for clause in clauses:
        response = client.messages.create(
            model="claude-opus-4-6-20260901",
            max_tokens=1024,
            messages=[{
                "role": "user",
                "content": f"""
契約条文を分析してください(法的アドバイスではなく、スクリーニング結果として)。

プレイブック参照:
{playbook}

条文:
セクション: {clause['section']}
テキスト: {clause['text']}

JSON形式で出力:
{{
  "risk_level": "critical"|"high"|"medium"|"low",
  "issues": ["問題1", "問題2"],
  "redline_suggestion": "修正案(不要なら null)"
}}
                """
            }]
        )

        analysis_data = json.loads(response.content[0].text)
        results.append(ClauseAnalysis(
            section=clause["section"],
            text=clause["text"],
            **analysis_data
        ))

    return results

プレイブック設計: AIに組織ポリシーを読ませる

法務AIの精度を決める重要な要素は「プレイブック」の質だ。Claude Coworkでは`playbook.md`として定義するが、中身が貧弱だとAIは一般論しか言えない。

効果的なプレイブックの構造例:


# 法務ネゴシエーションプレイブック(例示用)
# 最終更新: 2026-04-01

## 自動承認条件(GREEN)
- 秘密情報の定義が双方向(mutual)である
- 契約期間が3年以内
- 管轄裁判所が日本国内
- 残存義務期間が5年以内

## 要確認条件(YELLOW)
- 一方向(One-way NDA)の場合 → 開示者側であれば要確認
- 管轄が海外(英国・EU等)→ 弊社法務部に照会
- 自動更新条項が含まれる → 期間・解約条件を確認

## 即エスカレーション(RED)
- 無制限の損害賠償条項
- 弊社の知的財産権の譲渡条項
- 第三者への開示禁止が弊社単独に課されるケース
- 準拠法が弊社管理外の国

## 修正交渉のスタンス
- 管轄: 原則「東京地方裁判所」に変更要求
- 秘密情報の定義: 「書面で明示されたもの」に限定要求
- 損害賠償上限: 「当該契約対価の〇倍」に上限設定要求

【要注意】法務AIの設計で失敗するパターン4つ

失敗1: AIのアウトプットを最終判断として使う

GREEN判定が出た契約をそのまま締結する運用は危険だ。AIは全ての法的リスクを把握できるわけではなく、特に「表面上は標準的だが業界慣行として問題がある条項」は見落とす可能性がある。

必ず「AIはスクリーニング、最終判断は人間」のハイブリッド設計にする。

失敗2: プレイブックを更新しない

法規制は変わる。GDPRの改定、業界団体のガイドライン更新、過去の紛争から得た教訓——これらをプレイブックに反映しないと、時間とともにAIの判定精度が下がる。プレイブックの定期更新プロセスを最初から設計に組み込んでおくこと。

失敗3: 長文契約書をそのままコンテキストに入れる

100ページの契約書全文をLLMに投げると、中盤の条文が見落とされやすい。条文単位に分割して順次処理する(上記のコード例の方式)か、重要なセクションを優先的に抽出するプリプロセッシングを入れる。

失敗4: エラー処理を省略する

JSONパースエラー、APIタイムアウト、モデルの「判断できない」レスポンス——法務AIは人間の判断に影響するため、エラー時に「不明な理由でGREEN判定」という動作は絶対に避けること。エラー時はデフォルトでYELLOW(要確認)にフォールバックするのが安全側の設計だ。

実装時のセキュリティと運用設計

チェック項目 設計方針
認証情報管理 APIキー・OAuth tokenは環境変数 or シークレットマネージャー
契約書データの取り扱い LLM APIに送信するテキストの機密範囲を事前に確認
ログの保存 誰がどの契約をレビューしたか(AIアウトプット含む)を監査ログとして保存
ロールバック AI判定に問題があった場合の手動確認プロセスを定義
アクセス制御 法務AI機能へのアクセスを法務関係者に限定

正直に言うと、法務AIはまだ「業務補助ツール」の段階だ。AI単体での完全自動化は、特に高額・長期の契約では推奨できない。ただし、定型的なNDAの大量スクリーニングや、条文の初期分析コストの削減には実用的な効果がある。

今日から始める3つのアクション

  1. 今日やること: Claude Cowork法務プラグインをインストールし、社内の過去NDA(機密性の低いもの)でテストしてみる。まずアウトプットの傾向を把握することが先だ。
  2. 今週中: 自社のネゴシエーションポリシーをプレイブック(Markdown)に文書化する。これが法務AIの精度の核になる。
  3. 今月中: NDAトリアージのパイロット運用を開始し、AI判定と人間判定の一致率を計測する。目標は80%以上の一致率から始める。

参考・出典


あわせて読みたい:

著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー10万人超。
100社以上の企業向けAI研修・導入支援。著書累計3万部突破。
SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。
ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

Uravationでは、AIエージェントの要件整理、PoC設計、社内導入、研修まで一気通貫で支援しています。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年4月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事