Repository: langchain
Issue: Validation Error (on arguments) from Pydantic for invoking tool_call 
Labels: 🤖:bug

### Checked other resources

- [X] I added a very descriptive title to this issue.
- [X] I searched the LangChain documentation with the integrated search.
- [X] I used the GitHub search to find a similar question and didn't find it.
- [X] I am sure that this is a bug in LangChain rather than my code.
- [X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

### Example Code

```python
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_aws import ChatBedrockConverse
from typing import List
from langchain_core.tools import tool
import os
import pprint
from dotenv import load_dotenv
load_dotenv()

@tool
def multiply(number_list: List[float]) -> float:
    """
    Multiply all numbers in number_list

    Args:
        number_list: List of number to multiply
    """
    value = 1
    for n in number_list:
        value += n
    return value


MODEL = 'meta.llama3-1-405b-instruct-v1:0'
aws_access_key = os.environ['AWS_ACCESS_KEY']
aws_secret_key = os.environ['AWS_SECRET_KEY']
aws_region = os.environ['AWS_REGION']

llm1 = ChatBedrockConverse(model=MODEL, temperature=0.0, top_p=0.9, max_tokens=None, region_name=aws_region, aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key)
llm1 = llm1.bind_tools([multiply])
tool_list = {'multiply': multiply}

prompt = "What is the product of 2.9 and 3.55"
messages = [HumanMessage(prompt)]

response = llm1.invoke(messages)
messages.append(response)
for tool_call in response.tool_calls:
    selected_tool = tool_list[tool_call["name"].lower()]
    tool_message = selected_tool.invoke(tool_call)
    messages.append(tool_message)


pprint.pprint(messages, indent=2)
```

I store the AWS credentials in an env file.

### Error Message and Stack Trace (if applicable)

Traceback (most recent call last):
  File "/Users/xyz/Documents/test_project/test.py", line 40, in <module>
    tool_message = selected_tool.invoke(tool_call)
  File "/Users/xyz/Documents/test_project/venv/lib/python3.10/site-packages/langchain_core/tools/base.py", line 484, in invoke
    return self.run(tool_input, **kwargs)
  File "/Users/xyz/Documents/test_project/venv/lib/python3.10/site-packages/langchain_core/tools/base.py", line 689, in run
    raise error_to_raise
  File "/Users/xyz/Documents/test_project/venv/lib/python3.10/site-packages/langchain_core/tools/base.py", line 651, in run
    tool_args, tool_kwargs = self._to_args_and_kwargs(tool_input)
  File "/Users/xyz/Documents/test_project/venv/lib/python3.10/site-packages/langchain_core/tools/base.py", line 574, in _to_args_and_kwargs
    tool_input = self._parse_input(tool_input)
  File "/Users/xyz/Documents/test_project/venv/lib/python3.10/site-packages/langchain_core/tools/base.py", line 515, in _parse_input
    result = input_args.model_validate(tool_input)
  File "/Users/xyz/Documents/test_project/venv/lib/python3.10/site-packages/pydantic/main.py", line 596, in model_validate
    return cls.__pydantic_validator__.validate_python(
pydantic_core._pydantic_core.ValidationError: 1 validation error for multiply
number_list
  **Input should be a valid list [type=list_type, input_value='[2.9, 3.55]', input_type=str]**
    For further information visit https://errors.pydantic.dev/2.9/v/list_type

### Description

I am using a Llama 3.1 405B with tool call for a multiplication problem. Although the LLM respond with a tool_call in the message, the invocation fails due to an issue with Pydantic validation.

This appears to be because the list is represented as a string in the argument to the function.

### System Info

System Information
------------------
> OS:  Darwin
> OS Version:  Darwin Kernel Version 24.0.0: Tue Sep 24 23:39:07 PDT 2024; root:xnu-11215.1.12~1/RELEASE_ARM64_T6000
> Python Version:  3.10.13 (main, Feb 14 2024, 23:56:25) [Clang 15.0.0 (clang-1500.1.0.2.5)]

Package Information
-------------------
> langchain_core: 0.3.15
> langchain: 0.3.7
> langsmith: 0.1.138
> langchain_aws: 0.2.4
> langchain_groq: 0.2.0
> langchain_openai: 0.2.5
> langchain_text_splitters: 0.3.1
> langgraph: 0.2.44

Optional packages not installed
-------------------------------
> langserve

Other Dependencies
------------------
> aiohttp: 3.10.10
> async-timeout: 4.0.3
> boto3: 1.35.52
> groq: 0.11.0
> httpx: 0.27.2
> jsonpatch: 1.33
> langgraph-checkpoint: 2.0.2
> langgraph-sdk: 0.1.35
> numpy: 1.26.4
> openai: 1.53.0
> orjson: 3.10.10
> packaging: 24.1
> pydantic: 2.9.2
> PyYAML: 6.0.2
> requests: 2.32.3
> requests-toolbelt: 1.0.0
> SQLAlchemy: 2.0.36
> tenacity: 9.0.0
> tiktoken: 0.8.0
> typing-extensions: 4.12.2