PROTHAM commited on
Commit
4898dbf
Β·
1 Parent(s): 5834385

docs: update README for expert tasks, dynamic max_steps, and reward tweaks

Browse files
Files changed (1) hide show
  1. README.md +17 -5
README.md CHANGED
@@ -28,11 +28,12 @@ Every step produces a real HTTP call. The grader is fully deterministic: no LLM,
28
  | Property | Value |
29
  |---|---|
30
  | **Framework** | OpenEnv (openenv-core 0.2.3) |
31
- | **Tasks** | 3 difficulty levels β€” 9 tasks total |
32
- | **Max Steps per Episode** | 5 |
33
  | **Reward Range** | 0.0 – 1.0 |
34
- | **Grader** | Fully deterministic (no LLM) |
35
  | **Mock API** | Internal FastAPI router, same container |
 
36
  | **Port** | 7860 (HF Spaces) |
37
 
38
  ---
@@ -103,6 +104,16 @@ Requires multi-step reasoning and handling stateful API behaviour.
103
  | `hard_rate_limit` | No backoff after 429 | After receiving 429, include `X-Retry-After: 2` header on next request |
104
  | `hard_pagination` | Never follows cursor | Call GET `/mock_api/logs?cursor=<value>` until `has_more` is `false` |
105
 
 
 
 
 
 
 
 
 
 
 
106
  ---
107
 
108
  ## Reward Function
@@ -121,7 +132,7 @@ Agents are rewarded more for solving tasks in fewer steps. Partial credit is giv
121
  | 405 / 415 | 0.10 | Auth ok, wrong method or content-type |
122
  | 422 | 0.15 | Auth ok, body validation failed |
123
  | 429 | 0.20 | Hit endpoint, needs rate limit handling |
124
- | 200 (schema mismatch) | 0.70 | Right status, wrong response structure |
125
  | 200 (schema match) | 0.85–1.00 | Correct β€” higher reward for fewer attempts |
126
 
127
  ---
@@ -234,7 +245,8 @@ api_debug_env/
234
  β”œβ”€β”€ tasks/
235
  β”‚ β”œβ”€β”€ easy.py ← 3 easy tasks
236
  β”‚ β”œβ”€β”€ medium.py ← 3 medium tasks
237
- β”‚ β”œβ”€β”€ hard.py ← 3 hard tasks
 
238
  β”‚ └── registry.py ← TASK_REGISTRY dict
239
  β”œβ”€β”€ graders/
240
  β”‚ └── grader.py ← Deterministic reward logic
 
28
  | Property | Value |
29
  |---|---|
30
  | **Framework** | OpenEnv (openenv-core 0.2.3) |
31
+ | **Tasks** | 4 difficulty levels β€” 12 tasks total |
32
+ | **Max Steps per Episode** | Dynamic (5 for Easy/Medium, 10 for Hard/Expert) |
33
  | **Reward Range** | 0.0 – 1.0 |
34
+ | **Grader** | Fully deterministic (no LLM), robust to negative reward hacking |
35
  | **Mock API** | Internal FastAPI router, same container |
36
+ | **State Reset** | Secure `/_admin/reset` endpoint guarantees strict episode isolation |
37
  | **Port** | 7860 (HF Spaces) |
38
 
39
  ---
 
104
  | `hard_rate_limit` | No backoff after 429 | After receiving 429, include `X-Retry-After: 2` header on next request |
105
  | `hard_pagination` | Never follows cursor | Call GET `/mock_api/logs?cursor=<value>` until `has_more` is `false` |
106
 
107
+ ### Expert β€” Sandbox & Undocumented APIs
108
+
109
+ Advanced RL environment forcing pure systematic exploration and state tracking.
110
+
111
+ | Task ID | Bug | What the Agent Needs to Fix |
112
+ |---|---|---|
113
+ | `expert_openapi_discovery` | Completely undocumented endpoint | Query `/mock_api/system/metrics` utilizing OPTIONS/Swagger to find correct schema |
114
+ | `expert_stateful_chain` | UUIDs change every run | Create a user, extract the generated `user_id`, and immediately update their preferences |
115
+ | `expert_transaction_rollback` | Multi-step transaction | Begin a transaction, fail it intentionally, and issue a rollback command cleanly |
116
+
117
  ---
118
 
119
  ## Reward Function
 
132
  | 405 / 415 | 0.10 | Auth ok, wrong method or content-type |
133
  | 422 | 0.15 | Auth ok, body validation failed |
134
  | 429 | 0.20 | Hit endpoint, needs rate limit handling |
135
+ | 200 (schema mismatch) | 0.25 | Right status, wrong response structure |
136
  | 200 (schema match) | 0.85–1.00 | Correct β€” higher reward for fewer attempts |
137
 
138
  ---
 
245
  β”œβ”€β”€ tasks/
246
  β”‚ β”œβ”€β”€ easy.py ← 3 easy tasks
247
  β”‚ β”œβ”€β”€ medium.py ← 3 medium tasks
248
+ β”‚ β”œβ”€β”€ hard.py ← 3 hard/multi-step tasks
249
+ β”‚ β”œβ”€β”€ expert.py ← 3 expert advanced RL tasks
250
  β”‚ └── registry.py ← TASK_REGISTRY dict
251
  β”œβ”€β”€ graders/
252
  β”‚ └── grader.py ← Deterministic reward logic