Skip to content

A field guide

Agent-native: software for a new primary reader.

Agent-native software is software designed so an AI agent is a first-class user: it can discover the product, understand it, act in it, be limited inside it, and verify what happened, without a human translating. It is not a chatbot bolted on, and not a scraper in disguise.

Try the Agent switch up top. It shows this page the way an agent receives it.

refund_order()get_schedule()add_to_schedule()check_in_attendee()assign_room()approve_change()recall_memory()queue_task()get_receipt()dry_run()list_sessions()grant_scope()revoke_token()search_docs()

01

What does agent-native mean?

A product is agent-native when an autonomous agent can discover it, understand it, act in it, be limited inside it, and verify what happened.

The human is still in the loop, but at the points that matter: approval, oversight, and outcomes. Not at every click.

Cloud-native meant designing for the datacenter you actually run on. Mobile-native meant designing for a thumb and a small screen. Agent-native means designing for a reader that is fast, literal, tireless, token-limited, and has no eyes.

Three stages

Agent-bolted-onAgent-readyAgent-native
InterfaceChat widget over the same UI; agents drive a browserPublic API, partial coverageEvery capability is a tool, API, or CLI call; the UI is one client of many
DocsPDFs, videos, marketing pagesHuman docs plus an OpenAPI filellms.txt, clean Markdown, schemas with examples, tool descriptions written for models
AuthShared human login, CAPTCHAAPI keys, coarse scopesDelegated, scoped, revocable agent identities with spend and rate limits
ErrorsHTML pages, “something went wrong”JSON with a status codeCode, cause, fix, and a retryable flag
State changesFire and hopeSometimes idempotentIdempotency keys, dry-run, receipts
VerificationEyeball itLogs for engineersQueryable receipts; actor recorded as human or agent

02

What are the principles of agent-native design?

Eight properties. Select a card to see the bolted-on version next to the native one.

01

Parity

Anything a person can do, an agent can do.

Anything a person can do in the UI, an agent can do through a stable interface. If the only way in is a button, the product is not agent-native.

Bolted-on

A “Refund” button with no endpoint behind it.

Native

Refund is a tool; the button calls the same tool.

02

Legibility

The product describes itself.

Schemas, examples, and tool descriptions are written so a model can pick the right call without a human reading the docs first.

Bolted-on

Docs live in a video and a PDF. The agent guesses.

Native

Schemas, examples, and tool descriptions written for models, plus llms.txt.

03

Idempotent by default

Agents retry. Make retries safe.

Writes accept idempotency keys, costly actions offer dry-run, and side effects are stated up front.

Bolted-on

A timeout, a retry, and the customer is refunded twice.

Native

Idempotency key on every write; dry_run on costly calls.

04

Errors that teach

A good error is the next prompt.

Return a machine-readable code, the cause, a suggested fix, and whether a retry can succeed.

Bolted-on

“Something went wrong” in an HTML page.

Native

{code, cause, fix, retryable}. The agent corrects itself.

05

Scoped authority

Autonomy is granted in amounts.

Least privilege, delegated tokens, spend caps, and human approval gates for irreversible actions.

Bolted-on

The agent borrows the owner’s full-power login.

Native

Per-agent identity, narrow scopes, spend caps, approval on irreversible actions.

06

Verifiable

Every action leaves evidence.

Every action returns a receipt and lands in an audit log. Agents can check their own work, and humans can check the agents.

Bolted-on

No record of who or what clicked the button.

Native

A receipt per action and an audit log that records human vs agent.

07

Context-thrifty

Tokens are the new bandwidth.

Support pagination, field selection, and concise formats. Prefer Markdown to markup soup.

Bolted-on

A 4,000-row response and 90% markup.

Native

Pagination, field selection, Markdown, and summaries on request.

08

Composable

Small primitives beat grand platforms.

Small primitives with text in and text out (CLIs, files, narrow tools) that agents can chain in ways you did not plan for.

Bolted-on

One monolithic “do everything” endpoint.

Native

Narrow tools and CLIs with text in, text out, ready to chain.

03

Same task, three readers

Refund order #1042. An illustrative example, not a benchmark.

  1. 1Read tool schemarefund_order(order_id, amount, reason, dry_run, idempotency_key)
  2. 2refund_order(dry_run: true)preview: refund 80.00 to card ••4242
  3. 3refund_order(idempotency_key: "a1f9…")receipt: {refund_id: "rf_77", status: "succeeded"}
  4. 4get_refund("rf_77")verified: succeeded, actor: agent

04

What does an agent-native product look like?

Five layers, from being found to being trusted. The tools named here (llms.txt, AGENTS.md, MCP) are the current building blocks.

1Discover

llms.txt · AGENTS.md · Markdown pages · clean sitemap

2Describe

OpenAPI · JSON Schema · MCP tool definitions written for models

3Act

API · CLI · MCP server · packaged skills, with UI parity

4Authorize

Narrow scopes · per-agent identity · spend limits · approval gates

5Verify

Receipts · audit log · actor attribution · evals in CI

/llms.txt
# Acme Payments
> Payments API. Refunds, charges, disputes.
> Start with /docs/quickstart.md

## Docs
- [Quickstart](/docs/quickstart.md): first charge in 5 calls
- [Errors](/docs/errors.md): every code and its fix

## Optional
- [Changelog](/changelog.md)
An error an agent can act on
{
  "error": {
    "code": "refund_exceeds_balance",
    "message": "Refund 120.00 exceeds refundable 80.00.",
    "fix": "Retry with amount <= 80.00.",
    "retryable": false
  }
}

05

How agent-native is your product?

Twelve yes-or-no questions. One point each. Nothing leaves your browser.

06

Agent-washing: what to avoid

  • The corner chatbot that no other agent can call.
  • CAPTCHA walls in front of a legitimate workflow with no API behind them.
  • Docs as PDFs or video, or pages that only exist after JavaScript runs.
  • Errors as HTML pages.
  • OAuth that needs a human click on every call.
  • Infinite scroll as the only way to get a list.
  • The human’s full-power login handed to the agent “to keep it simple”.

07

How we got here

  1. 2023

    Function calling and plugins let models call developer-defined tools.

  2. 2024

    llms.txt is proposed as a model-readable site index; Anthropic introduces the Model Context Protocol.

  3. 2025

    AGENTS.md and agent skills spread as ways to hand agents project and procedural context; coding agents make “agent as user” routine.

  4. Now

    Products get judged on how well agents can use them, not just people.

Questions

Is agent-native just having an API?+

An API is necessary, not sufficient. Agent-native adds self-description, safe retries, teaching errors, scoped delegated authority, and verification.

Do humans get worse software when it is agent-native?+

No. Clear errors, undo, audit trails, and least privilege make products better for people too.

What is the difference between agent-native and AI-native?+

AI-native usually describes products that use AI inside the experience. Agent-native describes products that AI agents can operate: discoverable, callable, limited, and verifiable. A product can be either, neither, or both.

Where do I start making a product agent-native?+

Take the scorecard, pick the lowest-scoring principle, and fix it for your single most-used workflow.