Workspaces
A workspace gives an agent its own persistent filesystem — files written during one conversation are still there on the next run, and across different users of the same agent. Storage is backed by S3 and scoped per agent, so agents never share or interfere with each other’s files.
Enabling a workspace
Open an agent → Workspace tab → toggle on. The agent is provisioned with a managed S3 prefix immediately — no credentials required.
Once enabled, the agent gains access to all file operations listed below and can use them during any conversation.
Storage providers
Managed S3
The platform manages storage on your behalf. No configuration needed — files are stored under a platform-owned bucket at an agent-specific prefix (/agents/<agentId>/). Ideal for getting started quickly.
Custom S3
Bring your own bucket or any S3-compatible service (MinIO, Cloudflare R2, Backblaze B2, etc.).
| Field | Required | Description |
|---|---|---|
| Endpoint | No | Leave blank for AWS S3. Set for S3-compatible services (e.g. https://s3.eu-central-1.wasabisys.com) |
| Region | Yes | AWS region string, e.g. us-east-1 or eu-west-2 |
| Bucket | Yes | The bucket name — must already exist and be accessible |
| Access key ID | Yes | IAM or service account key with the permissions below |
| Secret access key | Yes | The corresponding secret |
Required IAM permissions for the access key:
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
File operations
The agent can perform the following operations on its workspace:
| Operation | Signature | Description |
|---|---|---|
| Read | readFile(path) | Returns the full contents of a file as a string |
| Write | writeFile(path, content) | Creates or overwrites a file |
| Append | appendFile(path, content) | Appends content to the end of an existing file |
| Delete | deleteFile(path) | Permanently deletes a file |
| Copy | copyFile(src, dest) | Copies a file to a new path |
| Move | moveFile(src, dest) | Moves or renames a file |
| Create directory | mkdir(path) | Creates a directory (and any missing parents) |
| Delete directory | rmdir(path) | Recursively deletes a directory and all its contents |
| List directory | readdir(path) | Returns a list of files and subdirectories at the given path |
| Check existence | exists(path) | Returns true if the path exists |
| File metadata | stat(path) | Returns size (bytes), createdAt, modifiedAt, and type (file or directory) |
All paths are relative to the agent’s workspace root. The agent cannot escape its own prefix — paths like ../../other-agent/ resolve within the sandbox.
Use cases
- Code generation — write generated scripts to
/outputs/, reference them in follow-up turns - Long document processing — read a large file in chunks, append a running summary to
/summaries/ - Multi-turn data collection — accumulate structured data across conversations into a JSON file, then process it in a later turn
- Configuration — store user preferences or agent configuration between sessions
Bash execution
Shell execution is coming soon. Agents will be able to run bash commands inside a sandboxed environment with full read/write access to their workspace — enabling code execution, script running, and file transformation pipelines.