← agentuseinterface.org

Agent Use Interface (AUI) Specification

Version: 0.1.0-draft · Status: Draft · Date: 2026-02-16

Contents

  1. Introduction
  2. Discovery
  3. XML Namespace
  4. Schema
  5. URL Construction
  6. Full Example
  7. CSS Styling Guide
  8. Integration with llms.txt
  9. Agent Behavior Guidelines
  10. Security Considerations
  11. Comparison with Related Specifications
  12. Future Considerations

1. Introduction

The Agent Use Interface (AUI) is a lightweight, XML-based schema that enables LLM agents to discover and construct URL-parameter-driven tasks on behalf of users.

AUI is intentionally narrow in scope. It describes actions that are performed by composing query parameters onto a base URL — things like searches, filters, form pre-fills, share intents, and configuration links. It is not a general-purpose API description format (use OpenAPI for that) and it is not a path-templating system (use RFC 6570 for that).

AUI is designed to be referenced from a site's llms.txt file and served at a well-known path.

1.1 Why XML?

AUI uses XML as its document format for the following reasons:

1.2 Design Principles

PrincipleDescription
URL-parameter-scopedOnly describes tasks driven by query parameters (?key=value). Path-based routing is out of scope.
Agent-nativeDescriptions, parameter semantics, and examples are written for LLM comprehension, not human documentation.
ComposableEach task is self-contained. Agents can use one task or chain several together.
LightweightA lightweight XML catalog with optional task detail files and an optional CSS companion. No code generation, no SDKs, no auth flows.
Universal-link friendlyBase URLs should be universal links / App Links where possible, so constructed URLs open native app experiences.
ScalableA catalog + detail pattern lets large sites split task definitions across files. Agents load the lightweight catalog first, then fetch only the detail files they need.
Human-reviewableUsers can open the file in a browser and understand what tasks an agent will have access to before granting trust.

2. Discovery

2.1 File Location

An AUI file MUST be served at:

https://{domain}/.well-known/aui.xml

An optional CSS stylesheet MAY be served alongside it at:

https://{domain}/.well-known/aui.css

If the AUI file uses the catalog + detail pattern (see Section 4.3.1), detail files SHOULD be served at:

https://{domain}/.well-known/tasks/{task-id}.xml

2.2 Reference from llms.txt

The site's llms.txt file SHOULD reference the AUI file:

# URL Driven Actions
This site supports the Agent Use Interface specification.
AUI: https://example.com/.well-known/aui.xml

2.3 Content Type

The AUI file MUST be served with Content-Type: application/xml or text/xml.

2.4 CSS Stylesheet (Optional)

If a site wishes to provide a styled, human-readable view of the AUI file in browsers, it MAY include a CSS stylesheet processing instruction as the first line after the XML declaration:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="aui.css"?>

The CSS file should be kept dead simple — basic typography, spacing, and color. The goal is readability, not a marketing page. See Section 7 for a reference stylesheet.

2.5 Canonical Publication

Canonical AUI specification assets are published on agentuseinterface.org:

Specification: https://agentuseinterface.org/spec/0.1
Namespace:     https://agentuseinterface.org/schema/0.1
XSD:           https://agentuseinterface.org/schema/0.1/aui.xsd
Schematron:    https://agentuseinterface.org/schema/0.1/aui.sch

3. XML Namespace

The AUI XML namespace is:

https://agentuseinterface.org/schema/0.1

All AUI elements MUST be in this namespace. Documents SHOULD declare it as the default namespace on the root element:

<aui xmlns="https://agentuseinterface.org/schema/0.1" version="0.1">

Documents that want XML-validator compatibility SHOULD also include xsi:schemaLocation:

<aui
  xmlns="https://agentuseinterface.org/schema/0.1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://agentuseinterface.org/schema/0.1 https://agentuseinterface.org/schema/0.1/aui.xsd"
  version="0.1">

4. Schema

4.0 Normative XSD

The normative XML Schema Definition (XSD) for AUI v0.1 is:

https://agentuseinterface.org/schema/0.1/aui.xsd

Producers SHOULD validate AUI documents against this schema before publishing.

Some cross-field rules are normative even when not fully expressible in XSD 1.0. Producers and agents MUST enforce these semantic rules:

A reference Schematron for same-document semantic validation is provided at:

https://agentuseinterface.org/schema/0.1/aui.sch

Producers and agents SHOULD validate with both XSD and Schematron when available. Cross-document id matching for referenced detail files MUST be validated at detail-file fetch time.

4.1 Root Element: <aui>

AttributeTypeRequiredDescription
versionstringYesSpecification version. MUST be "0.1".
Child ElementTypeRequiredDescription
<origin>stringYesThe canonical origin (scheme + host) for all tasks.
<name>stringYesHuman-readable name of the service.
<description>stringYesNatural-language description of the service, written for agent comprehension.
<metadata>elementNoOptional metadata about the service.
<tasks>elementYesContainer for one or more <task> elements.

4.2 <metadata> Element

Child ElementTypeRequiredDescription
<logo>stringNoURL to a logo image.
<contact>stringNoContact email for the AUI maintainer.
<docs>stringNoURL to human-readable documentation.
<platforms>elementNoContainer for <platform> elements.

Each <platform> element contains one of: ios, android, web.

4.3 <task> Element

A task represents a single URL-parameter-driven action an agent can construct. A <task> may appear in inline form (full definition) or reference form (lightweight summary pointing to a detail file). See Section 4.3.1 for details.

AttributeTypeRequiredDescription
idstringYesA unique, stable identifier for this task (kebab-case).
outputstringNoOne of: display, background. Defaults to display. background is for low-risk attribution/analytics fetches only. Inline form only; MUST be omitted when href is present.
hrefanyURINoURL of a detail file containing the full task definition (an <aui-task> document). When present, the task is in reference form.
Child ElementTypeInlineReferenceDescription
<name>stringYesYesShort human-readable name.
<description>stringYesYesNatural-language description of what this task does, written for agent comprehension. Should describe when an agent should use this task and what outcome the user can expect.
<base-path>stringYesNoThe URL path onto which parameters are appended. MUST start with / and MUST NOT include ? or #. Full URL: {origin}{base-path}?{params}.
<tags>elementNoNoContainer for <tag> elements (freeform categorization strings).
<parameters>elementYesNoContainer for one or more <param> elements.
<examples>elementNoNoContainer for <example> elements.

If href is absent (inline form), <base-path> and <parameters> MUST be present.

When href is present (reference form), <base-path>, <parameters>, <examples>, and output MUST be omitted. The catalog entry carries only what an agent needs for relevance judgment: name, description, and optionally tags.

4.3.1 Inline vs. Reference Forms

Inline form — the task definition is complete within the catalog file:

<task id="product-search">
  <name>Search Products</name>
  <description>Search the product catalog.</description>
  <base-path>/search</base-path>
  <tags><tag>search</tag></tags>
  <parameters>...</parameters>
  <examples>...</examples>
</task>

Reference form — the task summary lives in the catalog; full details are in a separate file:

<task id="configure-wishlist" href="tasks/configure-wishlist.xml">
  <name>Configure Wishlist View</name>
  <description>Open the user's wishlist with specific display settings.</description>
  <tags><tag>personalization</tag></tags>
</task>

A single aui.xml MAY mix both forms — use inline for small tasks and reference for complex ones.

For reference tasks, output is defined by the detail file's <aui-task> element.

href resolution:

Output Modes

ValueMeaning
displayThe URL should be presented to the user as a link to act on (default). The user or OS decides how to open it.
backgroundThe URL may be fetched silently by the agent for attribution/analytics-style pings. Endpoints MUST be safe and idempotent, and MUST NOT create, modify, or delete user state.

4.4 <param> Element

AttributeTypeRequiredDescription
namestringYesThe query parameter key as it appears in the URL.
typestringYesOne of: string, number, integer, boolean, enum.
requiredbooleanNoWhether this parameter must be included. Defaults to false.
Child ElementTypeRequiredDescription
<description>stringYesWhat this parameter represents, written for agent comprehension.
<default>stringNoDefault value if omitted.
<pattern>stringNoA regex pattern the value must match, using ECMAScript (JavaScript) regex syntax without delimiters.
<min>numberNoMinimum value (for number/integer).
<max>numberNoMaximum value (for number/integer).
<separator>stringNoDelimiter for multi-value parameters (e.g., , for ?tags=a,b,c).
<example>stringNoAn example value for this parameter.
<options>elementNoContainer for <option> elements. Required when type="enum".

4.5 <option> Element (Enum Values)

AttributeTypeRequiredDescription
valuestringYesThe literal value used in the URL.

The text content of <option> is a natural-language description of when to use this value, written for agent comprehension.

<option value="price_asc">Cheapest first. Use when user wants deals or is budget-conscious.</option>

4.6 <example> Element

Child ElementTypeRequiredDescription
<intent>stringYesA natural-language description of what the user wants. Written as something a user might say to an agent.
<url>stringYesThe fully constructed URL that fulfills the intent.

4.7 <aui-task> Element (Detail File Root)

When a task uses the reference form (Section 4.3.1), its full definition lives in a standalone detail file with <aui-task> as the root element. This element is structurally identical to an inline <task> but serves as an unambiguous root for standalone documents.

AttributeTypeRequiredDescription
idstringYesMUST match the id of the corresponding <task> entry in the catalog.
outputstringNoOne of: display, background. Defaults to display. For reference tasks, this value is authoritative.
Child ElementTypeRequiredDescription
<name>stringYesShort human-readable name.
<description>stringYesNatural-language description.
<base-path>stringYesThe URL path onto which parameters are appended.
<tags>elementNoContainer for <tag> elements.
<parameters>elementYesContainer for one or more <param> elements.
<examples>elementNoContainer for <example> elements.

The detail file is self-contained — it includes all fields needed to construct URLs without merging data from the catalog. If the catalog and detail file disagree on <name>, <description>, or output, the detail file is authoritative. Catalog tasks that use href MUST omit output.

Example detail file:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="../aui.css"?>
<aui-task xmlns="https://agentuseinterface.org/schema/0.1"
  id="configure-wishlist" output="display">
  <name>Configure Wishlist View</name>
  <description>Open the user's wishlist with specific display settings.</description>
  <base-path>/wishlist</base-path>
  <tags><tag>personalization</tag></tags>
  <parameters>
    <param name="sort" type="enum">
      <description>How to sort wishlist items.</description>
      <options>
        <option value="date_added">Most recently saved first.</option>
        <option value="price_drop">Largest price drop first.</option>
      </options>
    </param>
  </parameters>
</aui-task>

5. URL Construction

Agents construct URLs using the following algorithm:

1. Start with: {origin}{base-path}
2. Collect all parameter values (from user intent + defaults)
3. URL-encode each key and each value
4. Join as query string: ?key1=value1&key2=value2
5. Append to base: {origin}{base-path}?key1=value1&key2=value2

Parameters with null or empty values SHOULD be omitted unless they are required.

Boolean parameters SHOULD be encoded as true / false.

To tolerate implementation variance:

Multi-value parameters using a <separator> SHOULD encode the joined value as a single parameter (e.g., ?tags=swift,ios), not as repeated keys. Consumers MAY accept repeated-key equivalents.


6. Full Example

See the accompanying aui.xml file for a complete working example of an AUI document with three tasks (product search, share product, configure wishlist). The example demonstrates both inline and reference forms — two tasks are defined inline, while the configure-wishlist task uses the reference form with its full definition in tasks/configure-wishlist.xml.


7. CSS Styling Guide

Sites MAY provide a CSS file to make the AUI document human-readable in browsers. The stylesheet is referenced via the <?xml-stylesheet?> processing instruction.

7.1 Principles

7.2 Reference Stylesheet

A reference aui.css in example/ is provided as a companion file to this specification. Sites MAY use it as-is or adapt it to their brand, provided the core task structure remains legible.

7.3 Recommended CSS Targets

Since browsers apply CSS to XML elements by tag name, the following selectors are available:

SelectorPurpose
auiRoot container. Set base font, max-width, margin.
nameService and task names. Style as headings.
descriptionDescriptive text blocks. Style as paragraphs.
originThe base URL. Style as monospace/code.
taskEach task block. Add borders, padding, spacing.
paramEach parameter. Display as a compact block.
optionEnum values. Display inline or as a list.
exampleIntent/URL pairs. Style as callout blocks.
intentUser intent string. Style as italic or quoted.
urlConstructed URL. Style as monospace/code.
base-pathTask path. Style as monospace/code.
tagFreeform tags. Style as inline badges.
metadataService metadata block. Style as a subtle header.
platformPlatform indicators. Style as inline badges.

7.4 Reference Tasks and Detail Files

When using the catalog + detail pattern, the CSS SHOULD provide visual differentiation for reference tasks:

SelectorPurpose
task[href]Reference task entries. Use a dashed border or distinct background to indicate the task definition lives elsewhere.
task[href]::afterDisplay the href value so users can see where the detail file lives.
aui-taskRoot element of standalone detail files. Mirror the base aui styles (font, max-width, margin) so detail files render properly in browsers.

Detail file selectors (aui-task > name, aui-task > description, etc.) should mirror their task counterparts for consistent rendering.


8. Integration with llms.txt

A site's llms.txt SHOULD reference the AUI file and provide brief context:

# Example Shop

> An online electronics store with universal link support.

## Agent Use Interface
This site publishes an AUI file describing URL-parameter-driven tasks
that agents can construct on behalf of users.

- AUI Specification: https://shop.example.com/.well-known/aui.xml
- Supported platforms: iOS, Android, Web
- All task URLs are universal links that open native app experiences
  when the app is installed.

## Additional Resources
- API Documentation: https://docs.example.com/api
- Privacy Policy: https://example.com/privacy

9. Agent Behavior Guidelines

Agents consuming AUI files SHOULD:

  1. Respect required parameters. Never construct a URL without all required parameters populated.
  2. Apply defaults. Use declared <default> values when the user's intent doesn't specify a preference.
  3. Use <option> descriptions for disambiguation. When multiple enum values could match a user's intent, prefer the value whose description best aligns with the stated goal.
  4. Prefer <example> elements for calibration. Use the intent → URL examples to understand the expected mapping style before constructing novel URLs.
  5. Respect the output attribute. Don't silently fetch a URL marked display. Only fetch background URLs when they meet the Section 10 safety requirements.
  6. Validate before constructing. Check <pattern>, <min>, <max>, and <options> constraints before emitting a URL.
  7. Chain tasks when needed. If a task requires a value the agent doesn't have (e.g., a SKU), use another task (e.g., product search) to discover it first.
  8. Attribute agent usage. If a ref or attribution parameter exists, agents SHOULD populate it.
  9. Disclose background fetches. Agents SHOULD provide user-visible activity logs or equivalent disclosure for background URL fetches.
  10. Ignore the CSS. The <?xml-stylesheet?> instruction is for browsers. Agents should parse the XML structure directly.
  11. Load the catalog first. When discovering a site's AUI file, read the root aui.xml catalog before fetching any detail files. Use task names, descriptions, and tags to judge relevance.
  12. Fetch detail files on demand. Only fetch detail files (via href) for tasks the agent judges relevant to the user's current intent. Do not eagerly fetch all detail files.
  13. Handle detail file failures gracefully. If a detail file fetch fails (404, timeout, invalid XML), the agent MUST NOT construct URLs for that task and SHOULD inform the user the task is unavailable.
  14. Support mixed-mode catalogs. A single aui.xml may contain both inline and reference tasks. Agents MUST handle both forms correctly.
  15. Detail file is authoritative. If a catalog entry's <name>, <description>, or output differs from the detail file, the detail file takes precedence. Catalog tasks with href MUST omit output, and the id in the detail file MUST match the catalog entry's id.

10. Security Considerations


11. Comparison with Related Specifications

SpecificationScopeAUI Relationship
llms.txtSite-level agent guidanceAUI is discovered via llms.txt.
OpenAPIFull API descriptionAUI is narrower — URL parameters only, no request bodies, no auth.
RFC 6570 (URI Templates)URL path + param templatingAUI adds semantics (descriptions, types, constraints) on top of the template concept.
MCP (Model Context Protocol)Agent ↔ server tool callsAUI is stateless and URL-only; MCP is for richer, bidirectional interactions.
Apple AASA / Android Asset LinksApp ↔ domain ownership verificationAUI complements these by describing how to construct the URLs they verify.

12. Future Considerations

The following are out of scope for v0.1 but may be addressed in future versions:


License

This specification is released under CC BY 4.0.