Agent Mentor Learn
エージェントワークフローの設計: 単発の会話からマルチステップ自動化へ · 第 6 回 / 全 6 回

レッスン6: 実践における実世界のワークフロー

学習目標:

  • タスク分解、状態管理、エラーハンドリングを組み合わせて完全なワークフローを設計する
  • 3つの本番レベルのシナリオにおけるワークフローパターンを理解する
  • ワークフローの可観測性とデバッグ技術を習得する

前提: << レッスン5: エラーハンドリングとリトライ戦略

理論から実践へ

最初の5つのレッスンでは、ワークフローの構成要素であるステップ、状態、分解、エラーハンドリングを扱いました。今度はそれらを統合し、実際のシナリオから得られた3つの本番レベルのワークフローを構築します。

このレッスンにおける3つのワークフロー:

  1. コードリファクタリングパイプライン: レガシーコードを最新のパターンにリファクタリングし、分析、計画、実行、テスト、検証をカバー
  2. ドキュメント生成パイプライン: コードからAPIドキュメントを自動生成し、抽出、サンプル生成、レンダリング、公開をカバー
  3. テスト自動化フロー: エンドツーエンドのテストワークフローで、環境セットアップ、並列テスト、結果集約、レポート生成をカバー

すべてのワークフローが示すもの:

  • 完全なタスク分解
  • 状態管理とチェックポイント設計
  • エラーハンドリングと復旧戦略
  • 可観測性とデバッグサポート1

シナリオ1: コードリファクタリングパイプライン

要件

50個のコンポーネントを持つレガシーフロントエンドプロジェクトを、クラスコンポーネントから関数コンポーネント + Hooksにリファクタリングする。

課題:

  • コンポーネント間に依存関係があるため、任意の順序でリファクタリングできない
  • リファクタリングは動作を壊す可能性があるため、テスト検証が必要
  • 50個のコンポーネントは単一の会話で完了できないため、並列処理が必要2

タスク分解

ワークフローは6つのフェーズで構成されます。最初の2つはコンポーネントを並列処理でき、後のフェーズは依存関係順に実行されます。

mermaid
graph TD    A[フェーズ1: 依存関係分析] --> B{並列化可能?}    B -->|はい| C[コンポーネント1-25を分析]    B -->|はい| D[コンポーネント26-50を分析]    C --> E[フェーズ2: リファクタリング計画を生成]    D --> E    E --> F[フェーズ3: バッチごとにリファクタリング]    F --> G[バッチ1: リーフコンポーネント]    F --> H[バッチ2: 中間層コンポーネント]    F --> I[バッチ3: ルートコンポーネント]    G --> J[フェーズ4: テストスイートを実行]    H --> J    I --> J    J --> K{テスト合格?}    K -->|はい| L[フェーズ5: レポートを生成]    K -->|いいえ| M[フェーズ6: 失敗したコンポーネントを修正]    M --> J    L --> N[終了]

完全な実装

主要な設計ポイント

1. チェックポイント戦略: 各バッチ完了後に保存し、作業を再リファクタリングしない

2. 並列実行: 同じバッチ内のコンポーネントは並列にリファクタリング可能(相互に依存していない)

3. リトライメカニズム: 1つのコンポーネントの失敗が他に影響しない。Promise.allSettledを使用してすべての結果を収集

4. 修正ループ: テスト失敗時、自動的に修正を試行し、最大3回まで

5. 可観測性: すべてのフェーズが明確にログを出力し、状態は外部ストレージに永続化される3

シナリオ2: ドキュメント生成パイプライン

要件

30個のREST APIエンドポイントを持つサービスの完全なAPIドキュメントを生成する。エンドポイントの説明、リクエスト/レスポンスの例、エラーコードの説明を含む。

タスク分解(ファンアウト/集約パターン)

主要な特徴:

  • ファンアウト/集約パターン: 30個のエンドポイントが並列にドキュメントを生成し、最後に集約
  • ステートレス: タスクは十分に高速(< 10分)なのでチェックポイントは不要
  • 冪等性: いつでも再実行でき、出力ファイルを上書き可能1

シナリオ3: テスト自動化フロー

要件

複数の環境(ローカル、ステージング、本番)でエンドツーエンドテストを実行し、テスト結果とパフォーマンス指標を収集し、比較レポートを生成する。

完全な実装

主要な特徴:

  • 並列テスト: 複数の環境が同時にテストを実行し、合計時間を大幅に短縮
  • 耐障害性: 1つの環境の失敗が他に影響しない
  • スマートリトライ: 失敗したテストは自動的にリトライ(ネットワークの一時的な障害や過渡的な障害はよくある)
  • 失敗分析: 失敗の修正提案が自動生成される1

ワークフローの可観測性

優れたワークフローはいつでも以下に答えられるべきです:

  • どこまで進んでいるか?(X/Y完了)
  • あとどのくらいかかりそうか?
  • どんなエラーに遭遇したか?
  • パフォーマンスのボトルネックはどこか?

これらに答えられないなら、ログと状態追跡が十分詳細ではありません。ワークフローのデバッグはそれらの記録に依存し、推測には頼りません。

可観測性の実装

summary()内で期間によってソートし、最も遅い3つのステップのみを出力する部分は、最もシンプルな形式のパフォーマンスプロファイリングです。各ステップにかかった時間を測定し、どのステップが遅いかを推測するのではなくデータからボトルネックを見つけます。


エージェントワークフロー設計コースの修了おめでとうございます。

これで以下を習得しました:

  • ワークフローの核となる概念とその適用場所
  • タスク分解の3つの戦略
  • 状態管理とチェックポイントメカニズム
  • エラーハンドリングとリトライ戦略
  • 実際のシナリオから得られた3つの本番レベルのワークフロー

次のステップ:

  1. プロジェクトの1つでシンプルなワークフロー(< 5ステップ)を実践する
  2. 段階的に複雑さを追加する(並列処理、チェックポイント、エラーハンドリング)
  3. ワークフロー設計を共有してコミュニティからフィードバックを得る
  4. より高度なトピックを探索する(分散ワークフロー、ワークフローオーケストレーションフレームワーク、ビジュアルワークフローエディター)

Footnotes

  1. ClaudFlow: 7 Patterns for Claude Code Workflow Automation — https://claudflow.com/guides/claude-code-workflow-automation.html 2 3

  2. Kinde: Multi-Agent Workflows for Complex Refactoring — https://www.kinde.com/learn/ai-for-software-engineering/ai-agents/multi-agent-workflows-for-complex-refactoring-orchestrating-ai-teams/

  3. RefAgent paper: A Multi-Agent LLM Framework for Automated Software Refactoring — https://arxiv.org/html/2511.03153v1

練習

01

自分の仕事から実際のタスクを選び、それに対する完全なワークフローを設計してください。

レベル1: 独自のワークフローを設計する

要件:

  1. タスクを説明する(2-3文)
  2. ワークフロー図を描く(フェーズ、分岐、並列ステップ)
  3. 状態フィールドをリストする(最低5つ)
  4. チェックポイントをどこに設定するか説明する
  5. 起こりうるエラーとその対処方法をリストする
完了基準 · ローカルでチェック
02

「バッチ画像処理」ワークフローが47番目の画像で失敗し、エラーメッセージはError: EMFILE: too many open filesです。

レベル2: 失敗したワークフローをデバッグする

質問:

  1. これはどのタイプのエラーですか(一時的/永続的)?
  2. なぜ1番目ではなく47番目の画像で失敗するのですか?
  3. ワークフローをどのように修正すべきですか?(コード変更の提案を提供してください。)
完了基準 · ローカルでチェック