CrewAI完全解説:Sequential・Hierarchicalと高度なフロー設計
「AIエージェントを作ったけど、思い通りに動かない」そんな悩みを解決するCrewAI。基本のProcess(順次・階層)から、2025年に進化したFlows(条件分岐・並列実行・ルーティング)まで、実践的なワークフローパターンを徹底解説。
「動いたけど、制御できない」という絶望
マルチエージェントを試してみた。確かに動く。しかし……
- エージェントが勝手な方向に話を進めてしまう
- 意図した順序でタスクが実行されない
- 「なぜその結論に至ったのか」がブラックボックス
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
| 項目 | AutoGen | CrewAI |
|---|---|---|
| 中心概念 | 会話(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
- まずSequential Processで小さなワークフローを作る
- 複雑になったらFlowsで条件分岐を追加
- 承認が必要ならHuman-in-the-Loopを組み込む
制御可能なAIエージェントこそが、本番環境で価値を生みます。