Use attachments
Upload a file through the attachment API, then list its id in the attachments array of your
run request:
{ "message": "Compare this with our renewal checklist.", "attachments": ["<attachment-id>"] }AXL appends a manifest of those files to the message, so the agent knows they exist and can
reach them. It does not read them for you - the agent calls the attachment_* tools to do
that, and attachment_stage puts a file into the sandbox for other tools to work on.
What each tool can extract depends on the file type:
- Supported images go straight to multimodal models as pictures. See Work with images.
- Markdown and plaintext are extracted directly.
- PDF and office documents need Tika configured in your deployment.
Say what you want done
Attaching a file does not describe a task, and an agent handed a contract with no instruction will summarize it.
Compare attaching the contract with no instructions to asking:
Compare this contract with our renewal checklist and list the missing terms.
The second gets a useful answer because it names the comparison, the reference, and the output shape.
Where uploads come from
Files arriving through a channel follow the same storage lifecycle once the adapter has fetched them, so an agent does not need to care whether a PDF came from Slack or from your application.
Next
- Return artifacts - the other direction.
- Work with images - what makes a picture actually reach the model.
- Configure storage - where uploads are kept.
- - current upload and run schemas.