unstale

pypi / ag-ui-protocol

ag-ui-protocol

What changed in ag-ui-protocol 0.0, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

12 breaking9 new APIs and options1 behavior and defaults

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

ag-ui-protocol 0.022 changes

Breaking changes 12

  • Patch entries are typed operation models rather than dictionaries; read fields with attributes or convert models using model_dump(by_alias=True).

    0.0.0upgrade guide

  • BinaryInputContent is no longer a valid content part; messages carrying one are rejected during RunAgentInput validation. Use media parts instead.

    0.0.0upgrade guide

  • Negative max_execution_time values are rejected.

    0.0.0upgrade guide

  • Negative max_iterations values are rejected.

    0.0.0upgrade guide

  • MetadataMixin is no longer exported; custom models that used it should inherit ConfiguredBaseModel and declare metadata.

    0.0.0upgrade guide

  • The field is renamed from sub_agents to subagents, and the wire key is subagents; the old field and wire key are not retained.

    0.0.0upgrade guide

  • A 1.0 producer must declare its protocol version on RUN_STARTED; Python producers pass PROTOCOL_VERSION when constructing the event.

    0.0.0upgrade guide

  • Patch entries are typed operation models rather than dictionaries; read fields with attributes or convert models using model_dump(by_alias=True).

    0.0.0upgrade guide

  • SubAgentInfo is renamed to SubagentInfo; the old class name remains exported as an alias for one release.

    0.0.0upgrade guide

  • Python producers must emit REASONING_* events; there is no producer-side compatibility shim for the retired THINKING_* events.

    0.0.0upgrade guide

  • Tool call result content can now be a string or a list of ContentPart values; code that assumes a string must narrow it first.

    0.0.0upgrade guide

  • Tool message content can now be a string or a list of ContentPart values; code that assumes a string must narrow it first.

    0.0.0upgrade guide

New APIs and options 9

  • InputContent is renamed to ContentPart; the old name remains exported from ag_ui.core as an alias.

    0.0.0upgrade guide

  • Content parts gain an optional id field.

    0.0.0upgrade guide

  • InputContentDataSource is renamed to DataSource; the old name remains exported as an alias.

    0.0.0upgrade guide

  • PartSource gains a FileSource variant for a provider-issued handle to bytes already uploaded; consumers must not treat its value as a URL.

    0.0.0upgrade guide

  • ImageInputContent is renamed to ImagePart; the same naming change applies to audio, video, and document parts, and old names remain aliases.

    0.0.0upgrade guide

  • InputContentSource is renamed to PartSource; the old name remains exported as an alias, and PartSource also gains a FileSource arm.

    0.0.0upgrade guide

  • TextInputContent is renamed to TextPart; the old name remains exported from ag_ui.core as an alias.

    0.0.0upgrade guide

  • TextPart gains optional metadata, matching the media parts.

    0.0.0upgrade guide

  • InputContentUrlSource is renamed to UrlSource; the old name remains exported as an alias.

    0.0.0upgrade guide

Behavior and default changes 1

  • Fields with no value are omitted from JSON instead of written as null; readers checking for absent fields must test whether the key exists.

    0.0.0upgrade guide