このチュートリアルでは、エージェント通信プロトコル(ACP)を使用して、BeeAIやcrewAIとのリアルタイムのエージェント・コラボレーションを実証する、マルチエージェントなクロスプラットフォームAIワークフローについて説明します。ACPは、共有されたオープンスタンダードのメッセージング・レイヤーとして機能し、さまざまなフレームワークのエージェントがカスタム統合ロジックを使用せずに通信および調整できるようにします。
ACPは、チームが多様なプラットフォーム、ツール、インフラストラクチャーにわたってエージェントとワークフローを構築する必要が多いエンタープライズAI環境で特に価値があります。ACPは、標準化されたメッセージング・レイヤーを提供することで、最新のエンタープライズAIシステムの要求を満たすスケーラブルで安全なモジュール式のエージェント間のコラボレーションを実現します。
このプロジェクトでは、AI駆動型エージェントがフレームワーク・サイロ間で連携できるようにし、調査、コンテンツ生成、フィードバックなどの各エージェント機能を統合ワークフローに一元化することで、エージェントの相互運用性を実証します。
ほとんどのエージェント型AIフレームワークは、カスタム・システムまたはクローズド・システムを使用して通信を処理します。このアーキテクチャーでは、特に異なるAIシステムの構成要素を組み合わせる場合に、ツールチェーン、チーム、インフラストラクチャー全体でエージェントを連携させることが困難になります。
ACPは、自律型のエージェントがメッセージを送信、受信、解釈する手段として、標準化されたフレームワークに依存しないメッセージング形式を導入しています。メッセージは通常はJSONで構造化されており、エージェントとのやり取りを明確かつ一貫性のある方法で強化するためのメタデータが含まれています。
ACPでは、通信をエージェントの内部ロジックから切り離すことで、チームがカスタム統合コードを必要とせずに、BeeAI、CrewAI、LangChain、LangGraphなどのさまざまなAIエージェント・フレームワークで構築されたエージェントを組み合わせて使用できます。このアプローチは、拡張性を高め、オートメーションを簡素化し、最新の業界標準に合わせたモジュール式で透明性の高いシステム設計をサポートします。
このチュートリアルが終わるまでに、ACPの実践例を確認し、次のテクノロジーを使用した実践的な体験を積むことができます。
このプロジェクトでは、ACP(acp-sdk経由)がエコシステム全体での一貫した観測可能なコラボレーションをどのように合理化できるかを示すワークフローを実証します。
ワークフローは、ユーザーがURLを指定した時点で開始されます。そこから、専門エージェントによるモジュール式でフレームワークに依存しないシステムにより、ウェブページのコンテンツがプロ仕様の批評を添えたクリエイティブな成果物(オリジナル楽曲)に変換されます。すべてのコンポーネントが協調して、これらのアウトプットを単一で統合された、人間が判読できる形式のMarkdownレポートに結合します。この最終的な成果物はオリジナルのデータが完全に変換されたものであり、クリエイティブな生成物と分析的な洞察を融合させています。
このソングライティングのワークフローは、ACPがシステム全体の共有通信レイヤーとして機能することにより、マルチエージェントのエージェント型AIシステムが、BeeAIとcrewAIという2つの異なるフレームワークで開発されたエージェント間のコラボレーションを調整する方法を示しています。
通信と実装を分離することで、システムのモジュール化と拡張可能性を維持し、フレームワーク全体でエージェントをオーケストレーションし、構造化されていないウェブコンテンツから一貫したエンドツーエンドのアウトプットを生成できます。
ACPエージェント
このプロジェクトでは、4つの専門的なAIエージェントを使用します。
ソングライティングと批評プロジェクトのワークフロー
ワークフロー全体を通じて、エージェント間で交換されるメッセージは、メタデータで強化されたJSONオブジェクトとして構造化されます。このメタデータは、各エージェントがメッセージの内容、コンテキスト、および予想される応答を理解するのに役立ちます。
このワークフローは、マルチエージェントのデータ変換および分析パイプラインのオーケストレーションを必要とするあらゆるユースケースに適用できる、再利用可能なパターンを示しています。
ACPは、さまざまなフレームワークで構築されたエージェントが標準化された方法で情報を交換できるようにする共通のメッセージング・システムを提供します。このオープン・プロトコルにより、エージェントはカスタム統合や内部ロジックの共有を必要とせずに相互運用できます。
ACPクライアント(
ACPクライアント・ワークフローの概要
config/agents.yaml
の主な役割
クライアントの使用例:
このプロジェクトを実行するためのシステム要件は次のとおりです。
開始する前に、必要なツールとプロバイダー・サービスの概要を簡単に説明します。
次のリストは、マルチエージェント・ワークフローに必要な主要なフレームワーク、プラットフォーム、APIを示しています。
後続のセクションでは、各ツールとプロバイダーをインストール、構成、使用して環境をセットアップするための手順を段階的に説明します。
BeeAIとcrewAI はどちらも、多様な言語モデル・プロバイダーと連携するように設計されており、さまざまな環境やユースケースに柔軟に対応できます。このチュートリアルでは、OpenRouterはBeeAIエージェントのLLMプロバイダーとして使用され、OllamaはローカルのcrewAIエージェントに使用されます。
どちらのフレームワークもプロバイダーに依存しないため、構成設定を更新することで他のLLMサービスに切り替えることができます。選択したLLMプロバイダーによって設定が異なる場合があります。さらに、このチュートリアルでは、IBM® watsonx.aiを代替のクラウドベース・プロバイダーとして使用するための事前構成済みのオプション設定についても説明します。
お好みのLLMプロバイダーとモデルを使用することもできます。ただし、このチュートリアルに示されている構成のみがテストされている点に注意してください。他のプロバイダーやモデルでは、追加の設定や調整が必要になる場合があります。
このプロジェクトでサポートされている3つのプロバイダーには、次の要件があります。
クラウドベースの言語モデルで事前構成されたBeeAIエージェント・サーバーを使用するには、OpenRouter APIキーが必要です。
BeeAIエージェントのLLMプロバイダーとしてOpenRouterを使用するには、次の手順に従います。
注:無料モデルは、このチュートリアルを実行する時期によって異なる場合があります。無料モデルについては、OpenRouterの無料利用枠モデルのリストをご覧ください。
OllamaをcrewAIエージェントのLLMプロバイダーとして使用するには、次の手順に従います。
IBM® watsonx.aiをcloudAIサーバーのLLMプロバイダーとして使用するには、次の手順に従います。
このチュートリアルでは、crewAIエージェント向けのオプションのクラウドLLMプロバイダーとしてIBM® watsonx.aiが使用されます。
AgentOpsは、マルチエージェント・ワークフローをトレース、監視、視覚化するためのオプション・サービスです。
このプロジェクトでAgentOpsを使用する場合は、次の手順に従います。
AgentOpsはワークフローの実行に必須ではありませんが、エージェントのアクティビティを監視し、マルチエージェントのやり取りをデバッグするのに役立ちます。
このプロジェクトを実行するには、HTTPS URLとしてhttps://github.com/IBM/ibmdotcom-tutorials.gitを使用してGitHubリポジトリーをクローンします。リポジトリーをクローンする詳細な手順については、GitHubのドキュメンテーションを参照してください。
このチュートリアルは、リポジトリーのプロジェクト・ディレクトリー内にあります。
端末内で、このチュートリアルのディレクトリーに移動します。
このプロジェクトでは、マルチエージェント・システムの各コンポーネントに対して、3つの個別のPythonスクリプトを同時に実行する必要があります。そのため、3つの端末のウィンドウまたはタブを開く必要があります。
まず、現在の端末を開いたままにし、さらに2つの端末を開いて、3つの端末すべてが正しいディレクトリーに移動されていることを確認します(次のステップを参照)。
IDEを使用している場合
Visual Studio Code*などのIDEを使用している場合は、Split Terminal機能を使用して複数の端末を並行して管理できます。
それ以外の場合は、3つのスタンドアロン端末ウィンドウを開き、それぞれを適切なサブディレクトリーに移動します。
端末のナビゲーション
各端末は、次のいずれかのコンポーネントを担います。
各コンポーネントは独自の仮想環境で実行され、クリーンな依存関係管理が実現します。このチュートリアルでは、RustベースのPythonパッケージ・マネージャーであるUVを使用して、環境を管理および同期します。
注:続行する前に、Python 3.11以降がインストールされていることを確認してください。
UVをインストールする
まだインストールしていない場合は、Homebrewを使用してUVをインストールします(macOSおよびLinux推奨)。
Windowsユーザーへの注意:WSL(Windows Subsystems for Linux)をインストールし、WSL端末内でLinuxの指示に従ってください。
仮想環境を作成してアクティブ化する(各端末)
各端末(BeeAI、crewAI、ACPクライアント)で、次のコードを実行します。
このステップでは、現在のディレクトリー内に
各プロジェクト・ディレクトリー内で
以下を使用して、各ターミナルに依存関係をインストールします。
このステップでは、各コンポーネントに対して
BeeAIをインストールしたら、CLIを使用してBeeAIプラットフォームを次で起動します:
注:最初の実行では、このステップに数分かかる場合があります。
LLMプロバイダー(OpenRouter)を設定する
次のコマンドを実行して、対話型CLIでLLMプロバイダーとモデルを構成します。
プロンプトに従ってOpenRouterを選択し、APIキーとモデルの詳細を入力します。
設定を確認するには、次を使用します。
このステップでは、設定した次が出力されます:
または、高度なユーザーは適切な値を使用して
OpenRouterの.envの例
BeeAIが動作していることを確認するには、次のテスト・プロンプトを送信します。
有効な応答の場合、プラットフォームがアクティブであるということです。
トラブルシューティング
必要に応じて、以下を使用してプラットフォームを更新または再起動できます。
CrewAI LLM構成ドキュメントを使用して独自のプロバイダーをカスタマイズすることもできます。
crewAIエージェント・コードを更新する
BeeAIとcrewAIの両方を設定したら、それぞれの端末でエージェント・サーバーを起動します。
BeeAIエージェント・サーバーを起動する
beeai_agent_serverターミナルで以下を行います。
サーバーが
ターミナルは、数秒ごとに正常性チェックのpingをログに記録する必要があります。
crewAIエージェント・サーバーを起動する
crewai_agent_serverターミナルで、以下を行います。
すべてのエージェントが実行されていることを確認する
ローカルに構築されたACP準拠エージェントは、BeeAIによって自動的に認識されます。BeeAI CLIを使用して、すべてのローカル・エージェントが登録され、正常であることを確認します(このステップは任意の無料ターミナルで実行できます)。
次の項目のエントリーが表示されます。
すべてのエージェントがリストされ、連絡可能であれば、これらのエージェントが正常に相互運用されていることが確認できたことになります。
acp-clientサーバー専用のターミナル(
ターミナル内で、URLの入力を求めるプロンプトが表示されます。このインプットは、マルチエージェント・ワークフローをトリガーします。
すべてのエージェントとクライアント/サーバーが実行されたら、ACPプロジェクトを開始する準備が整いました。
注:大規模言語モデル(LLM)からの出力は確率的なものであり、同じインプットであってもワークフローを実行するたびに変化する可能性があります。
このチュートリアルでは、AIエージェントが連携してデータを生成および変換するためのエンドポイントを公開するACPクライアント/サーバーを介して、2つの異なるマルチエージェント・フレームワークを接続しました。ACPは、エージェントの動作から通信を分離することで、BeeAI、crewAI、LangChain、その他のエージェント・フレームワークで構築されたエージェントがカスタム統合ロジックなしで連携できるようにします。このアプローチにより、モジュール性、拡張性、相互運用性が向上します。
ACPは、エージェントがメッセージを送信、受信、解釈する必要性に基づき推進されるオープンな取り組みです。ACPのメッセージは、通常はJSONなどの形式で構造化され、メタデータで強化され、エージェントの対話全体の一貫性と明確性が確保されます。OpenAI、Anthropic、またはその他のAIモデルのいずれを搭載したエージェントを使用する場合でも、ACPはフレームワークに依存しない相互運用性をサポートする共有メッセージング層を提供します。
このワークフローに従って作業することで、クリエイティブ・エージェントと分析エージェントが調和して機能し、構造化されていないWebコンテンツを曲や専門的な批評、そして統合されたマークダウン・レポートに変換できることがわかりました。このアプローチは、シームレスでスケーラブルかつ柔軟なマルチエージェントAIシステムを実現するACPの力を実証しています。
システムの実験が終了したら、次の手順に従って、実行中のすべてのコンポーネントを完全にシャットダウンします。
1. 実行中の各サーバーを停止する
各ターミナル・ウィンドウで
次のような出力が表示されます。
2.シャットダウン中にサーバーがハングアップした場合
サーバーが応答しなくなる、またはシャットダウン時にハングアップする場合(例えば
プロセスID(PID)を確認する
次のコマンドを実行して、サーバー・プロセスを見つけます。
停止しようとしているプロセスのPIDを特定します。例:
プロセスを終了させます。PIDを使用して強制的に停止します。
必要に応じて、サーバーごとにこのプロセスを繰り返します。
これで終了です。ACPを使用して完全なクロスプラットフォームのマルチエージェント・システムを実行することができました。
生成AIを使用してワークフローとプロセスを自動化する強力なAIアシスタントとエージェントを構築、デプロイ、管理しましょう。
信頼できるAIソリューションでビジネスの未来を構築します。
IBMコンサルティングAIサービスは、企業がAIをトランスフォーメーションに活用する方法を再考するのに役立ちます。