TalkingHeadBenchEnv / hackathon_requirements.md
elix3r's picture
Upload folder using huggingface_hub
f755447 verified
|
Raw
History Blame Contribute Delete
4.28 kB
# OpenEnv Hackathon Requirements (Round 1)
## 1. Project Objective
Build a complete, real-world **OpenEnv environment** that an AI agent can learn from through the standard `step()`, `reset()`, and `state()` API.
## 2. Key Environment Requirements
- **Real-World Utility:** Must simulate a genuine, practical task (e.g., email triage, code review, scheduling) rather than an abstract game or toy.
- **Spec Compliance:** Fully implement the OpenEnv specification, including:
- Strongly typed models parsing action/observation boundaries.
- Required interface endpoints (`step()`, `reset()`, `state()`).
- A valid `openenv.yaml` configuration file.
- **Tasks & Grading:**
- Must define a **minimum of 3 tasks** (scaled as easy, medium, and hard).
- Must use programmatic **agent graders** for each task.
- Graders must produce deterministic scores mathematically bounded between `0.0` and `1.0`.
- **Reward Function:** Must implement a meaningful, structured reward function featuring partial progress signals and strict penalties for undesirable agent behavior.
- **Space Deployment:** The final environment must be deployed as a **containerized Hugging Face Space** and be tagged with `openenv`. It must also contain a robust, functioning Dockerfile.
- **Documentation:** Root `README.md` must clearly document:
- Substantive environment description.
- Definitions of the action and observation spaces.
- Setup and usage instructions.
## 3. Mandatory Technical implementation & Inference Rules
- **Environment Variables:** Must utilize the following strictly named variables in your configuration:
- `API_BASE_URL`: The API endpoint for the LLM.
- `MODEL_NAME`: The model identifier to use for inference.
- `HF_TOKEN`: Hugging Face / API Key.
- **Inference Client:** Participants **must use the OpenAI Client** for all LLM calls referencing the variables mapped above.
- **Inference Script:** A functional baseline inference script named exactly `inference.py` must be present in the root directory.
## 4. Infrastructure Restrictions
- **Timeout Limit:** The runtime of the `inference.py` baseline evaluation shouldn't exceed **20 minutes**.
- **Resource Constraints:** The environment and baseline inference script must be capable of running cleanly on a machine bounded by **2 vCPUs and 8GB memory**.
## 5. Pre-Submission Checklist & Automated Validation
Before submitting, use the `openenv validate` command or the pre-submission validator script. An automated evaluation gate will require your project to pass the following:
1. **HF Space Pings:** An automated ping to the deployed HF Space URL must return HTTP `200` and respond correctly to `reset()`.
2. **Schema & Spec Audits:** Validate `openenv.yaml` and typed models.
3. **Docker Audits:** The Dockerfile must build natively from the submitted project repository without errors.
4. **Baseline Execution:** The root `inference.py` runs start-to-finish without failures and outputs reproducible evaluation scores.
5. **Grader Verification:** All 3+ tasks must be enumerated automatically, and the grader must output validated ranges (0.0 to 1.0) for every task.
## 6. Official Evaluation & Scoring Criteria
- **30% - Real-World Utility:** Does the environment model a practical necessity for the RL/agent community?
- **25% - Task & Grader Quality:** Are there multiple scalable tasks constructed with clear, non-cheatable, logic-bound grading criteria?
- **20% - Environment Design:** Are the action and observation spaces thoughtfully designed? Does the reward logic establish useful agent training curves?
- **15% - Code Quality & Spec Compliance:** Does the environment adhere flawlessly to the OpenEnv API endpoints? Does the HF deployment pipeline and Docker config build correctly under automated scrutiny?
- **10% - Creativity & Novelty:** Does the project pioneer fresh mechanics or introduce a novel problem domain?
## 7. Immediate Disqualification Triggers
- Plagiarized or superficially modified variants of existing environments.
- Graders producing static, non-deterministic, or hardcoded values.
- Environments failing deployment orchestration or returning dead pings over standard OpenEnv endpoints.
- Absence of a functional `inference.py` script bridging the agent.