diff --git a/agent/llm/providers/openai/openai.go b/agent/llm/providers/openai/openai.go index cc99f9e6..f6390821 100644 --- a/agent/llm/providers/openai/openai.go +++ b/agent/llm/providers/openai/openai.go @@ -1039,13 +1039,19 @@ func (p *Provider) buildRequestBody(messages []context.Message, options *context return nil, fmt.Errorf("options are required") } - // Get model from connector settings + // Get model and other settings from connector setting := p.Connector.Setting() model, ok := setting["model"].(string) if !ok || model == "" { return nil, fmt.Errorf("model is not set in connector") } + // Get thinking setting from connector (for models that support reasoning/thinking mode) + var thinkingSetting interface{} + if thinking, exists := setting["thinking"]; exists { + thinkingSetting = thinking + } + // Convert messages to API format apiMessages := make([]map[string]interface{}, 0, len(messages)) for _, msg := range messages { @@ -1202,6 +1208,17 @@ func (p *Provider) buildRequestBody(messages []context.Message, options *context body["audio"] = options.Audio } + // Add thinking parameter for models that support reasoning/thinking mode + if thinkingSetting != nil { + body["thinking"] = thinkingSetting + fmt.Printf("[DEBUG] Adding thinking parameter to request: %+v\n", thinkingSetting) + } + + // Debug: Print full request body + if bodyJSON, err := jsoniter.MarshalIndent(body, "", " "); err == nil { + fmt.Printf("[DEBUG] Request body:\n%s\n", string(bodyJSON)) + } + return body, nil }