KernelFunctionFromTool does not set the Kernel Parameters Properly

### What happened?

It looks as though the KernelParametersMetadata for the semantic kernel tools adapter does not take into account the tool's parameters and is always defined as "JSON arguments for the tool".

https://github.com/microsoft/autogen/blob/b5eaab85015e2434c13717c77f11397da1e52dad/python/packages/autogen-ext/src/autogen_ext/tools/semantic_kernel/_kernel_function_from_tool.py#L84

If you run the example code below with a given model you will find that you get the printed error

ERROR:
...
pydantic_core._pydantic_core.ValidationError: 2 validation errors for CalculatorArgs
a
  Field required [type=missing, input_value={'args': [2, 2]}, input_type=KernelArguments]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
b
  Field required [type=missing, input_value={'args': [2, 2]}, input_type=KernelArguments]
    For further information visit https://errors.pydantic.dev/2.10/v/missing

EXAMPLE CODE:
```
from pydantic import BaseModel
from autogen_core.tools import BaseTool
from autogen_core import CancellationToken
from autogen_ext.tools.semantic_kernel import KernelFunctionFromTool
from semantic_kernel.functions.kernel_plugin import KernelPlugin
from semantic_kernel.kernel import Kernel

from semantic_kernel.connectors.ai.function_choice_behavior import FunctionChoiceBehavior
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion
from semantic_kernel.contents.chat_history import ChatHistory
from semantic_kernel.agents import ChatCompletionAgent
from semantic_kernel.functions.kernel_arguments import KernelArguments
import asyncio


# 1) Define input/output models
class CalculatorArgs(BaseModel):
    a: float
    b: float


class CalculatorResult(BaseModel):
    result: float


# 2) Create an Autogen tool
class CalculatorTool(BaseTool[CalculatorArgs, CalculatorResult]):
    def __init__(self) -> None:
        super().__init__(
            args_type=CalculatorArgs,
            return_type=CalculatorResult,
            name="calculator",
            description="Add two numbers together",
        )

    async def run(self, args: CalculatorArgs, cancellation_token: CancellationToken) -> CalculatorResult:
        return CalculatorResult(result=args.a + args.b)


# 3) Convert to Semantic Kernel function
calc_tool = CalculatorTool()
kernel_function = KernelFunctionFromTool(calc_tool, plugin_name="math")
print(kernel_function)

# 4) Add to Semantic Kernel plugin/kernel
plugin = KernelPlugin(name="math")
plugin.functions[calc_tool.name] = kernel_function
kernel = Kernel()
kernel.add_service(AzureChatCompletion(service_id='aoai'))
kernel.add_plugin(plugin)

# 5) Invoke the tool
settings = kernel.get_prompt_execution_settings_from_service_id(service_id='aoai')
settings.function_choice_behavior = FunctionChoiceBehavior.Auto()

# Create the agent
agent = ChatCompletionAgent(
    kernel=kernel,
    name="mathagent",
    instructions="Answer the user's math questions using the provided plugins",
    arguments=KernelArguments(settings=settings),
)

# A helper method to invoke the agent with the user input
async def invoke_agent(agent: ChatCompletionAgent, input: str, chat_history: ChatHistory) -> None:
    """Invoke the agent with the user input."""
    chat_history.add_user_message(input)
    async for content in agent.invoke(chat_history):
        chat_history.add_message(content)
        print(content)

async def main():
    chat = ChatHistory()
    await invoke_agent(agent=agent, input="What is 2 + 2", chat_history=chat)

if __name__ == "__main__":
    asyncio.run(main())
```

### What did you expect to happen?

I expect it to recognize the arguments are 'a' and 'b', not a dict of 'args'.

However, if you look at the code of the KernelFunctionFromTool class you will find the following which helps reveal why the parameters are not being properly set:

https://github.com/microsoft/autogen/blob/b5eaab85015e2434c13717c77f11397da1e52dad/python/packages/autogen-ext/src/autogen_ext/tools/semantic_kernel/_kernel_function_from_tool.py#L84

### How can we reproduce it (as minimally and precisely as possible)?

Run attached code example. Ensure you set a .env file to properly run the AzureChatCompletion service.

### AutoGen version

0.4.5 latest

### Which package was this bug in

Extensions

### Model used

_No response_

### Python version

_No response_

### Operating system

_No response_

### Any additional info you think would be helpful for fixing this bug

_No response_

Labels: needs-triage
State: closed