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