Description
Currently, each tool invocation that uses the sandbox (e.g., code interpreter) starts from a clean or fixed initial state. This forces users to:
- Re-declare variables, re-import libraries, or re-upload data in every turn
- Avoid multi-step coding workflows (e.g., “load data → plot → refine”)
- Work around state loss with brittle workarounds (e.g., concatenating all code into one block)
To enable interactive, stateful programming sessions (like Jupyter Notebook), we propose adding sandbox snapshot support:
After a successful code execution, the sandbox can save its current runtime state (e.g., Python globals, installed packages, file system changes).
Subsequent calls can resume from that snapshot, preserving context across turns.
This is especially valuable for:
- Data analysis agents
- Long-running agent workflows with iterative coding