PreviewThe AAL spec is in preview. The public GitHub repository, reference implementations, and RFC discussions land with the v0.1 launch. Read the page for the shape of the standard; the actionable links go live with the launch.
← All standards

AAL v0.1 · Preview · MIT (planned)

Agent Affordance Layer

An open standard for declaring per-page agent actions on the web. Browser agents read a JSON manifest instead of a screenshot — so they navigate the web with 20–30× fewer tokens, at a fraction of the energy cost.

GitHub repo, spec on disk, and reference consumer go public at launch. Want the heads-up? Get studio updates.

Why this exists

Today, AI browser agents read web pages by either taking screenshots (expensive, fragile) or scraping the accessibility tree (designed for screen readers, not action semantics).

There is no standard way for a website to declare its affordances — the actions an agent can take, what they cost, and what is safe to do autonomously.

ARIA describes structure. llms.txt describes content. MCP replaces the GUI. AAL fills the affordance gap.

By the numbers

What it costs to skip this

ApproachTokens / step$ per 20-step taskEnergy / task
Vision (screenshots)15K–25K$0.90–$1.50~135 Wh
Accessibility tree1.5K–4K$0.09–$0.24~30 Wh
AAL (this spec)400–1,200$0.024–$0.072~21 Wh

Anchored on Sonnet 4.6 at $3 / million input tokens and ~0.0003 Wh per inference token. Energy figures are conservative midpoints from published 2026 estimates of frontier-model serving cost.

100K tasks/day

~1,660 t CO₂/yr

saved vs vision agents — about 360 cars off the road.

1M tasks/day

~16,600 t CO₂/yr

~3,600 cars off the road. ~$415M / yr industry savings.

10M tasks/day

~166,000 t CO₂/yr

Small-town power-plant scale. ~$4.15B / yr saved.

What the spec looks like

A page declares its affordances at /.well-known/agent-affordances.json or inline via JSON-LD. Each affordance has stable IDs, action semantics, cost, reversibility, and trust class.

{
  "aal": "0.1",
  "page": "/checkout",
  "flow": { "id": "checkout", "step": 2, "of": 4 },
  "auth": "required",
  "affordances": [
    {
      "id": "submit-order",
      "selector": "[data-aal=submit-order]",
      "action": "purchase",
      "label": "Place Order",
      "destructive": true,
      "reversible": false,
      "trust": "financial",
      "cost": { "currency": "USD", "amount": 49.00 },
      "preconditions": ["cart.non_empty", "payment.attached"],
      "success_schema": {
        "order_id": "string",
        "confirmation_url": "string"
      }
    }
  ]
}

How to adopt

  1. Add stable data-aal attributes to the interactive elements you want agents to use.
  2. Publish a manifest at /.well-known/agent-affordances.json pointing to per-route fragments.
  3. Validate against a JSON Schema (shipped with the v0.1 launch repo).
  4. Test against a reference consumer. NEXUS, Stellarii's agent coordination platform, ships fetch_affordances and execute_affordance MCP tools.

How AAL relates to existing standards

  • vs WAI-ARIA: ARIA describes UI structure for assistive tech. AAL describes action semantics, cost, reversibility, and flow state.
  • vs llms.txt: llms.txt is for content discovery. AAL is for action discovery.
  • vs ai-agent.json: ai-agent.json declares site-wide agent permissions. AAL declares per-page affordances.
  • vs MCP: MCP replaces the GUI with an API. AAL annotates the GUI so agents can use it as humans do — cheaper, no per-site server required.

Help shape v0.1

The GitHub repository, spec file, and RFC discussions go public at launch. If you build browser agents, publish a site that agents already visit, or have opinions on action-discovery standards — get the heads-up.