ACP — エージェント間通信プロトコル
ACP — エージェント間通信プロトコル — 公式ドキュメントに基づくわかりやすいガイド
想像してみてください。二人の同僚が異なる言語で話していると——一人はメール、もう一人は付箋を使っています。彼らは、メッセージを渡す共通の方法に合意しない限り、何も成し遂げられないでしょう。それがまさに、ACPがAIエージェントに対して行うことです。
ACPとは?
ACPとは、Agent Communication Protocol(エージェント通信プロトコル)の略です。これは、2つのAIエージェント(またはエージェントとツール)が、明確で構造化された方法で互いに通信するための一連のルールです——まるで機械のための万能翻訳機のようなものです。各エージェントが相手の意図を推測する代わりに、リクエストと応答の共通の「言語」に従います。
これは、会話の前の握手のようなものだと考えてください。一方のエージェントが「このデータが必要だ」と言い、もう一方が「はい、この正確な形式でどうぞ」と応答します。混乱も、コンテキストの喪失もありません。
なぜそれが必要なのか?
ACPがなければ、すべてのエージェントが他のすべてのエージェントを理解するためにカスタムコードを必要とするでしょう。それは、友人のペアごとに新しい辞書を書くようなものです。ACPは、誰もが使える1つの標準を作成することで、この問題を解決します。
例えば、Hermes Agentでは、次のようなものがあるかもしれません:
- 何をするかを決定するプランナーエージェント。
- 実際にタスクを実行するワーカーエージェント。
- 過去の結果を保存するメモリーエージェント。
ACPは、ペアごとにグルーコードを書くことなく、それらの間でメッセージをやり取りできるようにします。
実際にはどのように機能するのか?
簡単な例を示します。「会議を予約して、概要を送って」とHermesに依頼したとします。プランナーエージェントは、カレンダーエージェントにメッセージを送信します:
{
"type": "request",
"action": "create_event",
"params": {
"title": "Project Sync",
"time": "2025-05-01T10:00:00Z"
}
}
カレンダーエージェントは応答します:
{
"type": "response",
"status": "success",
"data": {
"event_id": "12345"
}
}
これで、プランナーはイベントが作成されたことを知ります。次に、イベントIDを添えてメールエージェントに別のメッセージを送信できます。誰も混乱しません。
ACPの主要なルール
- すべてのメッセージにはタイプがある –
requestまたはresponseのいずれか。 - すべてのリクエストにはアクションがある –
create_eventやget_weatherなど。 - すべてのレスポンスにはステータスがある –
successまたはerror。 - データは構造化されている – JSONを使用するため、読み取りと解析が簡単。
これだけです。シンプルですが、強力です。
現実世界のアナロジー
レストランで料理を注文することを考えてみてください。あなた(ユーザー)はウェイター(プランナーエージェント)に注文を伝えます。ウェイターはそれを伝票(ACPメッセージ)に書き、シェフ(ワーカーエージェント)に渡します。シェフは料理を作り、料理をパス(応答)に置きます。ウェイターがそれを受け取り、あなたのところに持ってきます。全員が伝票の形式を知っているので、キッチンはスムーズに回ります。
まとめと実用的なヒント
ACPは、AIエージェントが混乱なく協力できるようにする目に見えない接着剤です。それはすべて、明確で構造化されたメッセージに関するものです——それ以上でもそれ以下でもありません。
実用的なヒント: Hermesで独自のエージェントを構築するときは、ロジックを書く前に、必ずメッセージタイプとアクションを定義してください。上記のようなシンプルなJSONテンプレートから始め、最初に2つのエージェントでテストしてください。それが機能したら、さらに追加します。後でデバッグに費やす時間を何時間も節約できます。
さあ、エージェントと話してみましょう——彼らはきちんとお互いを理解するはずです。
📖 公式ドキュメント
この記事は Hermes Agent の公式ドキュメントに基づいています:公式ドキュメント › user-guide/features/acp