File Systems
Persistent file storage for agent workspaces with S3-compatible API, per-agent isolation, and zero egress fees via S3-compatible storage.
What are File Systems?
File Systems provide persistent, isolated storage for AI agent workspaces. Each agent or workflow gets its own namespace where it can upload, download, list, and delete files that persist across sessions.
Under the hood, storage is backed by S3-compatible storage — an S3-compatible object store with zero egress fees.
Key Features
- Per-agent workspaces — Isolated file namespaces scoped to each agent or workflow
- S3-compatible API — Familiar interface for upload, download, list, and delete
- Zero egress fees — Download files without paying egress charges
- Persistent storage — Files survive sandbox teardowns and session restarts
- Metadata support — Attach custom key-value metadata to any file
- Presigned URLs — Generate time-limited download links for sharing
- Automatic cleanup — Configure TTLs to auto-expire temporary files
When to Use File Systems
| Use Case | Example |
|---|---|
| Agent output storage | Save generated reports, CSVs, or images |
| Intermediate results | Pass data between sandbox sessions |
| Document processing | Upload user files, process them, store results |
| Screenshot archives | Store browser screenshots for later analysis |
| Template storage | Keep reusable templates agents can access |
How It Works
Your Agent
|
v
tx.files.upload({ workspace: 'agent-123', ... })
|
v
+---------------------------+
| S3-compatible storage |
| - S3-compatible |
| - Per-workspace isolation |
| - Zero egress fees |
| - Global edge caching |
+---------------------------+
|
v
tx.files.download({ workspace: 'agent-123', key: '...' })
- Upload — Store files in a named workspace
- Access — Download, list, or generate presigned URLs
- Clean up — Delete individual files or expire them automatically
Storage Limits
| Resource | Default | Maximum |
|---|---|---|
| File size | 100 MB | 5 GB (multipart) |
| Files per workspace | Unlimited | Unlimited |
| Workspaces | Unlimited | Unlimited |
| Storage per org | 10 GB (Free) | Unlimited (Pro/Enterprise) |
| Metadata per file | 2 KB | 8 KB |
Workspace Isolation
Every file operation is scoped to a workspace. Workspaces are isolated from each other — an agent can only access files in its own workspace.
// Agent A's workspace
await tx.files.upload({ workspace: 'agent-a', key: 'report.pdf', body: buffer });
// Agent B cannot access Agent A's files
await tx.files.download({ workspace: 'agent-b', key: 'report.pdf' });
// Error: File not foundYou can also use workspaces to organize files by task, session, or user:
await tx.files.upload({ workspace: 'task-456', key: 'input.csv', body: data });
await tx.files.upload({ workspace: 'task-456', key: 'output.json', body: result });Pricing
| Tier | Storage | Operations |
|---|---|---|
| Free | 10 GB included | 100,000 ops/month |
| Pro | $0.015/GB/month | 1,000,000 ops/month included |
| Enterprise | Custom | Volume discounts |
All tiers include zero egress fees.
Next Steps
- Quickstart — Upload and retrieve files
- Architecture — How file systems fit into the agent platform
- Sandboxes — Combine file storage with sandbox execution