From 9246ee792d1e8189f35e31ccb34a12a68a42b78c Mon Sep 17 00:00:00 2001 From: Eric Zhu Date: Thu, 13 Feb 2025 01:35:13 -0800 Subject: [PATCH] update --- .../autogen-core/src/autogen_core/tools/_base.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/python/packages/autogen-core/src/autogen_core/tools/_base.py b/python/packages/autogen-core/src/autogen_core/tools/_base.py index 2202b29dae8a..8b6489731159 100644 --- a/python/packages/autogen-core/src/autogen_core/tools/_base.py +++ b/python/packages/autogen-core/src/autogen_core/tools/_base.py @@ -89,19 +89,21 @@ def schema(self) -> ToolSchema: type="object", properties=model_schema["properties"], required=model_schema.get("required", []), + additionalProperties=model_schema.get("additionalProperties", False), ) # If strict is enabled, the tool schema should list all properties as required. + assert "required" in parameters if self._strict and set(parameters["required"]) != set(parameters["properties"].keys()): raise ValueError( "Strict mode is enabled, but not all input arguments are marked as required. Default arguments are not allowed in strict mode." ) - if "additionalProperties" in model_schema: - parameters["additionalProperties"] = model_schema["additionalProperties"] - elif self._strict: - # If strict is enabled, we don't allow additional properties. - parameters["additionalProperties"] = False + assert "additionalProperties" in parameters + if self._strict and parameters["additionalProperties"]: + raise ValueError( + "Strict mode is enabled but additional argument is also enabled. This is not allowed in strict mode." + ) tool_schema = ToolSchema( name=self._name,