fix: evaluate_turn_regex crashes on a non-string agent_reply (#1723)
This commit is contained in:
parent
290d398900
commit
ada30aa039
2 changed files with 15 additions and 1 deletions
|
|
@ -112,7 +112,7 @@ def evaluate_turn_regex(
|
||||||
return ("failure", f"tool result matched error pattern {pat.pattern!r}: {snippet!r}")
|
return ("failure", f"tool result matched error pattern {pat.pattern!r}: {snippet!r}")
|
||||||
|
|
||||||
# Agent verbally gave up?
|
# Agent verbally gave up?
|
||||||
if agent_reply:
|
if isinstance(agent_reply, str) and agent_reply:
|
||||||
for pat in _REPLY_GIVE_UP_PATTERNS:
|
for pat in _REPLY_GIVE_UP_PATTERNS:
|
||||||
m = pat.search(agent_reply)
|
m = pat.search(agent_reply)
|
||||||
if m:
|
if m:
|
||||||
|
|
|
||||||
14
tests/test_teacher_eval_nonstring_reply.py
Normal file
14
tests/test_teacher_eval_nonstring_reply.py
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
from src.teacher_escalation import evaluate_turn_regex
|
||||||
|
|
||||||
|
|
||||||
|
def test_evaluate_turn_regex_tolerates_non_string_reply():
|
||||||
|
# agent_reply is typed str but is the raw LLM turn output; a non-string
|
||||||
|
# (dict / number from a malformed turn) made pat.search(agent_reply) raise
|
||||||
|
# TypeError. The tool_results branch already isinstance-guards its rows.
|
||||||
|
assert evaluate_turn_regex([], 123) == ("ok", None)
|
||||||
|
assert evaluate_turn_regex([], {"text": "I cannot do that"}) == ("ok", None)
|
||||||
|
|
||||||
|
|
||||||
|
def test_evaluate_turn_regex_still_flags_give_up_string():
|
||||||
|
status, _ = evaluate_turn_regex([], "I don't have a tool to do that")
|
||||||
|
assert status == "failure"
|
||||||
Loading…
Add table
Reference in a new issue