こんにちは、ホワイトバードです。
先週ラスベガスで開催されているAWS re:Inventのセッションに参加したところ「CrewAI」というエージェントフレームワークがあることを知りました。
知らないフレームワークだったので3分だけ概要をつかんで、Bedrock AgentCoreで使ってみたいと思います。
CrewAIはマルチエージェントのオーケストレーションに焦点を当てたオープンソースのフレームワークで、人間の介入なしに複雑なタスクを解決するために協力する自律型エージェントのチームを作成するためのアプローチを提供します。Pythonベースのフレームワークで、ブラジル出身の創業者のCrewAI社により開発されています。公式ドキュメントは英語とポルトガル語と韓国語となっています。
https://docs.crewai.com/en/introduction
(引用:https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/agentic-ai-frameworks/crewai.html)
CrewAIのアーキテクチャはCrewとFlowという二つのモードがあります。
自律性と協調インテリジェンスを最適化し、各エージェントが特定の役割、ツール、目標を持つ AI チームを作成できます。
Crewsには、次のような役割を持っています。
クルーと呼ばれるエージェントのチームを作成します。各チームの単位をCrewと呼び、ワークフローやコラボレーションを管理します
Agentsには自律的に働くためのロール、目標、バックストーリー、ツールを定義します。
プロセスではエージェントのプロセスを指定します。例えばシーケンシャルに解決する、スーパーバイザーとなるマネージャーエージェントを指定するなどのやり取りを決めることができます。
タスクでは、エージェントが目標を達成するために実行する必要がある具体的なアクションを定義する基本的な構成要素です。タスクは、独立した割り当てとして構成することも、複数のエージェントの連携を必要とする相互依存的なワークフローとして構成することもできます。
より柔軟なエージェントのワークフローを指定できるようになります。Crewどうしのやり取りやツールを指定できますが、今回は割愛します。
コードを見たほうが早いと思います。
crewai_agent.py
requirement.txt
Bedrock AgentCoreのデプロイは、AgentCore CLIを使って行います。
uv venvuvx pip install -r requirements.txtagentcore configure --entrypoint crewai_agent.pyagentcore deploy
テストのプロンプトを入れて実行してみます。
agentcore invoke '{"prompt": "CrewAIの利点は何ですか?"}'
このような結果が返ってきました。
Response:{"result": "CrewAIの利点は以下の通りです。\n
\n
**1.マルチエージェント協調作業**\n
CrewAIは複数のAIエージェントを組織し、協力させることができます。各エージェントが異なる役割を担当し、タスクを効率的に分担できます。\n
\n
**2.柔軟な役割定義**\nエージェントに特定の役割、目標、バックストーリーを設定できます。これにより、各エージェントが専門的で一貫性のある動作をするようになります。\n
\n
**3.タスク自動化と管理**\n
複雑なワークフローを自動化し、タスクの優先順位付けと実行順序を管理できます。複数のタスクを順序立てて実行することが可能です。\n
\n
**4.高度なコミュニケーション機能**\n
エージェント間の効果的なコミュニケーション機構を備えており、情報共有と協調が円滑になります。\n
\n
**5.スケーラビリティ**\n
プロジェクトの規模に応じてエージェント数やタスク数を増減させられます。小規模から大規模なプロジェクトまで対応可能です。\n
\n
**6.統合性と拡張性**\n
既存のツール、API、LLMと統合でき、カスタムツールを追加して機能を拡張できます。\n
\n
**7.メモリ管理**\n
長期記憶と短期記憶を管理し、コンテキストを保持したまま複雑なタスクを遂行できます。\n
\n
**8.透明性と制御**\n
エージェントの思考過程や意思決定を可視化でき、人間が必要に応じて介入・調整が可能です。\n
\n
**9.開発効率の向上**\n
フレームワークを使用することで、複数エージェントシステムの開発時間を大幅に短縮できます。\n
\n
**10.複雑な問題解決**\n
単一のAIでは困難な複雑な問題を、複数の専門的なエージェントの協力により解決しやすくなります。"}
セッションの中では、プロトタイピングに向いているということでしたが、おっしゃる通りでバックストーリーやロールを定義して、直感的な作成がしやすいように感じました。Bedrock AgentCore Runtimeでも簡単に実装できるのはありがたいですね。
またいろいろなフレームワークを学んでみたいと思います!