sandbox-fallback-execution-5eda7b
Fallback pattern for executing Python code when sandbox execution fails by writing scripts to disk and running via shell
- License 许可
- MIT
- 所属仓库
- HKUDS/AgentPilot
- 最近更新
- 2026-11-12
- Stars
- ★ 8.0k
- Forks
- 941
01 前言 Front Matter
- name
- sandbox-fallback-execution-5eda7b
- description
- Fallback pattern for executing Python code when sandbox execution fails by writing scripts to disk and running via shell
02 资源文件 1
- 其他.skill_id47 B
03 SKILL.md 正文
Sandbox Fallback Execution
Overview
When execute_code_sandbox fails due to e2b initialization errors or sandbox unavailability, use this fallback pattern to execute Python code by writing it to disk and running it via run_shell. This approach is particularly useful for PDF generation, data processing, and other Python-intensive tasks.
When to Use
Use this skill when you encounter errors like:
e2b initialization errorsandbox not availableexecute_code_sandboxtimeout or connection failures- Any sandbox execution that consistently fails
Step-by-Step Instructions
Step 1: Attempt Sandbox Execution First
Always try execute_code_sandbox first, as it provides isolation and artifact handling:
execute_code_sandbox(code="your_python_code_here")
Step 2: Detect Failure and Switch to Fallback
When sandbox execution fails with initialization errors, switch to the fallback pattern:
-
Write the Python script to disk using
write_file:- Choose a descriptive filename (e.g.,
generate_pdf.py,process_data.py) - Include the complete Python code with all necessary imports
- Choose a descriptive filename (e.g.,
-
Execute via shell using
run_shell:- Run the script with
pythonorpython3 - Capture stdout/stderr for verification
- Run the script with
Step 3: Example Implementation
# Write the script to disk
write_file(
path="generate_pdf.py",
content="""
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
def create_pdf(filename, content):
c = canvas.Canvas(filename, pagesize=letter)
c.drawString(100, 750, content)
c.save()
create_pdf('output.pdf', 'Hello World')
"""
)
# Execute the script via shell
run_shell(command="python generate_pdf.py")
Step 4: Handle Dependencies
If the script requires external packages:
# Install dependencies first
run_shell(command="pip install reportlab pillow")
# Then execute the script
run_shell(command="python generate_pdf.py")
Step 5: Verify Output
After execution, verify the output was created:
# Check if file was created
run_shell(command="ls -la output.pdf")
# Optionally read the file to confirm
read_file(file_path="output.pdf", filetype="pdf")
Best Practices
- Keep scripts self-contained: Include all imports and logic in the written file
- Use descriptive filenames: Make it clear what each script does
- Clean up when done: Remove temporary scripts if not needed for debugging
- Capture errors: Always check stdout/stderr from
run_shellfor debugging - Handle paths carefully: Use relative paths or absolute paths consistently
Complete Example Pattern
# Primary: Try sandbox execution
try:
result = execute_code_sandbox(code=python_code)
except Exception as e:
if "e2b" in str(e).lower() or "sandbox" in str(e).lower():
# Fallback: Write to disk and execute via shell
script_path = "task_script.py"
write_file(
path=script_path,
content=python_code
)
# Install any required dependencies
run_shell(command="pip install -q reportlab")
# Execute the script
result = run_shell(command=f"python {script_path}")
# Verify output
run_shell(command="ls -la")
Applicable Use Cases
- PDF generation (reportlab, fpdf, etc.)
- Image processing (PIL, OpenCV)
- Data analysis (pandas, numpy)
- File manipulation tasks
- Any Python script that doesn't require special sandbox features
04 同仓库更多 Skills
agentpilot
Set up AgentPilot and use its single entry to prepare missing inputs and run configured RSI experiments. Use when the user requests AgentPilot installation or work with AgentPilot.
remember
Review auto-memory entries and propose promotions to OPENSPACE.md, OPENSPACE.local.md, or retained auto-memory topics; detect duplicates, stale facts, conflicts, and ambiguous entries before making changes.
skill-discovery
Search reusable OpenSpace skills locally, and browse cloud packages step by step when a cloud skill may help. Reusing proven skills saves tokens, improves reliability, and extends your capabilities beyond built-in tools.
delegate-task
Delegate tasks to OpenSpace — a full-stack autonomous worker for coding, DevOps, web research, and desktop automation, backed by an extensive MCP tool and skill library. Skills auto-improve through use, reducing token consumption over time. A cloud community lets agents share and collectively evolve reusable skills.
write-special-chars-ts-check
Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, plus a reliable TypeScript type-checking step that filters output to only the newly-written files to avoid being misled by pre-existing errors.
write-special-chars-readback
Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, with mandatory post-write verification via read_file and cleanup of /tmp helper scripts.