<?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.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-hood-agtp-presence-01" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="AGTP-PRESENCE">AGTP Presence: Ambient Discovery and Visibility for Agents</title>
    <seriesInfo name="Internet-Draft" value="draft-hood-agtp-presence-01"/>
    <author fullname="Chris Hood">
      <organization>Nomotic, Inc.</organization>
      <address>
        <email>chris@nomotic.ai</email>
      </address>
    </author>
    <date year="2026" month="October" day="30"/>
    <area>Applications and Real-Time</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>AI agents</keyword>
    <keyword>agent discovery</keyword>
    <keyword>ambient discovery</keyword>
    <keyword>agent presence</keyword>
    <keyword>attachment</keyword>
    <keyword>presence</keyword>
    <keyword>distributed hash table</keyword>
    <keyword>gossip protocol</keyword>
    <keyword>AGTP</keyword>
    <abstract>
      <?line 104?>

<t>This document specifies AGTP Presence, an ambient discovery and visibility
layer for the Agent Transfer Protocol (AGTP). Existing agent discovery
proposals are pull-based: an agent must know where to look (a catalog URL,
a registry endpoint, a DNS name) before a query can begin. AGTP Presence
inverts this model. When an agent joins the AGTP substrate, it becomes
addressable and visible to the relevant scope of other agents
immediately, without requiring registration with a central directory.
In the vocabulary this family adopts from RFC 6763, Presence is the
discovery layer: it resolves a known Canonical Agent-ID to the agent's
current attachment. Search, which turns a capability need into
candidate identities, is the DISCOVER method of the discovery
companion; search runs over Presence.</t>
      <t>The architecture combines three proven patterns: a Distributed Hash Table
(DHT) keyed by Canonical Agent-ID for content-addressable routing, a
gossip-based protocol for presence announcement and convergence, and
trust-tier-scoped overlay partitioning for visibility control. Per-agent
visibility is cryptographically declared in AGTP-CERT certificate
extensions and enforced by the protocol, with three orthogonal axes of
control: presence visibility, disclosure visibility, and audience scoping.</t>
      <t>This document defines three new lifecycle methods (ANNOUNCE, WITHDRAW,
PROBE), specifies the DHT and gossip protocols, defines the visibility
model and its certificate extensions, addresses scaling through hybrid
participation modes and federation-of-scoped-overlays, and provides a
threat model with concrete mitigations.</t>
    </abstract>
  </front>
  <middle>
    <?line 133?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Every existing agent discovery proposal at the IETF, in the broader
industry, and across adjacent standards bodies treats discovery as a
pull operation against known endpoints. Agentic Resource Discovery
(ARD) publishes catalogs at well-known URIs that an agent must already
know how to reach. DNS for AI Discovery (DNS-AID) publishes SVCB records
under DNS names that an agent must already possess. The AGTP Agent Name
Service (ANS) defined in <xref target="AGTP-DISCOVERY"/> provides a richer query
interface but still operates as a query against a directory the agent
has previously located. Even decentralized systems such as BitTorrent
require a magnet link, info hash, or tracker URL as the starting point
for discovery.</t>
      <t>For the agentic web, this is the wrong model. Agents come online
expecting to know what population they can interact with, what
capabilities are available within their governance domain, and what
peers exist within their trust tier. The infrastructure that serves
human web traffic was designed around the assumption that someone
already knows the address. Agents have no such starting point.</t>
      <t>The deeper mismatch is that the Internet's naming and routing stack
presumes host-nature: a participant is a thing at a network location,
found by resolving a name to that location. An agent is a
coordination participant defined by identity, capability, delegation,
and trust; where it happens to run is incidental. The same agent may
run on a laptop this hour and a cloud instance the next, or on no
single host at all when relay-mediated; its Canonical Agent-ID is
unchanged throughout. Two analogies anchor the design. A music
catalog makes a recording findable by every attribute it carries
without a separate publishing step for each; the recording's identity
is intrinsic to it. DHCP makes joining a network the same act as
being registered on it; there is no second step. Presence treats an
agent's intrinsic identity the same way and makes joining the
registration.</t>
      <t>This document specifies AGTP Presence, a layer of the protocol that
delivers ambient discovery as a consequence of joining the
AGTP network. The design is informed by patterns that have been
operationally validated at scale in other domains:</t>
      <ul spacing="normal">
        <li>
          <t>The BitTorrent Mainline DHT operates at over one million concurrent
nodes daily <xref target="KADEMLIA"/>.</t>
        </li>
        <li>
          <t>IPFS operates a Kademlia-style DHT across hundreds of thousands of
nodes <xref target="IPFS"/>.</t>
        </li>
        <li>
          <t>Gossip protocols deployed in production systems such as Serf and
Consul handle ten-thousand-node clusters at low bandwidth <xref target="SERF"/>.</t>
        </li>
        <li>
          <t>Hybrid peer-to-peer architectures with supernodes and light clients
scaled to tens of millions of concurrent participants in earlier
systems including Skype.</t>
        </li>
      </ul>
      <t>AGTP Presence applies these patterns to agent infrastructure, with
visibility declared cryptographically at the protocol level. The
result is more than "AGTP plus better discovery": the protocol
carries the population, so the discovery problem dissolves.</t>
      <section anchor="addressing">
        <name>The Addressing Abstraction</name>
        <t>The question put to this work on the IETF lists is the right one to
answer in the document itself: over what protocol, and to what
address. Over AGTP, to a Canonical Agent-ID. The protocol resolves
the Agent-ID to the agent's current attachment (<xref target="attachment"/>) and
routes between conventionally addressed nodes; the
application layer never sees an IP address, in the way a user of a
filesystem never sees a disk sector although the sector exists and
the data is on it. The address becomes the network's concern and
leaves the agent's view.</t>
        <t>The model therefore scales with identity; addresses come and go
beneath it. Light clients hold no routing state; relay-mediated
agents hold no routable endpoint of their own. Routable addresses
scale with the number of full nodes and relays; agents scale with
the number of identities. Ten full nodes can carry a scope of a
million ephemeral agents, because what the ten nodes hold is a
million attachments keyed by Agent-ID, which is to say a million
32-byte keys and the short signed records they point to. Show up,
get absorbed, get routed.</t>
      </section>
      <section anchor="conventions-and-terminology">
        <name>Conventions and Terminology</name>
        <t>The key words "<strong>MUST</strong>", "<strong>MUST NOT</strong>", "<strong>REQUIRED</strong>", "<strong>SHALL</strong>",
"<strong>SHALL NOT</strong>", "<strong>SHOULD</strong>", "<strong>SHOULD NOT</strong>", "<strong>RECOMMENDED</strong>",
"<strong>NOT RECOMMENDED</strong>", "<strong>MAY</strong>", and "<strong>OPTIONAL</strong>" 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>
        <t>This document uses terminology from <xref target="AGTP"/>, <xref target="AGTP-IDENTIFIERS"/>,
<xref target="AGTP-TRUST"/>, <xref target="AGTP-CERT"/>, and <xref target="AGTP-DISCOVERY"/>. Selected
additional terms specific to this document:</t>
        <dl>
          <dt>Presence:</dt>
          <dd>
            <t>The state of an agent being known to other agents within an
applicable visibility scope as a result of joining the AGTP
substrate, without requiring explicit registration with a directory.</t>
          </dd>
          <dt>Attachment:</dt>
          <dd>
            <t>The signed, short-lived, updatable record of where an agent can
currently be reached: the substrate node or relay that holds the
agent's connection, the binding it is reachable over, and a validity
window. The Canonical Agent-ID is permanent identity; the attachment
is its current location and changes without the identity changing.
An ANNOUNCE publishes an attachment; a PROBE returns one. See
<xref target="attachment"/>.</t>
          </dd>
          <dt>Discover, Search, Resolve:</dt>
          <dd>
            <t>As defined in <xref target="AGTP-DISCOVERY"/> following <xref target="RFC6763"/>. Presence
provides discovery: a known Agent-ID to its attachment. Search
(criteria to candidates) is the DISCOVER method of
<xref target="AGTP-DISCOVERY"/> and runs over Presence. Resolve (name to
Agent-ID) is the Agent Name Service. Where earlier revisions of this
document said "discovery query" for what a light client sends to a
relay, this revision says search query or attachment lookup as the
case requires.</t>
          </dd>
          <dt>Visibility Scope:</dt>
          <dd>
            <t>The set of other agents that can observe a given agent's presence.
Determined by the agent's certificate-declared visibility posture
and the requesting agent's trust tier, governance domain, or explicit
group membership.</t>
          </dd>
          <dt>Bootstrap Peer:</dt>
          <dd>
            <t>An AGTP agent or service that accepts initial connections from new
agents joining the network and provides initial routing table state
for DHT participation.</t>
          </dd>
          <dt>Light Client:</dt>
          <dd>
            <t>A participation mode in which an agent maintains no DHT routing
state but communicates with full-node peers for presence
announcement, attachment lookup, and search.</t>
          </dd>
          <dt>Full Node:</dt>
          <dd>
            <t>A participation mode in which an agent maintains DHT routing tables,
participates in gossip, and serves attachment lookups and search
queries for other agents.</t>
          </dd>
          <dt>Relay:</dt>
          <dd>
            <t>A full-node agent that accepts presence announcements, attachment
lookups, and search queries on behalf of light-client agents.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>AGTP Presence is built on three composable mechanisms operating over
the AGTP substrate.</t>
      <section anchor="dht-over-canonical-agent-ids">
        <name>DHT Over Canonical Agent-IDs</name>
        <t>Canonical Agent-IDs as defined in <xref target="AGTP-IDENTIFIERS"/> are 256-bit
SHA-256 hashes of Agent Genesis documents. This makes them
content-addressable identifiers compatible with
distributed hash table addressing.</t>
        <t>AGTP Presence specifies a Kademlia-style DHT <xref target="KADEMLIA"/> keyed by
Canonical Agent-ID. Full-node agents maintain k-bucket routing tables
of size k=20. Lookups proceed via XOR distance metric. Parallel
lookups (alpha=3) reduce latency and provide resistance against
eclipse attacks per the S/Kademlia hardening approach <xref target="SKADEMLIA"/>.</t>
        <t>The DHT supports three operations:</t>
        <ul spacing="normal">
          <li>
            <t><strong>FIND_NODE</strong>: Given a target Agent-ID, returns the k closest agents
the responding node is aware of. Used during DHT routing.</t>
          </li>
          <li>
            <t><strong>PROBE</strong>: Given an Agent-ID, queries whether the agent is currently
reachable and what its declared visibility posture is.</t>
          </li>
          <li>
            <t><strong>ANNOUNCE</strong>: Publishes presence information into the DHT, replicated
across the k closest nodes to the announcing agent's Agent-ID.</t>
          </li>
        </ul>
        <t>DHT operations are carried as AGTP requests on the AGTP substrate,
authenticated via the AGTP wire-level identity (<tt>Agent-ID</tt> and
<tt>Request-Signature</tt>, with Owner-ID resolved from the Identity
Document per <xref target="AGTP-IDDOC"/>, and the certificate where deployed) and
verified per <xref target="AGTP-TRUST"/>.</t>
        <section anchor="attachment">
          <name>The Attachment Record</name>
          <t>What the DHT stores under an Agent-ID, and what ANNOUNCE publishes
and PROBE returns, is the agent's attachment: a JSON object signed
by the agent with its <tt>agent_public_key</tt> (<xref target="AGTP-IDDOC"/>):</t>
          <artwork><![CDATA[
{
  "agent_id":   "<64 lowercase hex>",
  "node":       "<Agent-ID of the full node or relay holding the connection>",
  "binding":    "tcp-tls" | "quic" | "h3",
  "endpoint":   "<host:port the node accepts AGTP on, or null for relay-mediated>",
  "mode":       "full" | "light" | "relayed",
  "iat":        <seconds since epoch>,
  "exp":        <seconds since epoch; MUST be within the presence TTL>,
  "seq":        <monotonic sequence number per Agent-ID>
}
]]></artwork>
          <t>A node <strong>MUST</strong> reject an attachment whose signature fails under the
<tt>agent_public_key</tt> of the Agent-ID's current Identity Document, whose
<tt>seq</tt> is no greater than the stored one, or whose <tt>exp</tt> has passed.
Equal Agent-IDs with higher <tt>seq</tt> replace, so an agent that moves
hosts republishes without any coordination with the old host. The attachment is the mutable half of the identity split:
the Agent-ID and its Genesis never change, the attachment changes
whenever the agent moves, and a verifier that holds a stale
attachment holds nothing an attacker can use, since reaching the
stale endpoint reaches a node that no longer answers for that
Agent-ID and a <tt>Request-Signature</tt> from the real agent still
verifies wherever the agent is.</t>
          <t>The attachment record is published by the agent about itself, on
the ACTIVATE transition and on every move, so an orchestrator that
instantiates, moves, scales, or withdraws instances needs no
separate feed into discovery: the lifecycle methods and the
agent's own ANNOUNCE and WITHDRAW are that feed, and <tt>exp</tt> retires
what the orchestrator forgets to withdraw. The same record, read
for the requesting agent instead of the target, is the requester's
location context for a search (<xref target="AGTP-DISCOVERY"/>): the <tt>region</tt>
and other partition dimensions of the overlays a requester has
joined say where it is attached, signed by the requester, with the
underlying network detail left where the network keeps it.</t>
        </section>
      </section>
      <section anchor="gossip-based-presence-convergence">
        <name>Gossip-Based Presence Convergence</name>
        <t>In parallel with DHT-based addressing, AGTP Presence uses a
gossip-based protocol for presence announcement and state convergence
within a visibility scope. The gossip mechanism is informed by
production systems such as Serf <xref target="SERF"/> and uses the following
properties:</t>
        <ul spacing="normal">
          <li>
            <t>Each full-node agent maintains a list of known peers within its
applicable visibility scopes.</t>
          </li>
          <li>
            <t>At configurable intervals (default 5 seconds, operator-tunable), the
agent selects a small random subset (default fanout 3) of known peers
and exchanges presence state.</t>
          </li>
          <li>
            <t>Presence announcements include the announcing agent's Agent-ID, its
declared visibility posture (from its AGTP-CERT extension), a
timestamp, and a JWS signature over the announcement.</t>
          </li>
          <li>
            <t>Receiving agents verify the signature against the announcing agent's
certificate before incorporating the announcement into their local
presence state.</t>
          </li>
          <li>
            <t>Conflicting announcements for the same Agent-ID (different presence
states, different timestamps) are resolved by selecting the most
recent validly signed announcement.</t>
          </li>
        </ul>
        <t>Gossip propagation converges across a scoped population in seconds to
low tens of seconds at scopes of thousands of agents. Implementations
<strong>MAY</strong> tune gossip intervals and fanout for their operational
requirements. The protocol behavior is normatively specified;
numerical parameters are operator-defined.</t>
      </section>
      <section anchor="scoped-overlay-partitioning">
        <name>Scoped Overlay Partitioning</name>
        <t>Presence in AGTP is a scoped property. Visibility is partitioned
across overlapping scopes determined by the trust tiers and verification
paths defined in <xref target="AGTP-TRUST"/>, the visibility posture declared by
each agent's certificate, and the operational dimensions agents
use for search: capability, industry, region.</t>
        <t>This document specifies a federation-of-scoped-overlays model. A
flat global DHT containing all agents would impose unnecessary
participation cost on every node. The scoped partitioning model
means most agents participate in views containing thousands to tens
of thousands of relevant peers within bounded scopes, with
deterministic resolution into other scopes when cross-scope reach is
needed.</t>
        <t>This mirrors how internet routing scales: BGP operates as a
federation of independently operated systems with
controlled inter-AS routing. AGTP Presence adopts the same
architectural pattern for agent populations, with the partition
axes chosen for their meaning to agent search; network topology
plays no part in them.</t>
        <section anchor="multi-dimensional-partition-keys">
          <name>Multi-Dimensional Partition Keys</name>
          <t>A scope is a composite key derived from one or more partition
dimensions. The dimensions specified by this document are:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Dimension</th>
                <th align="left">Source</th>
                <th align="left">Example Values</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>tier</tt></td>
                <td align="left">AGTP-TRUST trust tier</td>
                <td align="left">
                  <tt>tier:1</tt>, <tt>tier:2</tt>, <tt>tier:3</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>owner-domain</tt></td>
                <td align="left">Owner-ID domain</td>
                <td align="left">
                  <tt>owner-domain:acme.com</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>capability</tt></td>
                <td align="left">AGTP method library bindings</td>
                <td align="left">
                  <tt>capability:booking</tt>, <tt>capability:summarization</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>industry</tt></td>
                <td align="left">Industry classification</td>
                <td align="left">
                  <tt>industry:finance</tt>, <tt>industry:healthcare</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>region</tt></td>
                <td align="left">Geographic region</td>
                <td align="left">
                  <tt>region:us</tt>, <tt>region:eu</tt>, <tt>region:us-ca</tt></td>
              </tr>
            </tbody>
          </table>
          <t>A scope is expressed as a tuple of dimension values, for example
<tt>{capability: marketing, region: us}</tt> or <tt>{tier: 1, industry: finance,
capability: settlement}</tt>. The tuple is hashed to derive the overlay
identifier. Every agent that announces with that posture joins the
corresponding overlay, and within the overlay gossip converges to
full membership.</t>
          <t>Within a bounded scope, total awareness is the default. Every agent
in the <tt>{capability: marketing, region: us}</tt> overlay knows every
other agent in that overlay by Agent-ID, with no search hop required.</t>
          <t>An agent <strong>MAY</strong> join multiple overlays simultaneously. A US marketing
agent might join <tt>{capability: marketing, region: global}</tt> for broad
visibility, <tt>{capability: marketing, region: us}</tt> for the regional
view, and <tt>{capability: marketing, industry: fintech, region: us}</tt>
for a niche scope. Multi-membership is the mechanism by which an
agent declares which subsets of the broader population are
operationally meaningful to it. An overlay an agent has yet to join
has no view of it.</t>
        </section>
        <section anchor="capability-derivation-from-the-method-library">
          <name>Capability Derivation from the Method Library</name>
          <t>The <tt>capability</tt> partition dimension is derived from the AGTP method
library; agent self-declaration plays no part. An agent's capability
scope membership is determined by the methods it has bound through
its Agent Genesis and certificate; free-form text claims count for
nothing.</t>
          <t>This design eliminates the keyspace fragmentation that would result
from agents inventing arbitrary capability strings. The method
library is the controlled vocabulary that defines the capability
axis. An agent claiming <tt>capability:booking</tt> membership must have
bound the methods that constitute a booking capability in the
method library; agents that have yet to bind those methods cannot
join the overlay.</t>
          <t>The filtering vocabulary agents use to find peers and the partition
vocabulary the overlays are organized by are the same vocabulary. The same mechanism
that prevents capability misrepresentation also defines the partition
keyspace.</t>
          <t>Industry and region dimensions use thinner registries (industry
classifications such as NAICS or ISIC, geographic hierarchies such
as ISO 3166) maintained outside this document. Implementations
<strong>SHOULD</strong> support extensible dimension registries to allow
operational deployments to define additional partition axes
appropriate to their use cases.</t>
        </section>
        <section anchor="adaptive-partition-refinement">
          <name>Adaptive Partition Refinement</name>
          <t>Scopes split when they exceed working-set thresholds and merge when
they become sparse. This adaptive refinement keeps individual
overlays within the operational envelope of gossip convergence as
agent populations grow.</t>
          <t>When the agent population within a scope exceeds an
implementation-defined threshold (typically in the range of ten
thousand to one hundred thousand agents per overlay), the scope
<strong>SHOULD</strong> be split by adding a partition dimension. For example,
<tt>{capability: marketing, region: us}</tt> may split into
<tt>{capability: marketing, region: us-east}</tt> and
<tt>{capability: marketing, region: us-west}</tt> when geographic
sub-partitioning reduces population to manageable sizes. Alternatively
the same scope might split on capability into
<tt>{capability: marketing-b2b, region: us}</tt> and
<tt>{capability: marketing-b2c, region: us}</tt>.</t>
          <t>When the population within a scope falls below a sparse-population
threshold, the scope <strong>MAY</strong> be merged with sibling scopes by removing
a partition dimension, reducing operational overhead.</t>
          <t>Split and merge decisions are made by overlay coordinators (typically
operated by infrastructure providers, certificate authorities, or
governance bodies for the relevant trust tier) and propagated through
the overlay via the gossip protocol. Agents discovering that their
scope has split rejoin the appropriate sub-scope based on their
current posture. Agents discovering that their scope has merged
transition to the broader scope without manual intervention.</t>
          <t>Adaptive partition refinement resembles DNS zone
delegation (when a zone grows too large, it delegates subdomains)
and to Kademlia k-bucket splitting (when a bucket overflows, it
splits along the next bit of the keyspace).</t>
        </section>
        <section anchor="cross-scope-resolution">
          <name>Cross-Scope Resolution</name>
          <t>When an agent needs to interact with an agent in a scope it has yet to
joined, cross-scope resolution provides the mechanism. The agent
has no need to acquire awareness of the entire other scope; it
needs to resolve to the specific agent.</t>
          <t>Cross-scope resolution uses a rendezvous lookup model. Each scope's
overlay coordinator maintains a rendezvous index of agents in the
scope, keyed by Agent-ID and indexed by capability for capability-driven
queries. Cross-scope queries proceed as follows:</t>
          <ol spacing="normal" type="1"><li>
              <t>The querying agent identifies the target scope from the partition
dimensions implied by its query (e.g., a marketing agent looking
for science-research capability resolves into <tt>{capability:
science-research}</tt> scope).</t>
            </li>
            <li>
              <t>The querying agent's local overlay coordinator forwards the query
to the target scope's rendezvous index.</t>
            </li>
            <li>
              <t>The rendezvous index returns the requested agent record, including
the agent's Agent-ID, declared visibility posture, and reachability
information.</t>
            </li>
            <li>
              <t>The querying agent connects to the target agent directly per its
visibility rules.</t>
            </li>
          </ol>
          <t>The total lookup latency is O(log N) hops across the federation of
scoped overlays, comparable to DNS resolution latency for cross-zone
queries.</t>
          <t>The architectural distinction is: agents have total awareness within
the scopes they have joined, and deterministic resolution into the
scopes they have yet to. This composite holds at billion-agent
populations. No single agent maintains awareness of the global
population; every agent has efficient access to every other agent
through the scope structure.</t>
        </section>
      </section>
    </section>
    <section anchor="participation-modes">
      <name>Participation Modes</name>
      <t>Not every agent participates in AGTP Presence the same way. The
specification defines three participation modes, allowing
resource-constrained, ephemeral, and lightweight agents to remain
discoverable, in the sense of <xref target="attachment"/>, without bearing full DHT participation cost.</t>
      <section anchor="full-node">
        <name>Full Node</name>
        <t>A full-node agent maintains DHT routing tables, participates in
gossip exchanges with peers, accepts incoming DHT queries, and
optionally serves as a relay for light-client agents.</t>
        <t>Full-node agents <strong>MUST</strong> be reachable at a stable AGTP endpoint
during their participation lifetime. Full nodes <strong>SHOULD</strong> have
predictable availability and <strong>SHOULD NOT</strong> be subject to frequent
churn.</t>
        <t>Typical full-node deployments include enterprise gateways, long-lived
infrastructure agents, organizational agent directories, and dedicated
relay services.</t>
      </section>
      <section anchor="light-client">
        <name>Light Client</name>
        <t>A light-client agent maintains no DHT routing tables or
participate in gossip directly. Instead, the light-client agent
communicates with one or more full-node peers (typically operated by
the same Owner-ID or trusted relay services) for presence announcement
and attachment lookup and search operations.</t>
        <t>Light-client agents announce their presence to their chosen full-node
peers, which then propagate the announcement into the DHT and gossip
layer on their behalf. Search queries from light-client agents are
forwarded by full-node peers, with results returned to the light
client.</t>
        <t>Light-client mode is appropriate for resource-constrained agents,
ephemeral task agents with short lifetimes, mobile or intermittent
agents, and consumer agents where DHT participation cost is
disproportionate to their search needs.</t>
      </section>
      <section anchor="relay-mediated">
        <name>Relay-Mediated</name>
        <t>A relay-mediated agent operates entirely through a relay full-node.
The relay receives all incoming and outgoing presence and search
traffic for the relayed agent. From the network's perspective, the
relay appears to be the addressable participant; the relayed agent's
Agent-ID is associated with the relay endpoint.</t>
        <t>Relay-mediated mode is appropriate for agents behind NAT or firewall
boundaries, for agents with intermittent connectivity, and for
deployments where direct DHT participation is operationally
infeasible.</t>
        <t>Relays <strong>MUST</strong> preserve the cryptographic integrity of the relayed
agent's identity and <strong>MUST NOT</strong> modify presence announcements or
search responses on behalf of the relayed agent without explicit
agent consent.</t>
      </section>
    </section>
    <section anchor="methods">
      <name>Lifecycle Methods</name>
      <t>This document defines three new AGTP methods extending the lifecycle
verb category defined in <xref target="AGTP"/>. These methods are AGTP-native and
operate over the AGTP wire format.</t>
      <section anchor="announce">
        <name>ANNOUNCE</name>
        <t>The ANNOUNCE method publishes an agent's presence into the AGTP
Presence layer. An agent invokes ANNOUNCE upon joining the network,
when its visibility posture changes within the bounds permitted by its
certificate, or as a periodic refresh of its presence state. The
first ANNOUNCE is a consequence of the agent's ACTIVATE transition
(<xref target="AGTP"/>): the agent <strong>MUST</strong> announce within the presence TTL of
becoming Active, and a DEACTIVATE, REVOKE, or DEPRECATE transition
<strong>MUST</strong> be followed by WITHDRAW. Activation is therefore the single
publish act; ANS registration (<xref target="AGTP-DISCOVERY"/>) and presence
announcement both follow from it.</t>
        <t>ANNOUNCE requests are sent to one or more peer agents within the
sender's visibility scope. The receiving agents validate the
announcement signature, incorporate the announcement into their local
presence state, and propagate the announcement via gossip subject to
the visibility rules declared by the announcing agent.</t>
        <t>Request semantics:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Idempotent</strong>: Yes (same announcement state may be sent repeatedly)</t>
          </li>
          <li>
            <t><strong>Authority-Scope</strong>: <tt>presence:announce</tt> <strong>REQUIRED</strong></t>
          </li>
          <li>
            <t><strong>Response</strong>: 200 OK with current peer presence state, or 404 if the
receiving agent is outside the announcing agent's visibility scope</t>
          </li>
        </ul>
      </section>
      <section anchor="withdraw">
        <name>WITHDRAW</name>
        <t>The WITHDRAW method removes an agent's presence from the AGTP Presence
layer prior to disconnection. WITHDRAW is the explicit opposite of
ANNOUNCE and signals graceful exit from the network.</t>
        <t>WITHDRAW requests propagate via gossip and remove the agent's presence
record from peer state. Agents that omit WITHDRAW before
disconnection have their presence eventually expired via TTL-based
record aging.</t>
        <t>Request semantics:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Idempotent</strong>: Yes</t>
          </li>
          <li>
            <t><strong>Authority-Scope</strong>: <tt>presence:withdraw</tt> <strong>REQUIRED</strong></t>
          </li>
          <li>
            <t><strong>Response</strong>: 200 OK on successful withdrawal acknowledgment</t>
          </li>
        </ul>
      </section>
      <section anchor="probe">
        <name>PROBE</name>
        <t>The PROBE method queries the current state of a specific agent. PROBE
is used during DHT lookups for liveness verification, by search
clients evaluating returned peer lists, and by monitoring systems
checking agent availability.</t>
        <t>PROBE responses are filtered by the responding agent's visibility
posture. An agent whose visibility posture excludes the requesting
agent <strong>MUST</strong> return a 404 response, indistinguishable from a response
indicating the agent is unknown. This refusal enforces the <tt>invisible</tt>
presence mode.</t>
        <t>Request semantics:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Idempotent</strong>: Yes</t>
          </li>
          <li>
            <t><strong>Authority-Scope</strong>: <tt>presence:probe</tt> <strong>REQUIRED</strong></t>
          </li>
          <li>
            <t><strong>Response</strong>: 200 OK with current presence state, 404 if the agent is
outside the requesting agent's visibility scope or unknown</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="visibility">
      <name>Visibility Model</name>
      <t>AGTP Presence specifies three orthogonal axes of visibility control.
The visibility model resembles operating system
file permissions, gaming platform privacy controls, and similar
well-understood mechanisms. Visibility is declared via AGTP-CERT
certificate extensions and is cryptographically bound to the agent's
identity.</t>
      <section anchor="presence-visibility">
        <name>Presence Visibility</name>
        <t>Presence visibility determines whether the agent appears in ambient
search at all. The following modes are defined:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Mode</th>
              <th align="left">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>public</tt></td>
              <td align="left">Visible to any AGTP-speaking agent that queries</td>
            </tr>
            <tr>
              <td align="left">
                <tt>tier-scoped</tt></td>
              <td align="left">Visible only to agents within the same trust tier per <xref target="AGTP-TRUST"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>owner-domain</tt></td>
              <td align="left">Visible only to agents sharing the same Owner-ID domain</td>
            </tr>
            <tr>
              <td align="left">
                <tt>explicit-only</tt></td>
              <td align="left">Visible only to agents in an explicit allow list</td>
            </tr>
            <tr>
              <td align="left">
                <tt>invisible</tt></td>
              <td align="left">Absent from every search result; reachable only by direct Agent-ID, which is discovery in the sense of <xref target="attachment"/></td>
            </tr>
          </tbody>
        </table>
        <t>Invisible-mode agents remain on the AGTP substrate and are reachable
by other agents that already possess the Invisible agent's Agent-ID.
The invisible mode applies to search results; direct addressing by
Agent-ID is unaffected.</t>
      </section>
      <section anchor="disclosure-visibility">
        <name>Disclosure Visibility</name>
        <t>Disclosure visibility determines what attributes are advertised about
an agent that is itself visible. The following modes are defined:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Mode</th>
              <th align="left">Disclosed</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>full</tt></td>
              <td align="left">Agent-ID, Owner-ID, capabilities, methods, Authority-Scope</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capabilities</tt></td>
              <td align="left">Agent-ID, Owner-ID, capabilities (omitting scope and method detail)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>identity-only</tt></td>
              <td align="left">Agent-ID and Owner-ID only</td>
            </tr>
            <tr>
              <td align="left">
                <tt>existence-only</tt></td>
              <td align="left">Agent-ID only (presence acknowledged without metadata)</td>
            </tr>
          </tbody>
        </table>
        <t>Agents in <tt>existence-only</tt> disclosure mode are visible in search
results but advertise no operational metadata. Searching agents
that wish to learn more must invoke explicit AGTP methods (DESCRIBE,
QUERY) against the discovered agent, which the agent may then
authorize or deny.</t>
      </section>
      <section anchor="audience-scoping">
        <name>Audience Scoping</name>
        <t>Audience scoping further constrains which agents may observe a
visible agent. Audience scoping composes with presence visibility:
an agent in <tt>public</tt> presence mode with restricted audience scoping
is visible only to the specified audience even though its presence
mode would otherwise allow broad visibility.</t>
        <t>The following audience scope expressions are defined:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Expression</th>
              <th align="left">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>tier:N</tt></td>
              <td align="left">Agents at trust tier N or higher</td>
            </tr>
            <tr>
              <td align="left">
                <tt>owner-domain:&lt;domain&gt;</tt></td>
              <td align="left">Agents with Owner-ID matching the specified domain</td>
            </tr>
            <tr>
              <td align="left">
                <tt>governance-group:&lt;name&gt;</tt></td>
              <td align="left">Agents in a named governance group</td>
            </tr>
            <tr>
              <td align="left">
                <tt>agent-id:&lt;list&gt;</tt></td>
              <td align="left">Agents in an explicit Agent-ID allow list</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability:&lt;value&gt;</tt></td>
              <td align="left">Agents bound to the specified capability per AGTP method library</td>
            </tr>
            <tr>
              <td align="left">
                <tt>industry:&lt;value&gt;</tt></td>
              <td align="left">Agents asserting membership in the specified industry classification</td>
            </tr>
            <tr>
              <td align="left">
                <tt>geographic:&lt;region&gt;</tt></td>
              <td align="left">Agents asserting presence within a geographic region</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>capability</tt> expression composes with the capability partition
dimension: an agent restricting its audience to <tt>capability:settlement</tt>
is visible only to other agents that have bound the settlement
capability through the method library, regardless of which scope they
joined to make the search.</t>
        <t>Audience expressions <strong>MAY</strong> be combined with logical operators (AND,
OR, NOT) in the certificate extension to express compound audience
constraints.</t>
      </section>
      <section anchor="certificate-extension-schema">
        <name>Certificate Extension Schema</name>
        <t>Visibility posture is declared in an AGTP-CERT extension. The
extension OID and schema are defined in <xref target="iana-considerations"/>. The
extension carries three required fields corresponding to the three
visibility axes:</t>
        <t><tt>
PresenceVisibilityExtension ::= SEQUENCE {
    presenceMode    PresenceMode,
    disclosureMode  DisclosureMode,
    audienceScope   AudienceExpression
}
</tt></t>
        <t>The visibility posture declared in the certificate is the maximum
envelope within which the agent may operate. Runtime visibility may
be reduced within this envelope via the Presence-Mode header on
ANNOUNCE and outbound AGTP requests, but <strong>MUST NOT</strong> exceed the
certificate-declared envelope.</t>
      </section>
      <section anchor="runtime-mode-signaling">
        <name>Runtime Mode Signaling</name>
        <t>Agents <strong>MAY</strong> adjust their effective visibility at runtime within
the envelope declared by their certificate. The Presence-Mode header
on outbound AGTP requests signals the agent's current operational
visibility mode. Receiving agents <strong>MUST</strong> honor the declared runtime
mode when generating presence announcements or PROBE responses.</t>
        <t>For example, an agent whose certificate declares
<tt>presenceMode: public</tt> may temporarily operate as <tt>presenceMode:
invisible</tt> by signaling Presence-Mode: invisible on its requests. The
agent cannot exceed its certificate envelope (cannot upgrade from
<tt>owner-domain</tt> to <tt>public</tt>) but may reduce visibility within it at any
time.</t>
      </section>
    </section>
    <section anchor="bootstrap">
      <name>Bootstrap</name>
      <t>New agents joining the AGTP Presence network require entry points.
The bootstrap problem is non-trivial because the
operators of bootstrap services have structural influence over network
topology. This document specifies a decentralized bootstrap model
that avoids single points of capture.</t>
      <section anchor="multi-seed-bootstrap">
        <name>Multi-Seed Bootstrap</name>
        <t>Agents joining the network <strong>SHOULD</strong> maintain a list of at least
three bootstrap peers operated by independent parties. Bootstrap
peer lists <strong>MAY</strong> be obtained from:</t>
        <ul spacing="normal">
          <li>
            <t>AGTP-CERT certificate authorities, which include bootstrap peer
hints in issued certificates</t>
          </li>
          <li>
            <t>DNS-anchored seed records published under operator domains</t>
          </li>
          <li>
            <t>Configuration provided by deployment tooling</t>
          </li>
          <li>
            <t>Previously discovered AGTP peers from prior sessions</t>
          </li>
        </ul>
        <t>Agents <strong>SHOULD</strong> rotate their bootstrap peer list periodically and
<strong>SHOULD NOT</strong> depend on a single bootstrap operator indefinitely.</t>
      </section>
      <section anchor="trust-tier-specific-bootstrap">
        <name>Trust-Tier-Specific Bootstrap</name>
        <t>Tier 1 Verified, Tier 2 Org-Asserted, and Tier 3 Experimental agents
<strong>MAY</strong> use distinct bootstrap peer lists appropriate to their tier.
Tier 1 bootstrap peers, in particular, are typically operated by
institutional participants (financial institutions, regulated
entities, standards bodies, certificate authorities) with operational
accountability for their bootstrap services.</t>
      </section>
      <section anchor="governance-driven-bootstrap-rotation">
        <name>Governance-Driven Bootstrap Rotation</name>
        <t>Bootstrap peer lists <strong>MAY</strong> be rotated through governance processes
defined in <xref target="AGTP-TRUST"/>, including periodic refresh of authorized
bootstrap operators and revocation of bootstrap peers that fail to
meet operational requirements.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Presence at the protocol level creates an attack surface
that this document addresses through multiple layered mitigations.
Implementers and operators <strong>MUST</strong> consider the following.</t>
      <section anchor="sybil-resistance">
        <name>Sybil Resistance</name>
        <t>Attackers may attempt to flood the network with falsified agent
identities to gain disproportionate influence over routing, gossip
propagation, or search results.</t>
        <t>Mitigations:</t>
        <ul spacing="normal">
          <li>
            <t>All Agent-IDs are 256-bit SHA-256 hashes of Agent Genesis documents
per <xref target="AGTP-IDENTIFIERS"/>. Generating a target Agent-ID for a
specific DHT region requires brute-forcing the hash preimage, which
is computationally infeasible.</t>
          </li>
          <li>
            <t>AGTP-CERT requirements per <xref target="AGTP-CERT"/> bind Agent-IDs to issuing
authority chains. Sybil attacks require obtaining valid certificates
from cooperating authorities.</t>
          </li>
          <li>
            <t>Tier-scoped presence partitioning means that an attacker generating
many Tier 3 Experimental agents cannot affect Tier 1 or Tier 2
visibility scopes.</t>
          </li>
          <li>
            <t>Per-Owner-ID announcement rate limits <strong>SHOULD</strong> be enforced by
participating nodes to prevent presence flooding from a single
controlling entity.</t>
          </li>
        </ul>
      </section>
      <section anchor="eclipse-attacks">
        <name>Eclipse Attacks</name>
        <t>An attacker controlling a sufficient number of nodes near a target
Agent-ID in DHT keyspace may be able to isolate the target from the
broader network, intercepting or dropping its DHT operations.</t>
        <t>Mitigations:</t>
        <ul spacing="normal">
          <li>
            <t>Parallel disjoint lookups (alpha=3) per S/Kademlia <xref target="SKADEMLIA"/>
reduce the probability that all lookup paths are controlled by
attacker nodes.</t>
          </li>
          <li>
            <t>k-bucket diversification requirements ensure routing table entries
span multiple network locations and Owner-ID domains.</t>
          </li>
          <li>
            <t>Deterministic content-hash Agent-IDs prevent attackers from
cheaply generating IDs that cluster around a target.</t>
          </li>
        </ul>
      </section>
      <section anchor="presence-flooding-and-denial-of-service">
        <name>Presence Flooding and Denial of Service</name>
        <t>Attackers may attempt to flood the network with announcements,
search queries, or probe requests to exhaust resources of
participating nodes.</t>
        <t>Mitigations:</t>
        <ul spacing="normal">
          <li>
            <t>Per-Owner-ID and per-Agent-ID rate limits on ANNOUNCE, PROBE, and
search and lookup operations.</t>
          </li>
          <li>
            <t>Quota enforcement tied to AGTP-CERT issuance, allowing the issuing
authority to revoke certificates of abusive participants.</t>
          </li>
          <li>
            <t>Gossip protocol bounded fanout (default 3) prevents amplification.</t>
          </li>
          <li>
            <t>Light-client and relay-mediated participation modes allow legitimate
resource-constrained agents to participate without enabling
amplification attacks.</t>
          </li>
        </ul>
      </section>
      <section anchor="metadata-leakage-through-traffic-analysis">
        <name>Metadata Leakage Through Traffic Analysis</name>
        <t>Even with <tt>invisible</tt> presence mode, an agent generates network
traffic that may reveal its existence and activity patterns through
traffic analysis.</t>
        <t>Mitigations:</t>
        <ul spacing="normal">
          <li>
            <t>This document provides incomplete protection against
sophisticated traffic analysis. The visibility model is best-effort
with respect to passive network observation.</t>
          </li>
          <li>
            <t>Agents requiring strong unobservability <strong>SHOULD</strong> use additional
measures including TLS connection padding, traffic shaping, or
participation through privacy-enhancing relays.</t>
          </li>
          <li>
            <t>Operators <strong>SHOULD</strong> acknowledge that invisible-mode agents are
visible to the network operators they transit, even when invisible
to other AGTP agents.</t>
          </li>
        </ul>
      </section>
      <section anchor="visibility-declaration-vs-enforcement">
        <name>Visibility Declaration vs. Enforcement</name>
        <t>Cryptographic declaration of visibility posture via AGTP-CERT
extensions ensures that an agent's visibility intent is verifiable.
Enforcement of visibility, however, depends on the cooperation of
participating nodes.</t>
        <t>This document specifies that conforming AGTP Presence implementations
<strong>MUST</strong> honor declared visibility postures in their ANNOUNCE,
PROBE, and gossip behaviors. Non-conforming implementations may
ignore declared posture. Visibility is enforced by the protocol where
implementations conform; the cryptographic declaration prevents
visibility claims from being falsified; a non-conforming actor can
still observe what it chooses to observe.</t>
        <t>The situation is the same as TLS certificate validation: a server's
certificate declares its identity verifiably, but a non-conforming
client may choose to ignore validation failures.</t>
      </section>
      <section anchor="bootstrap-peer-capture">
        <name>Bootstrap Peer Capture</name>
        <t>An attacker controlling bootstrap services may influence the initial
routing state of joining agents, potentially enabling eclipse-class
attacks on newly joined participants.</t>
        <t>Mitigations:</t>
        <ul spacing="normal">
          <li>
            <t>Multi-seed bootstrap with peers operated by independent parties.</t>
          </li>
          <li>
            <t>Periodic rotation of bootstrap peer lists.</t>
          </li>
          <li>
            <t>Trust-tier-specific bootstrap with institutional accountability for
Tier 1 bootstrap services.</t>
          </li>
          <li>
            <t>Governance-driven revocation of bootstrap peers that fail operational
requirements.</t>
          </li>
        </ul>
      </section>
      <section anchor="privacy-of-search-queries">
        <name>Privacy of Search Queries</name>
        <t>Search queries themselves may reveal information about the
querying agent's interests, intentions, or operational state.</t>
        <t>Mitigations:</t>
        <ul spacing="normal">
          <li>
            <t>Search queries carry AGTP wire-level identity, so they cannot be
fully anonymous within the AGTP substrate.</t>
          </li>
          <li>
            <t>Operators concerned about query privacy <strong>MAY</strong> route search
queries through privacy-enhancing relays or use cover traffic.</t>
          </li>
          <li>
            <t>Future revisions of this document may specify query blinding or
oblivious lookup mechanisms for high-privacy use cases.</t>
          </li>
        </ul>
      </section>
      <section anchor="partition-vocabulary-governance">
        <name>Partition Vocabulary Governance</name>
        <t>The capability partition dimension derives from the AGTP method
library and inherits its governance properties. The industry and
region partition dimensions depend on external registries (such as
NAICS, ISIC, ISO 3166) and inherit those registries' governance
properties.</t>
        <t>The architectural concern: whoever governs the partition vocabulary
has structural influence over how agents are partitioned and
therefore over which agents become visible to which others. Free-form
partition strings would shatter the keyspace and collapse cross-scope
resolution. Tightly governed vocabularies create central authorities
in a system whose value proposition includes decentralization.</t>
        <t>Mitigations:</t>
        <ul spacing="normal">
          <li>
            <t>The capability axis is governed by the method library, which is
itself a constrained vocabulary tied to AGTP method
definitions. This avoids introducing a new governance body for the
capability axis specifically.</t>
          </li>
          <li>
            <t>Industry and region axes use established external registries with
long-standing governance. AGTP Presence maintains none of these
registries; it consumes them.</t>
          </li>
          <li>
            <t>Implementations <strong>SHOULD</strong> support extensible dimension registries
to allow operational deployments to define additional partition
axes for specific use cases without requiring changes to this
document.</t>
          </li>
          <li>
            <t>Overlay coordinators that manage split and merge decisions for
scopes <strong>SHOULD</strong> operate under governance frameworks appropriate
to the trust tier they serve.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="composition-with-existing-agtp-specifications">
      <name>Composition with Existing AGTP Specifications</name>
      <t>AGTP Presence is built on existing AGTP primitives and composes with
the AGTP draft family without requiring changes to the base
specification.</t>
      <section anchor="composition-with-agtp-base">
        <name>Composition with AGTP Base</name>
        <t>The new methods (ANNOUNCE, WITHDRAW, PROBE) extend the lifecycle verb
category defined in the base specification. They are carried as
standard AGTP requests on the AGTP wire format, authenticated via
existing identity headers (Agent-ID, Owner-ID, Authority-Scope), and
verified per the existing trust framework.</t>
      </section>
      <section anchor="composition-with-agtp-identifiers">
        <name>Composition with AGTP-IDENTIFIERS</name>
        <t>Canonical Agent-IDs as defined in <xref target="AGTP-IDENTIFIERS"/> provide the
content-addressable keys used by the DHT. No changes to the
identifier specification are required.</t>
      </section>
      <section anchor="composition-with-agtp-trust">
        <name>Composition with AGTP-TRUST</name>
        <t>Trust tiers and verification paths defined in <xref target="AGTP-TRUST"/> define
the scoping model for visibility partitioning. The Tier 1, Tier 2,
and Tier 3 classifications determine default overlay partitioning.</t>
      </section>
      <section anchor="composition-with-agtp-cert">
        <name>Composition with AGTP-CERT</name>
        <t>The visibility extension defined in this document is registered in
the AGTP-CERT certificate extension namespace. AGTP-CERT certificate
issuance processes incorporate visibility posture declaration as part
of certificate generation.</t>
      </section>
      <section anchor="composition-with-agtp-discovery">
        <name>Composition with AGTP-DISCOVERY</name>
        <t><xref target="AGTP-DISCOVERY"/> specifies the DISCOVER method and the Agent Name
Service, which operate over the presence substrate. The two documents
divide the three operations of <xref target="RFC6763"/> between them: Presence is
discovery (Agent-ID to attachment); DISCOVER's intent-driven mode is
search (criteria to candidates), evaluated against the live presence
layer instead of a separate registry; ANS is resolution (name to
Agent-ID). Agents a search returns are agents currently visible in
the requesting agent's presence scope, and each result carries the
attachment Presence holds for it. The dichotomy between the two
directions is stated once, in <xref target="AGTP-DISCOVERY"/>: ambient (push,
continuous, ANNOUNCE and gossip) and reactive (pull, point in time,
DISCOVER); this document uses those two words for the two
directions.</t>
      </section>
    </section>
    <section anchor="scaling-considerations">
      <name>Scaling Considerations</name>
      <t>AGTP Presence is designed to scale through partitioning and hybrid
participation; no single overlay is asked to hold the population. This
section addresses scaling characteristics at different population
sizes.</t>
      <section anchor="at-one-million-agents">
        <name>At One Million Agents</name>
        <t>Single-tier or single-governance-domain populations of approximately
one million agents are within the proven operational envelope of
existing Kademlia DHT deployments <xref target="KADEMLIA"/> <xref target="IPFS"/>. Lookup
latency is O(log N), approximately 20 hops for one million nodes,
typically faster in practice due to caching and parallel queries.
Gossip convergence within scope completes in seconds. Routing table
state per node remains bounded at approximately 20 to 30 entries.</t>
      </section>
      <section anchor="at-one-billion-agents">
        <name>At One Billion Agents</name>
        <t>Global populations approaching one billion agents are addressed
through the federation-of-scoped-overlays model. No single overlay
contains the full population. Most agents participate in scoped views
of thousands to tens of thousands of relevant peers. Cross-tier and
cross-domain search proceeds through controlled federation points.</t>
        <t>The internet scales the same way through BGP:
the internet is a federation of
independently operated systems with controlled inter-AS routing,
with no single flat network anywhere in it. AGTP Presence
adopts the same architectural pattern for agent populations.</t>
      </section>
      <section anchor="light-client-predominance">
        <name>Light-Client Predominance</name>
        <t>In production deployments at scale, the participation distribution is
expected to skew heavily toward light-client and relay-mediated
agents. Full nodes are operated by infrastructure providers,
enterprises, and institutional participants. Ephemeral consumer and
task agents participate as light clients. This distribution is
consistent with how other large-scale P2P systems have operated.</t>
      </section>
      <section anchor="observability-and-operations">
        <name>Observability and Operations</name>
        <t>Implementers and operators of AGTP Presence networks <strong>SHOULD</strong> track
the following operational metrics:</t>
        <ul spacing="normal">
          <li>
            <t>DHT routing table convergence time at agent join</t>
          </li>
          <li>
            <t>Gossip convergence latency within visibility scopes</t>
          </li>
          <li>
            <t>Per-node bandwidth consumption</t>
          </li>
          <li>
            <t>Presence record TTL effectiveness and stale-record rates</t>
          </li>
          <li>
            <t>Rate of failed validation (signature failures, visibility
violations, bootstrap failures)</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests IANA registration of the following.</t>
      <section anchor="agtp-method-names">
        <name>AGTP Method Names</name>
        <t>Registration of three new AGTP method names in the AGTP method
registry established by <xref target="AGTP"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Method</th>
              <th align="left">Category</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ANNOUNCE</td>
              <td align="left">Lifecycle</td>
              <td align="left">Publish agent presence to the substrate</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">WITHDRAW</td>
              <td align="left">Lifecycle</td>
              <td align="left">Remove agent presence prior to disconnection</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">PROBE</td>
              <td align="left">Lifecycle</td>
              <td align="left">Query agent presence state</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="agtp-cert-extension-oid">
        <name>AGTP-CERT Extension OID</name>
        <t>Registration of an OID for the Presence Visibility Extension in the
AGTP-CERT extension namespace established by <xref target="AGTP-CERT"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Extension name: PresenceVisibilityExtension</t>
          </li>
          <li>
            <t>OID: TBD (to be assigned)</t>
          </li>
          <li>
            <t>Reference: This document</t>
          </li>
        </ul>
      </section>
      <section anchor="authority-scope-values">
        <name>Authority-Scope Values</name>
        <t>Registration of three new Authority-Scope values:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Scope</th>
              <th align="left">Permits</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>presence:announce</tt></td>
              <td align="left">Invoking the ANNOUNCE method</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>presence:withdraw</tt></td>
              <td align="left">Invoking the WITHDRAW method</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>presence:probe</tt></td>
              <td align="left">Invoking the PROBE method</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="presence-mode-header">
        <name>Presence-Mode Header</name>
        <t>Registration of the Presence-Mode header in the AGTP header registry:</t>
        <ul spacing="normal">
          <li>
            <t>Header name: Presence-Mode</t>
          </li>
          <li>
            <t>Defined values: <tt>public</tt>, <tt>tier-scoped</tt>, <tt>owner-domain</tt>,
<tt>explicit-only</tt>, <tt>invisible</tt></t>
          </li>
          <li>
            <t>Reference: This document</t>
          </li>
        </ul>
      </section>
      <section anchor="partition-dimension-registry">
        <name>Partition Dimension Registry</name>
        <t>This document requests IANA establishment of a new registry for
AGTP Presence partition dimensions. The registry contains the
following initial entries:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Dimension Name</th>
              <th align="left">Vocabulary Source</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>tier</tt></td>
              <td align="left">AGTP-TRUST trust tier values</td>
              <td align="left">
                <xref target="AGTP-TRUST"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>owner-domain</tt></td>
              <td align="left">DNS domain names</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability</tt></td>
              <td align="left">AGTP method library</td>
              <td align="left">
                <xref target="AGTP"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>industry</tt></td>
              <td align="left">NAICS, ISIC, or operator-defined classifications</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>region</tt></td>
              <td align="left">ISO 3166 or operator-defined geographic identifiers</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
        <t>Registration policy: Specification Required. New partition dimensions
<strong>MUST</strong> be accompanied by a referenced vocabulary source, governance
description, and expected use case description.</t>
      </section>
    </section>
    <section anchor="prior-art-and-related-work">
      <name>Prior Art and Related Work</name>
      <t>AGTP Presence builds on patterns established in distributed systems
research and practice. The following related work is acknowledged
and contextualized.</t>
      <section anchor="distributed-hash-tables">
        <name>Distributed Hash Tables</name>
        <t>Kademlia <xref target="KADEMLIA"/> provides the foundational DHT design used here.
S/Kademlia <xref target="SKADEMLIA"/> contributes security hardening for adversarial
network conditions. IPFS <xref target="IPFS"/> demonstrates production deployment
of Kademlia at hundreds of thousands of nodes.</t>
        <t>The contribution of AGTP Presence beyond these systems is the
integration of cryptographically declared visibility scoping with
DHT operations, allowing scoped views over one shared network without
requiring separate physical networks per scope.</t>
      </section>
      <section anchor="gossip-protocols">
        <name>Gossip Protocols</name>
        <t>Production gossip systems including Serf <xref target="SERF"/> demonstrate the
viability of gossip-based membership and state convergence at scale.
The gossip mechanism specified here adopts the bounded-fanout
epidemic propagation model used in these systems, with the addition
of certificate-based signature verification for all announcements.</t>
      </section>
      <section anchor="peer-to-peer-discovery">
        <name>Peer-to-Peer Discovery</name>
        <t>libp2p <xref target="LIBP2P"/> provides general-purpose peer discovery primitives
including Kademlia DHT and gossipsub. AGTP Presence differs in
specifying trust-tier-aware visibility scoping and certificate-bound
declaration of visibility posture at the protocol level.</t>
      </section>
      <section anchor="presence-protocols">
        <name>Presence Protocols</name>
        <t>XMPP presence (RFC 6121) provides per-user presence within federated
servers using subscription rosters. The AGTP Presence model differs
in being ambient (requiring no explicit subscription) and in having
no server in the middle.</t>
      </section>
      <section anchor="comparison-with-pull-based-discovery">
        <name>Comparison with Pull-Based Discovery</name>
        <t>ARD, DNS-AID, ANS, and similar pull-based proposals provide
mechanisms for querying known endpoints; in the vocabulary of
<xref target="AGTP-DISCOVERY"/> they are search and resolution. AGTP Presence
operates at a different layer, providing the live population view
against which those reactive queries can be evaluated. AGTP Presence
replaces none of them; it provides the live population that reactive
queries run against, in place of static or stale directories.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="AGTP">
          <front>
            <title>Agent Transfer Protocol (AGTP)</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-independent-agtp-10"/>
        </reference>
        <reference anchor="AGTP-IDENTIFIERS">
          <front>
            <title>AGTP Identifier Chain</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-identifiers-03"/>
        </reference>
        <reference anchor="AGTP-TRUST">
          <front>
            <title>AGTP Trust and Verification Specification</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-trust-03"/>
        </reference>
        <reference anchor="AGTP-CERT">
          <front>
            <title>AGTP Agent Certificate Extension</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-agent-cert-04"/>
        </reference>
        <reference anchor="AGTP-DISCOVERY">
          <front>
            <title>AGTP Agent Discovery and Name Service</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-discovery-02"/>
        </reference>
        <reference anchor="AGTP-IDDOC">
          <front>
            <title>AGTP Agent Identity Document</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-identity-document-00"/>
        </reference>
        <reference anchor="RFC6763">
          <front>
            <title>DNS-Based Service Discovery</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document specifies how DNS resource records are named and structured to facilitate service discovery. Given a type of service that a client is looking for, and a domain in which the client is looking for that service, this mechanism allows clients to discover a list of named instances of that desired service, using standard DNS queries. This mechanism is referred to as DNS-based Service Discovery, or DNS-SD.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6763"/>
          <seriesInfo name="DOI" value="10.17487/RFC6763"/>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="KADEMLIA" target="https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf">
          <front>
            <title>Kademlia: A Peer-to-peer Information System Based on the XOR Metric</title>
            <author initials="P." surname="Maymounkov" fullname="Petar Maymounkov">
              <organization/>
            </author>
            <author initials="D." surname="Mazieres" fullname="David Mazieres">
              <organization/>
            </author>
            <date year="2002"/>
          </front>
        </reference>
        <reference anchor="SKADEMLIA">
          <front>
            <title>S/Kademlia: A Practicable Approach Towards Secure Key-Based Routing</title>
            <author initials="I." surname="Baumgart" fullname="Ingmar Baumgart">
              <organization/>
            </author>
            <author initials="S." surname="Mies" fullname="Sebastian Mies">
              <organization/>
            </author>
            <date year="2007"/>
          </front>
        </reference>
        <reference anchor="IPFS" target="https://ipfs.tech">
          <front>
            <title>IPFS - Content Addressed, Versioned, P2P File System</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="LIBP2P" target="https://libp2p.io">
          <front>
            <title>libp2p - Modular peer-to-peer networking stack</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SERF" target="https://www.serf.io">
          <front>
            <title>Serf - Decentralized cluster membership</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 1183?>

<section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The author thanks Tom Roberts for the architectural insights that
shaped the ambient discovery framing, particularly the reference to
Project Xanadu's always-connected design. The author also thanks the
broader IETF agent2agent community for ongoing discussion of agent
infrastructure scaling and the limitations of pull-based discovery
models.</t>
    </section>
    <section anchor="changes-from-v00">
      <name>Changes from v00</name>
      <t>Version 01 is a vocabulary and alignment revision; the DHT, gossip,
partitioning, participation modes, lifecycle methods, and visibility
model are unchanged on the wire.</t>
      <ul spacing="normal">
        <li>
          <t><strong>Discover, search, resolve.</strong> Following <xref target="RFC6763"/> as adopted in
<xref target="AGTP-DISCOVERY"/>, this document now calls what Presence provides
discovery (Agent-ID to attachment) and what the DISCOVER method's
intent-driven mode provides search. Every "discovery query" sent by
a light client to a relay is now a search query or an attachment
lookup as the case requires.</t>
        </li>
        <li>
          <t><strong>Attachment record</strong> (<xref target="attachment"/>): the signed, sequenced,
short-lived record ANNOUNCE publishes and PROBE returns, as the
mutable half of the permanent-identity versus current-location
split.</t>
        </li>
        <li>
          <t><strong>Principals, where the stack presumes hosts,</strong> and <strong>the addressing abstraction</strong>
(<xref target="addressing"/>): the introduction states why the stack's
host-nature presumption fails for agents and answers, in the
document, the question of over what protocol and to what address.</t>
        </li>
        <li>
          <t>ANNOUNCE tied to ACTIVATE: the first ANNOUNCE follows the
agent's ACTIVATE transition in <xref target="AGTP"/>, and WITHDRAW follows
DEACTIVATE, REVOKE, or DEPRECATE, so activation is the single
publish act. The attachment record stated as the orchestrator's
publication feed and, read for the requester, as its location
context for search.</t>
        </li>
        <li>
          <t>Wire identity restated around <tt>Agent-ID</tt> and <tt>Request-Signature</tt>
with Owner-ID resolved from the Identity Document per <xref target="AGTP"/>.</t>
        </li>
        <li>
          <t>References pinned to current revisions; AGTP-IDDOC and RFC 6763
added, two unused references dropped. Title shortened to "Ambient
Discovery and Visibility for Agents". "Autonomous systems" in the
BGP analogy reworded. House
style pass.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA719W3fc1pHu+/4Ve8kPJr26GVnOOOdQmVmHIimbE0tiSNqe
eQrR3WgSUTfQAdCkGEnz2099ddkXNEg5WScnayURSWBjX2rX9auq6XTq+qpf
lYf+2dEPV+f+vC27sp7Tz0frWVXWvT+punlzV7YPvqgX/peqq2bVquof/LJp
/dENPdI9c8Vs1pZ3Osj0/OL08vTt8ekzt2jmdbGm0RZtseynt02zmBY3/Wa6
0e9Mn3/r5kVf3jTtw6Gv6mXjuu1sXXVd1dT9w6bELxflpqT/qXtXbdpD37fb
rn/x/Pn/fv7CFW1Z4LObzaqiceiljud5URar6VW1Lp+5+6Z9f9M22w09dxbH
8pfhO8/c+/KBHlscOu+n/ujMF7wu/on/6Re2C/I73ZvBb/lJW5n8qu+L+e0a
U8eP2d/o5b6tZtu+XPjborv1fTFbyZ9uGprXhh5v+mberGRWtLPOdT2t7i/F
qqlpZx7Kzm0qTJoekx+975q2b8tlF35+WMcfXbHtb5uWXpnSn7xfblcrOaDj
27bq/I90QPyHpr0p6urvvKOH/m2zbvpqPvFn9fyA/16ui2p16Od46//U8ueD
onKubto1vXVXYlqY8yE/H4iM9+iqLepuWbZEbrJCv4dH95/xs2GO/skpdmVb
lR1Ixh49q/uyrct+egJqy4guISIhwG+f80sLor1D/+L5i+91utOzk9O3V2ev
z04vLgdTx/04wwjVsqK5H98WVf2vmzHPsgqf66bPv3tkxlcXP19ejcz1CvdE
bi19eKn3w19uynn46V88f76qj8/8+PRibOJCJMdl28s8S3/6oS/r7l8/X77C
0zl9efr8949M+uTs8vjdL6cX//3ozHOW+Zam5i/L9q6al//i6Qd+NCXW+Bh5
n7w7fnTmQt7E3E+a+RZs6/8LffcP04V+b/p85F5evD7+/g/ff3co/3zx7bf/
W//5v779w+8PncMXE67zp6OT0zc/nR3lq/xTsSjXq4qkxZE/L8t22jfTDf0/
zVHfxt146Ppy7V8VHTFl+rm/Lf1/vbvwb0pi1fOxzZh62Yrzsi9a/6Z4WDfb
+n1zN/jzSXFXLejPf6erzGw5LlGPil6/KWmLbvt+0x3+7nebRdMdzDtiswfr
qj8oF9vf/c8GH/ndptgQP/jdOnxr+l7XNl3V8+5gs1jSiJfj23D5u2wj2mJO
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
JWJc/SoYPgsa+K5JMV1vaz4VVV+hvInxK+7TNADHhxNDcJNdkhPuKZQJLzI0
wbc02D8172TSslXdBAwlDMI7qvEm+3DLcdrhtLpkWjQErgxMSawtpXWa8QWu
m8w27oRMLKOI0ZhkN8k5vn483ZTw7Qbx+NtitcSF4+s/1esf5vKVP0rDszAF
YYMMrXliDLNtBeleaywPAeBGAqzrEtKj6kgVUfcQbSZujtsN6Ivuil1nq3NX
1HXOjfxSNL2hlMgUK/bgv/i376czupmktU7p3xyd4BinstcfyDDqEg2JAzjw
FrDbjqa7dmMh5AQLyAunJVqUwI1jSX209ndcI9HpN+qnSl1bweQY2ZQD/zqn
ni7QtX8/nW3n79ViiLTtaCO66u9kG/z7i+dkGirhEvOYl8wqC4ZcYUnM9NaM
vSJZW5D9tCpXzkh9r1htbot//26fOOhiS0+u6Gzr+UPKi6AQ2kAapXLElKtN
p0rLe1ZqmJVFaBTtYUu7zRzZUFEfP16m3j62brBT3XazaQRYwpFt802K0/Gb
b16fvT35y9t3J6fffHPofxCBouiexIQzDQbzeA/fPGn1dkOA72Ux0W0a0ed4
u2Eh3oPemuWB/xneicWWNdmEnRzwFFhJSj5fJx+2a0qqKTOIIMoYDmCqKctn
0x4t7sSqzBMijkaQ75sihymcB10ucJYqAeABFWJRduyK+FhK+DDVdZrvkFjM
5vURFpUK0kCnpAAGP6+YqwCCsKuNTTi+HSqJO/N9DXBAjJ7mMCG7m0Gp4al7
0jim7ASM+uzetX3+mn0t1xcy/vSSDAaOTV0rKuLdfV22UBDVq7UQqcv+NwtD
GCST6TUwn5N3x2aw4ekUXSDWhjmLxdF1x0hgAE/iIGoEMldU92GUKxdivHz8
KlGnnfvVvBZ8A8gwokOQwHVGXIFSdlV5DnJl2nvA/djZxS9Ck/7Py3dvSTX7
KwkJNbhcqnmpT4rO7pp//gt/af4X4l3X8Pml27VPV/N/6D/uI5HVM3m8Wjw7
9PTTH7//PTzgZcuq5G354T+eQRg/A6HxE56fChq9xkaCKyhaaTDQTEuK+pQO
p5aZjPisn2+m/ap75j/5Z6S7zvkft9/Jo+bv0vkhHHcIjiPqFzNeldVMiI3o
hzUmtLTJBK+afn6drQaT50+yeOZ/8VvlQp6mN8PD/o8SqSK1vMLlLTfN/PY/
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
/y/cEkt5YMwAAA==

-->

</rfc>
