While we now ourselves generate schema that we think conforms to what OpenAI allows in strict mode, not all AIFunctions come from AIFunctionFactory. Any other AIFunction that gets its schema from somewhere else doesn't necessarily conform to the strict rules OpenAI puts in place, and using it via an abstraction makes it really hard to have such hard constraints there by default. We see this with MCP, for example, where MCP tools advertise valid schema that OpenAI's strict mode rejects, e.g. using default.
While we now ourselves generate schema that we think conforms to what OpenAI allows in strict mode, not all AIFunctions come from AIFunctionFactory. Any other AIFunction that gets its schema from somewhere else doesn't necessarily conform to the strict rules OpenAI puts in place, and using it via an abstraction makes it really hard to have such hard constraints there by default. We see this with MCP, for example, where MCP tools advertise valid schema that OpenAI's strict mode rejects, e.g. using
default.