nemo_voice_agent.evaluation.tools
nemo_voice_agent.evaluation.tools
Submodules
nemo_voice_agent.evaluation.tools._write_tool_basenemo_voice_agent.evaluation.tools.basic_toolsnemo_voice_agent.evaluation.tools.customer_service_toolsnemo_voice_agent.evaluation.tools.eva_airline_paramsnemo_voice_agent.evaluation.tools.eva_airline_toolsnemo_voice_agent.evaluation.tools.restaurant_toolsnemo_voice_agent.evaluation.tools.rtvi_controlnemo_voice_agent.evaluation.tools.tau2_airline_paramsnemo_voice_agent.evaluation.tools.tau2_airline_toolsnemo_voice_agent.evaluation.tools.tau2_retail_paramsnemo_voice_agent.evaluation.tools.tau2_retail_toolsnemo_voice_agent.evaluation.tools.tau2_telecom_init_functionsnemo_voice_agent.evaluation.tools.tau2_telecom_paramsnemo_voice_agent.evaluation.tools.tau2_telecom_predicatesnemo_voice_agent.evaluation.tools.tau2_telecom_syncnemo_voice_agent.evaluation.tools.tau2_telecom_toolsnemo_voice_agent.evaluation.tools.tau2_telecom_user_toolsnemo_voice_agent.evaluation.tools.waitlist_tools
Package Contents
Functions
Data
API
Internal: validate + register a tool class into ALL_SCHEMA_TOOLS_FOR_EVAL[domain].
Instantiate a registered tool by (domain, name), falling back to "default".
Raises KeyError if neither the specified domain nor "default" has
a tool by that name. Catches typos (domain="tau2_arline") and missing-
tool issues at the tool-instantiation step rather than silently down the line.
Parameters:
Tool class name (e.g., "GetUserDetailsTool").
Registry namespace to look in first (e.g., "tau2_airline").
Defaults to "default" (which makes the fallback path a no-op).
RTVI processor passed to the tool if its constructor accepts it.
Per-scenario mutable state dict passed to the tool if its constructor accepts it.
Additional keyword arguments forwarded to the tool constructor.
Raises:
KeyError: ifnameisn’t registered indomainor"default".
List registered tool names.
Parameters:
If provided, list tools in that domain only. If None,
returns "domain.name" strings across all domains for debugging.
Deprecated alias for the guard now applied by StandardSchemaTool.__call__.
Kept so external callers keep working. Tools no longer need to call this:
delivery (and this normalization) happens once, in __call__.
Class-decorator factory that registers a tool class into a per-domain bucket.
Usage::
@register_schema_tool_for_eval(domain=“tau2_airline”) class GetUserDetailsTool(_Tau2ReadTool): …
Or with the positional shortcut:
@register_schema_tool_for_eval(“tau2_airline”) class CancelReservationTool(_Tau2WriteTool): …
Legacy: bare @register_schema_tool_for_eval (no parens) still
registers under "default" — used by tool modules that haven’t
been migrated yet.
@register_schema_tool_for_eval class EndConversationTool(SendExitMessageTool): …
Why per-domain registries: with a single global {name → class} dict,
tools with the same short name in different domains (e.g., CancelReservationTool
in both eva and tau2) silently overwrote each other at import time. The
alternative — long unique class names like Tau2AirlineCancelReservationTool
— crowded the LLM’s tool surface. Namespacing by domain lets tools keep
natural short names while remaining unambiguous.
Parameters:
Either the class being decorated (bare @register_schema_tool_for_eval)
or a positional domain string (@register_schema_tool_for_eval("tau2_airline")).
Registry namespace. Defaults to "default" for tools not
tied to a specific evaluation domain (harness tools in
basic_tools.py / rtvi_control.py plus customer_service /
restaurant / qa / waitlist tools).
Raises:
ValueError: if the class isn’t aStandardSchemaToolsubclass, or if a tool with the same name is already registered in this domain.