Fallback to run_shell with Python heredoc when execute_code_sandbox fails
64
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./benchmarks/gdpval/skills/sandbox-fallback-python-e5d7ae/SKILL.mdUse this pattern when execute_code_sandbox fails with e2b/sandbox initialization errors, especially when running Python code that requires external libraries like reportlab, pandas, numpy, etc.
Detect these error patterns to trigger the fallback:
e2b initialization errorssandbox creation/creation timeout failurescontainer startup errorsFor short scripts, use a Python heredoc directly in run_shell:
run_shell(
command="""python3 << 'EOF'
import sys
print(f"Python version: {sys.version}")
# Your code here
EOF
""",
timeout=60
)For longer scripts or when you need to preserve state across multiple executions:
# Step 1: Write the script to a temporary file
script_content = '''
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
import os
# Your code here
'''
run_shell(command=f"cat > /tmp/script.py << 'SCRIPT_EOF'\n{script_content}\nSCRIPT_EOF")
# Step 2: Execute the script
result = run_shell(command="python3 /tmp/script.py", timeout=120)run_shell typically needs longer timeouts than execute_code_sandboxtimeout=60 for simple scriptstimeout=120 or higher for library-heavy operations (PDF generation, data processing)run_shell(command="pip install reportlab", timeout=60)run_shell output for Python errorsrun_shell are in the current working directory by defaultos.getcwd() to reference files reliably# FALLBACK VERSION (when execute_code_sandbox fails):
pdf_code = """
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
def create_memo(filename):
c = canvas.Canvas(filename, pagesize=letter)
c.drawString(1*inch, 10*inch, "Legal Memorandum")
c.save()
print(f"Created {filename}")
create_memo('/workspace/output.pdf')
"""
# Write script to file
run_shell(command=f"cat > /tmp/create_pdf.py << 'PYEOF'\n{pdf_code}\nPYEOF")
# Execute and verify
run_shell(command="python3 /tmp/create_pdf.py", timeout=120)
# Verify output exists
run_shell(command="ls -la /workspace/output.pdf", timeout=30)| Aspect | execute_code_sandbox | run_shell (fallback) |
|---|---|---|
| Isolation | High (containerized) | Low (host environment) |
| Reliability | Can fail with e2b errors | More reliable |
| Library Access | Pre-configured sandbox | Depends on host |
| Timeout | Default 30s | Configurable |
| File Access | ARTIFACT_PATH convention | Direct filesystem |
When switching from execute_code_sandbox to run_shell:
c5a9c4b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.