async def execute_task_async(agent_config, task: Task, debug: bool = False):
    """Execute a task with the given agent configuration asynchronously using true async methods."""
    global latest_upsonic_client
    
    # If agent has a custom client, use it
    if hasattr(agent_config, 'client') and agent_config.client is not None:
        the_client = agent_config.client
    else:
        # Get or create client using existing process
        the_client = get_or_create_client(debug=debug)
    
    # If task has no tools defined but agent has tools, use the agent's tools
    if not task.tools and hasattr(agent_config, 'tools') and agent_config.tools:
        task.tools = agent_config.tools
    
    # Register tools if needed
    the_client = register_tools(the_client, task.tools)
    
    # Use the async run method directly
    await the_client.run_async(agent_config, task)
    
    return task.response
Execute a task with the given agent configuration asynchronously using true async methods.
src/upsonic/client/agent_configuration/agent_configuration.py