File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- from inspect import signature
1+ from inspect import Parameter , signature
22from typing import (
33 Any ,
44 Awaitable ,
@@ -40,6 +40,11 @@ def create_schema_from_function(
4040 for param_name in params :
4141 if param_name in ignore_fields :
4242 continue
43+ if params [param_name ].kind in (
44+ Parameter .VAR_POSITIONAL ,
45+ Parameter .VAR_KEYWORD ,
46+ ):
47+ continue
4348
4449 param_type = params [param_name ].annotation
4550 param_default = params [param_name ].default
Original file line number Diff line number Diff line change @@ -32,6 +32,19 @@ def test_fn2(x: int = 1) -> None:
3232 assert "required" not in schema
3333
3434
35+ def test_create_schema_from_function_ignores_variadic_parameters () -> None :
36+ """Test that *args and **kwargs are not exposed as tool parameters."""
37+
38+ def test_fn (query : str , * args : str , ** kwargs : str ) -> None :
39+ """Test variadic inputs."""
40+
41+ SchemaCls = create_schema_from_function ("test_schema" , test_fn )
42+ schema = SchemaCls .model_json_schema ()
43+
44+ assert schema ["properties" ] == {"query" : {"title" : "Query" , "type" : "string" }}
45+ assert schema ["required" ] == ["query" ]
46+
47+
3548def test_create_schema_from_function_with_field () -> None :
3649 """Test create_schema_from_function with pydantic.Field."""
3750
You can’t perform that action at this time.
0 commit comments