Spaces:
Sleeping
Sleeping
| title: SQL Debugger Environment | |
| emoji: 🔧 | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: docker | |
| pinned: false | |
| app_port: 8000 | |
| license: mit | |
| short_description: SQL Query Debugger - OpenEnv RL Environment | |
| tags: | |
| - openenv | |
| # SQL Debugger — OpenEnv Environment | |
| An RL environment where an AI agent receives broken SQL queries and attempts to fix them, scored with partial credit. | |
| ## Environment Description | |
| The SQL Debugger simulates a real-world task: debugging broken SQL queries. Given a buggy query, database schema, and expected output, the agent must produce a corrected query. This models a genuine developer workflow — reading error messages, understanding schema, and iteratively fixing queries. | |
| ## Action Space | |
| ```python | |
| @dataclass | |
| class SQLAction(Action): | |
| corrected_query: str # The agent's fixed SQL query | |
| ``` | |
| ## Observation Space | |
| ```python | |
| @dataclass | |
| class SQLObservation(Observation): | |
| broken_query: str # The buggy SQL to fix | |
| schema: list # CREATE TABLE statements | |
| description: str # Hint about what's wrong | |
| expected_output: list # What the correct query should return | |
| actual_output: list | None # What the agent's query returned | |
| score: float # Partial credit score (0.0 - 1.0) | |
| error_message: str | None # Error if the agent's SQL crashed | |
| done: bool # Whether the episode is over | |
| attempts_left: int # Remaining attempts | |
| ``` | |
| ## Tasks | |
| 9 tasks across 3 difficulty levels: | |
| | Difficulty | Count | Bug Type | Example | | |
| |-----------|-------|----------|---------| | |
| | Easy | 3 | Syntax errors | Typos: SELCT, FORME, ORDRE | | |
| | Medium | 3 | Logic errors | Wrong JOIN type, wrong WHERE filter, wrong GROUP BY | | |
| | Hard | 3 | Subtle multi-table bugs | Wrong threshold, missing DISTINCT, global vs per-category average | | |
| ## Reward Function | |
| Partial credit scoring with 5 levels: | |
| | Score | Criteria | | |
| |-------|----------| | |
| | 0.0 | Query doesn't parse | | |
| | 0.2 | Parses (EXPLAIN works) | | |
| | 0.4 | Runs without error | | |
| | 0.6 | Correct number of columns | | |
| | 0.8 | Correct number of rows | | |
| | 1.0 | Exact match with expected output | | |
| ## Setup | |
| ```bash | |
| # Install dependencies | |
| pip install -r requirements.txt | |
| # Run the environment server locally | |
| uvicorn server.app:app --host 0.0.0.0 --port 8000 | |
| # Run inference (requires LLM API access) | |
| export HF_TOKEN=your_token_here | |
| python inference.py | |
| ``` | |
| ## Docker | |
| ```bash | |
| docker build -t sql-debugger . | |
| docker run -p 8000:8000 sql-debugger | |
| ``` | |
| ## Baseline Scores | |
| Baseline agent (Qwen2.5-72B-Instruct) with 3 attempts per task. Scores vary per run due to LLM non-determinism. | |