| name: scheduling-opt-env |
| description: > |
| A real-world AI agent training environment for combinatorial scheduling |
| optimisation. Agents must determine schedule feasibility, classify constraint |
| violations, and repair infeasible schedules to minimise makespan — mirroring |
| the daily workflow of operations researchers and production planners. |
| version: "1.0.0" |
| author: "Team SchedulingOpt" |
| license: MIT |
|
|
| tasks: |
| - id: feasibility_check |
| name: Feasibility Check |
| difficulty: easy |
| description: Determine whether a proposed schedule satisfies all constraints. |
| max_steps: 3 |
| action_schema: |
| response: |
| type: string |
| enum: ["feasible", "infeasible"] |
| task_id: |
| type: string |
|
|
| - id: conflict_classification |
| name: Conflict Classification |
| difficulty: medium |
| description: Identify the type of constraint violation present in an infeasible schedule. |
| max_steps: 5 |
| action_schema: |
| response: |
| type: string |
| enum: |
| - resource_overload |
| - deadline_violation |
| - precedence_violation |
| - availability_conflict |
| - capacity_exceeded |
| task_id: |
| type: string |
|
|
| - id: schedule_repair |
| name: Schedule Repair |
| difficulty: hard |
| description: > |
| Return a corrected schedule (as JSON) that resolves all constraint |
| violations and minimises total makespan. |
| max_steps: 8 |
| action_schema: |
| response: |
| type: string |
| description: > |
| JSON object with key "assignments": list of {job_id, machine_id, |
| start_time} dicts. |
| task_id: |
| type: string |
|
|
| action_space: |
| type: object |
| properties: |
| response: |
| type: string |
| description: > |
| The agent's response: "feasible"/"infeasible", a violation category, |
| or a JSON repair schedule. |
| task_id: |
| type: string |
| description: Identifier for the current task. |
|
|
| observation_space: |
| type: object |
| properties: |
| schedule_instance: |
| type: string |
| description: JSON-encoded scheduling problem instance (jobs, machines, proposed assignments). |
| task_id: |
| type: string |
| description: Current task identifier. |
| context: |
| type: string |
| description: Instructions or context for the current step. |
| step_number: |
| type: integer |
| description: Current step number within the episode. |
|
|