<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-hecker-dawn-intent-capability-gap-00" category="info" submissionType="IETF" xml:lang="en" version="3" tocInclude="true" sortRefs="true" symRefs="true">

  <front>
    <title abbrev="DAWN Intent-to-Capability Gap">The Intent-to-Capability Knowledge Gap in Discovery of Agents With Names</title>
    <seriesInfo name="Internet-Draft" value="draft-hecker-dawn-intent-capability-gap-00"/>

    <author fullname="Artur Hecker" initials="A." surname="Hecker">
      <organization>Huawei Technologies Duesseldorf GmbH</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>artur.hecker@huawei.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="28"/>

    <keyword>DAWN</keyword>
    <keyword>discovery</keyword>
    <keyword>AI agents</keyword>
    <keyword>capability</keyword>
    <keyword>intent</keyword>

    <abstract>
      <t>DAWN defines discovery as an initial step that returns minimum discoverable information (MDI) about entities. Clients, however, usually start from an intent, not from a name or a capability, and the capabilities needed to satisfy an intent depend on what is available. A client therefore has to know what is on offer to decide what to look for, and has to decide what to look for to learn what is on offer.</t>
      <t>This document describes that circular dependency, locates it in the current DAWN documents, compares five strategies for handling it, and lists questions for the Architecture work. The main question is what the MDI must contain for a client to act without a pre-agreed capability vocabulary. This document proposes no protocol.</t>
    </abstract>

    <note removeInRFC="true">
      <name>Editorial Note</name>
      <t>Reviewed for this version: the DAWN charter (charter-ietf-dawn-01), <xref target="I-D.king-dawn-requirements"/> -02, <xref target="I-D.farrel-dawn-terminology"/> -05, <xref target="I-D.kay-dawn-use-cases"/> -01, <xref target="I-D.akhavain-moussa-dawn-problem-statement"/> -05, <xref target="I-D.mozley-aidiscovery"/> -01 (expired), and <xref target="I-D.iannone-dawn-privacy-considerations"/> -00 (mostly placeholders). The agentic AI use-case drafts were seen only in excerpts and are not analysed. REQ identifiers refer to requirements -02, which renumbered those of -01 that the use cases draft cites.</t>
      <t>Discussion of this document is proposed for the dawn@ietf.org mailing list.</t>
    </note>
  </front>

  <middle>

    <section anchor="intro">
      <name>Introduction</name>
      <t>The DAWN charter <xref target="DAWN-CHARTER"/> says clients need to learn how to reach AI resources and what those resources offer. It limits the work to the initial discovery of minimum public discovery information within a local network, an organisation, or between cooperating parties, and it excludes open-ended search, semantic matchmaking, ranking, and selection based on capabilities or user intent.</t>
      <t>The DAWN documents describe discovery as starting from a task or intent that is turned into a discovery request <xref target="I-D.kay-dawn-use-cases"/>. The step from intent to request is assumed, not described. This document examines it. An intent can usually be satisfied in several ways, each needing different capabilities, and the best way depends on what is available. What is available is learned by discovery, and discovery requests are formed from the chosen capabilities.</t>
      <t>The aim is to make the gap explicit so that the Architecture work can treat it deliberately and not define the MDI on the silent assumption that clients already know what to ask for.</t>
    </section>

    <section anchor="terminology">
      <name>Terminology</name>
      <t>The following terms are used as defined in <xref target="I-D.farrel-dawn-terminology"/>: Capability, Capability Card, Discovered Entity, Discovering Entity, Discovery, Discovery Information, Discovery Mechanism, Discovery Scope, Entity, Function, Minimum Discoverable Information (MDI), Properties, and Selection.</t>
      <t>This document adds four terms.</t>
      <dl>
        <dt>Intent:</dt>
        <dd>A goal held by a discovering entity or by a user on whose behalf it acts, not necessarily expressed in terms of any published capability.</dd>
        <dt>Decomposition:</dt>
        <dd>A mapping from an intent to one or more plans, each a set of capabilities whose combined fulfilment would satisfy the intent.</dd>
        <dt>Capability Identifier:</dt>
        <dd>A token or description in which a discovery request or MDI expresses a Function or Capability.</dd>
        <dt>Scope Enumeration:</dt>
        <dd>A discovery request that asks for the MDI of all entities visible within a Discovery Scope, without filtering by capability.</dd>
      </dl>
    </section>

    <section anchor="gap">
      <name>The Knowledge Gap</name>

      <section anchor="circular">
        <name>The Circular Dependency</name>
        <ol type="1">
          <li>To form a discovery request, a client needs a decomposition of its intent, or at least candidate capabilities to ask about.</li>
          <li>The best decomposition depends on which capabilities are available, and valid decompositions are usually numerous.</li>
          <li>Which capabilities are available can be learned only by discovery.</li>
        </ol>
        <t>Take the intent "get to place X as fast as possible". If X is within walking distance in a dense city, a bicycle service may be best. If X is 30 km away, a taxi may be best. If X is 1000 km away, a train to an airport and a flight may be best. The client does not initially know its distance to X or what is around it, and learning those things is itself a matter of finding and querying resources.</t>
        <t>A client that cannot form a request cannot discover. A client that forms requests blindly either asks about many capabilities, which is costly and revealing, or about too few, and may miss a better plan. Sending the whole intent as the request is unlikely to match any published capability exactly, and it discloses the intent.</t>
      </section>

      <section anchor="not-this">
        <name>What This Is Not</name>
        <dl>
          <dt>Bootstrapping:</dt>
          <dd>How a client learns which domain, network, or entry point to query is a known problem with known solutions, such as provisioning, configuration, or a first multicast query. This document assumes the client has an entry point for the Discovery Scope it cares about.</dd>
          <dt>Vocabulary definition:</dt>
          <dd>Agreeing that a printer is called a printer is a vocabulary problem. The gap persists even with a perfect dictionary. The client would know which names might exist, but not which are offered in this Discovery Scope, nor which combinations satisfy its intent. It could probe the dictionary entry by entry, but probing makes the gap a scalability and privacy problem: the number of probes grows with the dictionary, and the pattern of probes reveals the intent.</dd>
        </dl>
        <t>The classic model, a query for a printer that handles a given page description language, assumes the client already holds the Capability Identifier. The gap concerns a client that holds only an intent.</t>
      </section>

      <section anchor="where">
        <name>Where the Gap Sits in the DAWN Documents</name>
        <dl>
          <dt>Charter and terminology.</dt>
          <dd>The terminology draft defines Discovery as locating entities able to perform a desired function. It also breaks the discovery ecosystem into functions, one of which is search based on a "formalised encoding of search criteria", and places only the discovery lookup in scope. The gap sits between the two: lookup needs criteria, and producing criteria from an intent is not part of the work.</dd>
          <dt>Requirements.</dt>
          <dd><xref target="I-D.king-dawn-requirements"/> requires discovery of both specific entities and classes of entities that can perform a function (REQ-DISC-1). It also says discovery starts from "a name or scope known to the discovering entity" (REQ-DISC-4). Together these describe discovery by function within a Discovery Scope. Nothing says how the function is chosen. The MDI is to include the type and "services it offers" (REQ-PROP-1), but the documents do not say whether that is an identifier or a description. A reference to a capability card is allowed, with its content out of scope (REQ-PROP-4). The requirements do help Scope Enumeration: results should say whether a Discovery Scope was fully searched or truncated (REQ-DISC-4), and absence may be reported only from a complete result (REQ-PROP-3).</dd>
          <dt>Use cases.</dt>
          <dd>The pattern in <xref target="I-D.kay-dawn-use-cases"/> runs from intent to request to candidates, and its examples begin at the request, with the organisation and capability already known. The problem statement lists chained, interactive, and reversed discovery among topics for the use cases document, and names blind or exploratory search among things current approaches do not handle <xref target="I-D.akhavain-moussa-dawn-problem-statement"/>. The current use cases draft has none of these as a category. Chained discovery, in which later queries depend on earlier results, is the circular dependency of <xref target="circular"/> in iterative form. The problem statement also names semantic matching as a possible discovery mechanism, which sits uneasily with the charter exclusion.</dd>
          <dt>Discovery Scope.</dt>
          <dd>The terminology allows a Discovery Scope to be defined by administrative identifiers, trust domains, distance, geographic or jurisdictional boundaries, and time. A location-bounded scope can answer "what is near me", but a client has to reveal its location to use it.</dd>
        </dl>
      </section>
    </section>

    <section anchor="strategies">
      <name>Strategies</name>
      <t>Five ways of handling the gap are described. They differ in where matching happens and what they cost. They are not exclusive.</t>
      <dl>
        <dt>A. Identifier probing.</dt>
        <dd>The client holds a vocabulary and queries for identifiers from candidate plans. It needs the vocabulary in advance, and a series of probes can reveal the intent. It scales poorly with open-ended intents.</dd>
        <dt>B. Intent forwarding.</dt>
        <dd>The client sends the intent, or a close paraphrase, to a catalog that matches it. This removes the circularity and needs no vocabulary, but it discloses the intent and is semantic matchmaking, which the charter excludes.</dd>
        <dt>C. Scope Enumeration with client-side matching.</dt>
        <dd>The client asks for all MDI in a Discovery Scope and evaluates it against its own plans. The intent never leaves the client. It works only where the Discovery Scope is small enough to enumerate and where the MDI is descriptive enough to interpret without a pre-agreed vocabulary. The charter example "discover all agents in this shop" is of this kind.</dd>
        <dt>D. Brokered discovery.</dt>
        <dd>The client discovers a planning or coordinating entity, such as a journey planner, by a coarse Capability Identifier, then gives it the intent in the application exchange. This keeps the intent out of discovery and semantic matching out of DAWN, but it still needs a coarse vocabulary and puts trust and privacy exposure on the broker. The requirements already ask for discovery of brokers (REQ-DISC-3).</dd>
        <dt>E. Reversed discovery.</dt>
        <dd>The client publishes its need as a discoverable object and providers find it, as the problem statement describes for tasks. This needs no vocabulary on the client side, but it publishes the intent to everyone who can see the Discovery Scope.</dd>
      </dl>

      <table anchor="tab-strategies">
        <name>Comparison of Strategies</name>
        <thead>
          <tr>
            <th>Strategy</th>
            <th>Vocabulary in advance</th>
            <th>Intent seen by others</th>
            <th>Fits charter</th>
            <th>Main limit</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>A Probe</td>
            <td>Full</td>
            <td>Inferable</td>
            <td>Yes</td>
            <td>Probe count</td>
          </tr>
          <tr>
            <td>B Forward</td>
            <td>None</td>
            <td>Yes</td>
            <td>No</td>
            <td>Privacy</td>
          </tr>
          <tr>
            <td>C Enumerate</td>
            <td>Depends on MDI content</td>
            <td>No</td>
            <td>Yes, if MDI stays small</td>
            <td>Scope size</td>
          </tr>
          <tr>
            <td>D Broker</td>
            <td>Coarse</td>
            <td>Broker only</td>
            <td>Yes</td>
            <td>Broker trust</td>
          </tr>
          <tr>
            <td>E Reverse</td>
            <td>None</td>
            <td>Yes, public</td>
            <td>Unclear</td>
            <td>Privacy</td>
          </tr>
        </tbody>
      </table>

      <t>Within the charter as written, A, C, and D are available. A depends on a full vocabulary and D on a coarse one. C depends on what the MDI contains, which is the first question in <xref target="questions"/>.</t>
    </section>

    <section anchor="scalability">
      <name>Scalability of the Strategies</name>
      <t>The strategies differ mostly in who bears the scaling cost, not in whether there is one. This section is qualitative and assumes that no central registry is available (REQ-ARCH-1).</t>

      <table anchor="tab-scaling">
        <name>Scaling Cost of the Strategies</name>
        <thead>
          <tr>
            <th>Strategy</th>
            <th>Main bottleneck</th>
            <th>Who pays</th>
            <th>Cacheable</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>A Probe</td>
            <td>Plans times vocabulary size</td>
            <td>Client; the vocabulary</td>
            <td>Yes, exact match</td>
          </tr>
          <tr>
            <td>B Forward</td>
            <td>Matching over all offers</td>
            <td>The matching service</td>
            <td>No, intents are unique</td>
          </tr>
          <tr>
            <td>C Enumerate</td>
            <td>Size of the scope and of the MDI</td>
            <td>Client; and publishers</td>
            <td>Yes, same for all clients</td>
          </tr>
          <tr>
            <td>D Broker</td>
            <td>Knowledge held by the broker</td>
            <td>Brokers</td>
            <td>Yes, for finding one</td>
          </tr>
          <tr>
            <td>E Reverse</td>
            <td>Needs times watching parties</td>
            <td>Providers and notification carriers</td>
            <td>No, needs are short-lived</td>
          </tr>
        </tbody>
      </table>

      <dl>
        <dt>A:</dt>
        <dd>The server side scales like DNS-SD <xref target="RFC6763"/>: exact match, cacheable, and delegable. The cost moves to the client, which probes more as intents become open-ended, and to the vocabulary. Privacy mitigations add cost; the privacy draft itself notes that private information retrieval may not cope with DAWN's scale <xref target="I-D.iannone-dawn-privacy-considerations"/>.</dd>
        <dt>B:</dt>
        <dd>The worst fit. Matching free-form intents needs an aggregated index across domains, which conflicts with REQ-ARCH-1 and with independent publication (REQ-ARCH-2).</dd>
        <dt>C:</dt>
        <dd>Richer MDI reduces the need for a shared vocabulary but enlarges every enumeration. For a language-model client the limit is not bandwidth but context budget and interpretation cost, so C trades the vocabulary problem for a compute and trust problem. Dynamic properties defeat caching and are better carried by reference. C scales by hierarchy (a shop, a mall, a city), which makes the granularity of Discovery Scopes a real design question.</dd>
        <dt>D:</dt>
        <dd>Finding a broker is cheap, because broker types are few, coarse, and stable. The broker must know the offers, so the market tends toward a few large brokers, and brokers that discover brokers can cascade without bound.</dd>
        <dt>E:</dt>
        <dd>Write load follows the number of clients, and every provider must scan every need. It needs expiry and rate limiting.</dd>
      </dl>

      <t>Intents that span several Discovery Scopes multiply the cost, because chained discovery needs sequential rounds. A and D handle this through delegation; C needs the client to know the scopes. The combination that scales best on paper is hierarchical: a coarse probe (A) finds the scope or broker, enumeration (C) runs inside a small scope, and a broker (D) handles cross-scope intents. What remains open is how a client finds the right scopes.</t>
    </section>

    <section anchor="questions">
      <name>Questions for the DAWN Architecture</name>
      <dl>
        <dt>MDI content.</dt>
        <dd>If Strategy C is to work without a shared vocabulary, the MDI must be interpretable on its own, which suggests descriptive content and not only an identifier. What keeps such content minimal, how is it language-tagged, and where does it end and a capability card begin? The terminology describes the MDI as a common header of a data structure, and "services offered" in REQ-PROP-1 does not settle this.</dd>
        <dt>Enumeration and abuse limits.</dt>
        <dd>Strategy C needs enumeration to be possible. The requirements ask the mechanism to limit abuse including scraping (REQ-SEC-3), and ask a specification to say whether it resists enumeration, failing which the set of discoverable entities is to be treated as public. The Architecture will have to say which Discovery Scopes allow enumeration, to whom, and at what cost.</dd>
        <dt>Truncation.</dt>
        <dd>REQ-DISC-4 asks for an indication of truncated results. What should a client do with a partial enumeration: page through it, narrow the Discovery Scope, or refine the request?</dd>
        <dt>Chained and multi-scope intents.</dt>
        <dd>An intent such as the long-distance case in <xref target="app-example"/> needs offers from several Discovery Scopes that the client does not know in advance. Finding them is an indexing problem, which the charter excludes. Is referral (REQ-DISC-3) expected to carry this, and should chained and interactive discovery be added to the use cases?</dd>
        <dt>Vocabulary ownership.</dt>
        <dd>Extensible schemas are required (REQ-EXT-1), but nobody is assigned to define Function identifiers, and the naming of entities is out of scope. Service types in existing service discovery come from a registry <xref target="RFC6763"/>. Can a registry keep pace with agent capabilities, and what would DAWN carry if none exists?</dd>
      </dl>
    </section>

    <section anchor="security">
      <name>Security Considerations</name>
      <t>Integrity protection shows that discovery information was not altered in transit. It does not show that the information is accurate or safe to interpret. Strategy C asks clients to read descriptive MDI, often with a language model, so that content is untrusted input. A publisher can write descriptions to match as many intents as possible or to steer a client's behaviour; the AID draft already lists inputs from an index that modify agent reasoning as an adversarial use <xref target="I-D.mozley-aidiscovery"/>. Enumerations also let an attacker add or remove entries to shape a client's plan, and large results can exhaust a client's processing budget.</t>
    </section>

    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>Discovery queries can reveal intent; the privacy draft gives a medical-dataset example <xref target="I-D.iannone-dawn-privacy-considerations"/>. The strategies differ in exposure.</t>
      <ul>
        <li>Granularity: fine-grained queries are selective but reveal more; coarse queries reveal less and return more. A destination or a medical need should not appear in a discovery query.</li>
        <li>Series: repeated probing (A) can reveal an intent when each query is coarse, and repeated queries to one service can be correlated. Private information retrieval, named in the privacy draft, may help but its scaling is unproven.</li>
        <li>Enumeration (C): reveals the chosen Discovery Scope but not the intent. A location-bounded scope reveals location.</li>
        <li>Brokers (D) learn the full intent, and reversed discovery (E) publishes it.</li>
        <li>Multicast queries are visible to every node on the link.</li>
      </ul>
      <t>A sound default is to keep the intent out of the discovery exchange and to carry it only in an authenticated application exchange with an entity the client has chosen.</t>
    </section>

    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>

  </middle>

  <back>
    <references>
      <name>Informative References</name>

        <reference anchor="DAWN-CHARTER" target="https://datatracker.ietf.org/doc/charter-ietf-dawn/">
          <front>
            <title>Discovery of Agents With Names (dawn) Charter</title>
            <author>
              <organization>IETF</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>

        <reference anchor="I-D.akhavain-moussa-dawn-problem-statement" target="https://datatracker.ietf.org/doc/html/draft-akhavain-moussa-dawn-problem-statement-05">
          <front>
            <title>Problem Statement for the Discovery of Agents, Workloads, and Named Entities (DAWN)</title>
            <author initials="A." surname="Akhavain" fullname="Arashmid Akhavain"/>
            <author initials="H." surname="Moussa" fullname="Hesham Moussa"/>
            <author initials="D." surname="King" fullname="Daniel King"/>
            <date year="2026" month="July" day="19"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-akhavain-moussa-dawn-problem-statement-05"/>
        </reference>

        <reference anchor="I-D.farrel-dawn-terminology" target="https://datatracker.ietf.org/doc/html/draft-farrel-dawn-terminology-05">
          <front>
            <title>Terminology for the Discovery of Agents With Names (DAWN)</title>
            <author initials="A." surname="Farrel" fullname="Adrian Farrel"/>
            <author initials="K." surname="Yao" fullname="Kehan Yao"/>
            <author initials="R." surname="Schott" fullname="Roland Schott"/>
            <author initials="N." surname="Williams" fullname="Nic Williams"/>
            <date year="2026" month="October" day="19"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-farrel-dawn-terminology-05"/>
        </reference>

        <reference anchor="I-D.iannone-dawn-privacy-considerations" target="https://datatracker.ietf.org/doc/html/draft-iannone-dawn-privacy-considerations-00">
          <front>
            <title>Privacy Considerations for the Discovery of Agents, Workloads, and Named Entities (DAWN)</title>
            <author initials="L." surname="Iannone" fullname="Luigi Iannone"/>
            <author initials="A." surname="Fressancourt" fullname="Antoine Fressancourt"/>
            <date year="2026" month="May" day="22"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-iannone-dawn-privacy-considerations-00"/>
        </reference>

        <reference anchor="I-D.kay-dawn-use-cases" target="https://datatracker.ietf.org/doc/html/draft-kay-dawn-use-cases-01">
          <front>
            <title>Use Cases and Applicability for Discovery of Agents With Names</title>
            <author initials="D." surname="King" fullname="Daniel King"/>
            <author initials="K." surname="Yao" fullname="Kehan Yao"/>
            <author initials="K." surname="Adler"/>
            <author initials="R." surname="Ramdhany"/>
            <date year="2026" month="September" day="10"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kay-dawn-use-cases-01"/>
        </reference>

        <reference anchor="I-D.king-dawn-requirements" target="https://datatracker.ietf.org/doc/html/draft-king-dawn-requirements-02">
          <front>
            <title>Requirements for the Discovery of Agents With Names (DAWN)</title>
            <author initials="D." surname="King" fullname="Daniel King"/>
            <author initials="A." surname="Farrel" fullname="Adrian Farrel"/>
            <date year="2026" month="October" day="19"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-king-dawn-requirements-02"/>
        </reference>

        <reference anchor="I-D.mozley-aidiscovery" target="https://datatracker.ietf.org/doc/html/draft-mozley-aidiscovery-01">
          <front>
            <title>AI Agent Discovery (AID) Problem Statement</title>
            <author initials="J." surname="Mozley" fullname="Jim Mozley"/>
            <author initials="N." surname="Williams" fullname="Nic Williams"/>
            <author initials="B." surname="Sarikaya" fullname="Behcet Sarikaya"/>
            <author initials="R." surname="Schott" fullname="Roland Schott"/>
            <date year="2026" month="April" day="16"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mozley-aidiscovery-01"/>
        </reference>

        <reference anchor="RFC6763" target="https://www.rfc-editor.org/info/rfc6763">
          <front>
            <title>DNS-Based Service Discovery</title>
            <author initials="S." surname="Cheshire" fullname="S. Cheshire"/>
            <author initials="M." surname="Krochmal" fullname="M. Krochmal"/>
            <date year="2013" month="February"/>
          </front>
          <seriesInfo name="RFC" value="6763"/>
          <seriesInfo name="DOI" value="10.17487/RFC6763"/>
        </reference>
    </references>

    <section anchor="app-example">
      <name>Worked Example</name>
      <t>A user's agent holds the intent "get to place X as fast as possible". The three situations of <xref target="circular"/> need different capabilities: bicycle rental, a taxi, or local transit plus rail plus an airline.</t>
      <dl>
        <dt>A (probing):</dt>
        <dd>The agent probes for bicycle, taxi, rail, and airline capabilities. It needs the identifiers beforehand, and the probes show that the user is travelling and roughly how.</dd>
        <dt>B (forwarding):</dt>
        <dd>The agent sends "get to X fast" to a catalog. It needs no identifiers, but the destination is disclosed.</dd>
        <dt>C (enumeration):</dt>
        <dd>The agent enumerates a Discovery Scope it knows, such as the local network or the city transport organisation, and matches locally. This covers the first two situations if the scope contains them. It does not cover the third unless the agent can find the rail and airline scopes (<xref target="questions"/>).</dd>
        <dt>D (broker):</dt>
        <dd>The agent discovers a journey planner by a coarse capability, then sends the destination to it in an application exchange. Discovery reveals only that a planner was sought. The user must trust the planner with the destination.</dd>
        <dt>E (reversed):</dt>
        <dd>The agent publishes "need a fast route to X". Any provider in the Discovery Scope can respond, and everyone there learns the destination.</dd>
      </dl>
    </section>

  </back>
</rfc>
