EXERCISE 90分

ストーリー

田中VPoE
入力フィルタリング、出力フィルタリング、トピック制限、Guardrailsフレームワークを学んだ。これを実際のシステムに適用する演習だ
あなた
NetShop社のAIシステムにGuardrailsを設計するんですね
田中VPoE
3つのシナリオを用意した。それぞれ異なる要件があるから、最適なGuardrails構成を設計してくれ。フレームワーク選定の根拠も明確にしてほしい
あなた
要件分析からフレームワーク選定、具体的なルール定義まで、一気通貫でやるということですね

ミッション概要

項目内容
目標3つのAIシステムに対するGuardrails設計を完成させる
所要時間90分
ミッション数3つ
使用知識入力/出力フィルタリング、トピック制限、Guardrailsフレームワーク
評価観点要件の網羅性、設計の妥当性、フレームワーク選定の根拠

Mission 1: カスタマーサポートAIのGuardrails設計

システム要件

対象: NetShop社カスタマーサポートAI
ユーザー: 一般顧客(外部公開、月間5万人)
機能: 商品問い合わせ、注文確認、返品手続き
リスクレベル: 高(外部公開のため攻撃リスクが高い)

課題

  1. 入力フィルタリングの設計

    • どの入力フィルタを適用するか?(優先度付き)
    • 各フィルタのしきい値設定
  2. 出力フィルタリングの設計

    • どの出力チェックを適用するか?
    • フォールバック戦略の定義
  3. トピック制限の定義

    • ALLOW / REVIEW / DENY の具体的なトピックリスト
  4. フレームワーク選定

    • NeMo Guardrails / Guardrails AI / カスタム実装のどれを選ぶか?
    • 選定理由
解答例

1. 入力フィルタリング(優先度順):

優先度フィルタしきい値理由
1形式バリデーション最大2000文字基本的な防御
2プロンプトインジェクション検出信頼度0.7以上でブロック外部公開のため攻撃リスク高
3PII検出クレジットカード・マイナンバーはブロック、他はマスク顧客の個人情報保護
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名)
機能: コード生成、コードレビュー補助、バグ修正提案
リスクレベル: 中(社内限定だが、生成コードの品質が重要)

課題

  1. コード生成AIに特有のリスクを3つ以上挙げてください
  2. 各リスクに対するGuardrailsルールを設計してください
  3. コード品質の出力チェック基準を定義してください
  4. 適切なフレームワークを選定し、理由を説明してください
解答例

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
リスクレベル: 最高(機密性の高い経営データを扱う)

課題

  1. このシステムのGuardrails全体アーキテクチャを設計してください
  2. ユーザーの役割(CEO、CFO、部門長)に応じたアクセス制御を定義してください
  3. データの機密レベルに応じた出力制御ルールを設計してください
  4. 監査ログの要件を定義してください
解答例

1. Guardrails全体アーキテクチャ:

ユーザー認証(SSO + MFA)


入力ガード
  ├─ 認証・認可チェック(役割ベース)
  ├─ クエリのスコープ制限(権限内のDBのみ)
  └─ 入力ログの記録(全クエリを監査ログに)


データアクセス層
  ├─ 行レベルセキュリティ(部門長は自部門のみ)
  ├─ 集計レベル制限(個人レベル → 部門レベル → 全社レベル)
  └─ 時間範囲制限(未確定データへのアクセス制御)


LLM処理(データ分析・レポート生成)


出力ガード
  ├─ 機密レベルチェック(役割に応じた開示レベル)
  ├─ 数値精度チェック(元データとの整合性)
  ├─ PII除去(個人名 → 役職名に変換等)
  └─ 出力ログの記録(全回答を監査ログに)

2. 役割別アクセス制御:

役割売上DB人事DB財務DB
CEO全社・全期間全社概要(個人名なし)全社・全期間
CFO全社・全期間人件費関連のみ全社・全期間
部門長自部門のみ自部門のみ(評価除く)自部門予算のみ

3. 機密レベル別出力制御:

機密レベル対象データ出力ルール
Public公開済み業績制限なし
Internal社内KPI、部門別売上認証済みユーザーのみ
Confidential個人給与、未公開決算CEO/CFOのみ、ログ必須
RestrictedM&A情報、戦略計画CEO限定、閲覧ログ + アラート

4. 監査ログ要件:

項目記録内容保存期間
認証ログログイン日時、ユーザー、IP2年
クエリログ入力内容、対象DB、アクセスしたテーブル1年
回答ログ出力内容、参照データ、機密レベル1年
違反ログ権限外アクセス試行、ブロックイベント3年
レビューログ監査実施日、監査者、指摘事項3年

達成度チェック

  • Mission 1: カスタマーサポートAIのGuardrails設計が完成した
  • Mission 2: コード生成AI特有のリスクを識別し、Guardrailsを設計できた
  • Mission 3: 経営ダッシュボードAIの高機密Guardrailsを設計できた
  • 各シナリオでフレームワーク選定の根拠を明確に説明できた
  • 監査ログの要件を定義できた

推定所要時間: 90分