The machine-readable schema, its address, and how to use it — draft
Draft — not yet ratified. Published for review. The address below is
stable for the draft, but the draft’s contents change without notice. Pin a
frozen version once one exists.
The schema is authoritative for structure: which fields exist, which are
required, what type each carries, and which values a discriminator may take.
This page is where to fetch it.
The complete draft schema — every event, message, and the run input.
https://ag-ui.com/spec/draft/schema.json
The file states that address in its own $id, so a validator that follows
references resolves them against it without configuration. The address serves
the file directly: no redirect stands between a tool and the schema, and the
response carries a cross-origin header so a browser-based tool can read it.It is JSON Schema draft 2020-12.
Every definition is reachable by anchor — #TextMessageStartEvent,
#RunAgentInput — so a tool can address one shape without slicing the file.
Validate an event against the whole schema and let the discriminator select the
member, or validate against a single anchor when you already know the shape.The schema is strict where the protocol is strict: it closes the objects whose
shape it fixes, so a validator run against it rejects material the protocol does
not describe. Objects that are open by design stay open — metadata and the
JSON Patch operations among them — because the protocol carries whatever a
consumer puts there. That strictness is for authoring and for tests. A runtime consumer
does the opposite — it accepts unrecognised material and strips it, as
Processing model requires. Do not
wire the strict schema into a receive path and call the result conformance.
Ordering, lifecycle, attribution, error handling and compatibility are
behavioural, and no JSON Schema can express them. They are specified in the
other pages of this document, starting at the overview.