IBMニュースレター
The DX Leaders
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
エージェント通信プロトコル(ACP)は、エージェント間の通信を実現するオープン・スタンダードですこのプロトコルにより、分断された現在のエージェントのランドスケープを、統合と連携が容易になる相互運用可能なエージェント・システムへと変革できます。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
IBMのBeeAIによって最初に導入されたACPを使用することで、AIエージェントはチーム、フレームワーク、テクノロジー、組織の枠を越えて自由に連携できます。これは、今日のAIエージェントの分断されたランドスケープを相互接続されたチームへと変えるユニバーサル・プロトコルであり、新たなレベルの相互運用性、再利用性、拡張性を実現するオープン・スタンダードです。ツールやデータへのアクセスを実現するオープン・スタンダードであるモデル・コンテキスト・プロトコル(MCP)に続く次のステップとして、ACP はエージェントの動作と通信方法を定義します。1
補足として、AIエージェントとは、ユーザーや別のシステムに代わってタスクを自律的に実行するシステムまたはプログラムを指します。自身でワークフローを設計し、利用可能なツールを使って実行します。マルチエージェント・システムは、ユーザーまたは別のシステムに代わってタスクを実行するために協調して動作する複数のAIエージェントで構成されます。
オープンガバナンスを備えたAIエージェント通信標準であるACPにより、AIエージェントはさまざまなフレームワークやテクノロジースタック間で通信できるようになります。AIエージェントは、自然言語の形式でユーザーの問い合わせを受け取ったり、一連のアクションを実行したりするとき、通信プロトコルによりパフォーマンスが向上します。これらのプロトコルは、ツールや他のエージェント間、そして最終的にユーザーへ情報を中継します。
AIエージェント通信とは、人工知能エージェントが互いに、人間や外部システムと対話して情報を交換し、意思決定を行い、タスクを完了する方法を指します。この通信は、複数のAIエージェントが連携して動作するマルチエージェント・システムや、人間とAIの相互作用において、特に重要な役割を果たします。
ACPは、BeeAIを含む成長するエコシステムの一部です。以下は主な特徴の概要です。コアコンセプトと詳細については、公式ドキュメントをご覧ください。
注:ACPは、あらゆるエージェント・アーキテクチャーのオーケストレーションを可能にしますが、エージェント間のワークフロー、デプロイ、調整を管理するものではありません。代わりに、通信方法を標準化することで、多様なエージェント間のオーケストレーションを実現します。IBM Researchは、通信層としてACPを使用し、エージェントのオーケストレーション、デプロイ、共有を行うためのオープンソース・システム「BeeAI」を構築しました。
エージェント型AIがの活用が進むにつれ、特定のベンダーに縛られることなく、ユースケースに応じて独立した各種テクノロジーから最適な成果を引き出すための判断や調整が、ますます複雑になっています。各フレームワーク、プラットフォーム、ツールキットには独自の利点がありますが、それらをすべて1つのエージェント型システムに統合するのは容易ではありません。
現在、ほとんどのエージェント・システムはサイロ化された状態で運用されています。これらのシステムは互換性のないフレームワーク上に構築され、カスタムAPIやエンドポイントを公開しています。また、通信用の共有プロトコルを持ちません。それらを接続するには、コストがかかるうえに脆弱で再利用が困難な統合が必要になります。
ACPは、断片化されたアドホックなエコシステムから、相互接続されたエージェントのネットワークへの根本的な転換を意味します。つまり、誰が構築したか、どのスタックで動作しているかに関係なく、各エージェントが他のエージェントを発見し、理解し、連携できるようになります。ACPを使用すると、開発者はさまざまなエージェントの集合知を利用して、単一のシステムだけでは実現できないより強力なワークフローを構築できます。
エージェントの能力が急速に進化しているにもかかわらず、実環境への統合は依然として大きなボトルネックとなっています。共通の通信プロトコルが存在しない場合、組織は繰り返し発生するいくつかの課題に直面します。
エージェント間通信の実環境での必要性を示す例として、次の2つの組織を考えてみましょう。
ここで、製造会社のシステムが顧客に見積もりを伝えるために、大規模なカスタム設備の注文の納期を見積もる必要があると想像してください。
ACPなし:このアプローチでは、メーカーの計画ソフトウェアと物流プロバイダーのAPIの間に専用の統合を構築する必要があります。これには認証処理、データ形式の不一致対応、サービスの可用性管理などを手動で行う必要があり、統合は費用がかかり、脆弱で、パートナーが増えるほど拡張が困難になります。
ACP使用時: 各組織は自社のエージェントにACPインターフェースを実装します。製造エージェントは注文内容と配送先の詳細を物流エージェントに送信し、物流エージェントはリアルタイムの配送オプションと到着予定時刻(ETA)を応答します。両システムは内部構造を公開したり、カスタム統合を作成したりすることなく、エージェント間の協調作業を実現します。ACPを導入することで、新たな物流パートナーの追加も容易になります。AIエージェントとACPを組み合わせた自動化により、データ交換の拡張性と効率化が実現します。
シンプルさはACPの中核的な設計原則です。ACPでエージェントをラップする作業は、わずか数行のコードで完了します。PythonのSDKを使用すれば、関数にデコレーターを付けるだけでACP準拠のエージェントを定義できます。
この最小限の実装により、次のことが可能になります。
コード例:
from typing import Annotated
import os
from typing_extensions import TypedDict
from dotenv import load_dotenv
#ACP SDK
from acp_sdk.models import Message
from acp_sdk.models.models import MessagePart
from acp_sdk.server import RunYield, RunYieldResume, Server
from collections.abc import AsyncGenerator
#Langchain SDK
from langgraph.graph.message import add_messages
from langchain_anthropic import ChatAnthropic
load_dotenv()
class State(TypedDict):
messages: Annotated[list, add_messages]
#Set up the AI model of your choice
llm = ChatAnthropic(model="claude-3-5-sonnet-latest",
api_key=os.environ.get("ANTHROPIC_API_KEY"))
#------ACP Requirement-------#
#START SERVER
server = Server()
#WRAP AGENT IN DECORACTOR
@server.agent()
async def chatbot(messages: list[Message])-> AsyncGenerator[RunYield, RunYieldResume]:
"A simple chatbot enabled with memory"
#formats ACP Message format to be compatible with what langchain expects
query = " ".join(
part.content
for m in messages
for part in m.parts
)
#invokes llm
llm_response = llm.invoke(query)
#formats langchain response to ACP compatible output
assistant_message = Message(parts=[MessagePart(content=llm_response.content)])
# Yield so add_messages merges it into state
yield {"messages": [assistant_message]}
server.run()
#---------------------------#
これで、完全にACPに準拠したエージェントが作成されました。このエージェントは、次のことが可能です。
進化を続けるAIエコシステムにおけるACPの役割をより深く理解するには、他の新しいプロトコルと比較してみるとよいでしょう。こうしたプロトコルは、必ずしも競合するものではありません。それぞれがAIシステム統合スタックの異なるレイヤーを担っており、相互に補完し合うことも多くあります。
概要
モデル・コンテキスト・プロトコル(MCP): ツール、メモリ、リソースを活用して単一モデルのコンテキストを拡張するために設計されています。Anthropicによって導入されました。
フォーカス:1つのモデル、多数のツール
エージェント通信プロトコル(ACP): システムや組織をまたいで動作する独立したエージェント間の通信のために設計されています。IBMのBeeAIによって導入されました。
フォーカス:多数のエージェント、ピアとして安全に連携、ベンダー・ロックインなし、オープンなガバナンス
Agent2Agentプロトコル(A2A) :システムや組織をまたいで動作する独立したエージェント間の通信のために設計されています。Google によって導入されました。
フォーカス:多数のエージェントがピアとして連携し、Googleのエコシステム向けに最適化されている
ACP チームは当初、モデル・コンテキスト・プロトコル(MCP)の活用を検討していました。モデルとコンテキストの相互作用に関して優れた基盤を提供していたためです。しかしすぐに、真のエージェント間通信には適さないアーキテクチャ上の制約があることが判明しました。
マルチエージェントシステムにおけるMCPの限界:
ストリーミング: MCPは、基本的なストリーミング(完全なメッセージである可能性が高い)をサポートしていますが、更新が発生するとすぐに送信される、よりきめ細かな「デルタ」スタイルのストリーミングには対応していません。 トークンや軌道の更新などのデルタ・ストリームは、完全なデータ・ペイロードではなく増分更新で構成されるストリームです。この制限は、MCPが設計された当初、エージェント・スタイルのインタラクションを想定していなかったことに起因しています。
メモリ共有:MCPは、複数のエージェントをサーバー間で実行しながら共有メモリを維持する機能をサポートしていません。ACPもこの機能をまだ完全にはサポートしていませんが、現在活発に開発が進められています。
メッセージ構造:MCPは任意のJSONスキーマを受け付けますが、メッセージ本体の構造を定義していません。この柔軟性により、多様なメッセージ形式を解釈しなければならないエージェントの構築において、相互運用性の確保が困難になります。
プロトコルの複雑さ: MCPはJSON-RPCを採用しており、特定のSDKやランタイムが必要です。一方で、ACP は非同期・同期処理をネイティブでサポートする REST ベースの設計により、軽量で統合しやすくなっています。
MCPを、人が計算機や参考書などの優れたツールを使って自分の能力を高めるようなものと考えることができます。対照的に、ACPは、個々の人(エージェント)がチームとして協力しながら、AIアプリケーション内でそれぞれの機能を発揮できるようにすることを目的としています。ACPとMCPは互いに補完し合うことができます。
Google によってACPの直後に導入されたAgent2Agentプロトコル(A2A)も、AIエージェント間の通信を標準化することを目的としています。いずれのプロトコルもマルチエージェント・システムの実現を目指している点では共通していますが、その設計思想やガバナンスには違いがあります。
主な違い:
ACPは意図的に次のように設計されています。
両方のプロトコルは共存可能。それぞれが環境に応じて異なるニーズに対応します。ACPは軽量で、オープンで拡張可能な設計になっているため、分散型システムや、組織的な境界を越えた現実世界の相互運用性に適しています。A2Aは自然な統合のため、Googleエコシステムを使用しているユーザーにとってより適した選択肢となる可能性があります。
ACPの進化に伴い、エージェントのコミュニケーションを強化する新たな可能性が模索されています。重点を置いている主な分野を以下にいくつか示します。
ACPは、ユーザーと直接協力して開発されたときに「標準」は最も効果を発揮するという考えに基づき、オープンソースで開発されています。AIエージェントの相互運用性の将来に関心のある開発者、研究者、組織の皆様からの貢献を歓迎します。進化し続ける生成AIの標準を共に形作っていきましょう。
生成AIを使用してワークフローとプロセスを自動化する強力なAIアシスタントとエージェントを構築、デプロイ、管理しましょう。
信頼できるAIソリューションでビジネスの未来を構築します。
IBMコンサルティングAIサービスは、企業がAIをトランスフォーメーションに活用する方法を再考するのに役立ちます。