CrewAI : ロールプレイング型の自律型 AI エージェントを調整するための最先端のフレームワーク。 CrewAI は、協調的なインテリジェンスを促進することで、エージェントがシームレスに連携して複雑なタスクに取り組むことができるようにします。
ホームページ |ドキュメント |ドキュメントとチャットする |例 |談話
なぜCrewAIなのか?
はじめる
主な特長
例
クイックチュートリアル
職務内容を書く
旅行プランナー
株価分析
スタッフをモデルに接続する
CrewAI の比較方法
貢献
テレメトリー
ライセンス
AI コラボレーションの力がもたらすものは多すぎます。 CrewAI は、AI エージェントが役割を引き受け、目標を共有し、よく油を注いだ乗組員のように、まとまった単位で活動できるように設計されています。スマート アシスタント プラットフォーム、自動化された顧客サービス アンサンブル、またはマルチエージェントの研究チームを構築している場合でも、CrewAI は高度なマルチエージェント インタラクションのバックボーンを提供します。
CrewAI の使用を開始するには、次の簡単な手順に従います。
システムに Python >=3.10 <=3.13 がインストールされていることを確認してください。 CrewAI は依存関係管理とパッケージ処理に UV を使用し、シームレスなセットアップと実行エクスペリエンスを提供します。
まず、CrewAI をインストールします。
pip インストール crewai
「crewai」パッケージと、エージェント用の追加ツールを含むオプション機能をインストールする場合は、次のコマンドを使用して実行できます。
pip install 'crewai[ツール]'
上記のコマンドは、基本パッケージをインストールし、機能するためにより多くの依存関係を必要とする追加のコンポーネントも追加します。
新しい CrewAI プロジェクトを作成するには、次の CLI (コマンド ライン インターフェイス) コマンドを実行します。
crewai クルー <project_name> を作成します
このコマンドは、次の構造を持つ新しいプロジェクト フォルダーを作成します。
my_project/ ├── .gitignore ├── pyproject.toml ├── README.md ├── .env └── src/ └── my_project/ ├── __init__.py ├── main.py ├── crew.py ├── tools/ │ ├── custom_tool.py │ └── __init__.py └── config/ ├── agents.yaml └── tasks.yaml
src/my_project
フォルダー内のファイルを編集して、クルーの開発を開始できるようになりました。 main.py
ファイルはプロジェクトのエントリ ポイントで、 crew.py
ファイルはクルーを定義する場所、 agents.yaml
ファイルはエージェントを定義する場所、 tasks.yaml
ファイルはタスクを定義する場所です。
src/my_project/config/agents.yaml
変更してエージェントを定義します。
src/my_project/config/tasks.yaml
変更してタスクを定義します。
src/my_project/crew.py
を変更して、独自のロジック、ツール、および特定の引数を追加します。
src/my_project/main.py
変更して、エージェントとタスクのカスタム入力を追加します。
環境変数を.env
ファイルに追加します。
クルーをインスタンス化します。
crewai create crew最新-ai開発
ユースケースに合わせて必要に応じてファイルを変更します。
エージェント.yaml
# src/my_project/config/agents.yamlresearcher: role: > {topic} 上級データ研究者の目標: > {topic} のバックストーリーで最先端の開発を明らかにする: > あなたは、最新の開発を明らかにするコツを備えた経験豊富な研究者です。 {トピック}。最も関連性の高い情報を見つけ出し、明確かつ簡潔な方法で提示する能力で知られています。 reports_analyst: 役割: > {topic} レポート アナリストの目標: > {topic} のデータ分析と調査結果のバックストーリーに基づいて詳細なレポートを作成する: > あなたは、細部に鋭い目を向ける細心の注意を払うアナリストです。あなたは、複雑なデータを明確で簡潔なレポートに変換し、他の人があなたが提供する情報を理解し、それに基づいて行動しやすくする能力で知られています。
タスク.yaml
# src/my_project/config/tasks.yamlresearch_task: description: > {topic} について徹底的な調査を実施します。今年が 2024 年であることを考えると、興味深く関連する情報が見つかるようにしてください。 Expected_output: > 最も重要な 10 個の箇条書きのリスト{topic} に関する関連情報 エージェント: Researcherreporting_task: description: > 取得したコンテキストを確認し、各トピックをレポートの完全なセクションに展開します。 レポートが詳細であり、あらゆる関連情報が含まれていることを確認してください。 Expected_output: > 主要なトピックを含む完全な初期レポートであり、それぞれに情報の完全なセクションが含まれています。 「````」を含まないマークダウンとしてフォーマットされるエージェント: reports_analyst 出力ファイル: レポート.md
クルー.py
# src/my_project/crew.pyfrom crewai import エージェント、クルー、プロセス、タスクfrom crewai.project import CrewBase、エージェント、クルー、タスクfrom crewai_tools import SerperDevTool@CrewBaseclass 最新AiDevelopmentCrew(): """最新Ai開発クルー"""@agentdef Researcher(self) ) -> エージェント: return Agent( config=self.agents_config['researcher'],冗長=True、ツール=[SerperDevTool()] ) @agentdef reports_analyst(self) -> エージェント: return Agent( config=self.agents_config['reporting_analyst'], verbose=True ) @taskdef Research_task(self) -> タスク: return Task( config=self.tasks_config['research_task'], ) @taskdef reports_task(self) -> タスク: return Task( config=self.tasks_config['reporting_task'], Output_file='report.md' ) @crewdef crew(self) -> Crew: """最新の AiDevelopment クルーを作成します"""return Crew( Agents=self.agents, # @agent デコレータによって自動的に作成されますtasks=self.tasks, # @task によって自動的に作成されますデコレータプロセス=Process.sequential、verbose=True、 )
main.py
#!/usr/bin/env python# src/my_project/main.pyimport sysfromlatest_ai_development.crew import MostAiDevelopmentCrewdef run():""" クルーを実行します。 """inputs = {'topic': 'AI Agents'}latestAiDevelopmentCrew ().crew().kickoff(入力=入力)
クルーを実行する前に、 .env
ファイルで次のキーが環境変数として設定されていることを確認してください。
OpenAI API キー (または他の LLM API キー): OPENAI_API_KEY=sk-...
Serper.dev API キー: SERPER_API_KEY=YOUR_KEY_HERE
依存関係をロックし、CLI コマンドを使用してインストールしますが、その前に、プロジェクト ディレクトリに移動します。
cd my_project crewai インストール (オプション)
クルーを実行するには、プロジェクトのルートで次のコマンドを実行します。
クルーアイラン
または
Python src/my_project/main.py
詩の使用によりエラーが発生した場合は、次のコマンドを実行して crewai パッケージを更新してください。
クルーアイアップデート
コンソールに出力が表示され、完全な最終レポートを含むreport.md
ファイルがプロジェクトのルートに作成されるはずです。
順次プロセスに加えて、階層プロセスを使用することもできます。このプロセスでは、定義されたスタッフにマネージャーが自動的に割り当てられ、委任と結果の検証を通じてタスクの計画と実行が適切に調整されます。プロセスの詳細については、こちらをご覧ください。
役割ベースのエージェント設計: 特定の役割、目標、ツールを使用してエージェントをカスタマイズします。
自律的なエージェント間の委任: エージェントは自律的にタスクを委任し、エージェント間で問い合わせることができるため、問題解決の効率が向上します。
柔軟なタスク管理: カスタマイズ可能なツールを使用してタスクを定義し、それらをエージェントに動的に割り当てます。
プロセス駆動: 現在、 sequential
タスクの実行とhierarchical
プロセスのみをサポートしていますが、合意型プロセスや自律型プロセスなど、より複雑なプロセスにも取り組んでいます。
出力をファイルとして保存: 個々のタスクの出力をファイルとして保存し、後で使用できるようにします。
Pydantic または Json として出力を解析する: 必要に応じて、個々のタスクの出力を Pydantic モデルまたは Json として解析します。
オープンソース モデルと連携: オープン AI を使用してクルーを実行するか、ローカルで実行されているモデルでも、エージェントのモデルへの接続の設定の詳細については、「CrewAI を LLM に接続する」ページを参照してください。
CrewAI-examples リポジトリで、AI クルーのさまざまな実際の例をテストできます。
ランディング ページ ジェネレーター
実行に関して人間の意見を取り入れる
旅行プランナー
株価分析
この例のコードを確認するか、以下のビデオをご覧ください。
この例のコードを確認するか、以下のビデオをご覧ください。
この例のコードを確認するか、以下のビデオをご覧ください。
CrewAI は、さまざまな接続オプションを通じてさまざまな LLM の使用をサポートします。デフォルトでは、エージェントはモデルをクエリするときに OpenAI API を使用します。ただし、エージェントがモデルに接続できるようにする方法は他にもいくつかあります。たとえば、Ollama ツールを介してローカル モデルを使用するようにエージェントを構成できます。
モデルへのエージェントの接続の構成の詳細については、「CrewAI を LLM に接続する」ページを参照してください。
CrewAI の利点: CrewAI は生産を念頭に置いて構築されています。 Autogen の会話エージェントの柔軟性と ChatDev の構造化されたプロセス アプローチを提供しますが、厳格さはありません。 CrewAI のプロセスは、動的かつ適応性のあるように設計されており、開発と本番の両方のワークフローにシームレスに適合します。
Autogen : Autogen は、連携して動作できる会話型エージェントの作成には優れていますが、固有のプロセスの概念が欠けています。 Autogen では、エージェントの対話を調整するには追加のプログラミングが必要ですが、タスクの規模が大きくなるにつれて、プログラミングが複雑で煩雑になる可能性があります。
ChatDev : ChatDev はプロセスの概念を AI エージェントの領域に導入しましたが、その実装は非常に厳格です。 ChatDev のカスタマイズは制限されており、運用環境向けではないため、実際のアプリケーションのスケーラビリティと柔軟性が妨げられる可能性があります。
CrewAI はオープンソースであり、貢献を歓迎します。貢献したい場合は、次のことを行ってください。
リポジトリをフォークします。
機能の新しいブランチを作成します。
機能や改善点を追加します。
プルリクエストを送信します。
ご意見をお待ちしております。
UVロック UV同期
紫外線ベンブ
プリコミットインストール
uv pytest を実行します。
uvxマイピー
UVビルド
pip install dist/*.tar.gz
CrewAI は匿名のテレメトリを使用して使用状況データを収集します。その主な目的は、最もよく使用される機能、統合、ツールに焦点を当ててライブラリの改善に役立てることです。
前述の条件を除き、プロンプト、タスクの説明、エージェントのバックストーリーや目標、ツールの使用法、API 呼び出し、応答、エージェントによって処理されたデータ、シークレットおよび環境変数に関するデータは収集されないことを理解することが極めて重要です。 。 share_crew
機能を有効にすると、タスクの説明、エージェントのバックストーリーや目標、その他の特定の属性を含む詳細なデータが収集され、ユーザーのプライバシーを尊重しながらより深い洞察が得られます。現時点では無効にする方法は提供していませんが、将来的には提供する予定です。
収集されるデータには次のものが含まれます。
CrewAIのバージョン
そのため、何人のユーザーが最新バージョンを使用しているかを把握できます
Pythonのバージョン
したがって、どのバージョンをより適切にサポートするかを決定できます
一般的な OS (CPU 数、macOS/Windows/Linux など)
そのため、どの OS に焦点を当てるべきか、特定の OS 関連の機能を構築できるかどうかがわかります。
クルー内のエージェントとタスクの数
そのため、社内で同様のユースケースをテストし、ベストプラクティスを教育するようにしています。
使用されているクループロセス
どこに注力すべきかを理解する
エージェントがメモリを使用しているか、委任を許可している場合
機能が改善されたのか、それとも削除されたのかを理解する
タスクが並列または順次に実行されている場合
並列実行にもっと重点を置くべきかどうかを理解する
使用されている言語モデル
最も使用されている言語のサポートが改善されました
クルーにおけるエージェントの役割
高レベルのユースケースを理解して、より良いツール、統合、およびそれに関するサンプルを構築できるようにする
利用可能なツール名
公開されているツールのうち、どのツールが最もよく使用されているかを把握し、改善できるようにします。
ユーザーは追加テレメトリをオプトインし、クルーでshare_crew
属性をTrue
に設定することで完全なテレメトリ データを共有できます。 share_crew
有効にすると、 goal
、 backstory
、 context
、タスクのoutput
など、詳細なクルーとタスクの実行データが収集されます。これにより、ユーザーの共有選択を尊重しながら、使用パターンをより深く洞察することができます。
CrewAI は MIT ライセンスに基づいてリリースされています。
A: CrewAI は、ロールプレイングの自律型 AI エージェントを調整するための最先端のフレームワークです。これにより、エージェントはシームレスに連携し、協調的なインテリジェンスを通じて複雑なタスクに取り組むことができます。
A: pip を使用して CrewAI をインストールできます。
pip インストール crewai
追加のツールについては、以下を使用します。
pip install 'crewai[ツール]'
A: はい、CrewAI はローカル モデルを含むさまざまな LLM をサポートしています。 Ollama や LM Studio などのツールを使用して、ローカル モデルを使用するようにエージェントを構成できます。詳細については、LLM 接続のドキュメントを確認してください。
A: 主な機能には、ロールベースのエージェント設計、自律的なエージェント間の委任、柔軟なタスク管理、プロセス駆動型の実行、出力のファイルとしての保存、オープンソース モデルと独自モデルの両方との互換性が含まれます。
A: CrewAI は運用を念頭に置いて設計されており、Autogen の会話エージェントや ChatDev のような構造化プロセスと同様の柔軟性を提供しますが、現実世界のアプリケーションに対する適応性がより高くなります。
A: はい、CrewAI はオープンソースであり、コミュニティからの貢献を歓迎します。
A: CrewAI は匿名テレメトリを使用して、改善を目的として使用状況データを収集します。機密データ (プロンプト、タスクの説明、API 呼び出しなど) は収集されません。ユーザーは、クルーでshare_crew=True
設定することで、より詳細なデータを共有することをオプトインできます。
A: CrewAI サンプル リポジトリでは、旅行プランナー、在庫分析ツールなど、さまざまな実際のサンプルを見つけることができます。
A: 貢献は大歓迎です!リポジトリをフォークし、機能の新しいブランチを作成し、改善を追加し、プル リクエストを送信できます。詳細については、README の「貢献」セクションを確認してください。