LESSON

演習:エージェントの品質改善計画を策定しよう

「エージェントの現状の品質を評価し、改善計画を立ててくれ。」

田中VPoEが品質ダッシュボードを見ながら言う。

「品質評価、HITL設計、コスト最適化の3つの観点から、具体的な改善アクションを策定してほしい。来週の経営会議で使えるレベルのものを頼む。」

ミッション概要

離反分析AIエージェントの品質改善計画を策定する。現状の品質を評価し、改善施策を優先度付けして計画にまとめること。


Mission 1: 品質評価レポートの作成(20分)

エージェントの現状品質を以下の3軸で評価し、レポートにまとめよ。

  1. 正確性: モデル精度(AUC-ROC, Recall)、SHAP一貫性
  2. 有用性: 施策提案の具体性・根拠・優先度
  3. 一貫性: 同一入力への出力の安定性

各軸について、現状スコアと目標スコアを設定すること。

解答例
import pandas as pd

quality_report = pd.DataFrame({
    '品質軸': ['正確性', '正確性', '正確性', '有用性', '有用性', '有用性', '一貫性', '一貫性'],
    '指標': [
        'AUC-ROC', 'Recall', 'SHAP一貫性',
        '施策の具体性', '根拠の明確さ', '優先度の明示',
        '予測値の安定性', '応答の安定性'
    ],
    '現状スコア': [
        '0.85', '0.72', '誤差<0.001',
        '80%', '60%', '40%',
        '完全一致', '類似度85%'
    ],
    '目標スコア': [
        '0.88', '0.80', '誤差<0.001',
        '95%', '90%', '90%',
        '完全一致', '類似度95%'
    ],
    'ギャップ': [
        '中', '大', 'なし',
        '中', '大', '大',
        'なし', '中'
    ],
})

print("=== 品質評価レポート ===")
print(quality_report.to_string(index=False))

# 総合判定
print("\n総合判定:")
print("  正確性: B(モデル精度は良好だがRecallに改善余地)")
print("  有用性: C(施策提案の根拠と優先度が不十分)")
print("  一貫性: A(予測は決定的、応答は概ね安定)")

Mission 2: HITL設計書の作成(20分)

以下を含むHITL設計書を作成せよ。

  1. リスクレベル × アクション種類の承認マトリックス(最低3×3)
  2. 承認者のロール定義
  3. フィードバック収集項目の設計(最低5項目)
  4. 信頼度閾値の設定と分岐ルール
  5. フィードバックに基づくモデル再学習のトリガー条件
解答例
=== HITL設計書 ===

1. 承認マトリックス

| アクション\リスク | LOW | MEDIUM | HIGH |
|-------------------|-----|--------|------|
| 分析レポート閲覧   | 自動 | 自動   | 自動  |
| クーポン送付       | 自動 | マネージャー | シニアMgr |
| 契約変更提案       | マネージャー | シニアMgr | 部門長 |
| 特別割引適用       | シニアMgr | 部門長 | VP承認 |

2. ロール定義
- マネージャー: CS/営業チームのリーダー(日次承認)
- シニアマネージャー: 部門リーダー(即時承認可)
- 部門長: CS部門長(重大案件のみ)
- VP: 経営層(¥100万超の施策)

3. フィードバック収集項目
- 離反予測の正確さ(1-5)
- 要因説明の納得感(1-5)
- 施策提案の実行可能性(1-5)
- 施策実行後の結果(retained/churned/unknown)
- 自由記述コメント
- 施策の実行有無(yes/no/partial)
- 顧客の反応(positive/neutral/negative)

4. 信頼度閾値
- 高信頼(確率 >= 0.85 or <= 0.15): 自動実行
- 中信頼(0.30-0.85 or 0.15-0.30): 人間レビュー
- 低信頼(0.30-0.70の境界領域): エスカレーション

5. 再学習トリガー
- 月次のフィードバック分析で正確性評価の平均が3.0未満
- 実際の離反率とモデル予測の乖離が5%以上
- フィードバック件数が100件を超えた時点
- 新規データが全体の20%以上追加された場合

Mission 3: コスト最適化計画の策定(20分)

以下を含むコスト最適化計画を策定せよ。

  1. 現状のコスト構造の推定(月間想定利用量に基づく)
  2. 3つ以上の最適化施策とその削減効果
  3. 各施策の実装コスト(工数)と優先度
  4. 最適化後の目標コスト
  5. レイテンシ改善の目標値
解答例
# コスト最適化計画
cost_plan = {
    "現状コスト構造": {
        "月間問い合わせ数": 1000,
        "LLM API(意図分類)": "¥5,000/月(1000回×¥5)",
        "LLM API(応答生成)": "¥30,000/月(1000回×¥30)",
        "SHAP計算(コンピュート)": "¥2,000/月",
        "合計": "¥37,000/月",
    },
    "最適化施策": [
        {
            "施策": "意図分類をルールベースに変更",
            "削減効果": "¥5,000/月(100%削減)",
            "工数": "2時間",
            "優先度": "HIGH",
        },
        {
            "施策": "応答生成をgpt-4o-miniに変更",
            "削減効果": "¥22,500/月(75%削減)",
            "工数": "1時間",
            "優先度": "HIGH",
        },
        {
            "施策": "予測結果のキャッシング(TTL=24h)",
            "削減効果": "¥2,000/月(同一顧客の再問い合わせ30%減)",
            "工数": "4時間",
            "優先度": "MEDIUM",
        },
        {
            "施策": "SHAP値の夜間バッチ事前計算",
            "削減効果": "¥1,500/月 + レイテンシ1.5s削減",
            "工数": "8時間",
            "優先度": "MEDIUM",
        },
    ],
    "最適化後目標": {
        "月間コスト": "¥6,000/月(84%削減)",
        "平均レイテンシ": "1.5秒以下(現状3.5秒)",
    },
}

for k, v in cost_plan.items():
    print(f"\n{k}:")
    if isinstance(v, dict):
        for k2, v2 in v.items():
            print(f"  {k2}: {v2}")
    elif isinstance(v, list):
        for item in v:
            print(f"  [{item['優先度']}] {item['施策']}")
            print(f"    削減: {item['削減効果']}, 工数: {item['工数']}")

達成度チェック

  • 3軸(正確性・有用性・一貫性)の品質評価レポートを作成した
  • 現状スコアと目標スコアのギャップを特定した
  • HITL承認マトリックスを設計した
  • フィードバック収集項目を5つ以上定義した
  • 3つ以上のコスト最適化施策を策定した
  • 各施策の優先度と実装コストを明記した

推定所要時間: 60分