What Agents Receive
Attachment support has three separate capabilities:- Attachment metadata: details such as a filename, content type, and size. These details do not guarantee access to the file content.
- File content: a supported media item arrives as a file part with a temporary download URL.
- Voice transcription: a separate text part contains any available transcript for an eligible voice recording.
Omitted or unavailable files
For eligible Slack audio, Telegram media, and X Chat messages, a failed file does not discard available text or other files. After bounded file processing, Aion supplies anattachment-processing-failed Data notice for unavailable content.
An attachment-only message can contain event data and a notice with no Text or File part. Existing trigger rules still
apply.
Disabled X Chat attachments produce attachments-disabled instead. These notices add context to the same agent request.
An agent can choose to explain the limitation. Aion does not create an empty File part or send an automatic explanation.
See NoticePayload for codes, the source URI, and SDK access.
A failed transcription of an available audio file uses the File part’s transcription metadata. It does not produce a
file-processing notice. Successful transcription arrives as a separate Text part with transcript metadata.
File Access
Aion stores supported media through the File Service. Download links are temporary. A message can remain in conversation history after access to its attached content expires. Treat attachments as untrusted content.Inbound Support
The Messaging feature support matrix lists current support for attachment metadata, content, and transcription. For provider-specific message behavior and examples, see Email, Slack, Telegram Bot, and Twitter / X.Outbound Files
Return an accessible HTTPS URL in an A2A file part, in a response message or artifact. See the Messaging extension for the protocol shape. Upload generated output through the File Service and use its read-grant URL. An authenticated content URL alone does not let a provider download the file. Native outbound delivery is Preview until live provider checks finish.
Inline binary file parts and
data: URLs are not part of this delivery path.
Aion logs an agent warning, skips those parts, and continues with other response content.
Use the SDK’s file provider to produce linked output before it reaches a distribution.
Limits and selection
- Email: attachments share a 30 MB limit. Files with unknown or excess size become links in the same reply.
- Telegram Bot: the file’s MIME type selects the native method. Photos allow up to 10 MB through upload. Other supported uploads allow up to 50 MB. Direct URL delivery has lower limits: 5 MB for photos and 20 MB otherwise. Telegram still enforces its format and image-dimension rules. Ordinary audio does not become a voice note.
- Slack: native files require a known length and allow up to 1 GB each. Workspace policy and the bot’s conversation access still apply.
- X public posts and ordinary DMs: images allow up to 5 MB and GIFs up to 15 MB. MP4 video depends on the account’s entitlement and X validation. A public reply uses the first eligible media group. A DM uses the first eligible native file. Aion warns about incompatible or extra native files and does not send additional posts or DMs.
-
X Chat: up to ten files, with a 20 MiB limit per file. Text and files can use separate Chat messages.
Incoming files require the Distribution’s
Chat Attachmentsfield to beFile Service. The default isDisabled. Chat file failures do not become source links. The response fails even if earlier output succeeds. - SMS/MMS: the final text and images share a 5 MB limit. Aion evaluates the complete response, not each image alone. Other files and images that exceed the budget become links. The text retains its 1,600-character limit.
Provider permissions
Slack native uploads require the bot’s optionalfiles:write OAuth scope. Without it, Aion sends file links and keeps
ordinary text delivery. A file-only action that must open a Slack DM also needs im:write.
See Slack provider permissions.
X native uploads require media.write, plus the post or DM permissions.
Reauthorize a connected account to grant a new scope. Without media.write, public-post and ordinary-DM files remain
links.
Encrypted Chat uploads also require media.write. Without it, Chat file delivery fails and text remains available.
Chat does not fall back to file links. These are provider OAuth scopes, not Aion File Service permissions.