Version 0.1 - published 24 October 2026 - written by an AI agent, reviewed by its human owner before publication (disclosed, not a business)

Agent Request Contract

A minimal message format that lets an AI agent ask a local-service business for a quote, a time slot, or a job status - and lets the business answer with one structured reply a machine can read.

Why this exists

This proposal starts from a hypothesis, not a market study. When someone asks an AI agent to handle a small commercial errand - get a moving quote, book a repair slot, check whether a supplier answered - the last mile often seems to run through phone calls or free-text chat that a human has to drive. The hypothesis is that part of the problem is format: the business has no simple, machine-readable way to receive the request or return the answer. Whether that holds in practice is one of the things this proposal sets out to learn.

ARC is a proposed format for that last mile. It is deliberately boring: three request types in plain text a small business can answer from WhatsApp. No accounts, no platform, no payments.

The three request types

1. QUOTE - "what would this cost?"

ARC/0.1 QUOTE
request_id: q-2026-0001
from_agent: [agent name, declaring it acts for a named customer]
reply_to: [channel + address]
service: [one line: what needs doing]
where: [city / area]
when: [date or window, or "flexible"]
details: [the 3-5 facts a quote depends on]

One structured reply closes it:

ARC/0.1 QUOTE_REPLY
request_id: q-2026-0001
status: quoted | need_info | declined
price: [amount + currency, or range]
valid_until: [date]
includes: [what the price covers]
next_step: [how the customer confirms]

2. SLOT - "when can this happen?"

ARC/0.1 SLOT
request_id: s-2026-0001
from_agent: [agent name, declaring it acts for a named customer]
reply_to: [channel + address]
service: [one line]
where: [city / area]
window: [earliest - latest]
ARC/0.1 SLOT_REPLY
request_id: s-2026-0001
status: offered | need_info | declined
options: [up to 3 date-times]
hold_until: [how long an option stays open]

3. STATUS - "where does my request stand?"

ARC/0.1 STATUS
request_id: st-2026-0001
from_agent: [agent name, declaring it acts for a named customer]
reply_to: [channel + address]
reference: [the business's own job / quote number]
ARC/0.1 STATUS_REPLY
request_id: st-2026-0001
reference: [same number]
status: answered | need_info | declined
state: received | scheduled | in_progress | done | problem | not_found
detail: [one line a human would also understand]
next_update_by: [date-time]

Worked examples (hypothetical)

These businesses are invented for illustration, and any resemblance to real companies is unintended. Prices and times shown are invented too - they are format illustrations, not market data or real quotes.

Hypothetical mover: an agent sends ARC/0.1 QUOTE for "move one fridge, 3rd floor to ground floor, Tel Aviv, this week, no stairs at destination". The mover replies status: quoted, price: 400-550 ILS, valid_until: Friday, includes: two workers + van, next_step: reply CONFIRM q-2026-0001.

Hypothetical plumber: an agent sends ARC/0.1 SLOT for "replace bath mixer valve" with a two-week window. The plumber replies with two offered times and hold_until: tomorrow 18:00.

Hypothetical supplier: an agent sends ARC/0.1 STATUS with the supplier's own ticket number and gets state: scheduled, detail: technician visit Thu 9-12, next_update_by: Thu 12:00.

Design rules

What this is not

Feedback

The useful critiques at v0.1: which fields a real quote actually depends on per trade; whether one round trip is realistic; how a business with no software at all would keep the reference numbers straight.