diff --git a/src/Infrastructure/BotSharp.Core/Routing/Handlers/RouteToAgentRoutingHandler.cs b/src/Infrastructure/BotSharp.Core/Routing/Handlers/RouteToAgentRoutingHandler.cs index f79c6719..1dc808a0 100644 --- a/src/Infrastructure/BotSharp.Core/Routing/Handlers/RouteToAgentRoutingHandler.cs +++ b/src/Infrastructure/BotSharp.Core/Routing/Handlers/RouteToAgentRoutingHandler.cs @@ -71,7 +71,7 @@ public class RouteToAgentRoutingHandler : RoutingHandlerBase, IRoutingHandler // Update next action agent's name var agentService = _services.GetRequiredService(); - var agent = await agentService.LoadAgent(agentId); + var agent = await agentService.GetAgent(agentId); inst.AgentName = agent.Name; if (inst.ExecutingDirectly) diff --git a/src/Infrastructure/BotSharp.Logger/Hooks/VerboseLogHook.cs b/src/Infrastructure/BotSharp.Logger/Hooks/VerboseLogHook.cs index 7affc3a4..fb3c37a2 100644 --- a/src/Infrastructure/BotSharp.Logger/Hooks/VerboseLogHook.cs +++ b/src/Infrastructure/BotSharp.Logger/Hooks/VerboseLogHook.cs @@ -38,7 +38,7 @@ public class VerboseLogHook : IContentGeneratingHook if (!_convSettings.ShowVerboseLog || string.IsNullOrEmpty(tokenStats.Prompt)) return; var agentService = _services.GetRequiredService(); - var agent = await agentService.LoadAgent(message.CurrentAgentId); + var agent = await agentService.GetAgent(message.CurrentAgentId); var log = message.Role == AgentRole.Function ? $"[{agent?.Name}]: {message.Indication} {message.FunctionName}({message.FunctionArgs})" : diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/ResponseDone.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/ResponseDone.cs index ae3db58d..421747b9 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/ResponseDone.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/ResponseDone.cs @@ -89,7 +89,32 @@ public class ResponseDoneStatusDetail public string Type { get; set; } = null!; [JsonPropertyName("reason")] - public string Reason { get; set; } = null!; + public string? Reason { get; set; } = null!; + + [JsonPropertyName("error")] + public ResponseDoneErrorStatus? Error { get; set; } = null!; + + public override string ToString() + { + return $"{Type}: {Reason} ({Error})"; + } +} + +public class ResponseDoneErrorStatus +{ + [JsonPropertyName("type")] + public string Type { get; set; } = null!; + + [JsonPropertyName("message")] + public string? Message { get; set; } = null!; + + [JsonPropertyName("code")] + public string? Code { get; set; } = null!; + + public override string ToString() + { + return $"{Type}: {Message} ({Code})"; + } } public class ResponseDoneOutputContent diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/RealTimeCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/RealTimeCompletionProvider.cs index 959ed457..b0b655ce 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/RealTimeCompletionProvider.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/RealTimeCompletionProvider.cs @@ -560,6 +560,7 @@ public class RealTimeCompletionProvider : IRealTimeCompletion var data = JsonSerializer.Deserialize(response).Body; if (data.Status != "completed") { + _logger.LogError(data.StatusDetails.ToString()); return []; }