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