execute-code-fallback
Fallback from execute_code_sandbox to run_shell when e2b sandbox is unavailable
适合你,如果需要在沙箱不可用时自动改用本地命令执行代码
npx oh-my-skill add hkuds/openspace/execute-code-fallbackcurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- hkuds/openspace/execute-code-fallbacknpx oh-my-skill verify hkuds/openspace/execute-code-fallback怎么用
商店整理自技能原文 · 版本 2c5cc40 · 表述以原文为准当e2b沙箱不可用时,自动放弃execute_code_sandbox,改用run_shell运行Python代码,确保任务继续。
当execute_code_sandbox因e2b沙箱不可用而失败(例如返回“e2b service unavailable”等错误,或连续失败两次以上)时触发。
技能原文 SKILL.md
Execute Code Fallback Pattern
When execute_code_sandbox fails due to e2b unavailability, immediately fall back to run_shell with embedded Python code. This ensures task continuity when the sandbox service is down.
When to Apply
Use this pattern when you observe:
execute_code_sandboxreturns errors mentioning "e2b", "sandbox unavailable", or connection timeouts- Repeated sandbox execution failures (2+ attempts)
- Error messages indicating the code execution environment is unreachable
Fallback Procedure
Step 1: Detect the Failure
Identify that execute_code_sandbox has failed. Common error indicators:
- "e2b service unavailable"
- "Sandbox connection failed"
- "Execution environment not reachable"
- Timeout errors during code execution
Step 2: Switch to run_shell with Embedded Python
Instead of:
execute_code_sandbox(code="...")
Use:
run_shell(command="python3 -c '...your Python code...'")
Step 3: Install Dependencies First (If Needed)
If your Python code requires external packages, install them first:
run_shell(command="pip install pandas requests matplotlib")
Then execute your main code:
run_shell(command="python3 << 'EOF'
import pandas as pd
import requests
# Your code here
print("Success")
EOF
")
Step 4: Use Heredoc for Multi-line Code
For complex Python scripts, use heredoc syntax for cleaner code:
run_shell(command="python3 << 'PYTHON_SCRIPT'
import json
import os
# Complex logic here
data = {'key': 'value'}
with open('output.json', 'w') as f:
json.dump(data, f)
print('File created successfully')
PYTHON_SCRIPT
")
Complete Example
Scenario: You need to process a CSV file and generate a report.
Original approach (sandbox):
execute_code_sandbox(code="""
import pandas as pd
df = pd.read_csv('data.csv')
summary = df.describe()
print(summary)
""")
Fallback approach (run_shell):
# First install dependencies if needed
run_shell(command="pip install pandas --quiet")
# Then execute the code
run_shell(command="python3 << 'EOF'
import pandas as pd
df = pd.read_csv('data.csv')
summary = df.describe()
print(summary)
EOF
")
Important Considerations
- State Persistence: Unlike
execute_code_sandbox,run_shellexecutions may not share state between calls. Save intermediate results to files if needed.
- Working Directory: Ensure you're operating in the correct directory. Use
pwdto verify or includecd /path/to/workdirin your commands.
- Python Version: Use
python3explicitly to avoid ambiguity. Verify withpython3 --versionif needed.
- Error Handling: Check the stdout/stderr from
run_shellto confirm success. Failed Python scripts will return non-zero exit codes.
- Security: Be cautious when embedding user-provided data into shell commands. Escape appropriately or use file-based input.
- Performance: For large computations,
run_shellmay be slower than sandbox. Consider breaking into smaller steps if timeouts occur.
Quick Reference
| Task | Sandbox Approach | Fallback Approach | |------|-----------------|-------------------| | Simple calculation | execute_code_sandbox(code="print(2+2)") | run_shell(command="python3 -c 'print(2+2)'") | | Install + run | execute_code_sandbox(code="import pkg; ...") | run_shell(command="pip install pkg && python3 -c '...'") | | Multi-line script | execute_code_sandbox(code="...") | run_shell(command="python3 << 'EOF'...EOF") | | File I/O | execute_code_sandbox(code="...") | run_shell(command="python3 << 'EOF'...EOF") |
Recovery Checklist
- [ ] Confirm
execute_code_sandboxfailure (not a code bug) - [ ] Switch to
run_shellimmediately - [ ] Install required packages with
pip install - [ ] Use heredoc for multi-line Python
- [ ] Verify output and handle errors
- [ ] Save intermediate results to files if multi-step