Skip to content

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:

  1. Vision input — The image is sent directly to the AI model as a visual block, allowing the agent to "see" and understand the image
  2. Auto-description — A text description of the image is generated and saved as *_described.txt for 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:

  1. Text is extracted from all pages
  2. The extracted text is saved as *_extracted.txt
  3. 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:

  1. Column names and data types are detected
  2. Sample rows are extracted
  3. A summary is saved as *_summary.txt
  4. 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 context

Storage ​

  • 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