メインコンテンツへ移動
AIチュートリアル

Legal Agent Workshopで法務AIエージェントを構築・検証する

このチュートリアルでは、Legal Agent Workshopの2つのセッションを通じて、OpenAI Python SDKで汎用的な法務エージェントを構築し、案件に適用して見落としを確認します。さらに、証拠開示と弁護士の承認前に、外部チェックリストとメモによる検証を追加する方法を解説します。

Legal Agent Workshopで法務AIエージェントを構築・検証

Legal Agent Workshop の概要

Legal Agent Workshop は、法律分野の AI エージェントを構築・評価するための、実践的な 2 セッション構成のプロジェクトです。参加者はまず、エージェントによる調査ループを実装し、未検証のリーガルメモを作成します。次に、エージェントの制御外で動作する検証レイヤーを追加します。

このリポジトリには、OpenAI Python SDK の基本コードを使用した構築済みキットが用意されています。ツールごとに分かれたファイル、Files API による文書読み取り、引用確認済みの事実を追跡する案件管理システムが含まれています。付属する案件は northbridge-v-caldera ですが、エージェント自体は汎用的で、案件の内容は含んでいません。

重要なワークスペース規則: Muse Code は必ず agent/ ディレクトリから起動してください。cases/、world/、ground_truth/、solutions/、ui/ ディレクトリは Muse Code ワークスペースの外部に置く必要があります。

主な機能

  • 汎用法律エージェント: エージェントがチェックリストを作成し、計画を立て、文書を調査してメモを作成します。
  • OpenAI Python SDK による実装: エージェントループは、追加のエージェントフレームワークではなく、SDK の直接的なコードを使用します。
  • 文書分析: キットは Files API を使用して案件文書を読み取ります。
  • 引用確認済みの事実: 案件管理システムは、裏付けとなる引用とともに事実を記録します。
  • 外部検証: チェックリストとメモの検証は、エージェントの制御外で実行されます。
  • 正解データとの比較: チェックリスト検証機能は、エージェントが閲覧できない案件固有の正解チェックリストと、エージェントの作業を比較します。
  • 再開可能なワークフロー: セッション 1 の実行を分岐し、検証を有効にして続行できます。
  • ライブ Agent Console: 構築済みのインターフェースに、ターン、チェックリスト項目、裏付けとなる証拠、証拠の開示、弁護士の承認が表示されます。

リポジトリ構成を理解する

  • HANDBOOK.md には、セットアップ手順、2 つのワークショップセッション、セクション 1.7 の Muse Code 基本ルールプロンプトが記載されています。
  • agent/ にはスターターコードが含まれており、Muse Code ワークスペースとして公開すべき唯一のディレクトリです。
  • cases/northbridge-v-caldera/ には、案件の目的とエージェントに提供される文書が含まれています。
  • ground_truth/ には、外部検証で使用する非公開のチェックリストが含まれています。このディレクトリを案件に含めたり、エージェントに見せたりしてはいけません。
  • world/ は、保留されている追加文書や証拠開示スクリプトなど、シミュレーションされた外部世界を表します。
  • solutions/ には、セッション 1 とセッション 2 のスナップショットが含まれています。
  • ui/ には構築済みの Agent Console が含まれており、Muse Code ワークスペースの外部に置かれます。

ワークショップをインストールして設定する

1. リポジトリをクローンする

プロジェクトをクローンし、Muse Code のセットアップまたは起動前に agent/ ディレクトリへ移動します。

git clone https://github.com/meta-models/legal-agent-workshop.git
cd legal-agent-workshop/agent

2. 環境ファイルを作成する

サンプル設定を .env にコピーします。

cp .env.example .env

.env を編集し、MODEL_API_KEY を追加します。CASE_DIR が付属の案件を指していることを確認してください。

../cases/northbridge-v-caldera

3. セットアップヘルパーを実行する

./helper setup

セットアップコマンドは、OpenAI Python SDK を含む .venv 環境を作成し、案件文書を想定された場所にコピーして、設定済みの API キーを確認します。

4. Muse Code を起動する

agent/ 内にいる状態で、Muse Code を起動します。

muse

最初のメッセージには、HANDBOOK.md のセクション 1.7 にある基本ルールプロンプトを使用する必要があります。再起動または新しい Muse Code セッションの開始後は、毎回このプロンプトを再送信してください。

セッション 1: 法律エージェントを構築して実行する

セッション 1 では、提供されたキットを使用して汎用的なエージェントループを実装します。すべての作業を agent/ 内で行いながら、HANDBOOK.md の手順に従ってください。

想定されるワークフローは次のとおりです。

  1. チェックリストを作成する: 調査で扱うべき質問と証拠を特定します。
  2. 調査を計画する: 利用可能なツールと案件文書の使い方を決めます。
  3. 調査する: 提供された文書ワークフローで文書を読み取り、引用確認済みの事実を案件管理システムに記録します。
  4. 結果を準備する: 調査に基づく未検証のメモで実行を終了します。

この段階では、メモは意図的に未検証です。セッション 2 では、一見完全に見えるエージェントの出力でも、必要なチェックリスト項目が抜けていたり、メモの規則に違反したりする可能性があることを示します。

Agent Console で実行を確認する

リポジトリのルートから、構築済みのインターフェースを起動します。

python3 ui/ui.py

ブラウザーで http://127.0.0.1:8765 を開きます。コンソールでは、各エージェントのターン、チェックリスト、チェックリスト項目の立証方法など、実行の様子をリアルタイムで確認できます。ワークショップの証拠開示と弁護士承認の段階にも対応しています。

セッション 2: エージェントが見落としたものを検証する

セッション 2 では、独立した 2 つの検証チェックを導入します。一方は案件の非公開の正解データに照らしてチェックリストを評価し、もう一方は必要な規則に照らしてメモを評価します。

メモを検証する

agent/から、RUN_IDをSession 1の実行の識別子に置き換えます。

./helper verify RUN_ID --memo

これにより、Session 1のメモチェックで検出される問題が明らかになります。

チェックリストを検証する

./helper verify RUN_ID --checklist

これは、エージェントのチェックリストと、ケース固有の正解チェックリストを比較します。正解データは、ケースとエージェントのワークスペースの両方の外部に保持されます。

検証チェックを構築する

HANDBOOK.mdのSession 2の手順に従い、チェックリストとメモのチェックを構築します。信頼境界を維持してください。これらのチェックは、エージェント自身に作業の承認を任せるのではなく、エージェントの管理外で実行する必要があります。

検証を有効にして実行を続行する

既存のチェックリストから、元のSession 1の実行を分岐させます。

./helper branch RUN_ID

続行されたワークフローでは、拒否、エスカレーション、新たな証拠の公開、再開、弁護士の承認など、検証を意識した動作が実行されます。分岐により、無関係な調査を開始するのではなく、チェックリストを開始点として維持できます。

保留中の証拠を公開する

実行がneeds_inputに到達したら、シミュレートされた外部環境を使用して追加資料を公開します。リポジトリのルートから次のコマンドを実行してください。

python3 world/release.py

証拠が公開されたら、ワークショップのフローを続行し、Agent Consoleで再開された実行を確認します。

高度なヒント

ワークスペースの境界を守る

Muse Codeは、リポジトリのルートではなく、必ずagent/から起動してください。これにより、Muse Codeがケースのソース、非公開の正解データ、シミュレートされた環境、解答スナップショット、UIコードを認識するのを防ぎます。この分離は、ワークショップの検証モデルの中核です。

正解データをエージェントに決して公開しない

ground_truth/northbridge-v-caldera.jsonファイルは、外部チェックリストチェックのために存在します。これをケースにコピーしたり、Muse Codeのワークスペースに含めたり、エージェントに提供したりしないでください。

再起動後も基本ルールを再適用する

再起動した、または新しく作成したMuse Codeセッションでも、基本ルールのプロンプトを提示する要件はなくなりません。毎回、HANDBOOK.mdのセクション1.7からコピーしてください。

確立された構成で別のケースを追加する

新しいケースは、objective.mdファイルとdocuments/ディレクトリを含むフォルダーで表されます。ケースはagent/の外部に置き、CASE_DIRでその場所を指定します。READMEには、ケースの作成や正解データの生成に関する追加手順は記載されていないため、検証設定を拡張する前にハンドブックに従ってください。

解答スナップショットを慎重に使用する

solutions/01_session1/とsolutions/02_session2/ディレクトリには、2つのセッションのスナップショットが用意されています。これらはMuse Codeのワークスペースの外部にあるため、エージェントの作業コンテキストに含めずに、ワークショップの参照資料として使用できます。

コマンドリファレンス

git clone https://github.com/meta-models/legal-agent-workshop.git
cd legal-agent-workshop/agent
cp .env.example .env
./helper setup
muse

# リポジトリのルートから
python3 ui/ui.py
python3 world/release.py

# agent/から
./helper verify RUN_ID --memo
./helper verify RUN_ID --checklist
./helper branch RUN_ID

まとめ

Legal Agent Workshopは、法務エージェント開発の両面を示します。計画、調査、文書作成ができるエージェントを構築することと、その成果物が完全かつ準拠しているかを検証する外部制御を作成することです。ケース、正解データ、検証リソース、シミュレートされた証拠をMuse Codeのワークスペースの外部に保持することで、このプロジェクトは信頼境界を明確かつ検証可能なものにしています。