How agents shop, buy, and refund
Muse, Instinct, and dots on one side. Businesses on the other. Today, the consumers, of which there are only a small share, are using computer use through personal servers in the cloud to surface your website. It's slow, token intensive, and server intensive.
Businesses will be looking to deliver an experience that is cheap -> expensive, where you start with documentation for the agent, then access to databases to run their own queries across a DB of products, prices, and inventory.
Then, if necessary the company's agent will help the other agent shop.
This could be a special offer - which the shopping agent will give to the human - or providing specialized fine tuned training on the problem the customer has.
Every agent will be different and agent to agent communication has a very interesting opportunity to create something better.
However, the agents need a human need to be solved to be put into motion. Agent 2 Agent communication will be much larger than human to agent or agent to agent.
One purchase as a conversation, then six measured runs
One purchase, agent to agent, with the two-cup promotion
Find me a 3 oz espresso cup under $25 that is in stock.
message to /store/a2a2 matches. Tide Espresso Cup (ECC-ESP-01), $24, 18 in stock. Lilac Espresso Cup (ECC-ESP-11), $25, 16 in stock. Promotion: 10% off the cup subtotal when an order has 2 or more cups.
- parse: 3 oz, price under $25, in stock
- filter 20 cups: 2 matches
- two-cup promotion applies at 2 or more cups
Buy one of each. Quote it first.
store.quoteSubtotal $49.00. Shipping $8.00 (free shipping starts at $50.00). Total $57.00. Two-cup promotion not applied yet: send promotionId "two-cup-10" to accept, saves $4.90.
- quote 2 cups: list subtotal $49.00
- shipping $8.00: list subtotal is under the $50 free-shipping line
- promotion two-cup-10 offered, not applied: saves $4.90
Accept the two-cup promotion and quote again.
store.quote with promotionId "two-cup-10"Subtotal $44.10 after the two-cup promotion (saves $4.90). Shipping $8.00. Total $52.10. Quote valid for 15 minutes.
- quote 2 cups with promotionId two-cup-10: list subtotal $49.00
- promotion two-cup-10 applied: -$4.90
- shipping $8.00: list subtotal $49.00 is under the $50 line
- total $52.10 = $44.10 + $8.00; quoteId issued
Check out at that quote with a test order.
store.checkout with promotionId "two-cup-10" and the quoteId from that quoteTest order placed, no real payment. Promotion applied: −$4.90. Subtotal $44.10, shipping $8.00, total $52.10 (was $57.00 at list price).
- quoteId checked: cart, promotion and total unchanged since the quote
- promotionId two-cup-10 accepted: -$4.90
- test order created; no payment captured
- total $52.10 = $44.10 subtotal + $8.00 shipping
Swipe tables horizontally to see total time →
Shaded cell = lowest value in each column, compared across routes within each task. Lower is better in every column.
Local purchase · choose the cheapest eligible 12 oz cup and complete a test order
| Route | Choose cup | Checkout | Agent start → confirmation | Visitor tokens* | Recording | Outcome |
|---|---|---|---|---|---|---|
| Browser-Only | 44.2 s | 22.1 s | 66.3 s | 202,356 | Video above | Pass |
| Files + browser | 49.9 s | 32.1 s | 82.0 s | 326,526 | Video above | Pass |
| Agent-native | 30.8 s | 4.2 s | 35.0 s | 42,086 | Video above | Pass |
Local refund · find TEST-1001 and return the eligible purchase
| Route | Find order | Refund action | Agent start → receipt | Visitor tokens* | Recording | Outcome |
|---|---|---|---|---|---|---|
| Browser-Only | 36.6 s | 6.5 s | 43.2 s | 106,132 | Not recorded | Pass |
| Files + browser | 50.9 s | 5.1 s | 56.0 s | 106,269 | Not recorded | Pass |
| Agent-native | 26.2 s | 4.1 s | 30.3 s | 32,069 | Not recorded | Pass |
Visitor token usage and API cost · GPT-6 Sol
Swipe table horizontally to see all token columns →
| Task · route | API cost* | Cached input | Uncached input | Output |
|---|---|---|---|---|
| Purchase · Browser-Only | $0.12 | 165,888 | 35,076 | 1,392 |
| Purchase · Files + browser | $0.14 | 293,120 | 32,070 | 1,336 |
| Purchase · Agent-native | $0.04 | 30,464 | 10,783 | 839 |
| Refund · Browser-Only | $0.06 | 86,528 | 18,659 | 945 |
| Refund · Files + browser | $0.05 | 96,512 | 8,593 | 1,164 |
| Refund · Agent-native | $0.02 | 28,672 | 2,714 | 683 |
*Cost uses GPT-6 Sol standard short-context rates per million tokens: $2.00 uncached input, $0.20 cached input, $10.00 output. No cache-write tokens were recorded.
Resources an agent can navigate
The 20-product ceramic store publishes one catalog through pages, files and an agent. llms.txt is the map; each line below is a place an agent can go next.
| Resource | What it holds | Used by |
|---|---|---|
llms.txt | Entry point: one-line description plus links to every other resource below. | Files + browser |
catalog.json | All 20 products with price, stock, capacity, glaze and care fields (15,971 bytes). | Files + browser |
catalog.md | The same catalog as a Markdown table. | Not recorded |
openapi.json | Describes two endpoints: /store/ask and /store/catalog.json. | Not recorded |
| Agent Card | Names the store agent and its three skills: find a cup, checkout, refund. | Not recorded |
/store/ask and /store/a2a | Question endpoint, and the JSON-RPC endpoint for store.checkout and store.refund. | Agent-native |
| Storefront, cart, orders | Rendered product pages, browser checkout and browser refund. | Browser-only; Files + browser |
llms.txt, as served
# WV Ceramics
> Useful objects, unexpected glazes.
This fictional store has 20 ceramic coffee cups. The storefront, Markdown, JSON, OpenAPI and agent all read one catalog.
- Human storefront: /store
- Full Markdown catalog: /store/catalog.md
- Full JSON catalog: /store/catalog.json
- OpenAPI: /store/openapi.json
- Find cups: JSON-RPC method message at /store/a2a
- Agent Card: /store/.well-known/agent-card.json
- A2A JSON-RPC: POST /store/a2a
- Product pages: /store/products/{slug}
- Cart and browser test checkout: /store/cart
- Test order lookup and browser refund: /store/orders
- Agent-native test checkout: JSON-RPC method store.checkout at /store/a2a
- Agent-native test refund: JSON-RPC method store.refund at /store/a2a
The catalog agent can search and compare products, prices, inventory and care. The benchmark tests browser checkout separately from the checkout skill. No real payment is processed.One catalog.json record
{
"sku": "ECC-ESP-01",
"name": "Tide Espresso Cup",
"capacityOz": 3,
"priceUsd": 24,
"stock": 18,
"dishwasherSafe": true,
"shipsInDays": 2,
"url": "/store/products/tide-espresso"
}Links are to the test store. “Used by” lists routes where the run read or called the resource; “Not recorded” means the run logs do not show it.