S3 User Files
Per-user persistent file storage backed by AWS S3. Each user's files are stored in an isolated namespace — no cross-user data leakage.
Important
Always use the user_id from the system prompt when calling these tools. Never hardcode or guess a user_id. The system provides it automatically.
Usage
read_user_file
Read a file from the user's persistent storage.
node {baseDir}/read.js <user_id> <filename>
user_id(required): The user's unique identifier (e.g.,telegram_12345)filename(required): The file name to read (e.g.,IDENTITY.md)
write_user_file
Write content to a file in the user's persistent storage.
node {baseDir}/write.js <user_id> <filename> <content>
user_id(required): The user's unique identifierfilename(required): The file name to writecontent(required): The text content to write
list_user_files
List all files in the user's persistent storage.
node {baseDir}/list.js <user_id>
user_id(required): The user's unique identifier
delete_user_file
Delete a file from the user's persistent storage.
node {baseDir}/delete.js <user_id> <filename>
user_id(required): The user's unique identifierfilename(required): The file name to delete
From Agent Chat
- "Save my preferences" -> write_user_file with the user's preferences
- "What do you remember about me?" -> read_user_file to check stored notes
- "What's your name?" -> read_user_file IDENTITY.md for this user
- "Forget everything about me" -> delete_user_file on each stored file
- "What files do you have for me?" -> list_user_files
Security Notes
- Files are isolated per user via S3 key prefix:
{user_id}/{filename} - user_id uses underscores (e.g.,
telegram_12345) — colons are replaced - Content encrypted at rest via S3 server-side encryption
- Bucket enforces SSL-only access
- Path traversal attempts are sanitized (removes
.., restricts characters) - Never use
default_useras user_id — scripts reject it with an error
