クイズの説明
Step 2で学んだTool Useとファンクションコーリングについて理解度をチェックします。
- 全5問
- 不合格の場合は復習してから再挑戦してください
問題
Q1. ツール設計の「単一責任の原則」として正しい実践はどれですか?
- A) 1つのツールで注文の検索・キャンセル・更新をすべて処理する
- B) 注文検索、注文キャンセル、注文更新をそれぞれ別のツールとして設計する
- C) すべてのAPIを1つの汎用ツールにまとめて、パラメータで振り分ける
- D) ツール数を最小にするため、なるべく多機能なツールを設計する
答えを見る
正解: B
単一責任の原則では、1つのツールは1つの明確な責務を持つべきです。search_orders、cancel_order、update_order のように分割することで、LLMが正しいツールを選択しやすくなり、パラメータも明確になります。
Q2. ファンクションコーリングで、LLMがツール呼び出しを返した後の正しい処理フローはどれですか?
- A) LLMの出力をそのままユーザーに返す
- B) ツールを実行し、結果をLLMに返却して次の判断を仰ぐ
- C) ツールを実行し、結果を直接ユーザーに返す
- D) ツール呼び出しをキューに入れて非同期で処理する
答えを見る
正解: B
ファンクションコーリングでは、LLMがツール呼び出しを返却 → アプリケーションがツールを実行 → 結果をメッセージとしてLLMに返却 → LLMが結果を踏まえて最終回答を生成、というフローが正しいです。ツールの実行結果をLLMに戻すことで、適切な文脈での回答が生成されます。
Q3. ツールのパラメータバリデーションが重要な理由として正しいものはどれですか?
- A) LLMは常に正確なパラメータを生成するため、バリデーションは不要
- B) LLMが生成するパラメータは常に正しいとは限らず、不正な値でツールが誤動作する可能性がある
- C) バリデーションはパフォーマンス向上のために必要
- D) APIの利用規約でバリデーションが義務付けられている
答えを見る
正解: B
LLMが生成するパラメータは必ずしも正しいとは限りません。フォーマットの誤り、範囲外の値、必須パラメータの欠落などが発生する可能性があります。Zodなどのバリデーションライブラリで検証し、不正な場合はLLMが理解できるエラーメッセージを返すことが重要です。
Q4. Exponential Backoffによるリトライ戦略の説明として正しいものはどれですか?
- A) リトライの間隔を一定に保つ(1秒、1秒、1秒…)
- B) リトライの間隔を指数的に広げる(1秒、2秒、4秒…)
- C) リトライ回数に上限を設けず、成功するまで繰り返す
- D) すべてのエラーに対して同じリトライ戦略を適用する
答えを見る
正解: B
Exponential Backoffは、リトライの間隔を指数的に広げる戦略です(1秒、2秒、4秒…)。これにより、一時的な負荷やレート制限が解消される時間を確保しつつ、無駄なリトライを減らします。また、リトライは一時的なエラー(タイムアウト、レート制限等)にのみ適用し、永続的なエラーには適用しません。
Q5. ツールのエラーレスポンスに含めるべき情報として、最も重要なものはどれですか?
- A) スタックトレースの全文
- B) エラーコード、メッセージ、LLMへの次のアクション提案
- C) エラーが発生したサーバーのIPアドレス
- D) エラー発生時のメモリ使用量
答えを見る
正解: B
ツールのエラーレスポンスには、エラーコード(機械的な判別用)、人間可読なメッセージ(何が起きたか)、次のアクション提案(LLMが何をすべきか)を含めるべきです。スタックトレースやサーバー情報はセキュリティリスクになり、LLMの判断にも不要です。
結果
4問以上正解の場合
合格です。Step 2「Tool Useとファンクションコーリングを実装しよう」を完了しました。 次はStep 3「LangGraphでワークフローを構築しよう」に進みましょう。
3問以下の場合
もう少し復習しましょう。
| 問題 | 復習セクション |
|---|---|
| Q1 | step2_1 Tool設計の原則 |
| Q2 | step2_2 ファンクションコーリング |
| Q3 | step2_2 パラメータバリデーション |
| Q4 | step2_4 エラーハンドリングとリトライ |
| Q5 | step2_4 エラーレスポンス設計 |
推定所要時間: 30分