演習:エージェントの品質改善計画を策定しよう
「エージェントの現状の品質を評価し、改善計画を立ててくれ。」
田中VPoEが品質ダッシュボードを見ながら言う。
「品質評価、HITL設計、コスト最適化の3つの観点から、具体的な改善アクションを策定してほしい。来週の経営会議で使えるレベルのものを頼む。」
ミッション概要
離反分析AIエージェントの品質改善計画を策定する。現状の品質を評価し、改善施策を優先度付けして計画にまとめること。
Mission 1: 品質評価レポートの作成(20分)
エージェントの現状品質を以下の3軸で評価し、レポートにまとめよ。
- 正確性: モデル精度(AUC-ROC, Recall)、SHAP一貫性
- 有用性: 施策提案の具体性・根拠・優先度
- 一貫性: 同一入力への出力の安定性
各軸について、現状スコアと目標スコアを設定すること。
解答例
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設計書を作成せよ。
- リスクレベル × アクション種類の承認マトリックス(最低3×3)
- 承認者のロール定義
- フィードバック収集項目の設計(最低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分)
以下を含むコスト最適化計画を策定せよ。
- 現状のコスト構造の推定(月間想定利用量に基づく)
- 3つ以上の最適化施策とその削減効果
- 各施策の実装コスト(工数)と優先度
- 最適化後の目標コスト
- レイテンシ改善の目標値
解答例
# コスト最適化計画
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分