ooc, why do you need two tools for this? Shouldn't the agent be able to juggle the language properly through basic prompting?
But in any case, my take on this would be to improve the tool names/descriptions if thats already you system prompt
def french_response(input: str) -> str:
"""Utile pour aider à répondre aux utilisateurs français. Si l'utilisateur parle français, cet outil doit être utilisé."""
....
def english_response(input: str) -> str:
"""Useful for responding in english. If the user is speaking english, you should use this tool."""
...