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宣言型定義の組み合わせで、複雑なマルチエージェントワークフローを直感的に実装できます。研究・執筆・コーディングチームの自動化に特に適した実用的なフレームワークです。

この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/7