ストーリー
ミッション概要
| 項目 | 内容 |
|---|---|
| 目標 | 業務シナリオに対して最適なエージェントパターンを選定し、設計方針を示す |
| 所要時間 | 60分 |
| ミッション数 | 3つ |
| 使用知識 | ReAct / Plan-and-Execute / Reflection |
| 評価観点 | パターン選定の妥当性、理由の論理性、設計方針の具体性 |
Mission 1: カスタマーサポート自動対応エージェント
シナリオ
NetShop社のカスタマーサポートに以下のような問い合わせが届きます。
「注文した商品が届かないのですが、どうなっていますか?
注文番号は ORD-98765 です。もし配送トラブルなら
代替品を送ってもらえますか?」
エージェントは以下のツールを使って対応する必要があります:
search_orders: 注文情報の検索track_shipment: 配送状況の追跡check_inventory: 在庫確認create_replacement_order: 代替品の発送手配send_notification: 顧客への通知送信
課題
- 最適なエージェントパターンを選定し、理由を説明してください
- エージェントの行動フローを設計してください
- エラーケース(例: 在庫切れ)への対処方針を示してください
解答例
選定パターン: ReAct
理由:
- 問い合わせ内容によって次のアクションが動的に変わる(配送遅延なのか、配送トラブルなのかで対応が異なる)
- 各ステップの結果を見て判断を変更する必要がある(在庫があれば代替品発送、なければ返金提案)
- 探索的な要素が強く、事前に全手順を確定できない
行動フロー:
Thought: 注文ORD-98765の状況を確認する必要がある
Action: search_orders(order_id="ORD-98765")
Observation: {status: "shipped", shipped_date: "2026-02-28"}
Thought: 発送済みだが届いていない。配送状況を追跡しよう
Action: track_shipment(order_id="ORD-98765")
Observation: {status: "配送トラブル", reason: "住所不明で持ち戻り"}
Thought: 配送トラブルだ。顧客は代替品を希望している。在庫を確認しよう
Action: check_inventory(product_id="PROD-001")
Observation: {available: true, stock: 15}
Thought: 在庫あり。代替品の発送を手配しよう
Action: create_replacement_order(original_order="ORD-98765")
Observation: {new_order_id: "ORD-99001", estimated_delivery: "2026-03-08"}
Thought: 代替品を手配できた。顧客に通知しよう
Action: send_notification(customer_id="...", message="...")
Observation: {sent: true}
Final Answer: 配送トラブル(住所不明で持ち戻り)が発生しておりました。
代替品(注文番号: ORD-99001)を手配しました。3月8日にお届け予定です。
エラーケース対処:
- 在庫切れ → 返金処理を提案し、
process_refundツールを使用 - 追跡番号不明 → 配送業者に直接問い合わせるよう案内
- 代替品発送失敗 → 手動対応にエスカレーション
Mission 2: 月次業績ダッシュボード自動生成エージェント
シナリオ
毎月初に、経営層向けの業績ダッシュボードデータを自動生成するエージェントを設計します。
必要な処理:
- 売上データの取得(売上DB)
- ユーザー行動データの取得(アクセスログDB)
- カスタマーサポートデータの取得(CSチケットDB)
- 各データのKPI計算(売上成長率、CVR、解決率など)
- 前月・前年同月との比較分析
- サマリーレポートの生成
利用ツール:
query_sales_db: 売上DBからデータ取得query_access_logs: アクセスログDBからデータ取得query_cs_tickets: CSチケットDBからデータ取得calculate_kpi: KPI計算generate_chart_data: チャートデータ生成format_report: レポートフォーマット
課題
- 最適なエージェントパターンを選定し、理由を説明してください
- 計画(サブタスク分解)を設計してください
- データ取得エラー時のリプランニング方針を示してください
解答例
選定パターン: Plan-and-Execute
理由:
- 処理手順が事前に明確に定義できる(データ取得→集計→比較→レポート)
- 複数のデータソースから順序立ててデータを収集する必要がある
- 一部のデータ取得は並列実行可能(効率化)
- 毎月同じフローを実行するため、計画をテンプレート化できる
計画(サブタスク分解):
Plan:
Phase 1: データ収集(並列実行可能)
Step 1a: query_sales_db(period="2026-02")
Step 1b: query_access_logs(period="2026-02")
Step 1c: query_cs_tickets(period="2026-02")
Phase 2: 比較データ収集(並列実行可能)
Step 2a: query_sales_db(period="2026-01") # 前月
Step 2b: query_sales_db(period="2025-02") # 前年同月
Phase 3: KPI計算(Phase 1, 2完了後)
Step 3a: calculate_kpi(data=phase1_results, type="current")
Step 3b: calculate_kpi(data=phase2_results, type="comparison")
Phase 4: レポート生成
Step 4a: generate_chart_data(kpi_data=phase3_results)
Step 4b: format_report(all_data=collected_results)
リプランニング方針:
- 売上DB接続エラー → 3回リトライ後、キャッシュされた前日のデータを使用
- アクセスログDB不可 → 売上データのみでレポートを生成し、アクセスログ部分は「データ取得不可」と表記
- KPI計算エラー → 該当KPIをスキップし、利用可能なデータのみでレポート生成
Mission 3: コードレビュー自動化エージェント
シナリオ
開発チームのPull Requestに対して、自動でコードレビューを行うエージェントを設計します。
レビュー観点:
- セキュリティ(SQLインジェクション、XSS、認証漏れ)
- パフォーマンス(N+1クエリ、不要なループ)
- コーディング規約(命名規則、型定義)
- テストカバレッジ(テストの有無、エッジケース)
利用ツール:
get_pr_diff: PRの差分を取得analyze_code: 静的解析の実行check_test_coverage: テストカバレッジ確認post_review_comment: レビューコメント投稿
課題
- 最適なエージェントパターンを選定し、理由を説明してください
- レビュープロセスのフローを設計してください
- 品質評価基準を定義してください
解答例
選定パターン: Reflection(Critic-Generator型)
理由:
- レビューの品質そのものが重要(不正確なレビューは開発者の信頼を失う)
- 初回レビューを自己評価し、誤検出(False Positive)を減らすことができる
- レビューコメントの表現も改善する必要がある(建設的なフィードバック)
- コード分析の結果を多角的に評価する必要がある
レビュープロセス:
Phase 1: データ収集
→ get_pr_diff → analyze_code → check_test_coverage
Phase 2: 初期レビュー生成(Generator)
→ 各観点でレビューコメントを生成
→ 重要度(Critical / Warning / Info)を付与
Phase 3: 自己評価(Critic)
→ 各コメントの妥当性を評価
→ 「このコメントは本当に正確か?」
→ 「開発者にとって建設的か?」
→ 「コンテキストを考慮しているか?」
→ 評価スコア: 85/100以上で投稿
Phase 4: 改善(必要な場合)
→ 誤検出の除去
→ コメント表現の改善
→ 優先度の再調整
Phase 5: 投稿
→ post_review_comment で各コメントを投稿
品質評価基準:
| 基準 | 重み | 説明 |
|---|---|---|
| 正確性 | 40% | 指摘内容が技術的に正確か |
| 建設性 | 25% | 改善案を含む建設的なコメントか |
| 網羅性 | 20% | 重要な問題を見落としていないか |
| 適切性 | 15% | 重要度の分類が適切か |
達成度チェック
- Mission 1: カスタマーサポートシナリオに対してReActを適切に選定し、行動フローを設計できた
- Mission 2: ダッシュボード生成シナリオに対してPlan-and-Executeを適切に選定し、計画を設計できた
- Mission 3: コードレビューシナリオに対してReflectionを適切に選定し、レビュープロセスを設計できた
- 各パターンの選定理由を論理的に説明できた
- エラーケースへの対処方針を示せた
推定所要時間: 60分