<?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-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">PACE: Protocol for Agent Communication Exchange</title>
    <seriesInfo name="Internet-Draft" value="draft-nandakumar-agentproto-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="November" day="01"/>
    <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>dialog management</keyword>
    <keyword>real-time communication</keyword>
    <abstract>
      <?line 151?>

<t>This document defines the Protocol for Agent Communication Exchange
(PACE), an agentic dialog management protocol with a binding to Media
over QUIC Transport (MOQT). A dialog is the correlated sequence of
interactions between two or more participants over the course of a
task. PACE defines a transport-independent dialog context and
control operations to establish, modify, and terminate
dialogs and to revoke propagation relationships. It specifies how that
context stays coherent across intermediaries, trust boundaries,
modality changes, and interruptions, and how it is carried over MOQT.
PACE does not interpret or define dialog content. Over MOQT, a dialog can
combine text, audio, video, and request/response exchanges in
point-to-point, point-to-multipoint, and multi-party topologies.
Application-layer agent protocols such as A2A, MCP, and AutoGen keep
their own message formats and carry the dialog context through
their own extension points.</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-nandakumar-agentproto-pace/draft-nandakumar-agentproto-pace.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-nandakumar-agentproto-pace/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Agent Communication Protocols Working Group mailing list (<eref target="mailto:agentproto@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/agentproto/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/agentproto/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/suhasHere/draft-nandakumar-agentproto-pace"/>.</t>
    </note>
  </front>
  <middle>
    <?line 169?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>AI agents are autonomous software systems that work with users, other
agents, and tools to complete tasks. The exchanges between them form
dialogs. A dialog is the correlated
sequence of interactions between two or more participants over the
course of a task. For dialogs to work across platforms and vendors,
participants need a common way to correlate a dialog and maintain its
lifecycle across multiple hops, intermediaries, trust boundaries, and
changes of modality or network attachment, without sharing the
content of the dialog itself.</t>
      <t>This document defines the Protocol for Agent Communication Exchange
(PACE). PACE has two parts:</t>
      <ul spacing="normal">
        <li>
          <t>A transport-independent agentic dialog management protocol
(<xref target="dialog-management"/>): the dialog context, the control operations
that manage its lifecycle, and the rules participants and
intermediaries follow when propagating it.</t>
        </li>
        <li>
          <t>A binding of that protocol to Media over QUIC Transport (MOQT)
<xref target="MoQ-TRANSPORT"/> (<xref target="moqt-binding"/>, <xref target="dialog-over-moqt"/>), which
carries the dialog context on MOQT tracks and uses MOQT relays for
fan-out, prioritization, and multiplexing of dialog control
alongside text, audio, video, and request/response exchanges.</t>
        </li>
      </ul>
      <t>In terms of the Agent Communication Protocol architecture <xref target="ARCH"/>, the
first part realizes the Agentic Dialog Management block
(<xref section="6.1" sectionFormat="of" target="ARCH"/>), and the second is the MOQT profile corresponding
to <xref section="9.1" sectionFormat="of" target="ARCH"/>.</t>
      <t>The dialog context consists of identifiers and lifecycle state only.
Content exchanged with AI models, such as conversation memory,
retrieved documents, or prompts, is not part of it.
The content is opaque to PACE, the MOQT binding carries it on content
tracks without interpreting it. PACE
does not replace application-layer agent protocols. A2A, MCP, AutoGen, and
similar protocols keep their native messages and carry the dialog
context through their own extension points (<xref target="protocol-bindings"/>).</t>
      <section anchor="scope">
        <name>Scope and Goals</name>
        <t>Agent interactions are increasingly live dialogs rather than one-shot
requests. A user speaks while an agent answers, cuts in, and expects
the agent to stop. Voice and video run alongside chat, streaming model
output, and tool calls. Several agents and people work on the same
task, and the task can outlast a single connection or network. In
natural spoken conversation, people take turns within a few hundred
milliseconds <xref target="STIVERS"/>, so an interruption has to take effect ahead of output
that is already queued. PACE is designed for these dialogs.</t>
        <t>PACE addresses the following goals.</t>
        <ul spacing="normal">
          <li>
            <t>Dialog correlation: A dialog identifier that stays stable across hops,
intermediaries, trust boundaries, modality changes, and time. Defined
by the dialog context: identifier, generation, state, controller, and
participants (<xref target="dialog-context"/>).</t>
          </li>
          <li>
            <t>Multi-modal exchange: Real-time media, chat, streaming model output,
and request/response operations in one dialog. Each modality keeps its
own latency and reliability, and none of them delays the others, even
when they share one transport session (<xref target="data-exchange"/>).</t>
          </li>
          <li>
            <t>Multi-party exchange: Point-to-point, point-to-multipoint, and
multi-party dialogs among agents and people. Relays fan out each
message, so a sender publishes once however many participants there
are, and late joiners catch up from relay caches (<xref target="topologies"/>).</t>
          </li>
          <li>
            <t>Low-latency interaction: Dialog control, including interruption and
cancellation, takes effect within the latency of natural conversation
and ahead of queued content, so that agents can hold an interactive
voice conversation (<xref target="data-exchange"/>).</t>
          </li>
          <li>
            <t>Dialog lifecycle: Opening, updating, and terminating dialogs, and
revoking propagation relationships, with the controller as the single
authoritative source of state (<xref target="lifecycle"/>).</t>
          </li>
          <li>
            <t>Resilience: Recovery from path and intermediary failures, resumption
after interruption, and defined behavior when a participant or the
controller is unreachable (<xref target="propagation"/>, <xref target="dialog-recovery"/>).</t>
          </li>
          <li>
            <t>Transport independence: A dialog model that any transport can carry.
This document specifies a MOQT binding: namespaces, tracks, operation
mapping, and delivery (<xref target="moqt-binding"/>).</t>
          </li>
          <li>
            <t>Application protocol reuse: MCP, the Personal Agent Protocol, AutoGen,
and A2A keep their native messages and carry the dialog context
(<xref target="protocol-bindings"/>).</t>
          </li>
          <li>
            <t>Identity and authorization reuse: Agent identity separate from user
identity, delegated authorization, and selective disclosure, without
mandating a token format (<xref target="identity-discovery"/>, <xref target="authorization"/>).</t>
          </li>
          <li>
            <t>Privacy: Mitigations for linkage through persistent dialog and
participant identifiers (<xref target="privacy"/>).</t>
          </li>
        </ul>
        <t>PACE does not define trust frameworks,
authorization protocols, or audit data structures; deployments use
existing mechanisms, and auditing systems can use dialog identifiers.
Dialog content, model behavior, planning, and task semantics are also
out of scope.</t>
      </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 anchor="terminology">
        <name>Terminology</name>
        <dl>
          <dt>Dialog:</dt>
          <dd>
            <t>The correlated sequence of interactions between two or more
participants over the course of a task. A dialog can outlast any
single message exchange, MOQT session, or transport connection. A
two-party dialog is an agentic dialog <xref target="ARCH"/>, which
composes larger topologies by cascading two-party dialogs; PACE
supports both cascaded and multi-party dialogs (<xref target="topologies"/>).</t>
          </dd>
          <dt>Dialog context:</dt>
          <dd>
            <t>The identifiers and lifecycle state needed to correlate and
maintain a dialog (<xref target="dialog-context"/>). The dialog context does not
include content exchanged with AI models, such as conversation
memory, retrieved documents, prompts, or media payloads. It
corresponds to the meta-data of the <xref target="ARCH"/> dialog context. The
<xref target="ARCH"/> log is the dialog's content, which a binding carries; in the
MOQT binding, it is the sequence of objects on the dialog's content
tracks (<xref target="track-organization"/>).</t>
          </dd>
          <dt>Dialog identifier (dialog-id):</dt>
          <dd>
            <t>A UUID that names a dialog for its whole lifetime.</t>
          </dd>
          <dt>Participant:</dt>
          <dd>
            <t>A user-facing client, agent, tool, or service that takes part in a
dialog and processes its dialog context. Each participant has a
participant identifier that is unique within the dialog. In the
MOQT binding, the participant identifier is the agent-id field of
the participant's tracks in the dialog namespace (<xref target="namespace"/>). A participant plays the
principal or agent role of <xref target="ARCH"/>; the controller is usually the
principal's client.</t>
          </dd>
          <dt>Controller:</dt>
          <dd>
            <t>The participant that opened the dialog. The controller is the
authoritative source of the dialog context and the only participant
that changes the participant set, expiration, generation, or
terminal state.</t>
          </dd>
          <dt>Intermediary:</dt>
          <dd>
            <t>An entity that forwards dialog context between participants without
being the source of it. A MOQT relay that forwards PACE tracks is an
intermediary, and so is a gateway that transforms one modality into
another.</t>
          </dd>
          <dt>Propagation relationship:</dt>
          <dd>
            <t>The authorization and forwarding relationship that allows a
participant or intermediary to receive or forward a dialog's
context. PACE signals the creation and revocation of such
relationships; the deployment's authorization mechanism enforces
them.</t>
          </dd>
          <dt>MOQT session:</dt>
          <dd>
            <t>A transport-level session established with MOQT SETUP. A MOQT
session is not a dialog: one dialog can span several MOQT sessions,
and one MOQT session can carry several dialogs.</t>
          </dd>
        </dl>
      </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, Poppy, ...)  │
├─────────────────────────────────────────────────────────┤
│  PACE Dialog Management: dialog-id │ lifecycle │        │
│  propagation                                            │
├─────────────────────────────────────────────────────────┤
│  PACE MOQT Binding: namespaces │ control tracks │       │
│  media and operation tracks │ priority                  │
├─────────────────────────────────────────────────────────┤
│  MOQT: Pub/Sub │ Namespace Routing │ Relay Caching      │
├─────────────────────────────────────────────────────────┤
│  QUIC / WebTransport: TLS 1.3 │ Mux │ Migration         │
└─────────────────────────────────────────────────────────┘
]]></artwork>
      </figure>
      <t>Identity, authentication, authorization, and encryption are building
blocks used across these layers. PACE integrates them
(<xref target="identity-discovery"/>, <xref target="authorization"/>) but does not define new
ones.</t>
      <section anchor="transport-requirements">
        <name>Transport Requirements</name>
        <t>Live dialogs (<xref target="scope"/>) place the following requirements on the
transport that carries them. They refine the transport aspects of
<xref section="8" sectionFormat="of" target="ARCH"/> for live, multi-modal dialogs.</t>
        <ul spacing="normal">
          <li>
            <t>Low latency: Each flow reaches participants within the latency its
modality needs: under 100 ms for real-time media, and under a second
for chat and streaming model output (<xref target="data-exchange"/>). A loss or a
backlog on one flow does not add delay to another.</t>
          </li>
          <li>
            <t>Push delivery: Content, new participants, new flows, and new dialogs
reach participants as soon as they are published, without polling.</t>
          </li>
          <li>
            <t>Interruption: Dialog control, such as an interruption or a
cancellation, reaches its receiver ahead of content that is already
queued. Real-time content that is too late to be useful is dropped
instead of being delivered late.</t>
          </li>
          <li>
            <t>Concurrent flows: Real-time media, chat, streaming model output, tool
calls, and bulk transfers share one dialog and one connection, each
with its own priority and reliability.</t>
          </li>
          <li>
            <t>Fan-out: One message reaches every participant without the sender
sending a copy to each. Participants that join late or reconnect can
catch up.</t>
          </li>
          <li>
            <t>Continuity: A dialog survives connection migration, network changes,
reconnection, and intermediaries.</t>
          </li>
          <li>
            <t>Scale and control: Dialogs scale through intermediaries across
regions, and each intermediary enforces who may send and receive.</t>
          </li>
        </ul>
        <t>Request/response mechanisms might not meet these requirements. When a
dialog's flows share one ordered connection, a cancellation waits
behind output that has already been sent, and one lost packet stalls
every flow. Delivery to several participants, and learning about new
ones, are left to the application.</t>
      </section>
      <section anchor="why-moqt">
        <name>Why MOQT?</name>
        <t>This document specifies a MOQT binding for exchanging dialogs. Media
over QUIC Transport (MOQT) <xref target="MoQ-TRANSPORT"/> is a publish/subscribe
protocol over QUIC <xref target="RFC9000"/>. It meets each requirement in
<xref target="transport-requirements"/> with a transport mechanism, so agent
protocols do not need to rebuild them.</t>
        <ul spacing="normal">
          <li>
            <t>Low latency: Objects are sent as soon as they are produced, on QUIC
streams or datagrams alike, and relays forward them as they arrive,
without waiting for the rest of a group. Each track has its own
streams, so a loss on one flow does not hold up the others. Datagrams
are not retransmitted, so real-time media keeps flowing under
congestion instead of waiting for lost data.</t>
          </li>
          <li>
            <t>Push delivery: Agents publish and subscribe directly, with no polling
and no long-lived HTTP connections. Content reaches subscribers as
soon as it is published. SUBSCRIBE_TRACKS on a namespace prefix
delivers all current and future tracks under that prefix, so new
participants and flows appear without a separate signaling channel. Output
that arrives minutes or hours after its input reaches the subscriber
without a webhook or a client-side HTTP server.</t>
          </li>
          <li>
            <t>Interruption: Publisher priority (per subgroup or datagram) and
subscriber priority (per subscription) let dialog control overtake
queued lower-priority data, so a cancellation reaches the agent ahead
of output already in flight. Per-track delivery timeouts let the
publisher mark time-sensitive objects: objects that miss the deadline,
such as a voice frame whose playout window has passed, are dropped at
the relay instead of wasting bandwidth and queue depth.</t>
          </li>
          <li>
            <t>Concurrent flows: One MOQT session carries sub-100ms media, sub-second
chat, and best-effort bulk transfers at the same time, in one
congestion control context. Objects can be delivered over QUIC
datagrams, which suit real-time audio and video where lower latency
matters more than retransmission, or over QUIC streams, which suit
agent chat, operations, and bulk transfers that need ordered, reliable
delivery.</t>
          </li>
          <li>
            <t>Fan-out: A single PUBLISH reaches every subscriber through the relay,
so multi-agent collaboration does not need application-level broadcast
code, and the publisher keeps no per-subscriber state. Relay caches
let late-joining or reconnecting agents catch up without the publisher
retransmitting.</t>
          </li>
          <li>
            <t>Continuity: QUIC provides connection migration (for example, from
Wi-Fi to cellular) and 0-RTT resumption. A dialog is not tied to a
MOQT session: one dialog can span several sessions (<xref target="terminology"/>).
An agent namespace is not tied to a host either, so the principal and
the agent can each move between hosts over a dialog's lifetime and a
new client instance catches up from relay caches.</t>
          </li>
          <li>
            <t>Scale and control: Relays handle NAT traversal, load balancing, and
fan-out without direct peer-to-peer connections, and they can be
stacked hierarchically to spread load across regions without an
all-to-all mesh. Namespace-level access control maps onto agent
authorization scopes: the relay decides who may publish or subscribe
to each namespace. QUIC provides TLS 1.3 for every hop.</t>
          </li>
        </ul>
        <t>Where UDP is blocked, the same MOQT binding can run over QMux
<xref target="QMUX"/>, which provides QUIC stream and datagram operations over TLS
over TCP. Agents keep one protocol stack instead of falling back to a
separate one, at the cost of TCP head-of-line blocking and reliable,
ordered datagrams.</t>
      </section>
    </section>
    <section anchor="dialog-management">
      <name>Agentic Dialog Management</name>
      <t>This section defines the dialog context, its lifecycle, and the rules
for propagating it. The mapping of this protocol onto MOQT is defined
in <xref target="moqt-binding"/>.</t>
      <section anchor="dialog-context">
        <name>Dialog Context</name>
        <t>A dialog context contains the following fields:</t>
        <ul spacing="normal">
          <li>
            <t><tt>dialog_id</tt>: A UUID version 4 <xref target="RFC9562"/>. The controller generates it
when opening the dialog. It remains unchanged for the lifetime of the
dialog, including when the dialog crosses an intermediary, changes
modality, or resumes after a connection loss.</t>
          </li>
          <li>
            <t><tt>generation</tt>: An unsigned integer identifying the current controller
state. The initial generation is 0. The controller increments it by
one for each committed change to the dialog context, including a
change in a participant's state.</t>
          </li>
          <li>
            <t><tt>state</tt>: One of <tt>pending</tt>, <tt>active</tt>, or <tt>terminated</tt>.</t>
          </li>
          <li>
            <t><tt>controller_id</tt>: The participant identifier of the controller.</t>
          </li>
          <li>
            <t><tt>participants</tt>: The set of participant identifiers in the dialog, each
with a state: <tt>invited</tt>, <tt>active</tt>, <tt>left</tt>, <tt>rejected</tt>, or <tt>revoked</tt>.</t>
          </li>
          <li>
            <t><tt>expires_at</tt>: An optional absolute time in RFC 3339 date-time format.
When present, participants treat the dialog as terminated at that
time.</t>
          </li>
          <li>
            <t><tt>parent_dialog_ids</tt>: An optional list of dialog-ids, set by the
controller in OPEN when the dialog is opened to carry out work
delegated from another dialog. The first entry is the dialog that
triggered this one, followed by that dialog's own parents, so the list
traces the delegation chain back to the originating dialog (<xref section="6.2.1" sectionFormat="of" target="ARCH"/>). It does not change after OPEN.</t>
          </li>
        </ul>
        <t>The context is encoded as a JSON object:</t>
        <sourcecode type="json"><![CDATA[
{
  "dialog_id": "550e8400-e29b-41d4-a716-446655440000",
  "generation": 0,
  "controller_id": "agent-a",
  "state": "pending",
  "participants": [
    {"participant_id": "agent-a", "state": "active"},
    {"participant_id": "agent-b", "state": "invited"}
  ],
  "expires_at": "2026-10-23T12:00:00Z"
}
]]></sourcecode>
        <t>The <tt>expires_at</tt> member is omitted when the dialog has no configured
expiration, and <tt>parent_dialog_ids</tt> is omitted when the dialog was not
opened from another dialog. A context snapshot <bcp14>MUST</bcp14> contain every other
member,
including participants whose states are <tt>left</tt>, <tt>rejected</tt>, or
<tt>revoked</tt>. A controller <bcp14>MUST NOT</bcp14> remove a participant from a later
snapshot; it changes that participant's state instead. The controller
<bcp14>MUST</bcp14> appear in the participant set with state <tt>active</tt>.</t>
        <t>The identity of the principal on whose behalf a delegated dialog runs
travels in the <tt>credentials</tt> member as a delegation chain
(<xref target="delegation"/>), not in the dialog context.</t>
        <t>These identifiers are correlation values. They <bcp14>MUST NOT</bcp14> be treated as
credentials or bearer authorization. Knowing a parent dialog-id does
not grant access to the parent dialog. A participant identifier <bcp14>MUST NOT</bcp14>
encode personal or task information.</t>
        <section anchor="dialog-parameters">
          <name>Dialog Parameters</name>
          <t>Dialog parameters are negotiated in the <tt>parameters</tt> member of OPEN,
ACCEPT, UPDATE, and JOIN_REQUEST (<xref target="control-encoding"/>). They describe
how the dialog is conducted and are not part of the dialog context:</t>
          <ul spacing="normal">
            <li>
              <t><tt>dialog_type</tt>: Short-lived (bounded duration) or long-lived
(indefinite)</t>
            </li>
            <li>
              <t><tt>idle_timeout</tt>: Maximum idle duration before the controller
terminates the dialog</t>
            </li>
            <li>
              <t><tt>max_participants</tt>: Maximum number of participants in the dialog</t>
            </li>
            <li>
              <t><tt>supported_modalities</tt>: Data modalities the participant can handle</t>
            </li>
            <li>
              <t><tt>supported_protocols</tt>: Application protocols offered (A2A, MCP, etc.)</t>
            </li>
            <li>
              <t><tt>content_encoding</tt>: Compression applied to content payloads (for
example, <tt>gzip</tt>); absent means none (<xref target="message-serialization"/>)</t>
            </li>
          </ul>
        </section>
        <section anchor="dialog-lifetime">
          <name>Dialog Lifetime</name>
          <t>Short-lived dialogs carry an <tt>expires_at</tt> in the dialog context and end
when it passes. Long-lived dialogs omit <tt>expires_at</tt> and continue
across idle periods and interruptions until the controller terminates
them. When <tt>idle_timeout</tt> is set and the dialog has been idle for that
long, with no content or control sent by any participant, the
controller <bcp14>SHOULD</bcp14> publish TERMINATE.</t>
        </section>
      </section>
      <section anchor="lifecycle">
        <name>Lifecycle and Control Operations</name>
        <t>The dialog lifecycle has three states:</t>
        <figure anchor="_figure-dialog-states">
          <name>Dialog State Machine</name>
          <artwork><![CDATA[
                  OPEN (controller, generation 0)
                                |
                                v
                         +-------------+
              UPDATE +-->|   PENDING   |------------------+
                     |   +-------------+                  |
                     |      |      |                      |
                     +------+      | UPDATE committing    | TERMINATE
                                   | an invitee's ACCEPT  | or expiry
                                   v                      v
                         +-------------+            +------------+
      UPDATE, REVOKE +-->|   ACTIVE    |----------->| TERMINATED |
                     |   +-------------+ TERMINATE  |  (final)   |
                     |      |            or expiry  +------------+
                     +------+

]]></artwork>
        </figure>
        <dl>
          <dt>pending:</dt>
          <dd>
            <t>The controller has opened the dialog, but no invitee has accepted.</t>
          </dd>
          <dt>active:</dt>
          <dd>
            <t>At least one invitee has accepted, and the dialog has not been
terminated or expired. The context can be modified with UPDATE and
REVOKE.</t>
          </dd>
          <dt>terminated:</dt>
          <dd>
            <t>The controller has terminated the dialog, or its expiration time
has passed. This state is final.</t>
          </dd>
        </dl>
        <t>Only the controller causes transitions. UPDATE, REVOKE and
TERMINATE each advance the generation by one. ACCEPT, REJECT,
JOIN_REQUEST and LEAVE are requests the controller commits with
UPDATE. Interruptions and cancellations do not change the state.</t>
        <t>An interruption, such as a lost connection or relay failure, does not
change the dialog state. Participants recover the current context as
described in <xref target="propagation"/>. A participant's own state is tracked
separately from the dialog state: joining or leaving does not by itself
terminate the dialog. When the controller commits a LEAVE that leaves
it as the only active participant, it <bcp14>SHOULD</bcp14> publish TERMINATE. This
lets an agent that is not the controller end a two-party dialog.</t>
        <t>The control operations below cover the lifecycle functions of
<xref section="6.1.2" sectionFormat="of" target="ARCH"/>. Initiation is OPEN, and termination is
TERMINATE, expiry, or a LEAVE that ends a two-party dialog. Suspension
needs no operation: a dialog persists through idle periods with no
transport connection, and a binding can pause individual flows.
Resumption is STATE_REQUEST together with the binding's recovery of
missed content (<xref target="dialog-recovery"/> for MOQT), and cancellation is
CANCEL (<xref target="cancellation"/>).</t>
        <t>PACE defines the following control operations:</t>
        <table anchor="_table-control-ops">
          <name>Control Operations</name>
          <thead>
            <tr>
              <th align="left">Operation</th>
              <th align="left">Sender</th>
              <th align="left">Generation</th>
              <th align="left">Effect</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">OPEN</td>
              <td align="left">Controller</td>
              <td align="left">0</td>
              <td align="left">Creates a pending dialog and identifies invitees.</td>
            </tr>
            <tr>
              <td align="left">ACCEPT</td>
              <td align="left">Participant or invitee</td>
              <td align="left">Current</td>
              <td align="left">Accepts an invitation or a parameter proposal.</td>
            </tr>
            <tr>
              <td align="left">REJECT</td>
              <td align="left">Participant or invitee</td>
              <td align="left">Current</td>
              <td align="left">Rejects an invitation or a parameter proposal.</td>
            </tr>
            <tr>
              <td align="left">UPDATE</td>
              <td align="left">Controller</td>
              <td align="left">Next</td>
              <td align="left">Replaces the participant set or expiration.</td>
            </tr>
            <tr>
              <td align="left">JOIN_REQUEST</td>
              <td align="left">Prospective participant</td>
              <td align="left">Latest known, or 0</td>
              <td align="left">Requests admission to an existing dialog.</td>
            </tr>
            <tr>
              <td align="left">LEAVE</td>
              <td align="left">Participant</td>
              <td align="left">Current</td>
              <td align="left">Leaves the dialog. The controller records the participant as left.</td>
            </tr>
            <tr>
              <td align="left">REVOKE</td>
              <td align="left">Controller</td>
              <td align="left">Next</td>
              <td align="left">Revokes a participant's propagation relationship.</td>
            </tr>
            <tr>
              <td align="left">TERMINATE</td>
              <td align="left">Controller</td>
              <td align="left">Next</td>
              <td align="left">Ends the dialog.</td>
            </tr>
            <tr>
              <td align="left">CANCEL</td>
              <td align="left">Any participant</td>
              <td align="left">Current</td>
              <td align="left">Asks receivers to stop work started by the sender's earlier input (<xref target="cancellation"/>).</td>
            </tr>
            <tr>
              <td align="left">CANCEL_ACK</td>
              <td align="left">Any participant</td>
              <td align="left">Current</td>
              <td align="left">Reports the outcome of a CANCEL.</td>
            </tr>
            <tr>
              <td align="left">STATE_REQUEST</td>
              <td align="left">Participant</td>
              <td align="left">Current</td>
              <td align="left">Requests the current context after a gap or reconnection.</td>
            </tr>
            <tr>
              <td align="left">STATE</td>
              <td align="left">Controller</td>
              <td align="left">Current</td>
              <td align="left">Supplies a complete context snapshot.</td>
            </tr>
            <tr>
              <td align="left">ERROR</td>
              <td align="left">Any participant</td>
              <td align="left">Current</td>
              <td align="left">Reports that an operation was not applied, and why.</td>
            </tr>
          </tbody>
        </table>
        <section anchor="committing-participant-changes">
          <name>Committing Participant Changes</name>
          <t>Only the controller changes the dialog context. Other participants
send requests and responses, and the controller commits the result.</t>
          <ul spacing="normal">
            <li>
              <t>OPEN includes at least one invitee.</t>
            </li>
            <li>
              <t>ACCEPT and REJECT answer a proposal from the controller, named by
<tt>in_reply_to</tt>: an invitation in OPEN or UPDATE, or a parameter
change carried in <tt>parameters</tt> on UPDATE. After the controller
commits an invitee's answer, its state is <tt>active</tt> or <tt>rejected</tt>. A
participant that rejects a parameter change remains in the dialog;
the controller then withdraws the change in a later UPDATE or
revokes the participant.</t>
            </li>
            <li>
              <t>JOIN_REQUEST does not add a participant. The controller admits the
requester by sending UPDATE with the requester's state set to
<tt>invited</tt>, or refuses it with ERROR <tt>policy-rejected</tt>.</t>
            </li>
            <li>
              <t>ACCEPT, REJECT, JOIN_REQUEST, and LEAVE do not modify the context by
themselves. The controller commits each resulting change by
publishing UPDATE with the complete context at the next generation.</t>
            </li>
            <li>
              <t>The dialog becomes <tt>active</tt> when the controller publishes such an
UPDATE after at least one invitee has accepted.</t>
            </li>
          </ul>
        </section>
        <section anchor="revoking-a-participant">
          <name>Revoking a Participant</name>
          <t>REVOKE is controller-authoritative. It carries the complete context at
the next generation, sets the target participant's state to <tt>revoked</tt>,
and ends that participant's propagation relationship. A participant or
intermediary that receives REVOKE:</t>
          <ul spacing="normal">
            <li>
              <t><bcp14>MUST</bcp14> stop forwarding the dialog's context to the target.</t>
            </li>
            <li>
              <t><bcp14>MUST</bcp14> cancel subscriptions that it holds only to propagate the dialog
to the target.</t>
            </li>
          </ul>
        </section>
        <section anchor="cancellation">
          <name>Cancellation</name>
          <t>A principal that interrupts an agent, a policy decision, or a failed
subtask can require work to stop at once. PACE carries cancellation as
a dialog control operation rather than relying on connection teardown,
so a binding can deliver it ahead of queued content. The MOQT binding
sends it on the <tt>ctrl</tt> track at critical priority (<xref target="cancel-over-moqt"/>).</t>
          <t>CANCEL does not change the dialog context and does not end the dialog.
Its <tt>scope</tt> member selects the work to stop:</t>
          <dl>
            <dt>operation:</dt>
            <dd>
              <t>A single operation the sender started, named in <tt>target</tt>.</t>
            </dd>
            <dt>subtree:</dt>
            <dd>
              <t>All work the receivers carry out in delegated dialogs whose
<tt>parent_dialog_ids</tt> include this dialog. A receiver that controls
such a dialog sends CANCEL with scope <tt>dialog</tt> in it, so cancellation
propagates down the delegation chain and dependent subtasks do not
continue after the parent work is withdrawn.</t>
            </dd>
            <dt>dialog:</dt>
            <dd>
              <t>All work the sender started in this dialog, together with its
subtree.</t>
            </dd>
          </dl>
          <t>A receiver applies CANCEL through the application protocol's own
cancellation where one exists, such as MCP <tt>notifications/cancelled</tt>
or A2A <tt>CancelTask</tt>, so the application sees its native cancel. CANCEL
is idempotent: a receiver that has already acted on a CANCEL reports
the same outcome again and does not repeat side effects.</t>
          <t>Each receiver doing affected work answers with CANCEL_ACK, giving one
of these outcomes:</t>
          <ul spacing="normal">
            <li>
              <t><tt>stopped</tt>: the work stopped before completing.</t>
            </li>
            <li>
              <t><tt>completed</tt>: the work had already completed.</t>
            </li>
            <li>
              <t><tt>irreversible</tt>: the work stopped, but an action it took could not be
rolled back.</t>
            </li>
          </ul>
        </section>
        <section anchor="generations">
          <name>Generations and Ordering</name>
          <t>UPDATE, REVOKE, and TERMINATE carry the next generation and a complete
context, so a receiver replaces its state as a whole instead of merging
partial updates. Other operations carry the current generation
(<xref target="_table-control-ops"/>).</t>
          <ul spacing="normal">
            <li>
              <t>The controller <bcp14>MUST</bcp14> serialize its state-changing operations and <bcp14>MUST
NOT</bcp14> reuse a generation for different state.</t>
            </li>
            <li>
              <t>A receiver <bcp14>MUST</bcp14> reject a controller operation whose generation is
lower than the latest generation it accepted, with ERROR
<tt>stale-generation</tt>.</t>
            </li>
            <li>
              <t>If a receiver sees a generation greater than the next expected one,
it <bcp14>MUST</bcp14> send STATE_REQUEST and <bcp14>MUST NOT</bcp14> infer the missing changes.</t>
            </li>
            <li>
              <t>A prospective participant does not yet track the dialog, so its
JOIN_REQUEST carries the latest generation it knows, or 0. The
controller does not reject a JOIN_REQUEST as stale.</t>
            </li>
            <li>
              <t>Receivers use the message identifier and generation to detect
duplicates and stale messages. Reprocessing a duplicate operation
<bcp14>MUST NOT</bcp14> repeat its side effects.</t>
            </li>
          </ul>
        </section>
        <section anchor="authorization-and-errors">
          <name>Authorization and Errors</name>
          <t>Before applying an operation, a participant <bcp14>MUST</bcp14> authenticate its
sender and check authorization using the deployment's mechanisms
(<xref target="authorization"/>). A valid state-changing operation needs no separate
acknowledgment. An ERROR names the rejected message in <tt>in_reply_to</tt>
and gives one of the reasons below or in the rules above.</t>
          <ul spacing="normal">
            <li>
              <t>A message that cannot be parsed, or that lacks a required member
(<xref target="control-encoding"/>), is rejected with ERROR <tt>malformed</tt>.</t>
            </li>
            <li>
              <t>If authorization fails or cannot be determined, the participant <bcp14>MUST</bcp14>
reject the operation with ERROR, giving <tt>unauthorized</tt> or
<tt>authorization-unavailable</tt> as the reason, without revealing policy
details.</t>
            </li>
            <li>
              <t>A participant that does not understand the control-message version
or an operation <bcp14>MUST NOT</bcp14> reinterpret it. It responds with ERROR,
giving <tt>unsupported-version</tt> or <tt>unsupported-operation</tt>.</t>
            </li>
          </ul>
        </section>
        <section anchor="termination">
          <name>Termination and Expiry</name>
          <t>TERMINATE is final.</t>
          <ul spacing="normal">
            <li>
              <t>After TERMINATE, a receiver <bcp14>MUST</bcp14> reject later operations for the
dialog, except a duplicate TERMINATE or a STATE needed to complete
synchronization.</t>
            </li>
            <li>
              <t>Expiration has the same effect as TERMINATE. Each participant
evaluates it locally from <tt>expires_at</tt>, and it does not create a new
generation.</t>
            </li>
            <li>
              <t>A controller <bcp14>SHOULD</bcp14> publish TERMINATE before the expiration time when
it can.</t>
            </li>
            <li>
              <t>Resuming a transport connection does not reopen a terminated or
expired dialog.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="propagation">
        <name>Propagation and Continuity</name>
        <ul spacing="normal">
          <li>
            <t>Correlation across hops: An intermediary <bcp14>MUST</bcp14> preserve the dialog
identifier, generation, and lifecycle operation when forwarding dialog
context. It <bcp14>MUST NOT</bcp14> create a new dialog identifier or change the
dialog state. This document defines no identifier-alias mechanism; a
deployment that needs aliases requires a separate mechanism that
securely correlates the alias with the original dialog.</t>
          </li>
          <li>
            <t>Trust boundaries: A participant forwarding dialog context into another
trust domain does so only within a propagation relationship that the
deployment's authorization mechanism permits. Authorization to forward
or subscribe at the transport layer does not by itself make an entity
a participant.</t>
          </li>
          <li>
            <t>Modality changes: Transforming a modality, such as converting audio to
text, does not create a new dialog. Participants and intermediaries
<bcp14>MUST</bcp14> keep the same dialog identifier and current lifecycle state
across the transformation.</t>
          </li>
          <li>
            <t>Continuity over time: After a connection loss, a participant <bcp14>MAY</bcp14>
reconnect, over a new transport session if necessary, using the
existing dialog identifier. It <bcp14>MUST</bcp14> obtain the current context from
the controller with STATE_REQUEST before acting on state that may have
changed while it was disconnected. Recovering the dialog context does
not imply that any application operation was delivered or completed,
or that it is safe to retry.</t>
          </li>
          <li>
            <t>Unreachability: If the controller is unreachable, participants <bcp14>MUST</bcp14>
suspend actions that depend on an unconfirmed context change. Each
participant remains at the last generation it accepted until the
controller is reachable again or the dialog expires. Participants <bcp14>MUST NOT</bcp14> create
a replacement dialog solely because a path or intermediary failed. If
an invitee or participant is unreachable, the controller <bcp14>MAY</bcp14> revoke it
or let the dialog expire, according to deployment policy.</t>
          </li>
        </ul>
      </section>
      <section anchor="control-encoding">
        <name>Control Message Encoding</name>
        <t>A PACE control message is a UTF-8 encoded JSON object <xref target="RFC8259"/>.
Every control message contains these members:</t>
        <ul spacing="normal">
          <li>
            <t><tt>version</tt>: The integer 1.</t>
          </li>
          <li>
            <t><tt>type</tt>: One of the operations in <xref target="lifecycle"/>.</t>
          </li>
          <li>
            <t><tt>dialog_id</tt>: The canonical textual form of the dialog's UUID.</t>
          </li>
          <li>
            <t><tt>generation</tt>: A non-negative integer no greater than 2^53 - 1.</t>
          </li>
          <li>
            <t><tt>sender_id</tt>: The sender's participant identifier.</t>
          </li>
          <li>
            <t><tt>message_id</tt>: A UUID version 4 unique to this message.</t>
          </li>
        </ul>
        <t>Control messages also carry the following type-specific members:</t>
        <ul spacing="normal">
          <li>
            <t><tt>context</tt>: The complete dialog context, encoded as the JSON object
defined in <xref target="dialog-context"/>.</t>
          </li>
          <li>
            <t><tt>in_reply_to</tt>: The <tt>message_id</tt> of the OPEN or UPDATE being accepted
or rejected, of the CANCEL being acknowledged, or of the message an
ERROR rejects.</t>
          </li>
          <li>
            <t><tt>target_id</tt>: The participant identifier whose propagation relationship
is revoked.</t>
          </li>
          <li>
            <t><tt>scope</tt>: The cancellation scope: <tt>operation</tt>, <tt>subtree</tt>, or <tt>dialog</tt>
(<xref target="cancellation"/>).</t>
          </li>
          <li>
            <t><tt>target</tt>: The operation to cancel when <tt>scope</tt> is <tt>operation</tt>. Its
form is defined by the transport binding (<xref target="cancel-over-moqt"/>).</t>
          </li>
          <li>
            <t><tt>outcome</tt>: One of <tt>stopped</tt>, <tt>completed</tt>, or <tt>irreversible</tt>.</t>
          </li>
          <li>
            <t><tt>last_accepted_generation</tt>: The highest generation the sender has
accepted from the controller, or -1 if it has accepted none.</t>
          </li>
          <li>
            <t><tt>reason</tt>: One of <tt>malformed</tt>, <tt>unsupported-version</tt>,
<tt>unsupported-operation</tt>, <tt>stale-generation</tt>, <tt>unauthorized</tt>,
<tt>authorization-unavailable</tt>, or <tt>policy-rejected</tt>. These
distinguish validation, authorization, and policy failures
from transport failures, which MOQT reports separately (<xref section="6.1.5" sectionFormat="of" target="ARCH"/>).</t>
          </li>
        </ul>
        <t>Each type requires the members listed below:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Required type-specific members</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">OPEN</td>
              <td align="left">
                <tt>context</tt></td>
            </tr>
            <tr>
              <td align="left">ACCEPT</td>
              <td align="left">
                <tt>in_reply_to</tt></td>
            </tr>
            <tr>
              <td align="left">REJECT</td>
              <td align="left">
                <tt>in_reply_to</tt>; <tt>reason</tt> optional</td>
            </tr>
            <tr>
              <td align="left">UPDATE</td>
              <td align="left">
                <tt>context</tt></td>
            </tr>
            <tr>
              <td align="left">JOIN_REQUEST</td>
              <td align="left">none</td>
            </tr>
            <tr>
              <td align="left">LEAVE</td>
              <td align="left">none</td>
            </tr>
            <tr>
              <td align="left">REVOKE</td>
              <td align="left">
                <tt>target_id</tt>, <tt>context</tt></td>
            </tr>
            <tr>
              <td align="left">TERMINATE</td>
              <td align="left">
                <tt>context</tt></td>
            </tr>
            <tr>
              <td align="left">STATE_REQUEST</td>
              <td align="left">
                <tt>last_accepted_generation</tt></td>
            </tr>
            <tr>
              <td align="left">STATE</td>
              <td align="left">
                <tt>context</tt></td>
            </tr>
            <tr>
              <td align="left">CANCEL</td>
              <td align="left">
                <tt>scope</tt>; <tt>target</tt> when <tt>scope</tt> is <tt>operation</tt></td>
            </tr>
            <tr>
              <td align="left">CANCEL_ACK</td>
              <td align="left">
                <tt>in_reply_to</tt>, <tt>outcome</tt></td>
            </tr>
            <tr>
              <td align="left">ERROR</td>
              <td align="left">
                <tt>in_reply_to</tt>, <tt>reason</tt></td>
            </tr>
          </tbody>
        </table>
        <t>For OPEN, <tt>context</tt> has generation 0 and state <tt>pending</tt>, and carries
<tt>parent_dialog_ids</tt> when the dialog is delegated. For UPDATE,
REVOKE, and TERMINATE, <tt>context</tt> has the next generation, and a
TERMINATE context has state <tt>terminated</tt>. An UPDATE that adds a
participant sets that participant's state to <tt>invited</tt>; the
participant becomes <tt>active</tt> only after it accepts and the controller
publishes a later UPDATE.</t>
        <t>Three optional members carry information that is not part of the dialog
context:</t>
        <ul spacing="normal">
          <li>
            <t><tt>parameters</tt>: On OPEN, ACCEPT, UPDATE, and JOIN_REQUEST, the dialog
parameters being proposed or accepted, such as modalities and
application protocols (<xref target="dialog-parameters"/>).</t>
          </li>
          <li>
            <t><tt>credentials</tt>: On any message, an identity assertion or
authorization proof in a format selected by the deployment
(<xref target="identity-formats"/>). A participant
refreshes its credentials before they expire by including new ones
on a later message.</t>
          </li>
          <li>
            <t><tt>nonce</tt>: On OPEN, ACCEPT, UPDATE, and JOIN_REQUEST, a fresh random
value, with at least 128 bits of entropy and base64url-encoded, to
which the recipient binds the presentation in its next
<tt>credentials</tt> (<xref target="key-binding"/>).</t>
          </li>
        </ul>
        <t>JSON member order is insignificant. Receivers <bcp14>MUST</bcp14> ignore unrecognized
optional members, <bcp14>MUST</bcp14> reject an unrecognized <tt>type</tt>, and <bcp14>MUST</bcp14> reject
messages with missing required members, invalid member types, or an
unsupported version. Receivers <bcp14>MUST</bcp14> limit the size of a control message
to a locally configured maximum. A participant <bcp14>MUST NOT</bcp14> include
application content in a control message.</t>
      </section>
    </section>
    <section anchor="moqt-binding">
      <name>MOQT Binding</name>
      <t>This section specifies how the dialog management protocol of
<xref target="dialog-management"/> is carried over MOQT.</t>
      <section anchor="namespace">
        <name>Namespace Organization</name>
        <t>PACE uses MOQT's hierarchical namespace for routing, isolation, and
multiplexing. In MOQT, content is addressed by a Track Namespace (an
ordered set of up to 32 fields, compared as byte sequences
<xref target="MoQ-TRANSPORT"/>) together with a Track Name. PACE organizes
communication into two namespace scopes: an agent namespace for each
agent's identity and invitations, and a dialog namespace for all of a
dialog's traffic.</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
(<xref target="agent-card"/>)</t>
            </li>
            <li>
              <t><tt>("pace", "agents", {agent-id}, "invites") -- {invitee-id}</tt> — One
track per agent it invites to dialogs (<xref target="invitations"/>)</t>
            </li>
          </ul>
          <t>The common prefix <tt>("pace", "agents")</tt> enables SUBSCRIBE_NAMESPACE-based
discovery of all agents on the network. An agent follows another by
subscribing to its card and to the invitation track named by the
follower's own agent-id. See <xref target="agent-discovery"/> for the complete
discovery flow.</t>
        </section>
        <section anchor="dialog-namespace">
          <name>Dialog Namespace</name>
          <artwork><![CDATA[
  ("pace", "dialogs", {dialog-id}, {agent-id}) -- {track}
]]></artwork>
          <t>The dialog-id is the dialog identifier (<xref target="dialog-context"/>). The
controller mints it when it opens the dialog. Each participant
publishes its tracks for the dialog under its own agent-id field
within the dialog's namespace; the agent-id is the participant
identifier used in the dialog context. Each participant issues
SUBSCRIBE_TRACKS on the dialog prefix <tt>("pace", "dialogs",
{dialog-id})</tt>, so it receives every participant's tracks, including
those of participants added later, as PUBLISH messages forwarded by
the relay.</t>
          <t>Each participant in a dialog publishes the following tracks:</t>
          <ul spacing="normal">
            <li>
              <t><tt>"ctrl"</tt> — Dialog control messages (<xref target="control-encoding"/>)</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>"progress"</tt> — Progress output, such as token counts, elapsed time,
and liveness, kept apart from the response</t>
            </li>
            <li>
              <t><tt>"ops/{req-id}"</tt> — Request/response operations (one track per request)</t>
            </li>
          </ul>
          <t>Only the <tt>ctrl</tt> track carries the dialog context. The other tracks
carry dialog content and are outside the dialog context. In the terms
of <xref section="4.2.11" sectionFormat="of" target="ARCH"/>, <tt>chat</tt>, <tt>audio</tt>, and <tt>video</tt> carry
response output, operation and protocol binding tracks carry
information output, and <tt>progress</tt> carries progress output.</t>
          <t>Protocol bindings extend the dialog namespace with additional
namespace fields, so that multiple protocols can operate concurrently
within a single dialog without track name collisions:</t>
          <artwork><![CDATA[
("pace", "dialogs", {dialog-id}, {agent-id}, {proto}, {category},
 ...) -- {id}
]]></artwork>
          <ul spacing="normal">
            <li>
              <t><tt>{proto}</tt> is the protocol identifier of the binding: <tt>"mcp"</tt>,
<tt>"poppy"</tt>, <tt>"a2a"</tt>, or <tt>"ext"</tt> followed by a further field naming
another protocol (<xref target="protocol-bindings"/>).</t>
            </li>
            <li>
              <t><tt>{category}</tt> is the operation or primitive type (e.g., <tt>request</tt>,
<tt>response</tt>, <tt>task</tt> for A2A; <tt>tools</tt>, <tt>resources</tt>, <tt>prompts</tt> for MCP).</t>
            </li>
            <li>
              <t><tt>{id}</tt>, the track name, is the request, task, tool or resource
identifier. A binding <bcp14>MAY</bcp14> define further namespace fields between
<tt>{category}</tt> and the track name.</t>
            </li>
          </ul>
          <t>For example, in a dialog whose dialog-id is
<tt>550e8400-e29b-41d4-a716-446655440000</tt> (written <tt>D</tt> below), the
following Full Track Names are used:</t>
          <artwork><![CDATA[
A2A: "agent-a" sends request "r1" (in a dialog with "agent-b")
  ("pace","dialogs",D,"agent-a","a2a","request") -- "r1"

A2A: "agent-b" publishes updates for task "t1"
  ("pace","dialogs",D,"agent-b","a2a","task") -- "t1"

MCP: client "agent-a" calls tool "read_file" on "fs-server"
  ("pace","dialogs",D,"agent-a","mcp","tools","read_file")
      -- "request"

MCP: "fs-server" publishes the result of that call
  ("pace","dialogs",D,"fs-server","mcp","tools","read_file")
      -- "response"
]]></artwork>
          <t>The MCP tracks above are the <tt>request</tt> and <tt>response</tt> tracks of
<tt>(mcp, {server-id}, clients, {client-id}, tools, {tool-name})</tt> in MCP
over MOQT <xref target="MCP-MOQT"/>, with the leading
<tt>(mcp, {server-id}, clients, {client-id})</tt> fields replaced by the
dialog namespace and the publisher's agent-id (<xref target="mcp-binding"/>).</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="invitations">
          <name>Invitations</name>
          <artwork><![CDATA[
  ("pace", "agents", {controller-id}, "invites") -- {invitee-id}
]]></artwork>
          <t>An agent learns a dialog's dialog-id before it can subscribe to the
dialog. A controller tells an invitee that follows it
(<xref target="agent-discovery"/>) by publishing on a track under its own agent
namespace, named by the invitee's agent-id. Each object, in its own
group, is a JSON object with these members:</t>
          <ul spacing="normal">
            <li>
              <t><tt>dialog_id</tt> — The dialog identifier</t>
            </li>
            <li>
              <t><tt>controller_id</tt> — The controller's agent-id</t>
            </li>
            <li>
              <t><tt>expires_at</tt> — Optional; the time after which the invitation is
void</t>
            </li>
          </ul>
          <t>An invitation only points to the dialog. The dialog context, including
the OPEN or UPDATE that invites the agent, stays on the controller's
<tt>ctrl</tt> track, which the invitee reads before deciding. Relay
authorization (<xref target="relay-authorization"/>) forwards each invitation track
only to the invitee it names, so other followers of the controller do
not see it. An invitee that comes online late catches up on pending
invitations with a join fetch and ignores those whose <tt>expires_at</tt> has
passed.</t>
          <t>An agent that does not follow the controller learns the dialog-id out
of band, for example through the application protocol's own channel
(<xref target="poppy-binding"/>).</t>
          <t>Editor's note: This document does not define how to invite an agent
that neither follows the controller nor can be reached out of band, or
how to advertise a dialog for others to join. These are left for
future work.</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 via the SETUP message exchange
defined in <xref target="MoQ-TRANSPORT"/>, an agent performs the bootstrap sequence
to make itself discoverable:</t>
          <ol spacing="normal" type="1"><li>
              <t>Announce: PUBLISH_NAMESPACE on <tt>("pace", "agents", {agent-id})</tt></t>
            </li>
            <li>
              <t>Publish Agent Card: PUBLISH on track <tt>"card"</tt> under its namespace</t>
            </li>
            <li>
              <t>Discover peers: 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 only under its own agent-id: its card and
invitations under <tt>("pace","agents",{agent-id})</tt>, and its dialog
tracks under <tt>("pace","dialogs",{dialog-id},{agent-id})</tt>. A
participant issues SUBSCRIBE_TRACKS on the dialog prefix to receive
the tracks of all participants. The relay handles fan-out to all
subscribers via prefix matching. This 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>Each PACE object payload is one protocol message, with no PACE
header: a control message (<xref target="control-encoding"/>) on <tt>ctrl</tt> tracks, an
invitation on invitation tracks, and the protocol's native message on
binding tracks. The
track namespace identifies the protocol, and MOQT carries the length.</t>
          <t>Payloads are uncompressed unless the participants agree on a
<tt>content_encoding</tt> dialog parameter (<xref target="dialog-parameters"/>). It
applies to binding tracks only, never to <tt>ctrl</tt> or invitation tracks.</t>
        </section>
      </section>
      <section anchor="dialog-over-moqt">
        <name>Dialog Operations over MOQT</name>
        <t>This section specifies how the operations of <xref target="dialog-management"/> are
carried over MOQT. Each control message is one MOQT object on the
sender's <tt>ctrl</tt> track under
<tt>("pace","dialogs",{dialog-id},{agent-id})</tt>. MOQT control messages
(PUBLISH, SUBSCRIBE, their responses, PUBLISH_DONE) establish and end
the subscriptions that carry those objects. They are not dialog
operations: PUBLISH_OK accepts a MOQT subscription, not a dialog, and a
participant <bcp14>MUST NOT</bcp14> infer acceptance, rejection, or termination of a
dialog from a MOQT response or cancellation alone.</t>
        <t>The <tt>ctrl</tt> track <bcp14>MUST</bcp14> use Subgroup Delivery Mode and <bcp14>MUST NOT</bcp14> use
Datagram Delivery Mode or a finite delivery timeout. A participant
publishes control objects in increasing Object ID order, and the
controller publishes state-changing operations in increasing
generation order. Because <tt>ctrl</tt> is a track of its own, a CANCEL,
ERROR, or TERMINATE is not lost or delayed when a content track fails
or falls behind.</t>
        <section anchor="opening">
          <name>Opening a Dialog</name>
          <t>Prerequisite: B learns the dialog-id from A's invitation, which
requires that B follows A (<xref target="agent-discovery"/>), or out of band. A
does not need B's prefix: all participants' tracks are under the
dialog prefix.</t>
          <t>Below, PUBLISH, SUBSCRIBE, and SUBSCRIBE_TRACKS are MOQT messages;
OPEN, ACCEPT, and UPDATE are PACE control messages sent as objects on
the sender's <tt>ctrl</tt> track. Agent A (controller) opens a dialog with
Agent B (invitee):</t>
          <ol spacing="normal" type="1"><li>
              <t>A generates a dialog-id (UUID version 4) and issues
SUBSCRIBE_TRACKS on <tt>("pace","dialogs",{dialog-id})</tt>, which covers
all participants' tracks, including future ones.</t>
            </li>
            <li>
              <t>A issues PUBLISH for
<tt>("pace","dialogs",{dialog-id},"agent-a") -- "ctrl"</tt> and sends OPEN
on it, listing B as <tt>invited</tt>, with <tt>parameters</tt>
(<xref target="dialog-parameters"/>) and <tt>credentials</tt>.</t>
            </li>
            <li>
              <t>A sends an invitation on
<tt>("pace","agents","agent-a","invites") -- "agent-b"</tt>
(<xref target="invitations"/>), which B subscribed to when it started following
A.</t>
            </li>
            <li>
              <t>B issues SUBSCRIBE with FILL_PARAMETERS on A's <tt>ctrl</tt> track, reads
OPEN, and decides. Until it accepts, B subscribes to nothing else,
so it receives no dialog content.</t>
            </li>
            <li>
              <t>B issues PUBLISH for
<tt>("pace","dialogs",{dialog-id},"agent-b") -- "ctrl"</tt> and sends
ACCEPT (or REJECT) on it, with its parameters and credentials. On
accepting, B issues SUBSCRIBE_TRACKS on the dialog prefix, which
also covers A's <tt>ctrl</tt> track.</t>
            </li>
            <li>
              <t>The relay forwards B's PUBLISH to A through A's SUBSCRIBE_TRACKS
from step 1, and A reads ACCEPT.</t>
            </li>
            <li>
              <t>A sends UPDATE (generation 1) on its <tt>ctrl</tt> track, marking B and
the dialog <tt>active</tt>. If B rejected, the UPDATE marks B <tt>rejected</tt>,
and B ends its <tt>ctrl</tt> track with PUBLISH_DONE.</t>
            </li>
          </ol>
          <t>Tracks either agent publishes later reach every participant through
its SUBSCRIBE_TRACKS on the dialog prefix. Multi-party dialogs follow
the same pattern, and existing participants receive a new
participant's tracks without subscribing again.</t>
        </section>
        <section anchor="joining">
          <name>Joining a Dialog</name>
          <t>An agent that knows a dialog's dialog-id but was not invited asks to
join by issuing PUBLISH for its own <tt>ctrl</tt> track,
<tt>("pace","dialogs",{dialog-id},{joiner-id}) -- "ctrl"</tt>, and sending
JOIN_REQUEST as the first object on it. The relay forwards the
PUBLISH to every participant holding SUBSCRIBE_TRACKS on the dialog
prefix, not only the controller. Only the controller acts on
JOIN_REQUEST; other participants <bcp14>MUST</bcp14> ignore it, and <bcp14>MAY</bcp14> decline a
PUBLISH for a track whose agent-id is not in the dialog context. A
joiner therefore discloses in its credentials only claims it is
willing for every participant to see. The controller validates the
credentials and decides whether to admit the joiner. The joiner
subscribes to the controller's <tt>ctrl</tt> track with FILL_PARAMETERS, so
it receives the current dialog state as well as the answer. To
admit it, the controller invites the joiner with UPDATE, the joiner
answers with ACCEPT and subscribes to the dialog prefix, and the
controller's next UPDATE marks it <tt>active</tt>. A controller that declines
answers with ERROR <tt>policy-rejected</tt>, and the joiner then ends its
<tt>ctrl</tt> track with PUBLISH_DONE. Before admission, the joiner's
authorization covers only publishing its own <tt>ctrl</tt> track and reading
the controller's (<xref target="relay-authorization"/>).</t>
          <section anchor="moqt-setup-extensions">
            <name>MOQT Setup Extensions</name>
            <t>MOQT Setup Options are exchanged hop by hop.
PACE defines one Setup Option, which lets a PACE-aware relay or a
directly connected peer learn that the endpoint implements PACE:</t>
            <table>
              <thead>
                <tr>
                  <th align="left">Setup Option</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">Highest PACE control-message version supported</td>
                </tr>
              </tbody>
            </table>
            <t>The <tt>version</tt> member of each control message remains authoritative.</t>
          </section>
        </section>
        <section anchor="idle-detection">
          <name>Idle Detection</name>
          <t>In this binding, a dialog is idle (<xref target="dialog-lifetime"/>) while no
participant publishes an object on any of its tracks.</t>
        </section>
        <section anchor="updating-a-dialog">
          <name>Updating a Dialog</name>
          <t>The controller changes the participant set or the expiration by
publishing UPDATE on its <tt>ctrl</tt> track with the complete context at the
next generation. Participants request changes with JOIN_REQUEST or
LEAVE; only the controller commits them. Parameter changes, such as
adding a modality, are proposed in <tt>parameters</tt> on UPDATE, and each
participant answers with ACCEPT or REJECT (<xref target="lifecycle"/>). An UPDATE
that adds a participant is followed by an invitation to it
(<xref target="invitations"/>).</t>
          <t>Participants <bcp14>MAY</bcp14> use MOQT's REQUEST_UPDATE message
to change per-subscription parameters, such as pausing delivery with
FORWARD=0, resuming with FORWARD=1, or changing priorities and
filters, without tearing down the subscription. REQUEST_UPDATE is the
right tool for track-level changes that do not need dialog-wide
agreement; pausing a video track while chat and ctrl keep flowing is
a typical case. Pausing a subscription does not stop the publisher
from producing objects and is not a cancellation.</t>
        </section>
        <section anchor="dialog-recovery">
          <name>Recovery</name>
          <t>PACE recovers from network and intermediary failures in several ways:</t>
          <ul spacing="normal">
            <li>
              <t>QUIC Connection Migration: QUIC's connection ID lets a MOQT session
survive network path changes (such as WiFi to cellular). The dialog
state is unaffected.</t>
            </li>
            <li>
              <t>Relay Caching: Relays may cache recent objects, so a reconnecting
agent can pick up what it missed without the peer retransmitting.
Relays are not required to cache, and they never become the
authoritative source of the dialog context.</t>
            </li>
            <li>
              <t>Dialog Resumption: After losing its MOQT session, which it detects
through the QUIC idle timeout or a subscription timeout, an agent
reconnects
(to the same relay or an alternate one), re-issues PUBLISH_NAMESPACE
on its agent namespace, its follow subscriptions
(<xref target="agent-discovery"/>), and SUBSCRIBE_TRACKS on the dialog prefix,
which includes the controller's <tt>ctrl</tt> track, and sends STATE_REQUEST with its last
accepted generation. It applies the controller's STATE only after
authenticating the controller and checking that the generation is not
older than its last accepted one (<xref target="generations"/>). A join fetch from
the last Location it received then shows which content was published
while it was away, so it can decide whether to resend its own input.</t>
            </li>
            <li>
              <t>Join Fetch for Mid-Dialog Catch-Up: An agent joining a dialog in
progress, or recovering after a disconnect, uses the fill fetch
mechanism from <xref target="MoQ-TRANSPORT"/>. The subscriber issues SUBSCRIBE with
FILL_PARAMETERS on the chat or operation track; the publisher opens a
unidirectional fill fetch stream carrying the historical range
(typically the latest complete group) before live objects resume on
the subscription. "Catch up on prior content, then follow live"
happens atomically, without a separate FETCH roundtrip. For the dialog
context itself, STATE is authoritative; a fetched old <tt>ctrl</tt> object
cannot establish the current lifecycle state by itself.</t>
            </li>
            <li>
              <t>Bounded Historical Fetch: To retrieve a specific range of past objects
deterministically, for example replaying a task's output history,
agents use FETCH with explicit Start and End Locations. The publisher
confirms the actual End Location in FETCH_OK.</t>
            </li>
            <li>
              <t>Unreachable Controller: If the controller's <tt>ctrl</tt> track cannot be
resubscribed, participants follow the unreachability rules in
<xref target="propagation"/>: they suspend context-dependent actions and do not
create a replacement dialog. A slow subscriber whose subscription ends
with PUBLISH_DONE (TOO_FAR_BEHIND) resubscribes and resynchronizes
with STATE_REQUEST.</t>
            </li>
          </ul>
        </section>
        <section anchor="cancel-over-moqt">
          <name>Cancellation</name>
          <t>A participant sends CANCEL (<xref target="cancellation"/>) as an object on its
<tt>ctrl</tt> track at critical priority (0-15). Scopes <tt>dialog</tt> and
<tt>subtree</tt> need no <tt>target</tt>. For scope <tt>subtree</tt>, a receiver that
controls a delegated dialog whose <tt>parent_dialog_ids</tt> include this
dialog sends CANCEL with scope <tt>dialog</tt> on its own <tt>ctrl</tt> track in
that delegated dialog. For scope <tt>operation</tt>, <tt>target</tt> names a track
the sender publishes in the dialog and, optionally, a group on it:</t>
          <sourcecode type="json"><![CDATA[
{
  "namespace": ["mcp", "tools", "search"],
  "track": "request",
  "group": 3
}
]]></sourcecode>
          <t><tt>namespace</tt> lists the namespace fields that follow
<tt>("pace","dialogs",{dialog-id},{agent-id})</tt>. Without <tt>group</tt>, all work
started by objects on the track is cancelled. Each receiver doing the
affected work publishes CANCEL_ACK on its own <tt>ctrl</tt> track and stops
publishing objects for that work, ending a track that carried only
that work with PUBLISH_DONE.</t>
          <t>Pausing delivery with REQUEST_UPDATE (FORWARD=0), unsubscribing, or
closing a MOQT session does not cancel work.</t>
        </section>
        <section anchor="termination-and-revocation">
          <name>Termination and Revocation</name>
          <t>The controller ends the dialog by sending TERMINATE on its <tt>ctrl</tt>
track (<xref target="termination"/>). Upon termination, pending operations are
cancelled, and dialog resources are released after a configurable
grace period.</t>
          <t>After TERMINATE, or when <tt>expires_at</tt> passes, each participant <bcp14>SHOULD</bcp14>
send PUBLISH_DONE on every dialog track it was publishing (ctrl,
chat, audio, video, and any operation tracks), and ends its
subscription to the dialog prefix. PUBLISH_DONE signals that no
further objects will be delivered on the track, allowing subscribers
and relays to release state without waiting for timeouts. Neither
PUBLISH_DONE nor STOP_SENDING substitutes for TERMINATE.</t>
          <t>A participant leaves by sending LEAVE on its <tt>ctrl</tt> track. The
controller commits it with UPDATE, marking the participant <tt>left</tt>,
and <bcp14>SHOULD</bcp14> send TERMINATE if only the controller remains active
(<xref target="lifecycle"/>). The leaver then ends its tracks with PUBLISH_DONE and
its subscription to the dialog prefix.</t>
          <t>When the controller sends REVOKE, every participant stops forwarding
dialog context to the revoked participant and cancels any
subscriptions held only on its behalf (<xref target="lifecycle"/>). The revoked
participant ends its tracks with PUBLISH_DONE, and participants <bcp14>MAY</bcp14>
decline its later PUBLISHes. The deployment
also withdraws the revoked participant's authorization at the relay,
for example by letting its <xref target="MoQ-C4M"/> token expire or by refusing
revalidation, so that the relay stops delivering the participant's
subscriptions to the dialog's tracks.</t>
          <t>When an agent is leaving the network entirely (not just a single
dialog), it cancels its PUBLISH_NAMESPACE for
<tt>("pace","agents",{agent-id})</tt>. Relays then send NAMESPACE_DONE to
agents with matching SUBSCRIBE_NAMESPACE subscriptions.</t>
        </section>
      </section>
    </section>
    <section anchor="data-exchange">
      <name>Multi-Modal Data Exchange</name>
      <t>Over the MOQT binding, a dialog can carry several data modalities
concurrently, each with appropriate quality of service. This content
is outside the dialog context; a change of modality does not change
the dialog (<xref target="propagation"/>).</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, documents</td>
              <td align="left">Reliable delivery</td>
            </tr>
          </tbody>
        </table>
        <t>These classes correspond to the low-latency loss-tolerant, reliable
ordered, and high-throughput reliable delivery semantics of
<xref section="8.1" sectionFormat="of" target="ARCH"/>.</t>
      </section>
      <section anchor="channels">
        <name>Channel Architecture</name>
        <t>Each modality maps to dedicated MOQT tracks within the dialog
namespace (<xref target="dialog-namespace"/>). Different modalities are
isolated by track name while sharing the dialog context and
authorization.</t>
        <t>Within a track, a MOQT group is a synchronization point. The objects
in a group carry what belongs together at that point, such as one
message, one request and its incremental results, or one phase of an
operation, and relays carry them together. A publisher starts a new
group at each point where a receiver can begin consuming the track
without earlier objects, so a subscriber that joins or recovers starts
at a group boundary (<xref target="dialog-recovery"/>).</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 tiers of
subscriber priority:</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">Dialog Control</td>
              <td align="left">All control messages on the <tt>ctrl</tt> track, including CANCEL, ERROR, and REVOKE</td>
            </tr>
            <tr>
              <td align="left">16-31</td>
              <td align="left">Urgent Signals</td>
              <td align="left">Application signals that must preempt content, such as a request for a human</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">Agent Cards, invitations</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, documents</td>
            </tr>
          </tbody>
        </table>
        <t>MOQT relays forward Publisher Priority unchanged, so PACE applies
policy through subscriber priority, which MOQT applies before publisher
priority. A subscriber sets the subscriber priority of each
subscription according to its policy for that peer and track, and can
change it with REQUEST_UPDATE, so a publisher cannot raise the urgency
of its traffic beyond what its subscribers allow. A subscriber <bcp14>MUST</bcp14>
subscribe to a <tt>ctrl</tt> track with a subscriber priority in the Dialog
Control tier.</t>
      </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","dialogs",{dialog-id},"agent-a") -- "ops/{req-id}"</tt>. Agent B,
which has subscribed to the dialog prefix, receives the request,
processes it, and publishes the response on its own corresponding track
<tt>("pace","dialogs",{dialog-id},"agent-b") -- "ops/{req-id}"</tt>. Agent A
receives the response through its own subscription to the dialog
prefix.</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.
The publisher starts a new group at each synchronization point
(<xref target="channels"/>), such as a phase transition (initialization, progress,
completion), and the objects in a group carry the incremental data for
that phase.</t>
        <t>Late-joining subscribers catch up mid-operation with a join fetch, and
retrieve a specific range with a bounded fetch (<xref target="dialog-recovery"/>).</t>
        <t>Upon operation completion, the publisher sends PUBLISH_DONE on the
operation track to signal end-of-stream. Receivers treat PUBLISH_DONE
as the authoritative completion marker; publishers <bcp14>MUST NOT</bcp14> emit
further objects on that track after PUBLISH_DONE.</t>
        <t>To cancel an in-progress streaming operation, the requester publishes
CANCEL on its <tt>ctrl</tt> track (<xref target="cancel-over-moqt"/>), or the application
protocol's own cancel message on its request or operation track. The
publisher then stops the operation and sends PUBLISH_DONE to end the
stream. REQUEST_UPDATE with
FORWARD=0 only pauses delivery to that subscriber; it does not cancel
the operation.</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 ascending group order 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>
      <ul spacing="normal">
        <li>
          <t>Point-to-Point: Two agents publish and subscribe to each other's
dialog tracks. Used for tool invocation, task delegation, and
bilateral collaboration.</t>
        </li>
        <li>
          <t>Point-to-Multipoint (Fan-Out): 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>
        </li>
        <li>
          <t>Multi-Party: All participants publish on their own tracks and
subscribe to the dialog prefix. The controller adds a participant
with UPDATE; existing participants see the new participant in the
context and receive its tracks through their existing subscription.</t>
        </li>
        <li>
          <t>Hierarchical Teams: A coordinator creates child PACE dialogs to
delegate subtasks. Each level operates as a separate dialog with
narrowed authorization scope, and each child's <tt>parent_dialog_ids</tt>
links it to the dialogs above it (<xref target="dialog-context"/>). Delegation
chains (<xref target="delegation"/>) maintain an auditable path from the
original user authorization, and CANCEL with scope <tt>subtree</tt> stops the
work below a level (<xref target="cancellation"/>).</t>
        </li>
      </ul>
    </section>
    <section anchor="identity-discovery">
      <name>Agent Identity and Discovery</name>
      <section anchor="agent-identity-model">
        <name>Agent Identity Model</name>
        <t>PACE treats the agent as an authenticated principal distinct from the
user it represents. Separating the two makes it possible to revoke an
agent without affecting the user, scope an agent to a subset of what
the user is allowed to do, and audit what the agent did on its own
versus what the user initiated.</t>
        <t>PACE does not define a new identity token format or claim set. The
credential an agent presents in the <tt>credentials</tt> member of the
control message it uses to open, accept, or join a dialog
(<xref target="control-encoding"/>) identifies:</t>
        <ul spacing="normal">
          <li>
            <t>the agent, by its participant identifier in the dialog or by an
identifier that the protocol binding relates to it, such as the
Poppy <tt>client_id</tt> (<xref target="poppy-binding"/>);</t>
          </li>
          <li>
            <t>the user, workload, or organization the agent acts for; and</t>
          </li>
          <li>
            <t>when the agent acts for another agent, the delegation chain
(<xref target="delegation"/>).</t>
          </li>
        </ul>
        <t>In JWT-based formats, these map to the registered claims <tt>sub</tt>, <tt>iss</tt>,
<tt>iat</tt>, and <tt>exp</tt> <xref target="RFC7519"/> and to the <tt>act</tt> (actor) claim
<xref target="RFC8693"/> for delegation. Other formats carry the equivalent
information in their own fields. The token format and the trust
framework are chosen by the deployment.</t>
        <section anchor="identity-formats">
          <name>Credential Mechanisms</name>
          <t>Agents present credentials using existing mechanisms. The mechanism in
use is advertised in the Agent Card (<xref target="agent-card"/>) and indicated in
the <tt>credentials</tt> member of control messages; it is not negotiated in
MOQT SETUP, which is hop by hop (<xref target="moqt-setup-extensions"/>).</t>
          <table>
            <thead>
              <tr>
                <th align="left">Mechanism</th>
                <th align="left">Identity</th>
                <th align="left">Authorization</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">JWT</td>
                <td align="left">Agent and principal claims</td>
                <td align="left">Scope claims</td>
                <td align="left">
                  <xref target="RFC7519"/></td>
              </tr>
              <tr>
                <td align="left">SD-JWT</td>
                <td align="left">Selectively disclosed claims</td>
                <td align="left">Selectively disclosed scope claims</td>
                <td align="left">
                  <xref target="RFC9901"/></td>
              </tr>
              <tr>
                <td align="left">SD-Card</td>
                <td align="left">Attested agent metadata, key-bound presentation</td>
                <td align="left">Disclosure per discovery context</td>
                <td align="left">
                  <xref target="SD-CARD"/></td>
              </tr>
              <tr>
                <td align="left">OAuth 2.0 access token (JWT or opaque)</td>
                <td align="left">Token claims</td>
                <td align="left">Delegated user authorization</td>
                <td align="left">
                  <xref target="RFC6749"/></td>
              </tr>
              <tr>
                <td align="left">GNAP</td>
                <td align="left"> </td>
                <td align="left">Fine-grained, continuous grants</td>
                <td align="left">
                  <xref target="RFC9635"/></td>
              </tr>
              <tr>
                <td align="left">WIMSE workload credentials</td>
                <td align="left">Workload identity</td>
                <td align="left">With deployment policy</td>
                <td align="left">
                  <xref target="WIMSE-CREDS"/></td>
              </tr>
              <tr>
                <td align="left">mTLS client certificate</td>
                <td align="left">Infrastructure-anchored identity</td>
                <td align="left">With deployment policy</td>
                <td align="left">
                  <xref target="RFC8446"/></td>
              </tr>
              <tr>
                <td align="left">Common Access Token (CAT)</td>
                <td align="left"> </td>
                <td align="left">Relay-level namespace authorization</td>
                <td align="left">
                  <xref target="MoQ-C4M"/></td>
              </tr>
            </tbody>
          </table>
          <t>A deployment profile <bcp14>MUST</bcp14> pick at least one mechanism for identity and
one for authorization; one mechanism can provide both. Receivers <bcp14>MUST</bcp14>
verify a credential's signature, issuer, and expiration before acting
on its claims, and validate authorization using the rules of the
mechanism in use.</t>
        </section>
        <section anchor="delegation">
          <name>Delegation Chains</name>
          <t>When an agent acts on behalf of another agent, its credential carries
the delegation chain, such as nested <tt>act</tt> claims <xref target="RFC8693"/>, tracing
the authorization path (for
example, User → Coordinator → Researcher → Tool). Each entry names
the granter, the agent being granted, and the scope granted at that
hop. The receiver walks the chain and <bcp14>MUST</bcp14> reject it if any hop
broadens scope relative to its granter (see <xref target="authorization"/>).</t>
          <t>An agent that holds an SD-Card can obtain such a token with OAuth 2.0
Token Exchange, presenting its SD-Card as the actor token; the issued
token's <tt>act</tt> claim then carries the <tt>sub</tt> and <tt>iss</tt> of the SD-Card
(<xref section="7.1" sectionFormat="of" target="SD-CARD"/>).</t>
        </section>
        <section anchor="selective-disclosure">
          <name>Selective Disclosure</name>
          <t>Different peers need different claims: a tool may need only the
agent identifier and its authorization, not the delegation chain or
the principal. Agents <bcp14>SHOULD</bcp14> disclose only what each peer requires,
using the selective disclosure of the mechanism in use
(<xref target="identity-formats"/>). For agent metadata, SD-Card <xref target="SD-CARD"/> lets
an agent disclose issuer-attested claims per peer, and an Agent Card
(<xref target="agent-card"/>) can be an SD-Card.</t>
          <t>Selective disclosure does not make agents anonymous: an SD-Card's
<tt>sub</tt> is always disclosed and stable, so its presentations can be
linked (<xref section="3.1" sectionFormat="of" target="SD-CARD"/>). Identifier linkage is addressed
in <xref target="privacy"/>.</t>
        </section>
        <section anchor="key-binding">
          <name>Key-Bound Presentation</name>
          <t>A presentation proves possession only when it is bound to the
verifier and to a fresh value from it, such as an SD-Card Key Binding
JWT (<xref section="6" sectionFormat="of" target="SD-CARD"/>). A verifier sends a <tt>nonce</tt> in its
control message (<xref target="control-encoding"/>), and the peer's next control
message carries, in its <tt>credentials</tt> member, a presentation bound to
that nonce, with the verifier's agent-id as audience.</t>
          <t>When a dialog opens (<xref target="opening"/>), OPEN carries the controller's
nonce, ACCEPT carries the invitee's bound presentation and its own
nonce, and the controller's UPDATE carries its presentation bound to
that nonce. Joining uses JOIN_REQUEST, UPDATE, and ACCEPT the same
way (<xref target="joining"/>). A participant that requires a key-bound
presentation and does not receive a valid one <bcp14>MUST NOT</bcp14> treat the peer
as authenticated.</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 agent-id, B follows A with two
subscriptions:</t>
          <ol spacing="normal" type="1"><li>
              <t>B issues SUBSCRIBE on <tt>("pace","agents","agent-a") -- "card"</tt> and
reads A's Agent Card (<xref target="agent-card"/>).</t>
            </li>
            <li>
              <t>B issues SUBSCRIBE on
<tt>("pace","agents","agent-a","invites") -- "agent-b"</tt>. When A
invites B to a dialog, the invitation arrives on this track
(<xref target="invitations"/>), and B then subscribes to the dialog.</t>
            </li>
          </ol>
          <t>Following is B's choice: B follows the agents from which it is willing
to receive invitations. Following does not show B any of A's dialogs.
A follows B the same way when it expects invitations from B.</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 MOQT group).</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>PACE does not define a card format. An Agent Card is the agent's
application protocol metadata in a signed form, such as an A2A Agent
Card (<xref target="a2a-binding"/>) or an SD-Card <xref target="SD-CARD"/>, which lets the agent
disclose different claims to different peers. The card names the
agent's namespace <tt>("pace","agents",{agent-id})</tt>, and receivers <bcp14>MUST</bcp14>
check that it equals the namespace on which the card was published.</t>
          <t>The <tt>"card"</tt> track reaches every subscriber through relays, so a card
on it is not bound to any one verifier. It shows that its claims are
signed and unmodified, but not that the publisher is the agent.
Receivers <bcp14>MUST</bcp14> verify the card's signature and expiration before
acting on its claims, and a participant that relies on the agent's
identity <bcp14>MUST</bcp14> obtain a key-bound presentation in <tt>credentials</tt>
(<xref target="key-binding"/>).</t>
          <t>Every subscriber sees the card, so an agent that uses pairwise or
per-dialog agent-ids (<xref target="privacy"/>) publishes a separate card, with a
separate key, for each agent-id; otherwise the card links them.</t>
        </section>
      </section>
    </section>
    <section anchor="protocol-bindings">
      <name>Protocol Bindings</name>
      <t>PACE manages dialog identifiers, lifecycle, and context propagation.
Application-layer agent protocols keep their native message formats
and semantics, and carry the dialog context through their own
extension points (<xref target="carrying-dialog-context"/>). PACE does not change
those protocols; any standardized mapping is coordinated with their
maintainers.</t>
      <t>Over the MOQT binding, an application protocol's messages also need a
place on MOQT tracks. This section defines that placement for MCP,
the Personal Agent Protocol (Poppy), A2A, and a generic
JSON-RPC baseline for custom protocols. Each binding runs inside a
PACE dialog, using the dialog namespace (<xref target="dialog-namespace"/>)
and the channel architecture (<xref target="data-exchange"/>). Multiple bindings
can coexist in a single dialog, each under its own protocol namespace
field, so one agent can speak A2A to a peer and MCP to a tool in the
same dialog.</t>
      <section anchor="carrying-dialog-context">
        <name>Carrying Dialog Context in Application Protocols</name>
        <t>An application message joins a dialog by carrying a dialog reference
in the protocol's own extension point, whether or not the protocol
runs over MOQT. The reference is this object, under the metadata key
<tt>org.ietf.agentproto/dialog-context</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "dialog_id": "550e8400-e29b-41d4-a716-446655440000",
  "generation": 3
}
]]></sourcecode>
        <t><tt>generation</tt> is the latest generation the sender knows. The
controller's <tt>ctrl</tt> track stays authoritative; a receiver that needs
the full context sends STATE_REQUEST.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Protocol</th>
              <th align="left">Carried in</th>
              <th align="left">Keep distinct from</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">MCP</td>
              <td align="left">
                <tt>_meta</tt></td>
              <td align="left">JSON-RPC request IDs and the <xref target="MCP-MOQT"/> client ID</td>
            </tr>
            <tr>
              <td align="left">Poppy</td>
              <td align="left">Track namespace (<xref target="poppy-binding"/>)</td>
              <td align="left">Conversation ID</td>
            </tr>
            <tr>
              <td align="left">AutoGen</td>
              <td align="left">Message <tt>metadata</tt></td>
              <td align="left">Conversation ID</td>
            </tr>
            <tr>
              <td align="left">A2A</td>
              <td align="left">Message <tt>metadata</tt></td>
              <td align="left">
                <tt>contextId</tt>, <tt>taskId</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A dialog-id <bcp14>MUST NOT</bcp14> be used as a task, request, content, or session
identifier, or as a credential.</t>
      </section>
      <section anchor="binding-architecture">
        <name>Binding Architecture</name>
        <t>A binding specifies:</t>
        <ul spacing="normal">
          <li>
            <t>Protocol identifier: the namespace field that follows the
dialog-id.</t>
          </li>
          <li>
            <t>Namespace pattern: how operations map to namespace fields and track
names within the agent's dialog namespace.</t>
          </li>
          <li>
            <t>Message serialization: how native messages are encoded in MOQT
object payloads. Bindings <bcp14>SHOULD</bcp14> use the native wire format as the
object payload (<xref target="message-serialization"/>).</t>
          </li>
          <li>
            <t>Dialog reference: where messages carry the dialog reference
(<xref target="carrying-dialog-context"/>).</t>
          </li>
          <li>
            <t>Priority: which PACE priority tier its tracks use (<xref target="data-exchange"/>).</t>
          </li>
          <li>
            <t>Identity and authorization: how the protocol's own identity and
authorization constructs (if any) relate to the credential
mechanisms (<xref target="identity-formats"/>) in this document.</t>
          </li>
        </ul>
        <t>A complete mapping of each protocol operation to MOQT primitives
belongs in a protocol-specific document, such as <xref target="MCP-MOQT"/> for MCP.</t>
        <t>Protocols use distinct protocol namespace fields within PACE dialogs.
In the tables of this section, a pattern such as
<tt>("a2a", "task") -- {task-id}</tt> gives the namespace fields that follow
<tt>("pace", "dialogs", {dialog-id}, {agent-id})</tt>, then the track name.</t>
        <t>In the examples, D is the dialog-id.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Binding</th>
              <th align="left">Protocol Fields</th>
              <th align="left">Example Full Track Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">MCP</td>
              <td align="left">
                <tt>"mcp"</tt></td>
              <td align="left">
                <tt>("pace","dialogs",D,"fs","mcp","tools","read") -- "response"</tt></td>
            </tr>
            <tr>
              <td align="left">Poppy</td>
              <td align="left">
                <tt>"poppy"</tt></td>
              <td align="left">
                <tt>("pace","dialogs",D,"acme","poppy","conversation") -- "events"</tt></td>
            </tr>
            <tr>
              <td align="left">A2A</td>
              <td align="left">
                <tt>"a2a"</tt></td>
              <td align="left">
                <tt>("pace","dialogs",D,"agent-a","a2a","task") -- "t1"</tt></td>
            </tr>
            <tr>
              <td align="left">Generic</td>
              <td align="left">
                <tt>"ext", {proto}</tt></td>
              <td align="left">
                <tt>("pace","dialogs",D,"agent-a","ext","proto","rpc") -- "call"</tt></td>
            </tr>
          </tbody>
        </table>
      </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 dialog, MCP tracks add an <tt>"mcp"</tt>
namespace field after the dialog-id, under the namespace of the agent
that publishes the track:</t>
        <artwork><![CDATA[
Namespace: ("pace", "dialogs", {dialog-id}, {agent-id}, "mcp",
            {category}, ...)
Tracks:    {track-name}
]]></artwork>
        <t>The complete MCP over MOQT specification, covering track structure,
operation mapping, message serialization, Agent Skills, and relay
support, is defined in <xref target="MCP-MOQT"/>. PACE adopts its track semantics.
The mapping is mechanical: the leading
<tt>(mcp, {server-id}, clients, {client-id})</tt> or <tt>(mcp, {server-id})</tt>
fields of an MCP over MOQT namespace are replaced by <tt>("pace",
"dialogs", {dialog-id}, {agent-id}, "mcp")</tt>, and the remaining
namespace fields and the track name are kept unchanged. For example,
with <tt>{cli}</tt> and <tt>{srv}</tt> the agent-ids of the MCP client and server:</t>
        <table>
          <name>MCP over MOQT Tracks within PACE</name>
          <thead>
            <tr>
              <th align="left">Track</th>
              <th align="left">MCP over MOQT</th>
              <th align="left">Within PACE</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Tool request</td>
              <td align="left">
                <tt>(mcp, {server-id}, clients, {client-id}, tools, {tool-name}) -- request</tt></td>
              <td align="left">
                <tt>("pace","dialogs",{dialog-id},{cli},"mcp","tools",{tool-name}) -- "request"</tt></td>
            </tr>
            <tr>
              <td align="left">Tool response</td>
              <td align="left">
                <tt>(mcp, {server-id}, clients, {client-id}, tools, {tool-name}) -- response</tt></td>
              <td align="left">
                <tt>("pace","dialogs",{dialog-id},{srv},"mcp","tools",{tool-name}) -- "response"</tt></td>
            </tr>
            <tr>
              <td align="left">Resource</td>
              <td align="left">
                <tt>(mcp, {server-id}, resources) -- {resource-uri}</tt></td>
              <td align="left">
                <tt>("pace","dialogs",{dialog-id},{srv},"mcp","resources") -- {resource-uri}</tt></td>
            </tr>
          </tbody>
        </table>
        <t>MCP needs no handshake of its own, and MCP over MOQT client IDs are
not used within PACE: PACE supplies the dialog-id, and peers learn
each other's MCP tracks through SUBSCRIBE_TRACKS on the dialog
prefix.</t>
        <t>MCP messages keep their native JSON-RPC format as the object payload
(<xref target="message-serialization"/>) and carry the dialog reference in <tt>_meta</tt>
(<xref target="carrying-dialog-context"/>). Key operations map as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">MCP Operation</th>
              <th align="left">MOQT</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>tools/call</tt></td>
              <td align="left">Request object in a new group on the client's <tt>("mcp","tools",{tool-name}) -- "request"</tt> track; the result in the same group on the server's matching <tt>"response"</tt> track</td>
            </tr>
            <tr>
              <td align="left">Progress and partial results</td>
              <td align="left">Further objects in that group on the <tt>"response"</tt> track (<xref target="streaming"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>resources/read</tt></td>
              <td align="left">FETCH or SUBSCRIBE on the server's <tt>("mcp","resources") -- {resource-uri}</tt> track</td>
            </tr>
            <tr>
              <td align="left">
                <tt>notifications/cancelled</tt></td>
              <td align="left">Applied from PACE CANCEL (<xref target="cancellation"/>)</td>
            </tr>
          </tbody>
        </table>
        <t>MCP tracks use the PACE priority tiers (<xref target="data-exchange"/>) as
<xref target="MCP-MOQT"/> assigns them: control, tool, prompt, task and skill
execution tracks use Standard Operations, catalog and skill content tracks
Discovery, and resource tracks Bulk Transfer.</t>
        <t>An MCP server that holds an MCP SD-Card returns a key-bound
presentation to the client that requests one
(<xref section="8.2.4" sectionFormat="of" target="SD-CARD"/>). That presentation is specific to the
requesting client, and SD-Card requires the response carrying it to
have a private <tt>cacheScope</tt>. Within PACE, relay authorization keeps
the response track within the dialog (<xref target="relay-authorization"/>). The
nonce and audience prevent replay of the presentation, but other
participants of the dialog can read the claims it discloses, so the
server discloses only claims that every participant may see.</t>
        <t>When a Key Binding JWT carries an <tt>interaction_id</tt>, an agent includes
it in the MCP requests it makes for that interaction
(<xref section="8.5" sectionFormat="of" target="SD-CARD"/>). Agents <bcp14>MAY</bcp14> use the dialog-id as the
<tt>interaction_id</tt>, so that presentations and messages correlate on the
same identifier.</t>
      </section>
      <section anchor="poppy-binding">
        <name>Personal Agent Protocol Binding</name>
        <t>The Personal Agent Protocol (Poppy) <xref target="POPPY"/> lets a person's own
agent (the Personal Agent) sign in to a Company and talk to the
Company's agent (the Company Agent). Poppy defines discovery through a
<tt>poppy.json</tt> document, OAuth-based identity with pairwise user
identifiers, API access through OpenAPI and MCP, and a Conversations
protocol over HTTPS.</t>
        <t>This binding carries Poppy Conversations over PACE. Poppy discovery,
OAuth sign-in, web browsing, feedback and excluded-task documents are
unchanged and continue to use HTTPS. Poppy APIs of type <tt>mcp</tt> can use
the MCP binding (<xref target="mcp-binding"/>) when the Company offers MCP over
MOQT.</t>
        <section anchor="roles-and-discovery">
          <name>Roles and Discovery</name>
          <t>The Personal Agent is the PACE dialog initiator and the Company Agent
is the responder. A Company that offers this binding lists it in the
<tt>agent.protocols</tt> array of its <tt>poppy.json</tt>. Poppy ignores protocol
types it does not recognize, so the entry can sit alongside the
default <tt>poppy</tt> HTTPS entry:</t>
          <sourcecode type="json"><![CDATA[
{
  "agent": {
    "protocols": [
      { "type": "poppy", "endpoint": "https://acme.example/agent" },
      {
        "type": "pace",
        "binding": "poppy",
        "endpoint": "https://acme.example/poppy/pace",
        "relayEndpoint": "moqt://relay.acme.example:4443",
        "namespace": ["pace", "agents", "acme"]
      }
    ]
  }
}
]]></sourcecode>
          <t>The <tt>pace</tt> protocol type is not defined by Poppy Draft 0.3. Until Poppy
defines it, the entry is carried as a Poppy extension named under a
domain the publisher controls, as Poppy's extension rules require.
The Personal Agent <bcp14>MUST</bcp14> apply Poppy's <tt>poppy.json</tt> validation (domain
match and issuer checks) before using the entry. <tt>namespace</tt> is the
Company Agent's agent namespace, and <tt>endpoint</tt> is the HTTPS URL at
which the Personal Agent starts a conversation (see below).</t>
          <t>A Company that holds a Company SD-Card (<xref section="8.3" sectionFormat="of" target="SD-CARD"/>)
carries the <tt>agent</tt> member of its <tt>poppy.json</tt> in the SD-Card's
selectively disclosable <tt>agent</tt> claim. It can therefore leave the
<tt>pace</tt> entry out of its public <tt>poppy.json</tt> and disclose it only to
the Personal Agents it chooses. A disclosed <tt>pace</tt> entry that also
appears in <tt>poppy.json</tt> <bcp14>MUST</bcp14> match it, as SD-Card's consistency rules
require.</t>
        </section>
        <section anchor="namespace-structure">
          <name>Namespace Structure</name>
          <artwork><![CDATA[
Namespace: ("pace", "dialogs", {dialog-id}, {agent-id}, "poppy",
            "conversation")
Tracks:    "messages" | "requests" | "events" | "deltas"
]]></artwork>
          <table>
            <thead>
              <tr>
                <th align="left">Publisher</th>
                <th align="left">Track</th>
                <th align="left">Content</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Personal Agent</td>
                <td align="left">
                  <tt>messages</tt></td>
                <td align="left">Poppy messages sent by the Personal Agent</td>
              </tr>
              <tr>
                <td align="left">Personal Agent</td>
                <td align="left">
                  <tt>requests</tt></td>
                <td align="left">Conversation requests: handoff to a human</td>
              </tr>
              <tr>
                <td align="left">Company Agent</td>
                <td align="left">
                  <tt>events</tt></td>
                <td align="left">Poppy events: <tt>message</tt>, <tt>state</tt>, <tt>authorization</tt>, <tt>user_requested</tt>, <tt>direct_opened</tt>, <tt>direct_closed</tt></td>
              </tr>
              <tr>
                <td align="left">Company Agent</td>
                <td align="left">
                  <tt>deltas</tt></td>
                <td align="left">Non-durable <tt>text-delta</tt> events</td>
              </tr>
            </tbody>
          </table>
          <t>The Company Agent's <tt>{agent-id}</tt> is the one in the namespace advertised
in <tt>poppy.json</tt>. The Personal Agent's <tt>{agent-id}</tt> <bcp14>MUST</bcp14> be pairwise: it
<bcp14>MUST</bcp14> differ for each Company, <bcp14>MUST NOT</bcp14> be derived from the person's
identity, and <bcp14>SHOULD NOT</bcp14> equal the Poppy User ID. A Personal Agent <bcp14>MAY</bcp14>
use a fresh <tt>{agent-id}</tt> for each dialog. This preserves Poppy's
property that a Company knows a person only by an opaque identifier
that differs at every Company. It also stops relays, which always see
namespaces, from linking a person's conversations across Companies.
Personal Agents do not publish an Agent Card or answer agent discovery
(<xref target="agent-discovery"/>), and the Company does not follow them.</t>
        </section>
        <section anchor="starting-a-conversation">
          <name>Starting a Conversation</name>
          <t>The Company does not follow the Personal Agent, so the Personal Agent
gives it the dialog-id over HTTPS (<xref target="invitations"/>):</t>
          <ol spacing="normal" type="1"><li>
              <t>The Personal Agent generates a dialog-id and sends a POST request
to <tt>endpoint</tt> with the Poppy-Session header, as for every endpoint
a Poppy extension defines, and the body <tt>{"dialog_id": "&lt;D&gt;",
"agent_id": "&lt;pairwise agent-id&gt;"}</tt>.</t>
            </li>
            <li>
              <t>The Company verifies the Session JWT, issues SUBSCRIBE_TRACKS on
<tt>("pace","dialogs",D)</tt>, and responds with a token <xref target="MoQ-C4M"/>
that authorizes the Personal Agent for that dialog only
(<xref target="relay-authorization"/>).</t>
            </li>
            <li>
              <t>The Personal Agent connects to <tt>relayEndpoint</tt>, subscribes to the
dialog prefix, and publishes OPEN on its <tt>ctrl</tt> track, with itself
as controller and the Company Agent invited (<xref target="opening"/>). The
dialog continues as in <xref target="opening"/> from step 5.</t>
            </li>
          </ol>
        </section>
        <section anchor="operation-mapping">
          <name>Operation Mapping</name>
          <t>Poppy messages and events keep their native JSON format as the object
payload (<xref target="message-serialization"/>). The dialog reference is not
carried in them, because the dialog-id is in every track namespace.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Poppy Conversations</th>
                <th align="left">PACE / MOQT</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Start a conversation</td>
                <td align="left">The dialog-id handoff over HTTPS, then OPEN with the Personal Agent as controller (see above). The Poppy conversation ID is assigned as in Poppy and is distinct from the dialog-id</td>
              </tr>
              <tr>
                <td align="left">Send a message</td>
                <td align="left">One object per message, in a new group, on the <tt>messages</tt> track</td>
              </tr>
              <tr>
                <td align="left">Read events, resume from a cursor</td>
                <td align="left">SUBSCRIBE to the <tt>events</tt> track, with FILL_PARAMETERS or FETCH from the Location after the last event received</td>
              </tr>
              <tr>
                <td align="left">Request a human</td>
                <td align="left">A <tt>handoff</tt> object on the <tt>requests</tt> track</td>
              </tr>
              <tr>
                <td align="left">Direct Conversation</td>
                <td align="left">A new dialog whose <tt>parent_dialog_ids</tt> starts with the parent dialog-id</td>
              </tr>
              <tr>
                <td align="left">Close</td>
                <td align="left">TERMINATE</td>
              </tr>
            </tbody>
          </table>
          <t>Each event is one object in its own group, so an event's MOQT Location
serves as the Poppy cursor. The <tt>messages</tt>, <tt>requests</tt>, and <tt>events</tt>
tracks are durable and <bcp14>MUST NOT</bcp14> use a finite delivery timeout; the
<tt>deltas</tt> track <bcp14>SHOULD</bcp14> use OBJECT_DELIVERY_TIMEOUT. The Company Agent
<bcp14>MUST</bcp14> treat a repeated message <tt>id</tt> from the same User as a duplicate,
as Poppy requires. Handoff requests use the Urgent Signals priority
tier, and messages and events the Interactive tier (<xref target="data-exchange"/>).</t>
        </section>
        <section anchor="identity-and-authorization">
          <name>Identity and Authorization</name>
          <t>This binding reuses Poppy identity and authorization unchanged.
Sign-in, token refresh, and client metadata stay on HTTPS.</t>
          <ul spacing="normal">
            <li>
              <t>Credentials: The Personal Agent is identified by its Poppy
<tt>client_id</tt>, and the person only by the pairwise Poppy User ID. It
sends its Poppy Session JWT, and its access token when signed in, in
the <tt>credentials</tt> member of OPEN, and new ones on its next control
message after a refresh or sign-in (<xref target="control-encoding"/>).</t>
            </li>
            <li>
              <t>Ownership: The conversation belongs to the <tt>client_id</tt> and User ID
that opened it. The Company <bcp14>MUST</bcp14> reject control messages from any
other client, User, or account, and <bcp14>MUST</bcp14> authorize subscriptions to
the conversation's <tt>events</tt> and <tt>deltas</tt> tracks only for that owner.
The relay enforces this (<xref target="relay-authorization"/>): the only
participant token the Company issues for <tt>("pace","dialogs",D)</tt> is
the owner's.</t>
            </li>
            <li>
              <t>Signing in: When the Company Agent needs account access, it publishes
an <tt>authorization</tt> event; the Personal Agent signs in over HTTPS and
continues the same dialog with new credentials. Because control
messages pass through relays, the Personal Agent <bcp14>SHOULD</bcp14> use DPoP-bound
tokens <xref target="RFC9449"/> where the Company supports them.</t>
            </li>
            <li>
              <t>Personal Agent SD-Card: A Personal Agent presents its SD-Card with
the Poppy SD-Card extension over HTTPS, unchanged
(<xref section="8.3.5" sectionFormat="of" target="SD-CARD"/>). The SD-Card's <tt>sub</tt> and <tt>cnf</tt> key
identify the Personal Agent, and so the person, to every Company
that verifies it (<xref section="8.3.7" sectionFormat="of" target="SD-CARD"/>). Pairwise
<tt>{agent-id}</tt> values do not hide that link, so a Personal Agent
<bcp14>SHOULD</bcp14> present its SD-Card only to Companies with which the person
has, or is setting up, a relationship. Where the Company only needs
to know that the Personal Agent is attested, it <bcp14>SHOULD</bcp14> accept a
Privacy Pass token <xref target="RFC9576"/> instead.</t>
            </li>
          </ul>
          <t>Editor's note: A Poppy Session JWT is bound to an HTTP method and URL
(<tt>htm</tt>, <tt>htu</tt>). How these claims apply to a PACE control message is to
be agreed with the Poppy authors. The same question applies to the
Poppy SD-Card extension, whose Key Binding JWT nonce is the <tt>jti</tt> of
the Session JWT. A Personal Agent's <tt>credentials</tt> in this binding are
a Session JWT, not an SD-Card presentation, so whether the Company
sends a <tt>nonce</tt> (<xref target="key-binding"/>) and how the Personal Agent answers
it is also to be agreed.</t>
        </section>
      </section>
      <section anchor="a2a-binding">
        <name>A2A Binding</name>
        <t>The Agent-to-Agent Protocol <xref target="A2A"/> binding places A2A messages on
tracks under each agent's dialog namespace, using the <tt>"a2a"</tt> protocol
namespace field:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Track Pattern</th>
              <th align="left">Content</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>("a2a", "request") -- {request-id}</tt></td>
              <td align="left">A2A JSON-RPC requests</td>
            </tr>
            <tr>
              <td align="left">
                <tt>("a2a", "response") -- {request-id}</tt></td>
              <td align="left">A2A JSON-RPC responses</td>
            </tr>
            <tr>
              <td align="left">
                <tt>("a2a", "task") -- {task-id}</tt></td>
              <td align="left">Task status and artifact updates</td>
            </tr>
          </tbody>
        </table>
        <t>A2A messages keep their native JSON-RPC 2.0 format as the object
payload (<xref target="message-serialization"/>) and carry the dialog reference in
the message <tt>metadata</tt> (<xref target="carrying-dialog-context"/>). Key operations
map as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">A2A Operation</th>
              <th align="left">MOQT</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>SendMessage</tt></td>
              <td align="left">Request object on the client's <tt>request</tt> track; the response on the server's <tt>response</tt> track with the same request-id</td>
            </tr>
            <tr>
              <td align="left">
                <tt>SendStreamingMessage</tt></td>
              <td align="left">Response objects on the <tt>response</tt> track, ended by PUBLISH_DONE (<xref target="streaming"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>GetTask</tt></td>
              <td align="left">FETCH on the server's <tt>("a2a","task") -- {task-id}</tt> track</td>
            </tr>
            <tr>
              <td align="left">
                <tt>SubscribeToTask</tt></td>
              <td align="left">SUBSCRIBE on that task track, with FILL_PARAMETERS to catch up</td>
            </tr>
            <tr>
              <td align="left">
                <tt>CancelTask</tt></td>
              <td align="left">Applied from PACE CANCEL (<xref target="cancellation"/>)</td>
            </tr>
          </tbody>
        </table>
        <t>A response that creates a task carries the A2A task-id, which names
the server's task track. A2A tracks use the Interactive priority tier
for requests and responses and the Standard Operations tier for task
updates (<xref target="data-exchange"/>). An A2A agent advertises PACE support
through A2A's own Agent Card extension mechanism, pointing to its PACE
Agent Card (<xref target="agent-card"/>).</t>
        <t>An A2A agent that holds an A2A SD-Card (<xref section="8.4" sectionFormat="of" target="SD-CARD"/>)
publishes it as its PACE Agent Card. Its <tt>supportedInterfaces</tt> claim
is disclosed per element and its <tt>capabilities</tt> claim selectively,
so the agent can disclose its PACE interface and extension only in
the discovery contexts it chooses. The SD-Card A2A extension, which
carries a key-bound presentation in the metadata of the first Message
or Task in a context, works unchanged over these tracks because A2A
messages keep their native format. An A2A <tt>contextId</tt> is used within
one dialog, so the agent presents its SD-Card at most once per
<tt>contextId</tt> in that dialog.</t>
        <t>A complete mapping of A2A operations to MOQT is left to a separate
document coordinated with the A2A maintainers, as <xref target="MCP-MOQT"/> does
for MCP.</t>
      </section>
      <section anchor="jsonrpc-binding">
        <name>Generic Binding</name>
        <t>A protocol without its own binding uses the <tt>"ext"</tt> protocol namespace
field followed by a field naming the protocol:</t>
        <artwork><![CDATA[
Namespace: ("pace", "dialogs", {dialog-id}, {agent-id}, "ext",
            {protocol-name}, ...)
Tracks:    {identifier}
]]></artwork>
        <t>The protocol's native messages are the object payloads
(<xref target="message-serialization"/>), and they carry the dialog reference in
the protocol's own extension point (<xref target="carrying-dialog-context"/>). The
protocol defines its own namespace fields and track names below
<tt>{protocol-name}</tt>.</t>
      </section>
    </section>
    <section anchor="authorization">
      <name>Authorization and Security</name>
      <section anchor="authorization-model">
        <name>Authorization Model</name>
        <t>Access in PACE is granted through authorization proofs scoped to the
operations an agent may perform. PACE does not define a new
authorization protocol or scope syntax. The scope representation,
token format, issuance mechanism, and verification policy come from
the mechanism the deployment selects (<xref target="identity-formats"/>).</t>
        <section anchor="delegated-authz">
          <name>Delegated Authorization</name>
          <t>Each delegation hop <bcp14>MUST</bcp14> narrow or preserve the scope. If Agent A
holds scope S, it can request a sub-scope S' ⊂ S for Agent B, and B
can narrow again to S'' ⊂ S' for a downstream tool. No agent down
the chain may hold more than its delegator granted.</t>
          <t>Authorization proofs travel in the <tt>credentials</tt> member of control
messages: OPEN, ACCEPT, and JOIN_REQUEST, and UPDATE when the
controller presents its own (<xref target="key-binding"/>). The receiver validates the proof together
with the full delegation chain (<xref target="delegation"/>). Proofs are refreshed
before they expire by sending new credentials on a later control
message; long-lived dialogs <bcp14>SHOULD</bcp14> renew the proof in place rather
than terminating the dialog. Revoking an agent's authorization ends
its propagation relationship through REVOKE (<xref target="lifecycle"/>).</t>
        </section>
        <section anchor="confirmation-and-evidence">
          <name>Confirmation and Evidence</name>
          <t>Some operations are high-risk enough that an authorization token alone
is not sufficient. For those, PACE lets a peer require cryptographic
evidence of approval, such as a human confirmation, a policy-check
result, or an MFA attestation, before proceeding. The evidence format
is not fixed; it can be a signed assertion, a SCITT receipt, or an
out-of-band attestation.</t>
        </section>
      </section>
      <section anchor="transport-security">
        <name>Transport Security</name>
        <t>All PACE traffic is encrypted under TLS 1.3 because QUIC requires it.
MOQT relays terminate QUIC and TLS on each hop, so transport-layer
authentication identifies only the adjacent hop. PACE therefore
authenticates participants at the application layer, through the
<tt>credentials</tt> member of control messages, as <xref section="7.2" sectionFormat="of" target="ARCH"/>
requires when intermediaries terminate TLS.
Identity assertions and authorization proofs are signed and
short-lived. MOQT Common Access Tokens <xref target="MoQ-C4M"/> handle
namespace-level authorization at the relay. Relays cannot read payload
content unless the deployment explicitly trusts them to.</t>
        <section anchor="relay-authorization">
          <name>Relay Authorization</name>
          <t>Relays do not interpret PACE. They enforce, per namespace and track,
who may publish and who may subscribe, using the agent's token, for
example a Common Access Token <xref target="MoQ-C4M"/>. The access each agent
needs follows from following (<xref target="agent-discovery"/>), invitations
(<xref target="invitations"/>), opening (<xref target="opening"/>), and joining (<xref target="joining"/>),
and each agent publishes only under its own agent-id
(<xref target="track-organization"/>). The controller, or its authorization server,
grants an agent access to a dialog on invitation or admission and
withdraws it when the agent leaves or is revoked.</t>
          <t>Because each PACE subscription covers one track or one dialog prefix,
the relay checks it once, when it is made. Relays <bcp14>MUST</bcp14> refuse
subscriptions to a prefix of <tt>("pace","dialogs")</tt> shorter than a
dialog-id unless explicitly authorized, since they would reveal every
dialog on the relay. How tokens reach agents is deployment-specific;
the Poppy binding returns them over HTTPS (<xref target="poppy-binding"/>).</t>
        </section>
      </section>
      <section anchor="privacy">
        <name>Privacy Considerations</name>
        <t>PACE dialog and participant identifiers (dialog-ids and agent-ids)
can persist across
intermediaries and trust boundaries. If several parties see them in
the clear, they can be used to correlate interactions that would
otherwise look unrelated. This is a known risk for any dialog
management protocol. Deployments mitigate it as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Identity claims and agent metadata are disclosed selectively
(<xref target="selective-disclosure"/>): agents reveal only what each peer
needs. Selective disclosure does not hide the agent's identity
(<xref target="agent-card"/>).</t>
          </li>
          <li>
            <t>Authorization proofs are narrowed to the minimum scope and
refreshed before expiration so intermediaries cannot replay broad
grants.</t>
          </li>
          <li>
            <t>Agents acting for an individual person <bcp14>SHOULD</bcp14> use pairwise or
per-dialog agent-ids in their dialog namespaces, so that relays
cannot link that person's dialogs with different peers. The Poppy
binding requires this (<xref target="poppy-binding"/>).</t>
          </li>
          <li>
            <t>Dialog-ids <bcp14>SHOULD</bcp14> be fresh per dialog. Reusing a dialog-id across
unrelated interactions re-introduces the linkage risk the identifier
is supposed to avoid.</t>
          </li>
          <li>
            <t>Payload content <bcp14>SHOULD</bcp14> remain encrypted end-to-end with respect to
relays unless the relay is explicitly trusted.</t>
          </li>
          <li>
            <t>Long-lived dialogs <bcp14>SHOULD</bcp14> rotate keys periodically; QUIC provides
the key material lifecycle.</t>
          </li>
          <li>
            <t>Agent Cards <bcp14>SHOULD</bcp14> advertise only what discovery requires. Relays
and every subscriber to the <tt>"card"</tt> track see it. Finer capability
details can be disclosed in a key-bound presentation after a dialog
begins (<xref target="agent-card"/>).</t>
          </li>
        </ul>
        <t>Relay operators <bcp14>MUST NOT</bcp14> retain content past operational need. Agents
<bcp14>SHOULD</bcp14> send only what the task requires.</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>Multiple subscribers to the same track result in a single upstream
subscription, which reduces origin load.</t>
        </li>
        <li>
          <t>Edge relays cache content close to subscribers, which cuts
round-trip latency.</t>
        </li>
        <li>
          <t>Relay failures stay localized; other paths keep operating.</t>
        </li>
      </ul>
      <section anchor="failure-modes-and-recovery">
        <name>Failure Modes and Recovery</name>
        <t>Agent network loss and relay failure are recovered as described in
<xref target="dialog-recovery"/>. An unreachable participant or controller is
handled by the rules in <xref target="propagation"/>, and a dialog that outlasts its
expiration or idle timeout ends as described in <xref target="dialog-lifetime"/>.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The threats described in <xref section="10" sectionFormat="of" target="ARCH"/> apply to PACE.</t>
      <t>QUIC and TLS 1.3 0-RTT data can be replayed. Participants <bcp14>MUST NOT</bcp14>
send control messages that change state or cancel work (OPEN, ACCEPT,
UPDATE, JOIN_REQUEST, LEAVE, REVOKE, TERMINATE, CANCEL) in 0-RTT data.</t>
      <t>TODO: further considerations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TODO</t>
    </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="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="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC9562">
          <front>
            <title>Universally Unique IDentifiers (UUIDs)</title>
            <author fullname="K. Davis" initials="K." surname="Davis"/>
            <author fullname="B. Peabody" initials="B." surname="Peabody"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This specification defines UUIDs (Universally Unique IDentifiers) --
also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform
Resource Name namespace for UUIDs. A UUID is 128 bits long and is
intended to guarantee uniqueness across space and time. UUIDs were
originally used in the Apollo Network Computing System (NCS), later
in the Open Software Foundation's (OSF's) Distributed Computing
Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the OSF DCE specification with the
kind permission of the OSF (now known as "The Open Group"). Information from earlier versions of the OSF DCE specification have
been incorporated into this document. This document obsoletes RFC
4122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9562"/>
          <seriesInfo name="DOI" value="10.17487/RFC9562"/>
        </reference>
        <reference anchor="MoQ-TRANSPORT" target="https://datatracker.ietf.org/doc/draft-ietf-moq-transport/">
          <front>
            <title>Media over QUIC Transport</title>
            <author initials="S." surname="Nandakumar">
              <organization/>
            </author>
            <author initials="V." surname="Vasiliev">
              <organization/>
            </author>
            <author initials="I." surname="Swett" role="editor">
              <organization/>
            </author>
            <author initials="A." surname="Frindell" role="editor">
              <organization/>
            </author>
            <date year="2026" month="October"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-transport-22"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="ARCH">
          <front>
            <title>Architecture for AI Agent Communications on the Internet</title>
            <author fullname="Jonathan Rosenberg" initials="J." surname="Rosenberg">
              <organization>jdrosen.net</organization>
            </author>
            <author fullname="Zaheduzzaman Sarker" initials="Z." surname="Sarker">
              <organization>Nokia</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Kehan Yao" initials="K." surname="Yao">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Dapeng Liu" initials="D." surname="Liu">
              <organization>Alibaba</organization>
            </author>
            <author fullname="Suresh Krishnan" initials="S." surname="Krishnan">
              <organization>Cisco</organization>
            </author>
            <date day="30" month="October" year="2026"/>
            <abstract>
              <t>   This document defines the terminology and architecture for AI agent
   communications protocols over the Internet.  It provides the
   foundational architectural elements for the Agent Communications
   Protocol (ACP) - also known as agentproto - a new protocol to be
   developed in the IETF.  ACP enables communication between user agent
   clients and AI agents, between AI Agents and other AI Agents, or
   between AI Agents and tools.  All three of these interaction patterns
   - and the many use cases therein - require a session-like protocol
   which handles lifecycle management, including creation, modification,
   deletion and so on - along with the exchange of input and output.
   These session-like associations can be extremely long lived - running
   for hours or even days - and span multiple IP hosts used by the both
   the principal and by the agent.  They can also be highly intermittent
   with asynchronous responses.  All of these mean a new type of
   protocol is needed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-manyfolks-agentproto-arch-00"/>
        </reference>
        <reference anchor="QMUX">
          <front>
            <title>QMux</title>
            <author fullname="Kazuho Oku" initials="K." surname="Oku">
              <organization>Fastly</organization>
            </author>
            <author fullname="Lucas Pardue" initials="L." surname="Pardue">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Jana Iyengar" initials="J." surname="Iyengar">
              <organization>Netflix</organization>
            </author>
            <author fullname="Eric Kinnear" initials="E." surname="Kinnear">
              <organization>Apple</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document specifies QMux version 1.  QMux version 1 provides,
   over bi-directional streams such as TLS, the same set of stream and
   datagram operations that applications rely upon in QUIC version 1.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the QUIC Working Group
   mailing list (quic@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/quic/.

   Source for this draft and an issue tracker can be found at
   https://github.com/quicwg/qmux.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-qmux-02"/>
        </reference>
        <reference anchor="WIMSE-CREDS">
          <front>
            <title>WIMSE Workload Credentials</title>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Palo Alto Networks</organization>
            </author>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Independent</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <date day="30" month="October" year="2026"/>
            <abstract>
              <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones up to complex multi-service, multi-cloud, multi-
   tenant deployments.

   This document defines the credentials that workloads use to represent
   their identity.  They can be used in various protocols to
   authenticate workloads to each other.  To use these credentials,
   workloads must provide proof of possession of the associated private
   key material, which is covered in other documents.  This document
   focuses on the credentials alone, independent of the proof-of-
   possession mechanism.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-03"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <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="RFC8693">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8693"/>
          <seriesInfo name="DOI" value="10.17487/RFC8693"/>
        </reference>
        <reference anchor="RFC9635">
          <front>
            <title>Grant Negotiation and Authorization Protocol (GNAP)</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="F. Imbault" initials="F." surname="Imbault"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>The Grant Negotiation and Authorization Protocol (GNAP) defines a mechanism for delegating authorization to a piece of software and conveying the results and artifacts of that delegation to the software. This delegation can include access to a set of APIs as well as subject information passed directly to the software.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9635"/>
          <seriesInfo name="DOI" value="10.17487/RFC9635"/>
        </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="RFC9449">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="RFC9576">
          <front>
            <title>The Privacy Pass Architecture</title>
            <author fullname="A. Davidson" initials="A." surname="Davidson"/>
            <author fullname="J. Iyengar" initials="J." surname="Iyengar"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document specifies the Privacy Pass architecture and requirements for its constituent protocols used for authorization based on privacy-preserving authentication mechanisms. It describes the conceptual model of Privacy Pass and its protocols, its security and privacy goals, practical deployment models, and recommendations for each deployment model, to help ensure that the desired security and privacy goals are fulfilled.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9576"/>
          <seriesInfo name="DOI" value="10.17487/RFC9576"/>
        </reference>
        <reference anchor="RFC9901">
          <front>
            <title>Selective Disclosure for JSON Web Tokens</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="K. Yasuda" initials="K." surname="Yasuda"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="November" year="2025"/>
            <abstract>
              <t>This specification defines a mechanism for the selective disclosure
of individual elements of a JSON data structure used as the payload
of a JSON Web Signature (JWS). The primary use case is the selective
disclosure of JSON Web Token (JWT) claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9901"/>
          <seriesInfo name="DOI" value="10.17487/RFC9901"/>
        </reference>
        <reference anchor="POPPY" target="https://personalagentprotocol.org/docs/0.3/spec">
          <front>
            <title>Personal Agent Protocol (Poppy) Specification</title>
            <author>
              <organization>Sierra</organization>
            </author>
            <author>
              <organization>Meta</organization>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Version" value="Draft 0.3"/>
        </reference>
        <reference anchor="A2A" target="https://a2a-protocol.org/latest/">
          <front>
            <title>Agent-to-Agent Protocol Specification</title>
            <author>
              <organization>Linux Foundation</organization>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="Version" value="1.0"/>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/specification/2026-07-28">
          <front>
            <title>Model Context Protocol Specification</title>
            <author>
              <organization>Linux Foundation</organization>
            </author>
            <date year="2026" month="July"/>
          </front>
          <seriesInfo name="Version" value="2026-07-28"/>
        </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>Authorization scheme for MOQT using Common Access Tokens</title>
            <author initials="W." surname="Law">
              <organization/>
            </author>
            <author initials="C." surname="Lemmons">
              <organization/>
            </author>
            <author initials="G." surname="Simon">
              <organization/>
            </author>
            <author initials="S." surname="Nandakumar">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-c4m-01"/>
        </reference>
        <reference anchor="MCP-MOQT">
          <front>
            <title>Model Context Protocol and Agent Skills over Media over QUIC Transport</title>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google</organization>
            </author>
            <author fullname="Jonathan Rosenberg" initials="J." surname="Rosenberg">
              <organization>Five9</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <date day="1" month="November" year="2026"/>
            <abstract>
              <t>   This document defines how to use Media over QUIC Transport (MOQT) as
   the underlying transport protocol for the Model Context Protocol
   (MCP).  MCP enables integration between language model applications
   and external data sources and tools.  MOQT provides publish-subscribe
   delivery over QUIC and WebTransport with native prioritization, relay
   caching, and multiplexing.

   This specification maps MCP messages onto MOQT objects and tracks.
   It covers MCP's tools, resources, prompts, multi round-trip requests,
   and the Tasks extension, and it uses MOQT relays to cache content
   that MCP marks as public across clients and to let a response outlive
   the connection that carried its request.

   The document also describes Agent Skills, composed instructions that
   extend AI capabilities beyond atomic tool operations, using
   progressive loading aligned with MOQT's object-based delivery.  The
   same tracks can run standalone or inside a dialog of the Protocol for
   Agent Communication Exchange (PACE).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jennings-agentproto-mcp-over-moqt-01"/>
        </reference>
        <reference anchor="STIVERS">
          <front>
            <title>Universals and cultural variation in turn-taking in conversation</title>
            <author initials="T." surname="Stivers">
              <organization/>
            </author>
            <author initials="N. J." surname="Enfield">
              <organization/>
            </author>
            <author initials="P." surname="Brown">
              <organization/>
            </author>
            <author initials="C." surname="Englert">
              <organization/>
            </author>
            <author initials="M." surname="Hayashi">
              <organization/>
            </author>
            <author initials="T." surname="Heinemann">
              <organization/>
            </author>
            <author initials="G." surname="Hoymann">
              <organization/>
            </author>
            <author initials="F." surname="Rossano">
              <organization/>
            </author>
            <author initials="J. P." surname="de Ruiter">
              <organization/>
            </author>
            <author initials="K." surname="Yoon">
              <organization/>
            </author>
            <author initials="S. C." surname="Levinson">
              <organization/>
            </author>
            <date year="2009" month="June"/>
          </front>
          <seriesInfo name="DOI" value="10.1073/pnas.0903616106"/>
          <refcontent>Proceedings of the National Academy of Sciences, vol. 106, no. 26, pp. 10587-10592</refcontent>
        </reference>
        <reference anchor="SD-CARD" target="https://datatracker.ietf.org/doc/draft-nandakumar-agent-sd-card/">
          <front>
            <title>Agent SD-Card: Selective Disclosure of Agent Metadata for Discovery and Authentication</title>
            <author initials="S." surname="Nandakumar">
              <organization/>
            </author>
            <author initials="C." surname="Jennings">
              <organization/>
            </author>
            <date year="2026" month="October"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-nandakumar-agent-sd-card-00"/>
        </reference>
      </references>
    </references>
    <?line 2113?>

<section anchor="example-workflows">
      <name>Example Workflows</name>
      <t>The examples below share these conventions:</t>
      <ul spacing="normal">
        <li>
          <t><tt>D1</tt> to <tt>D7</tt> stand for dialog-ids (UUIDs). <tt>A</tt>, <tt>B</tt>, and <tt>C</tt> are
agents with agent-ids <tt>agent-a</tt>, <tt>agent-b</tt>, and <tt>agent-c</tt>; other
agents are named in the example that introduces them.</t>
        </li>
        <li>
          <t>Before each example, every agent follows the others
(<xref target="agent-discovery"/>). Each invitee learns the dialog-id from an
invitation (<xref target="invitations"/>), and every participant holds
SUBSCRIBE_TRACKS on the dialog prefix. The relay therefore forwards
every new dialog track to the participants, and the steps do not
repeat the invitations or relay hops.</t>
        </li>
        <li>
          <t>Each example lists the tracks by publisher, then the steps. <tt>gen</tt>
is the dialog generation after a controller operation.</t>
        </li>
        <li>
          <t>JSON-RPC messages are shown without the dialog reference
(<xref target="carrying-dialog-context"/>) and, for MCP, without the per-request
<tt>_meta</tt> fields of <xref target="MCP"/>; real messages carry both.</t>
        </li>
      </ul>
      <section anchor="delegating-a-task-with-a2a">
        <name>Delegating a Task with A2A</name>
        <t>A asks B to do a task. This example shows the complete dialog
lifecycle; the later examples abbreviate it.</t>
        <artwork><![CDATA[
A publishes:
  ("pace","dialogs",D1,"agent-a") -- "ctrl"        OPEN, UPDATE,
                                                   TERMINATE
  ("pace","dialogs",D1,"agent-a","a2a","request") -- "r1"
                                                   task request
B publishes:
  ("pace","dialogs",D1,"agent-b") -- "ctrl"        ACCEPT
  ("pace","dialogs",D1,"agent-b","a2a","response") -- "r1"
                                                   task result
]]></artwork>
        <ol spacing="normal" type="1"><li>
            <t>A publishes OPEN on its <tt>ctrl</tt> track (gen 0, B <tt>invited</tt>) and an
invitation on <tt>("pace","agents","agent-a","invites") -- "agent-b"</tt>.</t>
          </li>
          <li>
            <t>B reads OPEN on A's <tt>ctrl</tt> track and publishes ACCEPT on its own
<tt>ctrl</tt> track.</t>
          </li>
          <li>
            <t>A publishes UPDATE (gen 1, B <tt>active</tt>). The dialog is active.</t>
          </li>
          <li>
            <t>A publishes the A2A request on its <tt>request</tt> track <tt>r1</tt>:
<tt>{"jsonrpc":"2.0","method":"SendMessage","params":{...},"id":"r1"}</tt>,
with the dialog reference in the message <tt>metadata</tt>
(<xref target="carrying-dialog-context"/>).</t>
          </li>
          <li>
            <t>B publishes the result on its <tt>response</tt> track <tt>r1</tt>.</t>
          </li>
          <li>
            <t>A publishes TERMINATE (gen 2). B could instead have sent LEAVE.</t>
          </li>
        </ol>
      </section>
      <section anchor="calling-an-mcp-tool">
        <name>Calling an MCP Tool</name>
        <t>A reads a file through an MCP server, <tt>fs-tool</tt>.</t>
        <artwork><![CDATA[
A publishes:
  ("pace","dialogs",D2,"agent-a") -- "ctrl"
  ("pace","dialogs",D2,"agent-a","mcp","tools","readFile")
      -- "request"                                 tools/call
fs-tool publishes:
  ("pace","dialogs",D2,"fs-tool") -- "ctrl"
  ("pace","dialogs",D2,"fs-tool","mcp","tools","readFile")
      -- "response"                                result
]]></artwork>
        <ol spacing="normal" type="1"><li>
            <t>A opens the dialog with fs-tool (OPEN, ACCEPT, UPDATE).</t>
          </li>
          <li>
            <t>A publishes the call as Object 0 of a new group, say Group 7, on
its <tt>readFile</tt> request track:
<tt>{"jsonrpc":"2.0","method":"tools/call","params":{"name":"readFile",
"arguments":{"path":"/data/report.csv"}},"id":"t1"}</tt>.</t>
          </li>
          <li>
            <t>fs-tool publishes the result as the final object in Group 7 of its
<tt>readFile</tt> response track:
<tt>{"jsonrpc":"2.0","id":"t1","result":{"resultType":"complete",
"content":[...]}}</tt>. The JSON-RPC <tt>id</tt> pairs the response with the
request; the matching Group ID helps relays and recovery
(<xref target="MCP-MOQT"/>).</t>
          </li>
          <li>
            <t>A makes further calls as new groups, or terminates the dialog.</t>
          </li>
        </ol>
      </section>
      <section anchor="long-running-tool-call-with-progress">
        <name>Long-Running Tool Call with Progress</name>
        <t>A asks <tt>code-tool</tt> to generate code. The call takes a while, so
code-tool reports progress while it works and sends the code in the
final result.</t>
        <artwork><![CDATA[
A publishes:
  ("pace","dialogs",D3,"agent-a") -- "ctrl"
  ("pace","dialogs",D3,"agent-a","mcp","tools","generateCode")
      -- "request"                                 tools/call,
                                                   cancellation
code-tool publishes:
  ("pace","dialogs",D3,"code-tool") -- "ctrl"
  ("pace","dialogs",D3,"code-tool","mcp","tools","generateCode")
      -- "response"                                progress, result
]]></artwork>
        <ol spacing="normal" type="1"><li>
            <t>A opens the dialog with code-tool (OPEN, ACCEPT, UPDATE).</t>
          </li>
          <li>
            <t>A publishes the call as Object 0 of Group 5 on its <tt>generateCode</tt>
request track, asking for progress with a <tt>progressToken</tt>:
<tt>{"jsonrpc":"2.0","id":"g1","method":"tools/call","params":
{"name":"generateCode","arguments":{"language":"python"},
"_meta":{"progressToken":"g1"}}}</tt>.</t>
          </li>
          <li>
            <t>code-tool publishes Group 5 of its <tt>generateCode</tt> response track as
shown in the table below. It sends the progress notifications in
one subgroup and the result in another, so that each is on its own
QUIC stream and a large result does not delay the progress
updates (<xref target="MCP-MOQT"/>). A receives each object as soon as it
arrives, orders them by Object ID, and knows the call is complete
when the result arrives.</t>
          </li>
          <li>
            <t>To cancel instead, A publishes <tt>notifications/cancelled</tt> as the next
object in Group 5 of its request track (<xref target="MCP-MOQT"/>). code-tool
stops and ends Group 5 of its response track with a JSON-RPC
error.</t>
          </li>
        </ol>
        <t>The table lists the objects in code-tool's reply, in Object ID order,
and the subgroup that carries each.</t>
        <table>
          <name>Objects in code-tool's Reply to the Group 5 Call</name>
          <thead>
            <tr>
              <th align="left">Object</th>
              <th align="left">Subgroup</th>
              <th align="left">Content</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">0</td>
              <td align="left">
                <tt>notifications/progress</tt>: progress 0 of 3, "Planning modules"</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">0</td>
              <td align="left">
                <tt>notifications/progress</tt>: progress 1 of 3, "Generated parser"</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">0</td>
              <td align="left">
                <tt>notifications/progress</tt>: progress 2 of 3, "Generated tests"</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">1</td>
              <td align="left">
                <tt>tools/call</tt> result with the generated code (142 lines)</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="interrupting-a-voice-agent">
        <name>Interrupting a Voice Agent</name>
        <t>A user's client, <tt>U</tt> (agent-id <tt>user-u</tt>), talks to a voice agent, <tt>V</tt>
(agent-id <tt>agent-v</tt>). V answers by voice while a tool call it made to
<tt>search-tool</tt> is still running. The user cuts in, and V has to stop
speaking and cancel the tool call at once.</t>
        <artwork><![CDATA[
U publishes:
  ("pace","dialogs",D4,"user-u") -- "ctrl"         ACCEPT
  ("pace","dialogs",D4,"user-u") -- "audio"        microphone
V publishes:
  ("pace","dialogs",D4,"agent-v") -- "ctrl"        OPEN, UPDATE,
                                                   CANCEL
  ("pace","dialogs",D4,"agent-v") -- "audio"       speech
  ("pace","dialogs",D4,"agent-v") -- "chat"        reply text
  ("pace","dialogs",D4,"agent-v","mcp","tools","search")
      -- "request"                                 tools/call
search-tool publishes:
  ("pace","dialogs",D4,"search-tool") -- "ctrl"    ACCEPT,
                                                   CANCEL_ACK
  ("pace","dialogs",D4,"search-tool","mcp","tools","search")
      -- "response"                                results
]]></artwork>
        <ol spacing="normal" type="1"><li>
            <t>V opens the dialog with U (OPEN, ACCEPT, UPDATE) and adds
search-tool the same way.</t>
          </li>
          <li>
            <t>V answers the user. It publishes speech on its <tt>audio</tt> track as
datagrams at media priority (32-63), with a short
OBJECT_DELIVERY_TIMEOUT, and the reply text on <tt>chat</tt> at interactive
priority (64-95). Its call to search-tool, Group 3 of the <tt>search</tt>
request track, is still running.</t>
          </li>
          <li>
            <t>The user starts speaking. U publishes microphone audio on its
<tt>audio</tt> track, and the relay forwards each frame to V as it
arrives. The dialog does not change.</t>
          </li>
          <li>
            <t>V detects the user's speech and stops producing speech and text. It
publishes CANCEL on its <tt>ctrl</tt> track at critical priority (0-15),
with scope <tt>operation</tt> and a <tt>target</tt> naming Group 3 of its
<tt>search</tt> request track (<xref target="cancel-over-moqt"/>). The cancellation is
sent ahead of any <tt>chat</tt> objects V has already queued, and a loss on
the audio datagrams does not delay it.</t>
          </li>
          <li>
            <t>Speech objects that the relay has not delivered within their
delivery timeout are dropped at the relay, so the user does not
hear the rest of the old answer after cutting in.</t>
          </li>
          <li>
            <t>search-tool applies the CANCEL as MCP <tt>notifications/cancelled</tt>,
stops, publishes no further objects in Group 3, and publishes
CANCEL_ACK with outcome <tt>stopped</tt> on its <tt>ctrl</tt> track. V
listens to the rest of the user's audio and answers in new groups
on its <tt>audio</tt> and <tt>chat</tt> tracks.</t>
          </li>
        </ol>
        <t>The dialog, its generation, and the MOQT sessions stay the same
throughout: an interruption changes the content of a dialog, not the
dialog. If the dialog's flows shared one ordered connection, the
cancellation in step 4 would wait behind the output V had already
sent.</t>
      </section>
      <section anchor="collaborating-in-a-multi-party-dialog">
        <name>Collaborating in a Multi-Party Dialog</name>
        <t>A coordinates research by B, a web researcher, and C, a data analyst.</t>
        <artwork><![CDATA[
A publishes:
  ("pace","dialogs",D5,"agent-a") -- "ctrl"        OPEN, UPDATE,
                                                   TERMINATE
  ("pace","dialogs",D5,"agent-a") -- "chat"        assignments
B publishes:
  ("pace","dialogs",D5,"agent-b") -- "ctrl"        ACCEPT
  ("pace","dialogs",D5,"agent-b") -- "chat"        status
  ("pace","dialogs",D5,"agent-b","a2a","task") -- "research-1"
                                                   findings
C publishes:
  ("pace","dialogs",D5,"agent-c") -- "ctrl"        ACCEPT
  ("pace","dialogs",D5,"agent-c") -- "chat"        status
  ("pace","dialogs",D5,"agent-c","a2a","task") -- "analysis-1"
                                                   results
]]></artwork>
        <t>Because each participant subscribes to the dialog prefix, every agent
receives every other agent's tracks in <tt>D5</tt>; no per-track
subscriptions are needed.</t>
        <ol spacing="normal" type="1"><li>
            <t>A publishes OPEN (gen 0, B and C <tt>invited</tt>). B and C each publish
ACCEPT, and A commits both in one UPDATE (gen 1).</t>
          </li>
          <li>
            <t>A posts assignments on <tt>chat</tt>. The relay delivers each object once
to B and once to C.</t>
          </li>
          <li>
            <t>B publishes findings on <tt>research-1</tt> as they arrive, one group per
research phase.</t>
          </li>
          <li>
            <t>C reads B's findings as they arrive and publishes its analysis on
<tt>analysis-1</tt>.</t>
          </li>
          <li>
            <t>A follows both tracks, posts a summary on <tt>chat</tt>, and publishes
TERMINATE (gen 2). Each agent then ends its dialog tracks with
PUBLISH_DONE.</t>
          </li>
        </ol>
      </section>
      <section anchor="group-chat-with-an-autogen-runtime">
        <name>Group Chat with an AutoGen Runtime</name>
        <t>An AutoGen <xref target="AutoGen"/> runtime, R, hosts a group chat with a human, H,
and a remote agent, B. AutoGen has no binding of its own, so R uses the
generic binding (<xref target="jsonrpc-binding"/>) with <tt>"autogen"</tt> as the protocol
name, and each AutoGen message carries the dialog reference in its
<tt>metadata</tt> (<xref target="carrying-dialog-context"/>).</t>
        <artwork><![CDATA[
R publishes:
  ("pace","dialogs",D6,"runtime-r") -- "ctrl"      OPEN, UPDATE,
                                                   TERMINATE
  ("pace","dialogs",D6,"runtime-r","ext","autogen") -- "conv1"
                                                   R's agents' turns
H publishes:
  ("pace","dialogs",D6,"user-h") -- "ctrl"         ACCEPT
  ("pace","dialogs",D6,"user-h") -- "chat"         human input
B publishes:
  ("pace","dialogs",D6,"agent-b") -- "ctrl"        ACCEPT
  ("pace","dialogs",D6,"agent-b","ext","autogen") -- "conv1"
                                                   B's turns
]]></artwork>
        <ol spacing="normal" type="1"><li>
            <t>R opens <tt>D6</tt> (gen 0, H and B <tt>invited</tt>), and commits both ACCEPTs in
one UPDATE (gen 1).</t>
          </li>
          <li>
            <t>R's group chat manager picks the next speaker, as AutoGen does. The
speaker's message goes out once on its publisher's <tt>conv1</tt> track,
and the relay delivers it to every other participant.</t>
          </li>
          <li>
            <t>When the manager asks the human, H answers on <tt>chat</tt>.</t>
          </li>
          <li>
            <t>For a nested chat, R opens a child dialog <tt>D7</tt> whose
<tt>parent_dialog_ids</tt> is <tt>[D6]</tt>, and posts its result back in <tt>D6</tt>.</t>
          </li>
          <li>
            <t>R publishes TERMINATE (gen 2) when the chat ends.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAFyj52oAA9y9S3McWXIuuI9fEYNakChlJt+sIii1LgiCXezmA02AXbev
TEMEMgNANBMZ2RmRQEEEZde0mMXYLMbGtJjFLGYxv2R+in7J+OePc/xERJKs
lsyuadqkbjAz48R5+PG3fz4ej7O2auflTr51sLu3v5MfrOq2ntbz/LRe5btn
5aLN9+qLi/WimhZtVS/y/V+m58XirNzKipOTVXmpT25l9H15Vq+ud/KmnWXZ
rJ4uigsaeLYqTtvxoljMio/ri2I1LjDqEu8ZL4tpOb57N2vWJxdV09D47fWS
nnm5f/QiW6wvTsrVTjatF025aNbNTt6u1mVGr3yQFauyoFfvLpdznVmT0yvy
d2UxHx9VFzS/q3r18WxVr5f43cBKbKnNVvaxvKZfz3ayfJzz9MY0Of4j+aSt
6zk+eP32D0f4392X8l2Df8yqYl6f5RfFgj670EdXmE5L08mn/t1Zdlku1iW9
L//GGea57MzWz7SqanGW/xbP4fOLoprT53FX/0tVtqeTenWGb4vV9Jy+PW/b
ZbNz5w5+jI+qy3JiP7uDD+6crOqrprwTh7mDx8+q9nx9QgM06/Oi+alclXe+
dp54bE600LTuveHxiYw4qeqvDvTVH0zO24v5VpYV6/a8XuHw6NV5LmS3dYhX
5m/C01v8Ja23WFT/xPtLP9qrmmkt35S6kY2+8L9M8d2Ezm2rM/Leej4vF/nv
ysWCTqLZPHB+eN205UWTvuB0vj49vfbDZ4t6dUFPXjJFvHuxd//evSf654/3
fniofz65e/euffrw4WP78/4j++2TR4/v48/X9R/GR+923xwevH13tMMvt1v+
uiQ6zevLcpX/4f3LvfxoVSyaZb1qZY4zOrid/P7d+4/H9+7yJ2Fz6T/jvFrQ
LTycuG31X/xxkv+xaKp5VV76j19O8sOrsm35szxf1ZgJzaOtk6d3J/mLVbWY
lfP5pl825aoqm2pxWu/oT14u2nK1KNvxcxCLcRuQ9vii/su4teWN79+XfShW
ZyX9zgiTFlzQj6Yfy1W8EMS77mwa6E6W4f3uvHbf7f1Eixw/n9Ddvz6t5x8b
T6m4XfSrP7x+/1/lVzzmX9bVdPyXi/Uv9NXPL18f7o/33u0/P3S/uKoumnIM
Jjavi9l4uipnjRzz4x8e2on/8CgSyuMnD4wOHj94ZH/ef/KD/fnwYSSUH4x8
njy5ew9/Hrw9OPhTSisH5aqpF8Vc5UAQDbcP6uXyejs/XJbT6lSZVZd+BoiH
tpaIpypXq8J/8rpsiw2n+0eaAd8nPt387uTB4CEudaJx12madpLNHXrsTkNz
xVnd303XuGu8vbPGL63t0aa1vaoW61/yF/WaLgez+a+sauve5O7W4IqK+8U4
WYhw1Du43HsHnStd05UhyUE34ZdvXMHj8d0f/qMWocON7/84uJILzG4qkwsr
Iu7f+OndSQbZXbf1b8tF56D0w3x/UZzMIQHf0Ihj+ih/9ep1nigCl8TiXq/n
bTU2qboghtcM7cSDTUzuD5P857X/4LeT/FmxII3Ef/inSf7foA51PkuffDah
TfUf7OOp5CfE+3avilkxnxfnGza8WP3XCtrW/Qd3f5zc/fHeo0cbSGf1S3Up
cv2kuRN/rXJh7+Hr3sbS2lVy5c30nJQX1v6g5eTrBlsNtYS+3J1Oy6bJj+qP
pI99w4Xnpf1Mqy+u/Cd79EmJAZvO/h5WF0pvGyXNr5YA04cX47v3/l28n4bQ
izfGngiP/rNKf8/qL6bLMUQrnoK0Ozx6+cf9d4fpfr9fVEyMc1FYp0Sn6xUx
2ctiVckZVIucPlqM24I1PfrndCMB330yvrtx649oS1t+m//0zST/3YSu0WlV
zmf+iwOicNICF52z2l+czctV6z99Pcl/Kq6L5rzqvO6nslqQnrNYdE72p/q6
++mLSf6ubppiUftPaWY0jVmZv1tXbXrXfj8Z08X5U90jEaanS/rXRmb1/O3L
nfze3cm9uz88uLNcFM3k7pO7Dx7fe3xPN29VnjKPWkBpJRY6LUnroNPN69O8
PS+JCrH1EIXTYlZeXOPzw2lVLuhCjPJLYmk0/ONRvqgn+X363+USHzz68QdS
ox49uY8zO3w+3tt993xA/PBXBZkf+WE5L6c4sfw5aYfzulmvSrxKfgZBCZrl
24kfgNaumYpwieknm7j9X6HL0aaagvurLl5XXR83pLvQ4mDm/RWXcNNwpIaN
x2SanTR4uM2yo/Oqyem5NUwvIqBTIsSGz+6bTdrsNizZ7RHtqNh11bRv1eUm
xPIrsmTyIj8hlRXXtK1zVq6zAeU6vw3GsU1M3gasZG7TerUqIdtntMF/WYOe
6LxJw6StpWWxNDsp26uSxFx7VZOEzi9qoollsaLZVcuCjE/R5mW09aphgimy
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
dZELgBAdIwnQOIvuhvopU3//C/62q8glpgEA

-->

</rfc>
