diff --git a/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.GetAgents.cs b/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.GetAgents.cs index a1b832e4..f65b7748 100644 --- a/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.GetAgents.cs +++ b/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.GetAgents.cs @@ -16,7 +16,9 @@ public partial class AgentService return query.ToList(); } +#if !DEBUG [MemoryCache(10 * 60)] +#endif public async Task GetAgent(string id) { var db = _services.GetRequiredService(); diff --git a/src/Infrastructure/BotSharp.Core/Routing/RouteToAgentFn.cs b/src/Infrastructure/BotSharp.Core/Routing/RouteToAgentFn.cs index 3bc7cc5d..bd2df051 100644 --- a/src/Infrastructure/BotSharp.Core/Routing/RouteToAgentFn.cs +++ b/src/Infrastructure/BotSharp.Core/Routing/RouteToAgentFn.cs @@ -96,7 +96,7 @@ public class RouteToAgentFn : IFunctionCallback { // Add field to args message.FunctionArgs = AppendPropertyToArgs(message.FunctionArgs, "missing_fields", missingFields); - message.ExecutionResult = $"missing some information"; + message.ExecutionResult = $"missing some information: [{string.Join(',', missingFields)}]"; // Handle redirect if (!string.IsNullOrEmpty(routingRule.RedirectTo)) @@ -107,6 +107,11 @@ public class RouteToAgentFn : IFunctionCallback // Add redirected agent message.FunctionArgs = AppendPropertyToArgs(message.FunctionArgs, "redirect_to", agent.Name); } + else + { + // back to router + agentId = message.CurrentAgentId; + } } return missingFields.Any(); diff --git a/src/Infrastructure/BotSharp.Core/Routing/Router.cs b/src/Infrastructure/BotSharp.Core/Routing/Router.cs index 4f750f89..1194cc4d 100644 --- a/src/Infrastructure/BotSharp.Core/Routing/Router.cs +++ b/src/Infrastructure/BotSharp.Core/Routing/Router.cs @@ -28,7 +28,9 @@ public class Router : IAgentRouting return await agentService.LoadAgent(AgentId); } +#if !DEBUG [MemoryCache(10 * 60)] +#endif public RoutingItem[] GetRoutingRecords() { var db = _services.GetRequiredService();