My previous efforts trying to make structured outputs work with XANO Agents by checking "Structured Outputs" and adding schema did not work.
I ran some tests with GPT 5's structured outputs and I could get 100% reliable results - however ... the way Xano is presenting the UI for "+ Add Output Schema" actually makes it impossible to set up correctly IMO.
For example - BELOW is what I would need to add as a example schema - there are a few key things in here - "strict": true, "additionalProperties": false - but for example - with the current Xano UI how do I even make "name": "UserProfile"? If I add a TEXT value and put "UserProfle" as default value will that pass to the LLM in format below?
I am assuming clicking the "Structred Outputs" checkmark sets the "response_format": {"type": "json_schema"}
and the "+ Add Output Schema" UI starts building the "json_schema": { }
So ... will the current UI actually present as below to the LLM is I do for example:
"+ Add Output Schema" > text > name = "name" > default value = "UserProfile"
"+ Add Output Schema" > boolean > name = "strict" > default value = true
ect - further - under properties - if I check "required" in the XANO UI - will you in fact add that property to "required": [] - or (as I assume) I would just build that with text strings.
For me personally - I would be MUCH happer and confident if I could just PASTE the JSON I want vs "build it" with Xano "functiions" and have no idea what is actually getting mapped behind the curtain.
Alternativly - if you could show a PREVIEW in JSON as we build the schema - we could figure it out. But the way it is now - I'm flying blind and very low confidance (like zero) that the schema is correctly defined the way I know it works in GPT5 doing it dirctly in a API call.
All thoughts / info appreciated -
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "UserProfile",
"strict": true,
"schema": {
"type": "object",
"additionalProperties": false,
"required": ["name", "age", "status", "tags", "scores", "verified"],
"properties": {
"name": { "type": ["string", "null"] },
"age": { "type": ["integer", "null"] },
"status": { "type": ["string", "null"], "enum": ["active", "inactive", null] },
"tags": {
"type": ["array", "null"],
"items": { "type": "string" }
},
"scores": {
"type": ["array", "null"],
"items": { "type": "integer" }
},
"verified": { "type": ["boolean", "null"] }
}
}
}
}