AI・機械学習
中級
CrewAI(クルーエーアイ)
役割ベースのAIエージェントチームを構成するPythonフレームワーク。Agent(役割・目標・バックストーリー定義)とTask(期待出力・割り当てエージェント)をYAMLまたはコードで定義し、Crewがオーケストレーションする。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
LLM
マルチエージェント
エージェントオーケストレーション
Python
役割分担
CrewAI とは
CrewAIはPythonベースのマルチエージェントオーケストレーションフレームワークです。2024年初頭の公開後、直感的なAPI設計とLangChain非依存の軽量性から急速に採用が拡大しました。
4つのコア要素
- Agent: 役割(role)・目標(goal)・バックストーリー(backstory)を持つエージェント
- Task: 期待される出力(expected_output)と割り当てエージェントを定義
- Tool: エージェントが使用するツール(Web検索・ファイル操作等)
- Crew: エージェントとタスクを統括するオーケストレーター
YAML設定
agents.yaml:
researcher:
role: "{topic}シニアリサーチャー"
goal: "{topic}に関する最新の洞察を発見する"
backstory: "技術トレンドを探求することに情熱を持つ研究者"
writer:
role: "テックコンテンツライター"
goal: "{topic}について魅力的なコンテンツを作成する"
backstory: "複雑な概念を明確なストーリーに変える才能を持つ"
Pythonコード定義
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool
search_tool = SerperDevTool()
researcher = Agent(
role="シニアリサーチャー",
goal="最新のAIトレンドを調査する",
backstory="10年のAI研究経験を持つ専門家",
tools=[search_tool],
verbose=True
)
writer = Agent(
role="コンテンツライター",
goal="技術記事を執筆する",
backstory="技術コミュニケーションの専門家"
)
research_task = Task(
description="AIエージェントの最新動向を調査",
expected_output="主要フレームワークの比較レポート",
agent=researcher
)
writing_task = Task(
description="調査結果を基に記事を執筆",
expected_output="2000字の技術記事",
agent=writer
)
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
process=Process.sequential
)
result = crew.kickoff(inputs={"topic": "LLMエージェント"})
print(result.raw)
実行プロセス
- Process.sequential: タスクを順次実行(前タスクの出力が次に引き継がれる)
- Process.hierarchical: マネージャーLLMがタスクを委任・統括
- 並列タスク:
async_execution=Trueでタスク並列化
CrewAI Enterprise
本番環境向けにCrewAI Enterpriseプラットフォームが提供されており、デプロイ・モニタリング・ロールバックを統合管理できます。
まとめ
CrewAIは役割ベースのエージェント設計とYAML宣言型定義の組み合わせで、複雑なマルチエージェントワークフローを直感的に実装できます。研究・執筆・コーディングチームの自動化に特に適した実用的なフレームワークです。