【CrewAI】孫正義式プロンプトを実現!複数のAI専門家を呼んで議論させられるAIツールを使ってみた
CrewAIは、様々な役割を担う自律的なAIエージェントを統合するための先進的なフレームワークです。このフレームワークは、AIエージェントが協力し、複雑なタスクを効率的に解決することを可能にします。
以前、孫正義氏がChatGPTを使う際に複数の専門家を登場させると言っていましたが、まさにそれができるフレームワークが登場したわけです。
このワークフレームを使用し、エージェントの特性やタスクの詳細を自然言語で指定することで、自動的にアプリケーションを作成できます。
この手のフレームワークは、以前にもいくつかリリースされていますが、それらと比較してCrewAIは適応性に優れており、ユーザーの要求や環境にシームレスに適応できます。
このフレームワークのAIエージェント達は、まさに映画『スタートレック』シリーズの宇宙船乗組員たちのように協力的な働きをします。
今回は、CrewAIの概要や使ってみた感想をお伝えします。
CrewAIの概要
CrewAIは、様々な役割を担う自律的なAIエージェントを統合するための先進的なフレームワークです。このフレームワークは、AIエージェントが協力し、複雑なタスクを効率的に解決することを可能にします。
このワークフレームを使用し、エージェントの特性やタスクの詳細を自然言語で指定することで、自動的にアプリケーションを作成できます。
そんなCrewAIの特徴は以下の4点です。
この中で、我々ユーザーが設定するのはPseudoCodeの部分のみで、自然言語で各エージェントの役割の設定やタスクの説明を書くだけです。
エージェント間の連携や、タスクの割り当て、開発の実行などはすべてCrewAI側で自動的に行ってくれます。
このように、自然言語でやりたいことを指示するだけでソフトウェア開発ができるCrewAIですが、過去にAutogenとChatDevという同じようなフレームワークがリリースされています。
これら2つと比較してCrewAIの利点はどこにあるのでしょうか?
Autogenは、連携して動作する会話型エージェントの作成には優れていますが、固有のプロセスの概念が欠けています。また、エージェントの対話を調整するには追加のプログラミングが必要で、規模が大きくなれば複雑なプログラミングが必要になるという欠点があります。
ChatDevは、プロセスの概念を AI エージェントの領域に導入しましたが、その実装は非常に厳格で、カスタマイズが大きく制限されており、柔軟性に欠けるという欠点があります。
CrewAIは、Autogenの会話エージェントの柔軟性とChatDevの構造化されたプロセスアプローチを導入し、なおかつカスタマイズを厳格に制限しないことで、環境や要求にシームレスに対応できるようになっています。
CrewAIは、まさに2つのフレームワークのいいとこどりをして、互いの欠点を補いつつ構築されたフレームワークですね!
ここからは、実際に使ってその性能を確かめていきます。
まずは使い方から説明します。
なお、Autogenについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
→【AutoGen】複数のAIエージェントが会話しながら複雑なタスクを自動解決してくれるツール
CrewAIの使い方
まずはCrewAIを動かすのに必要なスペックについてですが、特にスペックに関する記載がなかったので、参考までに今回実装する私の環境を記載しておきます。
CPUの種類: AMD Ryzen 5 3600 6-Core Processor 3.60 GHz
■システムメモリ: 16.0GB
■GPUの種類: GeForce RTX 2060 Super
■GPUメモリ: 8GB
■HDD/SSDの空き容量: 150GB
まずCrewAIのパッケージをインストールします。
pip install crewai
このフレームワークは、GPT-4を使用してソフトウェア開発を行うので、OpenAI apy keyが必要になります。
以下のコマンドを実行して、環境変数に自分のOpenAI apy keyを設定してください。
set OPENAI_API_KEY=自分のOPENAI_API_KEY
次に、以下のpythonコードを作成して、app.pyとして保存します。
from crewai import Agent, Task, Crew, Process
# Define your agents with roles and goals
researcher = Agent(
role='Researcher',
goal='Discover new insights',
backstory="You're a world class researcher working on a major data science company",
verbose=True
# llm=OpenAI(temperature=0.7, model_name="gpt-4"). It uses langchain.chat_models, default is GPT4
)
writer = Agent(
role='Writer',
goal='Create engaging content',
backstory="You're a famous technical writer, specialized on writing data related content",
verbose=True
)
# Create tasks for your agents
task1 = Task(description='Investigate the latest AI trends', agent=researcher)
task2 = Task(description='Write a blog post on AI advancements', agent=writer)
# Instantiate your crew with a sequential process
crew = Crew(
agents=[researcher, writer],
tasks=[task1, task2],
verbose=True, # Crew verbose more will let you know what tasks are being worked on
process=Process.sequential # Sequential process will have tasks executed one after the other and the outcome of the previous one is passed as extra content into this next.
)
# Get your crew to work!
result = crew.kickoff()
このコードは、公式Githubから持ってきたものなので、エージェントやタスクに関する設定がされていますが、この設定は持たせたい役割ややりたいことに書き換えてください。
あとは、このPythonファイルを実行すれば、構築が始まります。
それでは早速使っていきましょう!
CrewAIを実際に使ってみた
今回は、とりあえず前述のコードをそのまま実行してみます。
内容は、大手データ サイエンス企業で働くワールドクラスの研究者という設定のresercherエージェントと、データ関連コンテンツの執筆を専門とする有名なテクニカルライターという設定のwriterエージェントがいます。
これらのエージェントが協力して、最新のAIトレンドを調査するタスクと、AI の進歩に関するブログ記事を書くタスクをこなします。
実行は、以下のコマンドを実行するだけです。
Python app.py
実行すると、以下の画像のようにエージェント同士で協力してタスクを進め始めます。
エージェントの作業内容ややり取りが逐一表示されるので、何をしているのか分かるのがいいですね。
順調に進んでいたのですが、3分ほどたった時に問題が発生しました。
Pythonエラーが発生して、処理が止まってしまいました。
どうやらスタックオーバーフローという問題が発生しているようです。
もう一度実行しても同じエラーが発生してしましました。
どうやら関数の呼びすぎが原因のようで、いろいろ試行錯誤していましたが、新たに別の問題が発覚しました。
それは、2回実行しただけで、なおかつ途中で終了してしまっているのに、なんとOpenAIのクレジットが5ドル近く課金されてしまいました。
どうやらこのフレームワークはかなりのコストを消費してしまうようです。
これでは、試行錯誤して複数回実行していたらとんでもない額が課金されてしまいそうなので、今回の検証はここまでにします。
もし問題が解決してうまくいった際はこの記事に追記します。
今回のまとめですが、CrewAIは確かに自然言語のみで設定でき、与えられたタスクを協力しながら進めることができることまでは確認できましたが、Pythonの再起呼び出しの部分で問題が発生し、最後まで実行できないという問題点が発覚しました。
また、かなりのコストを消費してしまい、とんでもないペースでクレジットが課金されてしまう点にも注意が必要です。
なお、AIエージェントが開発を行ってくれるChatDevについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
→【ChatDev】AI従業員が運営する仮想ソフトウェア開発会社に、シューティグゲームの開発を依頼してみた
まとめ
CrewAIは、様々な役割を担う自律的なAIエージェントを統合するための先進的なフレームワークです。このフレームワークは、AIエージェントが協力し、複雑なタスクを効率的に解決することを可能にします。
このワークフレームを使用し、エージェントの特性やタスクの詳細を自然言語で指定することで、自動的にアプリケーションを作成できます。
実際に使ってみた感想は、エージェントの設定やタスクの指示はすべて自然言語で行えて、実際にエージェントが協力してタスクを進めるところまでは確認できましたが、Pythonの再起呼び出しの部分のエラーで最後まで実行できませんでした。
また、かなりのペースでOpenAIのクレジットが課金されてしまうので、その点は要注意です。
将来、さらに進化したCrewAIのようなフレームワークが開発され、映画『スタートレック』シリーズの宇宙船乗組員たちのように協力して、我々人間の生活に直接影響するようなソフトウェア開発も行うようになるかもしれませんね!
生成系AIの業務活用なら!
・生成系AIを活用したPoC開発
・生成系AIのコンサルティング
・システム間API連携
最後に
いかがだったでしょうか?
弊社では
・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
・ハルシネーション対策AIツールの開発
・自社専用のAIチャットボットの開発
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。