CoBeDigger commited on
Commit
8ee3fce
·
1 Parent(s): 42d30a9

feat(round2): add Stage 4 rewards and query_actor handling to RewardEngine

Browse files
Files changed (1) hide show
  1. app/reward.py +36 -0
app/reward.py CHANGED
@@ -61,6 +61,15 @@ class RewardEngine:
61
  preview = self._preview_text(observation)
62
  msg_parts = []
63
 
 
 
 
 
 
 
 
 
 
64
  # TASK 1
65
  if task_id == 1:
66
  if action_type in {"inspect_data", "check_schema"}:
@@ -147,6 +156,33 @@ class RewardEngine:
147
  awarded_now["t3_submit_without_edit"] = -0.2
148
  msg_parts.append("T3: -0.2 submit without edit")
149
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  # Determine terminal and score
151
  is_terminal = action_type == "submit"
152
  if is_terminal:
 
61
  preview = self._preview_text(observation)
62
  msg_parts = []
63
 
64
+ # query_actor reward — applies to ALL stages
65
+ if action_type == "query_actor":
66
+ return Reward(
67
+ score=0.05,
68
+ partial_rewards={"actor_query": 0.05},
69
+ message="Actor consulted",
70
+ is_terminal=False,
71
+ )
72
+
73
  # TASK 1
74
  if task_id == 1:
75
  if action_type in {"inspect_data", "check_schema"}:
 
156
  awarded_now["t3_submit_without_edit"] = -0.2
157
  msg_parts.append("T3: -0.2 submit without edit")
158
 
159
+ # TASK 4 (Stage 4 — Deployment Gate)
160
+ elif task_id == 4:
161
+ payload_str = str(action_payload)
162
+ if action_type == "inspect_data":
163
+ if self._add_partial(st, "s4_inspect", 0.1):
164
+ awarded_now["s4_inspect"] = 0.1
165
+ msg_parts.append("S4: +0.1 inspected data")
166
+
167
+ elif action_type == "edit_script":
168
+ if "class_weight" in payload_str:
169
+ if self._add_partial(st, "s4_fairness_fix", 0.3):
170
+ awarded_now["s4_fairness_fix"] = 0.3
171
+ msg_parts.append("S4: +0.3 fairness fix detected")
172
+ elif "stratify" in payload_str:
173
+ if self._add_partial(st, "s4_stratify", 0.2):
174
+ awarded_now["s4_stratify"] = 0.2
175
+ msg_parts.append("S4: +0.2 stratified sampling detected")
176
+ else:
177
+ if self._add_partial(st, "s4_edit", 0.05):
178
+ awarded_now["s4_edit"] = 0.05
179
+ msg_parts.append("S4: +0.05 script edited")
180
+
181
+ elif action_type == "run_script":
182
+ if self._add_partial(st, "s4_run", 0.1):
183
+ awarded_now["s4_run"] = 0.1
184
+ msg_parts.append("S4: +0.1 script executed")
185
+
186
  # Determine terminal and score
187
  is_terminal = action_type == "submit"
188
  if is_terminal: