Skip to content

Commit ffd0809

Browse files
committed
Clamp validator-facing score outputs
1 parent 31acc3c commit ffd0809

2 files changed

Lines changed: 14 additions & 3 deletions

File tree

benchmark_report.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ def run_random_episode(task_id: str, seed: int = 7, verbose: bool = True) -> Dic
137137
"title": observation.title,
138138
"difficulty": observation.difficulty,
139139
"terminal_outcome": observation.metadata.get("terminal_outcome", "unknown"),
140-
"score": round(float(observation.metadata.get("episode_score", observation.reward or 0.0)), 3),
140+
"score": clamp_strict_score(float(observation.metadata.get("episode_score", observation.reward) or 0.5)),
141141
"total_points": round(float(observation.metadata.get("debug_total_points", 0.0)), 2),
142142
"steps": observation.step_number,
143143
}

inference.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@
99
from dataclasses import dataclass, field
1010
from typing import Any, Callable, Dict, Iterable
1111

12+
_SCORE_EPS = 0.001
13+
14+
15+
def _clamp_score(value: object) -> float:
16+
"""Ensure a score is strictly inside (0, 1) for validator compliance."""
17+
try:
18+
v = float(value) # type: ignore[arg-type]
19+
except (TypeError, ValueError):
20+
v = 0.5
21+
return round(max(_SCORE_EPS, min(v, 1.0 - _SCORE_EPS)), 3)
22+
1223
from openai import OpenAI
1324
from openenv.core.utils import run_async_safely
1425

@@ -473,15 +484,15 @@ def _execute_episode(
473484
"step": observation.step_number,
474485
"tool_name": action.tool_call.tool_name,
475486
"success": None if observation.last_tool_result is None else observation.last_tool_result.success,
476-
"score": round(float(observation.reward or 0.0), 3),
487+
"score": _clamp_score(observation.reward),
477488
"done": observation.done,
478489
"terminal_outcome": observation.metadata.get("terminal_outcome", "in_progress"),
479490
},
480491
verbose,
481492
)
482493

483494
outcome = observation.metadata.get("terminal_outcome", "unknown")
484-
score = round(float(observation.metadata.get("episode_score", observation.reward or 0.0)), 3)
495+
score = _clamp_score(observation.metadata.get("episode_score", observation.reward))
485496
total_points = round(float(observation.metadata.get("debug_total_points", 0.0)), 2)
486497
_emit(
487498
"END",

0 commit comments

Comments
 (0)