You can provide files to your agent by uploading them through the Files API and mounting them in the session's sandbox.
First, upload a file using the Files API:
file = client.beta.files.upload(file=Path("data.csv"))
print(f"File ID: {file.id}")Mount uploaded files into the sandbox by adding them to the resources array when creating a session:
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
resources=[
{
"type": "file",
"file_id": file.id,
"mount_path": "/data.csv",
},
],
)With the preceding mount_path, the agent reads the file at /mnt/session/uploads/data.csv (see File paths).
A new file_id is created that references the instance of the file in the session. These copies do not count against your storage limits.
Mount multiple files by adding entries to the resources array:
resources = [
{"type": "file", "file_id": "file_abc123", "mount_path": "/data.csv"},
{"type": "file", "file_id": "file_def456", "mount_path": "/config.json"},
{"type": "file", "file_id": "file_ghi789", "mount_path": "/src/main.py"},
]A maximum of 500 files is supported per session.
You can add or remove files from a session after creation using the session resources API. Each resource has an id returned when it is added (or listed), which you use for deletes.
resource = client.beta.sessions.resources.add(
session.id,
type="file",
file_id=file.id,
)
print(resource.id) # "sesrsc_01ABC..."List all resources on a session with resources.list. To remove a file, call resources.delete with the resource ID:
listed = client.beta.sessions.resources.list(session.id)
for entry in listed.data:
print(entry.id, entry.type)
client.beta.sessions.resources.delete(resource.id, session_id=session.id)Use the Files API to list files scoped to a session and download them.
# List files associated with a session
files = client.beta.files.list(
scope_id="sesn_abc123",
betas=["managed-agents-2026-04-01"],
)
for file in files:
print(file.id, file.filename)
# Download a file
content = client.beta.files.download(files.data[0].id)
content.write_to_file("output.txt")The agent can work with any file type, including:
.py, .js, .ts, .go, .rs, and others).csv, .json, .xml, .yaml).txt, .md).zip, .tar.gz) - the agent can extract these using bashmount_path of /data.csv places the file at /mnt/session/uploads/data.csv in the sandboxmount_path, the file is placed at /mnt/session/uploads/<file_id>/)Was this page helpful?