@@ -193,7 +193,7 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
195 switch providerCfg.Type {
195 switch providerCfg.Type {
196− case openai.Name:
196+ case openai.Name, azure.Name:
197 _, hasReasoningEffort := mergedOptions["reasoning_effort"]
197 _, hasReasoningEffort := mergedOptions["reasoning_effort"]
198 if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
198 if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
199 mergedOptions["reasoning_effort"] = model.ModelCfg.ReasoningEffort
199 mergedOptions["reasoning_effort"] = model.ModelCfg.ReasoningEffort
@@ -250,16 +250,6 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
250 if err == nil {
250 if err == nil {
251 options[google.Name] = parsed
251 options[google.Name] = parsed
254− _, hasReasoningEffort := mergedOptions["reasoning_effort"]
255− if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
256− mergedOptions["reasoning_effort"] = model.ModelCfg.ReasoningEffort
258− // azure uses the same options as openaicompat
259− parsed, err := openaicompat.ParseOptions(mergedOptions)
261− options[azure.Name] = parsed
263 case openaicompat.Name:
253 case openaicompat.Name:
264 _, hasReasoningEffort := mergedOptions["reasoning_effort"]
254 _, hasReasoningEffort := mergedOptions["reasoning_effort"]
265 if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
255 if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
@@ -566,6 +556,7 @@ func (c *coordinator) buildAzureProvider(baseURL, apiKey string, headers map[str
566 opts := []azure.Option{
556 opts := []azure.Option{
567 azure.WithBaseURL(baseURL),
557 azure.WithBaseURL(baseURL),
568 azure.WithAPIKey(apiKey),
558 azure.WithAPIKey(apiKey),
559+ azure.WithUseResponsesAPI(),
570 if c.cfg.Options.Debug {
561 if c.cfg.Options.Debug {
571 httpClient := log.NewHTTPClient()
562 httpClient := log.NewHTTPClient()