<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mp-agntcy-ads-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="agent-dir">Agent Directory Service</title>
    <seriesInfo name="Internet-Draft" value="draft-mp-agntcy-ads-00"/>
    <author fullname="Luca Muscariello">
      <organization>Cisco</organization>
      <address>
        <email>lumuscar@cisco.com</email>
      </address>
    </author>
    <author fullname="Ramiz Polic">
      <organization>Cisco</organization>
      <address>
        <email>rpolic@cisco.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="17"/>
    <area>Applications</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>AI</keyword>
    <keyword>Agentic AI</keyword>
    <keyword>Directory Protocol</keyword>
    <keyword>Agent Discovery</keyword>
    <keyword>DHT</keyword>
    <abstract>
      <?line 116?>

<t>The Agent Directory Service (ADS) is a distributed directory service designed to
store metadata for AI agent applications. This metadata, stored as directory
records, enables the discovery of agent applications with specific skills for
solving various problems. The implementation features distributed directories
that interconnect through a content-routing protocol.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://spec.dir.agncty.org"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mp-agntcy-ads/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/agntcy/dir"/>.</t>
    </note>
  </front>
  <middle>
    <?line 124?>

<section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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="introduction">
      <name>Introduction</name>
      <t>Multi-Agent Systems (MAS) represent a new paradigm in distributed computing
where software components leverage Large Language Models (LLMs) to perform
specialized tasks and solve complex problems through collaborative intelligence.
These systems combine LLMs with contextual knowledge and tool-calling
capabilities, often abstracted through Model Context Protocol (MCP) servers,
enabling dynamic workflows that adapt based on stored state and environmental
conditions.</t>
      <t>The diversity and complexity of MAS architectures present unique challenges for
discovery and composition. As the ecosystem of AI agents expands, developers
need efficient mechanisms to:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Discover compatible agents</strong> with specific skills and capabilities</t>
        </li>
        <li>
          <t><strong>Evaluate performance characteristics</strong> including cost, latency, and resource
requirements</t>
        </li>
        <li>
          <t><strong>Compose multi-agent workflows</strong> by linking agents with
complementary capabilities</t>
        </li>
        <li>
          <t><strong>Verify claims</strong> about agent performance and reliability</t>
        </li>
        <li>
          <t><strong>Track versioning and dependencies</strong> between agent components</t>
        </li>
      </ul>
      <t>The Agent Directory Service (ADS) <xref target="AGNTCY-ADS"/>  addresses these challenges by
providing a distributed directory infrastructure specifically designed for the
agentic AI ecosystem. Rather than attempting to formally define MAS
architectures, which would constrain the creative composition patterns emerging
in this rapidly evolving field—ADS focuses on providing flexible metadata
storage and discovery mechanisms. A comparison among registries which can be
centralized or distributed is reported here <xref target="AI-Registry-Evolution"/>.</t>
      <section anchor="core-capabilities">
        <name>Core Capabilities</name>
        <t>ADS enables several key capabilities for the agentic AI ecosystem:</t>
        <t><strong>Capability-Based Discovery</strong>:
Agents publish structured metadata describing their functional abilities, costs,
and performance characteristics. The system organizes this information using
hierarchical skill taxonomies, enabling efficient matching of capabilities to
requirements.</t>
        <t><strong>Verifiable Claims</strong>:
While agent capabilities are often subjectively evaluated, ADS provides
cryptographic mechanisms for data integrity and provenance tracking. This allows
users to make informed decisions about agent selection while enabling reputation
systems to emerge organically.</t>
        <t><strong>Semantic Linkage</strong>:
Components can be securely linked to create various relationships like version
histories for evolutionary development, collaborative partnerships where
complementary skills solve complex problems, and dependency chains for composite
agent workflows.</t>
        <t><strong>Distributed Architecture</strong>:
Built on proven distributed systems principles, ADS uses content-addressing for
global uniqueness and implements distributed hash tables <xref target="DHT"/> for scalable
content discovery across decentralized networks.</t>
      </section>
      <section anchor="architectural-foundation">
        <name>Architectural Foundation</name>
        <t>The system leverages the Open Agentic Schema Framework (OASF) to model agent
information in a structured, extensible format. OASF enables rich queries such
as "What agents can solve problem A?" or "What combination of skills and costs
optimizes for task B?" This schema-driven approach supports both objective
metrics (token consumption, GPU requirements) and subjective evaluations (user
ratings, task completion quality).</t>
        <t>Agent records are organized using modular extensions—reusable components like
MCP server definitions, prompt-based agents, and evaluation metrics. This
modular approach facilitates composition and reuse across different MAS
architectures while maintaining flexibility for innovative use cases.</t>
        <t>The underlying storage layer integrates with OCI (Open Container Initiative)
<xref target="OCI.Image"/>
standards, enabling interoperability with existing container ecosystems and
leveraging mature tooling for content distribution and verification.</t>
        <t>This document details the technical architecture of ADS, covering the record
storage layer, security model, distributed data discovery mechanisms, and data
distribution protocols between storage nodes.</t>
      </section>
    </section>
    <section anchor="storage-architecture">
      <name>Storage Architecture</name>
      <t>ADS implements a decentralized storage architecture built on OCI (Open Container
Initiative) registries using ORAS (OCI Registry as Storage) as the foundational
object storage layer. This design choice enables the system to leverage mature,
standardized container registry infrastructure while achieving the speed,
scalability, and security requirements of a distributed agent directory.</t>
      <section anchor="content-addressed-storage">
        <name>Content-Addressed Storage</name>
        <t>The storage architecture centers on globally unique Content Identifiers (CID)
that provide several critical properties for a distributed agent directory:</t>
        <t><strong>Immutability</strong>: Content identifiers are cryptographically derived from the
data they represent, ensuring that any modification results in a different
identifier. This property is essential for maintaining data integrity in agent
records and enabling verifiable claims about agent capabilities.</t>
        <t><strong>Deduplication</strong>: Identical content automatically receives the same identifier
across all nodes in the network, eliminating storage redundancy and reducing
bandwidth requirements when the same agent components are referenced by
multiple systems.</t>
        <t><strong>Verifiability</strong>: Any node can independently verify that received content
matches its identifier, providing built-in protection against data corruption or
tampering during transmission.</t>
        <t><strong>Location Independence</strong>: Content can be retrieved from any node that possesses
it, as the identifier serves as a universal pointer that abstracts away physical
storage locations.</t>
      </section>
      <section anchor="oras-integration">
        <name>ORAS Integration</name>
        <t>ORAS provides a standardized interface for treating OCI registries as
general-purpose object storage, offering several advantages for ADS:</t>
        <section anchor="standards-compliance">
          <name>Standards Compliance</name>
          <t>By building on OCI specifications, ADS inherits compatibility with the extensive
ecosystem of container registry tools, security scanners, and management
platforms. This includes:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Authentication and authorization</strong> mechanisms already deployed in enterprise
environments</t>
            </li>
            <li>
              <t><strong>Content signing and verification</strong> through tools like Notary and cosign</t>
            </li>
            <li>
              <t><strong>Vulnerability scanning</strong> capabilities that can be extended to agent security
assessments</t>
            </li>
            <li>
              <t><strong>Content delivery networks</strong> optimized for OCI artifact distribution</t>
            </li>
          </ul>
        </section>
        <section anchor="artifact-organization">
          <name>Artifact Organization</name>
          <t>Agent records are stored as OCI artifacts with a structured organization.
Multiple records can be stored under the same OCI name and tag, with each record
uniquely identified by its content-addressed SHA256 digest:</t>
          <artwork><![CDATA[
null_repo/records/
├── skills/
│   ├── nlp/
│   │   ├── sentiment-analysis:v1.0.0@sha256:abc123... # BERT
│   │   ├── sentiment-analysis:v1.0.0@sha256:def456... # RoBERTa
│   │   ├── sentiment-analysis:v1.0.0@sha256:ghi789... # DistilBERT
│   │   ├── text-classification:v2.0.0@sha256:abc123... # Same BERT
│   │   └── emotion-detection:v1.5.0@sha256:abc123...   # Same BERT
│   ├── vision/
│   │   ├── object-detection:v2.1.0@sha256:jkl012...    # YOLO
│   │   ├── object-detection:v2.1.0@sha256:mno345...    # R-CNN
│   │   └── scene-understanding:v1.0.0@sha256:jkl012... # Same YOLO
│   └── reasoning/
│       └── mathematical:v1.5.0@sha256:pqr678...
├── evaluations/
│   ├── performance-metrics:latest@sha256:stu901...
│   └── benchmark-results:v1.0.0@sha256:vwx234...
└── compositions/
    ├── security-analyst:v3.0.0@sha256:yza567...
    └── research-assistant:v2.2.0@sha256:bcd890...
]]></artwork>
          <t>This naming scheme demonstrates that the same content identifier can belong to
multiple skills, reflecting the reality that many AI agents are multi-capable.
For example, the BERT-based agent (<tt>sha256:abc123...</tt>) appears under multiple
skill categories: <tt>nlp/sentiment-analysis</tt>, <tt>nlp/text-classification</tt>, and
<tt>nlp/emotion-detection</tt>, representing different capabilities of the same
underlying agent implementation. Similarly, the YOLO vision model
(<tt>sha256:jkl012...</tt>) provides both <tt>object-detection</tt> and <tt>scene-understanding</tt>
capabilities.</t>
          <t>This cross-referencing approach allows agents to be discovered through any of
their supported capabilities while maintaining unique addressability through
content identifiers. Each skill category can have its own versioning and
metadata, enabling fine-grained capability management even when multiple skills
share the same underlying implementation.</t>
          <t>Each artifact contains structured metadata following OASF schemas, enabling rich
queries and capability matching across all variants within a given category.</t>
        </section>
        <section anchor="multi-registry-federation">
          <name>Multi-Registry Federation</name>
          <t>The architecture supports federation across multiple registry instances, enabling:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Organizational boundaries</strong>: Different organizations can maintain their own
registries while participating in the global directory</t>
            </li>
            <li>
              <t><strong>Geographic distribution</strong>: Content can be replicated to registries closer to
consumers, reducing latency</t>
            </li>
            <li>
              <t><strong>Specialization</strong>: Registries can focus on specific domains (e.g., medical AI
agents, financial analysis tools)</t>
            </li>
            <li>
              <t><strong>Redundancy</strong>: Critical agent records can be replicated across multiple
registries for availability</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="mas-data-discovery">
      <name>MAS Data Discovery</name>
      <t>ADS implements a two-level mapping system that enables efficient discovery of
Multi-Agent System components through a distributed hash table <xref target="DHT"/>
architecture. This approach separates capability-based discovery from content
location, providing both scalability and flexibility in agent retrieval.</t>
      <section anchor="skill-taxonomy">
        <name>Skill Taxonomy</name>
        <t>Effective agent discovery in multi-agent systems requires sophisticated
organization of capabilities and skills. ADS employs a hierarchical skill
taxonomy that serves as the foundation for efficient search and discovery
operations across the distributed network.</t>
        <section anchor="the-challenge-of-capability-search">
          <name>The Challenge of Capability Search</name>
          <t>Traditional keyword-based search approaches face significant limitations when
applied to agent discovery:</t>
          <t><strong>Vocabulary Fragmentation</strong>: Different publishers may describe similar
capabilities using varying terminology. For example, "sentiment analysis,"
"opinion mining," and "emotional classification" may all refer to similar agent
capabilities, leading to search results that miss relevant agents due to
terminology mismatches.</t>
          <t><strong>Scale Complexity</strong>: As the number of agents in the ecosystem grows, exhaustive
search across all records becomes computationally prohibitive. Without
structured organization, every query potentially requires examining every agent
record, leading to poor performance characteristics.</t>
          <t><strong>Semantic Relationships</strong>: Many agent capabilities have natural hierarchical
relationships that flat keyword systems cannot capture. An agent capable of
"named entity recognition" is inherently relevant to searches for broader "text
analysis" capabilities, but keyword matching alone cannot establish these
connections.</t>
        </section>
        <section anchor="taxonomy-driven-search-optimization">
          <name>Taxonomy-Driven Search Optimization</name>
          <t>ADS addresses these challenges through a structured hierarchical taxonomy that
provides several critical optimization benefits:</t>
          <t><strong>Search Space Partitioning</strong>: The taxonomy enables efficient partitioning of
the search space. When processing a query for "computer vision" capabilities,
the system can immediately focus on the relevant taxonomy branch, eliminating
the need to examine agents in unrelated categories like natural language
processing or mathematical reasoning.</t>
          <t><strong>Index Structure Optimization</strong>: The hierarchical organization allows the
distributed hash table to create specialized indices for different taxonomy
branches. Rather than maintaining a single massive index, the DHT can
distribute indexing responsibility across nodes, with each node specializing in
specific capability domains.</t>
          <t><strong>Query Semantic Expansion</strong>: The taxonomy enables intelligent query expansion
where searches automatically include semantically related subcategories. A
search for "text analysis" can transparently include results from "sentiment
analysis," "entity extraction," and "text classification" without requiring
users to explicitly enumerate all relevant subcategories.</t>
          <t><strong>Standardized Vocabulary</strong>: By providing a canonical taxonomy, ADS reduces
terminology fragmentation. Publishers are encouraged to tag their agents using
standardized skill categories, improving search precision and recall across the
ecosystem.</t>
        </section>
      </section>
      <section anchor="two-level-mapping-architecture">
        <name>Two-Level Mapping Architecture</name>
        <t>The discovery system operates through two distinct mapping layers:</t>
      </section>
      <section anchor="skill-taxonomy-for-search-optimization">
        <name>Skill Taxonomy for Search Optimization</name>
        <t>ADS employs a hierarchical skill taxonomy to optimize search performance and
enable efficient capability-based discovery. Taxonomies provide several critical
advantages for agent discovery systems:</t>
        <t><strong>Search Space Reduction</strong>: Rather than performing exhaustive searches across
all agent records, taxonomies allow the system to quickly narrow the search
space to relevant categories. When a user queries for "natural language
processing" capabilities, the system can immediately identify the subset of
agents tagged with NLP skills without examining agents focused on computer
vision or mathematical reasoning.</t>
        <t><strong>Hierarchical Organization</strong>: Skills are organized in a tree-like structure
*that reflects natural relationships between capabilities. For example:</t>
        <artwork><![CDATA[
Natural Language Processing
├── Text Analysis
│   ├── Sentiment Analysis
│   ├── Named Entity Recognition
│   └── Text Classification
├── Language Generation
│   ├── Text Summarization
│   ├── Content Creation
│   └── Translation
└── Conversational AI
    ├── Dialogue Management
    ├── Intent Recognition
    └── Response Generation
]]></artwork>
        <t>This hierarchy enables both specific queries ("sentiment analysis agents") and
broader capability searches ("all natural language processing agents") while
maintaining efficient indexing structures.</t>
        <t><strong>Query Expansion and Refinement</strong>: Taxonomies support automatic query expansion
*where searches for parent categories can include relevant child categories. A
*query for "text analysis" can automatically include agents tagged with
*"sentiment analysis," "named entity recognition," and "text classification"
*without requiring users to know all specific subcategories.</t>
        <t><strong>Semantic Consistency</strong>: Standardized taxonomies reduce ambiguity and improve
*search precision by providing consistent terminology across the ecosystem. This
*prevents fragmentation where similar capabilities are described using different
*terms by different publishers.</t>
        <t><strong>Scalable Indexing</strong>: The hierarchical structure enables efficient distributed
*indexing where different DHT nodes can specialize in specific taxonomy
*branches, distributing both storage load and query processing across the
*network.</t>
      </section>
      <section anchor="additional-taxonomies">
        <name>Additional Taxonomies</name>
        <t>While skills form the primary taxonomy for capability-based discovery, ADS
supports multiple parallel taxonomies to enable rich, multi-dimensional agent
classification and search.</t>
        <section anchor="domain-taxonomy">
          <name>Domain Taxonomy</name>
          <t>The domain taxonomy organizes agents by their application domains, representing
the broader problem spaces or industries where agents are designed to operate:</t>
          <artwork><![CDATA[
Application Domains
├── Networking
│   ├── Network Configuration
│   ├── Traffic Analysis
│   └── Protocol Implementation
├── Security
│   ├── Threat Detection
│   ├── Vulnerability Assessment
│   └── Access Control
├── Software Development
│   ├── Code Generation
│   ├── Testing Automation
│   └── Documentation
├── Finance and Business
│   ├── Risk Analysis
│   ├── Market Research
│   └── Process Automation
└── Healthcare
    ├── Medical Imaging
    ├── Clinical Decision Support
    └── Drug Discovery
]]></artwork>
          <t>Domain classification enables users to discover agents that are specifically
tuned for their operational context, even if those agents share similar
underlying skills with agents from other domains.</t>
        </section>
        <section anchor="feature-taxonomy">
          <name>Feature Taxonomy</name>
          <t>The feature taxonomy categorizes agents by the integration frameworks and
architectural patterns they support, facilitating the discovery of agents
compatible with specific system architectures:</t>
          <artwork><![CDATA[
Integration Features
├── MCP (Model Context Protocol)
│   ├── MCP Server Implementation
│   ├── MCP Client Integration
│   └── MCP Tool Providers
├── A2A (Agent-to-Agent Communication)
│   ├── Direct Messaging
│   ├── Event-Driven Architecture
│   └── Workflow Orchestration
├── Agent Evaluation
│   ├── Performance Benchmarking
│   ├── Quality Assessment
│   └── Comparative Analysis
└── Observability
    ├── Metrics Collection
    ├── Distributed Tracing
    └── Health Monitoring
]]></artwork>
        </section>
        <section anchor="multi-dimensional-search">
          <name>Multi-Dimensional Search</name>
          <t>The parallel taxonomy system enables sophisticated multi-dimensional queries
that combine criteria across different classification axes.
<strong>All searches must include at least one skill criterion as the mandatory
foundation</strong>, with domain and feature taxonomies providing additional filtering
dimensions:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Skill + Domain</strong>: "Find natural language processing agents specialized for
healthcare applications"</t>
            </li>
            <li>
              <t><strong>Skill + Feature</strong>: "Discover computer vision agents that support MCP
integration"</t>
            </li>
            <li>
              <t><strong>Skill + Feature + Domain</strong>: "Locate natural language processing agents with
observability features for manufacturing applications"</t>
            </li>
          </ul>
          <t><strong>Skills as Search Foundation</strong>: The skills taxonomy serves as the primary index
structure in the DHT, making skill-based criteria mandatory for efficient query
resolution. This design ensures that:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Query Performance</strong>: All searches leverage the optimized skills-to-CID
mapping as the starting point, providing consistent performance characteristics</t>
            </li>
            <li>
              <t><strong>Result Relevance</strong>: Domain and feature filters are applied to skill-based
result sets, ensuring functional capability remains the core selection criterion</t>
            </li>
            <li>
              <t><strong>Index Efficiency</strong>: The DHT can optimize storage and lookup patterns around
the skills taxonomy while supporting supplementary filtering through domains and
features</t>
            </li>
          </ul>
          <t>Domain-only or feature-only queries are not supported, as they would bypass the
primary indexing structure and provide results that may not have the functional
capabilities required by the requesting system.</t>
          <t>This multi-taxonomic approach provides the flexibility to support diverse use
cases while maintaining efficient indexing and search performance across all
dimensions.</t>
        </section>
        <section anchor="skills-to-cid-mapping">
          <name>Skills-to-CID Mapping</name>
          <t>The first level maps agent capabilities and skills to their corresponding
Content Identifiers (CID):</t>
          <artwork><![CDATA[
Skills Index:
"natural_language_processing" → ["sha256:abc123...", "sha256:def456...", "sha256:ghi789..."]
"images_computer_vision"      → ["sha256:jkl012...", "sha256:mno345..."]
"analytical_skills"           → ["sha256:pqr678...", "sha256:abc123..."]
"multi_modal"                 → ["sha256:stu901...", "sha256:vwx234..."]
]]></artwork>
          <t>This mapping enables queries such as "find all agents capable of natural
language processing" to quickly resolve to a set of content identifiers without
needing to search through individual agent records.</t>
        </section>
        <section anchor="cid-to-peerid-mapping">
          <name>CID-to-PeerID Mapping</name>
          <t>The second level maps Content Identifiers to the Peer IDs of nodes that store
the corresponding agent records:</t>
          <artwork><![CDATA[
Content Location Index:
"sha256:abc123..." → ["12D3KooWBhvxmvKvTYGJvXjnGBp7Ybr9WyoXkZvFnRtC4aBcDeFg",
                      "12D3KooWXyZrUvHzPqKvTYGJvXjnGBp7Ybr9WyoXkZvFnRtC5gHi"]
"sha256:jkl012..." → ["12D3KooWZaBcDeFgXyZrUvHzPqKvTYGJvXjnGBp7Ybr9WyoXkZvF",
                      "12D3KooWGHiJkLmNoPqRsTuVwXyZ123456789AbCdEfGhIjKlMnO"]
]]></artwork>
          <t>This separation allows the system to:
- <strong>Optimize for capability queries</strong> without requiring knowledge of data
locations</t>
          <ul spacing="normal">
            <li>
              <t><strong>Enable dynamic content replication</strong> as peer availability changes</t>
            </li>
            <li>
              <t><strong>Support multiple storage strategies</strong> for the same content across different
peers</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="dht-based-discovery-process">
        <name>DHT-Based Discovery Process</name>
        <t>The Distributed Hash Table stores and maintains both mapping layers across the
network:</t>
        <t>ADS uses [Kad-DHT] <xref target="DHT"/> for server and content discovery by using the
libp2p implementation that constitutes the IPFS core DHT <xref target="libp2p-kad-dht"/>.</t>
        <artwork><![CDATA[
                             +----------------+
                             |    DHT Node    |
                             | Content Index  |
                             +----------------+
                                    ^
                                    |
                   +----------------+-----------------+
                   |                |                |
           +-------v------+  +------v-------+  +-----v--------+
           | Server Node A |  | Server Node B|  | Server Node C|
           |   Content X  |  |   Content Y  |  |   Content Z  |
           +-------+------+  +------+-------+  +------+-------+
                   |               |                  |
                   |        Content Exchange          |
                   +---------------+------------------+
                                  |
                          Content Replication

Flow:
1. Servers register content with DHT
2. DHT maintains content-to-server mappings
3. Servers query DHT to locate content
4. DHT returns list of servers hosting content
5. Servers download content from peers
]]></artwork>
        <section anchor="skill-registration">
          <name>Skill Registration</name>
          <t>When agents are published to the network:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Capability Extraction</strong>: The system parses OASF records to extract skills,
domains, and capabilities</t>
            </li>
            <li>
              <t><strong>DHT Updates</strong>: Skills-to-CID mappings are distributed across DHT nodes
using consistent hashing</t>
            </li>
            <li>
              <t><strong>Location Registration</strong>: Peer nodes register themselves as providers for
specific CIDs</t>
            </li>
          </ol>
        </section>
        <section anchor="discovery-query-resolution">
          <name>Discovery Query Resolution</name>
          <t>Agent discovery follows a three-phase process:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Capability Resolution</strong>: Query "agents with skill X" resolves to a list of
relevant CIDs via DHT lookup</t>
            </li>
            <li>
              <t><strong>Location Resolution</strong>: For each discovered CID, query DHT to find peer
nodes storing the content</t>
            </li>
            <li>
              <t><strong>Result Aggregation</strong>: Combine capability matches with location information
to produce actionable discovery results</t>
            </li>
          </ol>
          <artwork><![CDATA[
Discovery Flow:
Query: "natural_language_processing" AND "finance_and_business"
   ↓
Phase 1: Skills → CIDs
   DHT["natural_language_processing"] → ["sha256:abc123...", "sha256:def456..."]
   DHT["finance_and_business"] → ["sha256:abc123...", "sha256:yza567..."]
   Intersection → ["sha256:abc123..."]
   ↓
Phase 2: CIDs → Peer IDs
   DHT["sha256:abc123..."] → ["12D3KooW...", "12D3KooX..."]
   ↓
Result: Agent sha256:abc123... available from peers 12D3KooW... and 12D3KooX...
]]></artwork>
        </section>
        <section anchor="additional-tanomoxies">
          <name>Additional Tanomoxies</name>
        </section>
      </section>
      <section anchor="content-distribution-via-oci-protocol">
        <name>Content Distribution via OCI Protocol</name>
        <t>Once discovery identifies the relevant CIDs and their hosting peers, the actual
agent records are retrieved using the OCI distribution protocol:</t>
        <section anchor="peer-to-peer-synchronization">
          <name>Peer-to-Peer Synchronization</name>
          <t>The discovered list of CIDs enables efficient content synchronization
<xref target="OCI.Distribution"/> between peers:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Content Negotiation</strong>: Requesting peer queries hosting peers for available
agent records</t>
            </li>
            <li>
              <t><strong>OCI Pull Operations</strong>: Standard OCI registry pull commands retrieve agent
artifacts and metadata</t>
            </li>
            <li>
              <t><strong>Incremental Sync</strong>: Only missing or updated content is transferred,
reducing bandwidth requirements</t>
            </li>
            <li>
              <t><strong>Verification</strong>: Content integrity is verified through cryptographic hash
validation during transfer</t>
            </li>
          </ol>
        </section>
        <section anchor="distribution-strategies">
          <name>Distribution Strategies</name>
          <t>The system supports multiple distribution patterns, each with distinct
trade-offs and operational considerations:</t>
          <t><strong>On-Demand Retrieval</strong>: Records are pulled from remote peers only when
specifically requested, minimizing local storage requirements.</t>
          <t><em>Trade-offs</em>: While this approach minimizes storage costs and ensures fresh
content, it introduces several challenges:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Query Latency</strong>: Each request requires network round-trips to locate and
retrieve content, increasing response times</t>
            </li>
            <li>
              <t><strong>Network Cost</strong>: Spurious or exploratory requests generate unnecessary
network traffic and computational overhead</t>
            </li>
            <li>
              <t><strong>DoS Vulnerability</strong>: The system becomes susceptible to denial-of-service
attacks where malicious actors can trigger expensive content retrieval
operations by flooding the network with requests for non-existent or
rarely-accessed agents</t>
            </li>
            <li>
              <t><strong>Scalability Limits</strong>: Performance degrades as the network grows due to
increased query coordination overhead</t>
            </li>
          </ul>
          <t><strong>Proactive Caching</strong>: Popular or frequently accessed agents are automatically
replicated to improve query response times.</t>
          <t><em>Trade-offs</em>: This strategy offers significant scalability benefits but requires sophisticated management:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Performance Gains</strong>: Dramatic reduction in query latency for popular
content, enabling sub-second response times</t>
            </li>
            <li>
              <t><strong>Scalability</strong>: Can handle high query volumes efficiently once popular
content is cached locally</t>
            </li>
            <li>
              <t><strong>Popularity Measurement</strong>: Requires implementing metrics collection and
analysis to identify which agents warrant caching. This includes tracking query
frequencies, download patterns, and usage statistics across the network</t>
            </li>
            <li>
              <t><strong>Storage Requirements</strong>: Needs sufficient local storage capacity to maintain
cached copies of popular records</t>
            </li>
            <li>
              <t><strong>Cache Management</strong>: Must implement cache eviction policies, freshness
validation, and synchronization mechanisms</t>
            </li>
            <li>
              <t><strong>Administrator Oversight</strong>: Proactive caching policies must be configured and
monitored by agent directory node administrators to balance storage costs with
performance benefits</t>
            </li>
          </ul>
          <t><strong>Strategic Replication</strong>: Critical agents can be replicated across multiple
peers to ensure high availability and reduce single points of failure.</t>
          <t><em>Trade-offs</em>: This approach addresses availability concerns but introduces
subjective complexity:</t>
          <ul spacing="normal">
            <li>
              <t><strong>High Availability</strong>: Ensures critical agents remain accessible even during
peer failures or network partitions</t>
            </li>
            <li>
              <t><strong>Reduced Single Points of Failure</strong>: Distributes risk across multiple storage locations</t>
            </li>
            <li>
              <t><strong>Subjective Criticality</strong>: The definition of "critical" or "useful" agents
varies significantly between users, organizations, and use cases. What
constitutes strategic value for financial services may be irrelevant for
manufacturing applications</t>
            </li>
            <li>
              <t><strong>Administrative Burden</strong>: Requires agent directory node administrators to
make strategic decisions about which agents warrant replication, considering
factors like:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Organizational priorities and business requirements</t>
                </li>
                <li>
                  <t>Compliance and regulatory considerations</t>
                </li>
                <li>
                  <t>Cost-benefit analysis of storage versus availability</t>
                </li>
                <li>
                  <t>Community consensus on agent importance</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Resource Allocation</strong>: Strategic replication consumes storage resources that
could otherwise be used for proactive caching of popular content</t>
            </li>
          </ul>
          <t><strong>Administrative Management</strong>: Both Proactive Caching and Strategic Replication
require active management by agent directory node administrators.
Administrators must:</t>
          <ul spacing="normal">
            <li>
              <t>Configure caching policies based on local network characteristics and storage capacity</t>
            </li>
            <li>
              <t>Monitor popularity metrics and adjust caching strategies accordingly</t>
            </li>
            <li>
              <t>Define strategic replication criteria aligned with organizational objectives</t>
            </li>
            <li>
              <t>Balance resource allocation between different distribution strategies</t>
            </li>
            <li>
              <t>Implement governance policies for content lifecycle management</t>
            </li>
          </ul>
          <t>This architecture provides a scalable foundation for MAS data discovery that can
efficiently handle large networks of distributed agents while maintaining low
latency for capability-based queries.</t>
        </section>
      </section>
      <section anchor="agent-directory-record-examples">
        <name>Agent Directory Record Examples</name>
        <t>The following examples illustrate the structure of OASF-compliant agent records
stored in the directory:</t>
        <artwork><![CDATA[
{
  "content_id": "sha256:abc123...",
  "record": {
    "name": "BERT Sentiment Analyzer",
    "version": "1.0.0",
    "schema_version": "0.2.0",
    "description": "Multi-capability NLP agent providing sentiment analysis, text classification, and emotion detection",
    "skills": ["natural_language_processing"],
    "domains": ["finance_and_business", "trust_and_safety"],
    "capabilities": {
      "threads": true,
      "interrupt_support": false,
      "callbacks": true,
      "streaming": ["text", "json"]
    }
  },
  "performance_metrics": {
    "tokens_per_second": 1000,
    "gpu_memory_mb": 4096,
    "latency_p99_ms": 150,
    "accuracy_score": 0.94
  },
  "evaluation_data": {
    "overall_rating": 4.2,
    "cost_per_million_tokens": 2.50
  },
  "registries": [
    "registry.example.com",
    "hub.agents.org"
  ],
  "last_updated": "2025-08-07T10:30:00Z"
}
]]></artwork>
        <artwork><![CDATA[
{
  "content_id": "sha256:jkl012...",
  "record": {
    "name": "YOLO Vision Agent",
    "version": "2.1.0",
    "schema_version": "0.2.0",
    "description": "Computer vision agent for object detection and scene understanding",
    "skills": ["images_computer_vision"],
    "domains": ["transportation", "industrial_manufacturing"],
    "capabilities": {
      "threads": false,
      "interrupt_support": true,
      "callbacks": false,
      "streaming": ["image", "json"]
    }
  },
  "performance_metrics": {
    "inference_fps": 30,
    "gpu_memory_mb": 8192,
    "detection_accuracy_map": 0.89,
    "processing_latency_ms": 33
  },
  "evaluation_data": {
    "overall_rating": 4.7,
    "cost_per_image": 0.05
  },
  "registries": [
    "vision.agents.com",
    "registry.example.com"
  ],
  "last_updated": "2025-08-07T14:20:00Z"
}
]]></artwork>
        <artwork><![CDATA[
{
  "content_id": "sha256:pqr678...",
  "record": {
    "name": "Mathematical Reasoning Agent",
    "version": "1.5.0",
    "schema_version": "0.2.0",
    "description": "Agent specialized in mathematical problem solving and analytical reasoning",
    "skills": ["analytical_skills", "tabular_text"],
    "domains": ["education", "finance_and_business"],
    "capabilities": {
      "threads": true,
      "interrupt_support": true,
      "callbacks": true,
      "streaming": ["text", "latex"]
    }
  },
  "performance_metrics": {
    "problems_per_minute": 12,
    "cpu_cores": 4,
    "memory_mb": 2048,
    "accuracy_on_gsm8k": 0.87
  },
  "evaluation_data": {
    "overall_rating": 4.5,
    "cost_per_problem": 0.10
  },
  "registries": [
    "math.agents.edu",
    "registry.example.com"
  ],
  "last_updated": "2025-08-07T16:45:00Z"
}
]]></artwork>
        <t>These examples demonstrate how the DHT indexing system extracts skills and
domains from agent records to populate the Skills-to-CID mappings, enabling
efficient capability-based discovery across the distributed network.</t>
      </section>
      <section anchor="security-model">
        <name>Security Model</name>
        <t>The OCI-based architecture provides multiple layers of security that address the
unique challenges of distributed agent directories:</t>
        <section anchor="cryptographic-integrity">
          <name>Cryptographic Integrity</name>
          <t>ADS leverages the OCI layer's built-in cryptographic mechanisms to ensure data
integrity:</t>
          <t><strong>Automatic Hash Computation</strong>: The OCI registry layer automatically computes
SHA-256 hash digests for all stored artifacts. These content identifiers are
generated transparently during the push operation, ensuring that every agent
record has a cryptographically verifiable fingerprint without additional
overhead.</t>
          <t><strong>Tamper Detection</strong>: Content addressing ensures immediate tamper detection
through cryptographic hash verification. Any modification to an agent
record—whether malicious or accidental—results in a different hash digest,
making unauthorized changes immediately detectable during retrieval operations.</t>
          <t><strong>End-to-End Verification</strong>: Clients can independently verify that received
content matches its advertised identifier, providing built-in protection
against data corruption during transmission or storage without trusting
intermediate network components.</t>
        </section>
        <section anchor="content-provenance-and-digital-signatures">
          <name>Content Provenance and Digital Signatures</name>
          <t>ADS integrates with Sigstore, a security framework for OCI storage, to provide
comprehensive content provenance and authenticity guarantees:</t>
          <t><strong>Sigstore Integration</strong>: The system leverages Sigstore's security framework to
provide verifiable proof of when and by whom agent records were signed. This
creates an immutable audit trail that cannot be retroactively modified,
enabling forensic analysis of agent deployment history.</t>
          <t><strong>Keyless Signing</strong>: Sigstore's keyless signing approach eliminates the
complexity and security risks associated with long-lived cryptographic keys:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Identity-Based Authentication</strong>: Uses OpenID Connect (OIDC) <xref target="OpenID.Auth"/>
tokens from trusted identity providers (GitHub, Google, Microsoft) to
authenticate publishers at signing time</t>
            </li>
            <li>
              <t><strong>Short-Lived Certificates</strong>: Issues ephemeral signing certificates valid only
for minutes, reducing the window of potential key compromise</t>
            </li>
            <li>
              <t><strong>Automatic Key Rotation</strong>: Eliminates the need for manual key management,
distribution, and rotation procedures</t>
            </li>
            <li>
              <t><strong>Scalable Trust</strong>: Publishers don't need to maintain or distribute public
keys, making the system accessible to individual developers and large
organizations alike</t>
            </li>
          </ul>
          <t><strong>Transparency and Verification</strong>: All signatures are stored directly in OCI
storage alongside the agent artifacts and public keys, providing:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Public Auditability</strong>: Anyone can verify the signing history of agent
records stored in accessible registries</t>
            </li>
            <li>
              <t><strong>Non-Repudiation</strong>: Publishers cannot deny having signed records that are
cryptographically linked to their identity</t>
            </li>
            <li>
              <t><strong>Supply Chain Security</strong>: Enables detection of compromised or unauthorized
agent publications</t>
            </li>
          </ul>
        </section>
        <section anchor="trust-boundaries-and-isolation">
          <name>Trust Boundaries and Isolation</name>
          <t><strong>Organizational Isolation</strong>: Separate registries maintain security boundaries
between different organizations, allowing each entity to control their own
agent ecosystem while still participating in the broader federated network.</t>
          <t><strong>Content Verification</strong>: Nodes can validate artifact integrity and signature
authenticity without trusting transport layers or intermediate storage systems.
This zero-trust approach ensures security even when using untrusted storage
infrastructure.</t>
          <t><strong>Reputation Systems</strong>: The cryptographic foundation enables the development of
reputation systems based on verifiable evidence rather than subjective claims.
Publishers with consistent signing practices and high-quality agents can build
measurable trust over time.</t>
        </section>
        <section anchor="threat-mitigation">
          <name>Threat Mitigation</name>
          <t>The security model addresses several key threats to distributed agent directories:</t>
          <t><strong>Supply Chain Attacks</strong>: Sigstore integration and transparency logs make it
difficult for attackers to inject malicious agents without detection, as all
publications are cryptographically signed and publicly auditable.</t>
          <t><strong>Data Integrity Attacks</strong>: Automatic hash verification prevents tampering with
agent records during storage or transmission, ensuring users receive authentic
content.</t>
          <t><strong>Identity Spoofing</strong>: OIDC-based keyless signing prevents attackers from
impersonating legitimate publishers without compromising their identity
provider credentials.</t>
          <t><strong>Availability Attacks</strong>: The distributed nature of the system, combined with
content replication across multiple registries, provides resilience against
denial-of-service attacks targeting individual nodes.</t>
        </section>
        <section anchor="access-control">
          <name>Access Control</name>
          <ul spacing="normal">
            <li>
              <t><strong>Registry-level permissions</strong> control who can publish and retrieve agent
records</t>
            </li>
            <li>
              <t><strong>Fine-grained policies</strong> can restrict access to specific agent categories or
capability types</t>
            </li>
            <li>
              <t><strong>Audit trails</strong> leverage existing registry logging capabilities to track
access patterns</t>
            </li>
          </ul>
        </section>
        <section anchor="trust-boundaries">
          <name>Trust Boundaries</name>
          <ul spacing="normal">
            <li>
              <t><strong>Organizational isolation</strong> through separate registries maintains security
boundaries</t>
            </li>
            <li>
              <t><strong>Content verification</strong> allows nodes to validate artifact integrity without
trusting transport layers</t>
            </li>
            <li>
              <t><strong>Reputation systems</strong> can build on cryptographic proofs of past agent
performance</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="performance-optimizations">
        <name>Performance Optimizations</name>
        <t>The architecture incorporates several optimizations for the specific
requirements of agent discovery:</t>
        <section anchor="bandwidth-optimization">
          <name>Bandwidth Optimization</name>
          <ul spacing="normal">
            <li>
              <t><strong>Incremental updates</strong> use OCI layer semantics to transmit only changed
portions of agent records</t>
            </li>
            <li>
              <t><strong>Content compression</strong> reduces storage and transmission costs for large agent
definitions</t>
            </li>
            <li>
              <t><strong>Selective replication</strong> based on query patterns minimizes unnecessary data
transfer</t>
            </li>
          </ul>
        </section>
        <section anchor="scalability-architecture">
          <name>Scalability Architecture</name>
          <t>The system scales horizontally through several mechanisms:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Registry sharding</strong> distributes storage load across multiple OCI registry
instances</t>
            </li>
            <li>
              <t><strong>Index partitioning</strong> in the DHT allows query load to scale with the number
of participating nodes</t>
            </li>
            <li>
              <t><strong>Lazy loading</strong> defers retrieval of detailed agent specifications until
actually needed</t>
            </li>
          </ul>
          <t>This architecture provides a robust foundation for a decentralized agent
directory that can scale to support the growing ecosystem of AI agents while
maintaining the security and reliability requirements of production systems.</t>
        </section>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6920">
          <front>
            <title>Naming Things with Hashes</title>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="D. Kutscher" initials="D." surname="Kutscher"/>
            <author fullname="C. Dannewitz" initials="C." surname="Dannewitz"/>
            <author fullname="B. Ohlman" initials="B." surname="Ohlman"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <author fullname="P. Hallam-Baker" initials="P." surname="Hallam-Baker"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>This document defines a set of ways to identify a thing (a digital object in this case) using the output from a hash function. It specifies a new URI scheme for this purpose, a way to map these to HTTP URLs, and binary and human-speakable formats for these names. The various formats are designed to support, but not require, a strong link to the referenced object, such that the referenced object may be authenticated to the same degree as the reference to it. The reason for this work is to standardise current uses of hash outputs in URLs and to support new information-centric applications and other uses of hash outputs in protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6920"/>
          <seriesInfo name="DOI" value="10.17487/RFC6920"/>
        </reference>
        <reference anchor="OpenID.Auth" target="https://openid.net/specs/openid-authentication-2_0.txt">
          <front>
            <title>OpenID Authentication 2.0 - Final</title>
            <author initials="O." surname="Foundation" fullname="OpenID Foundation">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OCI.Image" target="https://github.com/opencontainers/image-spec">
          <front>
            <title>OCI Image Format Specification</title>
            <author initials="O. C." surname="Initiative" fullname="Open Container Initiative">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OCI.Distribution" target="https://github.com/opencontainers/distribution-spec">
          <front>
            <title>OCI Distribution Specification</title>
            <author initials="O. C." surname="Initiative" fullname="Open Container Initiative">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </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="DHT">
          <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="2001"/>
          </front>
          <seriesInfo name="IPTPS '01" value=""/>
        </reference>
        <reference anchor="Sigstore" target="https://www.sigstore.dev">
          <front>
            <title>Sigstore: A New Standard for Signing, Verifying and Protecting Software</title>
            <author initials="C. N. C." surname="Foundation" fullname="Cloud Native Computing Foundation">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="libp2p-kad-dht" target="https://github.com/libp2p/go-libp2p-kad-dht">
          <front>
            <title>go-libp2p-kad-dht: A Kademlia DHT implementation on go-libp2p</title>
            <author initials="libp2p" surname="Community" fullname="libp2p Community">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="AGNTCY-ADS" target="https://arxiv.org/abs/2509.18787">
          <front>
            <title>The AGNTCY Agent Directory Service: Architecture and Implementation</title>
            <author initials="L." surname="Muscariello" fullname="Luca Muscariello">
              <organization/>
            </author>
            <author initials="V." surname="Pandey" fullname="Vijoy Pandey">
              <organization/>
            </author>
            <author initials="R." surname="Polic" fullname="Ramiz Polic">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="AI-Registry-Evolution" target="https://arxiv.org/abs/2508.03095">
          <front>
            <title>Evolution of AI Agent Registry Solutions: Centralized, Enterprise, and Distributed Approaches</title>
            <author initials="A." surname="Singh" fullname="Aditi Singh">
              <organization/>
            </author>
            <author initials="A." surname="Ehtesham" fullname="Abul Ehtesham">
              <organization/>
            </author>
            <author initials="M." surname="Lambe" fullname="Mahesh Lambe">
              <organization/>
            </author>
            <author initials="J. J." surname="Grogan" fullname="Jared James Grogan">
              <organization/>
            </author>
            <author initials="A." surname="Singh" fullname="Abhishek Singh">
              <organization/>
            </author>
            <author initials="S." surname="Kumar" fullname="Saket Kumar">
              <organization/>
            </author>
            <author initials="L." surname="Muscariello" fullname="Luca Muscariello">
              <organization/>
            </author>
            <author initials="V." surname="Pandey" fullname="Vijoy Pandey">
              <organization/>
            </author>
            <author initials="G." surname="Sauvage De Saint Marc" fullname="Guillaume Sauvage De Saint Marc">
              <organization/>
            </author>
            <author initials="P." surname="Chari" fullname="Pradyumna Chari">
              <organization/>
            </author>
            <author initials="R." surname="Raskar" fullname="Ramesh Raskar">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V92XLcRrbge34FpvzQEruqTFKSLTHu3HspkpLYFiU2SW/d
4aFRBbAKJgooYyFVVqujYx7uB8z4cR7mW+ZT/CVz1lwAkFJ7JuIqbInEksg8
efYtJ5OJ+eyzz8xn0WFaz6ts3WRlEZVX0f4iLZroMKvSeVNWm+g8rW6yeUoP
myZr8nQvGt3x0MjEs1mV3sATMT4xSbJqZOZxky7gqb0oK65KY5JyXsQrGCap
4qtmslpP4kXRzDeTOKkn29umbmerrK5hPs1mneJbSbpO4a+iMUW7mqXVnklg
zD0zL4s6Leq23ouu4rxODXz5kYmrNN6L9tfrPINPwzC1uS2r60VVtuu96NiN
Fp3bL5nrdAMPJXsmmkT7x/Q3riCby29uradV2ZTzMrfPwL16Xt6k1YYefHVh
btKihelFkXzz25fwMy/mW5hJViyil3gHn8iaZTvbixgEnwPA4GIOq6ubvWjZ
NOt67/PP63U6n8KtKTw1bzbTsloYE7fNsqxwwvBGFF21ec5gfd3O4+ikredx
laV5XtJteCUusl8IHnvRAc6YrqerOMv3orxd0Qv/Psc703m56o97Fq+yX6LT
EsD6KUNWa3zSG9AUZbWCp28INNHZi4Mvnu1u089vYUeOD6f7sCT6Hf4oqvGt
CG/RftDnot3pNsD6RVbE+UhesPDQP5OI561DvCjbIqHX9ZUmrhapB+cSHsyS
aZE2BPJaLkzi4OOT3cvtafOuoYkfHE+PV4DsvWkfHEd0Az6Lq47OYcDsSob4
tDlHB0ACcVakFWBt1mQEu7vmzoiEgKZZz/XV+vMMpzHBBemMAWGbKpu1tHMD
E/fv/ydOPPGmwfM3yEF8JAJq6y7gqzhJV3mGLCBap2k1acoJ/hvZd2FR9aZu
0lU0i+s0ieB32N/oXVlFqxS+OL9nlVkBzOZ0Gp3EmxXg03V54+5GAoPTFNY4
+IS8f4jv/5KlVVr33z6Mb7Kke5/4XbS7vb0jF+oUiLvGJcGSj08vTs+jP2zv
0MTPs0UNnKqHkvY6AOZNehudNzHQQ5VEABZ8qQC+NI6+gYGvNsii4C4xO+B7
+Ot5edXcAm/9KAoc5GWbRG9okwATVuuW3nfkdwci3N7eTmuZ4zRJCWx5Nlvv
rifXcTJJlk13RYty0nkAlqb7j7gRZat1nq6Adnnb4T/7zkfXwY/hClYtYPHm
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

-->

</rfc>
