KingHero121/dataforge-env
0
1name: DataForge-Env2description: >3 A production-grade OpenEnv environment for evaluating LLM-based agents4 on data cleaning, validation, and multi-table reconciliation tasks.5 Agents must reason over schema mismatches, missing values, duplicates,6 type errors, and business-logic constraints to produce clean datasets.7 8version: "1.0.0"9 10tasks:11 - id: easy12 name: "The Untidy Retailer"13 description: >14 Clean a 1000-row customers dataset: fill 15% missing emails,15 remove 5% duplicate rows, trim whitespace from name column.16 max_steps: 1517 difficulty: easy18 graders:19 - grade_easy20 21 - id: medium22 name: "Financial Anomaly"23 description: >24 Clean a transactions dataset: cast dollar-formatted Amount to float,25 unify mixed date formats, cap outlier amounts beyond 10 std-devs.26 max_steps: 2027 difficulty: medium28 graders:29 - grade_medium30 31 - id: hard32 name: "Supply Chain Reconciliation"33 description: >34 Reconcile inventory_logs and warehouse_master: normalize SKU keys,35 left-join tables, compute inventory_value, enforce non-negative stock.36 max_steps: 2537 difficulty: hard38 graders:39 - grade_hard40 41action_space:42 type: structured43 actions:44 - action_type: fill_missing45 params:46 column: string47 strategy: "mean | median | mode | constant | drop"48 fill_value: any (optional, required when strategy=constant)49 - action_type: drop_duplicates50 params:51 subset: list[string] (optional)52 - action_type: cast_type53 params:54 column: string55 target_dtype: "int | float | str | datetime"56 - action_type: normalize57 params:58 column: string59 method: "trim | lower | upper | strip_currency | unify_date"60 - action_type: join61 params:62 right_table: string63 left_on: string64 right_on: string65 how: "left | inner | right | outer"66 - action_type: validate67 params: {}68 69observation_space:70 type: structured71 fields:72 dataset_preview: "List[Dict] – top 5 rows of the current dataframe"73 schema_info: "Dict[column_name, ColumnStats] – dtype, null_count, unique_count, mean, outliers_detected"74 validation_errors: "List[str] – current integrity violations"75 action_history: "List[str] – actions taken so far"76 current_step: int77 max_steps: int78 progress_score: "float [0-1] – current cleanliness score"79 dataset_size: int80 progress_delta: float81 82reward:83 type: dense84 range: [0.01, 0.99]85 deterministic: true86 formula: >87 R = 0.3*C_schema + 0.2*C_nulls + 0.1*C_dupes + 0.4*C_logic - 0.01*step_penalty88 89server:90 entrypoint: server/app.py91 endpoints:92 - path: /reset93 method: POST94 - path: /step95 method: POST96 