0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CrewAIとは?複数のAIエージェントを連携させるマルチエージェントフレームワーク入門

0
Posted at

はじめに

ChatGPTのような単体のLLMを業務で使うケースはもはや当たり前になりました。しかし実務で自動化したいタスクは、「リサーチ→分析→レポート執筆→レビュー」のように複数の専門的な役割をまたぐことが多く、1つのLLMにすべてを任せると品質が安定しません。

そこで注目されているのが CrewAI です。複数のAIエージェントに役割を与え、チームとして協調させるためのPython製フレームワークです。本記事では、CrewAIの概要から実際のコードまで、エンジニアが読んでそのまま手を動かせるレベルで解説します。

CrewAIとは

CrewAIは、複数のAIエージェント(Agent)を役割分担させて、チーム(Crew)としてタスクを遂行させるためのオープンソースフレームワークです。Pythonで実装されており、2024年頃から急速に人気を集めています。

人間のチームに例えると分かりやすいです。

  • リサーチャー:情報収集を担当
  • アナリスト:収集した情報を分析
  • ライター:分析結果を読みやすい文章にまとめる

これらを個別のエージェントとして定義し、互いに成果物を受け渡しながら一連のワークフローを自律的にこなさせます。

LangChainエージェントとの違い

似たツールとしてLangChainのエージェント機能やAutoGenが挙げられますが、CrewAIの特徴は以下の通りです。

観点 LangChain Agents CrewAI
基本コンセプト ツールを使う単一エージェント中心 役割ベースの複数エージェント連携
設計思想 汎用的なツールチェーン 人間のチーム構造を模倣
記述量 オーケストレーションを自前で組む必要あり 宣言的にエージェントとタスクを定義
向いている用途 単一タスクの自動化 複数工程にまたがる複雑なワークフロー

LangChainは「道具箱」、CrewAIは「組織図」に近いイメージです。なお、CrewAIはLangChain上に構築されているため、LangChainのツール群をそのまま利用できます。

4つのコアコンセプト

1. Agent(エージェント)

役割(role)、目標(goal)、背景(backstory)を持つ作業者です。LLMとツールを紐付けて定義します。

from crewai import Agent

researcher = Agent(
    role="シニアリサーチャー",
    goal="指定されたテーマについて信頼性の高い情報を収集する",
    backstory="業界調査の経験が豊富なアナリスト。事実と推測を明確に区別する。",
    verbose=True
)

backstoryは単なる飾りではありません。エージェントの振る舞いに影響を与えるため、出力品質を左右する重要な要素です。

2. Task(タスク)

エージェントに与える具体的な作業指示です。期待する出力形式(expected_output)を明確に書くことがポイントです。

from crewai import Task

research_task = Task(
    description="AIエージェント市場の最新動向を調査し、主要プレイヤーと技術トレンドを整理する",
    expected_output="主要プレイヤー5社とその特徴、直近の技術トレンド3点を箇条書きでまとめたレポート",
    agent=researcher
)

3. Crew(クルー)

エージェントとタスクを束ねる実行単位です。タスクの実行順序(プロセス)を制御します。

from crewai import Crew, Process

crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, write_task],
    process=Process.sequential  # タスクを順番に実行
)

result = crew.kickoff()

4. Process(プロセス)

タスクの進行方式です。

  • Sequential:定義した順に実行。最も基本的なパターン
  • Hierarchical:マネージャー役のエージェントがタスクを割り振り・統括。複雑なワークフロー向け

実践:リサーチ&記事執筆クルーを動かす

環境構築

pip install crewai crewai-tools
export OPENAI_API_KEY="sk-..."

最小限の実装例

from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool

search_tool = SerperDevTool()

# エージェント定義
researcher = Agent(
    role="リサーチャー",
    goal="Web上から正確な情報を収集する",
    backstory="ファクトチェックを厳密に行う調査のプロ",
    tools=[search_tool],
    verbose=True
)

writer = Agent(
    role="テクニカルライター",
    goal="技術情報を分かりやすい文章にまとめる",
    backstory="エンジニア向けメディアでの執筆経験が豊富",
    verbose=True
)

# タスク定義
task1 = Task(
    description="CrewAIの最新機能について調査する",
    expected_output="箇条書き形式の調査メモ",
    agent=researcher
)

task2 = Task(
    description="調査結果をもとに、エンジニア向けの解説記事を2000字程度で執筆する",
    expected_output="Markdown形式の記事本文",
    agent=writer
)

# クルー実行
crew = Crew(
    agents=[researcher, writer],
    tasks=[task1, task2],
    process=Process.sequential,
    verbose=True
)

result = crew.kickoff()
print(result)

実行すると、リサーチャーが検索ツールを使って情報を集め、その結果をライターが受け取って記事を執筆します。verbose=True にしておくとエージェントの思考過程がログで確認できるため、デバッグ時は必須です。

つまずきポイントと対策

実際に触ってみてハマりやすい点を共有します。

1. expected_output が曖昧だと出力がブレる
「レポートを書く」だけでは毎回構成が変わります。「見出し3つ、各300字以内、箇条書きは使わない」のように具体的に指定しましょう。

2. エージェントを増やせば良いわけではない
役割が重複したエージェントを増やすと、同じような成果物が繰り返されてトークンを無駄に消費します。まずは2〜3体のシンプルな構成から始めるのが鉄則です。

3. コスト管理
マルチエージェントは単体LLM呼び出しの何倍もトークンを消費します。開発中は gpt-4o-mini などの軽量モデルで試行し、本番で高性能モデルに切り替える運用がおすすめです。

4. YAMLベースの設定管理
エージェントやタスクの定義が増えてきたら、CrewAI公式が推奨するYAML設定ファイル方式に移行すると保守性が上がります。

# agents.yaml
researcher:
  role: リサーチャー
  goal: 正確な情報を収集する
  backstory: 調査のプロ

どんな用途に向いているか

  • 競合調査レポートの自動生成
  • コードレビュー+ドキュメント整備の自動化
  • 営業メールの個別最適化(リサーチ→文面作成)
  • データ収集から分析、可視化レポートまでの一連のパイプライン

逆に、単発の質問応答やシンプルな分類タスクには過剰です。普通のLLM呼び出しで十分なケースを見極めることも重要です。

まとめ

  • CrewAIは複数のAIエージェントをチームとして協調させるPythonフレームワーク
  • Agent / Task / Crew / Process の4要素で構成される
  • 人間の組織と同じ発想で設計できるため、複雑なワークフローを直感的に実装できる
  • まずは2〜3体のシンプルな構成から始め、expected_outputを明確に書くことが成功の鍵

マルチエージェントの実装は、実際に手を動かして試行錯誤するのが一番の近道です。


📚 もっと深く学びたい方へ

AIエージェントやAIアプリ開発を実践的に学べるUdemy講座を公開しています。すべての講座が演習型で、手を動かしながら確実にスキルが身につく構成になっています。以下のリンクから割引価格で受講できますので、ぜひチェックしてみてください。

👉 Udemy講座一覧(割引クーポン付き)


この記事が参考になったら、ストック・いいねをいただけると励みになります。質問やフィードバックはコメント欄でお待ちしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?