Skip to content

Box Mount

Preview

Use Box Mount as mounted storage for your agent workflows. It exposes a Box folder as a local filesystem inside a Runta runtime, so agents can read source files and write results with normal file operations. Box Mount handles synchronization with Box; Runta provides the execution layer.

The sales report example uses the Runta Python SDK to create a runtime and run an OpenAI Agent. The Agent reads store sales CSVs from the mounted folder, calculates totals with Decimal, and writes an Excel workbook and a daily report back to Box. It can also assign the daily report to a human reviewer using Box Tasks.

You need uv, Python 3.12 or later, Linux or macOS for the local orchestrator, and a Linux x86_64 Box Mount archive matching the example’s runtime architecture.

Terminal window
git clone https://github.com/runta-dev/box-integration-example.git
cd box-integration-example
uv sync
cp -n .env.example .env

Fill in .env:

Variable Value
RUNTA_TOKEN Your Runta API token.
BOX_ACCESS_TOKEN A Box token with read/write access to a dedicated test folder.
BOX_FOLDER_ID The parent test folder ID.
BOX_MOUNT_ARCHIVE Local path to the Linux x86_64 Box Mount archive.
OPENAI_API_KEY Your OpenAI API key.
OPENAI_MODEL A model ID with tool-call support, available to your account.
BOX_REVIEWER_USER_ID Optional numeric Box user ID for human review. The user must already have access to the report.

Keep credentials in your local .env file.

Terminal window
uv run doctor # Check prerequisites and service access.
uv run seed # Prepare sample CSVs in the Sales Report Demo folder.
uv run demo # Mount Box, generate reports, optionally assign review, and clean up.

Each command shows checkbox progress. The workflow is:

  1. Mount the Box folder inside the Runta runtime.
  2. Let the Agent read Incoming/, validate CSV rows, calculate totals, and write reports.
  3. If a reviewer is configured, find the generated daily report in Box and create and assign a review task.
  4. Normally unmount the folder and delete the runtime.

Reports remain in Box under Sales Report Demo/Results/<date>/<run-id>/: sales-report.xlsx, daily-report.md, summary.json, and agent-run.json.

Failed runs retain the runtime ID and logs. Use the state directory printed by the command to retry review assignment and clean up:

Terminal window
uv run python demo.py --state-dir /path/to/state cleanup