| title | Admission Helpdesk OpenEnv |
|---|---|
| sdk | docker |
| pinned | false |
A real-world OpenEnv benchmark environment that simulates admissions support operations. The agent must triage, route, and resolve student tickets while respecting policy and SLA constraints.
This is not a toy game. It models an actual workflow run by admission teams:
- classify urgency (
low,medium,high) - assign the right queue (
admissions,finance,tech,hostel) - draft policy-safe support replies
- escalate only when needed
- close tickets only after meaningful progress
The environment accepts one textual command per step:
set_priority(low|medium|high)assign_team(admissions|finance|tech|hostel)draft_reply(<text>)escalate(<reason>)close_ticket()next_ticket()
Each step returns typed observation fields:
task_nameobjectivestepactive_ticket_idticket_textstudent_tierchannelsla_minutes_leftqueue_remaininghistoryechoed_message
The environment includes 3 deterministic graded tasks:
easy_priority_routing(easy)medium_resolution(medium)hard_sla_queue(hard)
Each task returns normalized score in [0.0, 1.0] via info.normalized_score.
Explicit agent graders are provided in graders.py:
grade_easy_priority_routinggrade_medium_resolutiongrade_hard_sla_queue
Each task in openenv.yaml includes explicit grader references (grader, grader_fn, agent_grader).
To select a task at runtime, call:
POST /resetwith{"task_name": "easy_priority_routing"}(or medium/hard task id)
Step rewards provide partial progress:
- positive for correct priority/team routing
- positive for high-quality policy-safe replies
- positive for required escalations
- positive for valid close actions
- penalties for unsafe wording, incorrect routing, unnecessary escalation, and SLA breaches
inference.py(root-level)openenv.yamlDockerfileREADME.md
Install dependencies:
pip install -r requirements.txtRun API server (for /reset / /step / /state):
uvicorn app:app --host 0.0.0.0 --port 7860Run inference for one task:
set MY_ENV_V4_TASK=easy_priority_routing
set HF_TOKEN=<your_token>
python inference.pyRun deterministic baseline over all tasks:
python scripts/run_baseline.pyThis repository includes a working Dockerfile suitable for Hugging Face Spaces (Docker runtime).
The container exposes port 7860 and serves the environment API with FastAPI.
Use this exact flow to deploy quickly:
- Create a new Space on Hugging Face.
- Select Space SDK as Docker.
- Name it (example:
admission-helpdesk-openenv). - Push this project to that Space repository.
- Wait for build to complete and open the Space URL.
-
Create the Space first from UI.
-
In your local project folder, add HF remote and push:
git initgit add .git commit -m "Initial OpenEnv submission"git remote add hf https://huggingface.co/spaces/<username>/<space-name>git push hf main
If you are short on time, use these scripts in order:
- Create Space (Docker SDK):
python scripts/create_hf_space.py --username <hf_username> --space <space_name> --token <hf_token>- Configure required Space variables/secrets:
python scripts/configure_hf_space.py --username <hf_username> --space <space_name> --token <hf_token> --hf-secret <hf_token>- Commit and push code to Space:
scripts\deploy_hf.cmd <hf_username> <space_name> "OpenEnv submission"After push, wait for build completion in Space logs.
- Open your Space.
- Go to Files.
- Upload all repository files.
- Confirm build logs show success.
In Space settings, add these:
Variables:
API_BASE_URL(example:https://router.huggingface.co/v1)MODEL_NAME(example:Qwen/Qwen2.5-72B-Instruct)MY_ENV_V4_BENCHMARK(optional, default already set)
Secrets:
HF_TOKEN(orAPI_KEY)
Optional:
LOCAL_IMAGE_NAMEonly if your inference flow usesfrom_docker_image(...)
After Space is live, verify:
POST /resetreturns HTTP 200.POST /stepworks with a sample action payload.GET /statereturns valid JSON state.- Local validator script passes against your Space URL.
Sample checks:
curl -X POST https://<space-url>/reset -H "Content-Type: application/json" -d "{}"curl https://<space-url>/state
Use prevalidation script:
bash scripts/validate-submission.sh <your_hf_space_url>If you are on Windows without WSL/Git Bash, run the same script from a Linux shell in CI.