diff --git a/src/agents/util/_transforms.py b/src/agents/util/_transforms.py index b303074d6..2ab07f3de 100644 --- a/src/agents/util/_transforms.py +++ b/src/agents/util/_transforms.py @@ -1,11 +1,21 @@ import re +from ..logger import logger + def transform_string_function_style(name: str) -> str: # Replace spaces with underscores name = name.replace(" ", "_") # Replace non-alphanumeric characters with underscores - name = re.sub(r"[^a-zA-Z0-9]", "_", name) + transformed_name = re.sub(r"[^a-zA-Z0-9_]", "_", name) + + if transformed_name != name: + final_name = transformed_name.lower() + logger.warning( + f"Tool name {name!r} contains invalid characters for function calling and has been " + f"transformed to {final_name!r}. Please use only letters, digits, and underscores " + "to avoid potential naming conflicts." + ) - return name.lower() + return transformed_name.lower()