- Duale AI
- Documentation
- Model Routing
- Image Support
Image Support: route limits and note replacement
Describes how to configure a route to carry images in Library Tool Results and when Duale AI replaces an image with a short note.
This page covers image delivery checks, route requirements, profile budgets, replacement conditions, and recovery options for Library Tool Result images.
- Image delivery checks for provider requests.
- Route requirements for carrying images in Tool Results.
- Image profile limits and provider ceilings.
- Conditions that replace an image with a note.
- Recovery options for a dropped image.
Summaries were generated by AI.
Image Support covers images inside Library Tool Results: the images of a Library document that a Task reads. A request cannot attach an image directly as model input. Use this reference to configure a route that can carry images and to predict when the model receives a short note instead of an image.
What decides whether an image reaches the model
Duale AI checks each image again for every provider request that would carry it.
Check whether the route can carry an image
Both checks must pass before an image can reach the model:
- The route carries an Image Support profile. Absent means no image is ever sent to that model.
- The provider type can carry an image inside a Tool Result. Anthropic, AWS Bedrock, OpenAI Responses, and Mistral can. Other provider types, including Microsoft Foundry and DashScope Qwen, send no image bytes.
On Mistral, enable the profile only after verifying that the selected endpoint accepts Tool Result images.
These conditions also affect route choice. When at least one route can carry at least one image, Duale AI uses only routes that can carry at least one. When no route can, all routes remain available and every image is replaced by a note.
The Image Support form appears on every provider type. You can therefore save a profile on a route that cannot receive an image. A saved profile alone does not prove that the provider type carries images.
Every provider request carries its included images in full. Duale AI stores no file at the provider; see Data protection for the provider-retention boundary.
Set the image profile and budget
The profile needs three values: images per request, bytes per image, and the largest width or height in pixels. The form accepts 1 to 1,000 images, up to 128 MiB per image, and up to 65,535 px. Enter limits verified on the selected endpoint. The ceilings below can tighten those values.
Duale AI applies its own ceilings on top of your profile. A ceiling can only tighten your values, never raise them:
Images per request
| Anthropic | AWS Bedrock | OpenAI Responses | Mistral |
|---|---|---|---|
| 100 | 20 | Your profile only | Your profile only |
Bytes per image
| Anthropic | AWS Bedrock | OpenAI Responses | Mistral |
|---|---|---|---|
| 7,500,000 | 3,750,000 | Your profile only | Your profile only |
Long-edge rule
| Anthropic | AWS Bedrock | OpenAI Responses | Mistral |
|---|---|---|---|
| Above 20 images, the limit drops to 2,000 px | None | None | None |
Request ceiling
| Anthropic | AWS Bedrock | OpenAI Responses | Mistral |
|---|---|---|---|
| 28,000,000 bytes | 20,000,000 bytes | None | None |
A Request ceiling counts the whole provider request, not only its images. A long Task history leaves less room for images in the same request.
One more limit applies to every provider request, on every provider type, and is not in the table: about 42.9 MiB of image files in one request. Above it, Duale AI replaces the oldest images with a short note until the request fits, keeping the newest. On OpenAI Responses and Mistral routes, use your profile to express the remaining limits of the selected endpoint.
An OpenAI Responses route also carries Image Detail. low requests low detail; auto and high
both request high detail. The selected endpoint determines image processing and billed tokens.
Budget image workloads using measured input-token usage and configured prices. Duale AI estimates image tokens to fit each request into the context window. Usage that the provider bills can differ, so validate it with representative images on the selected endpoint.
When an image is replaced by a note
Duale AI replaces an image with a short note and can still return a successful answer from text in these cases:
- The selected route cannot carry images: every image is replaced.
- One image exceeds a byte or dimension limit for one image, or cannot fit the request by itself: that image is replaced.
- The request exceeds the image count, the request ceiling of the provider type, or the total image limit: the oldest images are replaced, keeping the newest.
- The source document no longer exists, or its image reference or bytes are permanently invalid or corrupt: that image is replaced.
- The Agent Identity of the Task can no longer read the Library that holds the image, including for an image from earlier work or a parent Task: that image is replaced. The Grant rule describes this check.
Above 20 images on an Anthropic route, the same oldest-first rule applies. While any image exceeds the tightened 2,000 px long edge, Duale AI replaces the oldest images, whatever their size, until 20 remain or none exceeds that edge. It never makes an image smaller.
Every route receives the same short note in place of a removed image, in every provider request where the image is unavailable. Text derived from that image, such as recognized characters or a caption, stays, as does text extracted from the document itself. Each provider request makes its own image selection. Replacing an image in one request does not rewrite the stored Task history or stop a later request on an image-capable route from carrying it.
A temporary failure to read an image is not a replacement. Duale AI retries it like a provider outage.
Restore a dropped image
Ask for a value that only the image carries, and check it against a source outside the model. To restore a dropped image, bring it under the limits: read the document at a lower resolution, or split a document that exceeds the count or request ceiling across several requests.