Re Reference AI

エージェント

CrewAIとは

役割を与えた複数のAIエージェントに協調してタスクを遂行させる、Pythonのマルチエージェントフレームワーク

フレームワークマルチエージェント

ひとことで言うと

役割を持たせた複数のAIエージェントに、チームのように協力させるための開発ツール。

概要

CrewAIとは、複数のAIエージェントにそれぞれ役割(ロール)・目標・利用可能なツールを設定し、チーム(クルー)として協調させながら1つのタスクを遂行させることに特化したPythonのオープンソースフレームワーク。 「リサーチ担当」「ライター担当」「レビュー担当」のように役割分担したエージェントを定義し、それぞれの成果物を連携させるワークフローを比較的簡潔なコードで構築できる点を特徴とする。 エージェント同士が順番にタスクをこなす逐次型、状況に応じて動的にタスクを割り振る階層型など複数の協調パターンをサポートしており、比較的少ないコード量でマルチエージェントの試作ができる。 LangChainのようなより汎用的なフレームワークと比べて学習コストが低く、役割ベースのエージェント設計に特化しているぶん、複数のエージェントを素早く試作したい場面で使われやすい。

背景

単一のエージェントに複雑なタスクを全て任せるのではなく、人間の組織のように役割分担したエージェントを協調させたいというニーズに対し、その構築を簡潔に行えるフレームワークとしてCrewAIが開発された。

歴史

2023年: CrewAIが公開され、役割ベースのマルチエージェント構築を簡潔に行えるフレームワークとして開発者コミュニティで普及した。

アーキテクチャ

エージェントに役割・目標・背景設定・利用可能なツールを定義し、複数のエージェントとタスクの実行順序をまとめた「クルー」として構成する。 タスクの実行順序をあらかじめ定めた逐次型のほか、エージェント同士がより自律的にやり取りする階層型の実行方式もサポートする。

コード例

役割ベースのエージェント定義(概念例)

from crewai import Agent, Task, Crew

researcher = Agent(
    role="リサーチ担当",
    goal="指定されたトピックを調査する",
    backstory="AI分野に詳しいリサーチャー",
)
task = Task(description="RAGについて調査する", agent=researcher, expected_output="調査結果の要約")
crew = Crew(agents=[researcher], tasks=[task])

result = crew.kickoff()
print(result)

利点

欠点

  • 複雑な条件分岐やループを伴うワークフローの表現は、LangGraph等のグラフベースのフレームワークと比べ柔軟性に制約が生じやすい
  • エージェント数が増えるほど、役割設定やタスク間の連携の設計が難しくなる
  • 細かい制御フローを記述したい高度なユースケースでは、抽象度の高さが制約になる場合がある

比較

  • マルチエージェントCrewAIは、役割ベースのマルチエージェントシステムを構築するための代表的なフレームワーク
  • LangGraphLangGraphとCrewAIは、いずれもマルチエージェントアプリケーションを構築するためのフレームワーク
  • AutoGenCrewAIとAutoGenは、いずれも複数のAIエージェントを協調させるためのフレームワーク

関連用語

マルチエージェントLangGraphAutoGenAIエージェントSemantic KernelAgent Development Kit

よくある質問

CrewAIとAutoGenの違いは?

CrewAIは役割(ロール)を明確に定義したエージェントの協調に重点を置く設計。 AutoGenエージェント同士の対話(カンバセーション)を中心とした、より柔軟なマルチエージェント構成を得意とする。

CrewAIはLangChainに依存している?

LangChainとは独立したフレームワークとして開発されており、単体で利用できる。

参考文献

関連する比較

CrewAI vs AutoGen

CrewAIは役割(ロール)を与えた複数エージェントをチームとして協調させることに特化したPythonフレームワーク、AutoGenはMicrosoft Research発の、エージェント間の対話(カンバセーション)を通じてタスクを解決するフレームワーク。

CrewAIAutoGen

CrewAI vs LangGraph

CrewAIは役割を与えた複数のAIエージェントに協調してタスクを遂行させるPythonのマルチエージェントフレームワーク。LangGraphは状態遷移をグラフとして定義し、複雑なマルチエージェントアプリケーションを構築するLangChainエコシステムのフレームワーク。

CrewAILangGraph

関連Zenn記事