ストーリー
ミッション概要
| 項目 | 内容 |
|---|---|
| 目標 | 3つのAIシステムに対するGuardrails設計を完成させる |
| 所要時間 | 90分 |
| ミッション数 | 3つ |
| 使用知識 | 入力/出力フィルタリング、トピック制限、Guardrailsフレームワーク |
| 評価観点 | 要件の網羅性、設計の妥当性、フレームワーク選定の根拠 |
Mission 1: カスタマーサポートAIのGuardrails設計
システム要件
対象: NetShop社カスタマーサポートAI
ユーザー: 一般顧客(外部公開、月間5万人)
機能: 商品問い合わせ、注文確認、返品手続き
リスクレベル: 高(外部公開のため攻撃リスクが高い)
課題
-
入力フィルタリングの設計
- どの入力フィルタを適用するか?(優先度付き)
- 各フィルタのしきい値設定
-
出力フィルタリングの設計
- どの出力チェックを適用するか?
- フォールバック戦略の定義
-
トピック制限の定義
- ALLOW / REVIEW / DENY の具体的なトピックリスト
-
フレームワーク選定
- NeMo Guardrails / Guardrails AI / カスタム実装のどれを選ぶか?
- 選定理由
解答例
1. 入力フィルタリング(優先度順):
| 優先度 | フィルタ | しきい値 | 理由 |
|---|---|---|---|
| 1 | 形式バリデーション | 最大2000文字 | 基本的な防御 |
| 2 | プロンプトインジェクション検出 | 信頼度0.7以上でブロック | 外部公開のため攻撃リスク高 |
| 3 | PII検出 | クレジットカード・マイナンバーはブロック、他はマスク | 顧客の個人情報保護 |
| 4 | 有害コンテンツ検知 | 各カテゴリ0.7以上でブロック | 不適切な入力の排除 |
| 5 | トピック分類 | 禁止トピックの信頼度0.8以上でブロック | 業務範囲外の排除 |
2. 出力フィルタリング:
| チェック | アクション | フォールバック |
|---|---|---|
| PII・機密情報スキャン | マスキング → 再出力 | マスク不可なら回答拒否 |
| ファクトチェック | 精度70%未満で拒否 | 「担当者に確認します」 |
| 安全性チェック | 有害コンテンツ検出で拒否 | 定型の謝罪文 |
| スコープチェック | 範囲外で拒否 | 「商品・注文に関するご質問をお待ちしております」 |
3. トピック制限:
- ALLOW: 商品情報、注文状況、返品・交換、配送状況、支払い方法、キャンペーン情報
- REVIEW: 会社概要(公開情報のみ)、採用情報(ページ誘導)、技術的質問
- DENY: 社内情報、従業員情報、政治・宗教、医療・法律、投資助言
4. フレームワーク選定: NeMo Guardrails
理由:
- 対話型AIであるため、Colangによるフロー制御が適している
- 外部公開のため、充分にテストされたフレームワークの信頼性が重要
- トピック制限のルールが多く、Colangで管理しやすい
Mission 2: 社内コード生成AIのGuardrails設計
システム要件
対象: 開発チーム向けコード生成AI
ユーザー: 社内エンジニア(約50名)
機能: コード生成、コードレビュー補助、バグ修正提案
リスクレベル: 中(社内限定だが、生成コードの品質が重要)
課題
- コード生成AIに特有のリスクを3つ以上挙げてください
- 各リスクに対するGuardrailsルールを設計してください
- コード品質の出力チェック基準を定義してください
- 適切なフレームワークを選定し、理由を説明してください
解答例
1. コード生成AI特有のリスク:
| リスク | 説明 | 影響度 |
|---|---|---|
| セキュリティ脆弱性の生成 | SQLインジェクション、XSS等の脆弱なコード生成 | 高 |
| ライセンス違反コードの生成 | コピーレフトライセンスのコードをそのまま出力 | 高 |
| 秘密鍵・トークンの漏洩 | ハードコードされた認証情報の出力 | 高 |
| 非推奨APIの使用 | 古いまたは非推奨のAPIを含むコード生成 | 中 |
| 社内コードの漏洩 | 社内独自のコードパターンが外部モデルに送信される | 中 |
2. Guardrailsルール:
入力ガード:
- 秘密鍵・トークンの検出 → マスキングしてから送信
- 社内固有のコード(特許関連)→ 送信ブロック
出力ガード:
- セキュリティスキャン → 脆弱性パターンの検出
- ライセンスチェック → 既知のOSSコードとの類似度チェック
- シークレット検出 → ハードコードされた認証情報の検出
- 非推奨API検出 → 社内の非推奨リストとの照合
3. コード品質チェック基準:
| チェック項目 | 基準 | 不合格時のアクション |
|---|---|---|
| セキュリティ脆弱性 | OWASP Top 10のパターンなし | 警告付きで出力 + 修正提案 |
| 型安全性 | TypeScript strict mode準拠 | 型エラーを指摘 |
| シークレット混入 | トークン/パスワードの直書きなし | ブロック + 環境変数化を提案 |
| コーディング規約 | ESLint/Prettier準拠 | 自動修正して出力 |
4. フレームワーク選定: Guardrails AI + カスタムバリデータ
理由:
- コード出力の構造化検証にGuardrails AIのバリデータが適している
- セキュリティスキャン、ライセンスチェック等はカスタムバリデータで実装
- 対話フロー制御よりも出力検証が重要なため、NeMo Guardrailsより適切
Mission 3: 経営ダッシュボードAIのGuardrails設計
システム要件
対象: 経営層向けデータ分析AI
ユーザー: 経営陣 + 部門長(約15名)
機能: 売上分析、KPIレポート、予測、自然言語でのデータクエリ
データソース: 売上DB、人事DB、財務DB
リスクレベル: 最高(機密性の高い経営データを扱う)
課題
- このシステムのGuardrails全体アーキテクチャを設計してください
- ユーザーの役割(CEO、CFO、部門長)に応じたアクセス制御を定義してください
- データの機密レベルに応じた出力制御ルールを設計してください
- 監査ログの要件を定義してください
解答例
1. Guardrails全体アーキテクチャ:
ユーザー認証(SSO + MFA)
│
▼
入力ガード
├─ 認証・認可チェック(役割ベース)
├─ クエリのスコープ制限(権限内のDBのみ)
└─ 入力ログの記録(全クエリを監査ログに)
│
▼
データアクセス層
├─ 行レベルセキュリティ(部門長は自部門のみ)
├─ 集計レベル制限(個人レベル → 部門レベル → 全社レベル)
└─ 時間範囲制限(未確定データへのアクセス制御)
│
▼
LLM処理(データ分析・レポート生成)
│
▼
出力ガード
├─ 機密レベルチェック(役割に応じた開示レベル)
├─ 数値精度チェック(元データとの整合性)
├─ PII除去(個人名 → 役職名に変換等)
└─ 出力ログの記録(全回答を監査ログに)
2. 役割別アクセス制御:
| 役割 | 売上DB | 人事DB | 財務DB |
|---|---|---|---|
| CEO | 全社・全期間 | 全社概要(個人名なし) | 全社・全期間 |
| CFO | 全社・全期間 | 人件費関連のみ | 全社・全期間 |
| 部門長 | 自部門のみ | 自部門のみ(評価除く) | 自部門予算のみ |
3. 機密レベル別出力制御:
| 機密レベル | 対象データ | 出力ルール |
|---|---|---|
| Public | 公開済み業績 | 制限なし |
| Internal | 社内KPI、部門別売上 | 認証済みユーザーのみ |
| Confidential | 個人給与、未公開決算 | CEO/CFOのみ、ログ必須 |
| Restricted | M&A情報、戦略計画 | CEO限定、閲覧ログ + アラート |
4. 監査ログ要件:
| 項目 | 記録内容 | 保存期間 |
|---|---|---|
| 認証ログ | ログイン日時、ユーザー、IP | 2年 |
| クエリログ | 入力内容、対象DB、アクセスしたテーブル | 1年 |
| 回答ログ | 出力内容、参照データ、機密レベル | 1年 |
| 違反ログ | 権限外アクセス試行、ブロックイベント | 3年 |
| レビューログ | 監査実施日、監査者、指摘事項 | 3年 |
達成度チェック
- Mission 1: カスタマーサポートAIのGuardrails設計が完成した
- Mission 2: コード生成AI特有のリスクを識別し、Guardrailsを設計できた
- Mission 3: 経営ダッシュボードAIの高機密Guardrailsを設計できた
- 各シナリオでフレームワーク選定の根拠を明確に説明できた
- 監査ログの要件を定義できた
推定所要時間: 90分