CrewAI完全解説:Sequential・Hierarchicalと高度なフロー設計

「AIエージェントを作ったけど、思い通りに動かない」そんな悩みを解決するCrewAI。基本のProcess(順次・階層)から、2025年に進化したFlows(条件分岐・並列実行・ルーティング)まで、実践的なワークフローパターンを徹底解説。

CrewAI完全解説:Sequential・Hierarchicalと高度なフロー設計

「動いたけど、制御できない」という絶望

マルチエージェントを試してみた。確かに動く。しかし……

  • エージェントが勝手な方向に話を進めてしまう
  • 意図した順序でタスクが実行されない
  • 「なぜその結論に至ったのか」がブラックボックス

AutoGenのGroup Chatで自由に会話させると、確かに動きます。しかし、本番環境で使えるかと言われると、首を縦に振れない。そんな経験はありませんか?

CrewAIは、この「制御不能問題」に正面から取り組んだフレームワークです。

[!IMPORTANT] CrewAIの哲学: 自由な会話ではなく、「ロール(役割)」と「プロセス(手順)」 で制御する。


CrewAI vs AutoGen:設計思想の違い

graph TB
    subgraph AG["🤖 AutoGen:会話ベース"]
        A1[エージェントA] <-->|会話| A2[エージェントB]
        A2 <-->|会話| A3[エージェントC]
    end

    AG --> compare["↓ 比較 ↓"]

    subgraph CR["⚙️ CrewAI:プロセスベース"]
        C1[タスク1] -->|成果物| C2[タスク2]
        C2 -->|成果物| C3[タスク3]
    end

    compare --> CR
項目AutoGenCrewAI
中心概念会話(Conversation)プロセス(Process)
制御方法司会者が動的に指名タスク定義が順序を決定
予測可能性低い(非決定論的)高い(決定論的)
向いているタスクブレスト、創造的な議論業務プロセスの自動化

2025年の進化:Flows機能の登場

2024年中盤に導入され、2025年にさらに強化された Flows 機能により、CrewAIは単なる「順次実行」から 「プログラマブルなワークフローエンジン」 へと進化しました。

バージョン機能
従来Sequential / Hierarchical Process のみ
2024〜Flows: 条件分岐、並列実行、ルーティング
2025〜Supercharged Flows: 状態管理強化、HITL対応

基本パターン:2つのProcess

1. Sequential Process:確実なバトンリレー

“Tasks are executed one after the other in a predetermined, linear order.” — CrewAI Documentation

これがCrewAIのデフォルトです。タスクリストの上から順に、エージェントがバトンタッチしながら仕事を進めます。

graph LR
    subgraph "Sequential Process"
        R[Researcher] -->|調査結果| W[Writer]
        W -->|原稿| E[Reviewer]
    end

アナロジー:駅伝

第1走者がゴールしないと、第2走者はスタートできません。前のタスクの成果物(Output)が、次のタスクの入力(Context)として自動的に渡されます。

[!TIP] 向いているタスク: 調査→執筆→レビューのように、手順が直線的で依存関係が明確な業務。


2. Hierarchical Process:上司が指揮する組織型

“A dedicated ‘manager’ agent oversees the entire task execution… handling planning, delegation, and validation.” — CrewAI Documentation

process=Process.hierarchical を指定すると、マネージャーエージェント が自動生成されます。

graph TD
    Manager[Manager Agent]
    Manager -->|指示| Dev[Developer]
    Manager -->|指示| QA[Tester]
    Manager -->|指示| Doc[Writer]
    Dev -->|報告| Manager
    QA -->|報告| Manager
    Doc -->|報告| Manager

アナロジー:プロジェクトマネージャー

PMが「誰に何を任せるか」を動的に判断します。部下は指示に従い、成果を報告。PMは品質に満足するまで、修正を命じたり、別のメンバーに振り直したりします。

[!WARNING] 注意点: マネージャーの判断がLLMに依存するため、AutoGenのGroup Chatほどではないにせよ、結果にブレが生じる可能性があります。


高度パターン:Flows機能

ここからがCrewAIの真骨頂です。Flows を使うことで、Pythonコードでワークフローを完全に制御できます。

A. Conditional Routing(条件分岐)

@router() デコレータで、タスクの結果に応じて次のステップを動的に分岐させます。

graph TD
    Input[メール受信] --> Classify{内容判定}
    Classify -->|クレーム| Support[サポートチーム]
    Classify -->|問い合わせ| Sales[営業チーム]
    Classify -->|その他| Archive[アーカイブ]
@router(classify_email)
def route_email(self):
    if self.state.email_type == "complaint":
        return "support_crew"
    elif self.state.email_type == "inquiry":
        return "sales_crew"
    else:
        return "archive"

B. Parallel Execution(並列実行)

or_and_ 演算子で、複数のタスクを同時実行し、結果を集約できます。

graph TD
    Start[開始] --> Market[市場調査]
    Start --> Tech[技術検証]
    Market --> Sync{両方完了待ち}
    Tech --> Sync
    Sync --> Plan[企画立案]

[!TIP] and_(): 全タスク完了後にトリガー or_(): いずれかのタスク完了でトリガー


C. Human-in-the-Loop(人間参加型)

重要な意思決定のタイミングで、人間の承認を挟むことができます。

  • AIがリード顧客をスコアリング
  • 人間が最終的な営業アプローチの可否を判断
  • 承認されたら営業チームがアクション
sequenceDiagram
    participant AI as AI Crew
    participant Human as 人間
    participant Sales as 営業チーム

    AI->>Human: スコアリング完了、承認をお願いします
    Human-->>AI: 承認
    AI->>Sales: 営業アクション開始

比較まとめ:どのパターンを選ぶべきか?

パターンキーワード制御性柔軟性ユースケース
Sequentialバトンリレー★★★★★★★☆☆☆定型業務、パイプライン
Hierarchical上司と部下★★★★☆★★★☆☆複雑だが明確な目標
Flows (条件分岐)ルーティング★★★★★★★★★☆メール振り分け、承認フロー
Flows (並列)同時実行★★★★☆★★★★★調査の並列化、A/Bテスト

結論:AutoGenとの使い分け

「自由なディスカッション」が必要ならAutoGen、「堅実な業務遂行」ならCrewAI

これが定石です。

しかし2025年現在、CrewAI Flowsの進化により、「制御性と柔軟性の両立」 が可能になりました。業務プロセス自動化においては、CrewAIがファーストチョイスになりつつあります。

Next Action

  1. まずSequential Processで小さなワークフローを作る
  2. 複雑になったらFlowsで条件分岐を追加
  3. 承認が必要ならHuman-in-the-Loopを組み込む

制御可能なAIエージェントこそが、本番環境で価値を生みます。


出典