Spaces:
Running
Running
Ignore action metadata in extra field validation
Browse files- server/environment.py +1 -1
- tests/test_extra_fields_penalty.py +18 -0
server/environment.py
CHANGED
|
@@ -115,7 +115,7 @@ class HelpdeskTicketRoutingEnvironment(
|
|
| 115 |
f
|
| 116 |
for f, v in action.model_dump(exclude_none=True).items()
|
| 117 |
if v is not None
|
| 118 |
-
and f not in {"action_type", "tool_name", "tool_target_ticket_id"}
|
| 119 |
}
|
| 120 |
allowed = set(task["allowed_fields"])
|
| 121 |
extra_fields = submitted_fields - allowed
|
|
|
|
| 115 |
f
|
| 116 |
for f, v in action.model_dump(exclude_none=True).items()
|
| 117 |
if v is not None
|
| 118 |
+
and f not in {"action_type", "tool_name", "tool_target_ticket_id", "metadata"}
|
| 119 |
}
|
| 120 |
allowed = set(task["allowed_fields"])
|
| 121 |
extra_fields = submitted_fields - allowed
|
tests/test_extra_fields_penalty.py
CHANGED
|
@@ -132,6 +132,24 @@ class TestExtraFieldsPenalty(unittest.TestCase):
|
|
| 132 |
self.assertEqual(len(result_obs.history), 1)
|
| 133 |
self.assertNotIn("penalty_reason", result_obs.history[0])
|
| 134 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
def test_extra_fields_no_exception_raised(self) -> None:
|
| 136 |
"""Requirement 7.4: extra fields must not raise an unhandled exception."""
|
| 137 |
env = _make_env()
|
|
|
|
| 132 |
self.assertEqual(len(result_obs.history), 1)
|
| 133 |
self.assertNotIn("penalty_reason", result_obs.history[0])
|
| 134 |
|
| 135 |
+
def test_action_metadata_is_not_treated_as_extra_field(self) -> None:
|
| 136 |
+
"""OpenEnv Action metadata should not trigger the extra-fields penalty."""
|
| 137 |
+
env = _make_env()
|
| 138 |
+
obs = env.reset(seed=42, task_id=1)
|
| 139 |
+
ticket_id = obs.current_ticket["ticket_id"]
|
| 140 |
+
current_ticket = env._tickets_by_id[ticket_id] # noqa: SLF001 - test-only inspection
|
| 141 |
+
|
| 142 |
+
result_obs = env.step(
|
| 143 |
+
HelpdeskTicketAction(
|
| 144 |
+
issue_type=current_ticket.issue_type,
|
| 145 |
+
metadata={},
|
| 146 |
+
)
|
| 147 |
+
)
|
| 148 |
+
|
| 149 |
+
self.assertEqual(len(result_obs.history), 1)
|
| 150 |
+
self.assertNotIn("penalty_reason", result_obs.history[0])
|
| 151 |
+
self.assertGreater(result_obs.history[0]["score"], 0.0)
|
| 152 |
+
|
| 153 |
def test_extra_fields_no_exception_raised(self) -> None:
|
| 154 |
"""Requirement 7.4: extra fields must not raise an unhandled exception."""
|
| 155 |
env = _make_env()
|