1010from pathlib import Path
1111from typing import Any , Dict , List
1212
13- from eval_protocol .models import EvaluateResult , EvaluationRow , Message , InputMetadata , CompletionParams
13+ from eval_protocol .models import CompletionParams , EvaluateResult , EvaluationRow , InputMetadata , Message
1414from eval_protocol .pytest import evaluation_test
1515from eval_protocol .pytest .default_mcp_gym_rollout_processor import default_mcp_gym_rollout_processor
16-
1716from vendor .tau2 .data_model .message import (
1817 AssistantMessage ,
1918 SystemMessage ,
2827from vendor .tau2 .evaluator .evaluator_nl_assertions import NLAssertionsEvaluator
2928from vendor .tau2 .registry import registry
3029
30+
3131def tau_bench_airline_to_evaluation_row (data : List [Dict [str , Any ]]) -> List [EvaluationRow ]:
3232 """
3333 Convert entries from airline dataset to EvaluationRow objects.
3434 """
3535 rows = []
3636 test_dir = Path (__file__ ).parent .parent .parent / "examples" / "tau2_mcp" / "tests"
37-
37+
3838 # Load system prompt from file so we can change it in one place
3939 domain = data [0 ]["environment_context" ]["domain" ]
4040 prompt_file = test_dir / f"system_prompts/{ domain } _agent_system_prompt.md"
41-
41+
4242 with open (prompt_file , "r" ) as f :
4343 system_prompt = f .read ().strip ()
44-
44+
4545 for row in data :
4646 eval_row = EvaluationRow (
4747 messages = [Message (role = "system" , content = system_prompt )],
@@ -52,19 +52,20 @@ def tau_bench_airline_to_evaluation_row(data: List[Dict[str, Any]]) -> List[Eval
5252 "user_simulation" : row ["user_simulation" ],
5353 "evaluation_criteria" : row ["evaluation_criteria" ],
5454 "user_prompt_template" : row ["user_prompt_template" ],
55- }
55+ },
5656 ),
5757 )
58-
58+
5959 rows .append (eval_row )
60-
60+
6161 return rows
6262
63+
6364@evaluation_test (
6465 input_dataset = ["tests/pytest/data/airline_dataset.jsonl" ],
6566 dataset_adapter = tau_bench_airline_to_evaluation_row ,
6667 model = ["fireworks_ai/accounts/fireworks/models/gpt-oss-120b" ],
67- rollout_input_params = [{"temperature" : 0.8 , "max_tokens" : 4096 }],
68+ rollout_input_params = [{"temperature" : 0.8 , "max_tokens" : 4096 , "reasoning_effort" : "high" }],
6869 rollout_processor = default_mcp_gym_rollout_processor ,
6970 threshold_of_success = 0.4 ,
7071 num_runs = 1 ,
@@ -75,22 +76,22 @@ def tau_bench_airline_to_evaluation_row(data: List[Dict[str, Any]]) -> List[Eval
7576def test_tau_bench_airline_evaluation (row : EvaluationRow ) -> EvaluationRow :
7677 """
7778 Test tau bench airline evaluation using the pytest framework.
78-
79+
7980 This test now uses the tau_bench_airline_reward function which automatically
8081 extracts evaluation criteria from dataset entries. No wrapper needed!
81-
82+
8283 Args:
8384 row: EvaluationRow object from tau bench airline dataset after rollout
84-
85+
8586 Returns:
8687 EvaluationRow with tau2 evaluation results
8788 """
8889 messages = row .messages
89-
90+
9091 # Get evaluation criteria and user_simulation from input_metadata.dataset_info
9192 dataset_info = row .input_metadata .dataset_info if row .input_metadata else {}
9293 evaluation_criteria = dataset_info .get ("evaluation_criteria" , {})
93-
94+
9495 nl_assertions = evaluation_criteria .get ("nl_assertions" , [])
9596 communicate_info = evaluation_criteria .get ("communicate_info" , [])
9697 actions = evaluation_criteria .get ("actions" , [])
@@ -130,7 +131,7 @@ def test_tau_bench_airline_evaluation(row: EvaluationRow) -> EvaluationRow:
130131 actions = actions ,
131132 reward_basis = [
132133 RewardType .DB ,
133- RewardType .ACTION ,
134+ RewardType .COMMUNICATE ,
134135 ],
135136 )
136137
@@ -226,4 +227,4 @@ def test_tau_bench_airline_evaluation(row: EvaluationRow) -> EvaluationRow:
226227 reason = reason ,
227228 metrics = {},
228229 )
229- return row
230+ return row
0 commit comments