Attachments
GradientHarbor supports file attachments in chat conversations. Attached files are processed automatically and made available as context for the AI agent.
Supported File Types
Images (PNG, JPG, etc.)
Images are processed in two ways:
- Vision input — The image is sent directly to the AI model as a visual block, allowing the agent to "see" and understand the image
- Auto-description — A text description of the image is generated and saved as
*_described.txtfor reference in later conversation turns
Use cases:
- Share a screenshot of a report or chart you want to replicate
- Show the agent a data visualization you'd like to recreate
- Provide visual context for your question
PDF Files
PDFs are automatically processed using text extraction:
- Text is extracted from all pages
- The extracted text is saved as
*_extracted.txt - The text is available as context for the agent
Use cases:
- Upload a report and ask questions about the data mentioned
- Share documentation for context
- Extract tables or figures from PDF reports
CSV Files
CSV files are processed with schema detection and summarization:
- Column names and data types are detected
- Sample rows are extracted
- A summary is saved as
*_summary.txt - The data is queryable via the built-in DuckDB connector
Use cases:
- Quick analysis of spreadsheet exports
- Compare CSV data against your connected databases
- Prototype queries before connecting a production database
How to Attach Files
Drag and Drop
Drag files directly onto the chat input area. Multiple files can be attached at once.
Click to Upload
Click the attachment button (paperclip icon) in the chat input to open a file picker.
Processing Pipeline
All attachments go through this pipeline at the start of each agent run:
File Upload (S3 presigned URL)
│
▼
Finalize via GraphQL
│
▼
Process by Type:
├─ Image → Vision block + described.txt
├─ PDF → Extracted text → extracted.txt
└─ CSV → Schema + sample → summary.txt
│
▼
Stored as ChatAttachment records
│
▼
Available to agent as contextStorage
- Files are uploaded directly to S3 via presigned URLs (browser → S3)
- Derived text artifacts (descriptions, extractions, summaries) are stored alongside the original files
- All attachments are scoped to the chat conversation and organization
- S3 lifecycle: files transition to Intelligent-Tiering after 7 days and expire after 60 days