| name | sandbox-execution-fallback |
| description | Recover from execute_code_sandbox failures by writing Python scripts to files and executing via run_shell |
Sandbox Execution Fallback
When to Use
Apply this pattern when execute_code_sandbox fails or times out, particularly for:
- Spreadsheet generation (pandas, openpyxl, xlsxwriter)
- Complex data processing with file I/O
- Tasks requiring external library imports
- Long-running computations that hit timeout limits
Recovery Procedure
Step 1: Capture the Python Code
Extract or reconstruct the Python code that failed in execute_code_sandbox.
Step 2: Write Code to File
Use write_file to save the script with a .py extension:
write_file(
path="script_name.py",
content="""
import pandas as pd
# Your implementation here
"""
)
Step 3: Execute via run_shell
Run the script using the system Python interpreter:
run_shell(command="python3 script_name.py")
Step 4: Verify Output
Confirm the results match expected outputs (files created, data processed correctly, etc.).
Complete Example
# Failed: execute_code_sandbox with pandas Excel generation
# Recovery - Step 1 & 2: Write script to file
write_file(
path="generate_pnl_report.py",
content="""
import pandas as pd
from openpyxl import Workbook
# Create sample data
data = {
'Category': ['Revenue', 'Expenses', 'Tax'],
'Amount': [10000, 3000, 500]
}
df = pd.DataFrame(data)
# Write to Excel
df.to_excel('pnl_report.xlsx', index=False)
print('Report generated: pnl_report.xlsx')
"""
)
# Step 3: Execute via shell
run_shell(command="python3 generate_pnl_report.py")
# Step 4: Verify file was created
run_shell(command="ls -la pnl_report.xlsx")
Why This Works
| Aspect | execute_code_sandbox | run_shell + write_file |
|---|
| Environment | Sandboxed, limited | Full system Python |
| File I/O | Restricted | Full access |
| Timeout | Strict limits | More flexible |
| Library Support | May be limited | System-installed packages |
| Result | Identical output | Identical output |
Best Practices
- Use descriptive filenames - e.g.,
generate_report.py, process_data.py
- Add error handling - Include try/except blocks in your script
- Print progress - Use print statements for debugging
- Clean up - Remove temporary scripts after successful execution if needed
- Verify results - Always confirm outputs before proceeding
Common Use Cases
- Excel/CSV report generation
- Data transformation pipelines
- Batch file processing
- API data aggregation
- Chart and visualization creation
Troubleshooting
If run_shell also fails:
- Check Python is available:
run_shell(command="python3 --version")
- Install missing packages:
run_shell(command="pip3 install pandas openpyxl")
- Check file permissions and paths
- Review stderr output for specific errors