CtrlK
BlogDocsLog inGet started
Tessl Logo

code-execution-fallback-e81068

Fallback workflow for executing Python code when execute_code_sandbox fails repeatedly

67

Quality

80%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./benchmarks/gdpval/skills/code-execution-fallback-e81068/SKILL.md
SKILL.md
Quality
Evals
Security

Code Execution Fallback Workflow

When to Use

Use this skill when execute_code_sandbox fails repeatedly (2+ attempts) with unknown, persistent, or unexplained errors. This fallback approach uses write_file + run_shell to save Python scripts to disk and execute them via command line, which has proven more reliable in certain failure scenarios.

Step-by-Step Instructions

Step 1: Detect Repeated Failures

Monitor execute_code_sandbox attempts. After 2 consecutive failures with errors like:

  • "Unknown error"
  • Timeout errors
  • Unexplained execution failures
  • Sandbox environment issues

Switch to the fallback workflow immediately.

Step 2: Write the Python Script to File

Use write_file to save your Python code as a .py file in the working directory:

write_file(
    path="script.py",
    content="""
import sys
import json

# Your Python code here
def main():
    # Your logic
    result = {"status": "success", "data": "example"}
    print(json.dumps(result))

if __name__ == "__main__":
    main()
"""
)

Tips:

  • Use clear, self-contained code that doesn't rely on sandbox-specific paths
  • Include error handling and informative print statements
  • Save output to files if needed for later retrieval

Step 3: Execute via Shell

Use run_shell to execute the Python script via command line:

run_shell(
    command="python3 script.py",
    timeout=60  # Adjust timeout as needed
)

Alternative commands:

  • python script.py - if python3 alias isn't available
  • python3 -u script.py - for unbuffered output
  • python3 script.py arg1 arg2 - with arguments

Step 4: Verify Output and Results

Check the stdout/stderr from run_shell to:

  • Confirm execution succeeded (exit code 0)
  • Inspect printed output or results
  • Identify any new errors (different from sandbox errors)

If the script writes output files, use read_file to retrieve results.

Step 5: Clean Up (Optional)

Remove temporary script files if they won't be reused:

run_shell(command="rm script.py")

Complete Example

Scenario: execute_code_sandbox failed twice while trying to process data.

Fallback execution:

# Step 1: Write the processing script
write_file(
    path="process_data.py",
    content="""
import pandas as pd
import json

def process():
    data = [1, 2, 3, 4, 5]
    result = {"sum": sum(data), "count": len(data)}
    print(json.dumps(result))
    
    # Also save to file for reliability
    with open("result.json", "w") as f:
        json.dump(result, f)

if __name__ == "__main__":
    process()
"""
)

# Step 2: Execute via shell
output = run_shell(command="python3 process_data.py")

# Step 3: Read results from file
results = read_file(file_path="result.json", filetype="json")

Troubleshooting

IssueSolution
python3: command not foundTry python instead, or check available interpreters with which python
Permission deniedEnsure the working directory is writable; write_file creates files in workspace by default
Module not foundInstall dependencies via run_shell(command="pip install package_name") before execution
Script hangsIncrease timeout parameter in run_shell
Output too longRedirect output to file within the script and read it separately

Best Practices

  1. Always include error handling in scripts to capture failures gracefully
  2. Write results to files in addition to printing, for reliable retrieval
  3. Use descriptive filenames to avoid conflicts (e.g., task_specific_script.py)
  4. Keep scripts self-contained - avoid dependencies on sandbox environment variables
  5. Log execution details for debugging: print(f"Step X complete: {value}")

When NOT to Use This Fallback

  • When sandbox isolation is required for security
  • When the task explicitly requires execute_code_sandbox
  • When execute_code_sandbox succeeds consistently (no need to add complexity)
  • When working with sensitive data that shouldn't persist to disk
Repository
HKUDS/OpenSpace
Last updated
First committed

Is this your skill?

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.