dkAmulet/sql-query-optimizer
0
1---2title: SQL Query Optimizer3emoji: ๐๏ธ4colorFrom: blue5colorTo: green6sdk: docker7app_port: 78608pinned: false9tags:10 - openenv11 - sql12 - reinforcement-learning13 - database14 - agent15 - real-world16license: mit17---18 19# SQL Query Optimizer โ OpenEnv Environment20 21An RL environment where AI agents learn to rewrite slow SQL queries for22correctness, performance, and style โ against a live SQLite e-commerce database.23 24[]()25[]()26[]()27 28---29 30## Quick Start31 32```bash33# Reset to the easiest task34curl -X POST "$SPACE_URL/reset?task_id=select_star_removal"35 36# Submit an optimised query37curl -X POST "$SPACE_URL/step" \38 -H "Content-Type: application/json" \39 -d '{"optimized_query": "SELECT user_id, username, email FROM users WHERE is_active = 1"}'40 41# Check current episode state42curl "$SPACE_URL/state"43```44 45Interactive API docs: `$SPACE_URL/docs`46 47---48 49## Tasks50 51| ID | Name | Difficulty | Max Steps |52|----|------|------------|-----------|53| `select_star_removal` | SELECT * Elimination | Easy | 5 |54| `subquery_to_join` | Correlated Subquery โ JOIN | Medium | 6 |55| `aggregation_optimization` | Aggregation Optimization | Hard | 8 |56 57## Reward Dimensions58 59Every step returns a dense, partial-credit reward:60 61| Dimension | Max | Signal |62|-----------|-----|--------|63| `validity` | 0.10 | Query runs without error |64| `correctness` | 0.35โ0.40 | Same result set as reference |65| `performance` | 0.20โ0.30 | Index usage in EXPLAIN plan |66| `style` | 0.20โ0.30 | No SELECT *, no correlated subqueries |67 68## Baseline Scores (GPT-4o-mini)69 70| Task | Score |71|------|-------|72| SELECT * Elimination | 0.70 |73| Correlated Subquery โ JOIN | 0.60 |74| Aggregation Optimization | 0.45 |75| **Overall** | **0.58** |76 77---78 79Full documentation in [README.md](README.md).80 