Skip to main content

code-execution-fallback-e81068

Fallback workflow for executing Python code when execute_code_sandbox fails repeatedly

来源信息

仓库
HKUDS/OpenSpace
最近来源活动
2026年7月17日 03:43
检测到的 SKILL.md 语言
英语
星标
7,753
分支
925

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
2 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
code-execution-fallback-e81068
description
Fallback workflow for executing Python code when execute_code_sandbox fails repeatedly
# 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: ```python 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: ```python 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: ```python run_shell(command="rm script.py") ``` ## Complete Example **Scenario:** `execute_code_sandbox` failed twice while trying to process data. **Fallback execution:** ```python # 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 | Issue | Solution | |-------|----------| | `python3: command not found` | Try `python` instead, or check available interpreters with `which python` | | Permission denied | Ensure the working directory is writable; `write_file` creates files in workspace by default | | Module not found | Install dependencies via `run_shell(command="pip install package_name")` before execution | | Script hangs | Increase timeout parameter in `run_shell` | | Output too long | Redirect 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
在 GitHub 查看