[BUG] LiteLLM call fails, when `human_input` set to True

### Description

I am trying to run a crew with `human_input`, set to True.

The problem is it fails for any of the input provided by the user.
This is mainly because lite llm when called, isn't given the user role in the messages

Attached picture 

<img width="769" alt="Image" src="https://github.com/user-attachments/assets/cc318206-8a15-48e5-a7f8-0d5b49b03906" />


### Steps to Reproduce

Run this code 

```python
# we define the agent as the following(they are currently using the same llm):
pokenmon_finder_agent = Agent(
    role = "Pokemon Search Specialist",
    goal = "Find the most likely Pokemon matches based on what you remember",
    backstory= """You're an expert at understanding Pokemon descriptions and matching them to the 
    correct Pokemon.""",
    llm = llm
)


pokemon_color_validation_agent = Agent(
    role = "Pokemon Color Specialist",
    goal = "Filter Pokemon candidates based on their color attributes",
    backstory = """You're a Pokemon color expert who specializes in identifying Pokemon 
    based on their color characteristics. You have extensive knowledge of Pokemon 
    coloration and can accurately match Pokemon to specific color criteria.""",
    llm = llm,
    # allow_delegation = True
)

pokemon_height_validation_agent = Agent(
    role = "Pokemon Height Specialist",
    goal = "Filter color-matched Pokemon based on their height characteristics",
    backstory = """You're a Pokemon physical attributes expert who specializes in 
    analyzing Pokemon heights. You excel at finding Pokemon that match specific 
    height criteria within a pre-filtered set of candidates.""",
    llm = llm
)

#we define the tasks that the agents will perform as the following:
pokemon_search_task = Task(
    description = """Given a user's description of a Pokemon: {pokemon_description}, perform semantic similarity search
    to identify the top 5 most likely matches from the Pokemon csv database.
    """,
    expected_output = """A list of 5 Pokemon names that most closely match the user's description.""",
    agent = pokenmon_finder_agent,
    output_key = "pokemon_candidates"
)


pokemon_color_validation_task = Task(
    description= """
    Your job is to validate Pokémon based on color.
    Follow these steps:
    
    1. **Ask the user directly for the target Pokémon color**. You must wait for their input before proceeding.
    2. Retrieve the list of Pokémon names from previous tasks (Only the names).
    3. Use the Color Matcher tool to find matching Pokémon.
    4. **If multiple matches are found, you MUST: finish and complete the current task, call the pokemon height specilist agent and give it the list of matching pokemon names**
    5. **If no matches are found, inform the user and ask for different criteria.**
    6. **If exactly one match is found, immediately inform the user of the Pokémon name and return it as the final result, and finish and complete the current task.""",
    expected_output = """Either:
    1. A single matching Pokémon name if exactly one match is found.
    2. A list of matching Pokémon names if multiple matches are found.
    3. None if no matches are found""",
    agent = pokemon_color_validation_agent,
    human_input = True,
    input_keys = ["pokemon_candidates"],
    output_key = "color_filtered_pokemon"
)


pokemon_height_validation_task = Task(
    description= """
    Follow these steps:

    1. Start the task when the colour specialist returns the list. Retrieve the list of color-matched Pokémon from the colour filtering task.
    2. Ask the user for height criteria (target height and comparison type: greater, less, or equal).
    3. Use the Height Matcher tool with ONLY the color-matched Pokémon names.
    4. Return the final matching Pokémon after height filtering.
    
    Note: This task should only run if the color validation task returned multiple matches.
    """,
    expected_output = """The final Pokemon match after both color and height filtering,
    including a confidence explanation and the matching attributes.""",
    agent = pokemon_height_validation_agent,
    human_input = True,
    input_keys = ["color_filtered_pokemon"]
)

crew = Crew(
    agents = [pokenmon_finder_agent, pokemon_color_validation_agent, pokemon_height_validation_agent],
    tasks = [pokemon_search_task, pokemon_color_validation_task, pokemon_height_validation_task],
    verbose= True,
    process = Process.sequential,
)

crew.kickoff(inputs={'pokemon_description' : 'electric pokemon'})
```

### Expected behavior

This should work fine __

### Screenshots/Code snippets

Already added

### Operating System

macOS Catalina

### Python Version

3.10

### crewAI Version

0.100.1

### crewAI Tools Version

-

### Virtual Environment

Conda

### Evidence

Added

### Possible Solution

Added feedback in the user role 

### Additional context

-

Labels: bug
State: closed