crewAIとは

共同執筆者

Vanna Winland

AI Advocate & Technology Writer

Meredith Syed

Technical Content, Editorial Lead

IBM

Anna Gutowska

AI Engineer, Developer Advocate

IBM

crewAIは、João Mouraによって開発されたオープンソースのマルチエージェント・オーケストレーション・フレームワークです。このPythonベースのフレームワークは、タスクを完了するためにまとまったアセンブリーまたは「Crew」として連携するロールプレイング自律AIエージェントを編成することにより、人工知能(AI)コラボレーションを活用します。crewAIの目標は、マルチエージェント・ワークフローを自動化するための強力なフレームワークを提供することです。1

「Crew(クルー)」という用語は、現実の作業員と同様に、自律的にタスクを委任し、相互に質問しながら連携して作業するAIエージェントを指します。各マルチエージェント・クルーは、既存のツールとカスタム・ツールを活用して割り当てられた一連のタスクを完了する補完的なロールプレイングAIエージェントで構成されています。言語モデルは、一連のアクションを選択することでエージェントの推論エンジンとして機能します。2crewAIエージェントは、任意のオープンソースの大規模言語モデル(LLM)またはアプリケーション・プログラミング・インターフェース(API)を使用するように構成できます。

最近の研究では、LLMモデルの範囲が単なるテキスト生成を超えて拡大され、対話でのやり取り、意思決定、タスクの完了のための多目的エージェントとして機能できることが実証されています。3AIとAIエージェントおよびエージェント型フレームワークを取り巻く研究が急成長している分野では、crewAIを含むマルチエージェント・フレームワークが一般AIシーンに登場しています。

次世代のAIアプリケーションでは、エージェント型アーキテクチャーを使用して、自律的なエージェントベースのシステムを構築します。4これらのエージェント型フレームワークは、生成AIタスクを強化することで、多数のAIソリューションの複雑なタスクに取り組みます。例えば、AIチャットボットは、エージェント型AIフレームワークを実行するための手段となります。エージェント型チャットボットは、非エージェント型チャットボットとは異なり、利用可能なツールを使用したり、アクションを実行する前に計画したり、メモリーを保持したりできます。これらの機能により、より洗練された有意義な対話が生まれます。

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

AIエージェント(エージェント型)フレームワーク

エージェント型フレームワークは、AIアプリケーションにツール呼び出しとオーケストレーションを使用するAIエージェント・アーキテクチャーです。エージェント型システムは、計画、反復的な改良、反映、およびその他の制御メカニズムを使用して、モデルの組み込み推論機能を最大限に活用し、タスクをエンドツーエンドで完了します。5AIシステム内にAIエージェントを実装すると、生成AIアプリケーションが機能するために必要なプロセスが自動化されます。

エージェント型フレームワークは、学習能力や性能能力も向上させる。カスタム意思決定タスク用にLLMを微調整するには、多くのリソースが必要であり、モデルの一般化能力を低下させる可能性があります。6AIエージェントは過去の行動や経験から学習できるため、モデルの微調整に必要な計算コストが軽減されます。

AIエージェント

AIエージェントの5つのタイプ:自律機能と実世界アプリケーション

目標主導型でユーティリティーベースのAIがワークフローや複雑な環境にどのように適応するかをご覧ください。

エージェント型システム・アーキテクチャー

エージェント型フレームワークでは、シングルエージェント・システムか、マルチエージェント・システムを使用できます。

シングルエージェントとマルチエージェントの比較

シングルエージェント・フレームワークは、1 つの言語モデルに依存して、さまざまなタスクと責任を実行します。エージェントには、システム・プロンプトと、検索、API、その他のエージェントなどのタスクを完了するために必要なツールが提供されます。シングルエージェント・システムはツールを通じて他のエージェントと対話できますが、マルチエージェント・システムと同じようには連携できません。

シングルエージェント・システムには他のAIエージェントからのフィードバック・メカニズムがないため、時間の経過とともに精度を向上させるには、エージェントをガイドする人間によるフィードバックのオプションが推奨されます。シングルエージェント・アーキテクチャーは、他のエージェントやユーザーからのフィードバックが不要な、明確に定義された問題に最適です。7

マルチエージェント・システム(MAS)は、すべての機能を1つのモデルにまとめるのではなく、複数の専門エージェント間でタスクを分割します。マルチエージェント・アーキテクチャーには2つ以上のエージェントが関与し、同じ言語モデルを使用することも、異なる言語モデルを使用することもできます。規模に関係なく、エージェントは同じ環境内で動作し、互いの目標、記憶、行動計画をモデル化します。これらのアーキテクチャーは、モデルがタスクを一連のステップに分解する必要がある思考連鎖(CoT)プロンプトに比べて顕著なメリットがあります。8マルチエージェント・アーキテクチャーは、コラボレーションと複数の異なる実行パスが必要な場合により効果的になる傾向があります。

使用する最適なエージェント・アーキテクチャーは、アプリケーション全体とユースケースの詳細によって異なります。シングルエージェント・システムは、限定された問題を解決するのに最適です。エージェントは問題解決者と考えることができます。問題によっては、1人の専門エージェントの個々の能力が求められる場合もあれば、問題解決者のチーム、または複数のエージェントのチームが必要となる場合もあります。マルチエージェント・システムは、各エージェントの個々の能力や知識を超えた問題を解決するために連携して動作するエージェントのチームです。マルチエージェント・システムは、シングルエージェント・システムでは解決できない大きすぎる問題を解決できます。研究によると、マルチエージェント・システムには、速度と信頼性の向上、不確実なデータと知識への耐性など、大きなメリットがあることが示されています。9crewAIに似たマルチエージェント・システムの主なメリットには、エージェントのコラボレーション可能性、自律的なワークフロー、拡張性などがあります。

エージェントの協力

AI エージェントは、多用途にカスタマイズ可能なパラメータを介して最適化できます。各エージェントには、その役割と行動に関する具体的な指示をまとめたペルソナが割り当てられます。10マルチエージェント・フレームワークは、エージェントの能力を利用して、特定の役割で行動し、互いに対話しながら、チーム内のタスクを管理します。これらのチームの構成は、アプリケーションと全体的な目標に応じて調整および最適化できます。

これを導入する方法の1つは、共同生成エージェントを使用することです。マルチエージェント・フレームワークは、効果的なコラボレーションに必要な基本的な機能を提供できます。11 一部のマルチエージェント・フレームワークは、全体的な目標に基づいてエージェント・コラボレーションのテンプレートを提供します。crewAIは、ユーザーがエージェントをチーム、つまり共通の目標やタスクを実行するために働くCrewに編成できるようにすることで、エージェントのコラボレーションを促進します。

自律的な行動

自律型AI エージェントは、指示なしにタスクまたは一連の複雑なタスクを完了できます。LLMベースの自律エージェントの可能性は、人工汎用知能(AGI)を実現するための主要なアプローチとして認識されています。12これらのLLMベースのエージェントは、自己主導の計画とアクションを通じてタスクを実行できます。AIエージェントは優れた能力を発揮していますが、より複雑な形式の推論を必要とするタスクに対する能力を拡大する上で依然として課題に直面しています。13エージェント型システムは、自律ワークフローのフレームワークを提供することで、これらの課題を軽減するのに役立ちます。crewAIは、エージェント・タスクの実行と割り当てを監視する自律的に生成されたマネージャー・エージェントを使用する階層プロセスを通じて、自律的な動作を提供します。

拡張性

マルチエージェント・システムは、いくつかの異なる次元で拡張する必要があります。これらの側面には、システムまたはアプリケーション全体のエージェントの総数の増加、エージェントの多様性の増加、エージェントが操作するデータのサイズの増加が含まれます。14多くのマルチエージェント・フレームワークには、システムが正常にスケーリングされているかどうかを評価するのに役立つ監視やメトリクスなどのツールが付属しています。crewAIを使用すると、サード・パーティーのリソース監視およびメトリクスのツールと統合して、LLM、LLM・フレームワーク、ベクトル・データベースの観測性と評価を設定できます。

AIエージェント

AIエージェントは、さまざまな複雑なタスクを実行するために開発できるLLMベースのシステムまたはプログラムです。エージェントは、以前の経験に基づいて独立した決定を下し、行動を起こすことを可能にするメモリーと計画機能を備えています。15エージェントは、LLM出力を使用して他のソフトウェア・ツール(データ取得など)を呼び出し、全体的な目的が達成されるまで結果をLLMにループバックすることで、従来のLLM機能を強化します。AIエージェントが従来のLLMと異なる点は、アクション・プランニング、メモリー使用、ツール冷却を通じて環境をナビゲート、対話、適応する能力です。エージェント型システムは、エージェントがタスクに関連付けられた機械学習アルゴリズムを実行するためのツールとオーケストレーションを可能にします。

crewAIの仕組み

crewAIは、モジュール設計の原則を念頭に置いてLangChain上に構築されています。その主なコンポーネントは、エージェント、ツール、タスク、プロセス、およびCrewで構成されます。

エージェント

エージェントは、crewAIフレームワークの基本コンポーネントです。各エージェントは、Crewの全体的な目標に貢献するさまざまな役割を持つ自律的なユニットです。各エージェントは、タスクを実行し、意思決定を処理し、他のエージェントと通信するようにプログラムされています。

crewAIは、エージェントをチーム・メンバーとして考えるようにユーザーに促します。エージェントには、「データサイエンティスト」、「研究者」、「プロダクトマネージャー」など、さまざまな役割があります。マルチエージェント・チームは効果的に連携して、自動化されたワークフローを実行します。

この形式のマルチエージェント・システムは、ロール・プレイング構造を利用して複雑な問題解決を容易にし、エージェント間のディスカッションを通じてLLMの推論能力を強化することを目的としています。16エージェントは、crewAIの固有の委任および通信メカニズムを通じて互いに関わり、互いに連絡を取り合って作業を委任したり質問したりする生来の能力を備えています。

エージェント属性

エージェントの目標と特性は属性によって定義されます。crewAIのエージェントには、役割目標背景という3つの主な属性があります。

例えば、crewAIでのエージェントのインスタンス化は次のようになります。

    agent = Agent(
         role= 'カスタマー・サポート',
         goal= 'お客様からの問い合わせや問題に対応する',
         backstory= 'あなたはチェーンレストランのカスタマーサポートスペシャリストです。お客様からの電話に対応し、
        カスタマー・サポートを提供し、フィードバック・データを入力する責任があります。'
         )

crewAIは、エージェントが使用するLLMおよびツールの依存関係を選択するための属性を含むいくつかのオプション・パラメーターを提供します。17

ツール

ツールは、エージェントがさまざまなタスクを実行するために使用するスキルまたは機能です。ユーザーは、crewAI ToolkitとLangChain Toolsのカスタム・ツールと既存のツールの両方を活用できます。

ツールは、エラー処理、キャッシュ・メカニズム、柔軟なツール引数によるカスタマイズなど、幅広いタスクを実行できるようにすることで、エージェントの機能を拡張します。

crewAIツール

すべてのツールにはエラー処理が含まれており、キャッシュ・メカニズムをサポートしています。

crewAIツールキットには、さまざまなソース内で 検索拡張生成(RAG)手法を使用する一連の検索ツールが含まれています。いくつかの例を以下でご紹介します。

  • JSONSearchTool: JSONファイル内で精密検索を実行します。
  • GithubSearchTool:GitHub リポジトリー内を検索します。
  • YouTubeChannelSearchTool:YouTubeチャンネル内を検索します。

RAGツール以外にも、このキットにはデータの収集と抽出のためのさまざまなWebスクレイピング・ツールも含まれています。

LangChainツール

crewAIは、LangChainツールとの簡単な統合を提供します。LangChainで利用可能な組み込みツールの例をいくつかご紹介します。

  • Shell(bash):Shellへのアクセスを許可し、LLMがShellコマンドを実行できるようにします。18
  • ドキュメントの比較:エージェントを使用して2つのドキュメントを比較します。19
  • Python:エージェントがPythonコードを記述して実行し、質問に答えられるようにします。20

カスタム・ツール

ユーザーは独自のツールを作成して、エージェントの機能をさらに最適化できます。crewAIツール・パッケージの一部として、ユーザーはツールの用途を明確に定義してツールを作成できます。エージェントは、ユーザー定義の説明を使用してカスタム・ツールを使用します。カスタム・ツールでは、きめ細かい制御のために微調整できるキャッシュ・メカニズムをオプションで実装できます。

タスク

タスクはエージェントによって完了される特定の割り当てです。実行の詳細は、タスク属性を通じて容易になります。複数のエージェントを割り当てて、同じタスクを完了するために協力することができます。

タスク属性

必須のタスク属性には、説明、エージェント予想される出力が含まれます。これらの属性は、タスクの範囲、責任エージェント、および目標を定義します。タスクはエージェントに直接割り当てることも、役割と可用性に基づいて決定するcrewAIの階層型プロセスを通じて処理することもできます。

タスクの例をご紹介します。

data_collection = Task(
     description= ‘顧客とのやり取り、取引履歴、サポートチケットからデータを収集する’
     expected_output= ‘前処理できる整理されたデータのコレクション’,
     agent=data_science_agent,
)

オプションのタスク属性には、ツール統合、同時実行のための非同期実行、タスク結果のJSON、Pydanticモデル、ファイル出力などの出力形式が含まれます。

タスク機能

タスク機能には、ツールの統合、非同期実行、人間による入力のレビュー、出力のカスタマイズが含まれます。

タスクの結果によって、将来のタスクのコンテキストを確立できます。例えば、「リサーチ」タスクからの出力は、「ライター」タスクを完了するためのコンテキストとして使用できます。簡単な例として、2人のエージェント(1人は「リサーチャー」、もう1人は「ライター」)のチームを考えてみましょう。リサーチャーは、生成AIの代表的なユースケースの例を見つけるタスクを担い、ライターは、結果として得られたリサーチをコンテキストとして使用して、同じトピックまたは類似のトピックに関する短いブログを書くタスクを実行します。

タスクは非同期で実行するように定義できます。これは、完了するまでに長い時間がかかるタスクや、次のタスクの実行に必要のないタスクに役立ちます。コンテキスト属性を使用すると、将来のタスクで非同期タスクの出力が完了するまで待機する必要があることを定義できます。21

プロセス

プロセスにより、個々のAIエージェントはタスクの実行を調整して、まとまりのあるユニットとして動作できるようになります。エージェント型フレームワークのプロセスは、エージェントがどのように連携するか、およびエージェントに割り当てられるタスクを定義します。crewAIでは、プロセスをプロジェクト管理と比較しています。プロセスによって、タスクが効率的に分散および実行され、目標を達成するための事前定義された戦略に沿った状態が維持されるからです。

crewAIには、順次プロセスと階層プロセスという2つのプロセスの実行が含まれており、合意プロセスと呼ばれる3番目のプロセスも計画されています。プロセスをエージェントのCrewに割り当てることで、エージェントがまとまったユニットとして動作できるようになります。プロセスをCrewに割り当てる場合、プロセス・タイプによって実行戦略が設定されます。

  • シーケンシャル:シーケンシャル・プロセスは、動的なチーム・ワークフローに似ています。タスクはタスク・リスト内の事前定義された順序に従って実行され、1つのタスクの出力が次のタスクのコンテキストとして機能します。
  • 階層型:階層型プロセスは、企業の階層をエミュレートします。crewAIは、マネージャー・エージェントに合わせて調整されたマネージャー言語モデルを活用して、ユーザーのマネージャーを自律的に生成します。22マネージャー・エージェントは、タスクの実行を監視し、エージェントの能力に基づいてタスクを割り当て、出力をレビューして、タスクの完了を評価します。このプロセスは、一連のタスクを完了するためにAIエージェントが自律的かつ協調的に動作する例です。
  • 合意(計画中):執筆時点では、合意プロセスはコードベースに実装されていませんが、タスク実行に関してエージェント間で共同で意思決定を行う方法を提供することを目的としています。このプロセスにより、タスク管理に民主的なアプローチが導入されます。

Crew

Crewは、事前に定義された一連のタスクを達成するために協力するエージェントの集合体です。23各Crewは、タスク実行、エージェント実行、および全体的なワークフローの戦略を定義します。Crewは、補完的な役割とツールを持つエージェントを編成し、タスクを割り当て、実行順序と相互作用を指示するプロセスを選択するのに役立ついくつかの属性を持っています。24

Crewの属性

ユーザーは、Crewとして協力するエージェントのリストを選択して定義します。Crewには完了すべきタスクのリストが割り当てられます。オプションの属性は、実行、エージェントのコラボレーション、および全体的なワークフローの戦略を定義します。

以下は、顧客サポート・データを収集して整理するために協力することを目的とした2人のエージェントで構成されたCrewの例です。

my_crew = Crew(
    agents=[data_science_agent, customer_support_agent],
    tasks=[customer_support_task, data_collection_task],
    process=Process.sequential,
    full_output=True,
    verbose=True,
)

追加の属性には、コールバック関数、言語とメモリーの設定、プロセス・フロー(例えば、順次、階層的)に応じて使用するマネージャー・エージェントとLLMを設定するオプションが含まれます。Crewが集められると、スタートアップ・メソッドによってワークフローが開始されます。crewAIは、非同期および個別のタスク実行を含むプロセスを制御するためのいくつかの起動メソッドを提供します。25

任意のLLMに接続

crewAIは、さまざまな接続オプションを通じて任意のLLMに接続できます。デフォルトでは、エージェントは言語処理にOpenAIのGPT-4モデルを使用しますが、crewAIはIBM Graniteシリーズなどのモデルを含むさまざまなLLMに柔軟に接続できます。ローカル・モデルは、ollamaまたはその他のオープンAPIを介して接続できます。APIキー構成の例と複数のLLMへの接続に関するチュートリアルは、crewAIドキュメントに記載されています。crewAIは、すべてのLangChain LLMコンポーネントと互換性があり、すべてのLLMに実行可能なインターフェースの基本的なサポートを提供します。

crewAIのユースケース

crewAIなどのAIエージェント・フレームワークは、エージェント型AIチャットボットから複雑なマルチエージェント・システムに至るまで、さまざまなドメインにわたってインテリジェント・システムを作成するための研究者や開発者向けの基礎ツールとして機能します。

実際の例としては、インタラクティブなランディング・ページの構築や、SNSでの存在感を高めるプロセスを自動化するCrewの使用などのプロジェクトが挙げられます。Mouraが管理する「crewAI-examples」というGitHubリポジトリーには、ユーザーが自分でテストできる実際の例がいくつか集められています。26これらの例には、フレームワークを初心者が使用するための紹介も含まれています。

以下に、crewAIコミュニティーから生まれたいくつかの例とその他のユースケースのリストをご紹介します。

  • コンテンツの計画と作成:あるユースケースでは、crewAIと自然言語モデルのgroqを使用して、特定のトピックに関する魅力的で事実に基づいた正確なコンテンツを作成する専門エージェントのチームを作成します。27
  • メールのチェックと下書きを自動化:初心者向けの入門として設計されたこのツールでは、エージェントのCrewが、メールの分析とフィルタリング、完全なスレッドの取得、LangGraphライブラリーを使用したメールの下書きの調査と作成のタスクを完了し、マルチエージェント・ワークフローを自動化します。28
  • 株式分析:エージェントには、デフォルトのGPT-4ではなくGPT 3.5を使用して完全な株式分析と投資推奨を行うために協力するための特定の役割が与えられます。29

その他のマルチエージェント・フレームワーク

crewAIは、AutoGenやChatDevなどのマルチエージェント・フレームワークと比較されます。crewAIの最大のメリットは、これら2つのフレームワークが個別に得意とする機能を組み合わせた点です。crewAIは、AutoGenの対話型エージェントの柔軟性とChatDevの構造化プロセス・アプローチを組み合わせています。30

crewAIとAutoGenの比較

AutoGenは、対話型AIエージェントに自然言語処理(NLP)アルゴリズムを使用するMicrosoftのオープンソース・エージェント型フレームワークです。どちらのプラットフォームも同じようなアプリケーションで使用されますが、それぞれに長所と短所があります。どちらも、コラボレーションが可能なカスタマイズ可能なAIエージェントを備えた柔軟なシステムです。crewAIは、アプリケーションのプロセスを制御するカスタマイズ可能な属性を提供することで、エージェントのインタラクションをより簡単に調整する方法を提供します。これを実現するには、Autogenでさらにプログラミング設定が必要です。AutoGenは、LLMで生成されたコードを素早く実行するための組み込みの方法を提供します。31現在、crewAIはこの機能のためのツールを提供していませんが、追加のプログラミング設定を行うことで実現可能です。

crewAIとChatDevの比較

ChatDevは、crewAIを含むロールプレイング・マルチエージェント・コラボレーションを使用するオープンソース・プラットフォームです。ChatDevのプロセス構造は固定されているため、カスタマイズが制限され、実稼働環境の拡張性と柔軟性が妨げられます。crewAIのようなフレームワークは、動的で適応性の高い環境を実現するために、サード・パーティーのアプリケーションやカスタマイズ可能なワークフローと統合するように設計されています。ChatDevのユニークな機能は、ブラウザー拡張機能として拡張され、Webブラウザ内でさまざまなエージェント間の会話を連鎖させます。32

マルチエージェント・オーケストレーション・フレームワークとして、crewAIは人工知能の目標に向けた新たなイノベーションを提供します。エージェント型アーキテクチャーはAIエージェントのパフォーマンスと機能を強化し、LLMアプリケーションが言語生成を超えたタスクを実行できるようにします。

関連ソリューション
IBMのAIエージェント開発

開発者が、IBM watsonx.aiを使用してAIエージェントの構築、デプロイ、および監視を行えるようにします。

 

watsonx.aiの詳細はこちら
人工知能ソリューション

業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。

AIソリューションはこちら
AIコンサルティングとサービス

AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。

AIサービスはこちら
次のステップ

事前構築済みのアプリケーションとスキルをカスタマイズする場合でも、AIスタジオを使用してカスタム・エージェント・サービスを構築し、デプロイする場合でも、IBM watsonxプラットフォームが対応します。

watsonx Orchestrateの詳細はこちら watsonx.aiの詳細はこちら