ankuro.dev
← ブログ一覧に戻る
D1直前対策チートシート——エージェント・ワークフロー設計(試験比率27%)【CCA Foundations対策】
2026-04-04#Claude#API#生成AI#エージェント#Claude Certified Architect

D1直前対策チートシート——エージェント・ワークフロー設計(試験比率27%)【CCA Foundations対策】

試験比率27%、全5ドメイン中最大。ツール設計・エージェントループ・マルチエージェントオーケストレーション・エスカレーション判断・エラー伝播が主な出題範囲。


ワークフロー vs エージェントの使い分け

条件 選択
処理ステップが事前に予測できる ワークフロー(固定パイプライン)
必要なステップがClaudeの判断に依存する エージェント(動的ループ)
ループ回数を最小にしたい ワークフローで設計し、動的部分だけエージェント化

エージェントループの制御

  • stop_reason: "tool_use" → ツールを実行してClaudeを再呼び出し(ループ継続)
  • stop_reason: "end_turn" → 最終応答(ループ終了)
  • ループ回数の上限を設けて無限ループを防ぐ
  • 並列ツール呼び出し:1ターンで複数ツールを要求 → round-tripを削減

ツール設計の原則

  • 説明文が選択精度に直結する:「何をするか」「いつ使うか」「類似ツールとの違い」を明記
  • 最小権限:スキルや操作に必要なツールのみ渡す
  • 抽象的な設計:ファイルパス直接操作より「意図を渡す」設計(環境に依存しない)
  • 類似ツールが2つある場合、名前と説明で明確に区別しないと誤選択が増える

→ 詳細: Tool Use基礎① / Tool Use応用


マルチエージェント:コーディネーターパターン

  • コーディネーターの役割:一元的な可視性・エラーハンドリング・情報ルーティングの制御
  • サブエージェント間の直接通信を避ける → コーディネーター経由で一貫性を保つ
  • タスク分解はコーディネーターが行う(狭すぎると網羅性に欠ける)
  • 並列実行:独立したサブタスクは同時に走らせてlatencyを削減

→ 詳細: エージェントの設計


エスカレーション判断

状況 エスカレーション 理由
ポリシーに記載のないケース ✅ すべき 人間の判断が必要なポリシーギャップ
矛盾する証拠(追跡データ vs 顧客申告) ❌ 不要 事実を提示するのがエージェントの役割
顧客が感情的・不満を示している ❌ 不要 感情はエスカレーション基準にならない
複数の問い合わせが含まれている ❌ 不要 分解して処理できる

原則:ポリシーのギャップだけがエスカレーションの確実な基準

→ 詳細: エスカレーションと反復改善


Evaluator-Optimizerパターン

  • ドラフトを生成 → 自己評価ステップで基準を満たしているか確認 → 不十分なら再生成
  • 「顧客への確認」に頼るのではなく、エージェント自身が出力品質を担保する
  • 評価基準を明示(ポリシーの文脈・タイムライン・次のステップが含まれているか)

→ 詳細: エスカレーションと反復改善


エラー伝播の設計

エラーの種類 対処
タイムアウト(一時的な接続失敗) エラー種別・試みたクエリ・部分結果を含めてコーディネーターに返す
空の結果(クエリは成功・結果ゼロ) 有効な結果として返す(タイムアウトと混同しない)
部分的な成功(一部ソースが失敗) カバレッジ注釈付きで合成する(完全失敗扱いはNG)
破損ファイル等・解決不能 ローカルリトライ後、コンテキスト付きでコーディネーターに伝播

→ 詳細: コンテキスト最適化とprovenance管理


コンテキスト管理:Lost-in-the-Middle対策

  • Primacy effect:重要情報を入力の冒頭に置く(中間は読み飛ばされやすい)
  • セクション見出しで中間コンテンツをナビゲートしやすくする
  • 上流エージェントが冗長な出力(推論過程・ページ全文)を返すと下流で問題になる → 構造化データ(key facts・引用・関連スコア)を返すよう設計する

プログラム的前提条件

  • プロンプト指示は確率的:12%のスキップも防げない
  • ツールの入力バリデーション・前提条件チェックをコードで実装 → 決定論的に手順を強制
  • 金銭的・セキュリティ上の影響がある必須手順はプログラム的に強制する

→ 詳細: エージェント信頼性の設計


よくある誤解まとめ

誤解 実際
感情的な顧客はエスカレーションすべき ポリシーギャップがない限りエスカレーション不要
max_tokensを増やすと並列ツール呼び出しが増える 無関係。プロンプトで「まとめてリクエストせよ」と指示する
サブエージェントが直接通信するほうが効率的 コーディネーター経由で一元管理するのが基本
部分成功はエラーとして返すべき カバレッジ注釈付きで使える結果を返す(graceful degradation)
タイムアウトと空結果は同じ扱いでよい 意味が異なる。コーディネーターの判断材料として区別して伝える