ジェネラティブエージェンツの大嶋です。
「AIエージェントキャッチアップ #2 - crewAI」という勉強会を開催しました。
generative-agents.connpass.com
アーカイブ動画はこちらです。
crewAI
今回は、crewAIについて、ドキュメントを読んだり、実際に動かしてみたりしてキャッチアップしていきました。
公式ドキュメントはこちらです。
最初にGitHubに掲載されているGetting Startedの手順を試したところ、すぐに動きました!
今回のポイント
crewAIの概要
crewAIは、Pythonパッケージとして提供されている、OSSのマルチエージェントフレームワークです。
以下のコードは、crewAIのリポジトリの README の例から、重要な箇所を抜粋したものです。
from crewai import Agent, Task, Crew, Process researcher = Agent( role='Senior Research Analyst', : ) writer = Agent( role='Tech Content Strategist', : ) task1 = Task( : ) task2 = Task( : ) crew = Crew( agents=[researcher, writer], tasks=[task1, task2], verbose=True, process = Process.sequential ) result = crew.kickoff() print("######################") print(result)
複数のAgent・複数のTaskを定義して、「Crew」としてまとめて実行する、ということになります。
AgentやTaskの詳細はYAMLファイルで定義することもできるようでした。
crewAIの特徴
crewAIの README には、以下のように書かれています。
While Autogen does good in creating conversational agents capable of working together, it lacks an inherent concept of process.
AutoGenには「プロセス」という概念が不足しており、逆にcrewAIには「プロセス」という概念があることが特徴だと言いたいのではないかと思います。
「プロセス」については、タスクを処理する流れのようなもののようで、
- Sequential:順々に処理する
- Hierarchical:マネージャーのエージェントを使って階層的に処理する
- Consensual Process(計画中):エージェントが共同で意思決定する
という選択肢があるとのことです。
このプロセスの選択のように、crewAIが提供する基本的な処理に対して、ある程度のカスタマイズができるようになっているようでした。
まとめ
crewAIもAutoGenと同じく、マルチエージェントの汎用フレームワークというよりは、特定のユースケースに特化したフレームワークでした。 当たり前かもしれませんが、crewAIのユースケースにハマる状況であれば素早く実装でき、逆にカスタマイズが多い状況にはフィットしないという考え方になると思います。
ちなみに、waitlistに登録されたため実際にさわることはできませんでしたが、crewAI公式からcrewAI+というサービスが提供されており、crewAIのアプリケーションをデプロイできるようです。
次回のご案内
crewAIもよく耳にするフレームワークだったので、この機会にキャッチアップできてよかったです。
次回は「AIエージェントキャッチアップ #3 - The AI Scientist」ということで、Sakana AI社のThe AI Scientistを動かしてみます!
generative-agents.connpass.com
ご興味・お時間ある方はぜひご参加ください!
また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!