Currently, only the "Research" assistant (as far as I know), is capable of generating actual files, although that's limited to images only and they expire after 10 minutes. The underlying agent is technically capable of generating other types of content in its sandbox environment (e.g. PDF, CSV, etc.), but there isn't a mechanism to allow that content to persist, yet alone be shared with the user.
I propose giving users the ability connect their personal S3-compatible/blob storage accounts to the assistant and have it utilize that during the session.
Some benefits might include:
- persistent file and image storage for users with personal object storage accounts
- reduced demand on Kagi's own storage resources and related vendor costs
- the ability to keep and reuse material between assistant sessions (e.g. helper scripts), even opening up possibilities for more advanced agentic workflows
- allowing users to leverage the multi-modal output capability of models that natively provide it , rather than limiting this functionality to the Research assistant and its sandbox environment.
I've successfully tested this with my own MEGA S4 object storage account. After creating a test bucket, a IAM sub-user for the assistant, and defining a limited "write-only" policy for the bucket, I was able to have the assistant generate a PDF file and send it to the bucket after providing it with the endpoint details and bucket keys. Although there are likely security implications, it seems plausible that something like this could be implemented simply by inserting the storage parameters into the custom instructions at the start of each session. In my own case, I limited the scope to a single test bucket with a conservative access policy just for the purposes of this experiment.
The following suggestion is related, but seems to be directed at consumer cloud storage services (e.g. Google, Dropbox) rather than S3/blob storage:
https://kagifeedback.org/d/8165-allow-connecting-a-storage-solution-for-eg-the-assistants-generated-images