本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
IETF Draft: Agentic AI Communications Requirements (draft-cui-agentic-ai-communications-00)
【背景と設計目標】
自律型AIエージェント間の動的協調と安全な相互運用を実現し、ベンダー非依存の文脈共有とタスク委任をネットワーク層・アプリケーション層の境界で標準化する新規設計。
【通信シーケンスと動作】
Agentic AI通信プロトコル(AAP / Agentic AI Protocol構想)における、エージェント間の相互認証、ケイパビリティ(能力)宣言、インテント(意図)交渉、およびコンテキスト制御の標準的なハンドシェイクとメッセージフローです。
sequenceDiagram
autonumber
participant "A1 as Initiator Agent (Client)"
participant "NR as Name/Capability Registry"
participant "A2 as Target Agent (Server)"
Note over A1, A2: Phase 1: Agent Discovery & Auth
A1 ->> NR: Query Agent Capability (Context ID / Task Domain)
NR -->> A1: Agent Endpoint & Public Key / TLS-MPOA Cert
A1 ->> A2: AGENT_CONNECT (Capability Offer, Attestation Token)
A2 -->> A1: AGENT_ACCEPT (Capability Ack, Session Key Exchange)
Note over A1, A2: Phase 2: Intent Negotiation & Context Transfer
A1 ->> A2: INTENT_REQ (Task Description, Constraints, State Vector)
A2 -->> A1: INTENT_RESP (Plan Proposal, Resource Requirements)
Note over A1, A2: Phase 3: Autonomous Task Execution & State Sync
rect rgb(240, 240, 240)
loop Task Step Execution
A1 ->> A2: EXEC_STEP (Tool Call Payload, Context Delta)
A2 -->> A1: EXEC_RESULT (Observation Payload, Intermediary State)
end
end
Note over A1, A2: Phase 4: Termination & Settlement
A1 ->> A2: AGENT_CLOSE (Final State Ack)
A2 -->> A1: AGENT_FIN (Execution Telemetry)
ディスカバリと相互検証: Initiator Agentはレジストリを介して相手方の検証可能クレデンシャル(VC)とケイパビリティを確認し、TLS 1.3およびMPOA (Multi-Party Operational Attestation) をベースにセキュアチャネルを確立します。
インテント交渉と制約合意: タスク要求(INTENT_REQ)において、コンテキストの有効期限(TTL)、アクセス可能なリソース制約、安全境界(Safety Boundary)をメッセージ交換で共有します。
動的ステート同期: 実行ステップ(EXEC_STEP)ではフルコンテキストを毎回送信せず、Context Delta(差分情報)と状態ベクトルのみを暗号化カプセル化してストリーミング伝送します。
【データ構造 / パケットフォーマット】
Agentic AI通信メッセージフレームの標準ヘッダ構造(L7 Agent Message Envelope)。固定ヘッダ長(16バイト)と可変長TLV(Type-Length-Value)ペロードで構成されます。
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| Flags | Magic Byte(AA)| Msg Type (16-bit) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Session ID (32-bit) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length (32-bit) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Agent Identity Hash (128-bit) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Context-Vector Alignment Header (Optional TLV) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Payload (CBOR / JSON-LD Encoded) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
フィールド定義
Version (4 bits): プロトコルバージョン(例:
0x1)。Flags (4 bits): ビットフラグ(Bit 0: Context Delta有効, Bit 1: Safe-Boundary Mode, Bit 2-3: 予約)。
Magic Byte (8 bits): プロトコル識別用マジックバイト(
0xAA)。Msg Type (16 bits):
0x0001(CONNECT),0x0002(INTENT_REQ),0x0003(EXEC_STEP),0x0004(CONTEXT_SYNC) 等。Sequence Number (32 bits): メッセージのシーケンス番号(リプレイ攻撃対策および順序制御)。
Session ID (32 bits): エージェント対話セッションを一意に識別する識別子。
Payload Length (32 bits): ペイロード部のバイト長。
Agent Identity Hash (128 bits): 公開鍵またはDID (Decentralized Identifier) に基づくエージェント識別ハッシュ。
Context-Vector Alignment Header (可変長): LLM/Agentのコンテキスト埋め込みベクトルやトークン状態の差分情報を搬送する拡張TLV。
Payload: アタッチされたインテント、実行コード、レスポンス(主に軽量化のためCBOR形式、動的スキーマ検証用にJSON-LDを採用)。
【技術的な特徴と比較】
| 評価項目 | 従来型 REST (HTTP/1.1 / HTTP/2) | gRPC (HTTP/2 + Protobuf) | Agentic AI Protocol (Draft) |
|---|---|---|---|
| 通信モデル | Request / Response (ステートレス) | RPC / Bi-directional Stream | Dynamic State-Full Negotiation |
| コンテキスト同期 | 毎回フルコンテキスト送信 (高オーバーヘッド) | メッセージ単位の完全定義 | 差分ベクトル伝送 (Context Delta) |
| Head-of-Line Blocking | HTTP/1.1で発生, HTTP/2で緩和 | HTTP/2ストリーム依存で発生し得る | QUICベースマルチストリームにより回避 |
| トランスポート層 | TCP (TLS) | TCP (TLS) | QUIC / UDP (0-RTT & トランスポートマルチプレクス) |
| セマンティクス制御 | 定型APIパス(固定スキーマ) | 固定スキーマ (IDL) | 動的インテント交渉 / JSON-LD + CBOR |
| 安全境界(Safety) | L7 Application側で個別実装 | L7 Application側で個別実装 | プロトコルレベルでの権限限界(Bound)明記 |
技術キーワード解説
Context Delta(コンテキスト差分)伝送: LLMのプロンプト履歴やKVキャッシュ状態全量を毎回送受信せず、エージェント間の前回同期点からの変更部分(差分ベクトル・トークン差分)のみを転送することでネットワーク負荷を極大化させない仕組み。
0-RTTセッション再開: AIエージェントが頻繁に接続・切断を繰り返す分散環境において、QUICの0-RTTを利用してハンドシェイク遅延を排除し、即時タスク実行を開始可能にする。
Dynamic Intent Negotiation: 固定のREST APIエンドポイント呼び出しではなく、「何を達成したいか(Intent)」と「制約条件(Cost, SLA, Security level)」をプロトコルレベルで折衝して最適なAPI・ツール呼び出しフローを自律決定する。
【セキュリティ考慮事項】
Prompt Injection / Indirect Injection 伝播の抑止
- エージェント間でやり取りされる非構造化テキスト(プロンプト)に悪意ある指示が含まれるリスクに対し、プロトコルヘッダレベルで「信頼境界レベル(Trust Level)」を付与。低信頼エージェントからのペイロードはサンドボックス実行フラグ(
Flags.Safe-Boundary = 1)を強制します。
- エージェント間でやり取りされる非構造化テキスト(プロンプト)に悪意ある指示が含まれるリスクに対し、プロトコルヘッダレベルで「信頼境界レベル(Trust Level)」を付与。低信頼エージェントからのペイロードはサンドボックス実行フラグ(
前方秘匿性(PFS)と相互認証
- エージェント間の通信はTLS 1.3 / QUICのEphemeral Diffie-Hellman(ECDHE)を必須とし、PFSを維持します。また、DIDおよびVerifiable Credentialsによる双方向のアイデンティティ検証を行い、中間者攻撃(MitM)によるエージェントのなりすましを防止します。
リプレイ攻撃および文脈汚染耐性
- トークン・状態の再生攻撃を防止するため、32ビットのSequence Numberに加え、各メッセージフレームに
Context-State-Hashを含めます。過去のコンテキスト状態と整合しない不正フレームはトランスポート層直上で即座に破棄されます。
- トークン・状態の再生攻撃を防止するため、32ビットのSequence Numberに加え、各メッセージフレームに
【まとめと実装への影響】
トランスポート選定のQUICシフト
- 高頻度なコンテキスト同期と低遅延なツール呼び出しを実現するため、HTTP/RESTベースの実装からQUICベースの軽量マルチストリームトランスポート(またはWebTransport)への移行が必要となります。
CBOR / 構造化コンテキスト処理の組み込み
- LLMのアウトプットをそのまま送るのではなく、プロトコルヘッダと整合するCBOR形式への高速エンコード・デコード処理をネットワークスタック近傍に組み込む設計が求められます。
ゼロトラスト・エージェント境界の設計
- 自律型エージェントは未知のエージェントと動的に通信するため、ネットワークエンジニアはIP/L4制御だけでなく、エージェントID・ケイパビリティ検証に基づくL7のゼロトラストポリシー制御をネットワーク境界で暗号学的に実施する準備が必要です。

