「AIエージェントキャッチアップ #2 - crewAI」を開催しました

ジェネラティブエージェンツの大嶋です。

「AIエージェントキャッチアップ #2 - crewAI」という勉強会を開催しました。

generative-agents.connpass.com

アーカイブ動画はこちらです。

youtube.com

crewAI

今回は、crewAIについて、ドキュメントを読んだり、実際に動かしてみたりしてキャッチアップしていきました。

crewAIのGItHubリポジトリはこちらです。

github.com

公式ドキュメントはこちらです。

docs.crewai.com

最初に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ファイルで定義することもできるようでした。

参考:https://docs.crewai.com/getting-started/Start-a-New-CrewAI-Project-Template-Method/#example-defining-agents-and-tasks

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(計画中):エージェントが共同で意思決定する

という選択肢があるとのことです。

docs.crewai.com

このプロセスの選択のように、crewAIが提供する基本的な処理に対して、ある程度のカスタマイズができるようになっているようでした。

まとめ

crewAIもAutoGenと同じく、マルチエージェントの汎用フレームワークというよりは、特定のユースケースに特化したフレームワークでした。 当たり前かもしれませんが、crewAIのユースケースにハマる状況であれば素早く実装でき、逆にカスタマイズが多い状況にはフィットしないという考え方になると思います。

ちなみに、waitlistに登録されたため実際にさわることはできませんでしたが、crewAI公式からcrewAI+というサービスが提供されており、crewAIのアプリケーションをデプロイできるようです。

www.crewai.com

次回のご案内

crewAIもよく耳にするフレームワークだったので、この機会にキャッチアップできてよかったです。

次回は「AIエージェントキャッチアップ #3 - The AI Scientist」ということで、Sakana AI社のThe AI Scientistを動かしてみます!

github.com

generative-agents.connpass.com

ご興味・お時間ある方はぜひご参加ください!

また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!