diff --git a/src/Infrastructure/BotSharp.Core/Instructs/Services/InstructService.Execute.cs b/src/Infrastructure/BotSharp.Core/Instructs/Services/InstructService.Execute.cs index 29fa0724b..32d094089 100644 --- a/src/Infrastructure/BotSharp.Core/Instructs/Services/InstructService.Execute.cs +++ b/src/Infrastructure/BotSharp.Core/Instructs/Services/InstructService.Execute.cs @@ -251,13 +251,7 @@ private async Task RunLlm( var templateLlmConfig = agent.Templates?.FirstOrDefault(x => x.Name.IsEqualTo(templateName))?.LlmConfig; if (templateLlmConfig?.IsValid == true) { - llmConfig = new AgentLlmConfig - { - Provider = templateLlmConfig.Provider, - Model = templateLlmConfig.Model, - MaxOutputTokens = templateLlmConfig.MaxOutputTokens, - ReasoningEffortLevel = templateLlmConfig.ReasoningEffortLevel - }; + llmConfig = new AgentLlmConfig(templateLlmConfig); } } else diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.Response.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.Response.cs index ceb179db7..07767f6c1 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.Response.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.Response.cs @@ -2,7 +2,6 @@ using BotSharp.Abstraction.MessageHub.Models; using BotSharp.Core.Infrastructures.Streams; using BotSharp.Core.MessageHub; -using OpenAI.Chat; using OpenAI.Responses; namespace BotSharp.Plugin.OpenAI.Providers.Chat; @@ -425,12 +424,14 @@ private async Task InnerCreateResponseStreamingAsync(Agent agen var allowMultiModal = settings != null && settings.MultiModal; renderedInstructions = []; + float? temperature = float.Parse(_state.GetState("temperature", "0.0")); var maxTokens = int.TryParse(_state.GetState("max_tokens"), out var tokens) ? tokens : agent.LlmConfig?.MaxOutputTokens ?? LlmConstant.DEFAULT_MAX_OUTPUT_TOKEN; var options = new CreateResponseOptions(_model, []) { + Temperature = temperature, MaxOutputTokenCount = maxTokens }; @@ -442,6 +443,11 @@ private async Task InnerCreateResponseStreamingAsync(Agent agen ReasoningEffortLevel = reasoningEffortLevel.Value, ReasoningSummaryVerbosity = ResponseReasoningSummaryVerbosity.Auto }; + + if (reasoningEffortLevel != ResponseReasoningEffortLevel.None) + { + options.Temperature = null; + } } // Prepare instruction and functions