diff --git a/pydantic_ai_slim/pydantic_ai/models/__init__.py b/pydantic_ai_slim/pydantic_ai/models/__init__.py index 79f603168..be88fe9bd 100644 --- a/pydantic_ai_slim/pydantic_ai/models/__init__.py +++ b/pydantic_ai_slim/pydantic_ai/models/__init__.py @@ -765,6 +765,9 @@ def _customize_tool_def(transformer: type[JsonSchemaTransformer], t: ToolDefinit def _customize_output_object(transformer: type[JsonSchemaTransformer], o: OutputObjectDefinition): - schema_transformer = transformer(o.json_schema, strict=True) + orig_schema = o.json_schema + schema_transformer = transformer(orig_schema, strict=True) son_schema = schema_transformer.walk() - return replace(o, json_schema=son_schema) + if son_schema is orig_schema: + return o + return type(o)(**{**o.__dict__, "json_schema": son_schema})