You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Propose standardizing an _meta.imageCapability field on the initialize response that lets agents advertise their own image-handling capabilities to clients. Per the RFD: Meta Field Propagation Conventions, _meta is the spec-blessed extension point; this proposes promoting a vendor-namespaced extension to a standard sub-key.
maxBytes (uint): hard upper bound this agent will accept for a single image.
maxDimension (uint): hard upper bound on either edge in pixels.
downsampleTargetBytes (uint): the agent's recommended target — clients may pre-downsample to this size, but the agent will still accept up to maxBytes.
autoHandlesOversized (bool): when true, the agent internally downsamples / describes oversized images; the client should NOT pre-compress beyond its own UX preferences.
autoHandlesWrongModel (bool): when true, the agent internally routes images through a VLM if the active model is text-only; the client should NOT surface a 'model does not support images' error.
The existing agentCapabilities.promptCapabilities.image: boolean stays as the binary opt-in; this extension is for the richer, per-agent operational details.
Why standardize
Two implementations ship this design today: Qwen Code's vision-bridge-service.ts already routes images through a designated vision model when the active model is text-only (with per-turn cap, timeout, and configurable per-provider vision model). sudocode just shipped the same shape via runtime::image_registry::capability() + vlm_describe.rs.
Clients currently can't right-size: without an advertised cap, ACP clients either hardcode conservative defaults (under-utilising frontier vision models) or send raw bytes and let the backend reject (bad UX on the failure side).
Audio is the obvious extension: an _meta.audioCapability of the same shape will be needed when audio-multimodal agents proliferate (e.g. transcription proxies). Standardizing the shape NOW gives that work precedent.
Forward-compat: _meta.audioCapability
Same five fields apply (maxBytes, maxDimension → maxDurationMs, etc). Mentioning here so the field-naming convention scales.
The proposal may need explicit units and aggregation semantics: whether maxBytes applies per image or per request, and whether maxDimension is checked before or after orientation metadata. It would also help to define client behavior when fields are absent, contradictory, or added by a newer agent. A capability version or named transformation modes might age better than two booleans if routing and downsampling behavior expands.
Activity
hiSandog commentedon Jul 11, 2026
The proposal may need explicit units and aggregation semantics: whether
maxBytesapplies per image or per request, and whethermaxDimensionis checked before or after orientation metadata. It would also help to define client behavior when fields are absent, contradictory, or added by a newer agent. A capability version or named transformation modes might age better than two booleans if routing and downsampling behavior expands.