nemo_voice_agent.evaluation.scenarios.data.tau2_airline.base
nemo_voice_agent.evaluation.scenarios.data.tau2_airline.base
Tau2-airline scenario base + seed scenarios.
Tau2AirlineBaseScenario glues together:
Tau2BaseScenario(cross-domain machinery: voice-task index,_gold_replay, Persona/Task stubs, structured user side,policy.mdloader)TAU2_AIRLINE_TOOL_NAME_TO_CLASS(the 14 ported tools)
Each scenario subclass only needs to set tau2_id (e.g. "0"). Everything
else (current_date, tool map, db, policy, expected_scenario_db,
reference_answer, user_persona / user_task / user_actions) derives from the
upstream data files via cached properties.
Hand-authored seed scenarios live at the bottom of this file. Auto-scaffolded
scenarios land in group_Nx.py siblings via the scaffold
generator at scripts/prepare_tau2_data/generate_airline_scaffolds.py.
Module Contents
Classes
API
Bases: Tau2BaseScenario
Base class for scenarios ported from tau2-bench/airline (voice-user-sim-v1.0).
Subclasses must set tau2_id (the key from tasks.json). For example::
@register_eval_scenario class Tau2Airline0(Tau2AirlineBaseScenario): name = “tau2_airline__0” tau2_id = “0”
Everything else (current_date, tool registry, expected DB, reference action
list, user persona/task) derives from the upstream files via
Tau2BaseScenario machinery.
Full tau2_airline tool surface (all 14 ported tools) + per-scenario info.
Tool keys are the Tool class names (matching the @register_schema_tool_for_eval
registry keys); each maps to an empty kwargs dict because tau2 tools take only
shared_state which the bot server injects automatically. The scenario DB
flows in via setup_shared_state (seeded with a deep copy of db.json).
Note: this OVERRIDES Tau2BaseScenario.agent_resources (which returns an
empty stub). The stub exists for Scenario-contract introspection; the live
run needs the populated dict to actually register tools.
Instantiate one of each ported tool, bound to the given state.
Used by Tau2BaseScenario._gold_replay to dispatch reference actions.
For live runs the agent bot constructs its own tool instances via the
usual register_schema_tools_to_llm path with shared_state=state.