本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
[Draft] draft-hong-t2trg-ai-agent-coordination-01 : Agentic AI Communications (Agentic Communication Protocol – ACP)
【背景と設計目標】
複数のAIエージェントが協調して複雑なタスクを分散処理する際、従来のREST APIやgRPCでは「状態遷移の同期不全」や「セマンティック(意味論的)なミスマッチ」が発生します。本プロトコルは、動的な「意図(Intent)の合意」と「コンテキスト(文脈)の同期」を自律的に行うためのL7アプリケーションプロトコルとして新規設計されました。既存のHTTP/3(QUIC)やCoAPをトランスポート層として再利用しつつ、エージェント間の協調オーバーヘッドを最小化することを目標とします。
【通信シーケンスと動作】
ACP(Agentic Communication Protocol)は、単一の静的リクエスト/レスポンスではなく、協調タスクの完了まで継続する「マルチエージェント・セッション」を確立します。以下に、エージェントA(イニシエータ)がエージェントB(サービスプロバイダ)を発見し、セマンティック合意からタスク実行、状態同期に至るシーケンスを示します。
sequenceDiagram
autonumber
participant "AgentA as Agent A (Initiator)"
participant "AgentB as Agent B (Executor)"
Note over AgentA, AgentB: Phase 1: Semantic Negotiation & Capability Handshake
AgentA ->> AgentB: ACP_INIT (Session ID, Semantic Vector Schema)
AgentB -->> AgentA: ACP_ACK (Supported Intents, Semantic Alignment Matrix)
Note over AgentA, AgentB: Phase 2: Intent Allocation & Execution
AgentA ->> AgentB: ACP_INTENT_REQ (Task Intent, Constraints, Context ID)
AgentB ->> AgentB: Parse & Planning (Local Model Inference)
AgentB -->> AgentA: ACP_PLAN_PROPOSAL (Task Breakdown, Resource Costs)
AgentA ->> AgentB: ACP_PLAN_ACCEPT (Execution Token, Session PFS Key)
Note over AgentA, AgentB: Phase 3: Synchronous Execution & Context Sync
rect rgb(240, 240, 255)
AgentB ->> AgentA: ACP_CONTEXT_UPDATE (Intermediate State, Token Metrics)
AgentA -->> AgentB: ACP_CONTEXT_ACK (Corrective Intent / Keep-Alive)
end
Note over AgentA, AgentB: Phase 4: Teardown & Finalization
AgentB ->> AgentA: ACP_FIN (Execution Result, Context Summary, Signature)
AgentA -->> AgentB: ACP_CLOSE (Session Destroyed)
動作解説
フェーズ1(メタデータ合意):
ACP_INITにより、相互のLLM(大規模言語モデル)やスモールモデルが理解可能なセマンティック・ベクトル・スキーマ(埋め込み表現の次元数や空間空間情報)をネゴシエーションします。フェーズ2(意図の合意): タスクの意図(Intent)と制約(トークン上限、応答時間、セキュリティ境界)を提案。エージェントBはローカルでプランニングを行い、実行計画を提示して合意を形成します。
フェーズ3(継続的状態同期): タスク実行中、中間コンテキストを「コンテキスト・フレーム」として双方向に高頻度で同期(差分同期)し、ハルシネーションや不整合を動的に補正します。
【データ構造 / パケットフォーマット】
ACPメッセージは、既存のバイナリシリアライゼーション(例:CBORやProtobuf)の上に配置される共通のACPヘッダ(Agentic Communication Header: ACH)を持ちます。以下に、ACHの基本フォーマットを示します。
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Version | Message Type | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Session ID (64-bit) + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Context ID (64-bit) + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Semantic Space Type | Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Semantic Vector/Schema URI + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload (CBOR / Protobuf) ...
フィールド定義
Version (8-bit): ACPのプロトコルバージョン。初期ドラフトは
0x01。Message Type (8-bit):
0x01: ACP_INIT (セッション初期化)0x02: ACP_INTENT_REQ (意図要求)0x03: ACP_PLAN_PROPOSAL (計画提案)0x04: ACP_CONTEXT_UPDATE (コンテキスト同期)0x05: ACP_FIN (正常終了)
Flags (16-bit): コントロールフラグ(例: 動的計画変更フラグ、緊急遮断フラグ等)。
Sequence Number (32-bit): セッション内のフレーム番号(パケットの再整列、損失検出用)。
Session ID (64-bit): 同一のタスクライフサイクルを追跡するためのグローバル一意識別子。
Context ID (64-bit): コンテキスト分岐(サブスレッド)を識別するための識別子。
Semantic Space Type (16-bit): 使用する埋め込みベクトル空間(例: OpenAI ada-002, Cohere, 自社内製モデル空間等)を定義。
Semantic Vector/Schema URI: データのスキーマやセマンティック解釈を記述したメタデータリポジトリへのURI。
【技術的な特徴と比較】
| 評価項目 | gRPC over HTTP/2 | REST over HTTP/3 | Agentic Communication Protocol (ACP) |
|---|---|---|---|
| トランスポート | TCP / TLS | QUIC / TLS | QUIC (UDP) / TLS 1.3 |
| HOL Blocking (頭部ブロッキング) | 発生する (TCPストリーム間) | 回避 (QUICストリーム) | 回避 (マルチストリームとセマンティック境界の分離) |
| 0-RTTセッション再開 | 非対応 | 対応 | 対応 (過去のセマンティック・コンテキスト状態をキャッシュ再生) |
| 多重化単位 | HTTP/2 ストリーム | QUIC ストリーム | サブタスク / コンテキスト分岐単位 |
| ルーティングパラダイム | URI / Path ベース | URI / Path ベース | セマンティックルーティング (Intent/Vector類似度) |
| セッションの自律性 | 静的クライアント・サーバ | 静的クライアント・サーバ | 自律的ネゴシエーション(P2P協調) |
技術的キーワード解説
セマンティックルーティング: 物理アドレスや固定URLではなく、「何を実行したいか(意図:Intent)」を表す高次元ベクトルに基づいて、パケットの宛先(最適なAIエージェント)を動的に決定する方式。
0-RTTコンテキスト再生: 一度セッションを切断したエージェント間において、過去の「文脈(コンテキスト・ステート)」をメモリキャッシュから迅速に復元し、再ハンドシェイクの往復遅延を削減する技術。
【セキュリティ考慮事項】
1. 敵対的プロンプト・インジェクションの連鎖(Adversarial Injection Propagation)
エージェントAから受信した「コンテキスト」や「実行結果」に悪意ある命令が埋め込まれていた場合、エージェントBがそれを「命令」として認識・実行してしまう脅威があります。
- 対策: ACPパーサはセマンティックペイロードを完全に「データプレーン」として隔離し、実行エンジン(LLM等)に入力する前にセマンティックフィルタリング(ガードレール)を強制適用する仕様としています。
2. コンテキスト改ざんとリプレイ攻撃(Context Poisoning / Replay)
中間者が過去のコンテキストフレーム(同期パケット)を傍受し、再送することで、エージェントに同一の重いタスク(例: トークン消費攻撃)を繰り返し実行させるリスク。
- 対策:
Sequence NumberとSession IDの組み合わせに対し、TLS 1.3由来の共通鍵を用いたAEAD(Authenticated Encryption with Associated Data)による署名を全フレームに義務付け、前方秘匿性(PFS)を維持した一時セッション鍵をフェーズ2で交換します。
3. ダウングレード攻撃(Downgrade Attacks)
高度な暗号化や強固なセマンティック監査をサポートしていない古いバージョン(ACP v0.1等)に強制的にフォールバックさせ、脆弱性を突く攻撃。
- 対策:
ACP_INITハンドシェイクにおいて、サポートする最低セキュリティポリシーを明記。要件を満たさないセッション要求はトランスポート層で即座にリセット(RST)します。
【まとめと実装への影響】
ネットワークエンジニアおよびシステム開発者が、本ドラフト(ACP)の実装において留意すべきポイントは以下の3点です。
セマンティックゲートウェイの構築設計 従来のL4/L7ロードバランサ(物理IPやURIベース)では、AIエージェントの動的なインテントを判別できません。ベクトルの類似度(コサイン類似度など)を低遅延で判定する「セマンティック・リバースプロキシ(ゲートウェイ)」の配置設計がインフラ側に求められます。
ステートフル・マルチストリーミングの負荷 コンテキストの同期は大量の差分データ(ベクトルやトークン差分)を伴うため、QUICコネクション上でのマルチストリーム制御が極めて重要です。エージェント数に比例してセッション並行数が増大するため、ルータ/ホスト側でのメモリ圧迫に対するレートリミット(Flow Control)設計が不可欠です。
トークン消費(経済的DoS)の防止設計 悪意ある、あるいはバグを抱えたエージェントによる、無限ループ状の「協調プラン交渉」は、急激なAPI利用コストの暴騰(経済的DoS)を招きます。ACPヘッダの「Flags」内に定義される『最大許容トークン/コスト(Max Cost Constraint)』をインフラレベルで常時監視し、閾値超過時に強制切断(ACP_CLOSE)するサーキットブレーカーの実装が必須となります。

