Skip to main content

debug-sandbox-execution

Debug Python code execution failures by capturing partial traces, isolating failing functions, and incrementally verifying outputs

Quellinformationen

Repository
HKUDS/OpenSpace
Letzte Quellaktivität
17. Juli 2026 um 03:43
Erkannte Sprache von SKILL.md
Englisch
Sterne
7.753
Forks
925

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
debug-sandbox-execution
description
Debug Python code execution failures by capturing partial traces, isolating failing functions, and incrementally verifying outputs
# Debug Sandbox Execution Failures When `execute_code_sandbox` fails with unknown errors or incomplete output, use this debugging pattern to identify the root cause and recover incrementally. ## Problem The `execute_code_sandbox` tool may fail silently, truncate output, or produce opaque errors. Complex scripts with multiple file outputs are especially prone to partial failures. ## Solution Use a three-phase debugging approach: ### Phase 1: Capture Partial Execution Traces When a sandbox execution fails, rerun the code using `run_shell` with output piping to capture whatever output is produced before the failure: ```bash python your_script.py 2>&1 | head -100 ``` This reveals: - Which functions/steps executed successfully - Where the failure occurred - Any error messages that were suppressed ### Phase 2: Isolate Failing Functions Break the script into smaller, testable units. Execute each function or code block independently: ```python # Test individual components if __name__ == "__main__": # Step 1: Test imports import numpy as np print("Imports OK") # Step 2: Test function A in isolation result_a = function_a() print(f"Function A: {result_a}") # Step 3: Test function B result_b = function_b(result_a) print(f"Function B: {result_b}") ``` Run each section with `execute_code_sandbox` separately to identify which component fails. ### Phase 3: Incremental Output Generation Generate output files one at a time, verifying each before proceeding: ```python import numpy as np import soundfile as sf # Generate and save file 1 audio1 = np.random.randn(48000 * 10).astype(np.float32) sf.write('output_01.wav', audio1, 48000, subtype='FLOAT') # Verify file 1 exists and has expected properties import os assert os.path.exists('output_01.wav'), "File 1 not created" # Generate and save file 2 audio2 = np.random.randn(48000 * 10).astype(np.float32) sf.write('output_02.wav', audio2, 48000, subtype='FLOAT') # Verify file 2 assert os.path.exists('output_02.wav'), "File 2 not created" ``` ## Example Workflow 1. **Initial attempt**: Run full script with `execute_code_sandbox` 2. **On failure**: Rerun with `run_shell` and `| head -100` to see partial output 3. **Identify breakpoint**: Find the last successful operation 4. **Split script**: Create separate scripts for each major section 5. **Test incrementally**: Run each section, verify outputs, proceed to next 6. **Combine successful sections**: Once all pieces work, combine into final script ## Best Practices - **Always verify file creation** immediately after writing: `assert os.path.exists(path)` - **Check file properties** (size, duration, format) before assuming success - **Use print statements liberally** to mark progress through the script - **Save intermediate outputs** so failures don't require restarting from scratch - **Test audio/video generation** with short samples first (1-2 seconds) before full-length content ## When to Use - Complex scripts with multiple file outputs - Audio/video generation pipelines - Scripts with external library dependencies - Any `execute_code_sandbox` call that produces incomplete or no output
Auf GitHub ansehen