OpenSpace sandbox-execution-fallback-717e65
Fallback from execute_code_sandbox to file-based run_shell execution when sandbox fails
install
source · Clone the upstream repo
git clone https://github.com/HKUDS/OpenSpace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/OpenSpace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/gdpval_bench/skills/sandbox-execution-fallback-717e65" ~/.claude/skills/hkuds-openspace-sandbox-execution-fallback-717e65 && rm -rf "$T"
manifest:
gdpval_bench/skills/sandbox-execution-fallback-717e65/SKILL.mdsource content
Sandbox Execution Fallback
When to Use
Apply this pattern when
execute_code_sandbox fails repeatedly or exhibits instability. Common triggers include:
- Sandbox returns errors after 2-3 retry attempts
- Error messages indicate provider/system issues rather than code bugs
- Execution times out or hangs inconsistently
- Complex multi-step code with file I/O is needed
- Better error visibility and debugging is required
Procedure
Step 1: Detect When to Switch
Recognize the failure pattern:
produces repeated errors despite code correctionsexecute_code_sandbox- Error output suggests infrastructure issues (not syntax/logic errors)
- The sandbox environment appears unstable or limited
Step 2: Write Python Script to File
Use
write_file to save your script:
write_file( path="script.py", content="#!/usr/bin/env python3 # Your Python code here import sys print('Executing via file-based approach') # ... rest of your code " )
For multi-file projects, write each file separately:
write_file(path="utils.py", content="# Utility functions\ndef helper(): ...") write_file(path="main.py", content="from utils import helper\nhelper()")
Step 3: Execute via Shell
Run the script using
run_shell:
run_shell(command="python3 script.py")
For scripts in subdirectories:
run_shell(command="cd mydir && python3 script.py")
Step 4: Handle Output and Clean Up
- Parse stdout/stderr from
outputrun_shell - Inspect created files directly using
if neededread_file - Remove temporary scripts after successful execution:
run_shell(command="rm script.py")
Advantages Over Sandbox Execution
| Benefit | Explanation |
|---|---|
| Bypasses provider limitations | No sandbox resource constraints |
| Better error visibility | Full stack traces and system errors |
| Environment control | Direct access to system Python and packages |
| Multi-file support | Easy imports and module structure |
| Persistence | Files remain for inspection and debugging |
| Reliability | More consistent execution behavior |
Complete Example
# Scenario: execute_code_sandbox failing on data processing task # Step 1: Write the script write_file( path="process_data.py", content="#!/usr/bin/env python3 import json import csv # Load and process data with open('input.json', 'r') as f: data = json.load(f) # Transform data results = [] for item in data: results.append({'processed': item['value'] * 2}) # Write output with open('output.csv', 'w', newline='') as f: writer = csv.DictWriter(f, fieldnames=['processed']) writer.writeheader() writer.writerows(results) print('Processing complete') " ) # Step 2: Execute via shell run_shell(command="python3 process_data.py") # Step 3: Read results read_file(filetype="csv", file_path="output.csv") # Step 4: Clean up (optional) run_shell(command="rm process_data.py")
Best Practices
- Use absolute or clear relative paths - Avoid ambiguity in file locations
- Add error handling in scripts - Catch exceptions and print meaningful messages
- Validate script content before writing - Ensure proper Python syntax
- Log execution steps - Track what was written and executed for debugging
- Clean up temporary files - Remove scripts after use unless needed for later inspection
Troubleshooting
| Issue | Solution |
|---|---|
not found | Try or specify full path |
| Import errors | Use first |
| Permission denied | Add execute permission: |
| Working directory issues | Use absolute paths or in the command |