Spaces:
Running
Running
File size: 5,506 Bytes
707377e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | # SentinelOps Arena -- Build Plan
## Overview
14-hour hackathon build plan for a multi-agent self-play RL environment on OpenEnv 0.2.1. Solo developer. Deadline: Sunday March 8, 2026 at 1:00 PM.
**KEY INSIGHT:** Innovation (40%) + Storytelling (30%) = 70% of judging is NON-code. Allocate time accordingly.
## Revised Phase Summary
| Phase | File | Time | Cumulative | What |
|-------|------|------|------------|------|
| 0 | (inline) | 0.5h | 0-0.5h | Test H100/Northflank, write 60s video script |
| 1 | [phase-1-models-and-systems.md](phase-1-models-and-systems.md) | 3.5h | 0.5-4h | Pydantic models + enterprise system simulators |
| 2 | [phase-2-environment-core.md](phase-2-environment-core.md) | 2h | 4-6h | SentinelOpsArena(MCPEnvironment), rewards, turn management |
| 3 | [phase-3-mcp-and-server.md](phase-3-mcp-and-server.md) | 0.5h | 6-6.5h | MCP tools via MCPEnvironment + HTTP server |
| 4 | [phase-4-demo-and-ui.md](phase-4-demo-and-ui.md) | 2h | 6.5-8.5h | Demo script, Gradio app (1 tab), HF Spaces deploy |
| 5 | [phase-5-training.md](phase-5-training.md) | 2h | 8.5-10.5h | Colab notebook, GRPO pipeline (fall back to SFT at 1.5h) |
| 6 | [phase-6-polish-and-submit.md](phase-6-polish-and-submit.md) | 3.5h | 10.5-14h | Polish, video recording, submission |
**Total: 14 hours**
## Phase 0: Pre-Flight (Hour 0-0.5)
Before writing any code:
1. **Test H100 via Northflank** -- verify access, note available VRAM. If no H100, lock to Qwen2.5-1.5B.
2. **Write 60-second video script** -- forces clarity on what to demo. Script drives the build.
3. **Set up repo structure** -- create directories, pyproject.toml
## Dependencies
```
Phase 0 (Pre-Flight)
|
v
Phase 1 (Models & Systems)
|
v
Phase 2 (Environment Core) -- CHECKPOINT 1 (Hour 6): Minimum Viable
|
v
Phase 3 (MCP + Server) -- MCPEnvironment handles this almost free
|
v
Phase 4 (Demo & UI) -- CHECKPOINT 2 (Hour 8.5): Deploy to HF Spaces
|
v
Phase 5 (Training) -- CHECKPOINT 3 (Hour 10.5): Strong Submission
|
v
Phase 6 (Polish & Submit) -- CHECKPOINT 4 (Hour 14): Full Submission
```
## Stop-and-Submit Checkpoints
**Hour 6 (after Phase 2):** Environment works with random agents. Submit with basic demo + placeholder training notebook. Minimum viable.
**Hour 8.5 (after Phase 4):** Environment + MCP tools + Gradio demo deployed on HF Spaces. Good submission. **INSURANCE SUBMISSION** -- deploy to HF Spaces here.
**Hour 10.5 (after Phase 5):** Everything above + working Colab training pipeline with visible reward improvement. Strong submission.
**Hour 14 (after Phase 6):** Polished demo, training curves, video, stretch goals. Full submission.
## Scoring Priorities
| Criterion | Weight | Primary Phase | Time Allocated |
|-----------|--------|---------------|----------------|
| Innovation | 40% | Phases 1-2 (3-agent self-play architecture) | 5.5h |
| Storytelling | 30% | Phase 4 + 6 (Gradio demo + video) | 5.5h |
| Training Script | 20% | Phase 5 (Colab GRPO notebook) | 2h |
| Pipeline | 10% | Phase 3 (MCP integration) | 0.5h |
## Key Technical Decisions
- **OpenEnv version:** 0.2.1 (stable, `openenv-core[core]>=0.2.0`)
- **Base class:** `MCPEnvironment` (NOT raw `Environment`) -- auto-routes `ListToolsAction`/`CallToolAction` to FastMCP server. Gives MCP tool discovery for free.
- **MCP-X gateway:** CUT -- MCPEnvironment already handles MCP tool exposure. Per-agent isolation is nice-to-have, not needed.
- **Action pattern:** `Action(extra='forbid')` -- all agent-specific fields must be Optional with defaults, or use separate action classes per role
- **Server:** `create_app()` from `openenv.core.env_server.http_server`
- **Training:** Unsloth for model loading only, vanilla TRL `GRPOTrainer` with `rollout_func`. Fall back to SFT if GRPO fails at 1.5h.
- **Model:** Qwen2.5-1.5B for Colab (5GB VRAM), Qwen2.5-7B if H100 available
- **Demo:** Gradio on HuggingFace Spaces
- **Episode scope:** 30 ticks, 15 customers, 15 invoices, 10 tickets, 30 tasks
- **Attack types:** 4 (schema drift, policy drift, social engineering, rate limiting)
- **Reserved tool names:** `reset`, `step`, `state`, `close` CANNOT be used as MCP tool names
## File Structure
```
sentinelops_arena/
__init__.py
models.py # Pydantic models (enums, data, action/observation/state)
systems/
__init__.py
crm.py # CRM simulator
billing.py # Billing simulator
ticketing.py # Ticketing simulator
attacks.py # Attack mechanics (4 types)
rewards.py # Reward functions (3 agents)
task_generator.py # Task generation
environment.py # SentinelOpsArena(MCPEnvironment) -- MCP tools defined here
server.py # create_app() HTTP server
training/
colab_training.ipynb # Colab GRPO notebook (REQUIRED)
env_standalone.py # Standalone env for Colab (no openenv dependency)
app.py # HF Spaces Gradio entry point
pyproject.toml
README.md
```
**NOTE:** No separate `mcp_tools.py` -- MCP tools are defined inside `environment.py` using FastMCP, and `MCPEnvironment` auto-routes them.
**NOTE:** No `mcp-x/` directory -- MCP-X gateway is CUT from the plan.
## Partner Track Alignment
- **Fleet AI** (Scalable Oversight): The Oversight agent monitors, analyzes, and explains behavior of Worker agent
- **Patronus AI** (Schema Drift): Schema drift and policy drift are core attack types in the environment
|