From b62088997dd1e8c27f9eda98a985847d0eae1ca3 Mon Sep 17 00:00:00 2001 From: sora <2075279110@qq.com> Date: Thu, 17 Sep 2026 09:10:32 +0000 Subject: [PATCH] tau2: floor max_turns at 40 (runner's generic 8 starved every sim) Both reward-0 runs died with 'Termination reason: max_steps' after 3-4 exchanges -- the runner passes its generic default (8) down, far too few for greet->verify->find->policy->act->confirm. Official tau2 runs use 40+; floor, don't cap. Co-Authored-By: Claude --- evalharness/agent/envs/tau2_official.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/evalharness/agent/envs/tau2_official.py b/evalharness/agent/envs/tau2_official.py index 3151203..a6e214c 100644 --- a/evalharness/agent/envs/tau2_official.py +++ b/evalharness/agent/envs/tau2_official.py @@ -193,6 +193,10 @@ class Tau2Environment(Environment): return self.reward_info async def run_task(self, adapter, sample, max_turns: int = 40, user_adapter=None, gen_kwargs=None, **kw): + # the runner's generic default (8 turns) is for single-tool benches; + # a tau2 phone call needs greet -> verify -> find -> policy -> act -> + # confirm (official runs use 40+). Floor it, never cap below it. + max_turns = max(int(max_turns or 0), 40) from tau2.data_model.tasks import Task from tau2.run import run_task