@@ -18,14 +18,23 @@ def test_to_openai_with_function_tool():
1818 result = Converter .tool_to_openai (tool )
1919
2020 assert result ["type" ] == "function"
21- assert result ["function" ]["name" ] == "some_function"
22- params = result .get ("function" , {}).get ("parameters" )
21+ function_def = result ["function" ]
22+ assert function_def ["name" ] == "some_function"
23+ assert function_def ["strict" ] is True
24+ params = function_def .get ("parameters" )
2325 assert params is not None
2426 properties = params .get ("properties" , {})
2527 assert isinstance (properties , dict )
2628 assert properties .keys () == {"a" , "b" }
2729
2830
31+ def test_to_openai_respects_non_strict_function_tool ():
32+ tool = function_tool (some_function , strict_mode = False )
33+ result = Converter .tool_to_openai (tool )
34+
35+ assert result ["function" ]["strict" ] is False
36+
37+
2938class Foo (BaseModel ):
3039 a : str
3140 b : list [int ]
@@ -39,6 +48,7 @@ def test_convert_handoff_tool():
3948 assert result ["type" ] == "function"
4049 assert result ["function" ]["name" ] == Handoff .default_tool_name (agent )
4150 assert result ["function" ].get ("description" ) == Handoff .default_tool_description (agent )
51+ assert result ["function" ].get ("strict" ) is True
4252 params = result .get ("function" , {}).get ("parameters" )
4353 assert params is not None
4454
0 commit comments