<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-nandakumar-agentproto-moq-pace-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="PACE over MOQT">PACE: Protocol for Agent Communication Exchange</title>
    <seriesInfo name="Internet-Draft" value="draft-nandakumar-agentproto-moq-pace-00"/>
    <author initials="S." surname="Nandakumar" fullname="Suhas Nandakumar">
      <organization>Cisco</organization>
      <address>
        <email>snandaku@cisco.com</email>
      </address>
    </author>
    <author initials="C." surname="Jennings" fullname="Cullen Jennings">
      <organization>Cisco Systems</organization>
      <address>
        <email>fluffy@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="28"/>
    <area>Applications and Real-Time</area>
    <workgroup>Agent Communication Protocols</workgroup>
    <keyword>agent-to-agent</keyword>
    <keyword>agent-to-tool</keyword>
    <keyword>MOQT</keyword>
    <keyword>AI agents</keyword>
    <keyword>session protocol</keyword>
    <keyword>real-time communication</keyword>
    <abstract>
      <?line 123?>

<t>This document defines the Protocol for Agent Communication Exchange (PACE),
a session protocol for AI agent communication over Media over QUIC Transport
(MOQT). PACE provides session lifecycle management, multi-modal data
exchange, agent identity verification, and delegated authorization within
MOQT's publish/subscribe model, supporting point-to-point and
point-to-multipoint topologies through relay infrastructure.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://suhasHere.github.io/draft-a2a-moqt-transport/draft-nandakumar-ai-agent-moq-transport.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-nandakumar-agentproto-moq-pace/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Agent Communication Protocols Working Group mailing list (<eref target="mailto:agent2agent@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/agent2agent/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/agent2agent/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/suhasHere/draft-a2a-moqt-transport"/>.</t>
    </note>
  </front>
  <middle>
    <?line 132?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>AI agents are autonomous software systems that interact with other agents
and tools to complete tasks. As agent communication expands across the
Internet, it requires: verifiable agent identity independent of users,
capability discovery and collaboration across network boundaries,
multi-modal data exchange (text, audio, video) with session management,
and delegated authorization across agent chains.</t>
      <t>This document defines the Protocol for Agent Communication Exchange (PACE),
a session layer over Media over QUIC Transport (MOQT) <xref target="MoQ-TRANSPORT"/>.
PACE enables diverse agent protocols to leverage MOQT's publish/subscribe
model, relay-based fan-out, built-in prioritization, and efficient
multiplexing over QUIC.</t>
      <section anchor="design-goals">
        <name>Design Goals</name>
        <ol spacing="normal" type="1"><li>
            <t><strong>Session Lifecycle</strong>: Timed sessions with establishment, update,
suspension, and termination.</t>
          </li>
          <li>
            <t><strong>Multi-Modal</strong>: Concurrent real-time media, chat, and operations.</t>
          </li>
          <li>
            <t><strong>Scalable</strong>: Relay-based fan-out with failure recovery.</t>
          </li>
          <li>
            <t><strong>Flexible Topologies</strong>: Point-to-point and point-to-multipoint.</t>
          </li>
          <li>
            <t><strong>Agent Identity</strong>: Authentication independent of user identity with
delegated authorization.</t>
          </li>
          <li>
            <t><strong>Protocol Agnostic</strong>: Usable by A2A, MCP, and custom protocols.</t>
          </li>
        </ol>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>The PACE architecture layers as follows:</t>
      <figure anchor="_figure-arch">
        <name>PACE Architecture</name>
        <artwork><![CDATA[
┌─────────────────────────────────────────────────────────┐
│  Application Protocols (A2A, MCP, AutoGen, Custom)      │
├─────────────────────────────────────────────────────────┤
│  PACE: Sessions │ Identity │ Auth │ Multi-Modal │ QoS   │
├─────────────────────────────────────────────────────────┤
│  MOQT: Pub/Sub │ Namespace Routing │ Relay Caching      │
├─────────────────────────────────────────────────────────┤
│  QUIC / WebTransport: TLS 1.3 │ Mux │ Migration         │
└─────────────────────────────────────────────────────────┘
]]></artwork>
      </figure>
      <section anchor="why-moqt">
        <name>Why MOQT?</name>
        <t>Media over QUIC Transport (MOQT) <xref target="MoQ-TRANSPORT"/> is a publish/subscribe
protocol over QUIC. PACE adopts MOQT as its transport substrate for the
following reasons:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Native pub/sub</strong> — Agents publish and subscribe without polling or
long-lived HTTP connections; the relay handles fan-out</t>
          </li>
          <li>
            <t><strong>Prefix-based routing</strong> — SUBSCRIBE_TRACKS on an agent's prefix
automatically delivers all current and future tracks, enabling session
notification without dedicated signaling channels</t>
          </li>
          <li>
            <t><strong>Relay architecture</strong> — No direct peer-to-peer connections required;
relays provide NAT traversal and load balancing out of the box</t>
          </li>
          <li>
            <t><strong>Multi-party fan-out</strong> — A single PUBLISH reaches all subscribers via
relay; no application-level broadcast logic needed for multi-agent
collaboration</t>
          </li>
          <li>
            <t><strong>Relay caching</strong> — Late-joining agents receive cached objects, enabling
session recovery and mid-conversation catch-up without peer
retransmission</t>
          </li>
          <li>
            <t><strong>Per-object priority</strong> — Real-time audio/video, control messages, and
bulk transfers coexist on the same session with differentiated QoS
(0-255 priority scale)</t>
          </li>
          <li>
            <t><strong>Multiple latency spectrums</strong> — A single MOQT session supports
sub-100ms real-time media, sub-second interactive messaging, and
best-effort bulk transfers simultaneously, matching the diverse
communication needs of AI agents</t>
          </li>
          <li>
            <t><strong>Scalability</strong> — Relays <bcp14>MAY</bcp14> be organized hierarchically for geographic
distribution, enabling thousands of agents across regions without
requiring each agent to maintain direct connections to all peers</t>
          </li>
          <li>
            <t><strong>QUIC foundation</strong> — Connection migration (WiFi to cellular),
multiplexed streams, 0-RTT resumption, and mandatory TLS 1.3</t>
          </li>
          <li>
            <t><strong>Namespace-level access control</strong> — Maps directly to agent
authorization scopes; relays enforce who can publish/subscribe to
which namespaces</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="moqt-mapping">
      <name>MOQT Mapping</name>
      <section anchor="namespace">
        <name>Namespace Organization</name>
        <t>PACE uses MOQT's hierarchical namespace for routing, isolation, and
multiplexing. MOQT addresses content using a namespace tuple (an ordered
sequence of string fields) combined with a track name. PACE organizes
all communication into three namespace scopes defined in the following
subsections.</t>
        <section anchor="agent-namespace">
          <name>Agent Namespace</name>
          <artwork><![CDATA[
  ("pace", "agents", {agent-id}) -- {track}
]]></artwork>
          <t>This is an agent's persistent identity on the relay network. Each agent
publishes the following tracks:</t>
          <ul spacing="normal">
            <li>
              <t><tt>"card"</tt> — Agent Card containing capabilities, identity claims,
authentication schemes, and MOQT connectivity information</t>
            </li>
          </ul>
          <t>The common prefix <tt>("pace", "agents")</tt> enables SUBSCRIBE_NAMESPACE-based
discovery of all agents on the network. Interested agents then issue
SUBSCRIBE_TRACKS on a discovered agent's prefix to receive all current
and future tracks published by that agent. See <xref target="agent-discovery"/> for
the complete discovery flow.</t>
        </section>
        <section anchor="session-communication-namespace">
          <name>Session Communication Namespace</name>
          <artwork><![CDATA[
  ("pace", "agents", {agent-id}, {session-id}) -- {track}
]]></artwork>
          <t>A session-id is a shared UUID representing a collaboration context — it
is not scoped to or owned by any single agent. Any agent can generate a
session-id to initiate a collaboration. When multiple agents participate
in a session, they each publish tracks under their own agent namespace
using the same session-id. Agents that have issued SUBSCRIBE_TRACKS on
a peer's agent prefix are automatically notified (via relay-forwarded
PUBLISH messages) when that peer creates new session tracks.</t>
          <t>Each agent in a session publishes the following tracks:</t>
          <ul spacing="normal">
            <li>
              <t><tt>"ctrl"</tt> — Session lifecycle messages (SESSION_INIT, SESSION_ACCEPT,
SESSION_UPDATE, SESSION_CLOSE)</t>
            </li>
            <li>
              <t><tt>"chat"</tt> — Chat messages and streaming LLM output</t>
            </li>
            <li>
              <t><tt>"audio"</tt> — Real-time audio stream</t>
            </li>
            <li>
              <t><tt>"video"</tt> — Real-time video stream</t>
            </li>
            <li>
              <t><tt>"ops/{req-id}"</tt> — Request/response operations (one track per request)</t>
            </li>
          </ul>
          <t>Protocol bindings add prefix-scoped tracks to enable multiple protocols
to operate concurrently within a single session without track name
collisions:</t>
          <ul spacing="normal">
            <li>
              <t><tt>"a2a/{category}/{id}"</tt> — A2A protocol operations, where <tt>{category}</tt>
is the operation type (e.g., <tt>request</tt>, <tt>response</tt>, <tt>task</tt>, <tt>stream</tt>)
and <tt>{id}</tt> is the request or task identifier</t>
            </li>
            <li>
              <t><tt>"mcp/{category}/{id}"</tt> — MCP protocol operations, where <tt>{category}</tt>
is the primitive type (e.g., <tt>tools</tt>, <tt>resources</tt>, <tt>prompts</tt>) and
<tt>{id}</tt> is the tool name or resource URI</t>
            </li>
            <li>
              <t><tt>"ext/{proto}/{category}/{id}"</tt> — Custom protocol extensions, where
<tt>{proto}</tt> identifies the protocol</t>
            </li>
          </ul>
          <t>For example, the MCP over MOQT specification <xref target="MCP-MOQT"/> defines
tracks like <tt>(mcp, {session-id}, tools) -- ({tool-name})</tt>; within PACE,
this maps to track name <tt>"mcp/tools/{tool-name}"</tt> under the agent's
session namespace, preserving the MCP semantics while coexisting with
A2A or other protocol tracks in the same session.</t>
          <t>See <xref target="example-workflows"/> for concrete examples of agent-to-agent,
agent-to-tool, and multi-agent collaboration workflows.</t>
        </section>
        <section anchor="session-discovery-namespace">
          <name>Session Discovery Namespace</name>
          <artwork><![CDATA[
  ("pace", "discovery", "sessions", {agent-id}) -- {session-id}
]]></artwork>
          <t>Agents advertise their active sessions on this top-level discovery
namespace so that other agents can find sessions to join. Each agent
publishes one track per active session (the track name is the
session-id). Each object on a session track contains:</t>
          <ul spacing="normal">
            <li>
              <t><tt>session-id</tt> — The shared session UUID</t>
            </li>
            <li>
              <t><tt>description</tt> — Human-readable purpose of the session</t>
            </li>
            <li>
              <t><tt>participants</tt> — List of agent-ids currently in the session</t>
            </li>
            <li>
              <t><tt>modalities</tt> — Supported data modalities (text, audio, video, etc.)</t>
            </li>
          </ul>
          <t>Agents discover active sessions by issuing SUBSCRIBE_NAMESPACE on
<tt>("pace", "discovery", "sessions")</tt>.</t>
        </section>
      </section>
      <section anchor="transport-binding">
        <name>Transport Binding</name>
        <section anchor="connection-establishment">
          <name>Connection Establishment</name>
          <t>Agents <bcp14>MUST</bcp14> establish either a native QUIC connection or a WebTransport
<xref target="RFC9297"/> session as defined in <xref target="MoQ-TRANSPORT"/>. For native QUIC
connections, agents <bcp14>MUST</bcp14> use the ALPN value "moqt". For WebTransport,
the protocol is negotiated using the "WT-Available-Protocols" mechanism
as specified in <xref target="MoQ-TRANSPORT"/>.</t>
          <t>Upon establishing the MOQT session (CLIENT_SETUP / SERVER_SETUP), an
agent performs the bootstrap sequence to make itself discoverable:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Announce</strong>: PUBLISH_NAMESPACE on <tt>("pace", "agents", {agent-id})</tt></t>
            </li>
            <li>
              <t><strong>Publish Agent Card</strong>: PUBLISH on track <tt>"card"</tt> under its namespace</t>
            </li>
            <li>
              <t><strong>Discover peers</strong>: SUBSCRIBE_NAMESPACE on <tt>("pace", "agents")</tt> to
learn about other agents on the network</t>
            </li>
          </ol>
          <t>See <xref target="agent-discovery"/> for the full discovery flow that follows
bootstrap.</t>
        </section>
        <section anchor="track-organization">
          <name>Track Organization</name>
          <t>Each agent publishes exclusively on its own tracks. Other agents
issue SUBSCRIBE_TRACKS on a peer's agent prefix to receive all tracks
published by that peer, including session tracks. The relay handles
fan-out to all subscribers via prefix matching. This per-agent
publishing model ensures clear ownership and enables relay caching.</t>
          <t>Namespace structure and track names are defined in <xref target="namespace"/>.</t>
        </section>
        <section anchor="message-serialization">
          <name>Message Serialization</name>
          <t>Protocol messages are encapsulated within MOQT objects using a PACE
envelope prepended to the payload:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">Size</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>version</tt></td>
                <td align="left">1 byte</td>
                <td align="left">PACE envelope version (currently 0x01)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>flags</tt></td>
                <td align="left">1 byte</td>
                <td align="left">0x01=compressed, 0x02=fragmented, 0x04=encrypted</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>length</tt></td>
                <td align="left">varint</td>
                <td align="left">Length of the serialized protocol message</td>
              </tr>
              <tr>
                <td align="left">payload</td>
                <td align="left">variable</td>
                <td align="left">Serialized protocol message</td>
              </tr>
            </tbody>
          </table>
          <t>Bindings <bcp14>SHOULD</bcp14> preserve native message formats. For example, A2A
messages retain their JSON-RPC 2.0 format; the PACE envelope wraps
the serialized JSON bytes.</t>
        </section>
      </section>
    </section>
    <section anchor="session-management">
      <name>Session Management</name>
      <t>A PACE session represents a logical communication context between two or
more agents. Sessions provide lifetime management, context preservation,
and failure recovery. All session operations use the namespace structure
defined in <xref target="namespace"/>.</t>
      <section anchor="session-lifecycle">
        <name>Session Lifecycle</name>
        <t>Sessions progress through defined states:</t>
        <figure anchor="_figure-session-states">
          <name>Session State Machine</name>
          <artwork><![CDATA[
IDLE ──establish──▶ PENDING ──accept──▶ ACTIVE ◀──update──┐
  ◀──reject──────────┘                    │  │             │
                                     suspend  terminate    │
                                          ▼       │       │
                                    SUSPENDED     ▼       │
                                     │  │       CLOSED ◀──┘
                                     │  └resume──▶ ACTIVE
                                     └─timeout──▶ CLOSED
]]></artwork>
        </figure>
        <dl>
          <dt>IDLE:</dt>
          <dd>
            <t>No session exists. Agent is available to initiate or accept sessions.</t>
          </dd>
          <dt>PENDING:</dt>
          <dd>
            <t>Establishment in progress (negotiation, authentication).</t>
          </dd>
          <dt>ACTIVE:</dt>
          <dd>
            <t>Session established; data exchange occurring. May be updated.</t>
          </dd>
          <dt>SUSPENDED:</dt>
          <dd>
            <t>Temporarily inactive, state preserved. Transitions to CLOSED on timeout.</t>
          </dd>
          <dt>CLOSED:</dt>
          <dd>
            <t>Session terminated. Resources released.</t>
          </dd>
        </dl>
      </section>
      <section anchor="session-establishment">
        <name>Session Establishment</name>
        <t>Session establishment creates a shared communication context between
two or more agents. Its goals are to negotiate capabilities and
modalities, exchange and verify identity tokens, and set up the MOQT
subscriptions so both agents can publish and receive messages.</t>
        <t><strong>Prerequisite:</strong> Both agents must have completed discovery Phase 2
(<xref target="agent-discovery"/>) — meaning they have issued SUBSCRIBE_TRACKS on
each other's agent prefix. This enables the relay to forward PUBLISH
messages between them automatically via prefix matching.</t>
        <t>The following steps describe how Agent A (initiator) establishes a
session with Agent B (responder):</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>A generates a session-id</strong> (UUID).</t>
          </li>
          <li>
            <t><strong>A publishes SESSION_INIT</strong> — A issues PUBLISH on
<tt>("pace","agents","agent-a",{session-id}) -- "ctrl"</tt> containing
proposed session parameters (target=agent-b, capabilities,
modalities, identity token, supported protocols).</t>
          </li>
          <li>
            <t><strong>Relay forwards PUBLISH to B</strong> — B's existing SUBSCRIBE_TRACKS on
<tt>("pace","agents","agent-a")</tt> prefix-matches the new track. The
relay forwards the PUBLISH message to B.</t>
          </li>
          <li>
            <t><strong>B accepts the PUBLISH</strong> — this implicitly subscribes B to A's
ctrl track. B receives the SESSION_INIT object, inspects the
parameters, and decides whether to accept.</t>
          </li>
          <li>
            <t><strong>B publishes SESSION_ACCEPT</strong> — B issues PUBLISH on
<tt>("pace","agents","agent-b",{session-id}) -- "ctrl"</tt> containing
accepted capabilities and modalities.</t>
          </li>
          <li>
            <t><strong>Relay forwards PUBLISH to A</strong> — A's existing SUBSCRIBE_TRACKS on
<tt>("pace","agents","agent-b")</tt> prefix-matches. The relay forwards
the PUBLISH message to A.</t>
          </li>
          <li>
            <t><strong>A accepts the PUBLISH</strong> — A receives the SESSION_ACCEPT object.</t>
          </li>
          <li>
            <t><strong>Session is ACTIVE</strong> — both agents can now publish additional
tracks under their respective session namespaces. The relay
forwards all new PUBLISH messages to the peer via the existing
SUBSCRIBE_TRACKS prefix match.</t>
          </li>
        </ol>
        <section anchor="session-parameters">
          <name>Session Parameters</name>
          <t>The SESSION_INIT object contains:</t>
          <ul spacing="normal">
            <li>
              <t><tt>session-id</tt>: Globally unique session identifier (UUID)</t>
            </li>
            <li>
              <t><tt>session-type</tt>: Short-lived (bounded duration) or long-lived (indefinite)</t>
            </li>
            <li>
              <t><tt>session-timeout</tt>: Maximum idle duration before automatic termination</t>
            </li>
            <li>
              <t><tt>max-participants</tt>: Maximum number of agents in the session</t>
            </li>
            <li>
              <t><tt>supported-modalities</tt>: Bitmask of data modalities the agent can handle</t>
            </li>
            <li>
              <t><tt>identity-token</tt>: Agent identity token (see <xref target="identity-discovery"/>)</t>
            </li>
            <li>
              <t><tt>supported-protocols</tt>: Application protocols offered (A2A, MCP, etc.)</t>
            </li>
          </ul>
        </section>
        <section anchor="moqt-setup-extensions">
          <name>MOQT Setup Extensions</name>
          <t>PACE defines the following MOQT setup parameters negotiated during
CLIENT_SETUP/SERVER_SETUP:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Parameter</th>
                <th align="left">ID</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">pace-version</td>
                <td align="left">0x50414301</td>
                <td align="left">PACE protocol version</td>
              </tr>
              <tr>
                <td align="left">agent-identity</td>
                <td align="left">0x50414302</td>
                <td align="left">Agent identity token or certificate reference</td>
              </tr>
              <tr>
                <td align="left">supported-protocols</td>
                <td align="left">0x50414303</td>
                <td align="left">Bitmask of application protocols (A2A=0x01, MCP=0x02)</td>
              </tr>
              <tr>
                <td align="left">auth-schemes</td>
                <td align="left">0x50414304</td>
                <td align="left">Supported authentication schemes</td>
              </tr>
              <tr>
                <td align="left">session-capabilities</td>
                <td align="left">0x50414305</td>
                <td align="left">Session capability flags</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="timed-sessions">
        <name>Timed Sessions</name>
        <t>Sessions are either short-lived (bounded duration, auto-terminates on
completion or timeout) or long-lived (indefinite, survives idle periods
via SUSPENDED state). The <tt>session-timeout</tt> parameter defines the
maximum idle period before automatic transition to CLOSED.</t>
      </section>
      <section anchor="session-update">
        <name>Session Update</name>
        <t>Active sessions can be updated by publishing a SESSION_UPDATE message
on the control track. Updates can modify modalities, participants,
authorization scopes, or timeout. All participants <bcp14>MUST</bcp14> acknowledge
the update before new parameters take effect.</t>
      </section>
      <section anchor="session-recovery">
        <name>Session Recovery</name>
        <t>PACE provides graceful recovery from network and server failures:</t>
        <dl>
          <dt>QUIC Connection Migration:</dt>
          <dd>
            <t>Sessions survive network path changes (e.g., WiFi to cellular)
via QUIC's connection ID mechanism without re-establishing the
MOQT session.</t>
          </dd>
          <dt>Relay Caching:</dt>
          <dd>
            <t>Relays cache recent objects, allowing reconnecting agents to receive
missed messages without requiring peer retransmission.</t>
          </dd>
          <dt>Session Resumption:</dt>
          <dd>
            <t>Agents resume SUSPENDED sessions by reconnecting to the relay,
re-issuing PUBLISH_NAMESPACE and SUBSCRIBE_TRACKS on their agent
prefix. The relay delivers cached objects from the point of
disconnection.</t>
          </dd>
          <dt>State Checkpointing:</dt>
          <dd>
            <t>Agents <bcp14>SHOULD</bcp14> periodically publish state checkpoints on a dedicated
track, enabling recovery after relay failures.</t>
          </dd>
        </dl>
      </section>
      <section anchor="session-termination">
        <name>Session Termination</name>
        <t>Sessions terminate explicitly via SESSION_CLOSE on the control track or
implicitly via timeout. Upon termination, all subscriptions are
cancelled, pending operations receive cancellation notifications, and
session resources are released after a configurable grace period.</t>
      </section>
    </section>
    <section anchor="identity-discovery">
      <name>Agent Identity and Discovery</name>
      <section anchor="agent-identity-model">
        <name>Agent Identity Model</name>
        <t>PACE authenticates agents independently of the users they represent.
This enables independent revocation, capability-scoped permissions,
audit trails for agent actions, and delegation chains.</t>
        <section anchor="agent-identity-token">
          <name>Agent Identity Token</name>
          <t>Each agent presents an identity token during session establishment.
The token format is based on JWT <xref target="RFC7519"/> with agent-specific claims:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Claim</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>agent-id</tt></td>
                <td align="left">Globally unique agent identifier (UUID)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>issuer</tt></td>
                <td align="left">Identity provider that issued the token</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>subject</tt></td>
                <td align="left">User or organization the agent serves</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>capabilities</tt></td>
                <td align="left">Agent capability descriptors</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>scopes</tt></td>
                <td align="left">Authorized operation scopes</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>issued-at</tt></td>
                <td align="left">Token issuance timestamp</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>expires-at</tt></td>
                <td align="left">Token expiration timestamp</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>delegation-chain</tt></td>
                <td align="left">Parent agent references (see below)</td>
              </tr>
            </tbody>
          </table>
          <t>The token is cryptographically signed by the issuing authority.
Agents <bcp14>MAY</bcp14> use the SD-JWT based identity mechanism defined in
<xref target="SD-AGENT"/> to support selective disclosure of identity attributes
during session establishment.</t>
        </section>
        <section anchor="delegation-chains">
          <name>Delegation Chains</name>
          <t>When an agent acts on behalf of another agent, the identity token
includes a <tt>delegation-chain</tt> field tracing the authorization path
(e.g., User → Coordinator → Researcher → Tool). Each entry records
the granting agent and the scope granted. Receiving agents verify
the complete chain to ensure each link has appropriate authorization.</t>
        </section>
      </section>
      <section anchor="agent-discovery">
        <name>Agent Discovery</name>
        <t>Agent discovery uses MOQT's namespace operations to find agents and
follow their activity. Discovery operates on the Agent Namespace scope
defined in <xref target="namespace"/>. Each agent is identified by a globally unique
agent-id (UUID), verifiable via the Agent Card (see <xref target="agent-card"/>).</t>
        <section anchor="phase-1-discovering-agents-on-the-network">
          <name>Phase 1: Discovering Agents on the Network</name>
          <ol spacing="normal" type="1"><li>
              <t>Each agent announces its presence by issuing PUBLISH_NAMESPACE on
<tt>("pace","agents",{agent-id})</tt>.</t>
            </li>
            <li>
              <t>Agents discover peers by issuing SUBSCRIBE_NAMESPACE on the common
prefix <tt>("pace","agents")</tt>.</t>
            </li>
            <li>
              <t>The relay sends NAMESPACE messages to subscribers for each matching
PUBLISH_NAMESPACE, enabling agents to learn about each other without
prior knowledge.</t>
            </li>
          </ol>
          <t>If an agent-id is known out-of-band (e.g., from a registry or URL),
agents <bcp14>MAY</bcp14> skip Phase 1 and proceed directly to Phase 2.</t>
        </section>
        <section anchor="phase-2-following-an-agent">
          <name>Phase 2: Following an Agent</name>
          <t>Once Agent B knows Agent A's namespace prefix, B issues SUBSCRIBE_TRACKS
on <tt>("pace","agents","agent-a")</tt>. This establishes an ongoing
relationship where the relay forwards all PUBLISH messages from A that
match this prefix — including A's Agent Card and any future session
tracks A creates.</t>
          <ol spacing="normal" type="1"><li>
              <t>B issues SUBSCRIBE_TRACKS on <tt>("pace","agents","agent-a")</tt>.</t>
            </li>
            <li>
              <t>The relay forwards A's PUBLISH for the <tt>"card"</tt> track to B.</t>
            </li>
            <li>
              <t>B accepts the PUBLISH — this implicitly subscribes B to the card
track and B receives A's Agent Card objects.</t>
            </li>
            <li>
              <t>When A later publishes session tracks under
<tt>("pace","agents","agent-a",{session-id})</tt>, the relay automatically
forwards those PUBLISH messages to B (prefix match), enabling B to
discover and join sessions without any explicit notification mechanism.</t>
            </li>
          </ol>
          <t>A does the same for B by issuing SUBSCRIBE_TRACKS on
<tt>("pace","agents","agent-b")</tt>.</t>
        </section>
        <section anchor="agent-card">
          <name>Agent Card</name>
          <t>Each agent publishes an Agent Card on track <tt>"card"</tt> under its namespace
<tt>("pace","agents",{agent-id})</tt>. When capabilities change, the agent
publishes a new object (incrementing the group). Receivers <bcp14>SHOULD</bcp14> verify
the card's signature and expiration before acting on its claims.</t>
          <t>All Agent Cards <bcp14>MUST</bcp14> include:</t>
          <ul spacing="normal">
            <li>
              <t>Agent identifier (UUID) and display name</t>
            </li>
            <li>
              <t>Supported modalities and protocols</t>
            </li>
            <li>
              <t>Authentication schemes</t>
            </li>
            <li>
              <t>Identity claims (issuer, public key, expiration)</t>
            </li>
          </ul>
          <t>The card format is protocol-specific. For A2A agents, see
<xref target="a2a-agent-card"/>. Agent Cards <bcp14>MAY</bcp14> use selective disclosure
<xref target="SD-AGENT"/> to reveal only claims necessary for a given interaction.</t>
        </section>
      </section>
    </section>
    <section anchor="data-exchange">
      <name>Multi-Modal Data Exchange</name>
      <t>PACE supports concurrent exchange of multiple data modalities within a
single session, each with appropriate quality of service.</t>
      <section anchor="modality-types">
        <name>Modality Types</name>
        <t>PACE defines the following data modality classes:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Modality</th>
              <th align="left">Latency</th>
              <th align="left">Examples</th>
              <th align="left">Delivery</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Real-time</td>
              <td align="left">&lt; 100ms</td>
              <td align="left">Voice, video, screen share</td>
              <td align="left">Continuous stream</td>
            </tr>
            <tr>
              <td align="left">Semi-real-time</td>
              <td align="left">&lt; 1s</td>
              <td align="left">Chat messages, streaming LLM output</td>
              <td align="left">Ordered objects</td>
            </tr>
            <tr>
              <td align="left">Non-real-time</td>
              <td align="left">Best effort</td>
              <td align="left">Tool calls, file transfers, context</td>
              <td align="left">Reliable delivery</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="channel-architecture">
        <name>Channel Architecture</name>
        <t>Each modality maps to dedicated MOQT tracks within the Session
Communication Namespace (<xref target="namespace"/>). Different modalities are
isolated by track name while sharing session context and authorization.</t>
      </section>
      <section anchor="priority-and-quality-of-service">
        <name>Priority and Quality of Service</name>
        <t>MOQT's 0-255 priority scale enables differentiated treatment of messages
based on urgency and modality. PACE defines the following priority tiers:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Priority Range</th>
              <th align="left">Category</th>
              <th align="left">Use</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0-15</td>
              <td align="left">Critical Control</td>
              <td align="left">Session termination, emergency cancel</td>
            </tr>
            <tr>
              <td align="left">16-31</td>
              <td align="left">Urgent Control</td>
              <td align="left">Error notifications, auth revocation</td>
            </tr>
            <tr>
              <td align="left">32-63</td>
              <td align="left">Real-time Media</td>
              <td align="left">Voice/video frames</td>
            </tr>
            <tr>
              <td align="left">64-95</td>
              <td align="left">Interactive</td>
              <td align="left">Chat messages, streaming LLM tokens</td>
            </tr>
            <tr>
              <td align="left">96-127</td>
              <td align="left">Standard Operations</td>
              <td align="left">Tool calls, request/response</td>
            </tr>
            <tr>
              <td align="left">128-159</td>
              <td align="left">Discovery</td>
              <td align="left">Capability cards, agent advertisements</td>
            </tr>
            <tr>
              <td align="left">160-191</td>
              <td align="left">Background</td>
              <td align="left">Telemetry, non-critical notifications</td>
            </tr>
            <tr>
              <td align="left">192-255</td>
              <td align="left">Bulk Transfer</td>
              <td align="left">File transfers, context exchange</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="request-response">
        <name>Request/Response Pattern</name>
        <t>Request/response interactions use coordinated publish operations.
Agent A publishes a request object on its own track
<tt>("pace","agents","agent-a",{sid}) -- "ops/{req-id}"</tt>. Agent B, which
has subscribed to A's session namespace, receives the request, processes
it, and publishes the response on its own corresponding track
<tt>("pace","agents","agent-b",{sid}) -- "ops/{req-id}"</tt>. Agent A receives
the response through its subscription to B's session namespace.</t>
        <t>For a detailed example of request/response over MOQT tracks, see
<xref target="MCP-MOQT"/> which defines this pattern for MCP tool invocations.</t>
      </section>
      <section anchor="streaming">
        <name>Streaming Pattern</name>
        <t>Long-running operations produce incremental results as MOQT objects
organized into groups representing execution phases. The server advances
to a new group at each phase transition (e.g., initialization, progress,
completion). Multiple objects within a group represent incremental data
for that phase.</t>
        <t>Late-joining subscribers receive the latest complete group from relay
cache, enabling mid-operation catch-up without replaying the full
history.</t>
      </section>
      <section anchor="real-time-media-exchange">
        <name>Real-Time Media Exchange</name>
        <t>Audio and video streams use dedicated tracks (<tt>"audio"</tt>, <tt>"video"</tt>)
with descending group order (newest-first) and high priority (32-63),
ensuring media frames preempt lower-priority data under congestion.</t>
      </section>
    </section>
    <section anchor="topologies">
      <name>Communication Topologies</name>
      <t>PACE supports multiple communication topologies through MOQT's relay
fan-out:</t>
      <dl>
        <dt>Point-to-Point:</dt>
        <dd>
          <t>Two agents publish and subscribe to each other's session tracks.
Used for tool invocation, task delegation, and bilateral collaboration.</t>
        </dd>
        <dt>Point-to-Multipoint (Fan-Out):</dt>
        <dd>
          <t>One agent publishes; multiple agents subscribe. The relay handles
fan-out without the publisher maintaining per-subscriber state.
Used for broadcast notifications and shared context distribution.</t>
        </dd>
        <dt>Multi-Party:</dt>
        <dd>
          <t>All participants publish on their own tracks and subscribe to
each other's tracks within the same session-id. Adding a
participant requires publishing SESSION_JOIN on the control track;
existing participants receive the notification and subscribe to
the new agent's session namespace.</t>
        </dd>
        <dt>Hierarchical Teams:</dt>
        <dd>
          <t>A coordinator creates child PACE sessions to delegate subtasks.
Each level operates as a separate session with narrowed authorization
scope. Delegation chains (<xref target="identity-discovery"/>) maintain an
auditable path from the original user authorization.</t>
        </dd>
      </dl>
    </section>
    <section anchor="protocol-bindings">
      <name>Protocol Bindings</name>
      <t>This section defines protocol bindings that map application protocol
semantics to MOQT. Each binding operates within PACE sessions, using
the Session Communication Namespace (<xref target="namespace"/>) and channel
architecture (<xref target="data-exchange"/>).</t>
      <section anchor="binding-architecture">
        <name>Binding Architecture</name>
        <t>Protocol bindings sit between application protocols and the PACE session
layer. Each binding defines:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Protocol Identifier</strong>: Unique string used as the track name prefix</t>
          </li>
          <li>
            <t><strong>Namespace Pattern</strong>: How operations map to track names</t>
          </li>
          <li>
            <t><strong>Message Serialization</strong>: Encoding within MOQT object payloads</t>
          </li>
          <li>
            <t><strong>Operation Mapping</strong>: Protocol operations to MOQT primitives</t>
          </li>
          <li>
            <t><strong>Priority Mapping</strong>: Message types to PACE priority tiers</t>
          </li>
        </ul>
        <t>Protocols use distinct track name prefixes within PACE sessions:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Protocol</th>
              <th align="left">Track Prefix</th>
              <th align="left">Example Full Path</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">A2A</td>
              <td align="left">
                <tt>a2a/</tt></td>
              <td align="left">
                <tt>("pace","agents","agent-a","s1") -- "a2a/task/t1"</tt></td>
            </tr>
            <tr>
              <td align="left">MCP</td>
              <td align="left">
                <tt>mcp/</tt></td>
              <td align="left">
                <tt>("pace","agents","fs-server","s1") -- "mcp/tools/read"</tt></td>
            </tr>
            <tr>
              <td align="left">AutoGen</td>
              <td align="left">
                <tt>autogen/</tt></td>
              <td align="left">
                <tt>("pace","agents","rt1","s1") -- "autogen/message/conv1"</tt></td>
            </tr>
            <tr>
              <td align="left">Generic</td>
              <td align="left">
                <tt>ext/{proto}/</tt></td>
              <td align="left">
                <tt>("pace","agents","agent-a","s1") -- "ext/myproto/rpc/call"</tt></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="a2a-binding">
        <name>A2A Binding</name>
        <t>The Agent-to-Agent Protocol <xref target="A2A"/> binding maps A2A task delegation
and collaboration to MOQT primitives using the <tt>a2a/</tt> category prefix.</t>
        <section anchor="namespace-structure">
          <name>Namespace Structure</name>
          <t>A2A operates within a PACE session. Each agent publishes A2A messages
on tracks under its own session namespace:</t>
          <artwork><![CDATA[
Namespace: ("pace", "agents", {agent-id}, {session-id})
Tracks:    "a2a/{subcategory}/{identifier}"
]]></artwork>
          <t>A2A track name patterns:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Track Pattern</th>
                <th align="left">Purpose</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>a2a/request/{request-id}</tt></td>
                <td align="left">Outbound requests</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>a2a/response/{request-id}</tt></td>
                <td align="left">Request responses</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>a2a/stream/{request-id}</tt></td>
                <td align="left">Streaming operations</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>a2a/task/{task-id}</tt></td>
                <td align="left">Task lifecycle</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>a2a/notify/{type}</tt></td>
                <td align="left">Push notifications</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="a2a-operation-mapping">
          <name>A2A Operation Mapping</name>
          <t>The following table maps A2A v0.3.0 operations to MOQT primitives:</t>
          <table>
            <thead>
              <tr>
                <th align="left">A2A Operation</th>
                <th align="left">MOQT Mechanism</th>
                <th align="left">Track Name</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>SendMessage</tt></td>
                <td align="left">PUBLISH + OBJECT</td>
                <td align="left">
                  <tt>a2a/request/{req-id}</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>SendStreamingMessage</tt></td>
                <td align="left">PUBLISH + multiple OBJECTs</td>
                <td align="left">
                  <tt>a2a/stream/{req-id}</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>GetTask</tt></td>
                <td align="left">SUBSCRIBE + OBJECT</td>
                <td align="left">
                  <tt>a2a/task/{task-id}</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>ListTasks</tt></td>
                <td align="left">SUBSCRIBE_NAMESPACE</td>
                <td align="left">(discover <tt>a2a/task/*</tt> tracks)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>CancelTask</tt></td>
                <td align="left">OBJECT on ctrl track</td>
                <td align="left">
                  <tt>ctrl</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>SubscribeToTask</tt></td>
                <td align="left">SUBSCRIBE (ongoing)</td>
                <td align="left">
                  <tt>a2a/task/{task-id}</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>GetExtendedAgentCard</tt></td>
                <td align="left">SUBSCRIBE + OBJECT</td>
                <td align="left">Agent's <tt>card</tt> track</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>SetPushNotificationConfig</tt></td>
                <td align="left">PUBLISH + OBJECT</td>
                <td align="left">
                  <tt>a2a/notify/config</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>GetPushNotificationConfig</tt></td>
                <td align="left">SUBSCRIBE + OBJECT</td>
                <td align="left">
                  <tt>a2a/notify/config</tt></td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="message-format">
          <name>Message Format</name>
          <t>A2A messages are serialized as JSON-RPC 2.0 within MOQT objects,
preserving A2A's native format. The PACE envelope wraps the JSON bytes:</t>
          <sourcecode type="json"><![CDATA[
{
  "jsonrpc": "2.0",
  "method": "message/send",
  "params": {
    "message": {
      "role": "user",
      "parts": [{"kind": "text", "text": "Hello agent"}]
    }
  },
  "id": "req-001"
}
]]></sourcecode>
        </section>
        <section anchor="priority-mapping">
          <name>Priority Mapping</name>
          <table>
            <thead>
              <tr>
                <th align="left">A2A Message Type</th>
                <th align="left">MOQT Priority Range</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Cancel/Error</td>
                <td align="left">0-31</td>
                <td align="left">Task cancellation, critical errors</td>
              </tr>
              <tr>
                <td align="left">SendMessage response</td>
                <td align="left">32-63</td>
                <td align="left">Responses requiring immediate delivery</td>
              </tr>
              <tr>
                <td align="left">SendMessage request</td>
                <td align="left">64-95</td>
                <td align="left">Normal request messages</td>
              </tr>
              <tr>
                <td align="left">Task status updates</td>
                <td align="left">96-127</td>
                <td align="left">Incremental task state changes</td>
              </tr>
              <tr>
                <td align="left">Streaming artifacts</td>
                <td align="left">96-127</td>
                <td align="left">Streaming result data</td>
              </tr>
              <tr>
                <td align="left">Discovery (Agent Card)</td>
                <td align="left">128-159</td>
                <td align="left">Agent card exchange</td>
              </tr>
              <tr>
                <td align="left">Push notifications</td>
                <td align="left">160-191</td>
                <td align="left">Asynchronous notifications</td>
              </tr>
              <tr>
                <td align="left">Background/bulk</td>
                <td align="left">192-255</td>
                <td align="left">Large file transfers, batch ops</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="streaming-support">
          <name>Streaming Support</name>
          <t>A2A streaming operations (SendStreamingMessage, task subscriptions) use
the streaming pattern defined in <xref target="streaming"/>. A2A streaming events map
to MOQT objects as follows:</t>
          <ul spacing="normal">
            <li>
              <t>Each streaming response creates a new MOQT group</t>
            </li>
            <li>
              <t>TaskStatusUpdateEvent (state changes) and TaskArtifactUpdateEvent
(output data) are individual objects within groups</t>
            </li>
            <li>
              <t>Groups represent execution phases (initialization, progress, completion)</t>
            </li>
          </ul>
        </section>
        <section anchor="a2a-agent-card">
          <name>A2A Agent Card with MOQT Extension</name>
          <t>When operating over PACE, the A2A Agent Card includes a <tt>moqt</tt> extension
block:</t>
          <sourcecode type="json"><![CDATA[
{
  "name": "research-assistant",
  "protocolVersion": "0.3.0",
  "capabilities": {"streaming": true, "pushNotifications": true},
  "skills": [{"id": "web-research", "name": "Web Research"}],
  "authentication": {"schemes": ["bearer", "oauth2"]},
  "moqt": {
    "relayEndpoint": "moqt://relay.example.com:4443",
    "webTransportEndpoint": "https://relay.example.com:4443/moqt",
    "namespace": ["pace", "agents", "research-assistant"],
    "supportedExtensions": ["pace-v1"],
    "maxConcurrentSubscriptions": 100,
    "cacheTTL": 300
  },
  "signature": "base64-encoded-ed25519-signature"
}
]]></sourcecode>
          <t>The <tt>moqt</tt> extension fields:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>relayEndpoint</tt></td>
                <td align="left">Native QUIC endpoint for the MOQT relay</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>webTransportEndpoint</tt></td>
                <td align="left">WebTransport endpoint (alternative connectivity)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>namespace</tt></td>
                <td align="left">Agent's namespace prefix as array</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>supportedExtensions</tt></td>
                <td align="left">MOQT/PACE extensions supported</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>maxConcurrentSubscriptions</tt></td>
                <td align="left">Maximum subscriptions the agent handles</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>cacheTTL</tt></td>
                <td align="left">Cache duration for the agent card (seconds)</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="mcp-binding">
        <name>MCP Binding</name>
        <t>The Model Context Protocol <xref target="MCP"/> binding enables tool and resource
access for agents. Within a PACE session, MCP tracks use the <tt>"mcp/"</tt>
prefix under the agent's session namespace:</t>
        <artwork><![CDATA[
Namespace: ("pace", "agents", {server-id}, {session-id})
Tracks:    "mcp/{subcategory}/{identifier}"
]]></artwork>
        <t>The complete MCP over MOQT specification — including track structure,
operation mapping, message serialization, Agent Skills architecture,
and relay support — is defined in <xref target="MCP-MOQT"/>. PACE adopts that
specification's track semantics, mapping its namespace tuples (e.g.,
<tt>(mcp, {session-id}, tools) -- ({tool-name})</tt>) into PACE track names
(e.g., <tt>"mcp/tools/{tool-name}"</tt>) as described in <xref target="namespace"/>.</t>
      </section>
      <section anchor="autogen-binding">
        <name>AutoGen Binding</name>
        <t>AutoGen <xref target="AutoGen"/> is a multi-agent conversation framework. This
binding maps AutoGen's conversation patterns to MOQT within PACE
sessions.</t>
        <section anchor="namespace-structure-1">
          <name>Namespace Structure</name>
          <artwork><![CDATA[
Namespace: ("pace", "agents", {runtime-id}, {session-id})
Tracks:    "autogen/{subcategory}/{identifier}"
]]></artwork>
          <t>Where <tt>runtime-id</tt> is the AutoGen runtime instance identifier.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Track Pattern</th>
                <th align="left">Purpose</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>autogen/message/{conversation-id}</tt></td>
                <td align="left">Inter-agent messages</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>autogen/control/{command}</tt></td>
                <td align="left">Runtime control</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>autogen/state/{state-key}</tt></td>
                <td align="left">Agent state sync</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>autogen/result/{task-id}</tt></td>
                <td align="left">Final outputs</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="message-format-1">
          <name>Message Format</name>
          <t>AutoGen messages are serialized as JSON with the following structure:</t>
          <sourcecode type="json"><![CDATA[
{
  "sender": "agent-name",
  "recipient": "agent-name | broadcast",
  "content": "message content or structured data",
  "metadata": {
    "conversation_id": "conv-123",
    "turn": 5,
    "role": "assistant | user | system"
  }
}
]]></sourcecode>
        </section>
        <section anchor="conversation-patterns">
          <name>Conversation Patterns</name>
          <t>AutoGen's conversation patterns map to MOQT as follows:</t>
          <dl>
            <dt>Two-Agent Chat:</dt>
            <dd>
              <t>Each agent publishes to their message track. Agents subscribe to
their conversation partner's track.</t>
            </dd>
            <dt>Group Chat:</dt>
            <dd>
              <t>A coordinator agent manages turn-taking. All agents subscribe to
the coordinator's broadcast track.</t>
            </dd>
            <dt>Nested Chat:</dt>
            <dd>
              <t>Hierarchical conversations use nested session-ids. An outer agent
creates a child PACE session for the inner conversation, linking
it to the parent via delegation chains.</t>
            </dd>
          </dl>
        </section>
        <section anchor="priority-mapping-1">
          <name>Priority Mapping</name>
          <table>
            <thead>
              <tr>
                <th align="left">AutoGen Message Type</th>
                <th align="left">MOQT Priority Range</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Termination signals</td>
                <td align="left">0-31</td>
              </tr>
              <tr>
                <td align="left">Human input requests</td>
                <td align="left">32-63</td>
              </tr>
              <tr>
                <td align="left">Agent responses</td>
                <td align="left">64-95</td>
              </tr>
              <tr>
                <td align="left">Function results</td>
                <td align="left">96-127</td>
              </tr>
              <tr>
                <td align="left">State updates</td>
                <td align="left">128-159</td>
              </tr>
              <tr>
                <td align="left">Logging/debug</td>
                <td align="left">160-255</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="jsonrpc-binding">
        <name>Generic JSON-RPC Binding</name>
        <t>This binding provides a baseline for custom protocols using JSON-RPC 2.0
messaging.</t>
        <section anchor="namespace-structure-2">
          <name>Namespace Structure</name>
          <artwork><![CDATA[
Namespace: ("pace", "agents", {agent-id}, {session-id})
Tracks:    "ext/{protocol-name}/{subcategory}/{identifier}"
]]></artwork>
          <t>Where <tt>protocol-name</tt> is the custom protocol identifier.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Track Pattern</th>
                <th align="left">Purpose</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>ext/{proto}/rpc/{request-id}</tt></td>
                <td align="left">Request/response</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>ext/{proto}/stream/{stream-id}</tt></td>
                <td align="left">Streaming data</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>ext/{proto}/event/{event-type}</tt></td>
                <td align="left">Async events</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="message-format-2">
          <name>Message Format</name>
          <t>Messages follow standard JSON-RPC 2.0:</t>
          <sourcecode type="json"><![CDATA[
{
  "jsonrpc": "2.0",
  "method": "protocol.method",
  "params": {},
  "id": "request-id"
}
]]></sourcecode>
        </section>
        <section anchor="extension-mechanism">
          <name>Extension Mechanism</name>
          <t>Custom protocols extend this binding by defining additional track
subcategories, custom message schemas within JSON-RPC params,
protocol-specific priorities, and custom MOQT extension headers.
Implementations <bcp14>SHOULD</bcp14> document extensions and <bcp14>MAY</bcp14> register them
in the IANA PACE Protocol Binding Registry.</t>
        </section>
      </section>
    </section>
    <section anchor="authorization">
      <name>Authorization and Security</name>
      <section anchor="authorization-model">
        <name>Authorization Model</name>
        <t>PACE implements a behavior-driven authorization model where access
tokens are scoped to specific operations an agent is permitted to
perform.</t>
        <section anchor="behavior-driven-scopes">
          <name>Behavior-Driven Scopes</name>
          <t>Scopes are structured as <tt>{domain}:{resource}:{action}:{constraints}</tt>,
bound to specific agent behaviors rather than roles. Constraints
support dynamic limits (time bounds, resource limits, counts).</t>
        </section>
        <section anchor="delegated-authorization">
          <name>Delegated Authorization</name>
          <t>When agents invoke other agents, each delegation narrows the scope.
Agent A (holding scope S) requests a sub-scope S' ⊂ S for Agent B.
Agent B can further narrow to S'' ⊂ S' for downstream tools.
Downstream agents cannot exceed their delegator's permissions.</t>
          <t>Authorization tokens are presented in SESSION_INIT and validated
including the full delegation chain. Tokens are refreshed proactively
before expiration.</t>
        </section>
        <section anchor="confirmation-and-evidence">
          <name>Confirmation and Evidence</name>
          <t>For high-risk operations, PACE supports confirmation requirements
where agents must present cryptographic evidence of approval (human,
policy-check, or MFA) before the operation proceeds.</t>
        </section>
      </section>
      <section anchor="transport-security">
        <name>Transport Security</name>
        <t>All PACE communication is encrypted via TLS 1.3 (QUIC requirement).
Agent identity tokens are cryptographically signed with short expiry.
MOQT Common Access Tokens <xref target="MoQ-C4M"/> provide relay-level namespace
authorization. Relay nodes cannot access payload content unless
explicitly authorized as trusted intermediaries.</t>
      </section>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>Agents <bcp14>SHOULD</bcp14> minimize shared data to what is necessary for the task.
Long-lived sessions <bcp14>SHOULD</bcp14> support forward secrecy through periodic
key rotation. Relay operators <bcp14>MUST NOT</bcp14> retain content beyond
operational necessity.</t>
      </section>
    </section>
    <section anchor="scalability">
      <name>Scalability and Reliability</name>
      <t>PACE inherits MOQT's relay architecture for geographic distribution
and load management:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Subscription Aggregation</strong>: Multiple subscribers to the same track
result in a single upstream subscription, reducing origin load</t>
        </li>
        <li>
          <t><strong>Geographic Locality</strong>: Edge relays cache content close to
subscribers, minimizing round-trip latency</t>
        </li>
        <li>
          <t><strong>Fault Isolation</strong>: Relay failures are localized; other paths
continue operating</t>
        </li>
      </ul>
      <section anchor="failure-modes-and-recovery">
        <name>Failure Modes and Recovery</name>
        <table>
          <thead>
            <tr>
              <th align="left">Failure</th>
              <th align="left">Detection</th>
              <th align="left">Recovery</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Agent network loss</td>
              <td align="left">QUIC idle timeout</td>
              <td align="left">Connection migration, session resume</td>
            </tr>
            <tr>
              <td align="left">Relay failure</td>
              <td align="left">Subscription timeout</td>
              <td align="left">Failover to alternate relay</td>
            </tr>
            <tr>
              <td align="left">Agent crash</td>
              <td align="left">Session heartbeat miss</td>
              <td align="left">Session suspended, await resume</td>
            </tr>
            <tr>
              <td align="left">Prolonged outage</td>
              <td align="left">Session timeout</td>
              <td align="left">Session closed, state checkpointed</td>
            </tr>
          </tbody>
        </table>
        <t>Session recovery mechanics are defined in <xref target="session-recovery"/>.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="moqt-setup-parameter-registry">
        <name>MOQT Setup Parameter Registry</name>
        <t>This document requests registration of the following MOQT setup parameters:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Parameter Name</th>
              <th align="left">ID</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">pace-version</td>
              <td align="left">0x50414301</td>
              <td align="left">PACE protocol version</td>
            </tr>
            <tr>
              <td align="left">agent-identity</td>
              <td align="left">0x50414302</td>
              <td align="left">Agent identity token reference</td>
            </tr>
            <tr>
              <td align="left">supported-protocols</td>
              <td align="left">0x50414303</td>
              <td align="left">Application protocol bitmask</td>
            </tr>
            <tr>
              <td align="left">auth-schemes</td>
              <td align="left">0x50414304</td>
              <td align="left">Authentication scheme identifiers</td>
            </tr>
            <tr>
              <td align="left">session-capabilities</td>
              <td align="left">0x50414305</td>
              <td align="left">Session capability flags</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="pace-protocol-binding-registry">
        <name>PACE Protocol Binding Registry</name>
        <t>IANA is requested to create a registry for PACE protocol bindings.
Each entry contains:</t>
        <ul spacing="normal">
          <li>
            <t>Protocol Identifier (string)</t>
          </li>
          <li>
            <t>Protocol Version</t>
          </li>
          <li>
            <t>Namespace Prefix Pattern</t>
          </li>
          <li>
            <t>Reference Document</t>
          </li>
        </ul>
        <t>Initial entries:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Protocol ID</th>
              <th align="left">Version</th>
              <th align="left">Track Name Pattern</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">a2a</td>
              <td align="left">0.3.0</td>
              <td align="left">
                <tt>a2a/{sub}/{id}</tt></td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">mcp</td>
              <td align="left">2025-06-18</td>
              <td align="left">
                <tt>mcp/{sub}/{id}</tt></td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">autogen</td>
              <td align="left">0.4</td>
              <td align="left">
                <tt>autogen/{sub}/{id}</tt></td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">(generic)</td>
              <td align="left">-</td>
              <td align="left">
                <tt>ext/{proto}/{sub}/{id}</tt></td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="pace-message-type-registry">
        <name>PACE Message Type Registry</name>
        <t>IANA is requested to create a registry for PACE session control
message types:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Message Type</th>
              <th align="left">Code</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SESSION_INIT</td>
              <td align="left">0x01</td>
              <td align="left">Initiate session establishment</td>
            </tr>
            <tr>
              <td align="left">SESSION_ACCEPT</td>
              <td align="left">0x02</td>
              <td align="left">Accept session establishment</td>
            </tr>
            <tr>
              <td align="left">SESSION_REJECT</td>
              <td align="left">0x03</td>
              <td align="left">Reject session establishment</td>
            </tr>
            <tr>
              <td align="left">SESSION_UPDATE</td>
              <td align="left">0x04</td>
              <td align="left">Update session parameters</td>
            </tr>
            <tr>
              <td align="left">SESSION_SUSPEND</td>
              <td align="left">0x05</td>
              <td align="left">Suspend active session</td>
            </tr>
            <tr>
              <td align="left">SESSION_RESUME</td>
              <td align="left">0x06</td>
              <td align="left">Resume suspended session</td>
            </tr>
            <tr>
              <td align="left">SESSION_CLOSE</td>
              <td align="left">0x07</td>
              <td align="left">Terminate session</td>
            </tr>
            <tr>
              <td align="left">SESSION_JOIN</td>
              <td align="left">0x08</td>
              <td align="left">Join multi-party session</td>
            </tr>
            <tr>
              <td align="left">SESSION_LEAVE</td>
              <td align="left">0x09</td>
              <td align="left">Leave multi-party session</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="MoQ-TRANSPORT" target="https://datatracker.ietf.org/doc/draft-ietf-moq-transport/">
          <front>
            <title>Media over QUIC Transport</title>
            <author initials="L." surname="Curley">
              <organization/>
            </author>
            <author initials="K." surname="Pugin">
              <organization/>
            </author>
            <author initials="S." surname="Nandakumar">
              <organization/>
            </author>
            <author initials="V." surname="Vasiliev">
              <organization/>
            </author>
            <author initials="I." surname="Swett">
              <organization/>
            </author>
            <date year="2026" month="January"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-transport-16"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7540">
          <front>
            <title>Hypertext Transfer Protocol Version 2 (HTTP/2)</title>
            <author fullname="M. Belshe" initials="M." surname="Belshe"/>
            <author fullname="R. Peon" initials="R." surname="Peon"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection. It also introduces unsolicited push of representations from servers to clients.</t>
              <t>This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax. HTTP's existing semantics remain unchanged.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7540"/>
          <seriesInfo name="DOI" value="10.17487/RFC7540"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9297">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes HTTP Datagrams, a convention for conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.</t>
              <t>In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC DATAGRAM extension. When the QUIC DATAGRAM frame is unavailable or undesirable, HTTP Datagrams can be sent using the Capsule Protocol, which is a more general convention for conveying data in HTTP connections.</t>
              <t>HTTP Datagrams and the Capsule Protocol are intended for use by HTTP extensions, not applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9297"/>
          <seriesInfo name="DOI" value="10.17487/RFC9297"/>
        </reference>
        <reference anchor="A2A" target="https://google.github.io/A2A/specification/">
          <front>
            <title>Agent-to-Agent Protocol Specification</title>
            <author>
              <organization>A2A Project</organization>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="Version" value="0.3.0"/>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/specification/">
          <front>
            <title>Model Context Protocol Specification</title>
            <author>
              <organization>Anthropic</organization>
            </author>
            <date year="2025" month="June"/>
          </front>
          <seriesInfo name="Version" value="2025-06-18"/>
        </reference>
        <reference anchor="AutoGen" target="https://arxiv.org/abs/2308.08155">
          <front>
            <title>AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation</title>
            <author initials="Q." surname="Wu">
              <organization/>
            </author>
            <author initials="G." surname="Banber">
              <organization/>
            </author>
            <author initials="Y." surname="Zhang">
              <organization/>
            </author>
            <author initials="Y." surname="Wu">
              <organization/>
            </author>
            <author initials="B." surname="Li">
              <organization/>
            </author>
            <author initials="E." surname="Zhu">
              <organization/>
            </author>
            <author initials="A." surname="Awadallah">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
          <seriesInfo name="arXiv" value="2308.08155"/>
        </reference>
        <reference anchor="MoQ-C4M" target="https://datatracker.ietf.org/doc/draft-ietf-moq-c4m/">
          <front>
            <title>Common Access Token for Media over QUIC</title>
            <author initials="S." surname="Jennings">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-c4m"/>
        </reference>
        <reference anchor="MCP-MOQT" target="https://datatracker.ietf.org/doc/draft-mcp-over-moqt/">
          <front>
            <title>Model Context Protocol and Agent Skills over Media over QUIC Transport</title>
            <author initials="C." surname="Jennings">
              <organization/>
            </author>
            <author initials="I." surname="Swett">
              <organization/>
            </author>
            <author initials="J." surname="Rosenberg">
              <organization/>
            </author>
            <author initials="S." surname="Nandakumar">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mcp-over-moqt"/>
        </reference>
        <reference anchor="SD-AGENT" target="https://datatracker.ietf.org/doc/draft-nandakumar-agent-sd-jwt/">
          <front>
            <title>SD Agent: Selective Disclosure for Agent Discovery and Identity Management</title>
            <author initials="S." surname="Nandakumar">
              <organization/>
            </author>
            <author initials="C." surname="Jennings">
              <organization/>
            </author>
            <date year="2026" month="February"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-nandakumar-agent-sd-jwt-02"/>
        </reference>
      </references>
    </references>
    <?line 1111?>

<section anchor="example-workflows">
      <name>Example Workflows</name>
      <t>This appendix illustrates common PACE workflows end-to-end, showing
how agents use the namespace structure, session establishment, and
protocol bindings defined in this document.</t>
      <section anchor="agent-to-agent-task-delegation">
        <name>Agent-to-Agent: Task Delegation</name>
        <t>Agent A (a coordinator) delegates a research task to Agent B. This
is a point-to-point session using the A2A binding.</t>
        <t><strong>Setup</strong>: Agent A generates session-id <tt>s1</tt> (a UUID) and establishes
a session with Agent B via the flow in <xref target="session-management"/>.</t>
        <t><strong>Resulting namespace layout</strong>:</t>
        <artwork><![CDATA[
Agent A publishes:
  ("pace","agents","agent-a","s1") -- "ctrl"            (SESSION_INIT)
  ("pace","agents","agent-a","s1") -- "a2a/request/r1"  (task request)

Agent B publishes:
  ("pace","agents","agent-b","s1") -- "ctrl"            (SESSION_ACCEPT)
  ("pace","agents","agent-b","s1") -- "a2a/response/r1" (task result)
]]></artwork>
        <t><strong>Flow</strong>:</t>
        <ol spacing="normal" type="1"><li>
            <t>A publishes SESSION_INIT on its <tt>"ctrl"</tt> track — the relay forwards
to B via B's SUBSCRIBE_TRACKS prefix match</t>
          </li>
          <li>
            <t>B accepts the forwarded PUBLISH, publishes SESSION_ACCEPT on its
own <tt>"ctrl"</tt> track</t>
          </li>
          <li>
            <t>A receives SESSION_ACCEPT via the relay (A's SUBSCRIBE_TRACKS on B)</t>
          </li>
          <li>
            <t>A publishes a JSON-RPC request on <tt>"a2a/request/r1"</tt>:
<tt>{"jsonrpc":"2.0","method":"message/send","params":{...},"id":"r1"}</tt></t>
          </li>
          <li>
            <t>B receives the request (via its subscription to A's namespace),
processes it, and publishes the result on <tt>"a2a/response/r1"</tt></t>
          </li>
          <li>
            <t>A receives the response via its subscription to B's namespace</t>
          </li>
          <li>
            <t>Either agent publishes SESSION_CLOSE on <tt>"ctrl"</tt> to terminate</t>
          </li>
        </ol>
      </section>
      <section anchor="agent-to-tool-mcp-tool-invocation">
        <name>Agent-to-Tool: MCP Tool Invocation</name>
        <t>Agent A needs to read a file using a filesystem tool (an MCP server).</t>
        <t><strong>Setup</strong>: Agent A generates session-id <tt>s2</tt> and establishes a session
with the filesystem tool.</t>
        <t><strong>Resulting namespace layout</strong>:</t>
        <artwork><![CDATA[
Agent A publishes:
  ("pace","agents","agent-a","s2") -- "ctrl"
  ("pace","agents","agent-a","s2") -- "mcp/tools/readFile"  (tool call)

Tool publishes:
  ("pace","agents","fs-tool","s2") -- "ctrl"
  ("pace","agents","fs-tool","s2") -- "mcp/tools/readFile"  (tool result)
]]></artwork>
        <t><strong>Flow</strong>:</t>
        <ol spacing="normal" type="1"><li>
            <t>A establishes a session with the tool (SESSION_INIT / ACCEPT)</t>
          </li>
          <li>
            <t>A publishes a tool call on <tt>"mcp/tools/readFile"</tt>:
<tt>{"jsonrpc":"2.0","method":"tools/call","params":{"name":"readFile",
"arguments":{"path":"/data/report.csv"}},"id":"t1"}</tt></t>
          </li>
          <li>
            <t>Tool receives the call, reads the file, publishes the result on its
own <tt>"mcp/tools/readFile"</tt> track</t>
          </li>
          <li>
            <t>A receives the file contents</t>
          </li>
          <li>
            <t>A may issue additional tool calls within the same session or close it</t>
          </li>
        </ol>
      </section>
      <section anchor="multi-agent-collaboration">
        <name>Multi-Agent Collaboration</name>
        <t>Agent A (coordinator) creates a research session and invites Agent B
(web researcher) and Agent C (data analyst) to collaborate.</t>
        <t><strong>Setup</strong>: Agent A generates session-id <tt>s3</tt> and publishes SESSION_INIT
on its ctrl track — the relay forwards to B and C via their
SUBSCRIBE_TRACKS prefix match on A's agent namespace.</t>
        <t><strong>Resulting namespace layout</strong>:</t>
        <artwork><![CDATA[
Agent A publishes:
  ("pace","agents","agent-a","s3") -- "ctrl"     (session mgmt, assignments)
  ("pace","agents","agent-a","s3") -- "chat"     (coordination messages)

Agent B publishes:
  ("pace","agents","agent-b","s3") -- "ctrl"     (SESSION_ACCEPT)
  ("pace","agents","agent-b","s3") -- "chat"     (status updates)
  ("pace","agents","agent-b","s3") -- "a2a/task/research-1"  (findings)

Agent C publishes:
  ("pace","agents","agent-c","s3") -- "ctrl"     (SESSION_ACCEPT)
  ("pace","agents","agent-c","s3") -- "chat"     (status updates)
  ("pace","agents","agent-c","s3") -- "a2a/task/analysis-1"  (results)
]]></artwork>
        <t><strong>Subscriptions</strong>: Each agent subscribes to the other two agents'
session namespaces:</t>
        <ul spacing="normal">
          <li>
            <t>A subscribes to <tt>("pace","agents","agent-b","s3")</tt> and
<tt>("pace","agents","agent-c","s3")</tt></t>
          </li>
          <li>
            <t>B subscribes to <tt>("pace","agents","agent-a","s3")</tt> and
<tt>("pace","agents","agent-c","s3")</tt></t>
          </li>
          <li>
            <t>C subscribes to <tt>("pace","agents","agent-a","s3")</tt> and
<tt>("pace","agents","agent-b","s3")</tt></t>
          </li>
        </ul>
        <t><strong>Flow</strong>:</t>
        <ol spacing="normal" type="1"><li>
            <t>A establishes session, B and C accept</t>
          </li>
          <li>
            <t>A publishes task assignments on <tt>"chat"</tt> — the relay fans out
to both B and C</t>
          </li>
          <li>
            <t>B performs web research, publishes findings incrementally on
<tt>"a2a/task/research-1"</tt> (using MOQT groups for phases)</t>
          </li>
          <li>
            <t>C subscribes to B's research track, receives findings as they
arrive, and begins analysis</t>
          </li>
          <li>
            <t>C publishes analysis results on <tt>"a2a/task/analysis-1"</tt></t>
          </li>
          <li>
            <t>A monitors all progress through its subscriptions and publishes
a final summary when complete</t>
          </li>
          <li>
            <t>A publishes SESSION_CLOSE — all participants unsubscribe</t>
          </li>
        </ol>
      </section>
      <section anchor="agent-to-tool-with-streaming-long-running-operation">
        <name>Agent-to-Tool with Streaming: Long-Running Operation</name>
        <t>Agent A invokes a code-generation tool that produces output
incrementally.</t>
        <t><strong>Setup</strong>: Same as tool invocation — Agent A and the tool share
session-id <tt>s4</tt>.</t>
        <t><strong>Flow</strong>:</t>
        <ol spacing="normal" type="1"><li>
            <t>A publishes a tool call on <tt>"mcp/tools/generateCode"</tt></t>
          </li>
          <li>
            <t>Tool begins generating code and publishes results using MOQT groups:
            </t>
            <ul spacing="normal">
              <li>
                <t>Group 0: <tt>{"status":"started","language":"python"}</tt></t>
              </li>
              <li>
                <t>Group 1, Object 0: first code block</t>
              </li>
              <li>
                <t>Group 1, Object 1: second code block</t>
              </li>
              <li>
                <t>Group 2: <tt>{"status":"complete","totalLines":142}</tt></t>
              </li>
            </ul>
          </li>
          <li>
            <t>A receives objects as they are published (ascending group order)</t>
          </li>
          <li>
            <t>If A needs to cancel, it publishes a cancellation on <tt>"ctrl"</tt></t>
          </li>
          <li>
            <t>Tool receives cancellation, stops generation, publishes final
status</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAc7TGoAA9V9y3IjyZHgPb8iFnVooAYJPqqqH2xpZkAWq5s9fDXB6l7t
mExMAEEiVYlMKDNBFkVSNjaHPaztYWxNNruHPexhv2FPe9pP0Zesv+KVSJCs
bslkKpOaQCIjwiPCw9/uEcdxVKd1pndU53S4t7+jTsuiLiZFpi6LUg2vdF6r
vWI+X+bpJKnTIlf7HyezJL/SnSgZj0t9LS1Vca1LdXTy/Xkngjf1VVHe7qiq
nkbRtJjkyRyGmJbJZR3nST5NPiznSRkn2P8CR4znxe/iRTLRcQaNqzqqluN5
WlUwYn27gLYH++fvonw5H+tyJ5rCOztqe3P783jz83j7y2hS5JXOq2W1o+py
qSOA6lWUlDoB6IaLRSbAVwrGVmc6yeLzdA5TuCnKD1dlsVzgey2TNatRdaIP
+hbenu5EKlYEdwxQ04fgSV0UGT7AlcC/wwP+rcIvlaYZqYV0i89KhKYGaNTE
HzqKrnW+1DCceiaASvFKdX6ESaX5lfoG2+HzeZJm8Jzg2Kb//mOq68tBUV7h
z0k5mcHPs7peVDsbG/g2Pkqv9cC8toEPNsZlcVPpDa+fDWx/ldaz5Rh6qJaz
pPpWl3qDdzrZTnBfYV3KJK8WRVnj67zB3oC22YB7GqTF2g42VnEo5V0gDLLv
DWb1POtEUbKsZ0WJmwYjK8V42BnhiOrYdtKhH2GeSZ7+nhYWXtpLq0nBv2hZ
wUrG/ccJ/jaADes0et5bZpnO1Xc6z2ELqvUdq9FtVet5FQ5wmS0vL2/97qO8
KOfQ8ppQ4ezd3vbW1lfy8cut7c/txy9ey8evNjc3zdPXr+mFo+L7+PxseDw6
PTk736ERzak/0tM04cP7/fuDPXXub5VS/knboid2ReFfrNIcjtzhQO0ty0zf
+g//aaBOl1dp7j8bDbxF93/4YaB+SKo0S/W1//hgoEY3uq7pWaXLVFdpflnw
4Eod5LUuc13HbxEpDH1BnA2RId76nOeclFca3jOIB5NL4KXJB106TAdqtbGu
o40owvHDDfnijd2QL968Nkv/1daW/bj91Rf4cbg9DNd+aIgGn2xLekcLPUkv
5Yg39uFNyyYA2DvYO/bwWz1Zt1w/6LIiDNwcvBpstq7IVVFcZf45hF43Kh+c
DUSnvdMGEhVTnQFlgv34+Nx5AOVeO5W8npXFIp08NRHpJ976snU2cwRrwlAZ
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

-->

</rfc>
